ICP Dashboard

Add WebSockets to ICP.NET

Summary

Motion Proposal: Add WebSockets to ICP.NET with funding from BoomDAO

Background and Motivation

I am a .NET and C# developer and a contributor to the BoomDAO project. My online alias is Gekctek, but legally I am Ethan Celletti. I have worked with core contributors and IC game devs previously, mostly for the development of ICP.NET, a .NET agent for the Internet Computer. I plan to be a contributor for a long time, to build core infrastucture for the IC and to help the community grow. This proposal is to add onto the work I have been doing with compensation through BoomDAO.

ICP.NET, currently enables .NET applications to interact with the IC through HTTP requests. The proposed integration of WebSocket functionality into ICP.NET is a critical step towards enabling real-time, bidirectional communication, which is particularly beneficial for IC games. This enhancement aims to extend the capabilities of IC games beyond the current scope of HTTP requests, enabling more dynamic interactions. It will also offer IC game developers improved tools, which can help in developing more interactive and engaging gaming experiences.

In working with IC game developers and BoomDAO contributors, it's become clear that the existing JavaScript SDK doesn't completely address all developer needs. This realization has led to the proposal for porting the WebSocket JavaScript library to C#. The goal of integrating this with ICP.NET is to provide a more suitable solution that aligns with the practical requirements of these developers, ensuring that the tools available are both effective and responsive to their specific needs in the evolving landscape of game development on the Internet Computer.

Links

Twitter: https://twitter.com/Gekctek Email: [email protected] ICP.NET GitHub: https://github.com/BoomDAO/ICP.NET Omnia Network Websocket JS SDK: https://github.com/omnia-network/ic-websocket-sdk-js

Scope of Work

  • Porting to functionality from JS to C#: - Porting the IC WebSocket JavaScript SDK to C# and maintain feature parity
  • Integration with ICP.NET: - Create a seamless integration with the existing ICP.NET library. Also optimize ported code to have good C# patterns and practices.
  • Testing: - Conduct thorough testing to ensure stability, performance, and compatibility using Unit testing and working with gaming teams
  • Documentation: - Add documentation to the repository with the API and usage examples.

Deliverables

  • Updated ICP.NET library source code in the BoomDAO GitHub repository.
  • Documentation for the WebSocket integration, including usage examples and best practices for IC game developers.
  • An updated ICP.NET unity package with WebSocket functionality

Timeline

The projected timeline is to have this done before January 1st, 2024. This is a rough estimate, but I believe it is a reasonable timeline for the scope of work.

Requested amount

A flat rate of 5,000 USD in ICP, calculated at time of payment, upon completion of the project. This will be facilitated through a transfer proposal through BoomDAO to be funded by the BoomDAO treasury.

Payload

Motion Proposal:

Motion Text:

Add WebSockets to ICP.NET with funding from BoomDAO

Overview