Sunday, March 29, 2015

Future Battle High 2 Plans!

So a few Fridays ago, I tweeted this:

And it's true, but for now, that's all I'm going to say. I'm working on it, but even before an Xbox One version, there are changes I want to make to the versions that are currently live on Desura and OUYA -- which I can also say now exists in Chinese!

Improved AI and Training Mode


So in a previous post, I wrote about a talk Mike Z gave at UFGTX. In his talk, he put a lot of emphasis on the importance of having a deep training mode. Personally, I don't go into training mode for hours, so an in-depth training mode never felt important to me, but the more I thought about it, the more I realized that it's a really useful tool not only for players but also the developer. I can make an AI do and see if the AI is corresponding to my requests and recorded inputs accurately. I think another reason I strayed away from it was that it'd be a rather large amount of UI work. Seeing that I could use this as a great way to improve AI as well, this will probably be one of the first tasks I tackle.

I WANT MY AI TO BE ADVANCED!  Okay, maybe not this advance

From Time to Frames


In the XNA version, I was using time-based system for animation and frame counting. Now, I do have a system that consistently increases times so animations are accurate, but due to floating-point error on different systems, this can still be a problem, so I want to change to a frame-based system. For example, if Jiro's light punch is 10 frames, it would be 0.6 seconds to complete (10 Frames / 60 FPS). If I wanted to change this and make the animation a little bit longer on start-up, in the current system, I'd have to change some hard-coded multiplier, but with this new system, I can just add a duplicate frame to the animation. This is a pretty big fix, but it's one that'll make updates and changes much easier to make. Also, if people were to ask for frame data, I can actually give them something that's readable and make sense. The biggest challenge is how to handle when the player has gotten hit since this varies. Hit while standing I think is about 6 frames now. If it's less I can just stop the animation before that, but if it's more, figuring out how to distribute the hit frames is a bit challenging.
Okay, I wanted an illustration for time versus frames; this is not the best.

Updated Audio

So I enjoy the music in Battle High 2 and won't be making any changes to it; however, a review did mention that the sound effects are a little on the weak side. Personally, I don't have the best ear for sound design. Audio is important, but for me, it's personally not the most important thing I look for when playing a game, so in my own work, audio can be lacking at times. Fortunately, I am planning to update the sound effects as well as work on some leveling issues between them and the voice-overs but with someone's help.

Just add "game" to the end, and it's pretty accurate.

Online


This one has been, and will continue to be, something I struggle with. Again, people have suggested I inquire about GGPO, and I did a little more research, only to sadly discover that it's very unlikely it'll work with Unity. At the same time, I think I'd rather try and see if I can do some sort of online mode myself. It'll no way be better than GGPO in any way shape or form, but I'd like to make something that players think is at least tolerable and playable. I have some ideas how I'll do it, and the OUYA and PC versions will definitely be my guinea pigs. I think getting the frame stuff to work will definitely be an important factor in getting this online mode to work as well.

No Promises


There are many other updates I'd like to make -- new characters, new stages, new modes, etc. -- but I refuse to promise anything. As a solo dev., it's very hard to promise things. Heck, even on a large team, promises can be risky. There is a lot I want to do to make Battle High 2 the best it can be, especially once it's on Xbox One, but it's a lot of work, and unexpected things can happen; therefore, I refuse to really promise anything, even in regards to what's listed above.

Like this Shayne Ward guy, I make no promises!

DLC and KickStarter


So another thing I've been thinking about is how am I going to monetize this game in the future. Should I take a more modern approach to it with things like DLC or In-App Purchases? I do really like the approach Tekken Revolution took, making it feel similar to the days of the arcade; however, it's a free game, and it's not free to make. Player and multiplayer servers have to be maintained as well as new content pushed from time to time is expensive. Also, IAP sometimes have a play-to-win feel to them if they aren't balanced properly and turn off most players.
Another thing I've been thinking about is, "Should I do a KickStarter?" As of right now, I don't really need to do one from a financial standpoint; sure, more money would help, but it's not needed. I can still get updates and the Xbox One version done. A lot of people though mention that KickStarters are a way to get the word out, a sort of marketing trick. There are two caveats to KickStarter though. One, they are a ton of work. You just don't make the KickStarter and let it go while you develop. It's a living, breathing project at this point. You have to answer questions, emails, prepare physical rewards, etc. At the same time, if the KickStarter fails, it would probably be a huge blow to my ego, making me want to cancel the project altogether. Saying this, as of right now, I will not be doing a Battle High 2 A+ KickStarter any time soon, if ever.

Plus, I'd have to add this tacky image to the game, :-P

Rewards (and a mini-rant)


So one thing I want to make eventually is an deeper single player mode similar to Mortal Kombat 9's challenge tower. The problem is you want rewards for the players then. As of right now, the best rewards I can offer are more color palettes, concept art / imagery, and more bio information. These are okay, but not amazing. Again, more characters, stages, access to the original music, would all be great, but it's tough to get that functioning properly. I still need to think how I'm going to manage this, but there is one thing I know. I will NOT do my unlocking like Resident Evil Revelations 2. I'm fine with the game as a whole, but the reward system is irritating. You first do a difficult task and then a new item becomes available to purchase in a store using in-game currency. I hate this approach! If I can't do that task requested, then I'll just never get the reward, and if I finally am able to do a difficult task, sometimes the reward is so expensive I have to earn in-game currency before I can buy it. It's really frustrating.

I couldn't find an image of the store, so here's Barry kicking something!


I'm fine with either having to earn in-game currency to buy stuff OR do difficult tasks to unlock something, but both is so annoying. I'm also surprised more developers haven't tried doing in-app purchases for this. I think Revelations 2 would be a great example. For example, say I can't get S on all missions for whatever reason: lack of skill, time, patience, new games, etc., but I really want the rocket launcher you get with it. Now, I can get Revelations 2's strategy here. If the player doesn't know, the mystery reward might make them want to try harder, but if they know and don't care, they'll never try. I would be fine with this. Regardless, I'm surprised they haven't just said, "Give us a dollar for that and then you don't have to worry about it." You won't get the achievement, sure, but now you have access to a reward you'd really want. It'd be like a cheap, single-code GameShark or GameGenie without the awkward boot discs or devices! "You want infinite ammo?! Sure! Just give us $3 OR beat the game on nightmare mode." Also, imagine the player who beats the game on nightmare mode, "Wow, not only am I awesome and got infinite ammo now, I saved $3 I don't need to spend now!" Regardless, as of right now, Battle High 2 doesn't even have rewards like this, so I won't be doing it, but I also won't create a in-game currency.

Sad there really aren't any GameShark and similar things for next gen.  THANKS, OBAMA!

Transparency

Finally, I tweeted, while inebriated at GDC, that I want to be more transparent about Battle High 2:

Ignoring the GDC is bad for me part, I mentioned I wanted to be more transparent, and what I mean is that I want fans of the game to know what I'm doing more often and try and involve them more in the process of making this game. I've taken a few small strides towards this, for example, I created this survey so I can get more insight on what players want in future updates: http://t.co/3Z5d7iVGNT.
At the same time, I want to use this blog as a development log more often and update it when I make small changes and show more progress. I'm not sure I'm going to go as far as dev streaming; if I were a full-time indie, sure, but with a full-time job already and the amount of time required to set these up, it just doesn't seem feasible. Also, I'm not sure how many fans of the game would even be interested in that.

Good quote, DL!  A good summary of why I want to be more transparent.


Anyway, this is the exciting start of a journey. True, Battle High is pretty old in terms of a franchise, but this is the start of me taking it more seriously and trying to put it out there and make it the best game it can be!

Monday, March 16, 2015

Grading Battle High 2 from Mike Z's Perspective


So the video above is of a talk Mike Zaimont, who leads various roles for the fighting game, Skullgirls, did at Ultimate Fighting Game Tournament X.  The talk was entitled, "How to Make Fighting Games", but if you watch the talk he said a better title would have been something about what aspects fighting games have improved upon and what aspects they have forgotten.
Now, personally, I'm not a huge fan of Skullgirls; it's not a bad game, but it just never appealed to me.  Locally, I don't know a lot of people into it who want to play, and  at the same time, the narrative just didn't appeal to me enough to really get invested into it or its cast, but I still have respect for what what one of its leads thinks about fighting games.  Mike is a tournament-level player and as such, he knows his stuff, so I decided to watch the talk, which is a little over an hour, and "grade" Battle High 2 in regards to it.
Like most fighting games, Battle High 2 will probably never really be "done" until I move onto the next entry in the series or until someone forces me to stop working on it.  Anyway, I felt it was important to watch the video and take notes to what Battle High 2 is and isn't doing.

UI

Not fighting game UI, but an example the UI can make or break a user experience.
User-interface is extremely important to a game's experience.  A lot of this talk actually covers different aspects of interface and things fighting games should do to make its user experience smoother.

 

Button Configuation

SFIV's Button Config.  I think the desire for multi-button macros is why they didn't do tap to assign originally.
The first thing noted is that fighting games' button configuration screens should utilize tap to set functionality, meaning that players should be able to assign different functions by pressing the appropriate button, for example, pressing X to assign it to light punch.  Street Fighter IV changed this and players have to instead toggle the different attacks for each button, which can be problematic for different types of joysticks.  Fortunately, Battle High 2 does tap-to-set!
Another thing mentioned is that players should be able to set buttons on the character select screen.  This is something Battle High 2 does not do.  I don't disagree with this entirely, but I still see tournaments with button configuration in the character screen then requiring in-match button testing anyway.  What it really seems like you want is a way to test the buttons from the character select screen.

 

Character Select

The next UI topic was character select.  Besides button configuration, it was noted that players should be able to undo any number of steps, character or stage select to account for mistakes.  Battle High 2 does this as well actually.  Finally, if a game offers a handicap mode, players should be able to disable it.  Battle High 2 doesn't have handicap, so technically it does do this.  I'm not sure if I'm going to add handicap.  Is that a feature players even care about anymore?  I get the importance of it, to help an expert player more easily introduce a novice player to the game, but some people, even if they want it, won't admit that, and it just gets ignored.

 

Pausing

Battle High 2 fails a few areas here.  The opinion here is that players should not be able to immediately pause in versus mode; instead, they should have to hold pause for a few frames before the game pauses.  This would prevent players from pausing mid match; I think this is important and something I've seen ruin a player's "tournament life".  Battle High 2 doesn't do this sadly, but it is something I know I could implement quickly.  I do think single and versus player modes should exhibit this.  I get if you have to pause mid-game, instant pause is nice, but I do think a player should have pause delayed because in some modes, especially those scored on global leaderboards, can cheat.  As someone who was number 1 on DOA4's single survival list for a very short time, I have firsthand experience with this.

 

Versus Mode

The next part went over versus mode specifics.  Battle High 2 doesn't do a lot of these sadly, but I think most of these would be rather simple for me.  The first is that the win streak should be displayed on the win screen, and it should be the total number of wins, not just the win streak.  This helps players know who one last or who won more matches in long sets.
Then, from the win screen, players should be able to jump into a new match almost immediately or go to just the stage select screen.  Sadly, Battle High 2 doesn't do either of these.  Right now, Battle High 2 just immediately goes back to character select.  What it should do it allow for three choices:  rematch, character select, and exit.  If one player chooses rematch and one chooses character select, the game should return to character select, but the player who chose rematch should have their character already selected.  This isn't a big deal for Battle High 2, but for games where you have a lot of options such as Marvel Vs. Capcom 3, this would help speed things up quite a bit.
Then, if stage select has a random choice, the stage should rotate if "rematch" has been selected.  Battle High 2 doesn't even have random select on the character select screen or stage select, but if I remedy this, I would allow random rotation with both.
Shortcut mode was then mentioned, which is more important for older games, but it essentially made all select screens just pure text to prevent long loading times for UI, but with modern PC and consoles, UI screen loading times are usually not atrocious.

 

Replay Mode

Replay Mode doesn't seem that important in modern games with how good streaming and console recording is, but I see why it's important from a testing perspective.  Sadly I don't think Battle High 2 is really capable of handling proper replays at this time.  It's something I could probably try and figure out, but it would take some rework.

 

Netplay 

This little bastard is still a mystery to me...
Netplay is a big component missing from Battle High 2.  I've never really programmed online multiplayer and everyone I discuss it with says it's really tough.  Some people simply say "Use GGPO!", in fact, it's mentioned in this talk that it's the industry standard; however, I think it's one of those easier said than done things to integrate.  I don't know any fighting game done in Unity3D that uses GGPO; if I did, I would probably ask those people how they acquired a license and evaluate if it's right for me and Battle High 2.  Regardless, what I derived from this is that state-based, rollback netcode is what I should shoot for with Battle High 2.
Then, it was stated that being able to get opponents from training mode is useful and, if your game has lobbies, allowing 10-person lobbies to hold multiple matches, not just have 8 of the ten wait.  For me, I need to approach Battle High 2's multiplayer with babysteps.  First, just get multiplayer working, then worry about advance lobbies and other things.

 

Training

A tiny screen shot of BlazBlue and its 8 pages of training mode options
A deep training mode is definitely something I neglected with Battle High 2.  I don't even have dummy recording.  If I did, one thing mentioned is that the dummy should be able to switch sides; if the dummy is supposed to do a forward z-motion on player 1 side and it should do it if on player 2 side as well.  It's also mentioned more advanced "reversal" setups should be allowed so a training dummy can perform a reversal in training mode.
Also, the game should supply players with character-specific features.  BlazBlue is a great example of this.  There was even a note that these options should show as soon as training mode starts, even before it if possible.
Fortunately, I do display hotboxes but the data needs to be more accurate as well as frame information.
Finally, I don't "save state" which is a technique that allows the game to go back and forth in frames with data such as player position, state, etc., recorded.  Again, this is a problem with the way I wrote Battle High 2 awhile ago, in fact, all of the shortcomings of Battle High 2's training mode comes from the fact I don't really train a lot in fighting games.  I do even question the importance of training mode for casual players, but hardcore fighting game fans will definitely want it, and not having it will hurt the overall impression of the game.  I do want to improve Battle High 2's training, but I do feel it is less important than some of the previously mentioned issues.

 

Gameplay

 So that was about the first half of the talk.  It then switches over to gameplay.

The first part discussed trading hits, or what should happen when two characters hit each other at the same time.  The idea was that the first frame of the hit should be of the attack going on, not the hit animation.  This, during a double KO for example,  can cause confusion, making it unclear exactly what happened.

Hit and block stun was then mention, pointing out that if a character is hit, that the hit animation bounds should be identical to the idles.  This would help with consistency and prevent some strange combos from occurring.

An older example of a cross-up


Cross-ups were then discussed.  A cross-up is an attack that hits the opponent even though the player has crossed over them.  The thing mentioned is that if hit by a cross up, the opponent should move towards the opponent; moving them away actually puts the player at a disadvantage, defeating the purpose of cross-ups.

Firebrand in Ultimate Marvel Vs. Capcom 3 is known for having a rather nasty unblockable setup


Unblockables and unblockable setups were the next topic.  Essentially, unblockables should be prevented if possible.  Examples were, if the character is already in block stun, don't allow unblockables hits to occur.  Battle High 2 doesn't have any unblockable attacks that aren't throws so this isn't really an issue.
Also, don't require blocking from multiple directions such as a projectile coming from the left and the player on the right.  The block should be for the player on the right.  I'll admit, unblockable setups and this section were a little confusing, but the overall takeaway was that I should try and avoid setups like this if possible.

Then there was the concept of "the point" or that if the player is attacking in the air and about to land that they go a little past the ground so the attack still has a change to hit the opponent.  Again, at this part of the panel, I started to miss some of the finer points that were being made, and this may be one of them.

An example of difficult to distinguish mirror matches

A point was then made that if the game can change character palettes, that any character-specific effects used should be different per palette.  Color differentiation has always been important to me, knowing that some games, such as older Mortal Kombats (and even the newer ones), do a terrible job at this.
Example.  Left side is valid, right side is invalid and broke on the second hit

Then next topic was the "combo" meter or the display that shows a players' combos.  BlazBlue has a very detailed combo meter; updating as hits occur, changing color when the combo is no longer "valid", meaning the opponent can break out of it, as well as which hits it became invalid.  I personally think the combo meter of BlazBlue and games like it are a little on the busy side.  I never noticed half the things mentioned and doubt I would ever use it in the middle of a battle; however, utilizing a better combo meter would definitely benefit Battle High 2.

Then next note was about audio and that hurt VO -- the yelps and moans of fighting games -- should be heard on every hit, which some newer games don't do.  This one felt rather minor in my opinion and very low on the list of things to change for Battle High 2.

Frame skip, which is a setting used to make a game appear quicker or in turbo mode, was mentioned.  I think the takeaway from this was that if you do frame skipping, don't also skip joystick input as it can cause strange problems with blocking and move performance.

Blocking was then discussed.  If the player is holding back, even if the pre-block animation hasn't started, the player should still block; Battle High 2 doesn't even really have pre-block animations.  Also, if the player is blocking, any consecutive hits should be considered blocks even if the player isn't holding back unless the next hit changes target, so if blocking low and the next hit is an overhead.

There was then mention of stopping the clock during cinematic super attacks; I didn't really agree with this; on the other hand, I do agree that a cinematic attack shouldn't kill until it is done.  In Battle High 2, Khai's super attack doesn't do this, but it's something I could probably fix easily.

The next part was on hitting multiple targets; Battle High 2 doesn't have this issue, but the idea is that if there are multiple targets, an attack should either hit the main opponent or all targets, but not the sub-targets.

Then there was discussion that if you have one-button throws, such as holding forward and pressing heavy punch to throw that you shouldn't allow other inputs on the same frame.  It sounded to me that the best thing was just to eliminate option select altogether.  Fortunately, Battle High 2 has a dedicated throw button (and after many requests, pressing light punch and light kick will enter throw).  Then there was a note about crouch tech, but it was a little unclear to me.

 

Inputs

The next section was on input handling.  The first mentioned that you should prevent left and right from being held at the same time.  I never really tested this thoroughly with Battle High 2, but I would like to believe it handles it intelligently, only counting one of the other when it occurs.

An example of a decent command list; some z-motion confusion is possible but not much


Then it was mentioned that if you can, you should avoid using a quarter-circle attack and a z-motion in the same direction if possible.  This is something I tried to design the inputs of Battle High 2 for from the start since I know how easy it is to mix them up and cause issues.

 

Opinions

The final part discussed opinions on gameplay.  First, no attack should require a macro or three buttons inputs.  Personally, I don't even like two-button input.  Overall, the input I want to avoid is anything the requires the "raptor-claw", the odd posture with the hand sometimes required on a controller -- happens more during 3D fighters like Tekken and Soul Calibur, but isn't any less irritating.

Essentially the next part was just that inputs should be simple:  no half-circles or confusing and difficult, SNK-style command inputs.  This definitely has some opinion to it as some motions, such as two quarter circles aren't that hard and I don't see the harm in keeping them.  I do, however, see the benefit in having simple inputs for newer players; if a newer player can't perform an input, they are going to be quickly turned off and walk away.  This begs the question:  why have complex commands at all?

Then there was discussion of guard meter and guard breaking.  Battle High 2 doesn't even have this system, but if it were to, a system in which guarding a lot comes with a penalty is fine, as long as that penalty doesn't result in breaking the guard.  In a way, if a player can guard perfectly forever, this is fine; they will be punished, but they shouldn't be punished for doing the right thing by breaking it.  In a similar way, dizzy and stun was discussed; Battle High 2 doesn't utilize this and probably for the best.  All stun and dizzy do is punish a player that is already not doing well and it doesn't really add anything to the game other than minor "realism", and if there are stun values, hiding and randomizing them seems detrimental.

The Talk Itself

I'm grading Battle High 2 against what was done in the talk, but I also felt it was important for me to evaluate the talk itself.  Overall, I felt it was rather decent and would be something I would have liked to see at GDC.  Though there were moments where the speaker used phrases like "it's easy" or "just" -- pet peeves of mind that make improper assumptions that just because it's easy for them means it's easy for everyone, even though that may not be the case for various reasons such as budget or skill or resources -- I still did think it was a good talk.  It wasn't boring or poorly delivered.

 

Battle High 2's Grade

*Price is Right losing theme...*
So if I were to grade Battle High 2 based on this?  Well, I would probably give Battle High 2 an F+.  F is still failing of course, but I do a few things properly, so I'll add that little + for fun.  The biggest things I neglect are training mode and online multiplayer, two things that I normally don't care about about that much when I play games, two things that are sort of making me wonder if fighting games are really the genre and audience I want to create for.  I think I'll write about this another time, but fighting games focus a lot on mechanics, and though mechanics are important to me, they get a little tiring to focus on so intensely when making a game, which is made up of more parts.  There are also times when I feel that free to play games -- which are often recommended to indies not to work on -- aren't really that different from fighting games.
I think the big issue for me is that I'm a filthy casual, a noob, a scrub!!!  And what I mean by that is that the aspects that a tournament-level player cares about, things that Mike Zaimont and attendees of Ultimate Fighting Game Tournament care about, I don't necessarily care about.  Casual players (or at least me from my experience) don't go into training mode to practice unique setups.  I play the single player modes and though those don't prepare you for competition with human opponents properly, they do allow you to learn and experience basic gameplay mechanics.  I can really remedy this one of two ways.  I can either try and become tournament level and start caring about these things -- but since I'm considered "old" in the fighting game scene I don't think this is likely.  The other is I can try and  breathe life into different areas of the genre, try and figure out what aspects of these game appeal to me and casual players more and focus on those.
Anyway, Battle High 2's OUYA China work is still ongoing for a bit, but once that wraps up, which hopefully will be soon, I'll begin focusing on polishing Battle High 2, using some of the things mentioned in this post to improve it.
I'll also be updating other aspects of the game such as the AI, the UI, and even the SFX.  So I guess anything that's an acronym is getting updated.

Tuesday, March 10, 2015

GDC 2015

So last week I attended another GDC, or Game Developers' Conference -- not sure about that apostrophe -- and I have to say that I had a much better time this year than last year.  Was it my best GDC?  Not quite, but I did return home feeling a little inspired so I say that's an improvement!  Anyway, like I usually do, I want to write about my time, but I'm going to be short and try and cram it all into one post.

The logo!


Day 0


Day 0 usually involves getting to San Francisco, checking into the hotel, registering for GDC, and then maybe attending some sort of networking event.  This all went pretty smoothly, though getting into SF by 11 am and waiting till 3 pm to get into the room sucked, but whatever, that's normal travel stuff.  I went to some party later involving bacon and monetization.  It was fine, a little packed, a little sweaty, but a fun time overall.

Who benefited this GDC?  Novelty bacon costume manufacturers!

Day 1


The next day, Wednesday, was for talks!

Flash Forward


One talk they continue to do to start the conference is called the Flash Forward in which various of the conference's speakers give summaries of their talks, getting buzzed off if they go over 45 seconds (or a minute).
It started off with Brenda Romero and Laura Fryer talking about the current state of the industry, the excitement, the good, the bad, spending a LOT of time trying to differentiate AAA and indie, but overall it was a good introduction.  None of the individual talks made me go, "Dang, I need to go to that talk immediately!" so the sessions I had planned out beforehand seemed appropriate.  After this ended, I was off to my first actual talk of the conference.

Embracing PBR with Substance:  The AAA Studios' Best Kept Secret (except not really for awhile)


The first talk I went to was about a Substance, a suite of texturing and physical based rendering programs.  I have an indie license for some of these products, but no time to actually try them.  I feel like one of those people who buy ten games during Steam sales and play none of them.  Overall, it was a great demonstration of the tools, and I really want to sit down and try and use it one day.  My only reservations are that it feels like you need a good normal map to make good use of a majority of its tools and I've never been to keen on the high to low poly pipeline, not because I think it looks bad or anything, but because I know it takes a long time and don't have the skillset to do it.

Artwork by Gaeten Lassagne, demonstrating a bit of what Substance can do.


Rules of the Game:  Five Tricks of Highly Effective Designers


The next talk I went to was a design talk about "new" rules about game design.  It was very similar to the microtalks (which happened on Day 2 actually); the difference was that instead of 10 speakers, their were 5.  Various topics were discussed:  how to tie player engagement and needs, the importance of the number 3, the danger of minimum viable product.  Honestly, I don't remember them all that well.  It wasn't bad by any means but not terribly memorable.  What I did like was that the main speaker noted that these are just example rules / tricks and that everyone in the industry sort of needs to come up with their own.

Not a super exciting image, but your brain is good at memorizing groups of 3 with 3 or less things in them, so I thought this would help illustrate that!

Sneak Peek at New Game-Making Tech from Autodesk


Then I went to another sponsored talk, which is risky because they have a tendency to feel like sales pitches, and sometimes they are, but this one didn't -- at least not entirely.  In short, Autodesk, the company behind 3D Studio Max and Maya and probably a bunch of other expensive tools, bought a game engine, which they are now calling Stingray!  I have to say, I was impressed with what I saw.  It had a lot of interesting live-linking between the different tools, building quickly to iPad.  Overall, it was an impressive demo.
I am curious about what their business model, especially with Unity and Unreal going "free" recently.  I don't know if they announced anything; I left early in a futile attempt to get a pass to the Unity party, which is something that has always bitten me on the ass in the past.

A tiny logo of Stingray


Surviving the Jump from AAA to Indie


The final talk of my first day was a panel of indie developers talking about several aspects of going indie aka quitting your job to make your own games.  Now this is something I've been wanting to do -- I don't think that is a secret to my employer -- but I don't think I'm quite ready yet and panels like this always drive that point home.  There are still some aspects of the business side I need to learn, though I do question some of them and every time there seem to be one dev that is like "Yea, making your own games is great, but this did ruin my marriage." I guess that doesn't really scare me -- I'm single, no kids, no house, or outstanding loans (sometimes when I type that out I wonder why I just don't at least attempt it anyway) -- but stories like that still seem disheartening and really make me question, "Is making your own games worth that?"  I feel some artists, authors, musicians, and similarly creative people would say yes but not many.  Anyway, I left that not feeling crushed or depressed but not quite ready to pursue that 100%.

How I'd probably be if I were to go indie right this moment.

Night 1


That night I went to a party called the Wild Rompus or something like that.  It was okay; the first hour was a bit awkward because I'm awkward.  People were playing some indie games and drinking -- I saw Gang Beasts which immediately made my blood boil.  Overall, even at my age, I'm still a bit of a wallflower, but fortunately some people I knew eventually showed up and helped improve my mood.  I think that's the part of GDC I like least -- note I didn't say hate -- that I'm still rather introverted and it makes networking difficulty, and networking is such an important part of GDC and conferences in general.  I just like to shout on Twitter and see if someone is listening; not shout in real life (shouting because the music is loud, not because I only shout) and seeming awkward.  But I'll say this: at least social situations don't give me crippling anxiety -- just stay in the corner and tweet anxiety.  Two ideas came of the night though:  One intriguing -- someone suggested I should publish my NaNoWriMo novel from years ago -- and one depressing -- even if you're a successful indie, the pressure of success can be rather terrifying and lonely.


I think this is an old poster, but I like the idea of a sassy toucan.


Day 2


The next day was filled with roundtables, too many roundtables.

IGDA Unity SIG Roundtable


I started my day in a roundtable, a IGDA SIG or International Game Developer Association Special Interest Group, this one focused on Unity the game engine, a game engine I've been using for about 5 years now?  Maybe more.  Anyway, it was okay.  Sorta dominated by the same five people, which happens at roundtables and can be frustrating, but overall, it was alright.

This guy is on Unity's front page.  I'm not sure why.  He's so creepy...

GDC Microtalks 2015:  One Hour, Ten Speakers, Games and Play, and Us


I like the microtalks -- mostly because they aren't the rants -- and this year was no different.  The most notable were from Lisa Brown, a former colleague, who spoke about the importance of giving yourself deadlines as well as showing your game off through live streaming to create player interest.  Another was from Holly Gramazio, who explained 21 different games, demonstrating that game design can sometimes be very simple yet engaging.  There were a few others I remembered, one feeling like an attempt at an apology but really just self-indulgent garbage not really touching on anything of note in the realm of design; meanwhile, Rami Ismail's was an interesting call to get more developers interested into localization and proper use of foreign languages, which interested me to a degree since I recently localized Battle High 2 to Chinese -- though he spoke at the Flash Forward, this, and apparently had another, more full talk all on the subject. which seemed borderline superfluous.  I remember very little about the rest but know Dadaism and gender were some of the topics.

Lisa's talk was filled with fun drawings like this one (that's her Twitter avatar actually)


ROUNDTABLE IGDA Localization SIG Roundtable


It's unfortunate coming from a microtalk about the importance of language to go to a localization roundtable as dreadful as this.  I think the speaker even said if you weren't a translator you should leave, but I didn't quite understand him properly, and I had 30 minutes to kill, so I stayed.  It was disorganized and messy and just talking about LocJam, a localization game jam, which actually sounded rather interesting.  Then there was discussion about how to create more interest in the SIG and what other conferences to possibly go to.  I think their bigger issue is that they need to interact with other fields in the game industry.  Localizing your game into ten languages is great but tech needs to learn skills on how to integrate this new text:  left versus right, integrating unique characters, etc.  Artists could even be useful on how they can design fonts that make Simplified Chinese readable but also not generic and boring.  Their summit at GDC was replaced this year due to low attendance, and I think that is partially why.  Even someone outside of localization asked a question and was given the coldest, most uncomfortable shoulder I've ever witnessed at a roundtable -- it was rather disheartening and felt like it answered their own question.

Localization is about breaking down barriers; I feel they were just making new ones.


ROUNDTABLE Game Development on a Shoestring:  Low Budge Indie Developers Roundtable:  Day 2


This wasn't a bad roundtable, but wasn't great either.   It was a group of indie devs talking about how they try to save money or how they approach the development of their games.  I hate saying this, but sometimes indie roundtables feel like AA meetings -- and that isn't some sort of game development that is less than AAA.  There's just this sadness that permeates; none of us are famous or super successful yet.  We all want to be.  We all have the talent and passion and drive but it's just difficult right now.  Discoverability I think is the biggest problem in game development -- not just indie development really -- today.  Unless you have millions to spend on advertising, it's tough to get your work seen and it often feels like some sort of lottery.  I don't think this discouraged me from going indie one day, but it gave me pause from rushing into it yet again.

A small child has never made me so angry, but at the same time they probably still don't have enough to make a game.


Night 2


Night two was a bit more fun -- and hectic.  I met some of the cool folks from OUYA, as well as one of the devs from the original Battle High team!  I had to leave early as there was a Unity party a friend got me into as well as an engagement gathering for two former coworkers who are getting hitched.  It was not my best night for a variety of reasons -- some more shameful than others -- but I still had fun and got to try country fried steak for the first (and probably last) time.

Pretty accurate depiction of me that evening...and for part of the next morning

Day 3


The final day of GDC always wraps up a little early, so I wanted to take it rather easy, especially since I wasn't feeling too great.

Game Studio Management:  Making It Great


At the Flash Foward, my boss said he was giving this talk Friday.  A few of my coworkers and I were extremely curious about what this talk about going to be about.  Seeing that nothing else that morning interested me, I decided to go, and I'm happy I did.  It was an interesting talk stressing the importance of information flow in the workplace whether that is physically -- by seating teams close together -- or other ways such anonymous peer reviews.
It was interesting this talk came the morning after last night, as a situation occurred due to some information blocking.  I have a tendency to not always be honest because I'm often afraid of negative backlash when portraying a contradicting opinion -- as I'm often known for doing -- and I end up bottling this up.  Then, for whatever reason -- in the case of Night 2, alcohol -- I end up exploding, spewing some rather hurtful and vile things.  It's like going from 0 to 60, right into cafeteria, filled with snakes -- not venomous ones though, give me some credit.  If the coworker I offended that night is reading this, I would like to apologize.  What I did was uncalled for and unprofessional.  To be honest, I'm not even sure I remember everything I said, but instead of blaming alcohol or other people for my negative disposition, I feel I should find healthier and more appropriate outlets for expressing such information, and for not doing so that night, I would like to say I am sorry.

Bees were discussed briefly too because they elegantly pass information to one another, but I bet there are still a few jerks in every hive...those jerks are then eaten by the queen.


Guilty Gear Xrd's Art Style:  How'd We Do That?!


The previous awkwardness aside, the final talk of GDC I attended was about Guilty Gear Xrd's art style.  Now I'm just going to admit.  I do not like this series or this game.  I think it's a combination of me being very bad at the game -- actually it's probably just that.  I will say though that the new art style is very cool, it's a great use of cell-shading and limited animation to create a 3D game that looks 2D.  I liked this talk because it was inspiring; though I know I won't be able to emulate this game exactly -- 400 to 600 bones per character?! -- it definitely game me some confidence that maybe every game doesn't need to have high poly models and strive for photorealism.  I hope this one is in the GDC vault because it's one I definitely wish I took better notes.

Still a bit mesmerizing that it's all 3D and groundbreaking techniques weren't invented for it.

The End


So that concluded my GDC.  After some movie shopping and some delicious eel sushi, I was back on my way to Pittsburgh.  Oh, and after waiting for a flight attendant to come in for the red eye flight; remember kids, your plane can't take off if there aren't enough flight attendants.
Now, did I feel like I had a great GDC?  No.  Was it better than last year's?  By leaps and bounds, yes!
What could I have done better?  Well I always need to improve my networking skills; even on the expo floor I didn't do a lot of talking with different booths.  I always feel so insignificant and don't want to waste their time, which is stupid thinking -- they are there to talk to me and try to sell me whatever they are showing!  Also, I didn't go into this GDC with a real, tangible goal.  I guess my main goal was just to have a better time than last year, and that I succeeded, but I could have done better.
Will I go to GDC next year?  Maybe.  I think I might go to another conference this year.  I'm looking at Unite since it's in Boston -- and not during the winter.  Maybe I'll try and improve in the areas I failed at GDC there.
Oh!  And I almost forgot.  Night 2 in all it's drunken yelling did render this awesome memory (the guy in the magenta hoodie is the creative lead of Deadly Premonition and D4.  I'm on the left):

Don't let us fool you; 3/4 of us were drunk...maybe all 4.

Wednesday, February 4, 2015

Humanoid Mecanim Overview

As I've stated previously, I'm trying to make a 3D fighting -- think Tekken, Street Fighter, Dead or Alive, etc. -- and want to use Unity3D as my engine.  Though I know there are already some tools --  both in and out of Unity -- to solve some common problems, I really want to try and solve as many as I can myself.
One problem I can't solve though is I can't make every character myself from scratch.  Fortunately, there are plenty of tools and character generators out there to help with this.  My goal is to find a character generator that is fast and relatively cheap that generates characters that are already rigged / skinned.

Fuse from Mixamo and available on Steam.


Fuse is a character generator that works directly with Mixamo, an online animation and auto rigging service.  Fuse is highly customizable, and -- in my opinion anyway -- the characters look nice.  It also utilizes Substances, a special type of material developed by Allegorithmic in use with their tools such as Substance Designer, which adds a high level of customization in various materials.
Unfortunately, looking nice comes with a price as I find many of them are rather high poly or at least not optimized for mobile.  Also, auto-rigging requires Mixamo.  Fortunately, Mixamo does allow users to auto-rig two characters, Fuse or otherwise, for free during a period.  Without an account though, which is about $50 a month -- a little hefty in my opinion, especially when prototyping -- you can't get any facial rigging.


MakeHuman


MakeHuman is another option I looked into and was extremely excited about for awhile.  It's free and the characters are highly customizable.  One issue though is that the characters aren't the prettiest.  Also, and every character generator I've used is guilty of this, the teeth are extremely high poly and not optimized.  The characters do come auto-rigged, which is very nice; sadly, the skinning on said rigs isn't really the best, especially when it comes to certain areas such as the neck.  Also, the rig I was using had additional bones that conflicted with Unity's Mecanim system, which I will go into later.

Daz Studio

Daz Studio is a program that specializes in making characters and posing them.  Daz seemed like a great option as it was very similar to MakeHuman.  It even had the ability to export morph targets for facial expressions.  The characters look nice but they do have the recognizable look that most people find off putting.  It did have some problems though:  not optimized characters, full body morph targets, a rig that won't play nice with Unity's Mecanim system.

Autodesk Character Generator

 

Finally, Autodesk, the company behind 3D Studio Max, the 3D suite I use for my models currently.  Autodesk Character Generator's level of customization is interesting.  You don't use a slider to adjust features such as making the nose bigger or the ears smaller.  You select from a set of body types and then interpolate between two of them.  It's not as customizable as I'd like with things like Fuse or MakeHuman, but you definitely get a wide variety of characters.
Where it has advantages is how it can be exported.  You can select from different mesh resolutions and different mesh sizes as well as facial rigging -- both morph targets and bones.  Now, similar to Mixamo, this isn't for free, but it is much cheaper.  Well it's technically free.  If you want want the low resolution and don't mind having no facial rigging, it's free.  If you want the additional features, however, it's $50 dollars a year, plus each character that uses extra features is $5 (or 5 cloud credits, which you can only buy in sets of 100, but you get 50 once you pay the initial $50 for the subscription).
Anyway, so far, ACG is my preferred choice.  Maybe once I feel more confident in the project, I'll go with Fuse or a different character editor.  The nice thing is that because rigs are already autorigged, I can use 3DS's Skin Wrap tool to transfer skin weights, and because of Mecanim and humanoid rigs in Unity, I should be able to retarget animations that I make.

Mecanim and Humanoid Rigs

So with a recent version of Unity, 4.3 I believe, a major change to the animation system, a system that initially I was rather fond of, was introduced.  I was initially bummed out, the seemingly overcomplicated web of states seemed like a huge hassle to learn.
As I started to experiment with and learn it though, I started to realize it's pretty cool.  It's nice to be able to setup states and see how they will translate and connect.  It's not a perfect system, and I still have some reservations, but one aspect of it that I feel like will be necessary to even get close to finishing the 3D fighter I have envisioned is humanoid rigs.  Humanoid rigs are not as simple as "import your model and it works!"  Well they are to a degree, but there is some finessing and careful considerations that have to be made when making one of these rigs.  A developer at Unity wrote a very useful post about Unity's Mecanim tools here -- http://blogs.unity3d.com/2014/05/26/mecanim-humanoids/  .  I'm basing a lot of my information based off of this and will refer to it.

Ideal Rig

The ideal humanoid rig has two spine bones, one for the spine and one for the chest.  This is a problem is that many character generators export rigs that have three or more spines bones.  The closest is Autodesk's Character Generator which gives you a script to convert the export rig to a biped, but it moves the first spine near the pelvis so it's semi-accurate.
This rig, generated by ACG specifically for Unity, has through bones.  The gray bone above the spine is a through bone; it will not be animated.

When assigning the hip, spine, and chest bone in Unity, the spine bones not used are referred to as through bones and even if you animate them in your 3D suite, their animation will not be reflected in game.  This sounds rather irritating, but from what I've noticed is that you don't really notice too much.  A good way to test this is when setting up the avatar rig, go to the muscle view and just play with the different distortions and assign the spines differently.  I find, by default, Unity does a pretty good job assigning the skeleton by default, but rearranging it can help.
This muscle test shows how the character moves without the gray bone in the previous image without movement.

Again, the reason for doing all this is to save time through retargeting animations, so I don't have to animate the same animations for every character in the game, but use the same humanoid animation across all characters.

Mirroring

Another important aspect is for mirroring animations.  In some games such as Virtua Fighter and Dead or Alive, character animations "mirror" -- they switch between left and right bones as illustrated in the video below.



Interestingly, Tekken doesn't mirror.  I think I know why though.  Since the game is very left and right oriented -- left punch, right punch, etc. -- that if you mirror, things will become confusing for attacks.  Since I want my game to be simple input-wise -- just punch and kick for attacks -- I think mirroring, which allows some attacks to end shorter and flow more fluidly.
My mirroring system is a little strange though and I'm not sure if it's the best way.  Essentially, I have two float parameters in my Animator -- MainMirror and SubMirror.  The idea is that idle, walking, etc., uses MainMirror and SubMirror is equal to this most of the time.  Then, attack animations, which also use a blend tree for mirroring but based off SubMirror, use an AnimationEvent to change MainMirror so that when the attack animation ends, it will transition to the proper mirrored animation.  There's some complex setup with this, but I think it solves what I'm trying to do.
An example of character mirroring in Unity

Root Motion Issues

 Another challenging part of animating humanoid rigs involves root motions.  Root motion is the concept in which the animation of the root in the modeling suite will move the character as opposed to animating the character in place and moving them in code.  For a fighting game, I think animating the movement in very important; however, when using humanoid rigs, Unity assumes a lot of the movement.  Body orientation in the import settings can cause a lot of movement issues so if you want the character to run forward, it may not be in a perfectly straight line, which can be rather problematic.  I may be messing something up with this; using the biped as an animation base could be causing issues so I just need to investigate this a bit more to figure out how I can make things more stable.  Or, if worse comes to worse, just animate the character through script for certain movements.

The character is supposed to be walking straight but they go off into the X a little bit after a few playthroughs.

Don't Worry -- Silly Happens

In my opinion, you shouldn't be concerned with making EVERY in game animation beautiful and perfect.  I was experimenting in various games and there are plenty of goofy things.  Tapping blocking in Virtua Fighter or the wave dash movement expert players in Tekken utilize.  I'm not saying the animations can be garbage, but if you're going to stress over some strangeness in animation during transitions, the game will never get done.

Other News

 In other news, Battle High just earned a rather positive review from What's Your Tag.  Also, I wrote a guest blog post for OUYA.  I'm going to be starting some new Battle High 2 work soon, which should be interesting.

Sunday, February 1, 2015

Global Game Jam 2015

So I participated in the Global Game Jam again this year.  The game my team and I developed is entitled Escape from Death Island.


One of two giant duck battles

It's a simple game in which you lead a mob of castaways away from danger.  It's definitely silly and a little more than just imbalanced.

This was the first year though that I just didn't have a good time.  I wouldn't say I had a bad time; a bad time would have involved fights and everyone leaving, angry at one another, and that didn't happen.  I think the feeling I left with though after this Global Game Jam was simply, "I would have rather just stayed home."


I found this image while searching "stay home", but also, is that neck pillow Photoshopped?

I do realize the entire setup of the Global Game Jam sort of annoys me and possibly how the Pittsburgh chapter of the IGDA runs it.  First off, the keynotes just weren't overly inspiring.  Only the first one really felt like it had anything to do with game jams, applauding jammers for just showing up.  The second was just sort of another call for diversity in character design, which is great and is something I support, but to inspire for a game jam, where a good portion of games are prototypes and don't have representation of human characters at all, it missed the mark.  The third one was just madness, a board game designer trapped in a CG card tunnel telling us about his projects in which "the magic" happened but nothing about game jams really.



Then the theme was announced.  I'll be honest, the themes over the past couple of years for the Global Game Jam have irritated me leaving me rather uninspired.  Another part of me is even like, "Why have a theme at all?"  I think a theme helps give focus, but sometimes I think a theme can unintentionally deflate inspiration, which I think this year's theme, "What do we do now?" sort of did that.  Also the delivery method was rather eye-roll-inducing.  In an event in which time management is important, I felt both this and keynotes were a waste of time.



I've sat through uninspiring keynotes and deflating themes before and have had great times at the Global Game Jam, so why was this one different?  Why did I have a bad time?  One of my friends even drove from Maryland to visit and participate, and I felt bad that I was grumpy and just not having a good time.
Well, one easy excuse was I was exhausted before the jam, an already exhausting event, began.   I had been playing The Evil Within the night prior and stayed up till 3 AM thinking, "Oh, this will just prepare me for the jam", which was a huge mistake and honestly could have been the main reason I was cranky.  I was just tired and would have rather been sleeping I think.


I blame you, Sebastian!  Why the hell do you have to die so easily?!

Though I learned some new concepts making Escape from Death Island, I had been working with Mecanim and human animations recently, so during the game jam, I was wishing I could have just continued working on that.  I think that feeling of "I'd rather be doing something else," is a major set back when doing a game jam.  I think if I had set the goal of "I really wanna make a game that utilizes this," it may have been more inspiring for me.
Anyway, I was left contemplating a lot of things.  Do I like game jams anymore?  Do I like game development anymore?  Am I too old for this?  While asking these questions, I stumbled upon a Global Game Jam retrospective on Gamasutra by Guilherme Costa.  What I liked in particular is that they listed 10 items to keep in mind when participating in the Global Game Jam, and as I read the list, I think some of these and the fact I didn't really adhere to some could explain why.  So here is that list and whether or not I felt my team did a good job on them or not:

1 - Minimize the team the most possible, short prototypes are produced faster with the smaller number of people. The lower the number of people in a group, the lower the possibility of a conflict as the activities to be performed.

I think we did this well.  We stayed with the same 3-person team we usually do, but even with the low number, I do think there was some conflict, which I'll go into later.

2 - If using any development tool (Unity3D, GameMaker, Construct etc.), avoid using add ons or frameworks. Can be great in the daily development, but if someone from the development team did not know, the project will not progress.

We used Unity3D, but one issue was that Unity now has so many add ons in itself that it can be challenging for someone who doesn't have a lot of experience with it or at least slow down progress a bit when trying to use some of these new features such as the UI system, which I'm not even too keen on yet.

3 - If you are responsible for the design, is incisive as to what's planned. If someone disagrees, prove that this design is really the best choice. If still the problem persists cut the people in the group or leave the group as soon as possible. It seems extreme, but it is best to keep everyone on the team happy with what they do than working in an uninteresting design.

This one is a bit major.  I think a problem we had early on is that I wasn't feeling the design we were going for or some of its features.  Then again, maybe I just didn't like them cause I was tiredI think the issue I had is I knew some features weren't important and trying to do them would slow down and split focus.

4 - Game design should occupy 10% of the total jam time. Remember that time still passes as you eat, sleep and meet other people.

 I think we did this one well; we chose an idea and ran with it rather quickly, but I think one issue that we didn't do is "meet other people."  We usually leave the jam site, this time the Art Institute of Pittsburgh, which creates some bittersweet feelings to begin with, so we didn't meet anyone, we didn't even playtest our game.  It's funny because in previous jams we've done this and it's never been a problem, but since I was feeling a bit deflated already, maybe some of the energy from other jammers might have helped motivate me.  Also we went back to my employer's office to work, which made the game jam feel like work.  At the time I thought this would be a great idea, but game jams are hard work and being there made it feel like work and not something I was doing for fun.

5 - Games made in game jams are prototypes. Focus only what is really important. Animations, camera effects, lights and shadows, do not affect gameplay, do not invest.

I feel like this is something we fail on every game jam.  We focus on things that are not important -- often when I know it's an issue and am ignored about it -- and the core of the game ends up suffering.


6 - Avoid that someone in the group runs out of tasks. Running out tasks drops the morale of any participant.

 I don't think this happens to us really; the opposite happens were we end up having too much.

7 - Create integration cycles. Avoid integrating all just at the end, integrate everything that is done in cycles of 1 or 2 hours, every two or three cycles, gather the team and make a debate on what has been done and will be done. The lack of continuous integration was the biggest problem of my team in this issue.

This is a good one.  I don't think we messed it up, but having specified cycles for it would help organize time a bit better.


8 - Try to create pause cycles for the group. Stay awake and well fed is always important, but even more important that everyone is the same way during periods of development.

We've never really had an issue with this.  We used to stay up all night, but now we make it a priority to get sleep.  I think my problem is I didn't get enough sleep due to my idiotic 3 AM bedtime the night prior to the jam.

9 - End the project a few hours before final delivery, do let other people play and try to find errors.

 This one irked me because we didn't start the jam until about 7:30 PM on Friday due to the keynotes and other things, but PIGDA wanted the games done by 3:30 pm on Sunday, which made the jam not really feel like a 48 hour game jam.  I think if he had planned that it was really only a 24 hour game jam, I think we didn't budget our time well for this delivery time because we assumed it'd be at a different time.

10 - If everything went wrong, do not worry, failing will not kill you. As time passes, the frustration becomes a thing of the past. Lift, organize thoughts and come back to fight.

I think the problem I had with this one is I sort of did feel bad about failing since we had never done it before.  Though I was so exhausted on Sunday, we did submit our game to the Global Game Jam site, but we didn't go to the closing ceremonies.  I just didn't care, which felt so rude and defeating of a game jam's purpose, but again, I was just exhausted.

Again, I sort of was wondering what else I could have done differently and one thought sort of scared me.  I had done Ludum Dare last year, which was a solo game jam and enjoyed that.  The fact that it was a solo game jam started to make me think:  "Am I just that bad a collaboration now?"  It was funny because the first keynote was given by a solo indie, and though she mentions that she's not really solo because she has friends, families, and contractors that help her in various ways, I wonder if she finds a certain freedom in it.  I can see some advantages.  You don't have to have meeting upon meeting to sell an idea and make sure everyone believes in it or is okay with it.  You don't have to worry about compromising an idea to the point where you don't even like it anymore.


"Johnson!  This is the 16th meeting, and you are now the only one who doesn't believe in the the combat system! WHY?!"

What worries me is that even the prior two assumptions I'm making feel rather selfish.  It's my idea, and I want it a certain way!  or worse, This isn't my idea, so I hate it already.  I'm sure there are designers -- of any field, famous or otherwise -- who think like that, but they are probably terrible to work with or at least if you are someone who doesn't believe in the idea.  Anyway, as I continue to develop and design, especially on side projects, I think collaboration is something I really need to work on.  I think this Global Game Jam was a failure; though we finished a product, I left it, not with a feeling of regret, but with this gloomy dissatisfaction that hopefully I can shake by the next game jam I do.

If I do the Global Game Jam next year, I think some of the following could help:
  • Go in with a goal.  Do I want to learn UI?  Do I want to practice an animation system or a certain mechanic?  Whatever I'm trying to do, pick something and focus on that and tie the theme into it.  Don't tie it into the theme
  • Stay at the jam site or at least don't go back to your office of employment.  I think staying at the jam site would have maybe given me some inspiration or allowed for playtesting or something that would have motivated me.
  • Be more assertive if you don't like something.  I think I took too far of a backseat and ended up working on something I just wasn't in love with.
  • SLEEP!!!!  Sleep the night before, sleep during, just be rested!!!  Again, all of the negativity I felt could have possibly been avoided if I were rested.
I can't guarantee these would help, but I think they'd be a good start.

Saturday, January 17, 2015

First Post of 2015: Battle High and Character Pipeline

So it's 2015.  To summarize, 2014 had high highs and low lows; instead of writing a long retrospective of the year, I'm deciding to just look forward.

Battle High 2 & GumTrix

The first thing to look forward to is more Battle High work.  Last year I struggled to finish porting the game to Unity3D, but upon changing my method to just copy the code from XNA to Unity3D, it's now "done".  I use quotes because fighting games are rarely ever done.  In fact, members of the OUYA team did a stream of Battle High 2, which was both fun to watch and a little stressful -- please don't crash on stream -- but as they played, I noticed like 3 or 4 things I could and want to fix.  During the rest of January, however, as I get back into the swing of working, I'm taking a break from it.  I'll probably resume working on it, fixing those bugs, investigating what I can do to make it better, upgrading to Unity 4.6, and maybe even online multiplayer.
At the same time as well, I've started to try and treat my projects more professionally such as making a press page for my various projects use presskit().  At the same time, I should probably be upgrading my website as well.

My new logo!  I'm not sure if I posted it here or not; my sister designed it.


Also, at Schell Games, I finally was able to finish and publish a mobile game called GumTrix.  It's a project that, despite it being rather simple, I've been wanting to finish for a long time.  The original prototype was made before Candy Crush Saga was even released!  Though I doubt it'll get the same amount of exposure or popularity, I'm just proud and happy to have finished and hope that I'll get to work on it again sometime this year to make it even better!

Juicy, bouncy fun for everyone!

3D Fighter & Character Pipeline

In the meantime, I'm starting a 3D fighting game.  This is a super ambitious project, one I don't see myself completing this year, but it's been something I've wanted to do for a long time.  Right now I'm in an early prototyping phase to see if it's even possible and to figure out my minimum viable product  or MVP -- a term I've been hearing way too often at work lately.  I'm using Unity and trying to use mecanim to figure out how I'd make this work.  I want to try and remedy things with this game that I didn't with Battle High, for example, start writing the networking layer early.
Below is an early prototype:  very basic models, pre-basic animation, but the tests were to better understand Mecanim, using root motion so I can animation movement in 3ds Max, etc.


The biggest challenge with this game -- so far, I'll give it time as online will trump this -- has been a devising a character pipeline that is fast and cheap.  So far, I've found this in MakeHuman.  It's not perfect and there are close contenders such as Autodesk's Character Generator (ACG).  For now though, the MakeHuman model and rig is nice and allows me to rig and put a character in engine quickly.  The final models, especially if I aim for OUYA, might need some simplification, but for now, they are a good fit.  Also, MakeHuman is a free application that is actively being worked on as opposed to a web-based subscription that could eventually disappear like Mixamo or ACG.

Jam & Convention Season

Part of this year's Global Game Jam logo.

The Global Game Jam is coming up; I'll be participating in that again.  I only did one Ludum Dare last year as well as the Global Game Jam, so starting off "Jam Season" I guess, I could call it, will be nice; it'll be interesting to see if I do more than two in 2015 though.  At the same time, however, GDC is coming up in March, and I will be attending.  GDC last year, to put it lightly, sucked.  Most of this was my own fault as I picked bad talks that made more depressed about the industry than I already way and the excitement and joy I get from the conference just didn't happen.  I'm going to go out on a limb though and try again, so we'll see.  I think my plan is that if GDC is awful to go to another conference like Unite, but I'm going to try and be optimistic and enjoy myself -- and not pick garbage talks / panels.
Anyway, I'm looking forward to 2015.  It'll definitely be different but hopefully productive and full of growth and improvements.