Roughly Structured & Transcendentally Unrestrained Ventures
Posted by Overkill on December 30, 2007 at 1:18 pm under gruedorf(Whew, it’s somewhat hard to come up with titles with sequential ordering on each word’s first letter. THE AMPERSAND’S A SYMBOL NOT A WORD, SO I DIDN’T BREAK MY SEQUENCE NEENER NEENER.)

Lots of headway made during this holiday week. Get it here.
I basically decided to not use the verge entity system because it’s incredibly slow for some reason in LuaVerge even with raw bindings, which means something’s wrong. Also, there are some special sprite information things that can’t be easily linked to chr files. So I made my own custom sprite format in LuaVerge, which I like to think is somewhat better (what with custom animations and some other things).
My .sprite format uses Mungo, a simplistic data association language I invented on Christmas Eve, which is easy to write, making it mostly painless to edit a sprite file! It’s a lot simpler than, say, XML (for writing and especially parsing), or YAML (for parsing, and also sometimes for writing), or most language builtin ways of structuring hash tables/dictionaries. The only real pain is having to figure out each frame’s width and height manually, but you sort of had to do that anyways to use a CHRMAK file. I might try and come up with an auto detection thing at some point.
Using Mungo again, I placed in a simple ability system format, automating the projectile shooting and animation scripts for weapons a bit. I noticed that Mungo slightly suffers at doing numeric lists of items, I might try and fix that, or at least allow the parsers to convert numeric strings into numbers, to make for simpler use with Lua’s ipairs() method.
I also made a minimap generation system. It’s pretty simple really. It checks each screen region of the active map, and if the outer edges are obstructions, it places wall markers for those. If the inner chunk of the screen is fully obstructed, then that particular screen region is obstructed and won’t be displayed on the minimap. Then I added the typical Metroidvania map panel discovery thing, where only visited screens appear marked on the map. Eventually, I need to crop the minimap to show only the room close to the player’s position, but whatever, tiny details.
Oh yeah, and I actually associated the beacon system with the ability system! Which is cool. Because now you can watch as things level/delevel from your proximity, and can actually do stuff with abilities. It’s good! So yeah, now the Z key actually actually shoots stuff rather than just making sounds! The beacons in this demo are just demonstrative of course, and have much shorter broadcast range than what I actually have in mind for a completed version of the game.
That’s this week’s Gruedorf! Look forward to more next week (hopefully).
Wow, one of the biggest update of gruedorf so far I’d say!
The fact that it comes from a period where everyone look like they’re in a coma (myself incuded) makes it even more remarkable.
I have to try your game as soon as I can (I’m at work)!
(might not be today though, the Habs are playing :) )


Looking good Ovk. The game is looking rather polished now. Moreover if making up your own data association language does not own all the other Gruedorf updates till now, I dunno what does. :) The only negative critic is that the sound clip for the character hitting the ground feels like it’s going to blow up my sub woofer.