/Computer-Science-ATAR

A game for the programming task in the ATAR Computer Science course. Note that the demo will be taken down at the end of 2021.

Primary LanguageJavaScriptMIT LicenseMIT

About

This project is apart of my Computer Science course and is the final programming assessment. The task is to create a web or desktop game that supports multiplayer. I have decided to create a FPS game working with Three.JS. I am taking heavy inspiration from CS:GO for this project.

Planning document

Authors

Demo

https://dev.seanmcginty.space

Documentation

Documentation (generated with JSDoc)

Environment Variables

To run this project, you will need to add the following environment variables to your .env file. Some of the values that I use in my project we need to be changed to suit your configuration.

FOMART: NAME - my value for development

MYSQL_HOST - localhost

MYSQL_DATABASE - csc

MYSQL_USERNAME - root

MYSQL_PASSWORD - pass

MYSQL_PORT - 3309

ENC_KEY - crypto.randomBytes(16).toString('hex')

ENC_IV - crypto.randomBytes(16).toString('hex')

EXPRESS_PORT - 3000

WS_PORT - 8999

NODE_ENV - development

Features

  • Light/dark mode toggle
  • Fullscreen mode
  • Cross platform

Feedback

If you have any feedback, please reach out to me at newfolderlocation@gmail.com

License

MIT

Optimizations

Todo: Websockets

Roadmap

  • More maps

  • More weapons

  • Skins

Run Locally

Clone the project

  git clone https://github.com/s3ansh33p/Computer-Science-ATAR.git

Go to the project directory

  cd Computer-Science-ATAR

Install dependencies

  npm install

Start the server

  npm run start

Note: I am running this on Linux RHEL 8 + NGINX so make sure that you have ssl configured if you are using the example .conf files. You can use certbot to get the letsencrypt certs.

  certbot certonly -d yourwebsite
  certbot certonly -d socket.yourwebsite

Tech Stack

Client: ThreeJS, Bootstrap

Server: Node, Express, MySQL, NGINX

Languages: HTML, CSS, SCSS, JS, EJS, SQL