About FireSlash (twitter: @fireslash)
Entries
Ludum Dare 25 | Ludum Dare 23 | Ludum Dare 21 | Ludum Dare 20 |
Ludum Dare 19 |
FireSlash's Trophies
FireSlash's Archive
Post mortem: The scope monster, and a look back
I finished, but I’m not happy with it. Lets call it a failed experiment.
To better illuminate this, lets rewind a bit.
My first Ludum Dare was LD19. I went in with a framework I barely knew and a set of balls made of pure steel. As someone who had spent a lot of time in the game dev world, I knew the thing I needed to succeed was a microscopic scope, so I did just that. I started with the very core of the game and worked outward. It all went very well. By sunday morning I was effectively done and had over 10 hours to polish and add features. The game shipped with all kinds of neat stat tracking features and generally felt very complete. It even had menus!
LD20 was more of the same. With a LD under my belt I went in with more confidence, but the same approach. The result was a similarly well polished Shmup with leaderboards and bosses. I focused on the elements that my LD19 entry failed at (mostly the sloppy controls) and again walked away very satisfied.
LD21 got a bit more ambitious. I went with an idea I initially wasn’t sure how to code. Google came to the rescue and End Of Line; my best rated/personal favorite game came to life.
LD22 was missed due to a job interview (I still tried, but couldn’t get power on the flight which was during the middle of the compo
For LD23 I went for the jam. Knowing I had an extra day, I went fancy on a rotation mechanic that ended up being a complete nightmare to code. It went OK.
Totally missed LD24.
Which brings us to now: LD25. On previous LDs I’ve always been more or less feature complete at the halfway mark, so the second half is adding features and polish. I wanted to see this time if I could start with a much more complex idea to start with. Instead of taking the “start small, work up” approach, I wanted to try the “Start big, trim to size” angle.
The compo started at 6pm friday here. By 1am I was pretty sure I’d cocked up.
I had, at this point, coded the core idea. I had a spaceship that you could equip modules to, with energy/armor/shield systems. But I was beginning to realize how complex this was going to become. There were a lot more interactions going on that I’d originally anticipated, and it was looking to be a mess of code. However, Saturday was a long block of time, so I soldiered on.
I hammer through Saturday and before I know it it’s 3am and I’m still a LONG ways from even having victory conditions. At this point I know things have gone sour. It turns out slashing scope is a lot harder than adding to it. When your core gameplay relies on all these little features, you realize that cutting them gimps the gameplay rapidly. You’re left trying to pull weeds from a desert; there’s just nothing to remove.
Sunday. 7am. Alarm going off.
There’s a loud voice in my head screaming “turn off the alarm, go back to sleep, you’re not going to finish”. That voice is beautiful. It’s music.
But no. If I quit now I’d have wasted all this work. I begin to quietly wonder how many “5 hour energy” drinks is too many. According to the bottle: 2. Now you know.
I had one goal at this point: Finish. Any feature that hadn’t been at least partially implemented and wasn’t gameplay critical was cut. This sadly ended up really murdering the “fun” since the enemy spawn patterns and waves ended up getting gimped pretty hard. However, 2 minutes before the deadline, I’m literally hammering out the last bugs in the fitting window.
So here we are. It’s done.
However, the game itself isn’t important. It never is. LD isn’t about winning, it’s not about making the best game of them all, or even making a good one. It’s about learning; and I just got a fantastic lesson on scope. I picked up the idea knowing it would be a wonderful test of just what the limit is for a 48h compo; now I’m pretty sure I know. LD26 is right around the corner, then I’ll get to take a remedial course and see how much I’ve really learned.
tl;dr version: Start small, build up. Never the reverse!
Still jamming
While the rest of you are wiping the sweat off your brows and enjoying the afterglow, the countdown for the Jam is silently ticking away.
So, want a progress update? `Course you do.

So what do we have here? Well, long story short it’s a fully functional level. At this point the game is more or less feature complete. There are a few minor cosmetic bugs to work out (Lasers, please stop hating me), and a few mapping wishlist features I’m looking toward doing (Splitting outputs, counters, toggles, XORs, etc). At this point the last day can be spent mostly on level design and tweaks.
Menus are still missing in action, but we don’t need anything too complex so it’s more of a 5 minute code job than anything.
What has science done?!
Day one progress report time! (Yeah, it’s a bit late)
First off, I should mention this is a Jam entry. While I love doing LD48, I felt like branching out a bit and getting some proper graphics and music for once, as well as just having a bit more freedom to experiment and tinker.
And so I present: Team… Uhh… Yeah we didn’t pick a name or anything. Or UYWDPANOA for sh- Aw screw it.
Anyway, it’s FireSlash on code, YM as the pixel slinger, and Jakesnke17 rocking the phat beetz.
With that all out of the way, here’s what we’ve got so far

As you can see, we have the beginnings of a puzzle platformer. Looks pretty innocent, right? Other than the weird ceiling trees.
Wait. Wall trees?

WHAT HAS SCIENCE DONE?!
Streak broken, confidence not
I missed LD22 due to being out of state for an interview for an awesome job
Well, I got the awesome job and I’m happily situated now. Just got my rig rebuilt a couple of days ago so nothing but freshly installed software and shiny new hardware.
Same song and dance mostly:
- Language: C# (XNA + .NET 4)
- Engine: FlatRedBall
- “Graphics”: GIMP, GraphicsGale
- Music: Burnstudio Audio Tool (Probably)
- SFX: BFXR
I’ve got to sit down over the next few days and spend some quality time relearning FRB since a ton of awesome features and tools have been added.
Welp.
I’m in, probably, but I’m not going to be able to submit my usual level of terrible game. I’ll be interviewing in Washington Friday, which means WOO PLANE RIDE.
To be fair I could have picked any time when I was scheduling this, but I totally forgot LD was that week. I can only blame myself for this terrible predicament.
So with that in mind, I’ll likely be at the interview, or just getting back to my hotel when the theme is announced (Timezones, woo). Then I’ll be on a plane from 6am sat till 3:30 (Timezones, woo), so I’ll get back and likely pass out from jetlag, giving me the plane ride to sketch out a prototype (for as long as the battery on my laptop lasts) and whatever productivity I can squeeze out of my worn out husk of a sleep deprived body Saturday night/Sunday.
In keeping with tradition, I’ll be developing with:
- Language: C#
- Engine/libs: Flat Red Ball (XNA/.NET4)
- Art (lol): GIMP, Graphicsgale
- Sound: bfxr/burnstudio audiotool/audacity
Love users: Upload executables
I’ve found more than one Love user now who uploaded nothing more than their game’s .Love file. Now technically this is fine, since it’s everything needed to run the game AND source! How convenient!
Unless you don’t have the Love game engine installed.
Now in a normal circumstance it might be reasonable to ask someone to install the engine to run your game. However, in the case of Ludum Dare, we have a mere 599 games to play, test, and rate. When I find games that require much more work than “click link and play” or “download, unzip and run”, I find it very tempting to just move on to the next entry.
The fantastic part is that there’s a very easy solution to this! As detailed here, you can easily build executable packages for windows, linux, and mac! These binaries will be easy for users to download and run without being burdened with installing whatever additional software you might have happened to use in your project, making it quick and painless to rate.
Note that this process falls under “Porting” which you can do at any time after the submission window! So go forth my minions and make your entries ready to run!
LD21: End of File postmortem
After breezing through two previous LDs, I felt this time I should push my game design out a bit further, both technologically and in design. I wanted something that I knew would be challenging; not just a game I knew I could complete in the timeframe.
With this in mine, I added some goodies to my game such as an upgrade system, expansive map sets, multiple weapons, and complex enemy types. I looked at parts of games I loved and used them as foundations for various game mechanics. In the end I had a lot more than I could hope to achieve, so i had to trim some fat, and began coding.
At first progress felt a lot slower, dangerously slow compared to previous LDs. I was worried I wouldn’t make the deadline so I trimmed out multiple weapons, shortened the game a bit, and scrapped additional enemy types. I figured I could add these back in later as time allowed.
When I woke up on Sunday I was pretty unhappy with the game. The nature of projectiles made them frustrating when facing Banshees, which were the most common enemy type in the game. I tried nerfing the banshee’s move speed and changing the movement patterns, but nothing really helped. The game had content and was going well progress wise, but it wasn’t fun. I actually considered throwing in the towel here.
After about an hour of level design to take my mind of gameplay, I had a bit of an epiphany. Prior to LD I had been playing Quake 4, and started drawing connections to my gameplay flaw and my frustrations with Q4′s nailgun. Ultimately the machine gun worked better in Q4 due to not giving Strogg any time to dodge your attacks. While the AI in my game didn’t dodge, the movement patterns were hard to properly lead. So I changed the player’s gun to an instant fire laser.
Everything just clicked at once. Suddenly you could easily hit most targets with minimal issue if you lined up your targets well; and early game energy limits prevent you from just spamming down everything in a quarter of a second. Upgrades made you choose between various gameplay styles. The aiming mechanic of enemies made sure you couldn’t just camp one spot and shoot when everything lined up; but instead rewarded you moving WITH the banshee, constantly leading its shots but still keeping lined up.
After taking some time to balance upgrades and flesh out some levels, I was cutting it a bit close so I ran a final polish run on the level set (though I would have liked to expand it), and submitted.
In the end I have mixed feelings about the final result. The endings aren’t really “proper” endings, and there’s no menu/config/pause/etc. It feels incomplete to me. But despite having some spare time at the end where I could have mocked up some quick simple menus, I was sick of coding it when I submitted; and I felt that a rushed menu would be worse than no menu at all. On the other hand it’s a lot more than I could have done previously, so as a progress indicator it’s great. LD is never about winning to me, it’s about seeing what you can do. Testing your limits and learning new things. Seeing what you’re capable of…. And in that regard it’s been a roaring success.
Play/Rate: http://www.ludumdare.com/compo/ludum-dare-21/?action=rate&uid=3130
I’ll see you nerds in October :3
XNA users: Increase compatibility with Reach!
A lot of XNA users get flak for it because lots of older and simpler video cards won’t run it. A good example of this is Intel HD graphics, which are common on laptops.
Did you know you can fix this? Well you’re about to.
XNA has two profiles. Each profile has different minimum requirements, and as a result different capabilities. If you were developing a retail game you might stop me here and say “But FireSlash, I need shader model 3.0!”. However, in almost all Ludum Dare cases you’re never going to break outside of the XNA Reach profile’s limitations. These limitations are effectively the limits of DirectX 9, which are fairly generous for most games.
The best part of this is that using Reach is very easy; especially if you’re using the XNA content pipeline. Simply right click on your project
Now click properties. You’ll get defaulted to the XNA studio tab (probably, if not it’s a mere click away!) where you can change your profile to Reach. Do this early in your project as it saves you possible issues later with recompiling textures.
Also note that if you use any kind of engine or supporting libraries, you’ll need to adjust the profile there as well. If your engine has compiled textures in HiDef you’ll need to remove these and recompile them for Reach. I suggest doing this before you start as it saves time and rage later.
Three in a row
Going for my third LD entry. So far each one has been progressively easier as I get a better feel for the time constraints and workflow. I feel LD has become a bit of a benchmark on how I’ve grown as programmer. I love it.
The tool list hasn’t changed from last year much
Code: FlatRedBall (C#/XNA 4.0)
Sound effects: Sfxr
Art: GIMP / Corel Draw / GraphicsGale
Music: Audiotool
Target platform will be Windows again. I’m hoping this theme is a bit more focused, as the previous theme was basically a non-theme.
Also for anyone who enjoyed my previous entry, I may be porting it to Windows Phone 7 soon, followed by android.
Checkpoint. Your progress has been saved…
Sitting here at the 24 hour mark, and things look to be way ahead of schedule.. which is odd.

What we have is a polarity shmup. Most of the vastly different ideas got canned due to balance issues, but I’m still tweaking it a bit. Currently later levels introduce blue ships which can’t be absorbed.
I got a bit ahead of schedule so I’m adding unplanned boss stages in now, which are turning out to be quite fun and very challenging. General polish should be easy to meet and some has already been started. I’ve been going at a fairly relaxed pace too. Overall its a nice change from last year, and makes it far more enjoyable when I’m not frantically looking up documentation every 30 seconds
Lets do this
Participating in my second Ludum Dare! Woo.
Tools:
- FlatRedBall (C#/XNA) for le code
- GraphicsGale + Corel Painter for graphics
- sfxer for sound
- Unsure on audio. Been playing with AutoTracker-C and openMPT, so maybe that.
I learned a ton last time, and hopefully I can release an even better game now that I’m used to the pacing and a bit more familiar with the tools
Post LD thoughts
I’ve spent a lot of time doing game development, but I almost never release stuff. Always base code, game logic, and abandon. So going in I had a bit of a fear of not finishing LD.
Looking at it now, I can safely say LD has been the single most educational thing I’ve done in my entire life as far as game development goes.
Its so easy to fall into the trap of scope creep, or to say “Oh, I can’t work on this yet! I don’t have graphics from the artist!”. But when time is tight and you ARE the artist, it’s easier to start looking at solutions instead of problems; and it’s that line of thinking that keeps you moving.
I’m really looking forward to the next LD. In the mean time, maybe I’ll actually finish some of my other projects for a change of pace.
Obligatory timelapse:
And the first timer finishes!
Looking back at the clock, at the start I felt way ahead, by the middle I felt I was behind, and in the end I finished 3 some hours early. Not bad for my first attempt imo.
Next time I’ll challenge myself more, now that I have a much better feel for things and my work flow has improved. However I’ll need to practice on my music and art skills, as they’re severely lacking.
While the event had its stressful moments and sleep deprived coding sessions, it was quite fun, and I look forward for the next one.
Here we go…
Fresh blood! Notch told me to :creeper:
I’ve never done ANYTHING to this level before, so priority will be release ready code, graphics and such can come later if time permits. I’m probably going to take a few days to brush up on my C#/XNA to save precious time googling.
The plan right now:
- Engine: FlatRedBall (Windows XNA)
- Sound: sfxer
- Music: Modplug maybe? Depends on time.
- Graphics: Inkscape or GraphicsGale. Will depend on the theme.




