Weekly Update: June 3-9

I missed last weeks update as I was again doing stuff for Rocket Chimp, which by the way, has now been updated. The new update makes it feel like a whole new game. The new tilt controls are much smoother, and the game is awesome on the iCade. Here is the new trailer:

As for AquaWars, the game is starting to come together. The storyline is slowly being pieced together. I also put in a bit of work o the shop screen. The interface for unlocking new ships is looking pretty sweet. Still a bit rough around the edges, but the smooth scrolling controls feel great. I am still not set on the look of the buttons in the game, so that will probably change for sure.

So this has turned out to be a really short update. I should have some more to talk about next week. On the agenda: AI ships! Meaning that in certain levels you will have a companion helping you complete the mission. Also I will be having a beta sign up as well, so be on the lookout for that as well.

No AquaWars Update This Week…

If you haven’t noticed, I have yet to upload an AquaWars development diary post this week. That is because there isn’t one! Yes, I know you all must be quite disappointed. Instead I spent time this week working on my client project and a very large update to Rocket Chimp! The update will be adding a ton of new features, retina iPad support, iCade support, new menus and more!

The update will be submitted hopefully on Monday, and I will also be working on a new trailer for the game. Kind of a soft relaunch of the game I guess you could say.

But next week there should be a little work on AquaWars even with all the update and my other project. Till next week!

AquaWars Development Diary – Week 5

5 weeks in. I don’t like starting out like this, but I had yet another real life set back this week. My dad was having chest pains and ended up in the ER. Turns out he had a minor heart attack and had to have a stent put in. He is doing ok now, thank God. Turns out he went to the ER just in time. But anyways, I still made some decent progress on the game.

A lot of time this week was spent making things that appear to work actually work. The main menu now exists and allows you to either select a level or play survival mode. The menus look alright I think, but at this point they are mainly for placeholder functionality. I will probably end up redesigning them before launch. I feel they are a bit too static at this point.

As far as actual gameplay goes I added two new enemy types. So that means there are already more enemy types in the game than the original AquaWars. Content-wise this game is going to be my grandest endeavor yet. Levels are actually working now. I added some new features that will allow character dialogue whenever I want during a level, and it allows for it to wait until the player clears all enemies on screen.

Speaking of levels, I guess I will go into how I store my levels. I use JSON to store the levels just for its simple parsing and human readability, while not being quite as “dense” as XML files. The format allows for me to specify character dialogue and enemy spawn positions. The strings are separate, so I could possibly add some other localizations later. Each item is set to launch at a specific time (“t”) and has an action type (“a”). Currently there are only two actions, spawn and display text. Here is an example of the level format (Not an actual level, but it gets the idea across):

{ "levels":
    [
     {
     "name" : "Level 3",
     "level-strings": [
                       {"name" : "SYSTEM", "string" : "Welcome to Level 3! This text is shown right away."},
                       ],
     "level-data": [
                    { "t" : 0, "a" : 1, "d" : 0},
                    { "t" : 0, "a" : 0, "d" : 1, "s" : 0, "y" : -60 },
                    { "t" : 0, "a" : 0, "d" : 1, "s" : 1, "y" : -60 },
                    { "t" : 0.5, "a" : 0, "d" : 1, "s" : 0, "y" : -100 },
                    { "t" : 0.5, "a" : 0, "d" : 2, "s" : 1, "y" : -100 },
                    { "t" : 1.5, "a" : 0, "d" : 2, "s" : 0, "y" : -60 },

                    { "t" : 1.5, "a" : 0, "d" : 1, "s" : 1, "y" : -60 },
                    { "t" : 2, "a" : 0, "d" : 1, "s" : 1, "y" : -140 },
                    { "t" : 2, "a" : 0, "d" : 4, "s" : 0, "y" : -140 },
                    ]
     },
    ]
}

As you can see, it is readable, but not very fun to edit. I may end up creating some kind of simple level editor to aid in level creation, but I’ll see how it goes to see if it is worth the time investment.

The rest of this week was spent fixing scaling issues so now everything works on both iPhone and iPad.

So the original plan was to submit on the 18th but that is obviously not happening. I will hopefully be finishing up my other web project this week so that will free up more time to dedicate to the game. I’ll probably end up creating a new timetable later this week but it still has a lot of work and testing to be done so I’ll have to keep that in mind.

AquaWars Development Diary – Week 4

Here we are again, yet another week has gone by. This week was a lot more productive, but I still feel that I could’ve done better. I guess that is Just part of being an indie developer.

20120505-215855.jpgThis week I began to work on some of the in game menus. The main reason I did this is because I often leave the out-of-game UI till last and end up throwing something together at the last minute to try and
get it out the door. Not the case this time. Here you can see the end level recap screen.

I also created the level select scene, but it is still a work in progress. I have decided though that there will be 6 “zones” per level. Think like Sonic, where you have 2 she’s that vary a bit, then a boss level. That is similar to how it will work in AquaWars.

Speaking of bosses, I began working on the first boss this week, but it is far from complete. The “idea” of the boss is there but I haven’t nailed down the look yet. Essentially it is a super submarine that introduces torpedo’s into the game. After the first boss torpedo’s will be found on various smaller ships.

I almost forgot, the primary thing I worked on this past week: power ups! So far all but the slow mo power up are implemented from the first game. I have improved the display of them and added the most requested feature: power up stacking! Yes, you can now have all the power ups active and not worry about picked up a new one that overrides your shield and gets your ship destroyed. So there you have it. One month down.

AquaWars Development Diary – Week 3

So it is the end of the third week. Unfortunately life has thrown a couple of obstacles in the way, meaning I did not get as much done thus week as I wanted to. On Sunday I got a stomach virus that made it quite difficult to work on anything, and the next two days I ended up working on a separate project. Thursday I had my four wisdom teeth removed, which wasn’t that bad other than the hours of having your face and tounge numb, along with changing out bloody gauze pads every twenty minutes.

I did work on a few things though, and have decided to set a finite deadline for the game, mainly to help me figure out where and when I need to get things done. My goal is to release the game on May 31st, 2012. I know that sounds a bit ambitious, but I think it is possible. It is also counting on a fairly short review time with Apple, but hopefully that won’t be a problem.

So on to the progress for this week. I began working on character dialogue displays, which is how the story will be told. They are far from complete, but they are loaded in from the level files and text is displayed on screen. They will be fully complete by next week. Explosions are also in the game and look quite nice. Subs also have bubble particle trails, but I am currently having an issue with cocos2d’s coordinate system misbehaving when I scroll the screen, so they still need a little work.

I have not created the first boss yet, but I have my thoughts. I will probably end up sketching some ideas later today. The first boss will look the most “normal” in comparison to the other bosses, as it will be a large submarine that fires torpedos and only has certain weak points. Later bosses will have more complex and strange weaponry.

That is all for this week, next week should have a bit more content to discuss!

AquaWars Development Diary – Week 2

So the second week of development has come to an end. This week was primarily back end work to build foundations for the game, although I did end up adding a few cool front end features as well. I’ll go over one of those first.

20120420-085332.jpg

One thing I knew I wanted in the game since the very begining: iCade support. And this really took less that 20 minutes to implement but if you have an iCade it totally rocks. The SDK is really simple and is available on GitHub here. If you are developing a game that can work with arcade style controls – you have to implement this. People with an iCade will love you. I may even end up adding iCade support to Rocket Chimp in the near future…

The primary things I worked on this week were backend related, specifically my GameObject class along with my level loading class. This game, unlike its predecessor, is going to be level based and have a cheesy “save-the-world” type storyline to go with it. It will still have a random “survival” mode like the original as well, but I think people will enjoy the levels and characters in the story.

The levels for the game are in JSON format. I chose JSON because of its human readability and compactness, at least compared to other text formats like XML. The added bonus is that I can use a library (TouchJSON) to load the file into a dictionary, so I don’t have to waste time writing some kind of parser. If worst comes to worst and I need to save space or improve loading times I can write some kind of intermediary binary packer/loader. But I don’t think either of those will be an issue.

In my GameObject class I cleaned things up quite a bit and made it a lot easier to create or reuse any object you need by building a factory class. This way enemy ships can easily spawn minions or fire off mines or torpedoes without having to rewrite a ton of code. So the enemy classes have been cleaned up and pared down to the basics, which is a good thing as it will make it a lot easier once I am creating enemies with more complex actions.

Unfortunately this wasn’t the most productive week, but I am also working on another web project simultaneously for what it’s worth. For next week I plan to have a few new things to talk about:

  • The first boss in the game
  • The first level set
  • Some new enemy types
  • Explosions!
  • Some in game character dialogue
  • Maybe some video footage…maybe.

Also, I just remembered that I will be getting my wisdom teeth removed this coming Thursday. So next weeks post might come a bit earlier…or later. We’ll see. 🙂

AquaWars Development Diary – Week 1

So since I have had this blog for nearly two years and barely posted anything I have decided to begin using it. I will be posting weekly updates on my progress with my current project, AquaWars X (Working title). The game is a remake of my second game, AquaWars. I worked on that game while I was in college, so I never really fleshed out the idea like I wanted to.

The game is a retro-styled arcade shooter. Its main inspiration is a game I played on my TI-83 back in the day called SubHunt. In the game you control a boat which drops depth charges to destroy enemy submarines. In AquaWars X you will collect “spare parts” from destroyed submarines which will help you upgrade your ship throughout the game. That is the basic gameplay of the game.

So on to development. This week was mainly spent building up the “engine”. I am using Cocos2D which gives nice Sprite classes, but having a layer on top of this really helps to streamline development. I made a little chart before development of how I wanted the design to look

20120412-161157.jpg

The design ended up being pretty much what I went with. I tried to stick with strict MVC, but in this case I decided to make a few exceptions. The view is essentially passive. The controller takes input and the model contains and updates the view (CCSprite). This means my code won’t be quite as reusable and harder to switch from cocos2d, but these are not things I care about as my goal is to create a fun game, not code that will be reused for the next 50 years.

I designed some basic sprites, the look of the game now is pixel art based, to go with the retro feel. Here is the first screenshot:

20120412-161310.jpg

Still a long ways to go! The biggest gameplay change from the first AquaWars is that the screen scrolls horizontally now, so you have a much larger playing field. The game is also going to be level based rather than completely random like the original. This will hopefully allow for some cool boss levels.

Anyways, that is all for this week. Stay tuned till next Friday for week 2!

TargetTap coming to…almost everything!

So the past two weeks I have been porting TargetTap to Android. In hopefully a few days TargetTap will be available on Android Marketplace, Amazon app store and Blackberry App World!

I’ll post an update as it becomes available.

DoneIt and Move updates on the way!

DoneIt for iPhone 2.0.2 and Move 1.0.1 have been submitted to Apple. DoneIt’s update is just a small bug fix for iOS4 devices, but Move adds proximity sensor monitoring to let you use the app while it is in your pocket.