
⚠
This project was just for fun, so there is not much but a demonstration that React.js can facilitate game development.
⚠
Overview
Online Multiplayer Exploration Game
Supercontinent Lútil is a full-stack game that works entirely in the web browser. The game puts online multiplayer first, so every action must be sent to the back-end server and echoed to the other players. Players can walk around a vast, procedurally-generated world and fight monsters to grow stronger.
This project essentially tests the capabilities of React Hooks. Hooks made updating the view a breeze, so taking just a few hours to learn React's newest features had a monumental impact. I explain briefly in the video what React Hooks are.
Video Demo
In this video, I explain show React Hooks were used to implement basic player movement.
There are two copies of the player: one that is actively controlled and another that reads the player's position from the server. This demonstrates the latency of the app. Future work would stream the position over a socket instead of making individual requests.
Features
- Authentication and avatar customization
- Automatic world creation as players travel the world
- Sectors of the world are saved to MongoDB as JSON documents
- Monsters move toward nearby players to initiate combat
Tech Stack
Technologies
- Spring Boot
- React
- MongoDB
Tools
- GitHub
- Docker
- Heroku
- Postman
Lessons Learned
- Game development is possible for browsers, but the MVC architecture must be well-planned
- React.js functional components with Hooks are strongly preferred to class-based components (depending on the use case)
- Redux can be omitted in favor of React Contexts or other state managers depending on the nature of the project
- Docker containerization is a difficult learning curve but well worth the effort
- Even when working alone, cognitive load must be considered in the design of the view hierarchy
View Another Project