Tuesday, July 2, 2013

Influence Maps

I was at the beach all last week, which unfortunately means I didn't get any work done.  But, I'm getting back into it.

Gameplay Update

Now, instead of destroying an enemy tower after a successful attack, you take over its control as one of your own.  I'm thinking this will help speed up games and encourage aggressive play, which I want.

Influence Maps

I'm getting ready to implement the AI, so that I can finally start play testing and refining the game concept.  This will be my first attempt at building an AI but I'm confident I can produce a good result.

I spent today researching influence maps and found these three very helpful resources:
  1. The Core Mechanics of Influence Mapping
  2. Game School Gems: Influence Maps Part 1
  3. Game School Gems: Influence Maps Part 2

Friday, June 21, 2013

Gameplay Update

Today I'm posting a video of the game play I have implemented so far.  Even though it's still very early in development, I think the functionality is mostly there, minus the inevitable tweaking that I'll continuously do as I work.

** Keep in mind, the graphics are in no way final **

 

Friday, June 14, 2013

Overdue Update

Sadly, I've been lazy with my updates to this development journal.  It's been a month and a half since the last update and I've made a lot of progress that I'll now try to summarize. In this update I'll talk about:

Tiled Maps

I decided to use Tiled Map Editor to create my game maps.  On top of Tiled being free and very easy to use, Libgdx has built-in support for rendering maps create with Tiled.  I did run into a major hang up though.

My game is based on a grid of hexagonal tiles, which the main version of Tiled does not currently support.  After some Googling though, I tracked down a branch does. You can find it here; at the time of this post, that branch is fairly up to date with the main development branch of Tiled.

Game Progress

I spent about a week stubbing out the majority of the game's framework, only implementing methods that were trivial, and writing TODO comments for everything else.  Then I began tackling the list of about fifty tasks that had accumulated in the process.  Each task ranges anywhere from half-an-hour to a week's worth of work. The list is not exhaustive, and I'm still adding tasks as I work.
Here's a list of the high level tasks I've completed so far (in order):
  1. Stubbed out the game's framework
  2. Import and display maps created with Tiled
  3. Code for adding/removing towers to/from the map
  4. Implemented a state machine to handle user input and execute the resulting commands
  5. Implemented the A* pathfinding algorithm for army movement
From a high level perspective there isn't a whole lot left to do until the game mechanics are fully implemented.  My next step will then be to start work on the AI which will be a huge challenge since I have no prior experience in AI programming.
Here's a screen shot of what the game looks like after a few clicks (it looks pretty bad, but that is to be expected at this stage).

Useful Resources

Here's a list of the resources I've found extremely useful in the last few weeks. 
  • Art Portfolios - Unfortunately I am not artistically talented.  I'll probably need to contract an artist, so I've been keeping an eye on this forum.  I've seen some really talented artists post here.

Tuesday, April 30, 2013

Choosing a game engine

I've spent some time on Google looking for an Android game engine that will ease my development, and this post from StackOverflow made it easy for me to pick two front runners:
I initially explored AndEngine because it seemed to be the more popular choice of the two. After spending some time with AndEngine though, I felt apprehensive about how much it abstracted from the developer. For some, this is a good thing because it means there's less you have to worry about and less starting friction. Personally though, I prefer my frameworks to be more bare bones.

This prompted me to Google search "Libgdx vs AndEngine" and found the following analysis by the developer of Libgdx very helpful.  After a little more research, I finally decided to go with Libgdx, and the following are the selling points of Libgdx that won me over
  1. Code once and compile for Android, and HTML5
  2. Lighter weight than AndEngine
  3. Better documentation

The first few weeks

Over the last few weeks, I've done a lot of the preliminary work that needs to happen before you can even consider writing code.

First there was the idea. I was inspired by a fairly simple RTS game that I've come to love. The beauty in this game lies in the fact that it has very simple rules, but still manages to be deep strategically. There are a few aspects of its gameplay that I don't like though:
  • It rewards defensive play too strongly
  • There isn't enough variety of winning strategies
  • The game is almost too simple and becomes repetitive
I wanted to come up with a spin that fixed these issues, but still maintained the simplicity of the original game. It also needed to be different enough that it wasn't a rip off of the other game. After typing up the concept and fine tuning it through discussions with my friends, I had something I was excited to make.

While I took a class in iOS development, I have no experience in Android, or game development for that matter. So I've spent the last few weeks quickly reading through Beginning Android Games, and the relevant Google tutorials on developer.android.com. Then I sat down and planned out the framework of objects I'll need and how they'll interact within the game flow.

I've also been working with a friend to try and establish the game's art style. So far I'm happy with the way things are looking.