Deployment: https://advancer20.herokuapp.com
Code: https://github.com/Sharpness-B/Advancer-2.0
So, as I don't like uncompleted projects, I decided to continue the development of Advancer.
I'm incredibly happy with how this turned out - it's a 3d multiplayer game with a custom 3d library and it fricings works; it's smooth too!!!!
I would like to forward a big thanks to Kiran and Jacob for the great effort in Advancer 1.0 - when it was a school project! The challenge was to build a 3d space shooter game without a 3d engine library. So, in 1.0 we developed a story for the game, designed some spaceships and the ux, but most importantly coded our 3d engine (Jacob had the main responsibility and delivered an absolutely stunning result).
Now, in Advancer 2.0 users are automatically fingerprinted, logged in, and registered in firestore. I've improved upon the 3d engine, and added controls to the 3d objects. The app is automatically deployd to herokuapp.com on every push to the github repo.
You can of course blast your friends with space bullets (multiplayer), and purchase upgrades with gold that you earn doing acrobatics in the game. I have spent a fair amount of time working on the movements of the spaceships, so make sure to show off some crazy acrobatics!
Can you figure out what acrobatics that make you earn gold?
- custom 3d engine
public/js/libraries/flyengine & math - node.js
- express-fingerprint
- socket.io
- firebase
Demo video: https://www.youtube.com/watch?v=vgNRxaLQzAA
Set up a firebase with a web app and a firestore - remember to allow read and write.
Get the code git clone https://github.com/Sharpness-B/Advancer-2.0.git
Cd into the root directory cd Advancer-2.0
Create a .env with the firebase web app config. The file should be in the root directory looking something like this:
firebase_apiKey = aaaaaaaaaaaaaaaaaaaaaaaaaaa
firebase_authDomain = advancer-79c5c.firebaseapp.com
firebase_projectId = advancer-79c5c
firebase_storageBucket = advancer-79c5c.appspot.com
firebase_messagingSenderId = 401690015200
firebase_appId = 1:401690015200:web:ec6754703d49dbe0bb2785
firebase_measurementId = G-M70N2JX0ZDThen npm install
And finally npm start
tree /F│ .env.rename
│ .gitignore
│ LICENSE
│ package-lock.json
│ package.json
│ README.md
│ server.js
│
├───marketing_assets
│ main.gif
│ multiplayer.gif
│ upgrades.gif
│
├───modules
│ ├───db
│ │ add_gold.js
│ │ config.js
│ │ get_user_count.js
│ │ handle_transaction.js
│ │ login.js
│ │
│ └───multiplayer
│ game.js
│ simple2dGame.js
│
└───public
├───css
│ common.css
│ game.css
│ homepage.css
│ multiplayer_overlay.css
│
├───html
│ homepage.html
│ multiplayer.html
│
├───js
│ │ music.js
│ │
│ ├───homepage
│ │ gui.js
│ │ preview_model.js
│ │ upgrade.js
│ │
│ ├───libraries
│ │ ├───cookie
│ │ │ cookie.js
│ │ │
│ │ ├───flyengine
│ │ │ Camera.js
│ │ │ drawMethods.js
│ │ │ models.js
│ │ │ modelsConstructor.js
│ │ │
│ │ ├───math
│ │ │ Matrix.js
│ │ │ vec2.js
│ │ │ vec3.js
│ │ │
│ │ └───sequentialScriptInclusion
│ │ sequentialScriptInclusion.js
│ │
│ └───multiplayer
│ earn_gold.js
│ gui.js
│ multiplayer.js
│
└───media_assets
armor.png
back_arrow.svg
button.mp3
buy0.mp3
buy2.mp3
buy3.mp3
buy4.mp3
buy5.mp3
coinAll.mp3
energy.png
gold.png
insidespaceship2.png
laser.png
missile.png
money.png
music1.mp3
spaceship.png
spaceshipIcon.png
speed.png

