Sunday, September 14, 2014

Battle High 2 A+: 3rd Time's a Charm

So I took another break from Battle High 2.  My latest attempt at porting the game to Unity3D was failing.  It just felt like I was doing a whole new game, and, if it were a whole new game -- new characters, story, gameplay, etc -- I would have been fine with this.  In the back of my head though, I knew that all of the code was done, all of the inputs and moves and commands worked, all of the interface code was written, and this was becoming painful.  Even more so, reaction to the changes I was proposing in the game were met with a lukewarm reaction.

I don't know the context of this image, but it describes my feelings at the time pretty well.
Now, however, the break is done!  I'm working on Battle High 2 again.  How is this time different from the previous version?  I'm copying and pasting...a lot.  That sounds kind of odd, but I realized redoing work you have already done feels extremely tedious and daunting.  Now porting that same code into Unity, figuring out how to make it work in that engine has some tedium but it's different -- it's more like solving a puzzle as opposed to just rewriting and redesigning systems I already had working.
There was some unique work that had to be done, for example, I had to rebuild the texture atlases to work with Unity and figure out a way to convert my SpriteFonts to Unity3D font assets.; however, I am using Unity3D's Sprite class now and will be able to create nicer particle effects -- because I have to.
My goal?  Well, my goal has always been to get the game working in Unity3D so I can port it to other consoles and create a PC version that doesn't require all of the nonsense that an XNA version required.  Hell, I might be able to get a Mac and/or Linux version working!
Will there be new things?  Not immediately, but once I get the game working well in Unity3D, the hope is that adding new content will be more streamline.  Will I actually do it?  That will depend on the popularity of the game / demand.  I'm really hoping to finish this and get it released on various platforms before 2015.  Of course, I decline to promise anything, as promises, especially for a hobbyist like me are easy to break.  Anyway, this is a short post, but enjoy this video.  It's not super exciting, but it is the latest build of Battle High 2 in Unity3D.


Sunday, July 27, 2014

My First EVO Experience


It's no mystery that I am a fan of fighting games.  Though I wouldn't really consider myself an overly competitive gamer, I still really love the genre and what is offers.  That being said, a few weeks ago, one of the biggest fighting game tournaments in America -- possibly the world -- happened last week in Las Vegas, and fortunately, I was able to attend!

The tournament, known as Evolution, EVO by most, was one part fighting game tournament and one part fighting game convention with some vendors and a few game-related panels.  I figured I'd write about my experience!

This is how finals looked

Before the Event!

So, due to some strange scheduling and flight pricing, it was cheaper to arrive in Las Vegas on Wednesday as opposed to Thursday night.  Now, part of this EVO experience for me was Las Vegas itself as I had never been there.  I've been to casinos before; I was just expecting a giant casino, but I was wrong, partially anyway.  For one, there were slot machines in the airport of all places; something I, quite frankly, was not expecting.  Though, I wasn't there to gamble!  The entire trip was a gamble for me since my luck with conference and conventions hasn't been great.
Anyway, the event was held at the Las Vegas Hotel and Casino which is now the WestGate or something. 
The hotel -- those signs are Photoshopped.  The real sign is much uglier.
Personally, I didn't mind the hotel.  Was it the nicest hotel in Vegas?  No way!  Was the price decent for what it had to offer?  Sure. It had a pool, gambling, bars, and restaurants -- one of which apparently made a bunch of people sick but my friend and I somehow dodged that.  Also, it was close to the monorail so getting to The Strip and more exciting parts of Vegas was convenient.  And again, it's where the convention actually takes place, so being in the same hotel as the event is always nice and convenient. 
I will say, I liked and disliked the fact EVO was in Vegas.  I liked it because when the convention got slow or I wanted to get some fresh, arid desert air, I could easily do that, but I also felt it was distracting because even at exciting moments, the intrigue of Vegas insanity was hard to resist.  Also it takes forever to walk between places so I often would say, "I wanna be back by 2," but it would take awhile to get back and I would miss my goal by 30 to 60 minutes.  This was in part due to bad planning, but also due to the layout of casinos, which have a "WE NEVER WANT YOU TO LEAVE" design approach.
Also, Vegas is hot.  We joked it was a dry heat, but after 30 minutes of walking around in 105 degrees, that joke wears thin.

Line-Up!

Thursday, the day before EVO, the line for registration opened around 4 PM.  Fortunately, I decided to at least explore the hotel beforehand and find out where things were taking place, particularly registration.
This photo from James Chen doesn't really do the length of the line justice, but it moved rather quickly and the staff was on top of things


After getting my badge and shirt -- which, note to self, you don't need an XL -- my friend and I decided to do more Vegas exploring.  Possibly, staying and trying to make more fighting game friends and network connections would have been more valuable, but again, the intrigue of Vegas was just too much!  Also, I had a Vesper, which is a rather good cocktail when made properly.



 Day 1:  Indies and Pools

So day one had arrived!  The first day was mostly dedicated to pools, mostly Street Fighter and Super Smash Bros. Melee.  The expo floor was rather small, made up of a combination of t-shirt, swag, and joystick accessories.  There were also some booths such as one for Guilty Gear Xrd and a rather impressive Mad Catz booth.
There were also some indie games on display.  Not sure how many EVOs they've been displaying indies, but I was excited to see what was there.  The interesting thing is that they were more games that took unique spins on competition than fighting games.  The first day, I played three:  TowerFall Ascension, Gunsport, and Starwhal.  I had played TowerFall on the OUYA; this version was slightly updated and on PS4.  I like TowerFall, but I realize I'm actually rather terrible at it, and there's an aspect of all local multiplayer games that just fall short for me.  In fact, a lot of the indies there seemed to be trying to bank on the local couch arena trend that's come to light recently.  This is going to sound sad, but I'm not a fan of these games -- mostly for the simple fact I don't have people over to play games a lot.
Anyway, Gunsport was interesting; it was a futuristic take on volleyball.  There were aspects of it that seemed a little confusing, particularly the controls, but more power to the designer I guess.  Again, seems like a fun game, but would I spend money on something that won't be playable -- or at least won't be in the truest form of the designer's vision -- without four players?  Probably not.
Finally, I then played Starwhal, which was probably my favorite of the indie games present -- well except Slash Dash, but I didn't play that at EVO, I played it a few days ago while helping some people judge IndieCade games.  Starwhal was just a silly, physics-based game in which you played as a galactic narwhal whose goal was to stab other starwhals in the heart.  Even this game though, from my perspective, suffered from local multiplayer necessity.

Starwhal, TowerFall Ascension, and Gunsport

Anyway, once I had my fill of the expo floor, I went into the main ballroom -- or whatever it was called -- to watch some pools.  Pools setup was rather interesting and not quite what I was expecting.  This was this culmination of grandness -- two giant screens showing certain matches -- and normalcy -- monitors setup with the gamers sitting nearby and people watching from behind.  There were some arcade-like machiens setup as well.  These were cool to watch games like Capcom Vs. SNK 2 and Super Street Fighter 2 Turbo.  Watching pools was interesting in that, for one, it was hit or miss in that some matches you'd watch would be boring and some would be awesome.  Usually, the more crowded a setup was, the more popular the players participating.  Sometimes though, it just got so packed that you could barely see what was happening on the monitors and just watching the matches on the large screens was almost better, especially, since people usually aren't the most courteous and just step in your eyeline of a match -- nor am I willing to be like "YO MOVE!"  That's not my style.  Also, the entire room was filled with Super Smash Bros. audio, which was particularly amusing when juxtaposed with Street Fighter.

An example of people crowding around a setup during pools -- Melee I believe.

Eventually, there was an indie panel that I wanted to attend.  Though I really liked the job Patrick Miller did moderating, it wasn't really anything new from GDC and other indie panels, just sort of going over the ins and outs of developing their games.  It was intriguing to hear how a lot of them work with teams and that they personally don't have as many technical skills as I would assume they would have.  Also, there was a sense that they didn't really care about the fighting game community or respect it.  It made me regret at least not submitting Battle High 2 for consideration, but I felt like the newest iteration just wasn't ready to submit -- though in retrospect, I could have probably submitted the XBLIG version.  Anyway, I then watched Tekken's top 8; I didn't stay for the ending sadly because as much as I love Tekken, the finals can sometimes get a little stay, especially if there is a runback in the grand finals.  After this, my friend and I explored more of Vegas.

Day 2:  Why am I here?

So day 2 came, and this time it was Marvel and BlazBlue pools.  I was sort of bored -- not bored -- but didn't really feel like watching pools again, at least not immediately.  All I really wanted to see that day was watch one of my favorite Shuma-Gorath players -- BrokenTier's Angelic -- compete in Marvel and his pool wasn't until the afternoon.  The line to play Guilty Gear Xrd was short, so I played that, only to sadly have my hype for the game deteriorated.  As sweet as the new graphics look, it's still the same game that I just don't really enjoy.  Again, I think a lot of times when I say I don't enjoy a fighting game, that it could be remedied by either having a great single player experience like Mortal Kombat did, or by having a lot of friends locally to play the game with.  Will I get GGXrd?  Probably, but having played it at EVO, I'm not concerned about getting the game the moment it's released.
Awful, blurry photo of the Xrd setup...

Then I played another indie game, and it made me feel very odd.  It was called Videoball, and I just didn't like it.  The minimal art style, the lack of power, the confusing feedback -- it all just culminated into an experience that I didn't enjoy.  I always feel odd when I encounter a game I feel people like but I just can't get into for some reason.  I start to question myself as a designer.  I guess a part of the reason I went to EVO was to reignite my creative juices, my desire to work on Battle High 2 and my other fighting game projects, but instead it was making me wonder if I should even be making competitive games at all.  This is a topic for another post, but I realize, I don't really like competitive gaming or the route the genre is taking.  There was a panel that I sadly missed -- it started at 2 while I thought it started at 3 -- that was about the history of fighting games; fortunately, I can watch it here at any time:


EVO 2014: Counting Frames from NYU Game Center on Vimeo.

Once I find time to watch it, I feel it'll help me understand what aspects of fighting games I like and which ones I don't.
Anyway, after taking a break to think about where I want to approach games, I came back to watch the pools I wanted to see, and by the end of the night, Marvel was on the big screen.  At the same time, I realized something was missing from this entire experience:  commentary.  I was realizing how much I missed the commentary, particularly from my favorites like James Chen, David P. Graham, and Yipes.  Something about commentary really adds to matches, even if the commentary is bad.  It helps explain things that might be missed, and it creates hype and excitement too.  When they get excited, I, as a spectator, become excited as well. 

David and James -- not sure where / when this is, but...yea...

Also, I wasn't there to compete, and I'm happy that, after speaking with some others on the monorail, I wasn't the only person who goes just to spectate.  Though competing isn't much more expensive, I guess I didn't feel like spending extra money just to lose -- and most probably immediately -- at whichever games I entered.  Anyway, day 2 left me feeling odd.  I was still having a good time, but I wasn't getting the inspiration I was looking for.

I wasn't really feeling salty, but I did find this salt shaker in the Monorail station.

Day 3 -- FINALS!!!!!!

These were the 8 biggest games at EVO, but only 5 of them were played on the final day.
By Day 3, some finals had already happened, but the third and final day, the main ballroom was set up with hundreds of chairs for all to watch the top 8 in games like Street Fighter and Marvel Vs. Capcom 3 to compete.  There were a lot of chairs, but people really wanted to be close to the main stage as possible and with their friends.  There was a lot of seat-saving and "getting to know your fellow spectators".  I didn't mind, but also, I didn't need to be so close.  By the end of the night, sitting in the back was fine.  I could hear the action, see the matches, sense the excitement in the room.  To say the least, the grand finals were awesome. 
Calm before the storm -- the chairs setup the day of finals

Though I tend to be more subdued in my enthusiasm, it was great to see the excitement in the audience as well as the emotion of the players when presented their awards.  Especially since the day started out with the BlazBlue top 8, which literally had its participants crying -- happy tears mind you -- but it was great to see players so invested, awarded for their efforts.

Champion tears


Overall

Despite it not inspiring me in the way I was expecting it to, I still really enjoyed EVO.  Would I go again?  Definitely!  Will I go in 2015?  I'm not 100% sure as there were definite low points:

Low Points

  • Vegas.  Again, the heat; distracting and insane layout; and rainbow coalition of people trying to get you into a strip club or prostitute was a bit overwhelming.  I have to say though:  still liked it way more than San Francisco.
  • Evola.  I got sick.  Who or what I contracted this cold from doesn't matter -- getting sick sucks.  I was, at least, well during the entire convention, and didn't start feeling it until Monday night while watching ZARKANA!
Yes, your hoops are fun and all, but when it feels like a small parasite is trying to burrow through a tonsil, it's a bit hard to concentrate.  It did make me say, "I Zarkan't believe my eyes!" though.
  • Angelic not making top 8.  I was sad to see my favorite player not making it into the top 8 for Marvel, but I was happy to see another Shuma-Gorath user there.

High Points

There were a lot of awesome high points, and being there was one, but I'd would say the biggest highlights were...
  • Hearing the announcement of Tekken 7.  Even though it was leaked and even though I would have read about it probably minutes after being announced, there's a certain satisfaction to seeing the game announced live from those working on it was pretty exciting
  • Patrick Miller Vs. Alex Jebaily on Capcom Vs. SNK 2.  I had never seen good Capcom Vs. SNK 2 play live, and their interaction was, and possibly unintentionally so, comical.
  • Grand finals.  Seeing the high level of skill and the drama associated with the grand finals was definitely awe-inspiring and interesting

 

Do Differently?

If I were to go again, I would definitely have tried having a build of Battle High 2 ready to play.  They had a bring-your-own console section, and I think it would have been neat to try and get SOMEONE to play.  I also wish I would have played more games in general; someone had offered to but we were watching the Street Fighter finals.  I should have tried to get something going afterwards.  Again, I had a great time, and hopefully I can find more people in the Pittsburgh area to become a bigger part of its fighting game community and help it grow -- if it even exist.  Also, I have this photo, which will serve as a pretty awesome memory:

The guy in the middle with the tiny Blanka is Yoshinoro Ono, the producer for Street Fighter IV.  He's pretty wild.

Sunday, June 22, 2014

Battle High 2 A+ -- (Tentative) Changes

As I've been working on Battle High 2 A+, I've been thinking of the changes to make to the game itself and to the characters.  I decided to put my musings in this post.

System Changes

Elemental Overdrives

In the previously released iteration of Battle High 2, a new mechanic was introduced called Elemental Overdrives.  Inspire by moves like Berserker Barrage and Astral Vision from Marvel Vs. Capcom 3, these were alternate super moves that would alter one aspect of a character temporarily.  Khai would become faster; Bryan would become stronger but slower; Klein was able to fire four projectiles instead of switching between 1.
The biggest problem with these is that they weren't properly tested.  Players found that Khai, Jada, and Arvid's -- all of which increased speed -- were way too easy to take advantage of, often causing infinite combos and quick KO's.  Also, players thought the input, which was consistently Down x 3 + Overhead, was awkward and clunky.
To alleviate this, I've decided to remove this mechanic all together.  This cuts down implementation and balancing on time in various ways, but does cause some interesting issues for some characters, particularly Klein and Michelle.  I'll discuss the tentative changes to the characters.

Throw Escapes & Reversals

Two common features in most fighting games that wasn't implement in the previous iteration of Battle High 2 are throw escapes and reversals.  Fortunately, I've been able to implement these two features.  Players can now escape a throw if they press throw during the first few frames of their opponent performing a throw.
Reversals are special moves that can be performed during certain states.  In this case, they can be performed while getting up or while blocking.  I may change this, but right now, I've made reversals cost one-third of the player's meter.  Each character will have one move that will be designated as their reversal move.  I may allow super moves to be reversals as well with no meter cost required, but I'm still mulling this over.

Input Changes

One request made for the previous game was to allow two buttons pressed at the same time to perform throw and overhead attacks as 6 buttons can be a bit too many, especially if two of those buttons do something very specific.  So, in this version, light punch and light kick will be throw and heavy punch and heavy kick will be overhead; however, there will still be overhead and throw buttons that can be assigned if the player prefers.
The second set of changes do with the move inputs themselves.  This is pretty risky, but I've decided to eliminate several different types of inputs, taking some hints from my previous post about appealing to more novice players with easier inputs.  Sadly, the elimination of some of these input types such as charging back and forward does eliminate the meta game discussed earlier and some moves might be more or less advantageous than before.  Hopefully balancing can remedy some of these issues.

Character Changes

Character changes are extremely important.  They are the most or second most important aspect of the game really, so I decided to do a quick summary of the changes coming to the 13 characters in Battle High 2 A+.

Jiro

Jiro was the first character I implemented in this build of Battle High 2, and so far, he's probably still pretty close to his previous iteration.  I removed this parry move I believe in the previous iteration, so he won't have that.  His Elemental Super, TerraTackle now journeys to the player, popping up when he's within distance, allowing him to combo off of it and no longer requires the player to control him as he moves.

Michelle


Michelle is a tough character as her Elemental Overdrive put her into a second form which extended her moves and made her strong.  With the elimination of Elemental Overdrives, this features has to be eliminated as well.  Instead, Michelle will have access to all of her moves from start.  Also, Michelle lacked a real anti-air, so now the heavy version of her projectile will emit an fiery orb around her similar to Bryan's anti-air attack.

Shinji


As discussed earlier, I'm removing charge attacks, which will make Shinji play a lot differently since his elbow attack and anti-air headbutt were both charge attacks.  Another big change I'm making is to Shinji's teleport.  Teleporting was a bit troublesome as it created some infinites, particularly teleporting behind an opponent mid-combo.  So, in this build, teleporting cannot be performed mid combo.  Also, previously Shinji had 4 teleports:  in near and front, near and behind, far and front, far and behind.  I'm removing near and front.

Khai


Besides the removal of his powerful Elemental Overdrive, Khai will most probably stay the same to his previously iteration.  I may change his aerial elbow to be more of an air-dive attach since before he sort of teleported, which didn't make much sense since he's a Water Elemental and not a Wind Elemental; however, you could argue this is vapor and not wind.

Mai


The biggest change to Mai will probably be her super move.  Instead of being a large attack that then launches her opponent into spikes, I may just make her immediately do the ground spikes, allowing it to more easily combo into some of her attacks and act as an anti-air.  I'm not 100% sure on this yet.

Klein


Klein will be difficult as his Elemental Overdrive allowed him to shoot four different projectiles.  I think I'm still going to have his switch move and the accompanying projectiles.  I am going to change these projectiles though, as some of them were rather mediocre such as the blue diamond that went over almost everyone's head.

Bryan


The biggest change coming to Bryan is a major nerfing of his crouching light punch, which was reported as being too fast and too good at interrupting a majority of the cast's attacks.  Other than this, I feel Bryan is a rather solid character and will keep him rather consistent to his previous versions.

Jada

Jada will probably remain very similar to her previous build.  Her triple kick will probably be much cleaner and consistent.  Also, I may remove the rapid punch and instead make it a quarter circle forward, rushdown move, but I'm not 100% sure yet.

Arvid


Arvid is another one of Battle High's charge character who will be seeing some major changes.  He will still have his projectile, but his air kick, may become more like a dive kick.  I may also make his iron belly attack deflect or destroy projectiles.  Arvid may also have an anti-air uppercut which will be used for his reversal.

HW


HW is another character who is pretty much going to stay similar to his original form.  His dash move may move a bit farther than the previous iteration, but the changes will, overall, be minimal.

Ryken


Ryken will probably stay very similar to his previous iteration as well.  He had the most moves of the entire cast.  A part of me is thinking of removing some and making an EX version and swapping these moves out, but for now I'm going to keep him as is.

Principal


The boss of Battle High 2, Principal, will change but mostly due to the changes in input.  Like Jada, I may remove his rapid punch attack and instead make it a defensive move that can destroy projectiles.  I may also make him faster to make him feel more threatening like a boss character.

Kazuo


Kazuo is probably the character most in need of changes as he was deemed the previous iteration's worst character.  He was supposed to charge attacks to make them stronger but the differences between charge levels probably wasn't strong enough.  At the same time, he had a very weak anti-air.  I think for this iteration, I'm removing the charging.  He'll just have a rushdown move.  I think the other big change will be his anti-air, which I may make a projectile giving it more reach.

Game Mode Changes

Another large change I want to make is to the modes available.  The previous game just had versus, arcade (or story), training, challenge, and 3 mini-games.  After watching this video --

-- I started to consider a few different modes.  From the start, I wanted to include a challenge mode similar to Mortal Kombat 9's challenge tower.  I feel this did a very good job at introducing things slowly with easier challenges and then building up to more advance ones.  It also creates fun challenges to satisfy those who want a single player experience, especially if I don't get networking implemented immediately.  It does mean I have to create masterful AI and highly customizable challenges, but, to be honest, I'd probably be at doing these.  Overall, I think instead of the mini-games implemented before, I may introduce a challenge tower or hallway.  I can also use this mode to introduce more of the story for Battle High.

Also, to fans of Battle High, I'd like to apologize for this game taking so long to finish, but at this point, I'm essentially a one-man team, getting some help here and there but a majority of the work still lies on me.  Lately my schedule hasn't allowed me to work on it as much as I'd like.  I'm going to continue to work on it as best as I can and hopefully be able to share the game with all of you soon.  Think of it this way:  at least you didn't contribute to a KickStarter for it.  Anyway, thanks for reading.

GML Book Contest


It's been almost a year since I started writing my recently published GML book -- GameMaker Game Programming with GML -- and because of this, I've decided to organize a giveaway!  Two lucky winners have a chance to win a copy of the book; keep reading to find out how you can be one of them.

Overview of GameMaker Game Programming with GML

  • Write and utilize scripts to help organize and speed up your game production workflow
  • Display important user interface components such as score, health, and lives
  • Play sound effects and music, and create particle effects to add some spice to your project

How to Enter? 

Simply post your expectations from this book in comments section below. You could be one of the 2 lucky participants to win a copy.

Deadline

The contest will close on 07/21/14. Winners will be contacted by email, so be sure to use your real email address when you comment!  

Please note: Winners residing only in the USA and Europe would get a chance to win print copies. Others would be provided with eBook copies.

Saturday, June 14, 2014

Fighting Game Command Study

Recently, as I've been working on Battle High 2 A+, which now has a playable, pre-alpha:



I've been wondering about several aspects of fighting game design in general more closely.  One is special move commands.  I think one of the bigger barriers in attracting new players is that to do anything "cool" is seemingly complicated.  When the first question you get from a new player is "How do I block?", it's usually followed by, "How do I shoot a fireball?"  Both question can be difficult to explain.
This sort of made me wonder, why is fighting game input so complicated?  I know it started back in the arcade days as a sort of "hidden" feature, something that while messing around players would discover, to feel proud as they are asked, "Woah, how'd you do that?!" but now, hidden moves are almost nonexistent due to the amount of resources out there to learn about a game.

Less Buttons, Less Problems...maybe...

So I think there are several advantages to button sequences.  One is that you can cut down the numbers of buttons needed for player to learn.  This is also a reason why many games use multiple button presses, for example, pressing light punch and light kick to throw as opposed to having a separate throw button -- though Battle High now does both.  A part of me agrees with this.  I think Street Fighter has really set the standard that anymore than 6 buttons is probably too many -- unless you have a 7th for say taunting. At the same time, new players can finding this troublesome, especially when you are working in a genre where players use a variety of hardware -- controllers, joystick, even keyboard on rare occasions.  You can play with the dreaded raptor claw as you struggle to press three buttons at the same time.  The commonly grunted solution is "Get a stick," but not everyone really wants to do that or can afford it.
Joysticks are cool, but they do take getting used to and are sometimes expensive.  Some people just want to have fun with what their given.

Meta Game

I think a more interesting reason for inputs and a variety of them is the meta game it creates.  This particularly refers to characters that have charge attacks:  Guile, Balrog, M. Bison, Blanka, Vega, etc.  When you see these characters crotch, for example, you have to guess, "What are they going to do next?"  Are they going to throw a projectile or rush in?  Are they preparing for me to jump in?"  At the same time, a player has to play in a way that can prevent them from charging properly and taking that advantage away.  I mention charging specifically because I was, and still am to be honest, contemplating on removing charge attacks from Battle High 2 A+.  My main reason was that, in an effort to simplify things, to eliminate another type of input.

This is Guile.  He's crouching.  What's he going to do next?  Flash Kick?  Sonic Boom!  Crouching Heavy Punch?!  You just don't know!  META GAME!

In-Game Flow

This reason is a bit more "colorful" but in a way the motion of one's hand when doing a fighting game input sometimes very closely relates the the movement that a character is doing on screen.  This can, in turn, help make a better connection between the player and the character.  In Street Fighter, for example , a Quarter-Circle Forward (QCF) and punch, will make Ryu project a fireball or Hadoken.  In his animation he sort of leans down a bit, creating the energy, and then shifts his weight forward to shoot a fireball across the screen.
In regards to charging, a character is usually walking away similar to a slingshot being pulled back and then sudden forward is pressed with an attack projecting the character (or an actual projectile) towards the opponent.  When the input correlates well to the resulting character movement, I think this demonstrates good design.
Maybe it's just me, but I see a slight correlation between the input and the resulting movement.  Maybe I'm reading too much into it.

Simple and Easy Operation

One solution I've seen to simplify fighting game input are Simple operation modes in which more complex inputs, QCF + P, are replaced with simpler inputs such as simple F (forward) + P.  Sometimes entire combos can even be performed with just the push of a button.  These seem great on the surface, but they, in turn, reduce the number of actual attacks available.  For example, if Ryu's projectile was simplified to simply F+P, he'd lose some of his more special attacks that already use this command such as his 2-hit overhead.  Also, they remove a lot of the skill required to play the game and a part of me feels that if you are going to do a simple operation mode, just make that the norm.

The EO stands for "Easy Operation".  I think this was done more for the GameCube controller than anything though.

Audience

At the end of the day, I think it really comes down to audience.  If the audience of the game being made will mostly consist of fans of the genre, then sticking to what is currently working is probably best; however, if you are trying to attract a broader, more casual audience, a few things definitely need to be done.  First, you have to teach.  You have to have a mode -- that is just "training" mode -- to teach the different attacks and how to do them.  Teach how to roll one's thumb from down to forward and time the press -- if they are using a gamepad.  Teach how you can buffer inputs for a few frames to link combos more easily.  Just teach the player.  Problem is, a lot of time, players usually won't take the time to learn, jump right into the game on max difficulty, and then never play the game out of sheer frustration.
Maybe it's just me, but I don't think the EVO audience would mind games with more complex inputs, but the Candy Crush generation...well they probably wouldn't never play a fighting game anyway...

My Plan (for now) 

Right now, for Battle High 2 A+, I really want to attract a more casual audience to this fighting game and the genre in general.  I want to teach the more important aspects of fighting game such as defensive, offense, timing, studying your opponent, and remove some as many barriers as possible -- difficult inputs being one of them.  To do this, I'm going to first probably include a mode that teaches basic game mechanics.  Make it a mode that doesn't just say "THIS IS HOW YOU BLOCK" and have the player watch a video, but instead explain how to block and then make a challenge such as "block five attacks"  This isn't original by any means, but I feel much more useful.  Then, I'm leaning towards sacrificing the concept of In-Game Flow described earlier and instead just have all attacks be QCF or QCB, or a combination of those.  Probably no charging and no z-motions (dragon punches / Shoryuken).  Battle High's cast doesn't have TONS of moves, so limiting it to those inputs makes thinks a little easier.  It does require more skill than just pressing forward or back and an attack, but I think this middle ground will ultimately feel more rewarding.

Anyway, that's my quick analysis of fighting game input and my approach to them.  I'll probably be posting more Battle High 2 news in the coming weeks.

Sunday, May 11, 2014

A Retrospective: My First Book

So as of late April, I became a published author, having finished my first book, GameMaker Game Programming with GML.  I decided to write about this experience, serving as a retrospective to both myself and possible other individuals who are considering writing a technical book.
My book's cover!

 

How did I even get started?

A lot of people asked how I even got a publishing deal.  It mostly started due to my LinkedIn page.  There, I had listed that I was proficient in GML, or GameMaker Language.   One day, seemingly out of the blue, I was contacted by the publisher and asked if I would be interested to write a book.
At the time, I had just been rejected -- again -- by IndieCade, a Independent Game's Festival, so my confidence in making games was a little shaky.
I thought the book would be a nice break from making actual games, something different.  I also enjoy writing, so I figured it wouldn't be that difficult to do.  So around July of 2013, I started writing this book, and after an extension, the book finally wrapped up sometime near the end of April of 2014.
I guess I should be thankful for this social media outlet.

What Did I Immediately Learn?

The first thing I learned is that technical writing is not the most exciting task.  A lot of nuances go into the writing and assumptions about the reader can't often be made, so sometimes, seemingly dull topics have to be covered in detail and can feel a little daunting. 
This combined with the schedule, which was fast -- around halfway through the book I had to ask for an extension -- and already working a full-time job, made things even more difficult.  I sometimes would fall into this cycle of having a stressful day at work, only to have a stressful night working on the book when I really needed a break.  Time management usually isn't an issue with me, if something needs to get done by a certain date, it gets done, but this was once instance that it just wasn't going to happen, or at least, happen in a way that would produce a product I would be proud with.
I think the most difficult thing was confidence though.  Being a self-taught programmer, even with my experience now, I sometimes don't feel as confident in the code or designs I am making than some other professionals.  As I was writing, there was always this little bit of doubt in the back of my mind, "Is this the best way to do it?" even knowing full well that there isn't really such as -- usually anyway -- the best way to do something but instead a good way to do something given the constraints of the current situation.
Working on the book and work in combination created a cycle like this.

Quick Overview of Phases

So this is how the writing went:
  • Rough Draft Phase:  2 to 3 weeks per chapter. 
    • Here, I would write the rough drafts.  I sometimes felt like I was over-thinking this too much, especially since I knew there was going to be additional phases and editing.  About halfway through writing this process, I received a lot of feedback on my early chapters, which made me panic in a way and request the extension.  I think if feedback would have been more regular in the beginning, I might not have panicked as much and been able to account for certain preferences that publisher had, but hadn't directly expressed while writing
  • Review Phase:  3 to 4 days per chapter
    • In this phase, I began correcting things from my rough drafts based on feedback from three to five different reviewers.  Some of the changes were simple, such as changing my heading to the sentence case instead of title casing.  Again, I personally wish these smaller things would have been pointed out earlier so I could have focused more closely on the reviewer's comments, even the more vague ones.
  • Technical Review Phase:  2 to 4 days per chapters
    • Then, I was introduced to a technical editor who made more comments, similar to the Review Phase.  These were more direct.  Some of them were a little confusing, and by this point, so many changes had been made -- not to the content, but to my writing style -- that sometimes I didn't recognize what I was reading, but possibly because it had been so long.
  • Pre-Final and Final Review Phase: 1 day per chapter
    • In this final phase, I was given a .pdf of how the text would look in the book.  I was directed to really only correct additional comments and really important changes.  This phase felt pretty fast; with the extension, the turnaround in this phase probably needed to be faster.

What Did I Learn In The End?

Anyway, after these phases, I was done with the book, and it was off to the printer's.  Despite one flaw, which was quickly remedied, I was done.  Now that it's done, I feel like I learned a few things:
  • Software updates
    •  About halfway through writing, GameMaker Studio updated, changing some of its interface and scripting.  This was rather troublesome as it had to be remedied.  Instead of ignoring it to the editing phase though, I should have noticed this as soon as I started writing and ask for a few extra days to make sure my current submissions didn't need any major changes.
  • You're working with a team
    • The reason I needed an extension is that, while juggling my job, I became frustrated and almost quit writing the book.  My Acquisition Editor at the time, convinced me otherwise and said I could get more time between chapters, which was the better solution.  I, however, maybe should have been more persistent with requesting help and feedback than I was
  • Nothing is perfect
    • Even now that the book is done, I feel like an artist whose work is in a museum and they want to just steal and it fix it, but it's probably better to just move on.  I think the book was a good -- maybe too long -- break from personal game development, and I'm ready to get back into it.
Overall, and again, I'm very happy this book is done.  It was a challenging experience, and I sometimes wonder if I would do it over again.  I will probably not be writing another book any time soon, but know I now what it takes to write a book.  Yet again, I still feel pretty accomplished, so congratulations to me!


Monday, April 28, 2014

Coffin / Ludum Dare #29 Post-Mortem

So recently I posted that I was participating in Ludum Dare, a solo, 48-Hour Game Jam competition.  After the rather hectic, 48-hour period, I did complete a game!  Entitled Coffin, this game can be found on the Ludum Dare page here.

We were encouraged to write journal entries throughout the course of the jam; I wrote 9 total:

A lot of people write post-mortems or retrospectives of their game, so I decided to do the same.

Interpreting the Theme

So before entering Ludum Dare, I had several ideas in mind.  This, in my experience, is usually a no-no for themed game jams as the final theme can turn that idea on its head or make it completely unusable -- unless you bullshit a wild correlation.  During this Ludum Dare, participants were asked to vote on a theme, which I think contributed to my scheming in advance, voting up themes I liked and those that I wouldn't have an idea for.  I liked the voting, but I think no voting would have forced me to go into this without 0 (or fewer) ideas.
Anyway, after the theme, Beneath the Surface, was announced, I thought for about 20 minutes -- waiting for the pizza I ordered to arrive -- but succumbed to one of the ideas I had earlier.
My recent Oculus Rift research had a heavy influence on my idea, particularly with how it can make you feel like you're in an experience.  Of course, there are a lot of rules, such as too much movement in the character that contradicts the player's movement can cause motion sickness, especially when locking the view.
I also wanted it to be creepy and scary as I feel the Oculus is a great outlet for creating these types of experiences.  My current inspiration for maximum creepiness is a this rather and quite frankly disturbing music video directed by Eric Wareheim:

Pretty creepy right?  I won't post the video as it's kind of NSFW, but you can search for it yourself

Anyway, I interpreted the theme to a rather terrifying experience -- being buried alive.  I didn't want to do just do being buried alive though; this was a game jam, not an experience jam.  So instead, I wanted some other idea in it.  I wanted to add some elements to the game that would make the player understand why they were being buried.  I eventually came up with the idea that you were some sort of immortal wizard or witch that is being buried alive to keep everyone safe from your magic.
Unfortunately, this was all I really had.  I had the idea that you are in the coffin, that there is a glass window and you can see rocks falling in from above, covering the glass.
After fighting with physics for a couple of hours -- which I always end up doing even though I say that I despise wasting time with it -- I was able to achieve the effect I want:


Also, a quick physics note, mostly for myself, but if you want to use Unity3D's physics and move an object from point A to B and use Physics, making it "jump", here's a quick code snippet for doing so:

Vector3 startPosition, goalPosition; 
float speedFactor; 
rigidbody.position = startPosition; 
rigidbody.velocity = speedFactor * (goalPosition - startPosition) - (Physics.gravity * 0.5f) / speedFactor;

In the above, if you want an object to be moved from a starting position to a goal position with velocity, I found this to work.  The speed factor is just a little touch for making the object move more quickly or more slowly.  It's probably game physics 101, but I always forget how to do this when encountered with moving an object from its current position to a goal position with a little jump.  In my game, I didn't use the speed factor, hence why the initial sequence is so long; also filling that window with rocks was a pain. 

Making Something I'm Not

At the beginning of day two, I was trying to figure out the actual gameplay of my entry.  I somehow had the idea that you are buried underground because you have some sort of artifact or puzzle box.  You're buried with it, but now it is the only thing that can save you.  With this, I feverishly began modeling and conceptualizing ideas for a puzzle box similar to that in the iOS game, The Room.  I skinned, rigged, and textured my mysterious sphere and was ready to solve my first (juvenile) puzzle!

The puzzle sphere broken apart

My idea was simple.  You'd rotate and push various parts of the model to complete a pattern that would ultimately glow and take you to the next scene.  If you failed to complete it in a given period of time, you'd get a scare!
As I worked though, I realized that programming this to feel good would take a long time, especially with all of the extra work I wanted to put into the game as a whole.  I contemplated quitting, but I don't like to give up, so I rethought my idea.  I thought about what kind of game would I want to play.  I wanted to keep the puzzle, but the more I worked with it, going from the sphere to a flat plane, I realized the puzzle solving wasn't going to happen.  Instead, I decided to go an entirely different route:  rail-shooting.
I enjoy rail-shooters like Resident Evil:  The Umbrella Chronicles.  Of course, this wouldn't be on rails since you are confined to such a confined, claustrophobic space.  I did have the idea that some imp would drag you out of the coffin and then you'd have to shoot rocks and bats, but this never came to fruition.  I had a lot of ideas that never came to fruition such as a dialogue between two guys who were burying you.  Why did I think I'd get time to record myself doing two unique voices despite having almost 0 voice acting experience?  Well, it's fun to dream, which I find happens during a lot of game jams.
Anyway, after realizing I wanted a shooter and determining that solving a puzzle while shooting wasn't going to work, I built a system in which three "buttons "would be on the sides and top of the coffin which would activate different magic!  I finally had my game figured out!  It did, sadly, feel a little late as if I would have used the time to make the puzzle sphere and jump immediately to this idea, I probably could have done a lot more with the game such as texturing.
In fact, the entire last day felt like a mad rush just to get what I wanted.  I didn't get to texture anything, which quite frankly isn't really needed here and the audio was also rushed.  I did get the main components:  projectiles, creepy hands, a bound main character that seemed like you were actually playing them, and a super creepy boss with animations that I really wish was less suggestive.

So How Do I Think I Did?

When competed solo, Ludum Dare is a competition, but honestly I don't care about winning or losing.  I was more or less doing this against myself to see what I could do working alone in a short period of time, especially after such a long period of creative stagnation from writing the GML book.  I feel I made something interesting for only two days.  I could only imagine how this could be with two weeks or two months -- two years would be crazy as my attention span isn't long enough.  Honestly, however, I probably won't continue this game.
In fact, making this game, made me wonder:  Why even do game jams (or at least a solo one)?  The deadline is a good motivator, but I know I'm disciplined enough to get things done quickly, so that isn't really the challenge.  The bigger challenge for me is working with a unique theme.  I have themes in my head and ideas I want to prototype, so the theme sometimes feels like it gets in the way.
What I should probably do is keep a backlog of game ideas I want to prototype and when participating in game jams like this, or heck, just picking a free weekend to punch something out, and work on making a prototype for that idea, even if it uses assets that I'll end up throwing away.
Overall, I think I succeeded.  I completed a working game.  I experimented with things in Unity I don't touch often:  Physics, post-processing effects, dynamic lighting.  I also experimented a bit with Substance Painter, which I think is a neat texturing tool but doesn't quite do what I want it to do when it comes to texturing.  Though I'm not sure what I really want in such a tool anyway; I'm still looking for a program to texture 3D models.  In addition, I realized, I normally neglect the elements of a game I am terrible at during a game jam -- in this case, texture and audio.
In summary, I should have either picked a game idea I wanted to prototype more strongly than this, one that I'll want to continue with, or at least know the actual gameplay of my game instead of the initial cinematic experience.  I shouldn't focus on elements of polish without completing major elements either.  Regardless, I still think I was successful and though I'm not sure whether or not I will do the next Ludum Dare, I will definitely consider it.  Anyway, here is a video of my game, Coffin: