Concept and Project Setup

Airships: Conquer the Skies
2013-09-29 18:47
In this post I'm going to talk a bit about the concept of the game, and also go about setting up the project with CatEngine.

I previously described the game as "FTL minus direct crew control plus ship design". I think the above sketch captures pretty well what I mean by this: there's a side-on view of your airship and little air-sailors run around doing tasks like fetching coal and ammo, repairing things, putting out fires, and of course shooting at the enemy airships over there.

You don't have direct control of the little air-sailors. The only orders you can give are ship-wide ones like "concentrate on fighting fires" or "shoot at that enemy". The reason being that compared to FTL, the ships are bigger, and you can have more than one.

The other part of the game is actually designing the ships. The airships are laid out on a grid, with various systems (such as engines or guns) using up one or more grid tiles. Designing the ships will hopefully be an interesting puzzle in the sense that the airsailors need to literally run back and forth to do most of their tasks, like fetching more ammo and coal, or repairing things. So good layout is key, but beware: things like to catch fire and explode too.

So with those basics out of the way, I'm going to set up the project in NetBeans.

I started out by creating a standard empty NB project.

Then, I added CatEngine and its SlickEngine backend as dependencies.

Then the libraries required by Slick.

And the natives, which go into the "lib" folder as well.

Next, setting the working directory and library path so slick can find the natives.

Time to write some basic code just to check the project's up and running!

Since I want to be able to display text, I also add a bitmap font.

Finally, this is the game loop: no input handling, and the renderer just draws a black background with "AIRSHIP GAME" in white.

And hey, it works:

OK, this part was perhaps a bit boring, and frankly took longer to screenshot and write about than actually do. Expired time - about ten minutes of actual work.

Next up is going to be the data structures for the ships, which should be more meaty.