Mini LD #17: Go!
Since I finally managed to wake up, I guess it’s time to officially launch the compo.
Theme: Constraints (déjà vu?..)
To participate in the competition, you must use the provided “Retro” framework (links at the bottom of the post):
Retro (the Recursively and Erroneously Titled Retro Object)
It is a simple and very constrained game engine with a Lua API, offering the following characteristics:
- Low resolution (160×100) with 1-4 zoom, plus smooth scaling algorithms
- Palette based (8 colors including one optional transparent)
- Old console like input: arrows, A and B buttons, start button (mapped to keyboard, and partial gamepad support)
- Total source + assets shouldn’t weight more than 1 MB
If you don’t like Lua, there is a C API as well, but you’ll need to compile your game yourself, while the Lua based games should be (hopefuly) portable. If you like neither of them, you can also program your game in any language/platform, provided that you stick to the given constraints (and use no external library other than what is provided by standard Lua/C)
Note: the Retro thingy doesn’t actually check if your game weighs more than a MB or not. Furthermore, there seem to be problems with “light” music formats like XM, so if the size limit is exceeded because of music, it’s ok.
Note 2: remember to read the documentation! It containts important and valuable information. The packages also contain an example game.
Optional themes: Cute but Evil or Legendary Cosmic Monsters
If you have no inspiration whatsoever, you can use this secondary theme list to get you started.
Schedule
It’s a Mini, so don’t worry too much about time limits. Take 48 hours when you can/want or even a bit more if you feel like polishing your game.
Downloads
Thanks to the community, we have several Retro binaries to use. They should be compatible.
Source, GNU/Linux (32bits), Windows (MinGW), Windows (MSVC + more options), Windows (LuaJIT version), Mac OS X
See previous post + comments for more details
Final words
Oh well, have fun
Good luck!
Using indices instead of pointers makes things tough (e.g. procedural stuff). I’ll try to modify that, if I fail I’ll go with using allegro instead of your lib.
Either way, I’m in.
Nice engine.
However, so far today all I’ve got is a vague idea and a title screen I drew in 5 minutes in paint. I am not good at productivity.
Fun little engine, I’ll be trying to chip something out in Lua during spare time in the week. Also, in playing around with it a little I’ve found 2 good ways to crash it
-putPixel with negitive x or y coordinates = instant crash.
-putPixel with x or y largers than WIDTH-1 or HEIGHT-1 (respectivly) will loop to the other side eventually, but often causes a crash when you try to exit.
Anyone else found any problems so others can avoid them?
Someone mentioned a memory leak on IRC: Running with pixel smoothing at the biggest zoom. Which is a pity, as the smoothing looks really nice.
Also, blitting beyond the left or top edges simply does nothing, which is worth knowing about. I guess you could just call that one of the constraints of the theme.
If people want to fix the memory leak, it’s actually really easy if you are using the source.
In io.cpp, around line 165, you’ll notice that an SDL surface is created but never destoyed. Just put “SDL_FreeSurface(z2);” after the second io_scale2x method and the memory leak is gone!
I really like the scaling, by the way, Tenoch. When you first mentioned it I naively expected something like bilinear filtering, but this looks really nice.
I’ve been traveling and more recently exploring a few colleges, so I haven’t had time to make much progress. But I did think of a cool new retro idea that I think I can pull off!
Oooh thanks about that. I’m usually careful with these surface manipulation. It’s very easy to have… memory leaks… I guess this one escaped my careful attention.
The scaling is the classic scale2x algorithm, didn’t invent anything here
But yeah I love it. It comes from my early days of computer gaming with Lucas Art adventures. Full Throttle at least had a smooth scaling thing. Sheer awesomeness!