Square Squad is a multiplayer in browser game based on socket.io communication between Vue.js and Node.js. You can play it on square-squad.com and tell us about your experience here on in our Discord channel
# install server dependencies and build files for both back-end and front-end
npm run build
# start the server side at localhost:8080 with hot reload. Use npm start for clasic load
npm run dev
# serve the front end site at localhost:1080
npm run startvue
# run the typescript watch system
tsc -w
You can now access the front-end app on localhost:1080
To test the back end
npm test
To test the front-end
cd vueapp && npm test
You can copy the .env_example
file at the root directory and name it .env
. Then, you can adapt configuration as follow:
MATTER_DEBUG=true=false
ENABLE_NEW_RELIC_AGENT: (bool) Set to true if you need some New Relic performances feedbacks
NEW_RELIC_LICENSE_KEY: (string) A new relic licence key
NEW_RELIC_APP_NAME: (string) The New Relic app name
COUNTDOWN: (Int) A number of seconds for the game countdown. Set to 1 for a 1 second countdown
FORCE_HTTPS: (bool) Use SSL?
FORCE_DOMAIN: (String) If multiple domains linked to the app, you can define the main one (eg. my-env.com)
DISABLE_OBSTACLES: (bool) Your can disable all obstacles for test purpose
ADMIN_PASSWORD: The password to access the /admin view
- ♻️ First basic code conversion to TypeScript.
- 🧪 Converted tests to TypeScript as well
- ✨ Score changer bonus are now declined into +3, +5, +10 and -3, -5, -10
- ♻️ Removed last global var using DI
- 🧪 Added some more tests on bonus
- 🔒 Security update of package depenencies
- 🧪 Added some more tests on rooms and players actions
- ♻️ Code refacto to remove most of the global var usage in index.js
- ✨ Added tests to Vue components
- ✨ Joystick in mobile version
- ✨ Allowed room url sharing with auto join
- ✨ Added touch control + media query to make the game work on mobile
- 🧪 Added unit tests on main socket actions
- 🐛 Fixed simultanous collisions
- 🐛 Fixed bodies not removed after death
- 🐛 Fixed crash after socket is lost
- ✨ Google Analytics when env var is set
- 🐛 Fixed multi domains + SSL redirection
- 🐛 Fixed 404 page
- 🐛 Fixed about us link
- 🐛 Fixed version number in footer
- ♻️ Refactored the whole application to use Vue.js