Axteroids | Asteroids game with spectator functionality
• Utilized Paper.js, a vector graphics scripting framework, to obtain a clean Scene Graph / Document Object Model and to allow for clean position and coordinate transformations of ship and bullet rendering.
• Implemented a Redux style paradigm to have a predictable and maintainable game state which is modifiable to maintain a history of the ship’s state and its actions at all times.
• Introduced Websockets to allow for real-time spectating in smooth 60 fps for users connected to the host.
Cards Against Humanity | Online Multiplayer version of Cards Against Humanity
• Adopted Websockets to keep a master state of the overall game and pass players data on whose turn it was and which cards the players clicked across multiple clients.
• Architected presentational components with React based on each player’s state and the shared master game state from the server and database to display cards after a user made an action or state of the player(s) changed.
• Applied Node’s (Express) middleware design pattern to route various client requests to their correct database controllers based on the users’ actions in the game and return the correct cards.
CSType | Measure typing speed and accuracy app
• Created a noSQL database through database controllers within Node to provide persistent leaderboard tracking.
• Used React’s active state rendering and child components to conditionally render views depending on varying game state in order to provide a dynamic single page application experience.