Postmortem: Puppies in Sea Trouble (and blockchains?)
So Puppies in Sea Trouble was an experiment about how long would a lighthouse be lit, if you need someone to click the game in their browser once every 20 seconds.
Turns out, not that long. We had our first puppy death in about an hour.
After the first night, the situation doesn't look much better. (so many dead puppies 😥🐶)

However, where the project was a success was the choice of tech for the project.
I chose to try a monorepo Typescript backend + Typescript frontend. Here is the general stack:
- Typescript game server backend with Express + Socket.io
- Typescript game frontend with Phaser.io.
- Webpack for frontend
- Docker for local development environment
- Heroku deployment
- PostgreSQL + Redis for data persistence + cache
- CI capability. Currently only testing with tslint + David
- Bonus: Web3 for connecting to the Ethereum blockchain (Wound up not using this)
The reason I implemented access to the Ethereum blockchain (and even spun up a geth instance), was that originally I thought it would be a cool novelty if keeping the lighthouse alive would expend some Ethereum as fuel. Upon further thought, I realised this might just seem like a way to make money off the game and ditched the idea. The code is still there though.
Anyways, the source code for Puppies in Sea Trouble is available here under the MIT license:
https://github.com/anttiviljami/puppies-in-sea-trouble-ld39
Game link: https://ldjam.com/events/ludum-dare/39/puppies-in-sea-trouble