Monday, September 8, 2014

Balance of Power

One of the most frequent, and yet toughest decisions any developer has to make throughout the course of a project is the evaluation of new tools and tech for some particular aspect of your project. This is especially true for the indie developer, where your resources for building the tech yourself may be quite limited (ie., you), and yet the funds for licensing the tech may also be rather limited. I got to thinking about this the other day as I was going over the list of licensed tech we're using in our current project at Robot, and it occurred to me, as I've been making these kinds of decision for both small and large projects over the past ten years, maybe I could put together a list of some of the criteria I've accumulated over the years.

The New Shiny
It used to be that licensing middleware for your game was an extremely expensive process, so for many small shop developers, the costs of licensing alone made the decision an easy one. If you wanted a pathing solution, then you studied up on the latest algorithms, and you went and implemented it. If you needed blended animation trees, you took whatever bare bones your engine gave you, and you built your API on top of that. And if your artists had to live with editing XML files to set up the blends, well so be it.  But these days the process has been hugely democratized, and it's not uncommon for the aspiring developer to feel like a kid in a candy shop when looking through the Unity Asset Store.  So many tools! So many packages ready to go promising everything you need to get your game up and running! And they're all so affordable! I'd like one of each please!

Well hold on one second there Tex. Before you plunk down another $65 for another set of editor extensions, lets spend a few minutes thinking about your project's real needs. And furthermore, the ramifications to your project once this system is integrated in.

How far along are we?
Make no mistake - the best time to integrate third party solutions to your project is right at the beginning of the project. And the further along you are in the project, the less useful - and doable - this becomes. This is because each system you integrate into your project is going to set up chains of dependencies. Not only are you going to build code that is dependent upon this system, but other systems that may already be implemented might have to be modified to account for the new system. This is especially true in all-in-one kinds of packages.  Things like "The complete MMO toolkit" or "Everything you need to make an RTS".  These things are called starter kits for a reason. They define core game systems, and the expectation of those systems is that you're developing your project around that core game system. So if you're already rolling with a game that has functionality in place, integrating a core system like that can create far more problems than it solves - especially if you're integrating a system only because you want some key piece of functionality from it.

For example - say you have this fantastic idea for a game where you run around and shoot other players, you take their stuff, you go back to town and trade their stuff in for better stuff, and you go out and do that some more. And you can level up.  You find an excellent FPS starter kit that not only has a fully scripted character controller ready to go, but also includes an inventory system. Sweet! Then you see an Action/RPG system with experience points, and abilities, and level up mechanics that you also want. So you pull that down to get those systems. Then you realize that you need to save and retrieve store inventories in a central database, so you pull down and integrate a database retrieval system.  Well now guess what you have. Both the RPG/Action system and the FPS starter kit provide fully animation character controllers, but neither of them know about, or work with each other. But only one of them works with your inventory system, and the other only works with your level up system. And neither of them know about database system you've integrated. And furthermore, the database system has its own inventory managment system, that would be nice, but neither of your character controllers are set up to use it.  In other words, you've got a real maintenance nightmare on your hands.

For those reasons, it's best to make some of these decisions as early in the process as you can, especially the more core the system is.

Use but don't integrate
In the above scenario, I would start with the database serialization system, as this is a core part of your game, and just about every other piece in the game is going to depend upon it and use it. I then would perhaps purchase the FPS starter kit, and set it up in it's own separate, clean project. I would examine how they set up their character controller, and how their using their inventory. But in my original game project, I'd implement my own character controller using the methods I learned from the starter kit. I'd then build my own inventory system built on top of the database serialization system already integrated, using the techniques I learned from the FPS starter kit. I'd then repeat the process for the Action/RPG system. I wouldn't use their character controller at all (I've already gone one you see..) but I'd install their system and learn enough about it to see how they implemented their level up mechanics, and then build my own systems in my game using my technologies, but their methods.

The thing is, this kind of implementation is going to take much longer. You are essentially using the 3rd Party tools to learn from, and then building your own systems. But in the end, what you have are game systems that you are fully aware of exactly how they work (because you built them), and a game project as a whole that has fewer competing dependencies. In the long run, your project is going to be much better off for it.

How key is the component to your gameplay?
So obviously our game would be the absolute best game if we built every single piece of it - because then we know every single piece, and can fix, change, or modify all the pieces. But for an indie developer, time is money, so the truth is you may need some of those systems, and there simply isn't sufficient time to learn and re-implement. This game needs to ship! So another key question I ask myself is whether or not I can consider this component a commodity in my game, or is it a key foundation in my game. For instance, let's return to the example I started above. In this game, there are animals roaming the wilderness, and their sole purpose is to serve as targets for players to kill, and get experience. These animals have to roam around, attack players, and die. For those needs, I would absolutely license a pathing (and AI) solution, implement it as soon as possible, and never look back. My game isn't about animals pathing, or making incredibly smart decisions. It's about the fun players have in shooting them and looting them and getting bigger guns to shoot bigger versions of them.

But say my game is about the animals themselves - they are cunning foes that sneak up on players, have their own survival agendas, and roam about searching for and finding food, and the players can serve as that food if need be. Now the game is much more about the animal's behavior itself. In this case, I would build my own AI systems. I might use a low level mesh pather, but everything on top of that I would build.  

In other words, it's important to identify clearly what your game is about. And if your game isn't about some core piece of functionality, and out there is a company that makes its entire business building that functionality, then if you can afford it use it. Prime candidates for this are systems like sound and music, pathing, UI, and database management. For these kinds of systems, it's quite likely your engine already has built in solutions for those, and if so, and they fit your needs, by all means use them. But even if your engine doesn't, these kinds of things are considered the wheels of game development - and you know what they say about wheels and re-inventing them.

Don't start over!
From time to time, you will come across solutions or third party systems that are so enticing you will be tempted to completely throw out everything you've done so far just to make use of that system. No seriously. It's a huge temptation. Your own project is looking messy, with many cross dependencies, many overlapping technologies, and tools from three different kits, along with your own hodgepodge of scripts and half-implemented (but functional) pieces. And along comes this kit in the asset store that does everything you need!  It has data serialization, and a character controller and an inventory system and a level up mechanic and it's all super clean and neatly integrated and each piece talks perfectly to the other and you think to yourself that is the answer! To heck with this, I'm buying that and starting over using that and this time my game will be a paragon of efficiency and robustness and still fun to play!

I cannot emphasize strongly enough that in almost every single situation, this is the wrong decision to make. The number one killer of games getting finished is the temptation to throw it out and start over cleanly. Here is the truth of it. Game development is messy. It always starts off clean, and with the best intentions, but in in twenty years of shipping games, I've never shipped a single one, large or small, that didn't ship as a giant jumbled collection of the hacks and bailing wire and tissue paper systems that make the game shippable. It's just the nature of the beast. If you've made progress on your game and it's doing things and you're liking what it does - even if it's not the prettiest code in the world and would make your 2nd year CS instructor cringe, keep going!

No easy choices
The truth is, the decision to integrate a licensed piece of 3rd party tech into your project, versus creating your own solution, is never an easy one. Each case is unique, and has to be evaluated on its own. But hopefully this gives you at least some general guidelines to use to help you make that decision. How far along are you in your project? How many dependencies will this create for other systems? Will integration of this system create overlaps of technology from solutions already implemented? How core is this technology to the foundation of your game?  These are at least some of the questions you should be asking yourself before you plunk down another $100.00 for the best skeletal animation system ever.  And hopefully, with some of those questions answered, you can make better choices about which systems to use, and which ones to build.  In either case, good luck with your projects!

Tuesday, September 2, 2014

Lightning Strikes! Again!

Yesterday kicked off the next event in Final Fantasy XIV's one year anniversary round up - which sees one of Final Fantasy's most cherished characters - Lightning, visit the world of Eorzia.  Similar to the other anniversary events, this is a repeat event as well - it first came around in November of 2013, so technically I suppose it should be called Lightning Re-strikes.. or maybe Lightning Strikes Returns Again.. or.. something. Now as I've mentioned before I'm not terribly well versed in Eorzia lore, but I am a fan of the Final Fantasy series, and was quite familiar with the lore of this character. I wasn't playing FFXIV at the time this event came around the first time, so I was really looking forward to participating in it this time. And let me just say, if you're a fan of franchise crossovers and of seeing your character participate in events side by side with a signature series character - the event does not disappoint!

Thursday, August 28, 2014

A Night of Celebration!

So right now Final Fantasy XIV:ARR has a variety of in game events going on to celebrate their one year anniversary.  When it comes to seasonal events in MMO's, I'm very hit or miss. Occasionally I'll endeavor to do them just to see what they're all about, but quite often I'm just as happy to skip them altogether. Especially when the activities they would have you participate in trend towards monotonous. But as I'm still relatively new to FFXIV, and as these were the first seasonal events that have occurred since my return to the game, I decided to give them a go. And I'm glad I did. Seasonal events in FFXIV for me hit just exactly the right mix of fun, polish, and length!

Wednesday, August 27, 2014

Getting back into the Swing

Make no mistake, I haven't written much lately.  At all. When you've been blogging as long as I have, you know that there are times - weeks, months, somethings entire years, where it just doesn't strike ya, and you can't put pen to paper - figuratively speaking. Now typically, most bloggers will cap those periods off with renewed promises of increased activity.  It's like when you fall off your exercise program.  After some period of time has passed you begin anew with promises of This time - this time I'll make it stick! I personally try to avoid such promises. Namely because a huge pet peeve of my own is making promises and then breaking them.  I've always felt that no one really wants to read a post about how you're going to turn things around and start writing every day etc etc.  If you want to turn things around, then just do it. Start writing. But I've decided this time I'll allow myself my own exception, and make this post about posting. So here ya go. Breaking my own rules, and talking about things I would like to talk about. 

Friday, August 8, 2014

Mobs you Respect

So I've been playing some Final Fantasy XIV a bit lately, and overall having a great time.  One of the things I enjoy is a return to zones that have some genuinely rough monsters, mixed in with the fodder.  And it got me to thinking, over the course of all the MMO's I've played - what are some of the mobs that have really earned my respect!  And it seemed like a fun topic for a blog, so there you are.

Sunday, March 30, 2014

Back in Defiance - for now

Not sure exactly what prompted the current itch to run around and shoot things, but there it was.  Part of the reason I think was that I've been seeing the advertisements for the next season on SyFy.  Part of it was just that it had been close to a year since I played last, and I wanted to see if they'd finally polished up the game to the point it should have been when it launched.  But regardless, during a lull between playing my protection warrior in WoW and leveling my rogue deck in Hearthstone, I found myself patching up Defiance.  And let me tell you, it was quite the patch too!

I'm like a goldfish
Part of the joy of getting older is you become a bit more forgetful.  So it was I found myself reading my own beginner's guides that I wrote about the game a year ago, to help me remember how things worked and what was what.  But like riding a bicycle it comes back pretty quick, and before long I was blasting hellbugs at arkfalls, and helping Van Bach find his missing piece of ark tech.  I'm taking a very story driven approach to the game this time, pretty much ignoring all of the side missions, and just advancing along the main story arc, and doing the episode missions.  I have no misgivings about a long term committment to the game, so while I'm here I want to get the most out of it, and not get bogged down in grindy kinds of content.

The Good Stuff
Most of the rough edges really have been polished up, and Defiance is surprisingly good at delivering what it promises.  It really is the shooter for MMO players - which is just about perfect for me.  There's most assuredly plenty of PvP content, but you can ignore that stuff if it's not for you, and progress through the game upgrading your guns, killing mutants, bugs, and bad guys, and you get lots of talky bits, occasional cut scenes, and great use of voice over.  And of course there's the fun of zooming over the landscape in your ATV.  Trion's excellent cooperative gameplay elements are made good use of here, so you often get help in missions, and there's always a pretty good collection of people at the arkfalls.  In fact, if the one thing I've actually found myself most pleasantly surprised about are the number of people I have found still actively playing the game.  It's nothing like opening month, but there's always a few people at the minor outposts, usually a dozen or so at the major outposts, and a few dozen running around the major arkfalls.  And I suspect there's higher numbers over in the Bay Area across the bridge - but I'm not that far yet.

The Meh Stuff
Defiance still suffers from the same things it always has.  Mostly a lack of discoverability of their game mechanics, an obtuse weapon mod system, and an unnecessarily convoluted progression system.  I will say though all of those things are better than they were at launch, at least, because the UI is significantly improved.  They've made it much easier to do the main thing you have to do in a game like this - compare one weapon to another.  It's still though not always clear which weapon is better than another weapon, but at least it's easier to compare them.  Oh and chat works.  Finally.

Play the Game - Watch the Series
I also must admit, part of the reason I'm back in the game is I really like what they're doing in tying the game and the tv series together now.  The television series has been renewed, and season 2 is coming out in June. In anticipation of that, they're released "Season 1 Rewind", and you can now play all of the game episodes that coincide to particular tv episodes, and watch the tv episodes over at SyFy Now at the same time.  It's pretty slick, and has me watching the episodes on my iPad and then playing the game immediately afterwards.  You can read more about how that works here.

Needs more MMO
Honestly, about the only reason I think Defiance still doesn't have real stickiness for me is the lack of a feeling of world, for lack of a better term.  It feels like a series of quests tied together by vendor and npc hubs, and not much more.  And instanced cooperative missions. The quests are fun, and the equipment is good, but it seem like they could do more with towns, and social centers, and non-combat related activities.  But for now I am having fun, and it's a nice diversion from WoW, and who knows, maybe I'll pick up some of the DLC's so I can play a castithan!

Saturday, March 15, 2014

An Embarrassment of Riches

It's been a busy and fun last couple of weeks for anyone that plays Blizzard games!  And all of this has contributed to make it a fine time to return to World of Warcraft - which is course is exactly what they intend.  So I thought I'd share some of the cool things that have recently become available.

Reaper of Souls
Things got kicked off in a big way earlier this month when the Loot 2.0 Patch dropped for Diablo III.  This brought a complete revamping of their loot and difficulty systems, and as of yesterday I believe, the shutting down of the auction houses.  Pretty much everyone I've talked to has agreed that this is absolutely the best thing to happen to the game so far.  It's suddenly returned the fun to finding cool stuff, makes finding cool stuff more likely, and that in turn brings the fun back to the game.  But even better, was that if you pre-ordered, you got an awesome treasure goblin pet in World of Warcraft! This little fella is both creepy and awesome at the same time, and is arguably the noisiest pet in my collection.  Within 30 minutes of him following you around you are either going to love him or absolutely hate him!

Another big event that happened this past week was that after months of alphas and betas, Hearthstone has officially gone live.  I've been playing Hearthstone since the closed alpha, and absolutely love the game.  My secret mage deck is probably still my fave, but I've had good fun and decent luck with many of the heroes.  And to celebrate, once again Blizz is there with the WoW tie in.  Get three wins in either Play mode or Arena mode, and you get another awesome mount - the Hearthsteed.  This mount is as cool as its name is lame, lol.  It's best described as kind of a stone.. arcane.. flying.. horse thing.  I know right? How can you not want that.

Boost to 90!
But the big happening this week was the release of preorders for the Warlords of Draenor expansion.  If you preordered the digital deluxe edition (which I did, natch!) you got this crazy cool mount - the Dread Raven. And you got a matching pet - the Raven Hatchling.  And of course, you got a boost to 90 - one of your existing characters (or even a brand new one) boosted to the current max level in the game.  I absolutely love the new mount and pet.  And with Shimmerblade's tier 2 recolor transmog set, the entire ensemble fits together really nicely.

But the big question that's on everyone's mind that's playing the game right now is of course:

What class do I boost to 90!!?!!

What if I pick a class I don't like?  But if I boost a class that's close to 90, I feel like I wasted my boost!  I've never played mage - maybe that's what I want!  Heheh.. I heard this conversation and variations of it from many folks over the past few days.  I have to admit, I was having the same dilemma myself, until I learned the finer details of the boost program.  See, if you boost a class that is level 60 or above, not only do you get boosted to level 90, but that classes primary crafting professions are also maxed out to 600.  Until I learned that, I was seriously considering boosting a class I'd never played before - maybe shaman, or priest.  But I've had a hunter sitting at level 62 since Wrath was released.  And I know I love that hunter.  I just never got back around to leveling her.  And honestly, I enjoy the early game quite a bit in WoW, so I knew I'd have no problems getting through 1 to 60.  But from about level 70 on, it's more of a slog for me.  So suddenly this was a no brainer. Boost my level 72 hunter to 90, get leatherworking maxed to 600. Now I can make cool gear for my hunter and my rogue, and I have another class at max level that I'm running around having an absolute blast with.

However you decide to choose, there's never been a better time to get back into the game, on a variety of fronts.  And if you do decide to come back to the game, and you got your freshly minted level 90 warlock, but arent' sure what do to with her - there are two resources you absolutely should bookmark now.  The first is this fantastic Level 90 Guide from WoWhead.  It's got everything you need to know about where to go and what to do to start outfitting your toon in something a little better than those gifted greens.  And if you're looking for help on picking those talents, and putting those abilities on your bar and how to work for them, be sure and check out the class guides at Icy Veins.  Each one gives incredibly good information on talent choices and rotations, as well as glyphs, gear, and everything else you want to know to get started with your class.

Now if you'll excuse me, I'm swinging off to plunder some pirate booty with my new level 90 Draenei Hunter!