Archive for May, 2009
Run (final)
FIXED PACKAGE DOWNLOAD (see Update 5) – 10MB – final


Plot: Try to beat the best speed category (#1)
How: Strafe jumping (a.k.a. bunny jumping, etc.). Run like hell and time your jumps.
Controls: A, S, D, W, Space (Press Escape to exit, Alt+Enter to switch between fullscreen and windowed)
Post a screenshot with your score if you win!
It’s actually more fun to play it than what it seems from these lame screenshots.
WARNING: Don’t play more than 10 minutes straight or it will mess up your brain.
Enjoy!
-Martín
MiniLD #9 is GO!
And the theme is….
TIME
Rules:
- All development will be done in 48 hours, solo, from scratch, except for whatever audio libraries you chose to use.
- You must incorporate sounds from the sample archive located here. You can do whatever you want with the sounds, and they do NOT need to be played back in an audio form, just incoporated SOMEHOW into the final product. You could, for example, procedurally make levels based on them.
- You may also download the entire soundpack here (warning – it is 156MB!)
- You may manipulate the sounds however you like. You can cut apart the loops to get one-shot samples, remix the .XMs or rip the samples out of them, or whatever.
- You may use as many sounds as you like, or as few as 1.
- The theme, Time, is just meant to give you an alternate starting point for your brainstorming.
Focus as much as you want on the soundpack, or not at all. - Edit: I am streaming the entire sample pack here for your listening pleasure. All told (without the MIDI data) there is 51 minutes worth of content. If you’re not already, consider joining #ludumdare on irc.afternet.org to discuss your ideas!
- Have fun!
The Triumph of Time 2.0
Just a quick note to let people know that I’ve finished the post-compo version of The Triumph of Time from LD14. It has many more levels, a tutorial and a level editor, and hopefully a more forgiving difficulty curve. I’ve also implemented many of the suggestions people have been making.
It’s up on my web page, where I’ll also be posting updates to it.
Mini-LD #9 is coming!
Just a reminder that you have 5 days to finish your research for Mini-LD #9. The rules are:
- You may use any code you write between now and Friday, May 22nd at 9:00pm EST, but ONLY if it pertains to playing or processing sound.
- You will be provided with a resource pack containing sound assets for use in your game.
- Sounds will be provided in the following formats:
- MP3/OGG
- XM
- WAV
- General MIDI songfiles
- Due to the size of the resource pack, I will make all sounds available on a webpage so that you can preview them and select the ones you want.
- All other code for your project must be written from-scratch, during the compo.
Here is the original announcement. Good luck, and see you on friday!
Cat Stacker v2.0
My LD12 entry, Cat Stacker, has grown up and now features assorted fruit. Also, instead of the original tetrisy controls, you can click and drag the current piece around with no time pressure (press A and D to rotate). There are 20 levels and it get’s pretty tough. Good luck! (^ _ ^)/

UUWD – Why I didn’t post my timelapse.
This is why:
Ludum Dare 14 Results Now Available!
Final results for Ludum Dare 14 are now available.
http://www.ludumdare.com/compo/category/ld14/…
Congratulations to all the winners.
A big thanks to everyone that participated. It was our largest turn out to date, with a final count of 123 entries. That’s nearly twice what we usually get. Wow!
Speaking of records, we also had a whopping 17 entrants record and share time-lapse videos during the compo. You can check those out here:
http://www.ludumdare.com/…/time-lapse-videos/
In addition, Hamumu produced 2 episodes of his internet video show Behind the Dumb from his footage. You can check out episodes 6 and 7 here, as well as the rest of the show archives here:
http://hamumu.com/behindthedumb.php
- – - – -
Ludum Dare 15 will be in August. Stay tuned for that. We have many ways now for you to do that.
RSS: http://www.ludumdare.com/compo/author/news/feed/
Mailing List: http://www.gamecompo.com/mailing-list/
Twitter: http://twitter.com/ludumdare
And if you just can’t get enough of Ludum Dare, stop by May 22nd weekend for MiniLD #9, hosted by destroysound. Check out this teaser post for more information.
http://www.ludumdare.com/compo/2009/04/20/mini-ld-9/
- – - – -
After much deliberation and deep thought, we’ve realized we’re not perfect. With 123 entries to sift through, the faults of our current system have started show their ugly head. So in an effort to improve, we’ve started collecting feedback for next time. Post any thoughts you have in the comments of this post:
http://www.ludumdare.com/…/compo-process-feedback/
We may solicit some help in the next couple months on the site or in IRC.
Thanks again everyone that participated, and we hope to see you again in August.
- Mike Kasprzak (PoV)
- – - – -
News Archive :: Theme :: Advancing Wall of Doom
http://www.ludumdare.com/…/ludum-dare-14-april-10th-12th/
http://www.ludumdare.com/…/ludum-dare-14-date-change/
http://www.ludumdare.com/…/theme-voting-has-begun/
http://www.ludumdare.com/…/final-theme-selection-note/
http://www.ludumdare.com/…/theme-advancing-wall-of-doom/
http://www.ludumdare.com/…/record-number-of-entries/
http://www.ludumdare.com/…/compo-process-feedback/
http://www.ludumdare.com/…/shal-we-extend-voting/
http://www.ludumdare.com/…/three-more-days-to-vote/
Ludum Dare 14 Theme Voting
Round 1, Round 2, Round 3, Round 4, Final Round
Ludum Dare 14 Time-lapse Videos
Speaking of records, here are links to the 18 time-lapse videos from 17 entrants in Ludum Dare 14.
The majority of the videos can be found on YouTube. In addition, Hamumu produced two episodes of his internet video show Behind the Dumb from footage taken during the compo. Now that’s hardcore.
pythong: http://www.youtube.com/watch?v=AH7Z_QjAlrE
GBGames: http://www.youtube.com/watch?v=LmcCyGY5IGg
agj: http://www.vimeo.com/4235554
destroysound: http://www.youtube.com/watch?v=IY7vMrKf4Es
Fiona: http://www.youtube.com/watch?v=X6TqFZE7Y14
Covenant: http://www.spellcasterstudios.com/…Timelapse.mpeg
demonpants: http://www.youtube.com/watch?v=CGy94EFjw1k
Notch: http://www.youtube.com/watch?v=abyL33Z6Z5I
ondrew: http://www.youtube.com/watch?v=HLFC40lIRA4&fmt=22
sinoth: http://www.youtube.com/watch?v=eVchR1Yoiuc
Jpfed: http://www.youtube.com/watch?v=SMr1uQADtaI
scionkiller: http://www.youtube.com/watch?v=PlkXEnpBiX4
LunarCrisis: http://www.youtube.com/watch?v=r5iXb51buMs
noonat: http://www.youtube.com/watch?v=9IjsHysbTUk
Frimkron: http://www.youtube.com/watch?v=nkbvkhGOR-0
Wiering: http://www.youtube.com/watch?v=6YqyUk5sIsE
Hamumu: Behind the Dumb EP6 and EP7
issues with python
ok so i’ve noticed the games with the least number of votes are python games that i haven’t been able to run because of some weird python error. i would imagine others have similar issues or perhaps don’t have python installed at all. i’ve just read something interesting, uninstalling old versions of python and reinstalling can help with issues. we’ll see how it goes..
wow it worked! i can finally run python games. one less stumbling block between me and games =]
python 2.6.2: http://www.python.org/download/releases/2.6.2/
pygame 1.8.1: http://www.pygame.org/download.shtml
A few strategy hints
UPDATE: Now with (spoilerific) screenshots after the break.
Since several people seemed to find The Triumph of Time pretty hard, I decided to give some pointers as to how to best play the game.
Let me describe the core mechanics of the game. As soon as you have built a pylon next to a star, it will extract particles from it at a fixed rate. The larger the star is, the more particles are extracted per time unit. Building several pylons next to a star will not increase this rate, the particles will just be randomly distributed over all pylons. The particles will then go on to more or less randomly distribute themselves along all barriers which extend from their current pylon.
At a fixed time interval (every two seconds, if I recall correctly), the cloud of antimatter will expand in every direction. It can only be blocked by having a barrier which is powered by particles in its way. However, for every grid cell along the barrier which the cloud tries to enter, one particle on this barrier will be destroyed; when all particles are destroyed, the barrier falls.
So here are some rules of thumb for successful play:
- Try to tap each star at your disposal as early as possible, especially the large ones.
- Try not to lose any stars to the cloud as that will severely cut your particle budget.
- Do not build any superfluous barriers within your territory. Every particle that swirls around on a barrier which is not at the frontier does not contribute to your defenses and is essentially useless. So, try to keep the paths which transport particles to the frontier as efficient and short as possible.
- Keep the frontier as small as possible. Every frontier tile (i.e., a cell on a barrier which delimits your territory from the cloud) will cost you a particle every two seconds, so minimize your surface. PRO TIP: It’s well known that the shape with the smallest ratio of circumference to area is a circle. It may help to keep your territory roughly circular.
- I’ve found that once a critical barrier has fallen, it’s often very difficult to recover. It’s better to stake out your territory on the conservative side rather than lose it all.
I hope this helps a bit. After the break (SPOILERS): screenshots on how to solve the first four levels.
Timelapse + Journal part 2!
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!
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
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]
I decided to come back.
Welp I’m here. I might participate in future compos.
PET THAT KITTEN! Postmortem
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.






