World of DE10s represents an ambitious convergence of embedded systems, cloud computing, and game development, creating a complete IoT gaming platform. This project implements a one-versus-one tank battle game where players use custom FPGA-based controllers connected through a distributed architecture spanning local processing nodes, cloud servers, and a Unity game client.
The system architecture demonstrates sophisticated distributed computing principles. Two DE10-Lite FPGA boards serve as physical controllers, interfacing with local PC nodes through carefully designed communication protocols. These nodes communicate with a TCP server hosted on an AWS EC2 instance, which orchestrates message passing between player nodes and the game client. The Unity game engine renders the battlefield and manages game state, receiving player input and broadcasting game events through the centralized server.
FPGA development involved comprehensive platform design using Intel Quartus Prime, creating custom hardware configurations that interface with C code running on the embedded ARM processors. The controllers feature responsive input handling with low-latency communication to the host PCs, essential for real-time gameplay. Development included both hardware description language design for FPGA fabric configuration and embedded C programming for the processor subsystems.
The TCP server implementation showcases advanced network programming, handling concurrent connections from multiple clients while maintaining consistent game state. The server architecture implements efficient message routing, ensuring player actions reach the game client with minimal latency while broadcasting game updates back to both players. Connection reliability mechanisms handle network interruptions gracefully, maintaining game continuity when possible.
Local processing nodes, implemented in Python, bridge the gap between low-level FPGA communication and high-level network protocols. These nodes handle serial communication with the FPGA controllers, packet formation for network transmission, and response processing from the server. The architecture allows for future expansion to additional players or controller types through standardized interfaces.
Unity game development created an engaging battlefield environment with tank mechanics, projectile physics, and collision detection. The visual assets were custom-created, providing a unique aesthetic distinct from asset store templates. Sound design incorporated high-energy tracks inspired by contemporary game soundtracks, enhancing the competitive atmosphere.
Deployment infrastructure includes automated setup scripts that provision AWS instances from scratch, installing all dependencies, pulling the latest code, and launching the server. This infrastructure-as-code approach enables rapid deployment and scaling across different cloud environments.
The project successfully integrated six major subsystems across diverse technology stacks, demonstrating expertise in full-stack development from bare metal FPGA programming through cloud infrastructure to game engine integration. Extensive testing validated system behavior under various network conditions, controller inputs, and game scenarios.
Documentation includes comprehensive setup guides for each subsystem, architectural diagrams illustrating data flow, and troubleshooting procedures for common issues. The complete implementation serves as an exemplar of complex systems integration, showcasing coordination across hardware, embedded systems, network programming, cloud infrastructure, and game development disciplines.