Looking forward to playing all of the successes… but maybe after a night off!
Dungeon Dual is a success… I think? With minutes to spare, thanks to day lights savings.
You can play here at dungeondual.com.
The game is asynchronous co-op, which means you can play by yourself, at your own pace. But if you have a partner logged in to the same game, you can help each other, trade items, chat, share knowledge, etc.
For example you can give a potion of health to your ally, or warn them that a “bubbly potion” is actually poisonous. You can also shoot a fireball over or use a warcry to scare monsters away from them.
More to come soon, I will write some kind of ‘how to’ guide later today. For now, please enjoy discovering it all yourself. 🙂 I am way too burnt out.
A very successful day 3. Thanks to some play testing from the #rgrd IRC channel I was able to get the basic co-op mechanic working. Right now 2 players can play the same game across different browsers, and your progress will get updated on your partner’s screen.
So, two exact same dungeon instances (level seeds are pre-generated), but two totally separate games. The split screen seemed a bit noisy at first, but I came up with a much nicer updating schedule that takes into account that most turn-based roguelikes are played in a “rush, rush, wait” manner. It will try not to needlessly spam the screen if your partner is in the middle of a furious dash.
In the game, the evil TIME MASTER has shattered reality inside the CAVES OF CHAOS. Every adventurer that enters arrives in their own splintered instance of the cave, but their companion is nowhere to be found, reduced to only a flickering echo. Out of the corner of your eye, you can catch ghostly flashes of your companion and the monsters she is facing.
Your companion has the exact same dungeon to deal with. But if you are brave enough, you can help her overcome the odds, and vice versa.
Up next for day 4: re-adding monsters, and coming up with with my “co-op sync” formula which will determine the effectiveness of co-op abilities. The farther away you are in TIME and SPACE will decrease how much you can help your ally. I haven’t figured out an exact formula for this yet but it will look something like:
S = sqrt((2D-distance)^2 + alpha*(Turn Differential)^2)
Where alpha is some factor that allows for maximum “fun”. I want players to be able to play by themselves if they want, but be subtly nudged to wait up or catch up to their friend.
Basic single-player game is working, thanks to gutting some existing code. Player can walk around and do basic inventory stuff – apply, equip, drop, remove, throw.
Monsters also mostly work, although I broke the flying mechanism at some point.
More importantly, the game is being hosted through my django web framework, so that game seeds can be stored and grabbed. This way every game with the same seed will generated the same levels, which makes a lot of the “sync” part of “asynchronous multiplayer” easier. (I hope? ROT.js has a built-in RNG engine so this should be cross-browser compatible)
Up next is getting the game to talk to websockets. THEN we can worry about talking back… and then there’s the whole “second player” thing. 🙂
Finally got around to starting my 7DRL — DUNGEON DUAL — on Sunday, around 11am Eastern. I am trying to focus on a FUN multiplayer/co-op implementation so I spent most of the day doing networking stuff, getting a tornado websockets test working, and setting up a basic django framework where users can login and start games.
For the game itself I am mostly gutting some robocaptain code that uses ROT.js and CoffeeScript.
I hope 7 days is enough time to make both the game itself and the co-op mechanic fun, but we’ll see…. goal for today will be to have the simple game talking to websockets 1-way. 2-way sync will likely take a few days. And then I will have Friday/Saturday to finish up the actual game mechanics.
The concept is basically a FUN turn-based co-op roguelike. PROBABLY will fail miserably but the idea I’ve had in my head for months now deserves a shot.
Thanks to ROT.js and hacking off code from last years entry (RoboCaptain), I have a decent working dungeon and some semi-useful monsters.
I really can’t spend too much more time on the actual dungeon if I want to get the co-op part working, so I am going to focus on having a tight subset of interesting monsters (say 3?) and only a handful of items.
I’m going to make the world’s first ever FUN turn-based co-op ASCII roguelike!*
The evil TIME MASTER has trapped the prince in the mysterious CAVES OF CHAOS. The King sends a battalion of his greatest wizards and warriors to retrieve him, but the caves twist time and space, leaving each adventurer trapped in duplicate versions of the same dungeon.
Playing solo will be possible, but extremely hard. Teaming up with a fellow adventurer will allow you to help each other, sending items, monsters, and special ability effects back and forth between dimensions. Although the dungeons and monsters will be the same, adventurers must be careful not to get too separated by space (or time) lest their co-op abilities wane.
The “seven days” part will mostly be me figuring out how to get WebSockets to work in order to implement the web-based roguelike framework I have used (and gutted) since last year across multiple browsers.
The “fun” part will (hopefully) be an implementation of multiplayer that a) doesn’t break the quasi-sacrosanct turned based nature of roguelikes, and b) actually encourages co-operation (isn’t totally useless).**
I’m using CoffeeScript (which is amazing) and rot.js (which is super useful) and probably tornado for the socket server.
* Possibly not I actually have no idea.
** Fun not actually guaranteed.