-
-
Torch? Again?
It must be re-run season.
After recently rebuilding Torch in ASCII using Phoenix and Elixir, I was inspired to do it yet again but with the original ray-casting-on-canvas look.
This is a super-simple express server with websockets and in-memory state. The more complicated multi-player raycasting makes a return this time though (no list comprehension shortcuts when we're doing it this way, unfortunately.
I still think there's some fun to be had in this game and maybe in another 15 years or so, I'll rebuild it again.
Github Repo: https://github.com/thingsinjars/torch-js
-
Torch in Phoenix
In an old, old callback, I decided to revisit a game design from… almost 14 years ago?!
I was looking for an excuse to play with Elixir and Phoenix and decided the best thing to do would be grabbing an old idea and throwing some new tech at it.
And, to mix things up, why not restyle it to look like a very old idea?
Using ASCII for this meant that I could actually do a lot of the visibility and ray casting using simple list comprehension (i.e. intersect all other player's 'lighted' cells with the current player's 360 ray cast visibility)
Github Repo: https://github.com/thingsinjars/torch
-
Monster Coffee Break
I wrote an RPG Adventure Guide.
I've been having fun recently with Lasers & Feelings and initially just wanted to make a quick little hack based in a fun and colourful world. Ideas turned into notes turned into scenarios turned into enhancements...
Long story short, I ended up with a 30 page adventure guide, two conflict mechanics, a bunch of set pieces and inspiration and a load of colourful characters.
Monster Coffee Break combines RPG, fantasy and comedy horror tropes with the heady and intoxicating world of corporate bureaucracy.
MonsterCorp is a sprawling corporate office catering to all kinds of monsters, from goo blobs to banshees to vampire bats. Employees run everything from nightmarish supply chains to scream-powered HR seminars.
The office is absurdly bureaucratic. Monsters need forms, signatures, and permits for everything.
This is definitely not a full RPG system. It just grew out of my own notes while playing with Lasers & Feelings. It's meant to inspire your own game, provide some interesting ideas and generally be a bit daft.
Some things might not make sense, some might not work. That's fine, just roll with it.
Aside: I then used the opportunity to create a simple little one-page website for it and throw in some fun CSS to do with scroll snapping.
-
Snex – Multiplayer Snake
It's been a few years since I built anything in Elixir so I decided this weekend to refresh my memory.
Rather than build yet another location-based API, I decided to try a game.
Combining super-simple gameplay and Phoenix Channels, I eventually ended up with Snex - Multiplayer Snake.
On page load, you are assigned a random session ID so you can copy-paste the URL and share it with any one to play on the same board.
I've currently got it deployed on Gigalixir.
The performance on the deployed version isn't great due to network latency. Essentially, the game ticks every 100ms and sends an update to each player so if you're moving left then press down, typically the server will process one more
left
event before yourdown
arrives. There are plenty of blog posts about handling latency, not just in multiplayer online games but also specific discussions on multiplayer online snake. I decided I could either dig into refreshing my knowledge of that or stick with refreshing my knowledge of Elixir and Phoenix. I went with the latter.