Monday, December 12, 2011
Friday, December 2, 2011
Sunday, November 20, 2011
Thursday, November 10, 2011
(Ignore those two buttons in the top left corner - I use them for debugging).
Wednesday, November 2, 2011
Sunday, October 23, 2011
Thursday, October 6, 2011
Thursday, September 29, 2011
Saturday, September 24, 2011
(red rectangles are allies, black rectangles are the invading enemies)
...Actually the past couple days were mostly spent on drawing and painting. I mimicked some of the art styles found in Chibi Knight, Ninja Brawl, and OMG Zombies, to create some main menu designs...
Then I did some character design based on a new game called God of Fight. I managed to animate him in a background I whipped up.
It feels very natural. I am eager to add some attack animations and enemies that use the same animation set.
This gladiator consists only of single-frame body parts that are animated like a paper doll, which makes it incredibly easy to create additional body parts for variation. In other words, I do not have to redraw anything so it saves a lot of time! I have some code that can dump the transformation data from a Flash movieclip to Lua, so it's extremely memory-friendly on mobile devices.
I can really see myself developing some kind of hack & slash game like Castle Crashers, featuring three distinct heroes to choose from. Realistically, most of the work is in the art and design. The programming should be really straight forward, and therefore, easy to port from Flash to mobile using Corona and Lua.
My only concern is choosing a theme. Fantasy is probably the most popular. Zombies, pirates, ninjas, and vikings are also really interesting. Well, whichever I choose, there is always time for another one! This is shaping up to be a 4-6 month project, but frankly, I would rather pursue this over two smaller games that rely on some gimmick.
Wednesday, September 21, 2011
(screenshot of the prototype)
There were 21 cool items planned, but the core of the game was not fun. Plus, the game would have very little replay value.
But enough of that. I spent a couple days thinking deeply about what I would rather develop. Actually, what I would rather play on my iPad for many hours. So, I am hereby announcing that I will be developing a match-3 puzzle RPG with a zombie theme. Like many of my designs, I tend to blend several games into one. I will have more details once I finish the prototype.
On another note, the latest tower-defense game is finished. I recently registered an LLC here in Pennsylvania, so I will be submitting the game once Apple approves the business documents and such. Realistically, it could be a month, but I don't see a need to rush anything.
Saturday, September 3, 2011
As for the new project, I really enjoy wrapping things up and starting something brand new. Each project is an opportunity to filter what did not work, and try new things from art, programming, design, and business. More importantly, any mistakes do not cripple a project for years because my development cycles are only 2-4 months long. There will come a day where I want to invest independently in a year long project that I deem worthwhile, but that day has yet to come. I am having too much fun developing small games while getting a taste for different platforms, art styles, and genres.
In the meantime, although I want to return to Flash game development, I do not want to leave the mobile scene. So, I am going to take advantage of both! My objective is to develop a viral Flash game developed with heavy design iteration, that launches with a link to the mobile app developed with Corona. Adobe's packager to turn a Flash app into a mobile app is still garbage.
Anyways, I am through with the sponsorship route as a monetization model. Though, the two months of work on Defend Your Nuts and its half dozen licenses sold have collectively surpassed how much I could have made at my old job in that duration anyways, so I cannot complain. Combined with Pigs Can Fly, these two games games have collectively been played an estimated 10-14 million times worldwide, or at least definitely by the end of this year. This kind of exposure is too difficult to ignore.
I have prototyped a couple ideas. The first involved creating 2D amusement park rides with physics, inspired by my childhood experience of playing with K'NEX. It did sound like a good idea, but it introduced a very large unexplored can of worms. I may revisit it.
There are so many ideas on my list, but many are incredibly ambitious and involve multiplayer. This time around I want to scale way back and concentrate on just making a fun game, while leaving lots of room for polish. I really paid the price on this previous tower-defense game, where there were just too many features, art assets, and design changes. Worse, everything was interconnected so a single change would often break other features, or throw things off balance. Despite becoming more productive with Corona, the game itself turned from liquid to stone near the end of development.
Instead, this other prototype seems far more feasible. It involves a flying pig (no surprise) that launches out of a cannon across the landscape while collecting stars (money) to purchase upgrades in some make believe shop. It definitely falls under the popular toss genre. A considerable amount of time will be invested into the cinematics to tell the pig's story and bring out empathy. Already I have a really good feeling about all this. This screenshot contains only placeholder art for the prototype so try to see past it (refs: background, cannon).
So this is where I stand for the next 2-4 months. I am intentionally not setting a deadline this time, because I want to take my time on this.
Saturday, August 27, 2011
With that said, I returned from a brief vacation and experienced the game with fresh eyes. And with the help of playtesters, I have decided to make drastic changes to the heroes. At this point, I am satisfied with the fire, cold, physical, and poison elements, but each hero does not have enough utility. Worse, upgrades are independent from one another. Sure you can upgrade an ice mage to slow enemies, but it gets progressively more expensive and he will be doing as little damage as a freshly hired one.
Therefore, each hero's level will be simplified to have predetermined benefits, and most of the heroes will be changed in some way. It will be less about damage, and more about utility.
Tuesday, August 16, 2011
With that said, I'm at the point where I can now concentrate on other things. The past couple days were spent packaging site-locked licenses for Defend Your Nuts, researching for the next project, and just taking it easy. I also took a day trip to New York with my roommate to pick up some high quality spices for cooking. We also visited Korea Town way out in Flushing, Queens to shop at the local bakeries and high end tea shops.
Yes, I do have two keyboards - one for my primary PC and one for my Mac Mini that I just use for compiling iOS projects. I recently picked up a "silent" mechanical Das Keyboard and I love it. I find myself typing up to 50% faster with no fatigue, because the keys have been specially engineered to have calibrated pressure sensitivity. At first I was not blown away, but after going back to a cookie-cutter Dell keyboard and its mushy feel, it just can't compare.
But back to the topic of the project. I was really amazed at how simple it was to build the app for the iPad. Corona does a fantastic job at taking care of all the annoying bits that go into the process. Have you ever made an iOS game in Xcode with no engine? I have.. and it was an incredibly miserable experience that turned me away from mobile development for a long while. These days I would rather just license great technology that takes advantage of very high level languages.
Though, typical of game development for something to take longer than expected. I use Git for source control, but out of the box the software does not handle binary files well. My project's entire depot was a reasonable 2gb, but it took about three hours just to "pull" the project onto the Mac Mini. Despite this, I still love Git for small projects due to its simplicity and power. I'm definitely going to continue to use it.
Friday, August 5, 2011
I'm proud to announce that Defend Your Nuts is primarily sponsored by Armor Games!
It has been less than an hour, but the game is doing well and the feedback is mostly positive, which is great news! So, congratulations to Armor Games! I'd like to thank all the beta testers who provided feedback on all aspects of the game.
Music: pond5.com (battle music), soundloopstudio.com (shop music)
Friday, July 29, 2011
At this point there are quite a lot of features that will need careful tweaking and balancing. For example, the player receives benefits from upgrades, items and achievements. Then there are seven heroes with four different upgrades each. Not to mention, 20 unique levels that need the strength of the enemies balanced independently. It's all roughed out and playable. Each revision makes a tremendous difference that only increases the fun factor.
I scrapped the volcano theme and replaced it with a beach theme, because artistically it was far easier to pull off. There is also a new treasure chest "hero" that collects gold within a small radius (think of the thief in Crystal Defenders).
This has been a really enjoyable experience so far. Normally progress on a game slows down near the end, but this one actually picked up in speed because it became easier to work with Lua and Corona. I'm sure the next mobile game will be even easier.
Oh, and I selected my sponsors for Defend Your Nuts! The auction went very well and surpassed my expectations! But more on that later...
Sunday, July 17, 2011
For the walkable path, I use a total of six square sprites for each theme (horizontal, vertical, four corners). At first I attempted just to use one corner piece, but that easily causes seams and result in inconsistent highlights and shadows anyways. For a seamless horizontal piece, just create a square movieclip and then then tile it. Select one in the center, and then begin working from that because you can preview it as a pattern where the surrounding pieces are grayed out.
The props (e.g. skulls, snowmen) can be deleted during the game at the cost of gold. I actually create and place these as movieclips in Flash where each property name is the same as the name of its corresponding member of the sprite sheet. The level is exported as a .swc so I can I can use FlashDevelop to take all these levels and output debug text describing the location and type of each prop, formatted as Lua code so it can all be copied and pasted in one go. It may be a strange way of doing things, but it's very easy and rids the need to introduce a level editor because Flash is the level editor.
Friday, July 15, 2011
The rocks and mushrooms (and other future obstacles) can be paved away at the cost of gold to allow heroes to be purchased on those squares. Specifically, the dwarf will have only a 3x3 grid-cell attack radius, so it would be advantageous to remove that small rock in the corner of the path on the right side of the screen.
Below are the level design concepts from prototype to final. The final design borrows art inspiration from Plants vs Zombies, Bloom Defender, and Mining Truck...
Conclusion: the smooth windy roads were a failure for many reasons so it had to be fixed. Today marks the end of four weeks of development, so there are two more to go until beta. It's going to be a very busy couple weeks!!
Monday, July 11, 2011
And the latest in-game screenshot:
Thursday, July 7, 2011
Heroes (6 of them) either attack with physical damage, fire, ice, or poison. Pirates throw bombs that do both physical and fire damage. Likewise, each enemy (20 of them) has a weakness to one of the elements. The icons on the right are the hero upgrade buttons. A lot of the work to be done next week is not even shown in the screenshot. It will include a global map to choose what path to defend (probably 1o) and some permanent upgrades the player can select through experience, initially constructed from a choose-your-own story at the beginning of the game. I've definitely acquired a lot of my inspiration from other tower-defense games, but especially the Protector series.
Update: I'm experimenting with different styles of environment art. I'm not satisfied with it, but it's still a whole lot better than the previous design. Environment and background art is my weakness, but no surprise I spend so little time doing it.
Friday, June 24, 2011
The top row are the heroes, and the bottom row are the evil creatures. I actually have no idea what the second green guy is supposed to be. I'll probably replace the horns with large ears to turn him into an armed gremlin. There are no other views for these characters - they mirror horizontally and that's it. This means their primary hand will switch, but I am totally fine with it.
I'm still considering ways in which I can easily balance the game with confidence. This game is not written in Flash, so it's not like I can send out a URL to get some massive feedback. I suppose that would be one strong advantage of using Unity, since an app can be embedded into a browser. Again, I tried Adobe's Flash packager for iPhone, but it was incredibly slow and lacked features.
I'll be honest, I'm not really feeling this game as much as I did with my previous two. But, probably once I hit alpha and drop some good music and audio in, everything will just fall into place. I already have plans for my next project, which will probably be an experimental Facebook game.
Wednesday, June 15, 2011
I dabbled in Adobe's free Flash packager for iPhone during development of Defend Your Nuts, but with just a couple monsters on the screen, I was getting at most 5fps on my iPad! It was so slow that it did not matter if GPU rendering was enabled. I have some experience developing for iOS from scratch with straight up Objective C, so I knew I did not want to repeat such a miserable experience.
I eventually settled on Ansca Mobile's Corona SDK because I get to write all my code in a high-level language (Lua) and avoid tedious memory management and all the typical boiler-plate code that goes into a game. I understand those things are essential, but with the scale of my games I am better off putting faith in someone else's technology as a foundation. Plus I can continue to use Adobe Flash as my art and paper-doll animation tool, because I have found a way to export the transformation data out of my assets and into Lua scripts. For frame-by-frame animation, my license of Corona came with software that creates sprite sheets out of SWF files so this saves me even more time. The variety of aspect ratios on mobile devices always worried me, but Corona does a great job in handling all this with different scaling options. Porting to Flash should be easy because it has a very strong resemblence to Action Script and common data structures.
I got up to speed by prototyping some game ideas. I tried an experimental method by taking random clip art from the Internet and rearranging them in Flash while listening to music - that way I was oblivious to even the genre. Then once an idea came to me, I would export the assets and do some programming. The method is inspired by this digital artist who paints by first distorting an image to see a new unexpected image to work with.
Well, it kind of worked, but I got some strange results...
Here is a side scrolling game where you play as a knight hopping on cakes to collect cherries. The game lacked some serious depth and wasn't fun at all so I trashed it.
Then I rearranged clip art of food until some kind of veggies vs fast food tower defense idea came to mind. I refined it with additional art and a conveyer belt, but it was too strange so I trashed it as well. Also why would players want to destroy burgers and ice cream?
It's a tower defense game. The king hires you to recruit heroes to help defend against the onslaught. Here we see a cheap pirate/bandit hired to throw bombs, standing on one of the blue stumps reminiscent of a board game. I wanted to avoid a grid system and go with something a bit more natural. The idea could work, so I'm going for it. I expect a beta to take six weeks, so here we go...
Thursday, June 2, 2011
I found a nifty way to get the game translated into a total of 16 languages (the screenshots show simplified Chinese and German) powered by Babelfish when possible and Google for the rest (Babelfish is more reliable). I write an html file that contains my text (written like an array in ActionScript with apostrophes and commas), upload it to the web as a webpage, get it translated, and then copy and paste. The rest is just programming where the subtitles go.
Thankfully I know a bit of Spanish so I was able to spot some problem cases. The text is simplified as much as possible. For example, rather than "Leaderboard" I wrote "The Winners", and rather than "Achievements" I wrote "Trophies". There are still some problem cases (like I used "mine" instead of "landmine" so it creates some hilarious sentences for the achievement), but it's good enough.
Wednesday, May 25, 2011
I use Playtomic.com for statistics. It's a very simple API and something I will definitely use again. It cost me nothing for the first game, but I look forward to purchasing the service for additional games.
The game has been played by about 2.3 million players, and is available on almost a thousand sources (websites, private servers, etc). Most of the attention was received within the first few weeks. The average play time ranged from 14 to 15 minutes:
These are the countries with the most players. With this knowledge, I'm going to make at least some effort to support language localization, even if the translation is crude, it's better than nothing.
These are the top sources. Notdoppler.com must be a very high traffic website, and probably receives more than Kongregate because the game was featured on the front page of both websites. Strangely, many players play outside a web browser (localhost). Spielaffe.de is a German website, uol.com.br is Brazilian website, and juegosjuegos.com is in Spanish. This makes it easy to see why the top countries are what they are.
And now for some other fun statistics...
- 20.5 million pigs have been given their wings.
- The game has been played an equivalent of 65.3 consecutive years.
- 708k players needed help so clicked the walkthrough button.
- 262k muted the music (30% unmuted the music).
- 243k muted the audio (28% unmuted the audio).
- 14k clicked the JayIsGames.com button.
- 200k+ visited MaxGames.com.
- 34% beat level 25 (last level of initial release).
- 2% beat level 30 (last level after additional map pack update).