Ludum Dare 31
December 5th-8th, 2014

October Challenge 2014
Ending Soon!

ConstructionPlease excuse the site weirdness. Mike is making and fixing things. Clocks are probably wrong. Colors are place-holder.

What is Ludum Dare?
Rules / Guide

Final Results

Show full results

OverallFunInnovationTheme
4.45SethR4.57dessgeega4.32SethR4.65jsb
4.36dessgeega4.39SethR4.11Morre4.64Notch
4.27rob4.16rob4.08Sparky4.61Banni
4.16Notch4.10noonat4.05Xion4.52dessgeega
4.10muku4.09Endurion4.00muku4.44NiallM

PolishGraphicsAudioHumor
4.38Jpfed4.47DrPetter4.34SethR4.47jlnr
4.31rob4.43rob4.32rob4.29Banni
4.28Fiona4.40Notch4.29Radix4.27nilsf
4.23superflat4.35superflat4.17Deepflame4.08rob
4.21dessgeega4.29jsb4.04dstrysnd4.06NiallM

TechnicalFoodJournalTimeLapse
4.68X-0ut4.71GBGames4.60Tenoch4.40scionkiller
3.94sf17k3.92Entar4.57HybridMind4.25dstrysnd
3.81Morre3.91Jpfed4.50Doches4.20ondrew
3.79muku3.89scionkiller4.40sowbug4.20Frimkron
3.76Radix3.83codekitchen4.40GBGames4.00agj

Archive for the ‘LD #14 – Advancing Wall of Doom – 2009’ Category

Timelapse + Journal part 2!

Posted by
Monday, May 4th, 2009 8:09 am

Behind The Dumb Episode 7 is available now!  Thanks to the handy extended voting, it is available before voting is over!  Of course, again, I filmed it all during the 48 hours, but didn’t edit and release it anywhere close to that time, so probably not valid for voting.  But I hope you enjoy seeing what kind of sandwich I ate, in one of the most epic cliffhangers since Sylvester Stallone’s Cliffhanger.

Three more days to vote!

Posted by (twitter: @ludumdare)
Saturday, May 2nd, 2009 11:51 pm

As expected, people have asked for more time to download and vote for entries. And who can blame them with over 120 entries to pick through. But rather than make the winners wait an entire week to find out they won, we’re going to have only a 3 day extension.

So, 11 PM EST/8 PM PST Wednesday night is the new voting end date. Check the clock on ludumdare.com to get an idea when that is locally. I’ll flip the switch shortly after that hits zero.

Voters, keep an eye out for the entries with under 20 votes. When I last checked, we only had 28 entries with 20 or more votes. Some are very close to that, and if we can get half of the entries that high by the middle of the week, it’d be great. I understand some entries may have unusual setup requirements, but we ask that you do what you can.

Looking at final list, we had 123 total entries in Ludum Dare 14. I was chatting with one of the guys in #ludumdare today that’s reviewed over 100 entries in the past 2 weeks. As he put it, games “that don’t require me to install a bunch of stuff to run”. That’s a pretty impressive slice of playable games if I do say so.

Thanks everyone for helping out and participating in such a monumental compo.

– Mike Kasprzak (PoV)

Diodontidae – postmortem

Posted by
Saturday, May 2nd, 2009 10:07 pm

I believe a better name than post mortem would be lessons learned, so let’s see my lessons learned from the  competition. I would love to read this before the compo, as I can’t make the time go backawards, let try at least to help other newbies.
1. create the menu navigation at the start of the competition
As I was fighting agains some physics problems during the development process most of the menu was left behind. Then I realized 30 minutes to the end that my menu would be an image =) and a play button…

The lesson on this would be, use time in the middle of the nightmares to do these brainless activities, because what can go wrong while build a menu ? =)

2. draw in the paper build and color in the computer
That helped alot, I save my day manipulate the lines with inkscape, but … in order to slice images I have a nightmare with inkscape, go with Gimp works as a breeze

3. dont split images, let the engine split for you
ahhhh I spend some hours cutting images lol !!, could use something like http://love2d.org/docs/love_graphics_draws_1.html to draw a subsprite of the image …

4. make physics work for you
Oh Well after the physics hit me in the head, I learned some details and was able to make it work in a decent way, special note for the boats that hang around over the sea, for that I created a sequence of x,y that is the path to the boats, and I try to follow the path, I believe if I make the water line as an object and change its group to only colide with the boat would be the best to move the boat around.

5. clean the tables in one place only.
Not sure why, buit when I was removing items from my objects list in teh collision handler the LOVE was just crashing … workaroiund that I found : flag to items to be removed and remove in the update() method and one by one from each table, this is call at the end of the update() for each cleanable table :

[code]--- clean the tables
function cleanTable(table2Clean)

for n=1,table.getn(table2Clean),1 do
if table2Clean[n].dirty ~= nill then
table2Clean[n].poly:destroy()
table2Clean[n].body:destroy()
table.remove( table2Clean, n )
break
end
end
end
[/code]

and at the collision handler, I dont remove the pig from the list, just flag it
and I believe that this would be a nice way to animate the pig booom =)
by using a multistate, like alive/almost dead/dying/im outa here :)
would change the image section, or play an animation … and at the end remove from the list
that would be great …

[code]
function killThePig( id )

love.audio.play( audioCollision, 1 )
pigsKilled = pigsKilled +1

for n=1,table.getn(pigs),1 do
if pigs[n].poly:getData() == id then
pigs[n].dirty = true
break
end
end
end
[/code]

6. reusable files should be in a folder
I’m using for labels the .lua classes that I made called LOVEly-eyes, but I had this problem with the Text object that wasnt transparent … Oh well I went in the code changed the super class, Rectangle to handle this and the Text is transparent by default, cool, but but but … :) after that I just copied all the files from the LOVEly-eyes folder to my game folder … too bad because I copied a main.lua file together … If I wasnt using subversion would be a nightmare … now LOVELy-eyes are in a separated folder =)

7. use a version control system
I used subversion, saved me when I made an stupid folder copy … revert and just lost some minutes of work… bu remember keep on committing =)

8. put together a zip with everything
Better that just the .love file, create a package with the execs, the best would be create an installer.

9. level up level up !!!
people like rewards, so more than the score I should add level concept, just with faster attack of the pigs, or a different scenario with different speed .. hummmm that would be cool a .lua file for each level :)

10. collision has 2 sides … A and B
It took me some time to realize that A and B collision data, first they are the DATA from the polygon nothing else, just disconnected data, not a reference, not and pointer … hehehhe string data what makes very nice and unplugged from the code, and you have to test both sides, if wherever A colide on B and the oposite, this was my colision code

[code]function collision(a, b, c)

if string.starts(a, "pig") and string.starts(b, "battery") then
killThePig( a )
removeTheBattery( b )
elseif string.starts(b, "pig") and string.starts(a, "battery") then
killThePig( b )
removeTheBattery( a )
elseif a == DIODONTIDAE and string.starts(b, "food") then
eatFood( b )
elseif b == DIODONTIDAE and string.starts(a, "food") then
eatFood( a )
end

end

function string.starts(String,Start)
return string.sub(String,1,string.len(Start))==Start
end
[/code]

note that I used start() because I add the object id after the type, so I can grabb it from the list, something like “crap_2″, “crap_3″

11. scroll the view is possible Luke… use the force !
Ha ! not the force, at the end I solved the screen scrolling with a simple solution, calculated a shif from the main character and update this shift in the update() method and every single draw has this shift. So the camera is following the character, thats stays in the screen all the time, and to avoid the char to drop outside the world I add invisible walls on left and right side and check if the cameraX is in the possible range,

this in the start of the code

[code]
startCameraX = love.graphics.getWidth( ) / 2
startCameraY = 200

cameraX = -startCameraX
cameraXLimit = {}
cameraXLimit.start  = 0
cameraXLimit.finish = -2905
[/code]

+ cameraX on each draw
[code]
love.graphics.draw(diodontidae.image,
diodontidae.theChar:getX() + cameraX,
diodontidae.theChar:getY())

------ draw the batteries
for n=1,table.getn(batteries),1 do
love.graphics.draw(
imageBattery,
batteries[n].body:getX() + cameraX,
batteries[n].body:getY(),
batteries[n].body:getAngle() )
end
[/code]
this on the update()

[code]    cameraX = startCameraX - diodontidae.theChar:getX()

-- keep the camera in the boundaries
if cameraX > cameraXLimit.start then
cameraX = cameraXLimit.start
elseif cameraX < cameraXLimit.finish then
cameraX = cameraXLimit.finish
end
[/code]

PET THAT KITTEN! Postmortem

Posted by
Saturday, May 2nd, 2009 7:49 am

Introduction

PET THAT KITTEN! was my second attempted Ludum Dare,  my first actual entry, and my first XNA game. Going into this I knew I was going to use this competition as a way to get my feet wet with XNA. Considering the added learning curve I aimed for a very tiny scope. I think I went with the idea that crossed most LD’ers minds, turn the wall into an enemy and have it chase the player.

Development Tools

I had worked with a bunch of C# in the past so putting everything together in XNA wasn’t a problem. I had done my art up in Flash CS3.  I had planned on using hobnox to generate my sound effects and music.

What Went Right

The scope I had planned out mostly revolved around the fact that I was tackling XNA for the first time. The scope had lots of features I could easily cut out while still leaving me with a “complete” game.  I had done a bit of VB.net and C# managed DirectX stuff in college, XNA turned out be extremely similar so only very few features got cut.

Despite the programmer art, I’m pretty pleased with the way the artwork turned out. It was more time consuming than I had liked, but I feel like it breathed a lot of life into an extremely simple concept. I also decided that however crappy the artwork looked at the start, it would make it into the final project, no placeholder art.

What Went Wrong

I was using this Ludum Dare to kick myself in the butt to get something done in XNA. Most of my perceived problems stemmed from this though. I realize the ideal entries are executeables and broswer based games, no one really likes having to install dependencies or go to too much trouble getting your game going. I’m sure the installer for the XNA framework turned at least a few people away.

On that note, I know I could have gottent his entry done in half the time, possibly with more features if I had just done it in Flash. A good chunk of my time was converting assets to spritesheets and then fixing up the spritesheets (you’ll notice in the wall animation that you can see bits of other sprites on some frames).

My time management for this competition wasn’t too bad, I think I spent too much time on getting some of the artwork done, the time would have been better spent with an in game help screen explaining the game objects and scoring system.  The confusion brought on by the scoring system (and a scoring bug) was a huge oversight on my part.

Conclusion

As an XNA project I’m pretty happy with PET THAT KITTEN!. It’s a complete mostly functional game, and I managed to plan my scope out pretty well for the time frame. However as a Ludum Dare entry it’s a little less than ideal as I know I would have been able to polish it(Sound effects!) quite a bit more in Flash and avoid installer issues.

This Ludum Dare was a great learning experience for me. Planning out a scope under such a tight deadline, learning XNA, and finding a couple of really nifty tools for mixing music and creating sound effects.

Shal we extend voting?

Posted by (twitter: @ludumdare)
Saturday, May 2nd, 2009 2:01 am

We seem to have some interest in extending the vote for another week.

Post “Yes” or “No” in the comments, with any thoughts you may have.

Also, a large graphic to get your attention.

– Mike Kasprzak (PoV)

Postmortem…

Posted by
Thursday, April 30th, 2009 5:55 am

Outline of 48hrs as I recall it…

Day before compo…

Stayed up too late on Chatroom, just getting hyped about the competition – Should have slept more.

Got up at 4am to check theme – found that it was AWOD couldn’t think of anything and went to bed.

Got up again jotted down game concept in notebook (see below)

Full Design Document

Went to work knocking together basic sprite object – I know I should have grabbed a pre-developed set of objects but at least I can refine and reuse these now!

Went for a very free form map, no tiles just objects relying completely on BlitzMax’s in built pixel perfrect collision detection.

In the first day I managed to get the basic game mechanics working block growing, turrets firing, player deploying turrets – it was now almost a game.

Went to sleep thinking about adding towns, people, animals, plants running from the AWOD… Dream on!

 

Day two

Added screen, levels, win/lose states, basic sound effects

Afternoon – time was running down fast added …

Powerups – providing a limited upgrade to turrets

Base something for the player to defend and powerups to appear next too

Last minute play testing

Quickly zipping and posting it near the deadline – Phew Final post

What went right…

I managed to create a game in 48 hours!

I avoided getting tied into the complexity of a tile based system, thankfully BlitzMax’s collision detection works well!

I kept the ‘artwork’ to the bare basic minimum – inspired by the BUPA adverts (Coloured circles as people)

I kept the design very simple as well.

My Keep It Simple Stupid – KISS approach worked!

What went wrong…

Wrote too much code to start with I need a basic prototyping framework for at least sprites, collision detection, screens, menu ect.

Then I could have spent more time designing filling out the game design further but staying flexible, this might have prevented the last minute addition of powerups and base leaving next to no time for game testing balancing.

Motivation wandered during day two, it was a playable prototype and therefore in theory a game, thankfully I managed to get moving again and ‘polish’ it up a bit, again a framework will make this a none issue.

I quickly realised that there was a performance issue with the block count, once you get over the 1000 mark the framerate really drops so I had to limit that.

I wanted a wrap around world where you can’t run away from the wall of doom, althought this should have been an easy thing to add I did not get around to adding it, possibly resting on my laurels a bit!

In Summary

I really enjoyed this although I wish I had setup a time laps screen capture, probably not a webcam feed ;o).

Well I must judge some more of the other amazing entries, Looking forward to the next competition already!

Regards

Merx

 

 

 

 

Mind Wall – It pisses people off

Posted by (twitter: @rtsoft)
Wednesday, April 29th, 2009 11:30 pm

Fan (?) made youtube video showing why you must play (or avoid?) my LD entry Mind Wall before time runs out!

Vote, or become a duck!

Posted by (twitter: @mikekasprzak)
Wednesday, April 29th, 2009 9:43 pm

Less that 4 days to go!

Heart postmortem, release

Posted by
Tuesday, April 28th, 2009 3:45 pm

Sort of a postmortem for my game, Heart. I don’t know, I just wrote about the process and a few later thoughts. You can read it in my blog.

Also, the game is finally finished. Play the release version.

Why I didn’t rate your game

Posted by
Tuesday, April 28th, 2009 12:59 pm

It sucks to have very few ratings and comments on your game, so here are a few pointers for next time.

Platform
The most rated games are the ones you can play in your browser. Try making your entry in java or in flash and embedding it in a webpage for maximum exposure. If you don’t want to have to suffer the horror that is (Java|AS|Flash) at least make a binary release for Windows since most people seem to have access to that platform (I don’t so please also make an OS X version ;) ). If you’re making your game in Python (or its pale imitator ruby :P , or any other interpreted language for that matter) you might think you don’t need binaries but you’re wrong, people aren’t going to install a different environment for every single game. Same for Löve games.

Dependencies
If you do only release as source, or if you only release for one platform, or dynamically link libraries, keep dependencies to a minimum. If all I have to do to build the game is type “make” there’s a better chance I’ll try it than if I have to install 13 libraries which each in turn depend on half a dozen others.

Screenshot
I try to play all games regardless of the screenshot (in part because my own drawing skills are easily surpassed by those of a drunk monkey with a pen) but if the entry requires more than clicking on a shiny icon to run, I’ll definitely spend more time trying to get an entry with a cool screenshot working.

Rate other games (and leave comments!)
While I am determined to try as many games as I can, I prioritize rating the games from the people who left comments on my games first.

Of course these “rules” aren’t set in stone. You can make a game for the Atari 2600 and still have plenty of ratings. You can also make a game with an uninspiring screenshot and win best overall.
Of course you could also cheat by making a ton of games under different names to rate your own games :P .

DoomCake – Postmortem

Posted by
Tuesday, April 28th, 2009 7:30 am

DoomCake was my first LD entry.  It was developed in Lua, using the LÖVE 2D engine.

In making this game, I learned a bit about Lua, and a lot about cake.  Read on to find out what a sugary zombie invasion might look like…

(more…)

My ‘timelapse’ and journal part 1

Posted by
Monday, April 27th, 2009 8:02 am

Behind The Dumb Episode 6 is out at last!  It’s the first half of my timelapse and journal for LD14!  Check it out.  You don’t need to rate it, because while I did FILM it all during the weekend, I certainly didn’t have it all edited and ready by then.  And the second half won’t be out until voting is over anyway.  Still, it should be amusing to some.

[cache: storing page]