Skip to content

Technologies and Technical Challenges

Griffin Sharp edited this page Nov 18, 2019 · 6 revisions

Technologies and Technical Challenges

Backend: nodeJS, expressJS, MongoDB

Node simply gives our project the speed of the Chrome's V8 engine, able to develop our app in Javascript in a scalable manner. It's lightweight, efficient, and perfect for getting a web-app off the ground and running quickly.

Express will be the backend framework since its an extremely lightweight, minimal web-server that runs well with Node.js. The middleware and HTTP methods supplied by express makes setting up and adding extra API endpoints as we build out our app quite simple, manageable, and flexible.

MongoDB was our groups first introduction to a non-SQL relational database. MongoDB excels in low-latency real time communication, is highly accessible in terms of data transfer, with a very quick setup time. It's preferred for apps that need seamless, real time communication and consist of simple relationships.

Frontend: React and Redux

On the frontend of our app, we decided to utilize React with Redux to manage and persist state. The visual component of our game renders within an HTML canvas, however most other front-end facing portion are coded via React to give the feel the smooth navigation feeling of a single page web application. Redux helps our app keep track and manage the various states of our app and let it know what's available for each React component to render on the current page.

Realtime Communication

We will be incorporating websockets that will allow players to communicate with the game in real time. The game will create new rooms for each game through websockets and two players can connect to a single room and upon the established connection players can send game inputs in real time. We will be displaying the real time changes by processing the game inputs of the players and show it in the game window.

Wireframe