A Simple RPG
One of the recent Facebook message conversations amongst friends involved a lot of discussion about video games, some of which was the controversy surrounding the latest Star Wars Battlefront game by EA. In particular, their Reddit comment about the cost to pay to unlock special characters quickly became the most downvoted comment in all of Reddit. Since I gave away my gaming desktop to my brother before moving to Switzerland, I have no real practical way to pick up PC games with that group anymore. Of course, knowing me, that just meant it was a small challenge to create a small real time browser-based multiplayer game from scratch.
Enter the simple RPG. The server is password-protected, due to the potential for chat abuse. Feel free to ask me for the password.
I’ve always had a soft spot for writing Go code for small projects, like this website, and the RPG was no exception. I also rather enjoy using websockets due to the ease of two-way real-time communication between browser and server. So, the game fires up a websocket to this server, allowing the player to watch in realtime as games are created, joined, and emptied out:
Once in a lobby, players can choose one of four classes (though only two are implemented). They can also pick their character name, and chat with their allies in real time:
Once everyone is ready, they are thrust into some real-time combat:
The player’s goal is to use their “symbols”, which are mapped to keyboard keys, in order to take an action. For example, the fierce barbaric Warborn’s “weapon” symbol (Ɔ) may be mapped to the keyboard letter “z”. Therefore, entering the letter “z” will cause the player to use their weapon. The mapping of these symbols to keyboard keys changes every game so players are encouraged to memorize the symbols instead of keyboard keys.
Putting several symbols together intelligently can cause spectacular things to happen. For instance, the fierce barbaric Warborn class can use its “weapon” and “focus” symbols (ƆČ) together to do a quick attack that takes less time.
As I implemented a lot of the game mechanics, balance started to get tricky. There’s not a lot of balance done due to the fact that the enemies are mostly random. Also, the player’s capabilities got more absurd as they leveled up, so I made some of the strongest attacks also potentially hurt allies. This gave the game a bit of a darker tone than I originally intended, but one that perhaps has a lesson somewhere.
So overall, this took me about 12 hours of total time to throw together. It’s very unpolished and experimental, but unless there’s a sudden interest it will probably stay that way.
Why Not Go Outside
There were some pretty off-and-on rainy days here that I used to work on this. With the rain comes the cold front and frigid winds at the same time. We will still take Helix out, but after an hour’s walk on the trails it is exhausting for all of us. I had forgotten how much energy it takes just to keep warm. So being outside in it isn’t the most pleasant, and I am thankful Jessica supports my small self-driven efforts like this.
Published: Nov 25, 2017 17:46:41 EST
By: Cory Slep