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

Share this project: