-
-
Menu Screen
-
Levels (arcade, increasingly harder)
-
Solo player game (stay on ovum until it fecondate and avoid the germs)
-
MultiPlayer room (once evryone is ready game start, multiplayer game can host up to 4 players)
-
MultiPlayer game (stay on the ovum to collect score, collide on your opponents to push them away, the faster you hit the further they go)
-
Win screen (there is also loses screen and pause menu 'press P')
-
Solo player game (different germs)
-
Increasingly harder levels (a level can have one or more ovum)
-
Scoreboard
-
MultiPlayer Game (4 players)
Inspiration
I was trying to creating a minimalist html game engine based on reactive libraries, while testing I ended up with this game.
What it does
It is a reflex/action minimalist game where the player incarnate a spermatozoa.
In the solo mode the goal is to stay on the ovum until it is fecundated while avoiding germs.
In the multiplayer mode, the more a player stays on the ovum the more he collect score, a player can hit an other to stun him and send him away from ovum.
The multiplayer mode allows up to 4 players per room.
How we built it
In term of technology this game is not built like common html5 games.
We used the html SVG instead of the usual Canvas drawing, as result the game contains no assets, except the logo.
We have created a small game engine on a reactive library, it manages the frames, collisions, forces...
We starting testing using a spermatozoa as a sprite, we continued building over that, adding ovum to test collision then the germs. From that point we got a small game,so we added an API to support it and integrated webSocket to enable multiplayer mode.
Challenges we ran into
Video games requires more creativity than scripting/codding (for example: assets, sprites, animation, music, level design, scenario...). We do not have theses skills, to surpass this lack, so we focused on what we can do better: codding.
We came with new ways to do the animation, we computed rather than create it and load it. also sprites are mainly SVG paths or a composition of shapes ()...
To deploy on Heroku for free we had to adapt the game, sacrificing storage and some computing for multiplayer, it still results on some latency that we are optimizing.
Accomplishments that we're proud of
We created a small Reactive HTML5 game engine
We play the game often -multiplayer- as it is fun!
What we learned
More about webSocket
Video Games is all about optimization (runtime)
What's next for Sperman
Sperman is now on its beta release and far from completed. Other than minor fixes (like The stars are not being saved yet on the player profile), we will:
Optimize the game for mobile, as for now the game was designed for browsers on PC.
Optimize the multiplayer by reducing playloads and balance computing between client and server, as we often have some latency.
Add more content (Levels, sprites, sounds, music, scenario, items, power-ups, unlock-able bonuses, achievements...), and more multiplayer varieties of gameplay.
Germs are to have theirs unique behavior to add more flavor to the solo mode and avoid redundancy.
Social media sharing button, send invites and more engaging features.
The multiplayer mode was a little bit rushed and needs more polishing especially on the workflow (win screen, loses, back to room...).
We also intend to add a level editor, in order to create and add levels faster.
We will add an endgame screen on the solo mode.
Built With
- facebook-app-center
- facebook-graph
- facebook-login-api
- games-on-facebook
- javascript
- node.js
- sails.js
- socket.io
- svg
- vue
Log in or sign up for Devpost to join the conversation.