About Rudy (twitter: @RudyTheDev)
Archive for the ‘LD #21’ Category
I think everyone can relate to this? Honestly, I’m surprised I managed to “finish” a game with the amount of distractions I got. I’ve never finished anything… If Ludum Dare teaches something, then finishing is what it teaches best. It’s like you get an instant feedback of your performance in 2 days. By the time your brain wakes up with “Huh? What? Featu-u-u-res!” it’s already over. I think that this is a very useful experience for any starting indies and a good reminder for the veterans.
My first post-mortem for my first finished game for my first LD (entry here). Those are all stand-alone firsts. I have never actually finished a game to a point where I post the .exe for others to play. It’s just never good enough for me (we’ve all heard that one before). Anyway, post-mortem:
Not much to say here really. My first thought was — who wants to escape the most? Well, trapped souls from the depths of hell, obviously. In retrospect, that being my first answer says something about me. I also knew I’m not doing a platformer. From then on, I just kept adding random ideas/features with a promise to not go back and redo stuff.
I think the idea/concept turned out fine (or at least we’ll see after ratings ^_^). I didn’t expect to come up with any groundbreaking ideas and I didn’t have all day to think of one either. I saw a few people bail out and rewrite their code, so I’m happy I managed to stick with mine. I also saw too many people going “need more levels”, “need more level ideas”, “I only have 524 levels, help!” One of the reasons why I did not go the platformer route.
10am (5h in) — wake-up
10am-5pm — code
5pm-6pm — break
6pm-8pm — code
8pm-9pm — blog post
9pm-1am — Assassin’s Creed Brotherhood
10am — wake-up
10am-3pm — code
3pm-330pm — break
3:30pm-4:30pm — code
4:30pm-7pm — beach
7pm–12:30pm — code furiously
1am-1:30am — blog post, submit
That’s a total of 9h+11h=20h out of 48h. Sure, I could have spent more time coding. But if my overnight Uni reach-the-deadline coding sessions have taught me anything, it’s that I don’t like them.
I think I oversaturated the game with features, especially since they all are accessible at once (if not usable). I didn’t think it was possible to have too many features for a 48h game, but there you have it. I have a nice tutorial screen to introduce everything though:
Only now do I realize this, but there are 600 games and finishing every game is near impossible. You have to keep it simple, stupid! Who has the time to read all that verbal diarrhea? I foyu skip the “help” button, you have no idea what you are doing. That said, there is nothing bad with complexity, in fact many games are known and praised for it. But you have to take it step by step. Introduce gameplay elements as the player progresses and plays, not throw everything at them at once. I think this may have be my biggest design flaw (besides lack of music). But then again, an in-game interactive tutorial in 48h? Moving on…
Let my art speak for itself! (more likely growl out “kiiill meee”) Here’s the entire sprite-sheet:
I’m not an artist, I’m a programmer. All my units are either static of flying, so my “move” animation is 1 frame One thing I did wrong is make all the terrain colors too dark. Units and props stand out OK, but the terrain itself has too little contrast, and it really shows in screenshots. My Holy Light could have been more impressive too. I wanted a magnificent beam of shiny and awesome, but all I got is this lousy flashlight.
I’ve done very little with sound and games, so this wasn’t my strong side. I did decide to try out sfxr, which was a super-easy and quick way to produce relatively awesome sound effects. Ended up with 8 different sound effects. Obviously, I have no music and I couldn’t make any myself anyway. I’ve played around with Fruity Loops or whatnot in my day, and concluded I have no musical hearing. Not that my music teacher hadn’t made that perfectly clear back in grade 3.
Spaghetti code! Argh, my eyes! Not a single useful comment, dirty inefficient hacks, integers instead of constants or enums, … That’s K.I.S.S. and time limit for you! *shudders* I don’t think I could go on working with this code much longer. Then again, I’ve seen much worse too.
What I do appreciate in my coding style is the object-oriented design. Even with the number of classes spanning into second dozen, I didn’t get any game-breaking bugs that were more than careless copy-pasting.
Can’t say anything went terribly wrong. I probably would not have done much better with any other themes anyway. I could have spent more time coding/drawing, but then I would just exhaust myself beyond “fun”. I’m proud of myself for sticking with this till the end, even if my first thought was “Escape? What bollocks!”.
I love C#, XNA, and ReSharper and the speed at which I can chunk out code/features. I also know how many raters I’m losing by not having a “Web” play link. It would’ve been better if I had a Flash or Unity or something entry. But then I would have had to learn it first
Ludum Dare has been great so far, I love the community activity, and I can’t wait for the super-secret-October-make-a-buck type challenge.
I have spent a little short of 20 hours on active development. This is roughly two fifths and not quite the 48 hours. Then again I haven’t broken my 1am-10am sleep routine and did take a break or two (or more).
Since my first post, I have been partly polishing the existing features, partly struggling to add new ones. New large ones include a few more objects, a minimap, lighting, sounds, and tutorial and menu screens. In the end, I rather go for a finished, brief game, than a feature complete, but too rough-around-the-edges game. Then again, I went for a “sandboxy” gameplay, so you cannot really tell something is missing until you try it first. Here’s a screeny:
You can download it here (Requires XNA and .NET):
P.S. sfxr is awesome, I did not expect to have any sounds in the game, given very little prior experience with sound effect creation and total lack of musical hearing.
It’s been roughly 11 hours since I got up (silly Europe timezones). And I think my progress has been pretty steady so far. I was most worried about not liking the theme (it’s OK, if a bit too broad), but more importantly not being able to think of any decent ideas. But I think I like what I came up with:
You help damned souls escape hell. I call it “Soul Hellscape” You play the game by placing a “Holy Light” beam that attracts nearby souls and thus lets you guide them to the gate of hell, where they can escape. All while several types of baddies attempt to nibble on the delicious, innocent souls. You can zap them with a “Divine Lightning”. Plus a few more details and mini-features. Here’s a screenshot of the game:
You can download it here (Requires XNA and .NET):
Contrary to what I had planned, I spent very little time with a sketchpad. Call it an “inspiration”! Then again, my programmer “art”work is as good as it’s gonna get so it all balances out ^_^ Although I will expand on the variety a bit tomorrow. Oh, and no sound.
P.S. And let me tell you, #ludumdare IRC channel is a serious distraction.
This is my first post, first message of intent to participate, and generally first online game programming competition I’m signing up for. It seems that everyone is doing an “I’m in” post, so I might as well; you know, so twenty years from now my humble beginnings can be traced back once I inevitably become a billi… moving on:
Actually, I do need to declare my base code: http://blog.capdb.net/wp-content/uploads/XnaBase.zip . This is the default XNA new project spiced up with a few custom classes/structure. There’s a simple rendering loop to draw a cursor and some text, a simple input processor for mouse/keyboard/controller, and a simple game state machine (playing/paused/menu). Just the basic stuff I’ll need to code for any XNA project anyway.
I’m using C# and XNA (Visual Studio 2010 + ReSharper). Photoshop for sprites. May be Maya for 3D rendered sprites if I feel masochistic. And, of course, Notepad for a TODO/TONOTTODO list.