OhSnap! Cheap Motion Capture for 3D Modeling.

Indie game developers are cheap! Yes, cheap! Don’t get me wrong, as someone who is frugal and indie game developer, I am probably the epitomy of a cheap game developer (and I see that as a good thing). Developing Alley Avenger, the only amount of money I spent throughout the project was the $25 license fee to become an Android developer. From what I’ve gathered, many other indie game developers are the same way. Rightly so, the core concept behind being an indie developer is that you’re self-funded.

So naturally, being self-funded, some more expensive tools that are typically chump-change for larger studios tend to be a major expenditure for indie developers. One of these tools obviously being motion detection for animating 3D models.

It’s 2015, how has the market not given us a cheap alternative to motion detection? Having tinkered with Blender, I’ve found the most frustrating part about 3D modeling is animating. In the past, many of my game development projects were stopped dead in their tracks because I’m just stinkin’ not good at animating on a computer. I believe this pain-point rings true for many 3D indie developer/designers (think about the last time you played a game with stiff 3D animations!), but spending $1000+ on a tool just to alleviate this issue just isn’t reasonable.

BoneSo with this issue in mind, I started developing OhSnap!, a tool to cheaply and easily build your models’ armatures with physical pieces and animate it with your hands! So far, these are the rough specs I’ve been working on for this project:

  • 3D printed “bones” will be able to snap together (see picture). Bones will vary in length and number of connectors at either end.
  • Each “bone” will have an accelerometer (MPU6050) chip housed inside of them to gather rotational positioning data along with a cable to connect to the central micro-controller.
  • The central micro-controller will be comprised of a single Arduino Uno bundling raw data and passing it via USB to the computer.
  • To start, the tool will integrate with Python to easily assign and rotate the physical bone-structure with the virtual armature. Possible support for 3DS Max or Maya in the future.

I’ve gotten rather far in development. Check out the partially-finished product below and stay tuned for posts on future development!

boneREAL

Time Management – Balancing Playing Games With Making Them

clock[1]I did some soul searching recently, taking a step back and trying to evaluate how much time I spent playing games. Contrary to what you might be thinking, my thoughts were surrounding how LITTLE I played. I posted recently on Reddit’s /r/gamedev subreddit asking how much other people played video games, both for research and for fun. The question came to mind after realizing how little I’ve been playing video games, especially mobile games, since I started development on West Wars. I got answers ranging from “Spend a fifth of your time playing games” to “Don’t sweat it and do what works for you!”

After the numerous answers poured it, I took a few valuable learnings away. The points may seem contradictory, but take them as you will.

  1. Do what keeps you motivated. If you’re riding a wave of motivation when making your game, don’t wipe out!
  2. Reserve some time for games that are relevant to the one you are designing. These games are what can provide the most value to your “research”.
  3. (Especially applicable to mobile) Spend time playing games in moments that couldn’t equally be spent developing them. For instance, the perfect time to pick up and play might be when you’re ready to take the browns to the superbowl! *hint hint*

Someone at one point quoted something they heard in the past: “If you want to make good games, you need to play games.” Since my goal is to make games in innovative, new ways, it reminded me of another quote from Tom Freston – “Innovation is taking two things that already exist and putting them together in a new way.” Knowledge of what’s out there helps us predict what’s next (or should be next)!

Alley Avenger Gets Better And Better! v1.6 Released!

More levels, another boss, and better graphics and sounds! Among the updates this time around, the following include:

Check out the latest updates here!

  • Rainbow levels!! For the elite few who reach level 45, be prepared to go on something resembling an acid trip.
  • Beat enough levels to fight the elusive AbsentDigit (tickle me impressed if you get the reference 😉 )
  • New graphics and sound effects. Yeah baby!
  • Bug fixes, per usual.

I would like to take a moment and thank everyone who has played this game. It means a lot to me, given the amount of time I’ve invested in making this game possible, that many of you play and enjoy the game, despite it’s continued unfinished state. I hope to continue making this, and any future game of mine, a game that I myself would play. Game on, everyone!

A New Game Is On The Horizon – Code Name: West Wars

After a fair bit of experience making Alley Avenger, I’ve decided to a promising fresh project with a new genre. Strategy games! Anyone who knows me well knows how much I love Civilization 5. It’s a turn-based 4X game (eXplore, eXpand, eXploit, eXterminate) that never gets boring! Building up cities, being diplomatic with neighbors, creating an epic military in the age-old struggle to be ruler of the world…it’s such a fun experience!

On that same note, I love mobile games. As a frequenter to /r/AndroidGaming, I found there to be a huge void where good strategy games should be. Many users have requested strategy games, to which the community would respond with options that were either horribly implemented (Civ Revolution 2), had unbearable controls (FreeCiv), or were actually promising Indie games that are perpetually in alpha. Every post that requested a good strategy game looked grim…the pickings were slim! (Did I just rhyme?)

Well, with that said, my next game was clear. I needed to attempt a strategy game…Code name: West War (literally, I’ve been writing the game code with this name 🙂 ). I haven’t gotten far, but I’ve already rallied another developer and fellow Civ 5 fan in my office to join my cause. We’ve already made a cardboard cutout “simplified” version of this in board-game-form and hashed out all the rules for Phase 1.

I won’t reveal much so far, but I WILL say that we’re aiming for the following:

  • Turn-based hexagons, with a focus on hexagon development. Each hex will have 6 different resource triangles which can be built upon.
  • Western setting.
  • Entire game playable in portrait mode with just one thumb.
  • Online play-with-your-friends.
  • 99 cent price tag.

A few nice-to-haves (which we are giving serious consideration since the Unity engine supports a fairly painless way to do these):

  • Google Cardboard / Occulus Rift support for hands-free virtual reality!
  • Cross-platform play (PC, possibly Mac, possibly Web).

Below is a screenshot from current development on the progress I’ve done in the past couple of months. More to come in the future!

3

Release A Game Early Or Not? That Is The Question!

Early last year I ran into the conundrum of releasing my game, Alley Avenger, early for the public to play. Should I wait for a polished product or should I go ahead, release something “kinda cool” and build from there. As it stands, I don’t seem to be the only one with this problem. Steam had, in recent years, began supporting developers by allowing them to advertise their partially-completed games as “Early Access”, and since then the practice of releasing barely playable games has gotten massively popular. Sure enough, many of these developers, after earning their money, lost all the incentive to finish their game, leaving many disappointed fans.

While the Android platform is a bit different than Steam, many of the same rules apply. I weighed the following pros and cons before deciding on whether to release my game or not:

PROS

  • Get Visibility Sooner – If your game is good, people will notice and you will get a following.
  • Testing Against a Wider Audience – Google Play allows for beta testing, but you have to require that every tester subscribe to your Google Group. There’s a large barrier there that many are unwilling to go through.
  • Bragging Rights – As bad as it is, you have the ability to say “I have a game on Google Play”. Granted, there’s a LOT of crap out there, so it’s not hard to become published, but a half decent game will still be a cool little achievement which should, in turn, boost your enthusiasm.
  • Motivation – Now that your game is out there and not in the final state you want it in (and people are playing it!), a fire is now lit under you. This can be good. It’s more than a pet project now.

CONS

  • Bad Impressions – It’s important to note that a user’s initial impression of a game, if bad, can totally ruin it. Remember all those media outlets you advertised your partially finished game on? Well now advertising there won’t be as effective.
  • Consumer Confidence – So now that you’ve done an early release, you will naturally be lumped into the category of “Developers Who Don’t Finish Their Games”. Many players are sour by previous experiences both on Steam’s Early Access and Google Play, and they don’t want to be your testers.
  • No Turning Back – Your core game mechanic becomes locked in. Assuming you’re like me and don’t quit on projects, this is a huge milestone that is incredibly hard to turn back from. Changing a mechanic in the game that is heavily used can really annoy your existing user-base.

GloveScreenshot

So in the end, as many of you know, I decided to release Alley Avenger early. Having no financial incentive in doing so, I wanted to simply release my first game for all my friends and family to see. As a first game and a small-time developer, it made sense. If I were a bit larger, or had a more highly anticipated game on the drawing board, then I may consider waiting.

Alley Avenger Update 1.5 Released!

Yeah baby! My largest release yet! A lot of fun ideas I’ve been playing with have finally made their way into Alley Avenger. Check it out!

  • Clean up the alley with a brand new SHOTGUN! Shoot several bullets in a spread but with limited range (unless, of course, you upgrade!)
  • Bosses now have health bars.
  • Expanded levels so that there are now 5 before facing a boss (contrary to the 4 before). As such, there is now a total of 45 levels! Play-testing took me 2-3 hours to complete the game, so this added tons of new challenges and content.
  • New achievements for new bosses.
  • Lots of new powerups and abilities in the store. Level up your pistol and/or shotgun!
  • New snazzy bird and tank graphics.
  • New sound effects.
  • Humorous “Advice” section on the play menu.

Finally! – A function for Pausing All Timers in Corona SDK

Any game developers using Corona SDK will eventually run into a struggle when it comes to implementing a pause menu. Since the goal is to “pause” all objects on the screen, four different “to-dos” need to occur:

  • physics.pause() for any objects that utilize the physics engine.
  • transition.pause() for all object transitions in play.
  • Pausing animations of any relevant objects on screen. If implemented correct, this should be as simple as parsing a display group.
  • Pausing all timers that are active.

While the first three can be relatively easy to implement, the fourth bullet point seems to be a common struggle experienced in the Corona community. The timer object can only pause individual timers (assuming you have the timer readily available). It’s beyond me why Corona Labs failed to implement an all-encompassing timer pause similar to how they handle physics and transitions, but perhaps there is a reason I’m unaware of.

In order to alleviate this, I’ve developed a lua script that adds additional functions to the existing timer class which allows you to pause and resume all timer objects. You can download the code file here. After referencing the file in your code, the following new functions should be used in your application:

  • timer:createTimer(delay, listener, iterations) – Replace all instances of timer.performWithDelay with this function.
  • timer:destroyTimer(id) – Replace all instances of timer.cancel with this function.
  • timer:pauseAllTimers() – New function to pause all timers that were created through the createTimer method.
  • timer:resumeAllTimers() – New function to resume all paused timers that were created through createTimer.

I’ve been using this code file and it’s worked fairly well for my game, Alley Avenger. If you have any suggestions for improvements, let me know! AnomalyArtsGames@gmail.com

 

Top 10 Most Frustrating Things About Mobile Games!

top-3-things-your-mobile-website-needs[1]There’s no arguing that smart phones have many obstacles when trying to use them as gaming devices. The underlying goal in having a smart phone is to present data to the user on a device that is both usable and portable. Because of this, a paradigm shift has occurred in the gaming industry, creating several new challenges for game designers to overcome.

The following is a culmination of all the experiences as both a developer play-testing my Android game, Alley Avenger, and a consumer, looking at the top free and paid apps on the Play Store. Without further adieu, here are the top 10 frustrating things about mobiles games and my take on why these features are so annoying!

10. Automatic Full-Screen Mode

Jelly Bean Android added full screen support to Android and this has caused somewhat of an annoyance among the mobile gaming community. Many developers jumped on this bandwagon seeing more screen real-estate as a good thing! Hey, perhaps it is, but locking out the ability to pop out your nav buttons or notification bar into view is absolutely unacceptable. Forcing a player to learn your convoluted menu hierarchy in order to leave is a quick way to frustrate your users. Fortunately, many mainstream game engines account for this, so you don’t see this issue occurring too often.

Personally, I’m more of a proponent of leaving the nav buttons on the screen and utilizing the back-button as part of the controls, but hey, more on that in a bit!

9. Orientation Support

If anyone has a Nexus 5 like myself, you’ll know that if you play a game on the phone rotated in a 90 degree (counter-clockwise) landscape setup, it is possible to accidentally cover the single speaker it has with your palm. Additionally, if a game is played in portrait mode, users might want to have the option to rotate the phone 180 degrees if they want the USB cable charging their phone to come out of the top instead of the bottom. My point being…give the user the option which way they want to play their game!

8. Time-Limiting Game Mechanic

A disturbing trend seems to be getting popular among big mobile game makers in an effort to increase their games longevity. This ranges from “Daily Rewards” features (minor) to straight-up halting gameplay until a set amount of time. The new Cut-The-Rope does the latter, unless you view an ad. This feature single-handedly changed my immersive experience from “cute little guy trying to get candy” to “MONEY! LOOK AT THIS AD AND GIVE US MONEY!!” because, hey, the other option is to wait…but I know that when I’m dropping a deuce, I will usually quite my game and open up Reddit.

Additionally, developers have sought to make set-it-and-forget-it type games. While I do admit that these games tend to have an addicting factor to them, it goes further to separate the game from the gamer. As I mentioned above, given the availability of phones, people want to play games on their terms and at their convenience.

7. Confusing Interface

A confusing interface can really kill an experience before the player even gets to the gameplay. At the very least, it could leave your player with a sour taste in their mouth. Do you have music on your title screen? You better have a mute button off in the corner! No point in letting the guy in the stall next to you know you’re playing the new Angry Birds!

Don’t get too fancy with buttons and graphics, either. Norms are starting to surface in mobile games, and people like it that way. For example, the “grid view” for selecting a level is pretty popular, so why not try labeling your button the same way? Don’t be afraid to copy some design paradigms from other successful games (just be careful to not copy their creative direction as many crappy developers seem to do these days).

concept_level_select[1]

6. Lack of Button Support (Or Improperly Implementing Them)

As mentioned in (10), if you allow your system navigation buttons to be present (instead of hiding them in full screen mode), then utilize those bad boys!…okay, maybe just the back button, but don’t disable the other system buttons. The back button should pause mid-game or, if spam hit, close out of the game entirely. The back button is often the “Oh Crap!” button that people hit, so catering to that need could only benefit your games usability.

Personal Rant: I have yet to hear this from anyone else, but it utterly annoys me that spam-hitting the back button usually brings up an “Are you sure?”, disallowing me to exit. This message has NEVER saved me from an accidental exit. Do they expect me to butt-exit out of the app while the phone is in my pocket? A pretty good alternative to this has been the “Hit back again to exit” message. THAT I’m okay with 🙂

5. Long Load Times

This is perhaps something that can’t be helped for many games, and yet still holds true as one of the most frustrating things about mobile games. To all the developers out there, at some point in the development stage take a moment to assess all of the code you’ve written and find areas that you can optimize performance. This is crucial in mobile gaming. While phones are getting evermore powerful, they are still inferior devices compared to the current desktop PC (unless it’s your grandma’s PC).

I get it, large game developers want to port their titles to iOS and Android. These are perhaps the exceptions, but it doesn’t defeat the fact that many players often want to open a game, play for two minutes, then close it. If the open/close time is half of those two minutes, it’s not likely someone will want to “pick up and play” your game in future washroom excursions.

4. Nagging Notifications

If you’re developing a game and feel the need to add notifications, you better have a pretty darn good reason to have them, and they better be opt-in! Between myself, my friends, and seemingly the /r/Android(Gaming) community, these are, by and large, grounds for uninstalling an app. The only proper way to implement these are typically with games that include time-based mechanics, where it notifies the user when, say, that sweet new death ray has finished being built, or with multiplayer type scenarios, where you may be waiting for your buddy to finish his move.

Fortunately Google has our backs here, and since Android v4.0 (?), they have given us the ability to limit notifications from any app downloaded on the Play Store. Not so sure about iOS though…

3. Adsannoying-ad

Most people you talk to will agree that ads are a necessity when you deal with free stuff. Ads are very much a delicate topic to approach, as they are something I chose to include in my game despite their risk of potentially ruining immersiveness. I may write a whole separate blog post on this, but to summarize, these are are a few of the frustrations people experience with them:

  • Full Screen ads that force you to sit and watch.
  • Banner ads that are “conveniently” placed at junctures where the player taps.
  • The effect ads have on load times.

For parents who let their kids play on their phones, the second point is a huge issue (or “solution” if you are a skeezy developer who makes children’s games solely for easy ad-click revenue).

2. Rigid Controls

Another very complicated facet of games. No matter how graphically amazing your game is, if your controls are unbearable, a user will quit playing then and there. Conversely, good controls can make the simplest of games the most addicting. Considering that the controls for games like Flappy Bird and BADLAND consist of a single tap anywhere on the screen, the simpler the better! Additionally, Temple Run utilizes 4 different functions by having you swipe in any of the 4 directions, anywhere on the screen. Games that tend to require you to precision tap somewhere can really suck the fun out of it. Allow your controls  to be flexible and fun!

1. In-App Purchases (IAP)

Rightly at it’s #1 spot are In-App Purchases. These have become popular among the free-to-play model to get users to succeed through the game with their wallets and has, unfortunately, ruined many potentially good games. Mobile game makers are creating new and inventive ways to bait-and-switch customers into shelling out more money. Extra powerups for overly-challenging levels, “premium currency”, and pay-to-win competitive models are all new strategies to get you to make purchases. It’s even worse when skeezy game developers prey on the ignorance of children by making purchases stupidly easy. In my opinion, the only fairly acceptable use for IAP would be for game expansions, where the core game is already a full experience which the developer would be expanding upon. Unfortunately, very few seem to implement this model!

In Summary!

As a game developer, I take many of these frustrations to heart. Some are easy to avoid, while others aren’t. Mobile gaming seems to be the fastest evolving gaming industry on the market, so it’ll be interesting to see how things shake out in the future with many of these pain points.

Alley Avenger is Live! Soft release available on the Google Play Store!

Finally! After much anticipation, Alley Avenger v1.2 is finally playable from the Google Play Store, and I’m excited! As a marketing strategy, I haven’t gone public with this yet, but it’s hard not to tell friends and family. Although it is now on the market, I’m considering this as a soft launch. The following features are available for the current release:

  • 20 Playable Levels
  • 2 Bosses (skull and tank)
  • 5 Power-up/Abilities that can be purchased from the store
  • Options to mute sound and music, as well as change the color of the current character
  • Level Achievements – Finish a level without getting damage or destroy all objects
  • Google Play Achievements – Unlock achievements from various accomplishments in game

Soon to come:

  • Leaderboards (Google Play) – Compare number of Level Achievements with friends
  • More Levels and Bosses
  • More Abilities and Powerups
  • Different Guns that have varying strengths and weaknesses
  • Better graphics

Really looking forward to seeing how far this will go! Stay tuned!

Screenshot_2014-04-15-11-03-40

Screenshot_2014-04-15-11-06-55

Screenshot_2014-04-15-11-07-22