Web Streaming and Web UI/UX
V2i provides pixel streaming delivery of an Unreal Engine project, leveraging AWS instances to serve a WebRTC stream to users' web browsers. The goal is to allow users to access and interact with the Unreal Engine project remotely using a client-side web UI. The streaming process involves packaging the Unreal Engine project and transmitting it through the AWS S3 service. The EC2 instances handle the streaming process and deliver the content to users' web browsers using WebRTC, a protocol for real-time communication over the web.
The client-side web UI, developed with Node.js, React, and TypeScript, allows users to view and interact with the streamed project. It provides a user-friendly interface that dynamically adapts to different devices. Interactions with the stream are facilitated through packaged commands sent from the UI to the streaming server. These commands control various aspects of the streamed Unreal Engine project, allowing users to navigate, manipulate objects, and perform actions within the virtual environment. The pixel streaming setup allows multiple users to access the stream simultaneously. An administrator manages and controls the stream, overseeing the interactions and ensuring smooth operation.
The client-side web UI, developed with Node.js, React, and TypeScript, allows users to view and interact with the streamed project. It provides a user-friendly interface that dynamically adapts to different devices. Interactions with the stream are facilitated through packaged commands sent from the UI to the streaming server. These commands control various aspects of the streamed Unreal Engine project, allowing users to navigate, manipulate objects, and perform actions within the virtual environment. The pixel streaming setup allows multiple users to access the stream simultaneously. An administrator manages and controls the stream, overseeing the interactions and ensuring smooth operation.
My Role
- Software Development:
Designing, developing, and implementing the software solution. This involves writing code, creating algorithms, and utilizing programming languages and frameworks such as Node.js, React, and TypeScript. - Pixel Streaming Implementation:
Implementing the pixel streaming functionality within the Unreal Engine project. This involves setting up the necessary infrastructure, configuring AWS S3 and EC2 instances, and integrating the WebRTC protocol for streaming the project to users' web browsers. - Web UI Development:
Creating the client-side web UI using Node.js, React, and TypeScript. Design and implement the UI components, handle user interactions, and ensure a responsive and adaptable user experience across different devices. - Command Handling:
Develop the functionality to handle packaged commands sent from the web UI to the streaming server. Implement the logic to interpret and execute these commands, allowing users to control and interact with the streamed Unreal Engine project. - Integration and Compatibility:
Ensure smooth integration between different components and technologies used in the software. Verified compatibility between Unreal Engine, AWS services, WebRTC, and the client-side web UI. Necessary modifications or adjustments were made to the Pixel Streaming plugin and the rendering engine stream to the plugin handoff were made to eliminate some latency issues when sending and receiving data. - Quality Assurance and Testing:
Conduct thorough testing of the software solution to identify and fix any bugs, errors, or performance issues. Ensure the software functions as intended, providing a reliable and stable streaming experience for users. - Collaboration and Communication:
Collaborate with other team members, such as designers and administrators, to gather requirements, understand project goals, and ensure effective coordination. Communicate progress, challenges, and solutions to stakeholders and seek feedback for continuous improvement. - Documentation and Maintenance:
Document the software architecture, implementation details, and any relevant guidelines or instructions for future reference. Ongoing maintenance, updates, and addressing any issues or enhancements that arise after the software was deployed.