Join us on Twitter and IRC (#ludumdare on Afternet.org) for the Theme Announcement!

Thanks everyone for coming out! For the next 3 weeks, we’ll be Playing and Rating the games you created.You NEED ratings to get a score at the end. Play and Rate games to help others find your game.We’ll be announcing Ludum Dare 36’s August date alongside the results.

New Server: Welcome to the New (less expensive) Server! Find any problems? Report them here.

MarekkPie's Trophies

Archive for the ‘LD #23’ Category

So, I didn’t think about this initially (because I had really no thought that people would actually play my game), so I didn’t set something up beforehand, but is there a way to get the number of page views and other similar stats on here? I used just a public Dropbox URL, so no luck on that end. Just hoping there is some way for me to see this stuff. Thanks.

Supernova Postmortem

I’ve had an enormously entertaining, enlightening, and indelible experience (grr…) in this inexorable endurance endeavor, but it’s also been extraordinarily hard. I guess that’s what makes a game jam and game jam, and the Ludum Dare compo is probably one of the hardest due to its restrictions. Due to the complete and utter reliance on oneself, it seems that luck is much more involved than in more collaborative jams. If the theme that is picked is something I have absolutely no interest in, then I have no one to really fall on to help push me in a good direction. This isn’t even touching the need to be a multitalented genius to hit all the usual game departments.

This is all just leading up to a nice pat on the back for myself for completing…something…on my very first game jam. Supernova is more or less a game. It seems to bug out after only a few minutes of play, but I also felt that I took a fairly large idea to start with, so I didn’t really have much time to squash bugs beyond the first moments of gameplay. But I am getting ahead of myself. DNIWER.

What is Supernova?

Study carefully...or not...your choice.

Supernova is essentially a tower defense game. The object is to protect your sun from an invading alien army. You do so by placing planets around it on one of three orbits. There are three different types of planets to choose from:

Food Planets: they create food resources that allow you to spawn more planets;

Defend Planets: they have the most health of the planets, but they suck enemies into themselves, which quickly eats away at their health;

Attack Planets: weak, but is the only planet that can actively attack enemies, by launching missiles at them.

Additionally, you can buy upgrades to these planets that increase their potency (or alternatively, you can use the upgrade to heal the sun). Keep in mind that the cost of each planet goes up after every purchase, so plan carefully…or not…

It’s an endless game (or at least it should be), so there isn’t a win condition, which sucks. But whatever; I’ll leave the professionalism to my second LD48.

Planning: How does it work?

I’ll start with the bad, because that means I’ll leave you with a warm, fuzzy feeling instead of a cold, hard feeling.

Plan until you can’t plan, and then plan some more: I did not plan much at all. I could chalk it up to the fact that I initially had an entirely different idea for my game, and spent at least two hours working toward that idea, but looking back, I still had plenty of time to plan better. I’m almost certain I lost at least four hours because of bad planning. Case in point: my HealthBar class. Because I made my Sun an entirely standalone class, when I went to attach it to my Sun, I couldn’t easily do it the same way I did with all my other planetoids. Since I didn’t really get HealthBar working nicely until the last day, I literally had to implement an additional attach slot in every HealthBar just for the Sun’s HealthBar. I shudder at the ugliness of that.

There is a difference between understanding your tools, and knowing your tools: I am fairly new to haXe, NME, and HaxePunk. I understand haXe syntax, I understand the nme command-line tool, and I understand the general hierarchy of a HaxePunk game. As I learned throughout these past 48 hours, I don’t really know any of them. I would spend 10-15 minutes creating some algorithm or function, only to stumble across a prebuilt version somewhere in those tools. I know how to make an Entity, but do I know how to make an animated Entity? What about a Tilemap? Would a GraphicList help when I want to create a button with images and text? How do I get rid of the black background of my Text graphics? These questions have fairly available answers (usually in the form of FlashPunk tutorials, but haXe and Actionscript are so similar its stupidly easy to transfer it over), and if I would have had a bit more time with my tools, I would have not wasted more time on learning them during the compo.

Do not decide to get the latest version of your development engine’s libraries DURING THE COMPO: don’t really need to say much more there.

If you do not have artistic skills, don’t even bother trying to make it look nice: I spent far too much time just thinking about art. I don’t have the skills to put the grand image in my brain onto the computer screen, so don’t bother trying when you are being timed.

Overloading add() to success

Given my overall disappointment with the chosen theme, I felt I had a decent enough idea: originally, I wanted to make a 2D, Shadow of the Colossus-esque side scroller. But I got about 5 minutes into the level design, and I realized that I don’t have really any idea on how to get started on the gameplay, so I scrapped it. Luckily, Tiny World got me to think about the end scene from the first Men in Black (I linked to it on an earlier post), where the camera flies backward from the Earth’s surface, through the solar system and out into the galaxy, only to reveal that the Milky Way is actually just a nice design for a marble in an alien’s current set. I felt, what if that alien had to protect his marble, by intervening in galactic conflicts when necessary. Something like a sun being forced into supernova ahead of schedule. What lengths would that alien go?

Even though it was the hardest thing I have ever done (programming-wise), it wasn’t THAT hard: most of my game is just logic. If your shoot timer goes off, fire at the closest planetoid/enemy. If button is clicked, attach planet to cursor, and remove resources when planet is placed. There were a few tricky spots, like getting the placement of the planet by the cursor to work correctly in conjunction with rotation (which I mainly blame my addled mind for causing me such pain over the issue; I still don’t know how arctan2 is supposed to give me an angle between two vectors).

Some people might call it hacking; I call it SUPER SEXY FUN TIME: there were a few ah-ha moments during this weekend that helped boost my confidence and strive to finish. One of them came when I was thinking of better ways to attach HealthBars to planetoids (not the super ugly situation I described before, but getting the Healthbar to do its thing automatically). A neat feature about haXe is that (I think) all methods are virtual. So when I needed to release a planetoid from my cursor to an orbit, since I wasn’t inside the GameWorld, I would have a hard time getting any special function to work outside of it. But, with an overridden add() function, I just check to see if the new Entity is a planetoid, and add a HealthBar right then and there. Brilliant!

Hopefully Supernova is enjoyable. I certainly am proud of it, but I also certainly will need to good LONG rest before I can think properly again.

It’s coming along nicely…kinda. Still need to add enemies, and all the necessary reactions to those enemies, but the general idea is coming together.

Buttons, how do they work?

The Earth like worlds are the food worlds. When they are placed, they will add to your resource total (not pictured…but will be on the right side). You purchase new worlds from these resources and place them on the orbits around the sun. Currently that part is where I am stuck, since it’s kinda difficult to decide which orbit the player actually wants.

Having a great time so far making my game. Have already hit a few hiccups, including an idea and some associated artwork scrapped as I quickly realized I was both unprepared for that idea and it was a little big in scope (think Shadow of the Colossus; sounds awesome…but I mean, c’mon, too much work.)

I was not (and really am not still) a big fan of this particular topic; I would have much preferred any of the “life” options like Evolution, Artificial Life, Built It and then Use it, or Death is the New Beginning. I guess I’ll have to just hold onto my super sweet idea until the next Ludum Dare with a similar theme to those.

So, now the new idea. It’s fairly simple. The image that kept popping into my head when I would think about this topic was the final scene in the first Men in Black.

If you are too lazy to watch the clip, essentially it is saying that there are much larger forces than us that manipulate entire galaxies like they are a sack of marbles. I wanted to incorporate that idea into my game. You are playing some godly entity who needs to protect a star from an invading force. What’s the motivation, you ask? There is none. Hush now!

You place different planet types on different orbits. Since I’ve only got 43 hours left of jamming, I’m going to stick with three types: attack, defend, and food. Their jobs are pretty self-explanatory. You fight waves on enemies, and gain the ability to add more planets based on how much food you are producing. Think of this as Plants vs. Zombies IN SPACE!!!!!

Here’s a little sketch up of what the game might eventually look like:

There are a few more ideas I have to make it a bit more complicated, but I’ll save them for another post. I’ve got my orbiting planets, and I’m all good for tonight. Let’s try and get some sleep and come back refreshed for many hours of badassery.

Editor: Sublime Text 2 (Evaluation version). This brings up a question…which I’ll ask later in the post.

Additional Libraries:Something to port Ogmo maps into haXe…will either need to find one or I’ll create my own and post it here. Switched to a TMX loader for haXe. Might also use this GUI library.

Graphics: Kolourpaint for the simple stuff / GIMP for the less simple stuff.

Sounds: Honestly don’t know; probably sfxr.

Additional Stuff: Ogmo Editor. Never used it, but whatever, it’ll be fun to learn. Looks like Ogmo made the dastardly move to XNA. I spent some time trying to get it to work on my Linux machine, and at least got it to compile using MonoGame, but cut my losses when I hit some runtime errors (not a big fan of MonoGame). Tiled it is!

So, my question. I know that the license of an open source editor has no effect on anything you produce from it (GPL or otherwise). But for something like Sublime Text 2, which isn’t open source and has a licensed version and a free (as in beer) evaluation version, would something I make using the evaluation version not be allowed to be sold? I doubt anything I make over this weekend will be worth a dime, but just musing here.