Cavemen is a game about pre-historic ice age period. It is a multiplayer survival game where players have to find shelter for their survival and food to restore their health. Players can attack each other and take the food dropped from dead (or disconnected) players. During the night time if the players are not in a cave they will lose their health gradually.
Note: It might take a while to load for the first time if there hasn't been any players online recently.
- 'WASD' to move.
- 'Space' to hit other players, you must be next to them and facing them to hit them.
- 'T' to open chat box talk to other players. You can even taunt them by typing '14' or '9'. (I hope Microsoft won't make a copyright claim for the taunts.)
- 'H' to fill health by consuming food collected.
Frameworks, tools, libraries, technologies used listed below:
- Phaser - A fast, fun and free open source HTML5 game framework. (Uses WebGL)
- Tiled - Easy to use and flexible level editor.
- Parcel - Blazing fast, zero configuration web application bundler
- Socket.io Server + Client - Realtime application framework
- node.js - Evented I/O for the backend
- Express - Fast node.js network app framework
- Web Speech API: Speech Synthesis - Converting strings to speech
Tutorials we followed/inspired by:
- Agario Clone - Agar.io tutorial by The Coding Train from Youtube.
- Modular Game Worlds in Phaser 3 (Tilemaps #1) — Static Maps - A series of blog posts from Michael Hadley explaining usage of tile maps with phaser 3. I highly suggest you to go through all of these blog posts if you are into HTML5 game development. Topics like advanced physics and dynamic tile maps are covered in these blog posts.
Installing the dependencies for the game server and starting it:
$ cd Cavemen-GGJ2019
$ npm i
$ npm run dev
The game server will be started at the port 3000. In the root directory, server.js is the only file responsible from the game server. As you make changes to server.js, the server will be restarted.
Installing dependencies for the client and building it:
$ cd client
$ npm i
$ npm run build
The game server is also responsible for hosting the game files, so you can navigate to localhost:3000 in your browser to start playing the game immediately.
If you want to enable hot reload for the client during development, simply run the following inside client folder (make sure the dependencies are installed and the game server is running first):
$ npm start
Note: Since we developed this game in two days, we didn't very thoroughly consider aspects like software maintainability, scalability and security. So, we suggest you to make improvements upon the structure if you want to use the code on a game project.
Global Game Jam's 2019 theme: 'What Home Means To You?'
Our game adheres to the theme by requiring players to find and enter a cave during night time, otherwise they lose their health meanwhile due to the cold. For us, "Home" means a place keeping us warm for the night.
- Always Room for One More (Sponsored by Origin Access) - Make a game where new players can join at any time.
- Use the Source, Luke (Sponsored by GitHub) - Use one or more open source tools, game engines or libraries in your game (and thank them in in the Technology Notes section on the submission page).
- This is where we came in, right? - Make a looping game and have the player start at a random point in the storyline.
Special thanks to IGDA Hacettepe for organizing and hosting the jam site Hacettepe Üniversitesi Teknokent.
Our jam song is Daft Punk - Giorgio by Moroder
- Arda Zaman - Software Developer
- Demircan Yiğit Öney - Game Artist
- Yiğit Usta - Software Developer