LD10 December 14–17, 2007

Working Title: Ruckus

This is my entry into the Ludum Dare competition for December 16th 2007. It comes with a Windows binary and the source code. It’s not quite a game. It’s more of a game engine or toy. The commands are the cursor keys to move your selector around, and ‘u’ for up, ‘d’ for down, ‘r’ for right, and ‘l’ for left.

The game is a setup as a grid. Each cell can have animals: elephants,dogs, cats, and mice. The idea was to set of chain reactions by placing certain animals or changing which direction an animal was facing. Currently you can only change the direction animals are facing. But the animals do have behaviors that you can exercise. Dogs will chase cats; cats will run if they can. Cats will chase mice. Elephants will stampede if they see a mouse, and charge in any given direction for a short burst. Another idea to add to the game would be to have items perhaps, e.g. peanuts, bones, catnip, and cheese to persuade the creatures to move into some alignment that is favorable.

Graphically, I was trying to go for a hand drawn animation look, with the flicker that inevitably results from little mistakes on the tracing. I think if I had put a kind of sketch-pad/notebook background behind it, and finessed it a little it might have made up for my crude artistic skills. I created each of the prototypical animals using the draw-vector program I made (included with the zip file).

I only managed to get out one level, and there’s no goal. So it’s still at toy status. My excuse was I was fighting with my environment for almost all of Friday just trying to get Windows binaries from CLISP. Once I had my environment working, doing remote development with SLIME had a bad behavior which nearly forced me to go to some other development kit mid Saturday. However, once I fixed my SLIME problem, it was actually pretty fun to write it in Lisp. Oh well, maybe next time I’ll have my environment ready before hand.

Anyway, it was great to try out the competition. It was a lot of fun and I learned a lot.

-Shane Celis

Toolset

  • CLISP (Windows)
  • lispbuilder-sdl
  • Emacs + Slime (Mac OS X)

Ruckus Screenshot

Tags: final

A Quickie Update.

Some people are having trouble running the XNA games some of us built. If an XNA program crashes, it’s probably because you need to install the latest XNA and DirectX redistributable. These are not installed automatically. My game even crashed on an up-to-date install of Vista until I manually installed the latest DirectX.

I have updated my binary to include the DirectX and XNA redistributables.

BTW: To restart a level (if you mess up), stop the ball with the spacebar key, then click on the screen.

Screenshot Marble Bomb Binary 8.55 MB w/ Redistributables.

Tags: crash, update

Bugs..

So, bugs found in my game so far:

– Something strange happening on some machines – game running slow as heck. Did try running in 800×600 windowed mode, turning blending off and background texture off, still slow. No idea why, as the game doesn’t really do anything special. I can debug this on my wife’s machine if I find the time / inspiration.. Could be related to AMD CPUs, ATI vid cards, or karma. Probably karma.
– EDIT: midi volume is way low on some systems, which is good or bad, and fmod seems to change system midi volume directly. Oops.
– Widescreen (as well as tallscreen) code, which I spent some time with, apparently not working correctly. Should leave black borders, but doesn’t. Duh. Run in windowed mode instead.

To run my game windowed, give it some parameter. Any parameter. -w for example.

For those possibly wanting to compile my game on different platforms, the following external libs are needed:

– GLee (for example from http://www.opengl.org/sdk/)
– SDL
– SDL_image
– FMOD (optional – game can be compiled without audio)

Comments

NyanNyanKoneko
17. Dec 2007 · 03:34 UTC
How did you draw those bubbles? They look fantastic! You must tell me your secret!
sol_hsa
17. Dec 2007 · 04:10 UTC
With photoshop. Generally speaking circles, ovals, and gaussian blur.

Kick-start package

http://users.evtek.fi/~jarikom/ld10_mostentries.zip

EDIT: mirror: http://www.kekbur.se/ld10_mostentries.zip

EDIT: better package (more games): http://www.kekbur.se/ld10_most_games.zip

About 100 megs. Includes all the entries I could download easily, and does NOT include entries that have extra requirements (such as XNA, pygame, etc).

Consider this a kick-start package! It includes directories for all the entries, so make sure you go through all of the entries, not only the ones already included here.

P.s. the package won’t stay there forever.
EDIT: P.p.s: doesn’t include separate source packages either.

post-mortem

(Hm, got bored at work, so an extremely lengthy post-mortem following..)

Post-Mortem

LudumDare 10 entry “Lunte” by Allefant

Introduction

I have yet to analyze the over 3GB worth of automatic screen caps, but I think I spent about a third of time each in IRC, coding, or working in Blender. Rather minor amounts of time were devoted to idea research, making sounds in SFXR and making music in LMMS.

Audio

In fact, my music is somewhat of cheating, as I used an existing melody, and further, an existing .mid file including 2 additional scores to the melody, cords (or whatever, I’m no musician) and percussion. What I did is just fiddle in LMMS to create and assign instruments.. I gave a high pitched square wave to the main melody, a piano to the cords, and since LMMS decided to simply lump the midi percussion notes into one channel, ignoring the MIDI assignment, some wooden sounding neutral percussion to that. As for in-game sounds, I used SFXR by DrPetter, which simply is incredible – in last LDs I was running an old SimSynth through Wine to get some poor sounds, now (also thanks to mjau) I have a native app with all those randomization features making sound generation much quicker.

Video

Since sound is covered, next to graphics. My tools were Gimp and Blender. But most of the visible graphics are Blender renderings. I do know by now how to set up a simple “armature” to get stuff animated. I still have no idea what the difference between the three windows IPO/Action/NLA is and why some of them are empty some times and sometimes not. And very likely connected to that, I can’t figure out how to give separate animations to separate things (like, doing the feet animation independent of the head animation, in the same armature). With everything downscaled to 640×480 pixels, not many details were necessary anyway though.

One thing which proved somewhat challenging were shadows. I decided I want to have them separate – since two tree sprites next to each other looked somewhat odd otherwise. Suffice to say, I had to resort to Blender’s Python-scripting capabilities to have a script which fiddles with material parameters – for the non-shadow version, disabling the shadow, for the shadow version, setting all materials to “cast-only” and a special “shadow plane” to “only-shadow”. The result is, each of my graphics has two versions, the shadow and the rest.

The biggest challenge however was the explosions. I learned some about particles, soft-body and the deflection setting in Blender. One thing I wasted time on was when I tried to get the explosion to cast a shadow – Blender simply can’t to that (yet?) – particles can receive shadow, but not cast it.

Code

Now, finally, to the code. I ended up not using pygame but my C-disguised-as-Python language and my custom library. Which for someone who wants to compile means, the following dependencies are required:

  • allegro window, input, timers
  • allegroglopengl context in above window
  • DUMBmod player, actually not used, but i found no time to edit it out of everything
  • OpenGL, FreeType, png, z, jpeg, ogg, vorbis, vorbisfile

After that, it should be a matter of compiling all .c files in the “generated” folder and linking to those library. I provided the Makefile I used for cross-compiling the .exe.

The actual code I have written is all in the src directory, little more than 800 lines. I love the Python syntax for that, even though the code is rather hackish and there’s no comments, the forced indentation makes it still easy to follow. There’s nothing really special regarding the gameplay, it’s a rather simple puzzle game, done a 100 times. I made one huge list of all objects (santa, trees, bombs, wood), then pass it to the C qsort function to sort by layer and by y position, then draw it.

The challenging thing was the water/ice/snow layers. The straightforward idea was to first draw water, then where there is ice draw ice tiles, and finally snow tiles. It just would have meant, if there’s a snow tile at x/y, cut that tile out of the snow texture, and place to the screen. However, I wanted to use an alpha mask for the cutting out – but OpenGL 1.0 does not allow specifying a separate alpha channel. Which would have left me with some texture combine extension, or a fragment shader. I read up a bit on fragment shaders, but then finally went for a software solution, re-calculating the water animation with possibly ice and snow in front each time level geometry changes.

Game Design

One thing I totally neglected was level design. The game I cloned apparently lived from the clever level design, giving you hours of puzzles. In my version, there are no real levels, basically just 13 tutorial/test screens. I guess I could try and find a ROM of the original then rip out the levels. Or try to create some challenging levels myself. In any case, when doing a puzzle game in an LD48, time for level creation must be factored in. It’s hard enough doing platformer levels in short time, but for a puzzle game it’s crucial.

Conclusion

In a way, not having the least bit of originality haunted me throughout the competition. I wish now I had thought more about my initial chain-of-lights on xmas tree idea (all the xmas setting is a remnant of it), then could have spent the time creating explosions and break-able terrain on implementing that idea instead.

Tags: post-mortem

EXE file for my game

Here is an exe and some dlls for my game if you use windows. You still need the data (graphics and levels) from the other archive though. Just put the contents of the two zip-files into the same directory.

Here’s the zip:

http://d.skalle.googlepages.com/ld10_final_exe.zip

If nobody gets any problems with this zip then I will probably make a new zip with the EXE, the datafiles and the source code together.

Tags: chain reaction, galectric, LD #10 - Chain Reaction - 2007, Windows

Comments

saluk
17. Dec 2007 · 17:17 UTC
Exe works for me.
28. Dec 2007 · 17:20 UTC
It did not work for me, window flashed and died. nothing in the stderr and out files…

Quick update

Hey, not sure if everyone noticed the edit to my last post, so I’m making a new post…

It appears that I missed a source file (.py) in my original zip, so I’ve updated the zip to include it. If you were having problems running the game in linux or OSX, please re-download and try again :)

Thanks for your patience.

Tags: oopsies

About Polymerization..

So just to give a bit of background behind the chemistry of my game, here’s the page I used for research:

http://www.pslc.ws/mactest/radical.htm

Basically, the creation of the material we know as vinyl is done by a chain reaction of monomers into polymers (polymerization) initiated by a free radical initiator.

If you have shockwave then this short video (from the above page) will demonstrate the process effectively:

http://www.pslc.ws/mactest/movies/peprop.htm

Tags: chemistry

Oh yeah…

One last thing that I forgot to add to the “tools used” list: I used a nifty little program called JSmooth to generate the windows executable to start the JVM. It just acts as a nice wrapper for java programs so that they can be started with a simple exe. I think it also tells you where to download the runtime if it doesn’t detect it. Pretty damn handy really.

BenW’s Guide To Lerc’s Game

X-Out and I were playing lerc’s game and he was having a problem solving one of the levels so I started to post a screenshot of the solution. He solved it before I could post but since I had already started I finished off solutions for all six puzzles.

Solutions are after the jump.

Level 1

Lerc 1

Level 2

Lerc 2

Level 3

Lerc 3

Level 4

Lerc 4

Level 5

Lerc 5

Level 6

Lerc 6

High Scores

Making a high score list for my game.

game

High Scores:

1. Hello_Kitty – 2:36

2. lexaloffle – 2:31

3. BenW – 2:08

4. Samiljan – 2:05

5. Endurion – 1:59

6. Deepflame – 1:58

7. SteelGolem – 1:46

8. DrPetter – 1:44

9. sirmalloc – 1:43

10. midwinter – 1:32

Tags: scores

Comments

17. Dec 2007 · 23:00 UTC
I got 1:14, great job =]
Papper
18. Dec 2007 · 08:00 UTC
0:59 twice in a row :/
19. Dec 2007 · 03:44 UTC
1:13 for me. Fun game :)
Endurion
19. Dec 2007 · 17:33 UTC
1:59, nice once you get what’s to do :)
Hello_Kitty
19. Dec 2007 · 20:06 UTC
2:36 oh yeah
lexaloffle
20. Dec 2007 · 09:41 UTC
2:31

nice game!
31. Dec 2007 · 03:28 UTC
Awesome Game!
31. Dec 2007 · 03:28 UTC
2:22

Basecamp Chain Reaction – binary version

Finally I built a binary of the game with py2exe. I had trouble with pyopengl since it used a .egg file. I dont know how it was fixed, but Samiljan supplied me with a modified source code file for pyopengl and it works now. A few words to py2exe authors: include .egg support.

I was tempted to add game pad support, add sound and tweak the game play more. I dont think thats fair though =p


download
– binary executable for windows
download – multi-platform source and art files

Tags: py2exe, update

Comments

Orangy Tang
18. Dec 2007 · 09:50 UTC
Looks nice, but very very hard to control. Needs a bit more power on the thrusters so you can get out of trouble easier I think. Couldn’t figure out how to chain boxes together though – pressing space a second time just dropped the first one.

Shrapnel: sound latency fix

For everyone who was having issues with huge sound latencies in Windows, here’s an updated zip that should fix the issue:

[ shrapnel-ld-c.zip ]

The only changes in that zip from the compo version is that I rebuilt the executable without debug info and with optimization (no code changes), removed svn files to make the zip smaller, and replaced the buggy SDL.dll I was using with a good one from libsdl.org.

I’ll probably write a postmortem in a few days.

Tags: fix, shrapnel

Game update

Like all games, mine gets a patch short after release. 😉

I was informed that level 5 was remarkably easy to solve and indeed it was, you didn’t need most of the level to do anything. Thus I minorly edited the level 5 file and uploaded my entry to my webspace again. However, I left my original version on the webserver as well, in case people want to play it with the possibly easy level 5. (It can still be difficult unless you see the easy way.)

Old-version: http://deepflame.deeplyswitched.com/ld48-10/CoA-Final.zip

Fixed-version: http://deepflame.deeplyswitched.com/ld48-10/CoA-Final-Fixed.zip

Do with it what you want. I hope level 5 is more challenging now. :)

– Deepflame

Tags: final, patch

song2 tab

Since the music to my game, Space Reactions, has become a little bit popular, I figured I’d tab it out for any fellow guitar players here. I haven’t got a guitar in front of me right now, but I think this is pretty accurate. I’ll update this post if I find anything wrong with it 😉


---------------------------------------------------------
-------12~~~-----5/8\5~~-------12~~~---------------------
------------------------------------------7/9-----5/9----
----14---------7------------14----------9-------7--------
---------------------------------------------------------
-12----------5-----------12----------7--------5----------

Sounds good with some light distortion and little bit of tremolo. Enjoy!

Tags: guitar, music, space, tab

videos

Was experimenting with this, gtk-recordMyDesktop made it trivial to capture a window and even sound, shows me again how little gameplay there is, oh well:

Paramecium (Instructions)

Since Paramecium is a bit abstract, I hope this quick explanation can help you get into the swing of things:

The goal of the game is for one team to collect enough food vacuoles that they have 25 paramecia on their team. After collecting 6 vacuoles, a paramecium will split into 2 paramecia, and each of those will go on and collect food vacuoles and split, etc., until the team size reaches it’s goal.

The computer starts off with between 3 and 8 paramecia, where you start off with only one. This helps keep it challenging and interesting. Instead of just running around and collecting vacuoles, one has to make a strategy in order to replicate faster than the computer. For instance, if you eat an area to exhaustion, you may replicate lots, but those new paramecia won’t have much to eat… so you’re team won’t grow as quickly. You can also use this to your advantage if you follow the other team’s paramecia around… (although I’m in no way trying to promote paramecia competition… make paramecia love, not competition!)

The coloured markers at the top of the screen represent the score. The larger the marker (and more it turns), the more paramecia that team has. Once a team reaches 25 paramecia, a screen will come up to show which team has won (the coloured marker screen), and the game will reset with random parameters after a couple seconds.

… and to those who doubt it can be done, winning is tricky but not impossible: :)

30 minute drawing

Theme: “Running out of time!”

runtime.jpg

Time is ticking… but she doesn’t care.

Tags: 30min

30 minute drawing compo entry: Running out of time: Clock thing in the desert

Running out of time: Clock thing in the desert

(click for full size)

Made in Gimp with a tablet. First time I’ve used the smudge tool, went a bit crazy with it =)

Tags: 30min, art

running out of time 30min compo

Meow

Meow!

Tags: 30min