Vision Merchants

Image
Four students posing against a wall

Project Team
Faris Jiwad Omar Barabandi
Owen Wolff
Laith Najjab

Project Mentor
Austin Blackman

Instructors
Dr. Tim Wood, CS, GW Engineering
Xiaodong Qu, CS, GW Engineering

The new kid on the block, FlockJS utilizes the magic of WebGPU and the lightweightedness of peer-to-peer networking to provide a simple, easy-to-use API for developers looking to make top-tier web games (while also saving on the costs of servers). What's provided is a full-fledged web API primarily utilizing JavaScript and Rust. Our offer is of a high-performance, lightweight framework with integration for peer-to-peer networking. We take the difficulty of managing a server and scalability by replacing that with our custom peer-to-peer solution (integrated with the Matchbox library).

Who experiences the problem?

Everyday, game developers struggle with having an easy-to-use API to create a game due to limited abstractions, especially with newer technologies, and self-hosting due to the costs of hosting a server. The problem that FlockJS is looking to solve is both providing a useful abstraction for game developers, specifically for the web, to interact with the advancements that WebGPU provides and without any compromise. With that is the package of Matchbox with modifications for a scalable, highly redundant peer-to-peer network. This includes modification to the network architecture to a super-peer architecture for redundancy and state management.

Why is this problem important?

The problem is important because there is an untapped market of game developers that don't have the right tools to develop games. Networking has always been known to be a problem, especially in the space of web gaming, as due to the high traffic that it generates, scalability and hosting has always been a concern. With these advancements that our library will provide, even in its most basic form, will provide developers with an easier development cycle to focus on what's most important: making good games. Developers shouldn't have to worry about hosting or maintaining good bandwidth across the server – they should focus instead on their game state and make it as enjoyable an experience as possible.

What is the coolest thing about your project?

With our game engine developed from the ground up, WebGPU provides some of the latest advancements for rendering. This includes things such as compute shaders, among other things. All game developers have to do is maintain a game state, add sprites, and our engine handles complexities including collisions. WebGPU has never had a more robust API built on top of it, and with that abstraction and an easier to manage networking aspect, will encourage developers to build what they love.

What sustainable design considerations drove your solution?

Our most important design consideration was a low carbon footprint. Servers, and the necessity to host them, has always been a massive overhead, and with the always scaling data centers, all Flock needs to operate is a simple instance for a signaling server. We reduce the carbon footprint by a substantial amount and leverage the networking from users instead of servers.

What specific technical problems did you encounter?

As it turns out, a super peer architecture is more theoretical than it is practical. What that means is that, for our super peer architecture, it had to be a novel concept. There weren't any references for how this architecture was implemented in practice, and given the level of complexity that Rust provides, there were some considerations for how to develop the infrastructure within the Matchbox library.