I didn't complete the 7DRL challenge
... I plan to shelve that game for now and get back to it later.
In the process of working on InvadeRL I did create a bunch
of engine tech that we can use for this colaborative game.
Seven 20 hour long days of coding (on both my work and game stuff) has left me in need of some serious recuperation. So, I haven't yet cleaned up the code, or begin polishing and porting features back into the Mason Engine just yet. I did take a bit of time and prepare to do so, though.
After I stripped out all the (vehicular) gameplay (it's not applicable in this game) I'm left with only the tile engine, the title screens, and an initial "cut-scene".
You can see the tile engine in action
here. Note: the content creation stuff is finicky, and not fit for prime time. I also only tested on Firefox and Chrome, but will test more browsers later.
At first glance it's not immediately apparent how this ASCII game is helpful to us in any way. However, the thing to note is that each of those "characters" is actually a two-layer graphical tile!
Imagine that every glyph is really a 9x16 pixel tile, then you'll see. Yep, the animated smoke is actually just changing the tiles that are displayed. The stars and the the menu texts and smoke are all separate layers of tiles, and can even have different tile-rendering modes.
For example: The animated menu selection cursors are "text-sprites" -- Imagine them as a layer of tiles that can be composited, or "patched" atop the base tile set. The tiles can even change over time as if they were frames of a sprite.
This means you could design part of this coop game's world to have various "stages". A City could have: Normal, Destroyed, under repair states, and the engine can select between them. I even worked on optimizing the tile renderer so that the tiles can change many times per second. So, If you want, you can even animate the tiles changing in real time -- That's how I made the smoke and bugs and lighting effects in the InvadeRL intro -- It's 100% Tile-Based! Also press 'B' to see the lighting visualization debug render mode.
Edit: Oh, I noticed I broke the zoom scale feature that detects your browser window size. Just use the scroll wheel to adjust zoom in this case.