LD25 December 14–17, 2012

None Shall Pass : Post-Mortem

I’ll start this off by saying that I really enjoyed this Ludum Dare. Last Ludum Dare I participated in (LD24) I didn’t like the game I created at all. Well, I sort of liked it, because it was the result of my hard work. But I didn’t like it as a game. This time around I quite like my game. It isn’t the funnest, and the AI I implemented sort of sucks, and one can win the game by holding attack while to the far left of the screen, but I like it.

Looked at others’ post-mortems to see what to do, so here goes (bullet-points for brevity):

The Right

– I successfully completed the Ludum Dare! (for the second time)
– I created a better game than my last LD
– I implemented the style of art that I was hoping to, and pretty successfully in my opinion
– I implemented some form of AI (although the knights are not very smart still) which is my first time trying to create AI
– I actually commented my code while creating my game
– I managed my time pretty well
– I am pretty happy with the audio I created
– I actually want to continue to work on the game and hopefully add different attacks and a new way to block, a delay between attacking, less cheatability, and better AI
– I really appreciate everybody’s comments :)

The Left

– I think the game is too long for how monotonous it is
– I agree with one reviewer that the gameplay is bland, which is why I hope to add more to the game to mix things up
– I would have liked to make the wave/kill HUD(?) look better
– I feel like I was oblivious to the outside world while I was working (is this a good thing?)
– I don’t know what else to put here
– I like reviewing other peoples’ games, but I find rating hard, because I appreciate everybody’s games and think they are all great

 

And now a screenshot to make this post less boring:

@_wampa__stompa

I like the way the legs look when the knights jump :)

Eco Terrorist: Results

After 3 days of developing (only had 9 hours of sleep). We finished level 1 and started working on level 2 but sadly, level 2 isn’t ready (but we did put in a secret WIP preview in the latest and final LD build).

What I learned from this Jam: I should have just used placeholders for the graphics so I can work on the features more. I just realized that while I was working on level 2

I have A LOT of cans on my desk. Need dem sugar to keep me running. Things really started to heat up Heater

Game: Eco Terrorist

Here is some pretty pictures. I hope it’s not too CRAPPY Toilet lolz

 

Da Desk

 

Da Fridge

 

A couple of screenshots:
Splash

Intro

Explosion

 

 

Comments

Suese
19. Dec 2012 · 00:01 UTC
I never could find the easter egg. I even tried three times to find it. It’s kind of ironic that massive 3-monitor system being used to make a game about conserving power and being environmentally friendly. :p
haloflooder
19. Dec 2012 · 00:11 UTC
Try the bathroom 😉

Amongst Shadows Post-Mortem

Well, here’s my post-mortem for Amongst Shadows. This is copied from the original post on my website.


Theme

The theme was “You are the Villain”; I had hoped it would be “End of the World”, given the date and that I had a good idea for it, but that was not to be. Now this was a somewhat difficult theme for me, because I hate playing characters of the evil archetype; I wasn’t going to create some mindless mass-murder simulator. I decided to make the morality of your actions somewhat ambiguous. You’re on an infiltration job for some mysterious organisation, you’re probably a mercenary, making you morally grey. Furthermore, it isn’t clear whether this organisation is good or bad, though it’s hinted that they’re bad.

This brings me to a more philosophical question, who is the villain? To the guards, you’re clearly the villain. To the organisation, you’re a good guy. The villain is a matter of perspective, and who you asked.

What Went Right

The AI I created for the guards is probably the highlight of the whole thing for me. I’ve never really delved into AI before, so it was a new experience for me. Considering that, I’m quite happy with what I came up with. The guards have a field of view, and they can’t see past solid objects, nor can they see you when you’re hiding in the shadows. The have a level of awareness, they fire at you, and search around your last known position when they’ve lost sight of you. Ludum Dare certainly fosters rapid innovation.

In terms of visuals, I was quite pleased with the animation work I was able to do, especially the guard’s death animation. The lighting worked quite well, although the light shapes were a bit rough.

Other than that, I was able to work around 27 hours in total, a new record for me.

What Went Wrong

I was planning on using LÖVE this time, but I hadn’t thought about level loading and editing, and tiled collision (things that FlashPunk makes easy). Ogmo Editor has worked quite well for me in the past, but it exports to XML. I tried various Lua XML solutions, but none seemed to work properly. Besides that, I’d tried tiled collision in LÖVE, but I just couldn’t get it working properly in time for the competition. It’s a real shame, because LÖVE has so much more capability than Flash/FlashPunk, especially in graphics and physics.

One major post-release problem seems to be input lag. I don’t know why, but as soon as you run the game in the browser, there’s some minor input lag that makes it difficult to backstab guards, and makes it slightly harder to move. Another reason why I wish I could’ve used LÖVE.

The game was shorter that I’d have liked, but I just didn’t have the patience, nor time, to create many more levels.

Besides all that, there were points where I was very worn out, and starting to get emotionally down. The work catches up to you, and anxiety creeps in; it goes away after time, but it’s not pleasant to go through.

Conclusion

While I had fun here and there, and ended up with some great innovation in AI, I don’t think I’ll participate in the main competition for some time. There are good periods, but even more “I want to end it” periods. Perhaps I’ll participate in the jam next time if there’s others to work with; that might be a more laid back experience.

Anyway, thanks for reading.

Tags: post-mortem, postmortem

Sorting submitted games by play type

I would love it if we could sort submitted games by the play links that were submitted.

For example, if I can only play Linux games, it would be great if I could search only games that have a Linux play link.

Some “advanced” search options, pretty please? :)

Comments

19. Dec 2012 · 02:57 UTC
It might be problematic, since the “type” of platform it is is a string, not a selection (e.g. “Web” might also be “Web (Flash)” or “Web – Unity” or “Flash”). But I agree something along these lines would be super helpful. =)
Gaeel
19. Dec 2012 · 08:23 UTC
Another issue is that some games have other ways of noting which systems they can be played on.

For example, mine says “All systems” since it’s a java project which launchers and libs for different systems all packed up in one.

Plunder Postmortem

I’m glad I was able to participate again this Ludum Dare. This is my third jam, and first time submitting to the Jam rules. While that’s technically true, as I submitted on Monday, I didn’t really start until 24 hours had already passed. That, coupled with the solo work and the starting from scratch, makes it feel to me more of a compo entry, but alas, I have no say in the matter. Onto the postmortem.

Plunder Postmortem

I decided to give Lua and LOVE another shot this time around. I have been using the framework off and on over the past year, and really enjoy how rapidly you can develop on it, but the lack of true Object-Oriented Programming techniques have hampered me in the past (and as you’ll read later, nearly caused me to bail this time around, too). There are plenty of great libraries out there that create a pseudo-class system, but they aren’t as fully featured as you’d find in a natively OOP language because…well…of course they won’t be!

The Idea

When the theme came out, I immediately started think “Tower Defense”, because it works extremely well with it. Simply put a princess in your tower and done. But As usual, as soon as I started looking at what other people had been posting I once again realized that the first idea is often the same idea everyone has. I could have just rolled with it, because even though it’s a bit obvious it’s clearly a good idea, but my first Ludum Dare entry was also a Tower Defense game, so I wanted to try something different.

I eventually came up with the idea of a rampaging boss razing and pillaging a town, all the while having to fend off various heroes along the way. The boss would be clearly more powerful that an individual hero, but though sheer determination, they could eventually whittle the boss down to defeat it. Thinking back, I must have gotten the idea from a recent play through of Rampage: World Tour with a buddy of mine, because it hits all the same beats. I even was going to have “peasant” characters that the boss could eat to regain health, and a destructible environment.

Programming

I tore though the framework relatively quickly. Most of it was all fairly benign code. A Hero class with subclasses for the particular Heroes, a Boss class, a Block class for the environment. I started out exclusively using vrld’s HUMP libraries, but I ran into a few snags (the big one I later figured out was of my own doing), and switched to kikito’s middleclass for my pseudo object orientation. I used vrld’s HardonCollider (you read that right; it’s the LOVEly thing to do) for my collision detection, although if I had known about it earlier, since I only used AABB’s, I could have used kikito’s bump to lower a bit of overhead.

Art

If you look at my game, you’d think I was still in elementary school! I have come to realize that I am a terrible artist. I plan on putting in some effort of the school break looking into Inkscape and vector graphics, because GIMP is not cutting it for me. Too much freedom, not enough “tweakability”.

Challenges

I had three big challenges, all of which stem from the HardonCollider library and my interactions with it. Granted, I have not really used it all that much, so I maybe it’s just growing pains, but it ended up costing me a lot of time that I could have used polishing the art or adding some more mechanics.

Is your mama a llama?

You are supposedly able to use the HardonCollider objects inside your classes, simply adding to the resulting table your additional information. But it did not seem to interface too well with middleclass, because I could never add those objects into HardonCollider’s object pool if I tried to assign its created object to self. I assume it has to do with the metatable being overridden by middleclass, and therefore HC cannot guarantee that what I am passing in is a HC object, but I ended up having to create a separate bounding box field inside the class to hold onto the HC object’s information.

This might not sound much of an issue, but you have to understand how HC works. After you add your objects to its object pool, you write callback functions to describe how the objects should respond to one another. However, the objects you get in the callbacks aren’t attached to the class objects you created them in! Luckily, in Lua, this can be fixed easily without having to change any of the libraries code: just add a field to the HC object that points back up to the the object’s parent. You just then have to be aware that you have a circular path here, so you need to be careful about how you use those objects.

Calling for disposal in a garbage collected world.

Lua is garbage collected, which helps greatly when dealing with a quick project like the game jam entries. And most of the time, it works like a charm. But here’s the tricky thing: Lua has no proper way to define a destructor (or dispose method for a garbage collected equivalent) for non userdata (i.e. C API interfacing) objects. So, when you do something like say, registering an AABB with a collision detection library, and then say, change levels, unless you are keenly aware of this fact, even though you’ve lost access to the parent of the AABB, which should have destroyed the AABB, it persists in the ether, since the collision detection library has no way of knowing that the encapsulating object is out of reach of the program. (It really isn’t, considering that I had to attach a reference to the parent on that object to fix the earlier issue).

If destructors were a part of the Lua lexicon, then maybe this wouldn’t have been an issue because I would have had to thought about this beforehand; but when I run a few checks and see why my levels are changing even though my boss character is no where near the door, everything sudden falls into focus, and I curse to the heavens. And, as usual with things like this, the bug is often super simple to fix compared to the amount of effort required to find out what exactly is causing the bug.

Why did we decide to move our origin again?

Everyone knows (or should know, otherwise how have you made a game for Ludum Dare) that most 2D graphics libraries out there choose the top left corner of the screen to be the origin of their Cartesian coordinate system, and that the positive y-axis points downward from that point. I understand the decision to make positive y point down given that the origin is now in the upper-left, but why make it there in the first place? Why not follow the convention of mathematicians everywhere and make the lower-left the origin?

Besides random pontificating, the point of that was to show how the convention works. Most people extend that convention to everything that requires a coordinate system within their code. If you have a local coordinate system for an individual image, the origin is the upper-left. Mouse movement? Upper-left. Consistent across the board.

HardonCollider does this as well, but for whatever reason, when dealing with it’s movement functions, it decides to use the centroid of the object as it’s movement. I can only assume that since HardonCollider fully implements SAT collisions, since it can handle any convex polygon, having to calculate the “upper-left” might be too much of a hassle when using any other point would also serve the same purpose when moving based on velocity, but when you have a moveTo function, you’d think that you’d be moving the upper-left of an object to the specified point, not the centroid.

This one might be on me more than vrld. Once I actually took the time to read the reference materials I saw it was stated fairly clearly, but it was fairly annoying while I didn’t know, and caused me to implement walls because I couldn’t understand why the images would jump in the air whenever I tried wrapping them around the screen.

Things I would have done differently

Don’t try to be as ambitious as I was. I think next time I do a game jam (which likely would be the Global Game Jam coming this January), I’ll try and pitch just making a simple platformer. No enemies; no weird mechanics; just a finely tuned platformer that I could finish rather quickly and spend most of my time polishing rather than implementing critical code at the last minute.

Work with an artist, or hone my art skills. I was reasonably happy about my game until I started adding art to it. I didn’t have much time (nor honestly enough energy) to spend on making some decent art, so when I threw together some art to replace my sweet rectangles I had been using, everything looks so incredibly ugly. I almost thought this was too embarrassing to turn in. So, hopefully by next Ludum Dare, I’ll either have gotten a team together for the Jam, or have greatly improved my art.

Timelapse

Here’s a timelapse of my stream from the weekend. Not much to say really. It’s good.

Robo Jerks – Post Mortem

“I can totally make a turn-based strategy game in 48 hours!” I stupidly exclaimed at the beginning of the Ludum Dare 25.  I aimed high, eventually aimed for progressively lower targets, and still missed.  My game, Robo Jerks, is in a playable state, but it is far from complete.  But it does have an orphanage to destroy, because those smug orphans need to be knocked down a peg.

What went well

  • LÖVE is so lovely, and it has the best library names.
  • I’m not a huge fan of pixel art, so I’ve mostly stayed away from using ASEPRITE.  However, this game had me making 32×32 images/tiles, so I gave ASEPRITE a try.  Holiest of craps, that thing worked wonders!  The art for this game was relatively painless.  I’m not saying the art was great, but it wasn’t a painful, depressing process like it previously has been.  Then again, that might just be because I was only making 32×32 tiles.  Regardless, I’ll definitely be using ASEPRITE for things in the future.
  • Trello!  I used Trello to organize and keep track of what I needed to do, which helped me stay focused.
  • The theme!  You are the villian?  It’s great because I could pretty easily make any kind of game I wanted to.  I didn’t panic for a hour because I couldn’t think of an idea.

What could have gone better

  • I put off adding sound and music until the end, which was a mistake.  I should have definitely worked on the music earlier, since music isn’t that hard for me.
  • I should have practiced (i.e., make warm-up games) and worked on my code base a bit more.  There were definitely some libraries that I wish I had made beforehand that I definitely will be making for future LDs.
  • I spend a couple of hours at a party on Friday.  That was a social obligation I should have neglected.
  • I rewrote the in-game UI because the first thing I did was make a really simple, keyboard-based UI (that took longer than I planned on) just so I could have units do things.  And the kicker is the rewrite wasn’t anywhere near what I originally intended to do, but I had to settle because I was low on time.  Hence, I ended up with a UI that was clumsy and frustrating, especially to those who didn’t spend several hours playing it.  I should have just taken the time to get the UI right the first time.  That would have likely saved some time.
  • The GUI library I made for LÖVE was missing some features I thought I implemented, which caused quite the headache.
  • The menu screens: boring.
  • I really would have liked to have a multiplayer mode.  In retrospect, I could have squeezed in the time for that.
  • I intended on having an additional use for energy: abilities.  The idea was you’d have these buildings you’d have to build, and for each one you build, you can use an ability (at the cost of energy); e.g., healing a unit, allowing units that have used their turn to go again, and bombing an area to damage units.  I had to cut that.

What went horribly wrong

  • Just like last Ludum Dare, I planned on doing too much.  I though I was planning out a manageable amount of content, but had to cut out a lot of stuff (what does an alot of stuff look like) in order to make progress.
  • AI.  I completely underestimated how much effort the AI would take.  I originally wanted the enemy army to be able to build units to fight you, but I didn’t have time to implement that.  I also didn’t really have any time to implement any intelligent AI.  Units just move towards your base (without thinking about the attack range of your units) and attack the first unit within range (without thinking about the health of your units).  I originally just wanted one level, but since I didn’t have the time to get the AI right, I just quickly added 2 more levels (and a weird-looking level select screen) with more enemies.
  • Since the victory condition is destroying the orphanage and the AI couldn’t produce units, there was a long, boring trek across the map to destroy the orphanage after defeating all the enemy units.
  • Originally, I intended on having a fog of war and an extra unit: the scout.  The scout’s purpose was to provide vision, especially for long ranged units with little vision (basically, the artillery unit).  I had to drop the scout as soon as I dropped the fog of war.  However, the units weren’t really all that balanced after that point.  If I had originally planned for having 3 attacking units, I could have had a nice paper-scissors-rock thing going on.  The infantry unit is cheap, but pretty useless.  I wanted to give each unit abilities in order to fill the gap left by the scout, but I had no time for that.
  • The maps: so boring.  When I realized that adding terrain you couldn’t move across would be nice, I realized that I would have to rewrite and test a lot of things to make that change.  So that went to be bottom of my to-do list, never to be seen again.

Normally, I fiddle around with my game for at least a couple of weeks after a Ludum Dare.  I distinctly remember saying “NOPE!” to that when I submitted my game.  I claimed I didn’t want to see any code for several days (which would interfere with what I do for a living).  That was a filthy lie, I was working on the UI the next night.  I might even follow through and release a less-terrible version in a couple of weeks…but I’m not sure I’d get my hopes up.

Sir Cat postmortem

http://www.ludumdare.com/compo/wp-content/compo2/201083/5160-shot0.png

Sir Cat postmortem

 

Overall, I’m exceptionally happy with how this turned out. I took a near-complete leap of faith and used a bunch of new tools- new graphics editor, new development setup/OS, new IDE, everything except the kitchen sink and the programming language/library. I used the following new stuff this time around:

  • Krita for Graphics Editing- I was so impressed with this that I’m no longer using anything else- this is really a great piece of work. Open source too!
  • SPE for IDE- Admittedly I’ve been using python for the past few years and never fooled around with SPE. (Seems like a crime against nature, doesn’t it?) The tool did well, but the debugger doesn’t like lots of entities at once, so at a point I was forced to debug from the command line.
  • Ubuntu- I’ve done a little bit of development on it, but nothing much at all, so this was a new experience for me as well. I’m never developing anything on anything else again, it was such a breeze on Linux. :)

The rest:

  • Python
  • Pygame
  • Old code from LD23 (“Dreamworld,” if you’re interested.)

What went right: So much went right with this time ’round that I can’t even begin to list all of them, but I’ll list a few, because I know you guys wanna know :)

  • Python- never lets me down, never gives me obscure pointer errors
  • Graphics- Normally I’m relegated to glorified programmer art. Krita let me do a whole lot more, and I’m more than impressed with the results.
  • Angular velocity- Learning trig in my math class, naturally I wanted to apply it, so I added angular velocity for the player and mice, and while through post-compo playtesting it now seems (to both me and the people who’ve commented on it) a little annoying, I think it really brings out the mice as an innocent “feather.” I like the effect.
  • The idea: Normally my ideas are way too far out to reasonably complete in 48 hours. This was the first which I felt I’ve truely fulfilled in the best of my abilities given the time
  • Goats: I added a goat- a laser goat made out of yarn attempting to take over the world- naturally.

Where I found gremlins hiding:

  • One short, confusing level- Many people I’ve shown the game to are confused as to how to win the game- I explain that there’s a sign that goes across the screen, but even then it seems too vauge…
  • Misaligned text- I don’t like pygame’s text, it doesn’t let you specify “centered” or anything sane like that, so I had to guess as to positioning…
  • Python/Pygame: I think this will be (sadly) the last entry I make with python- I’ve hit upon many limits of it in making this game that wouldn’t be there on other platforms. It’s a great learning tool and really helped me get to this point though.
  • Py2Exe: eeevil eeevil tool, I had to use python 2.5 (when Itanium was a thing and support for windows 9x was *starting* to look old…) to get a nice .exe for windows.

Overall, I love how it turned out, will definitely be making a post-compo version, and who knows? Depending on how much positive input I get, I might just go all out with this one- That’s how much I love it.

Finally, some advice to first-timers:

If you think you didn’t do well, that you didn’t try, or anything negative, it’s not true. You just found out how *not* to make a game. This is my 5th LD, and the first which I think I actually did OK in- it took me a while to get it right, and it might take a little while for you too- just know that each time you do it, you get better, and not just by a little bit either. You start noticing yourself doing things you never thought you could do, or even dream of, during any normal time. LD is not a competition, it’s a learning experience. You don’t win LD, you learn by doing it, that’s what you take away from it. Hell, you just had some of the most productive 48 or 72 hours of your life- even if you didn’t finish, you still have (at least some of) the code, the art, and the idea- and most importantly, you worked hard on it and learned from it. You don’t get to be Notch without learning how to make a ton of separate, unrelated games. That’s the point of LD, and if you had fun, you won it.

 

-JoeCool17

Play and rate my entry here!  http://www.ludumdare.com/compo/ludum-dare-25/?action=preview&uid=5160

 

Tags: post-mortem, postmortem

post-mortem

So this was a fun one. I was not able to work on my game on Monday and all, also ended up only being able to work on it for a few hours on Sunday. I got a lot further than I thought I would and I am pretty happy with how it turned out.

This was one of the themes I saw on the list that I did not want to do, so it took me awhile to come up with an idea I liked. I ended up with the stealth based 3d platformer mainly because I had never tried to do a stealth game before.

What Went Right

The Level Creation went well. Unity makes it easy for one man teams to make larger levels and get collision working

Enemy patrols and detection- They are alittle jerky when turning around, but in all I like how the enemies move around. People seemed to understand right away that they needed to stay out of the red light in front of them

The Camera- about half way through the day on Saturday I threw out my camera script and re-wrote it. Giving the player full control over the camera has its drawbacks but since you play as such a small character the player needed to be able to look up and around them to find their way around.

What Went Wrong

Player movement- This is the big one. I made my movement and camera together at first, so when I got rid of my camera my movement suffered for it. I was not able to redo it in time. Because of this the player moves too quickly at times and can be hard to control.

The Map- Just play the game and you can see how this went wrong….

The Tutorial- I waited too long to do the tutorial and because of that it is not very good.

 

What I wanted to add

A real map

In game dialog, some witty remarks from the bug bot and stuff

better lighting, me and unity still don’t get along when it comes to light

better controls

More toys, I had lots of different gadgets I wanted the player to be able to use, but I never could add them in

 

All in all I am happy with how far I got. Hopefully next time I will have my full team to help me

Tags: post-mortem

Memex: Artist’s Desktop!

Play Me Here!: http://www.ludumdare.com/compo/ludum-dare-25/?action=preview&uid=10976

Hey guys! While I figure out the inner workings of my timelapse (aka; pruning it of excess shots and figuring out the best song to go with it), have a peek at my Illustrator desktop post-LD completion. :) It’s kind of crazy, and I honestly think this was the most ridiculous desktop I’ve had in the past 3 LD’s Zeik and I have done.

Anyways, despite the fact were in a Jam, 97% of the assets were made by me right when the Jam started. (The other 3% being the 7 or so stock photos I used from sxc.hu)

I hope you guys enjoy! It’s full of insanity, AND OMG SO MANY LINES AND ALIGNMENT-OBSESSIONS!

Little Death Adventure : Post Mortem

 postmortem_lda

The course of action 

It is our first Ludum Dare… Our creative process is simple, one emits an idea, the other takes what is pleasing and reformulates something else or reverse the idea and so on.

So we try to find the best in every ideas. With an old friendly bottle and some chocolatine’s, we took 1 hour to find the idea, not the most original one, but one which the both of us agreed and liked.

We had some issue with the theme being you are the vilain and the slaughter of newtown. What to do, jump on it, take from it, shall we change our game to make something different. All in all the theme was a pain, processing violence in that climate of “game too violent” is sh*t. So we took the humour way.

 

Take random guy, choke him to death, make bim bring justice to innocent souls… Why ? are we just values on death pathes ? Why someone with no way had to die more than… some other ?

/end of brainfuck. go make something fun and highlight the ridiculousness of the situation.

I unilateraly agreed to start an engine from scratch drawing from my personnal lib and borrowing deepnight and benjamin’s lib. Take from the best. Always.

A quick start with the design of the character and the main bg  quickly made. At the end of the first day, we had all the main character animation and a full bg for the game, the platformer engine was roughly functionnal with some xml level design and sprite sheets.

The gamedesign was very clear from start, make a harsh timed platformer. Time + points is a good constraint easy to tweek.

Matthal quickly agreed to participate for the sound and his music adds lot of depth, we knew very hearly the game was going 111 second why ? because 666 is way too long so he tuned the song and it was perfect !

Went to sleep at 3am, and came back to work at 9am.

The second day we focused on content creation and bugs. BM produced 150 punch line in the morning.

Gyhyom operates in stances, he just did the introduction in 2 hours, props creation and collision tiles took a lot of time.  Then at  2 pm he crashed. His mind were absent, did no longer understood anything. BM in despair. We had no level design and no good tiles. BM goes desperately chasing his bugs.

Hopefully, starting 7pm, and with the help of a good meal, Gyhyom’s head restarted, and he went all crazy : the level design was made in 1 hour, and he had plenty of time to do the title screen and the html page for the hosting page of the game. We were saved :)

BM added some feedbacks like character slicing, glows, tried to iterate over playability and intuitiveness.

BM struggled a lot around game timing (flash sent me update every 15ms 1ms 15ms 1ms dunno why…) but i had started too late. so i just unlocked the game in 60 fps and submitted :)

What went right :

– content creation was quick if we except blackout phases

– the game is pleasing, hardcore with some glitches but a fun ride.

-writing a platformer engine from scratch  is coooool…

– Haxe our old friend, thanks so much ncannasse to bring such a powerful tool for game creation. The MT libs and tools like hxods (bless ya) , bmp embedding (soo gooooood) and xml fast (bless ya twice) allowed us to speed up content creation sooooo much.

– sound integration and music what nice

– we are already professionnal the exercice is soooo stimulating.

What went wrong :

– …but writing an engine from scratch costs much :)

– we underestimated the 48h timing constraints.

– game scope is limited… we could not push all the ideas in the game we would have added some levels, combo system and “slowing” patterns. Dying would habe been of the party too. and I miss scythe interactions (grip) :)

maybe for an extended version :)

 

Conclusion

A very good experience this ludum, but very tiring. It ‘s a bit like going to do live concert after years of studio. Refreshing, exhausting, stimulating. We  hope that all the ludum’s members will enjoy our game ! txall

A villainous Post mortem

So for LudumDare25 i created a pseudo 3D bank robbing game. At first i thought it was a really great idea but i bit off far more than i could chew.

 


THE GOOD:

  • I made a passable 2.5D ray caster from scratch with no libraries.
  • It was in a playable state by the end(Ill get into that later).
  • I HAD FUN :) :) :)

THE BAD:

  • For some reason some people have been saying that it’s unplayable. I can’t understand why because i built it on a computer with a 600mhz processor and 2g of ram, so I’m fairly sure it’s not a performance problem.
  • There was only one level, one enemy, and and one objective.
  • There was no sound or polish.

THE UGLY :(

  • There were two horrid bugs, one that crashed the game and the other that rendered sprites through walls(Can’t believe i neglected to fix that ).
  • The frame rate did drop once you got really close to sprites.

IN CONCLUSION:

I made a video of me playing the game in the uploaded state on my PC to show you what it should look like.

All in all though i had a great LD and i can’t wait for the next one. Can’t wait to play everyone’s games.

(try 😉 )Play it here

Watch the video here

P.S the frame rate in the video is shocking mostly because i live streamed that and my internet is crap

cheers, kix

 

Tags: java, ld25, post-mortem

Comments

loren
19. Dec 2012 · 04:02 UTC
I’m able to run it from the jar (win7 i5 processor)

Making-of : Keep Our Dungeons Evil

Creating a building and managing game requires a lot of forethought and planning. And a good one needs to be rich enough to be a fun and interesting challenge. But when the theme “Your are the Villain” came up, it was hard to resist the temptation of doing a tribute to Dungeon Keeper. So we decided to do it anyway.

Titlescreen for KODEscreenshot from KODE

Keep our Dungeons Evil : http://www.ludumdare.com/compo/ludum-dare-25/?action=preview&uid=10263

What we managed to get working in time :

In KODE we wanted to add a nice twist which was to have an inspector arrive and check that your dungeon was truly an example of evilness. We thought that would suggest some backstory of a higher hierarchy where the player is only managing a branch of a greater evil realm. The kind anyone can relate to, since we all have someone to respond to at some time or another.
We’re really glad we managed to get that in the game in time. We kept it for the end, in case the other more urgent challenges we had to address first wouldn’t allow for that added layer of gameplay.

Also six buildings (corridors count as two because of turns) PLUS three animated characters is actually a lot to design and get working properly. Not only did the artists barely work fast enough to get them done in time, but some of them posed some serious coding challenges. And sleep deprivation really didn’t help in that respect. Especially  AI pathfinding was a big mouthful. Our coders must have spent half the time getting that working for the game.

What we needed more time for :

So the player has to place each bloc manually and you can’t really turn them otherwise than selecting them as different blocs. But give us a break, we only had one weekend ;).
The lava pit clearly deserved more functionality than it’s current evil aesthetic one. Even if it counts a lot in the demon inspectors eye. Maybe in a future release you’ll be able to drop someone in there.

We decided early on we wouldn’t go into fighting. It can also be interpreted as a game design decision as much as a time management one, but it clearly deserves more time to think about. And it could have implied more characters (three is enough for one weekend).

Some of our designs planned for more types of building like trapped coin boxes or canons pointing outwards for some more evil kudos. But you just have to know when to stop.

And more spells would have been a blast!

In any case, all I can say is, I’m having a ball just playing our game, which isn’t a very objective statement since I worked on it, but it still showed I loved working on it and I hope it will show when you try it.

ONE LAST THING : one of our late bugs is that everyone seems to get the WIN screen when finished. but you’re not THAT good. Until we sort it out I would suggest you to put your score in your comments to know if you are truly evil or if the goat only says that because it loves you all, deep down inside.
I know we don’t. But we are very evil, we hate everyone ;)

Have FUN !

lose screen from KODEwin screen from KODE

KODE - Lavapit conceptKODE - Proton Canon concept KODE - Hatchery conceptKODE - INspector conceptKODE - goblin conceptScreenKnight01

 

Please play and rate our game !!

 

ECHO CHAMBER Soundtrack available

You all have been so great when playing my game and rating/commenting! This is technically my first Ludum Dare (I participated in the charity jam and warmup), so to experience the community has been a real treat.  Thank you so much for being so cool.

A few people mentioned enjoying the music for the game, so I uncut the cut parts and have uploaded it to listen and/or download.

I hope you enjoy it! Keep playing all the games, there are a ton of great experiences out there!

 

Automatic Music Composition Tools

H-JEM
Random music composition tools. Better music means more polished games. Random generators are fantastic for inspiration, even to hardcore composers. Compiled with the help of Zeik and ChainedLupine in the LD chatroom.

These are all free except Easy Music Composer, and ACS which is shareware and in my opinion is amazingly useful even without a pro license. For me at least, ACS has an almost 1:1 ratio of success; it prompts immediate inspiration. I’ve personally found Wolframtones to produce quite meaningful ideas as well

music_2

http://codeminion.com/blogs/maciek/2008/05/cgmusic-computers-create-music/
Kindly suggested by AdventureIslands in the comments below. This is quite mind-blowing in fact.

wolfram-tones3

Wolframtones     <- algorithmic, very interesting pattern. Has preset genres like jazz, world, rock, etc.
SoundHelix-logo

 http://www.soundhelix.com/  <- Sound Helix  cool pattern-based compositions

( http://www.soundhelix.com/audio-examples )

images

Circuli   http://www.earslap.com/projectslab/circuli <- ambient generator

scs_emc2

Easy Music Composer http://www5f.biglobe.ne.jp/~mcs/emc.html

images

http://hp.vector.co.jp/authors/VA014815/music/English/autocomp.html< very very useful musical ideas. This is a must

*

Greasemonkey’s Autotracker-Bu <- Run “python autotracker.py”, you will get an .it file, then use your favorite tracker ( like http://schismtracker.org/wiki/Schism%20Tracker ) to export it to .wav or .mp3. ( link and description provided by jarnik )

*

http://www.bemmu.com/music/index.html <- music driven by a simple math formula. interesting convoluted results

*

http://www.earslap.com/projectslab/otomata <- freeware online version, paid iOS app

Please signal boost this post and if possible get it on the official site. What is a community without communal spirit!

Also be sure to suggest more of these

Tags: #LD48 #LD25, music, resources, tools

the Throat of the World

we didn’t finish.

but we are gonna be working on the game along the week :)

this was probably one of the most creative and inspiring weekend in my life. we where a team of 5 doing 2 different ideas.

200% fun.

here are some sprites for you to see. the next update is gonna be the game!

goat bye!

the-throat-of-the-world_sprites

Salut, très bon jeu.

Bonne continuation.

 

LS-MAN Postmortem

It is pretty depressing to work on your idea for a few hours on Friday night only to realize that at least one other person is doing the same thing as you. I had looked at a Google image search of “Atari 2600” just to see some basic game implementations and ponder how to reverse them. When I saw the Pacman game, I realized that it was something simple enough to do in 48 hours, and complex enough to not be just a concept demo (I think I fell somewhere in between). A game where the ghosts are trying to trap the Pacman wouldn’t terribly difficult: minor AI, simple screen, few animations, basic controls. It seemed like a good idea, and it was, which is probably why someone else selected it, too. After Friday I refused to read the “other” journal for fear of 1) unconsciously directing my creativity choices and 2) to not get discouraged and quit early. I continued on.

On Friday night I decided I wanted to use a mouse select->command scheme for control. Ghosts randomly move around the map until you click the ghost and tell it where to go. It will follow the path to the destination, where it will return to roaming. I didn’t want them to just stop somewhere because then you’d be able to camp out and essentially block Pacman while you herded the ghosts at your own whim. Having them roam would make it more difficult to trap Pacman. Friday night, after I created the map and creature code, I implemented the pathfinding system.

Most of my wasted time on Saturday was spent implementing the pathdirecting and pathfollowing system. This drove me nuts and I nearly threw it at the wall. I don’t think I ended up using most of what I did because it got to complex. I was able to rewrite it so it made more sense and was easier to debug. Once this was done, the ghosts could be directed, but also wander. I added some sounds and replaced some of the placeholder rectangles with bitmap graphics. At this point I had the makings of a game, but not things to make it an actual game: game over condition, accomplishment measurement or general polish.

gameplay

I don’t actually remember much of what happened on Sunday. I worked on some of the same things, but by the time there were only a handful of hours to go, I knew I wasn’t going to be able to make it. The deadline came and went, and I was onto the Jam. Monday I had to work, but I was able to spare a couple hours afterwards to add the game conditions and finish the UI to give the illusion of a finished product before submitting.

What Went Right

placeholder graphics – Usually I sketch things out while I flush out design and end up using them as the graphics. I like the resulting style. It give it that cheap cartoon animation feel. For this entry, however, I didn’t sketch a thing and used placeholder squares and lines. It let me implement features earlier instead of spending time trying to animate or adjust images. I don’t think sketching things is ever bad; it can help you bring your game idea to life even if you never use the image in it. Placeholders force you to work on what is more important and spend less time on things that would get removed or reduced near the deadline.

pathfinding – I used a couple AS3 classes from Untold Entertainment (which only needed a couple tweaks, see their comments) and it worked out really well. There are a few things that I could do to make it more efficient, but it was good for this task. I will definitely use it again.

codebase experience – I’ve been using Flashpunk for a couple years now, so I am getting much more familiar with it. I have built up solutions using it and have been able to leverage those solutions in future projects, reducing some wasted time trying to ‘reinvent the wheel.’

I submitted it! – At the end, I managed to get something that could actually be considered a game, even if it’s not up to the finished idea in my head. I really didn’t want to submit a demo or sandbox because that doesn’t really count as a game.

What Went Wrong

endgame came late – I didn’t actually get the endgame stuff in there until the last hour before I submitted. I should have worked on this earlier. I think next time I will be sure to add the endgame circumstances, even if the rest of the gameplay isn’t there. I still have to write gameplay before the end, but this would allow me to push the more dropable stuff to the end in case time got tight.
reconnaissance – I probably should have investigated my partner-in-idea’s logs at some point to see if there was something I was indeed missing. Based on the review comments so far, I really should have added a better method to select the ghosts, perhaps buttons on the screen and/or keys on the keyboard.

AI – I initially thought the AI was not going to be hard, but I ran out of time and never really had a chance to implement it. The Pacman and undirected ghosts are essentially random. I wanted to have them show a little personality, perhaps chasing or trapping the Pacman, but not so much that you don’t have a job when you play.

random change of position – I don’t believe the real Pacman game allows the ghosts to change direction except at an intersection (or when a power pellet is used). It’s been awhile since I played, so I might be wrong. Anyhow, a lot of my wasted time was trying to get them to not return to the just-traversed hallway without going around. I eventually gave up. Looking back now, it doesn’t seem like it was that big of a deal to warrant that much time spent on it.

node/tile types – I designed the game to keep pathfinding nodes separate from map tile data. The pathfinding system uses nodes with only three options: edge, wall and hall. At some point, however, I realized I needed more than just those three tile types or would have to hack in other properties. I would have to go back throughout the entire pathing code to implement new types. This introduced a few problems and I even had to back out a couple hours of changes. I think next time I am going to go with a standard tile that doubles as a node and contains properties that can be used instead of checking specifically for certain tile types.

Conclusion

I have to rate this as a successful competition because I was able to submit something that I can consider a game and not just a pile of crap that lets me vote on entries. I’m not completely content with the end-of-compo result, but I don’t know that it is possible to ever be fully happy. I’m probably sitting somewhere about half satisfaction. It was a great experience, however, and I can really tell that I have made progress over the years. Can’t wait for the next LD competition in April.

Tags: final, ld25, screenshot