Archive for December, 2009
What we need is a montage!
Or a timelapse video of Echolon development. You know, same difference.
The first minute of this video shows me working on the first game I did which was jettisoned on early Sunday for a new game that eventually became Echolon for Ludum Dare.
The LD entry page for Echolon: http://www.ludumdare.com/compo/ludum-dare-16/?action=rate&uid=781
48 hours of programming, drinking and no sleep.
I just made last edits on my submission – turned out that platform compatabillity between windows and linux with python wasn’t 100%. Had to make events and graphics to run in the same thread. On top of that py2exe didn’t like opengl, so here i am without a .exe file.. :/ still i hope(,hope,hope) that all of you guys have have a python interpreter with pygame and pyopengl installed(fat chance!).
Anyway, it was an awesome weekend with plenty of coding, drawing, recording soundtracks, drinking [beer, wine, whiskey,cola,coffee], crap food, sugar overloads, transfat clogs in my throat, caffeine overdose, and so on.. I will be dreaming about pythoncode the next few days.. Good gaming and rating to you all
Space Explorer post mortem

This was my second LD48. I flip flopped with ideas the first night and settled on something rather generic that I hoped would be fun.
The idea was to make a space shooter set in a random starfield. You start with a shuttle and explore the universe making money, checking out planets, and battling other ships. Stations allow you to upgrade your ship and weapons.
What went wrong..
Timelapse and Postmortem of Unfinished Game
The timelapse video of me working can be found here. It’s only 22 of the 48 hours, since I turned my computer off at night and deleted the frames which where black due to my screen turning off from inactivity.
What went right:
- I had a lot of fun.
- I chose to not worry too much about graphics, theme, story, etc.
- Ran into no major time wasting bugs.
What went wrong:
- Scope of the game would have been better for a PyWeek.
- It would have been better to start with a library or codebase that handled much of the grunt work for me. Instead of working on a game, I spent a lot of time writing code for gui, animation, tilemap, resource management, collision detection, etc.
- I didn’t have anything a player could control until 3 hour from the deadline.
I’m thinking of trying to bring this game to a completed state within the next few days.
Oblivious: post-mortem;
After deciding that I was going to enter the Ludum Dare #16, despiste the almost completly lack of time I`d have to work on the weekend, I was able to finish my entry, somehow. Of course, it didn`t turned out like I wanted it to be, most because of the lack of time, but also because I hadn`t really a definite set goal until the last hours.
Deciding to go with javascript was a lifesaver. At first I wanted to write my game with Python and PyGame, but I`d end up spending too much time on rendering and UI implementation, and with javascript that was already hard-coded into the browser for me, so all that`d be left was to write the game logic. Of course, javascript has its issues, like you`re not guaranted fully compatibility between browsers (even with the standard ones, something may behave oddly), and that`s what made me cut that M$ IEerie from the list of supported browser before I even started writing a line of code.
More about it after the cut :3 (It’s rather long, but has a concept art to make for it
) (more…)
Hot Dog Hunter — Post-Mortem
What a weekend! I’m still sad to have failed as I did, and I know I could have done better. Shame aside, though, I’ve learned some things.
First, the reason I don’t have a new demo up is simple, but embarrassing. I never updated the gameplay as I worked. Instead, I just built up crap in the background with nothing to show for it. If I uploaded what I have now, it’d just be a bigger file, I’m afraid.
But, here’s what I’ve learned:
Things I Did Well:
- Got an idea from a random blog post, and thus pulling an idea from an unusual place. More a creative lesson than anything, but worth mentioning.
- I dumped an early idea due to a lack of proper art skills. I think I’m learning where my limits are.
Things I Did Badly:
- I spent too much time on the background code. I wound up with a fox gliding around on the screen, but with lots of cruft in the background. Also, about 5mB of memory that would have been all the media for the game world, but instead just took up space.
- All of my images, once loaded, took up 5mB of memory. I can do better.
- I futzed with my cell-based world generator for too, long, as well. It might well have worked, but at the rate it went it might as well have not. I never actually tested the output, just the time it took.
The heart of my problem was diving into the background and staying there. I never made new things playable, so I didn’t have any game whatsoever.
On a happy note, I did get to do research on pathfinding and random world creation. I’m going to take that into the roguelike I’ve been working on.
I’ll be back in the upcoming Mini-LD! Just you wait!
—Mr.Dude
Needlesoft Haystack Explorer – gameplay video
Monday, December 14th, 2009 7:44 amI recorded a video of my entry’s gameplay, since I heard it’s a nice thing to do.
The video is 1 minute long and contains roughly 20 seconds of actual gameplay, the rest is intro/outro.
There is a windows mouse pointer in the video that covers ingame pointer what is an artifact of screen capture. Also, encoding altered the colours a bit, I tried to rework it but it failed.
Conclusions
Monday, December 14th, 2009 7:08 amI was able to make it before the deadline after all. and I have some conclusions to share.
What was my idea:
To make a game where you navigate through a dark forest that is illuminated only by periodical lightning.
What went wrong:
I was drunk all the weekend
What did I actually make:
Using crappy drunk code, adding some procedural generation I made a haystack of random lines that look like a straw. I love procedural generation so it was not a hard task. I started it 6hrs before the deadline (apart from the bits of code i’ve written earlier drunk, but that didn’t actually draw anything). Added 3 tracks of music made in ~5 minutes each and set the sail.
What did I learn:
Vertex arrays: I needed these to draw 100 000 (really) straws of hay
Mouse raycasting (picking objects from 3d scene using a mouse)
How to draw a cloud in MS paint
Here’s what it looks like:

Post-development
While I did manage to submit something that’s playable, I think it could have been alot better with a few more hours. I had an idea of adding a time limit to make it more paced. Ofcourse it would be nice to have had collision detection working, but it became too big of a project to implement inside the two days
Still fun. I’m going to participate another time!
Here’s a slightly edited timelapse. I cut out the part where I got drunk
derelict_ post-mortem
That was fun.
Really, it was.. the majority of coding this was pretty good – as I had structured things fairly well for the most part.. till I went mad and started putting chunks of code in whatever file I was in at the time! Damn you Lua for allowing me to use any global function in any file at any time!
There were, however.. a few head smashingly horrific issues that did cost the game.
Please help
I can’t leave comments to my entry.
http://www.ludumdare.com/compo/ludum-dare-16/?action=rate&uid=1447
Can please some one leave a following comment:
If you get this
“ODE Internal Error
Stepsize must be > 0″
Change system decimal separator to “,”
Sorry, it is little my fault (
The hindsight
I just woke up and was able to play through my game. Here are a few things which went wrong:
- I spent too much time on enemy variants. I should have gone for more variants of the terrain tiles instead, to make the exploration more fun. Terrain tiles are faster to draw since they don’t rotate. A snow area and desert area could have been cool.
- The title/splash screen has a very flat landscape. I didn’t add any shadows or foggy background mountains.
- I could have avoided combat altogether and focused on stealth exploration, sneaking by and grabbing the loot. It’s difficult to do a satisfying combat system in just a few hours. I had no time to make fun AI either.
- The game gets too easy mid-end. I didn’t have time to play through it even once. Anyways, this means that it’s mostly laborsome to find the last treasures.
- I should have made a few sounds. Without sound, one feels detached from the game. It’s harder to understand what is going on (especially taking hits in combat). Music adds atmosphere too, of course. I had an idea where the tile map drawing routine would generate ambient sounds.
- I flipped two of the squid frames wrong. I didn’t notice because I had put most of them in a maze with high walls.
- The main character looks like it is ice skating because of the scroll focus, but drawing 2 walk frames * 4 angles * 2 stances would have been too much work for me. I suppose it would’ve been less of a problem in a game where you move less.
- Speaking of which, tapping the movement buttons is straining on the hand after a while.
- Str(ength) should have been Att(ack) in the sidebar. I was thinking of drawing a background for the sidebar, but had no time left. The treasure were supposed to do things, but I didn’t have time for that either.
- If Health = 0 Then FGameOver() … I guess this made sense at some point, but it doesn’t in the current version. I’m generally careful and put less than checks in because I know I might change stuff around or lose control of value ranges.
- It would’ve been simple to couple the stats-up mechanic with the player’s current def/att mode, giving the player a bit of a choice for stats development.
It’s dead, Jim.
Monday, December 14th, 2009 5:02 amOK, the compo is over… back to the real world where it’s cold outside and I badly need some sleep…
But first in case you missed it, here’s my final entry. And now some post mortemy things:
Various tools and utensils:
Unity 3D (free version), Photoshop CS2, Cinema 4D R10, sfxr, Reason 3.0, Wacom Intuos 3 tablet, stupid midi keyboard with no driver for windows 7 (I wasted almost two hours to install the hardware to use it with a midi cable before the compo and only used it to enter 3 notes)
Awesome:
- I finished a game.
(seriously the motivation to participate in this LD was unexpected and sudden) - Unity is AWESOME! Really easy to use even with no previous experience using it.
- sfxr allowed me to make a few sounds in less than 5 minutes!
Lame:
- Not enough preparation. I lost a lot of time learning how to do basic things in Unity while making my game.
- I thought I had a great idea: you would explore the level and logically find out where the hidden tiles are. Unfortunately in practice, with the limited gameplay elements I could implement, there is too much guess work and not enough “exploration”. The concept would have needed a lot of experimenting and more concepts (maybe something Minesweeper-like) so that it would be really possible to deduce the position of the hidden tiles.
- Wasted time making a nice 3D platformer camera thing when a fixed orientation camera would have been enough and would have made the game easier to play with a keyboard.
- Spent too much time tweaking some graphic details that made no real difference in the final result
- I downloaded ChronoLapse, but then wasn’t motivated to record a timelapse and now I regret it.
Conclusion: I’m going to use Unity again. With basically no previous knowledge, it was already a little bit faster than doing things from scratch (and I got some extra effects for free), I can only imagine what would be possible if I knew it well.
Got some problem updating
Hi all, I got some problem updating the [broken] link to my entry, so updated the file position on my server.
Also I cannot write commment on my entry, nor modify what i wrote when i entered. Hoping that it’s only my problem can i ask how do you update you entry?
The download link is, for all operating system:
http://donotjava.netsons.org/download/ludumdare/LD16.zip
On windows you will need cygwin [linux emulator] or something similar [like vmware or other emulator].
Many thanks to pythong that reported the problem.
Waiting for a fix [for my broken brain probably
]:
GOOD VOTING AND TESTING TIME TO ALL!
Ok, i’m an idiot or maybe i got some big brain damage this week
Found the “edit my entry” link and all is fine now.
Dark Maze
I decided to use a weird tool for ludum dare this time: Mathematica. I wanted to try to a game that used dynamically generated sounds because usually I never do anything with sound. Mathematica is definitely a little weird for building an interactive application, but it gave me easy sound generation, and 3D rendering in a nice interactive development environment. It was almost kind of Lisp-y. I did find a fantastic reference for how to do interactive game programming in Mathematica taught at Rice University with a lot of examples here. Here’s an example of what playing with sounds looks like in Mathematica.

I thought I might try to do my entry Dark Maze using sound exclusively (requires free Mathematica 7 Player to play). I wasn’t the only one with the sound exclusive idea. The entry Soundscape goes in a similar direction. I ended up having some visual elements for the game. For instance, you can see yourself and the balls you throw by default, and you can also “cheat” to see the whole environment, at which point the exercise of navigating becomes trivial. I’d still like to see if it’s possible to do an audio-only form of maze navigation. Perhaps if the audio simulation were good enough to capture things like echos, or maybe it would just have to do something very artificial like different tones for different things.
I’ve included my timelapse as an embedded thing, but it’ll take a little while for the admins to make it work. Until then, here’s a link to it.
Colonial Age: Post mortem
The Good
- This is the first time I’ve been using OpenGL and SDL for something that is more than just a techdemo and I have to say the transition from plain SDL to SDL + OpenGL went quite smoothly
- The core gameplay elements made it into the game
- This is the first time I’ve been using Lua for scripting in a game. I wanted to use Lua more extensively, but it’s just a small part now, still I’m quite pleased with that element and how that went without any problems along the way
- Graphics and music are mostly how I imagined it, I also made some sounds with SFXR, but those didn’t make in the final game
- Basic AI: That’s really awesome, it was implemented like 30 minutes before deadline and it’s great that it works
The Bad
- I almost slept 24 hours of the time (my alarm was not working) and was too tired from staying up so late to get up early
- There was generelly a lack of time, for example, there were some things to be done for college and I discovered Mass Effect, which was a really bad idea to double-click the Mass Effect icon, it was time-consuming and took a lot of will power to exit the game and get back to coding
- I almost went with Unity instead of my own framework and the decision took a few hours
- There were some issues with my camera, that’s why there aren’t any deskphotos or foodphotos from me
- Since I’ve been using SDL + OpenGL for the first time for a real game that has actually been finished, some parts of my framework are still in its infancy (espacially the texture loader routines), that’s why there are some problems with washed-out textures and memory leaks
I’ve uploaded the linux port and there’s now a gameplay video on youtube. The timelapse video is coming, don’t worry.
Now I’m looking forward to try everyone’s entries.
Ruby, OpenGL and Pixels
I used my favorite language of all time, Ruby. With 1.9 Ruby has picked up speed and with Ocra you easily make a ~1-2 meg exe-file out of it. Also the excellent (and german precision engineered) Gosu enables OpenGL accelerated 2D. On top of that I used my own Ruby/Gosu-specific framework Chingu to get game states, re-usable game logic and a boiler plate “game object”. To get a speedy get_pixel() I used the awesome Texplay by John Mair.
I have a pixel fetish. I love retro-looks in games, and I love pixel-perfect-collisions, a fetish that probably came into existence playing hours and hours of Lemmings 2-player mode on the classic Amiga 500.
So, the most time was spent up building a good pixel-perfect-collision algo, and it came out very playable, but not perfect. I ranted about it in my last blogpost.
With Ruby and Chingu my level-building got very clean, I think even ppl not into Ruby could understand what’s happening here:
class Level7 < Level
def setup
self.background = "level7.bmp"
every(1000) { Enemy.create(:image => "acid_drop.bmp", x => 150, :velocity_y => 5) }
every(1500) { Enemy.create(:image => "acid_drop.bmp", x => 250, :velocity_y => 5) }
end
end
or here (this is from the mainloop):
player.each_collision(Enemy) do |player, enemy|
unless player.paused?
player.pause!
Sound["die.wav"].play(0.3)
after(1000) { player.x = @entry_x; player.y = @entry_y; player.unpause!; }
end
end
It’s nice when it’s silly simple building readable levels.
I also got a very basic and simple Map-class going so I could build on my matrix of screens that made up the game:
map = [ [LevelUp, nil, nil, nil], [Level1, Level2,Level22, nil], [LevelAir, nil, Level3, nil], [LevelAir2, Level5, Level4, nil], [nil, Level6, Level7, nil], [nil, Level8, Level9, End], ]
Basically if you exited a screen to the right I would increment a column_counter and fetch a new screen from the matrix. If exiting downwards, increment row_counter an fetch a new screen.
If you like OO, short readable code and scripting languages in general and haven’t checked out Ruby or Gosu yet, now is the time to do it.
Postmortem
This effort was really an excuse to try out my new camera. Surprisingly, I think the images inspired me with ideas when often staring at an empty text editor doesn’t. It’s amazing what can be made out of ordinary objects using creativity. For instance, the splash screen was from the front of my garbage can. Also, composed images such as the menu screen I think came out really well and were quite fun to create.
This inspiration lead to what I would have to consider my most complete entry in any competition. The game has a splash screen, a working menu screen, a working game with both win and lose scenarios, sound effects (using SFXR) and even a few humorous voice effects. When the game is over, the game will successfully go back to the menu screen, and finally, there is actually a win screen. That is a lot to accomplish in 15-18 hours or so.
I think also a lot of my success was based on the tool I choose, BlitzMax. It really takes a lot of the labor out of game-making that you have to deal with if you use tools like SDL and C++. On top of Blitz, I chose a game framework from Ignition that makes it even easier to build retro-style games. Having not used BlitzMax in years (and never having used the Ignition framework before) did cause some problems though. I spent way too much time looking at example code and the documentation in both BlitzMax and the framework.
Overall, I am pretty happy with my entry, in terms of what I expected to produce and what I actually accomplished. I wanted to create a really simple game with using some photographic imagery, and I think I met my goal. It also helps that I have done several LDs before and so it seemed like I could gauge my progress and was able to make quick decisions/sacrifices to ensure that something playable would be completed in time. For example, putting in animations in the misfit toys or making them non-stationary would have been very cool, but I realized right away I wouldn’t have had anything finished in time if I set out to complete either of these goals. Having some experience helps you realize what you can and can’t do in the time period you have left. I was able to avoid dead-ends before they became gaping, black, time-sucking vortices.
I think overall though I had some success with BlitzMax, I probably won’t use it next time. There are a few annoyances with the language and IDE and I have to believe there must be something better out there. So far the best I’ve found is XNA, but I’m still looking for that perfect and language and framework for my next game to push me to the next level.
I have to say that overal the game-making experience of this contest is so much fun. I didn’t really start until Sat, and I only worked about 8 or 9 hours a day, but it certainly does get a little crazy at the end there when some bug was preventing my game to work at all with just a couple hours left on the deadline.
Can’t wait for the next LD, and look forward to trying everyone’s entries!
Last-minute anger
Are you familiar to the feeling when you’ve just submitted a game and then realize that there’s a random game-breaking bug in? Then you spend 2 hours fixing it while acknowledging that the deadline is coming nearer and nearer and you should already be asleep.
I had such case yesterday; I had just submitted my game, when I realized that the map system doesn’t somehow work in the compiled game, even though it runs fine in the editor. It was already 23:00, and I was about to have school the next day, but I anyway had to fix that thing. And sure it was difficult, because there was no logical reason for it to bug like that. Way to go, corrupted objects.
Anyway, amazing LD as usual, I really enjoyed creating my game and there are lots of amazing entries this time! I’ll post a video where I beat my own game, again, because I guess I made it once again too hard for others than me.



