DinoMage on Twitter RSS Feed

Author Archive

I’ve gotten through those interfaces in GigaSun Jet that I mentioned a couple posts ago.  The game now buffers its level data and loads from that instead of straight from XML objects.  Since this buffer can now save its data back to XML, this has allowed me to start actual work on the in-game level editor.

I must say I’m pleased with how it’s going.  I made the old level editor long ago as a stand-alone project.  It is tile-based and pretty simple (and pretty ugly).  The menus are not very well thought out, but they’re functional.  Plus, the last time I touched the level editor code was to merge it with the main GigaSun Jet project.

After all the work I did to refactor the saving and loading, I knew that I needed to rewrite the level editor and make it fit the game better.  What better way is there than to build it into the game itself?  It’s been a long time coming, because I need more levels!

When playing a mission, you can press the special level edit key which pauses the game, clears away all the indicator clutter, and presents the level editing GUI.  Just today, I got some of the object data into text input fields and, most importantly, it works.  It already feels so much better than the old level editor.  The interface is so much clearer and more intuitive.  I’m also just using simple lines and shapes to indicate objects and it seems to work well.  Once I get all of the object data into the GUI and add control to objectives and event triggers, I can just chop off the old editor code for good.

I’ve used Box2D and in-game level editing for two projects now.  I’m a likin’ it.

There are two approaches to designing a system for game content.  They are responses to the question: How much of this type of content should be put into a game?

1) Just enough content

2) Tons of content

The choice might seem obvious until you consider the time it takes to create tons of content.  You might make a decision right there and move on.  However, the difference is even deeper than that.  For any given type of content (art, parts, quests, levels, dialog, sound effects, etc.), a game designer has to choose one of these approaches.  It’s such a natural thing to gloss over that many people naively make the choice for most of their systems without even noticing.  “It can only be done this way” is the subconscious thought.  Crafting a lasting system of content starts with this choice.  Considering the differences and making the right choice for a particular game can lead to things that have never been seen before.

Read the rest of this entry »

I’m just hacking away at some “details”, as my wife would frustratedly call them.  They’re important, I tell you!

I’m loading level data from XML files, then this data will be referenced whenever a level needs something.

It's really not that bad...

Okay, it does seem weird even to me that I’m storing the exact data that I’m getting from the XML, but this will really help when I want to make changes to levels while they’re running (i.e. built in level editor).  I may get carried away with making my code “nicer” sometimes, but the real issue for me is that I’m essentially wedging new, untested code between two working pieces.  I just love breaking stuff that works, especially when the job is really boring!  Wahoo.

What?  A board game in the GigaSun Jet universe?  Yeah.  Isn’t that silly?

A couple months ago, I started making a simple board game for the kids.  Once I got the design to a playable state, I gave it a name and made a cardboard prototype.  That game is GigaSun Galaxy.

In GigaSun Galaxy, you create the galaxy you will play on.  Then, you move around the board to complete missions and increase your rank to win.  My kids get excited about the space pirates, wormholes, and upgrades they can find in the game.  I’ve gone through five revisions so far, with each representing several rules variations as I iterate on the design of the game.  There’s another revision in the works which improves the flow of the turns and improves integration with the space theme.

I’ll be getting back to talking about GigaSun Jet soon, but here’s a “screenshot” of GigaSun Galaxy:

Kids can play and it's still fun to adults. I think I'm doing this right!

Ogres are beasts; big beasts that are tough to control.  I mean, Ogre3D is a beast; a big beast that is tough to control.

I’m currently replacing the rendering backend of GigaSun Jet with Ogre3D.  Ogre is a great 3D graphics engine, but this is not what it was made for.  Even with my background, Ogre is not very easy to learn.  The tutorials are choppy and some important early ones (terrain, specifically) don’t work on many computers.  Ogre works with an integrated resource management system, which is where much of the complexity comes from.  If you’re not willing to use Ogre’s way of organizing a project (once you figure out how that is), then you’re in for some trouble.

In other words:
Do build up new projects with Ogre.
Do not port games to Ogre unless you really have to.

Ogre really is a good graphics engine.  On the other hand, isn’t it best to learn a new API with something familiar?  It’s too bad Ogre is such a beast.

Oh, by the way…  I’m still trying.

The Mechwarrior series is well known for catering to gearheads with all of the interchangeable parts and weapons (mostly weapons) that you have.   The feeling you get when customizing your own giant robot is the same feeling I wanted to get in GigaSun Jet.  In some way, you can actually have fun without shooting anything.  What a wonder!  I also loved the old Armored Core games (I missed out on Project Phantasma).   The sense of control was great and I had fun trying to find the right equipment to match with the fastest leg parts.   How could I get some of that into my own game?  Does it work without giant robots?  Let’s look at the real question I had to answer.

Read the rest of this entry »

A shooter, by definition, involves shooting, of course.  You can’t very well have a shooter or shoot ’em up without any sort of shooting.  And there’s something about our nature that enjoys this kind of activity.  Just as part of being human, our adrenaline starts flowing when we feel invested in a situation that is not totally predictable.  The main draw to shooters and shoot ’em ups in particular is this kind of unpredictable rapid action.  But is there more?

Read the rest of this entry »

I have played a lot of shoot ’em ups.  I’ve played old arcade shooters: Space Invaders, Galaga, Asteroids, Time Pilot, Sky Kid.  I grew up with console and PC shmups: Life Force, Ikari Warriors, 1943, Captain Skyhawk, AD&D DragonStrike, Tiger Heli, Raptor, Star Soldier R, Bangai-O.  I’ve played newer ones: Ikaruga, Desperate Space, Geometry Wars.  And of course I’ve played some Flash shoot ’em ups.  The thing is, it’s hard to find a deep shoot ’em up: one that keeps me interested after I figure out the controls and enemy patterns.

Read the rest of this entry »

Needless to say, I’ve been working a bunch on GigaSun Jet. I made it to a real milestone recently, so here are some screenshots of that. The biggest need now is perhaps the story. I have the basic plan laid out, but the script needs to be written and missions created.

Here’s the start of a mission which demonstrates what the objective and trigger systems can do. Some dude is talking to you about protecting these turrets.

This is the welcoming committee at the enemy base…

This is where I lose. Two ships against me after getting blasted by those turrets (because I’m taking screenshots, of course 😉 ).

8
Sep

WordPress, finally

   Posted by: in Dev

I finally added a real blog component to the site.  Oh boy, it’s been needed.  I’ve wanted to jot down development details for GigaSun Jet, but it has been too much of a hassle to update the site.

I’m not much into web development, which is why I took so long to do this.  I’m still working on the integration, so hang tight.

More updates to come.  Yay! 🙂