Saturday, March 15, 2014

Fishy Hell

So much has happened in the development of the the scrolling ocean shooter game. I still have no real working title, although I'm starting to use SOS in a few places. I felt it was prudent to test my progress on mobile. It was frustrating to set up to say the least. The results were also quite frustrating.

Using the CocoonJS Launcher App I attempted to unzip and play the exported game. The problem was that the app was not acknowledging the .zip file I transferred over to the phone. It took some time and research but I eventually discovered that my phone hides the real root directory of my SD Card. Once accessing that location was sorted I was able to move the .zip files to the phone and launch them form the CocoonJS Launcher. During this process I had no luck launching from a web host location. It would successfully download the .zip but would not open it.

First launch of the game as it was terrible. It ran at 1 fps...

Looking into performance issues I learned that all the work I had done to make the game look cool was for naught. The number of sprites and the effects I was applying to them was too much for my mobile device.

Since then I have removed all "effects" from the sprites, eliminated the large particle emitters, and deleted the parallax background objects. I will replace the background with a scrolling tiled background which is supposed to be easier on the mobile system. I will need to find a better way to produce a large number of sprites on screen. Possibly reduce the sprite image sizes and be more aware of how many are being produced.

It was mentioned that text objects are hard to render at the moment. This will present a challenge when trying to display the score. A few other settings were mentioned to improve performance. These shouldn't detract form the final product. Things like turning off clear background and point sampling set to ON.

No effects and limited sprite count may make for a rather dull game. Hopefully I can turn this around as an exercise in minimalism.

Sunday, March 9, 2014

New Project

© 2014, Reid Case - Work in progress

After my failed attempt to participate in a local Game Jam due to weather, the pilfering of an idea with lots of time and creativity invested in, and my general lack of time and money to actually put a game together that I could publish, I found myself at a bit of a writer's block for game development. A developer's block if you will.

I had a host of demo, free, and other various game engines and development tools installed on my PC from my preparations for the Game Jam. One that caught my interest was Construct 2 from Scirra. I'm not sure why, it could have been the marketing.

It seems a bit like cheating to develop with a tool that "requires no programming," or however they put it, but for me and my time constraints that is a godsend. Although I feel I need to improve my programming skill set, for future employment reasons, developing a game solo or with a partner is a lot of time consuming work. At my current levels I can at best hope for a casual game release. To monetize I may have to pursue mobile as the advertising and monetization tools exist and are easy to integrate. They support developer publishing, and the markets seem to garnish a lot of attention.

Developing for PC would be great but I feel the players expect more. I will save that platform for a time when I have more of just that and hopefully money to employ some assistance.

To begin I set goals like Monster Mash

1. Make a game and actually finish it and put it somewhere popular for people to download and play it. Preferably someplace that supports in game advertising, purchases, or sells the game.

2. Keep it simple to finish it fast.

3. Don't worry about killing this time. People are inherently obsessed with it and its profitable. Add some sex appeal too if it helps sell.

The first goal is obvious. The second I found to be one of my greatest disadvantages. My time constraints with work and significant other do not allow for a fast turn out time. I feel both jealousy and frustration when I see indie developers finishing games in a week and spending the rest of the time pushing the game to players. Meanwhile I find myself chasing my tail with countless bugs, interruptions, and eventual brick wall hitting when I get in over my head with a feature or requirement.

Recently I read a few articles about Flappy Bird/Clumsy Bird, whatever its called or was called. It was astonishing how much the developer theoretically made. All trendy bandwagoning critique aside. Either this guy had a predetermined notion to create a Crappy Bird game and antagonize negative player population backlash against his taboo attempts to peddle it, or he simply had no idea what he was getting into and somehow still benefited from it in theory. His entire marketing strategy seems to revolve around something rooted in 12 year old boy sleep overs. Chalk it up there with sneaking into your friend's dad's closet to catch a glimpse at a few pages of his Playboys to satiate that preteen curiosity of the other sex. More specifically it can be likened to creating noxious liquids from everything found in the kitchen and daring each other to drink it. "Dude, check this game out its terrible!" and so your friend does... Why?

Surrounding the hype, a digital music band released a game in a week about the developers plight with his Frankenstein's monster creation.

My thoughts... I need to get to a point where I can release games that quickly. This is evermore so important when the average no name developer barely brings in $1,000 per release. When the defining factor between success and mediocrity for a game is marketing I need to spend 90% of my time doing just that, marketing. At my current rate if it takes me 1+ years to create even the most basic of casual games that could result in a following 9 or more just peddling it. All time wasted when technology changes and improves at an exponential pace.

So there I was trying to keep it simple. I figured I could jump on the Zynga bandwagon and go the menu driven, calculator/slot machine style route. Damn animations and puppet like avatars. I would create a game that tied into MySQL through PHP back end and find someway to develop the front end that would be cross platform compatible. I wouldn't need to learn the intricate details of the native code I would need to use, as simply navigating scenes and menu items, scripting numerical calculation, and generating random numbers is fairly easy in any language. I thought to mimic an old game from high school and TI-85 days, Drug Wars. I wouldn't directly clone this but simply model from it. Create a game that involved "travelling" to different "areas" and buying and selling in game items to make a profit. Add in some features for improving probability of success and profitability. Add a basic spouse was killed, kid was kidnapped for ransom, all orchestrated by some mob like uber don and leave clues all over. And there you have it. People will hate it and it will be boring as hell, but if I incorporate enough "gamer addicting substance" and market the ever loving hell out of it I might be able to buy a six pack of PBR or a new video card with the proceeds. To butter the fat I may even create a 2D anime style point and click interface. Something reminiscent of Myst combined with flash based dating games.

Construct 2 seemed to provide me with enough pre made bits and pieces. I have enough experience to put them together. After a few, and might I add well put together, tutorials I was off. Note: their tutorials seemed to click with me. Unity, although free and documented in an extremely detailed manual, is for some projects overkill. It may take me a year to get to the same point with something as powerful and there goes my plan. Also Unity seems to attract a host of unprofessional tutorial creators who love nothing better than clicking too fast through the options on poor quality Youtube videos with crappy music in the back ground. What I would pay for a professional educator to devise a learning system for the Unity engine. It may exist but I will have to wade through the muck to find it.

After dinking around with C2 I made the executive decision to kill the menu game and pursue something a little more enjoyable for the player. Two weeks later with maybe 40 hours into the game I have a working skeleton that only needs flesh, pictured above.

I will keep you all updated on the progress as it comes. Back to developing.

First Post

So this is my first post about game development! First off, I've been chipping away, learning the ropes, for years now with a friend James. My degree focused on application development and I have a background in the arts. For the past few months I have attended a local Meetup group in my area centered on game development. Back in January James and I attempted to attend a Game Jam but were foiled by the weather.

Here I am a few months later still taking baby steps towards something I can publish and hopefully use as a seed to future success as an independent game developer. 

We recently learned the hard way about IP protection. A game that James and I had been working on was, let's just say, inspiring to someone else we naively showed it too. On the bright side he is selling his interpretation and so I feel that at least we may have had something had we finished it.

I have a childish project hosted on IndieDb here

Monster Mash

It was a bit of an experiment spawned from a presentation about genetic algorithms. My GA isn't perfect in this iteration, and probably isn't a true GA, but it was an interesting exercise and a good test of my C# skills on the XNA framework at the time. I was inspired during the talk when someone presented the question of how genetic algorithms could be used in games. The immediate, and default, application seemed to be to use GAs to administer the AI. A second and less direct approach was to use the algorithms to devise optimal starting strategies for games like StarCraft . This troubled me as both were fairly obvious solutions. I began brainstorming. I was curious to see if instead a genetic algorithm could be used to administer UX or some other facet of a game.

I set some criteria for this experiment. 

1. It has to be a game.
2. It has to use a genetic algorithm in some other aspect besides the AI or strategy development.
3. It can't involve killing anyone.

The third criteria is something I occasionally try to aspire to in my concepts. Too many games today involve the player virtually killing someone or something. 

Overall I don't feel my little Monster Mash game is much of a game. There is a score and the difficulty does increase slightly each evolution. Future plans would be to add some other goal set besides scaring the people. Possibly mazes or puzzles to guide the monster through. Feature wise I would incorporate visual manifestations of abilities or possibly mutations that manifest visually to provide new abilities like flying or becoming an apparition to pass through barriers. 

The genetic algorithm is difficult in this game cycle. Each round ultimately functions as a fitness test. The problem is a true GA needs hundreds, thousands, or more tests to be effective. I had to tweak the rules of GAs a bit to accommodate the low volume of fitness tests. I found the system lead to a wide range of stats combinations in the beginning; coupled with mutations in later iterations the player could experience wild shifts in abilities from the previous round leading to a frustrating and inconsistent UX. On the other hand odd quirks poked their heads up. On occasion the system would evolve a character that responded inversely to directional input. This proved better for some unknown reason and persisted through later rounds. 

I successfully didn't incorporate the death of anything in the game...