Thursday, November 22, 2012

Thanksgiving Post

Happy Thanksgiving everyone.  There isn't anything radical to report, just some general progress from individual teams.  I'll go through the list.

The programmers are focusing on mastering some of the more complex parts of the engine.  If we lay tons of groundwork down at this point, it will make things easier later on.  We’re going to have a fairly complex AI, and this ground work now is part of what will give us more power later on.

The art team has some completed models that I started importing in the engine.  We’re working on the assets for one of the first zones in the game—The Howling Meadows.  The architectural style is pretty boring here, but that fits in with the lore.  Lately, I’ve been wondering if the lore needs to be tweaks a little in an effort to change that.  It's really easy / lazy for designers to pick an existing Earth culture and just copy it.  If they don’t do that, they can also go in a more fantasy or sci fi direction and just make up a bunch of crazy or unrealistic things to get away from something familiar.  But, in my opinion, it takes real skill to design something that doesn’t resemble any Earth cultures and yet is realistic and functional.

We sure seem to spend a lot of time on concepts.  We had an artist who quit pretty early in the project, get frustrated because we were taking so long.  Here we are still figuring out the look of the game.  I'm ok with that though.  We’ve spent almost a year on concepts and we still haven’t finished the Neg Wath style and haven’t even started on the other 3 factions.  It will be worth it when it's all finished though.  I think it will be striking to players when they see it.

I'm hoping our character model gets done soon.  I've seen HeroEngine projects where a small team had their own character model within the first two weeks.  I can say that I’m really happy with our character model though.  Only the male is done right now.  But it’s pretty impressive.  Finishing it opens up a huge number of things we can do.  Once it's done and rigged, we can get the animation team going—who I recruited 6 months ago when I was given the impression the models were done and rigged and ready to go and they weren't.  We can also get the spawning system working so we can spawn bad guys to fight.  We can get the character creation system working.  We can test the AI system.  We can start modeling hair and clothing to the model.  Pretty much not having a finished character model has been a huge bottle neck in the project.

Now, I know there’s a lot of things I could have done.  We could have used Mixamo characters.  We could have retopologized down thousands of high quality, royalty free human models that can be downloaded numerous places.  I’ll admit, it's been really frustrating this hasn't been resolved in some way, but I’m hoping finally that will change.

In terms of design, I'm the only designer on the team, so I can tell you every detail the Design Team is up to, heh.  I think I mentioned a while back I've been working on the particle effect system.  It’s really flexible, though it takes a long time to learn.  It’s good to learn though, because it will help me refine the abilities that each class build uses and how to plan out assets needed—like sound.  I need to start getting the sound designers moving.  Particle effects can also be attached to areas and environments in the HeroEngine.  For example, I have pollen working that will slowly float in the wind and I have that FX attached to several places in the game.  But I can also create rising bubble effects and weird little floaty bits and attach that to underwater environments globally.

I’m currently working on fire particle effects.  In HE you can create the actual flames and a second emitter that emits emitters.  This will be useful to randomly throw upward an emitter that pops, shooting embers out in random directions and making a popping sound.  Then, of course, a third emitter to create the smoke would be needed.  Fire has to look awesome.  That’s just the way it is.  I’ll probably spend a lot of time trying to get it right.

In terms of world design, I started laying out the zones.  This is a strange task.  How big should the zones be?  Well, the bigger is not exactly the better.  If the zones are too big, players could spend a lot time running to places they need to get to.  They could also have a hard time finding places or getting lost.  It’s hard to make huge stretches of space look interesting without getting monotonous.  Then there’s the technical side of things.  Each meter on a height map has a Z coordinate.  That works out to 1 meg of data per square kilometer, not to mention the information that stores which texture(s) is stored on it as well as other things like dynamic details like grass(trees, rocks, water, etc, are considered nodes, so they don’t count).  That can kick it up to 10 megs per kilometer.  Consider that World of Warcraft is 25 by 30 kilometers, that’s 750 square kilometers or 7.5 gigs just on the map alone.  Keep in mind too, each area and all the areas adjacent to it, need to be loaded up into memory.  If you have too many different kinds of models, or nodes, in those areas, it will load a lot of data into the player’s client computer, which can slow it down a lot.

Having said that, since we want to go for realism where things are spread out over great distances, I currently have Dawnshine to be colossally gigantic.  Put another way, the city of Kayne alone is a little bigger than the entire World of Warcraft's Azeroth.  Yeah, just one city, but it’s a big city.  I’m hoping by the time Dawnshine comes out, everyone will have 50 Terabyte hard drives.  Come on Moore's Law.

Although this sounds insane, and there's a pretty good reason why game designers don’t make worlds this large, there might be some benefits that outweigh the hassle.  For one, the open map player housing issue.  If an infinite amount of players can join a game and there’s a finite amount of space, eventually that space will run out and players will be unable to get their own property.  This is why player housing is nearly always instanced in games.  But if the game world itself was larger than a reasonable number of players would ever be able to fill up, would that change things?  Is there any real benefit that players might find with open map housing?  Hmm, that’s possible.  What if players wanted to open up their own black smithies, inns, clothing stores, vineyards, gold mines, castles, etc?  They would need for other players to be able to see it and stop by to interact with it.  An instanced store that no one but the owner would ever see, would be pointless.  It would have to be open map in that case.

Would a world that was run by players be an interesting enough thing to strive for?  Certainly you couldn’t let players do whatever they want.  I think Sandboxes that try to do such in multiplayer games usually create a mess when they try.  Players would need to be restricted as to what they could build and where.  Community buildings would be interesting as well.  Players could spend months doing daily quests that would allow them to unlock a community building in their favorite neighborhoods.  After months of collecting stones and mortar, feeding and housing laborers, and guarding against saboteurs, let's say the players are able to build a temple that gives bonuses to other buildings near it.  Does that sound cool to anyone else?

There’s a lot about Dawnshine I haven’t talked about because I want to wait until we’re sure it's going to be in the final game.  Developers usually hone in on what the one thing in their game is that’s fun, and make the game all about that.  Games that try and make everyone happy usually make no one happy.  At least that's always been the paradigm.  The paradigm is established for big budget game studios with big budget payroll and rent to meet every month and for established Indies that are always one flop away from closing the doors for good.  For us, we have the flexibility to take huge risks.

Thursday, November 1, 2012

Month 11

I hope everyone had a happy Halloween.  So recently, I started playing Skyrim.  “Playing” isn't really the right word.  More like dissecting it, modding it, and changing the artwork in it.  It seems like I always spend more time taking games apart than I do playing them.  There’s a lot of badly done things in Skyrim.  You know how the characters have such blocky faces?  It’s because the normal maps actually have those squares in them because they didn't use a high enough poly model to bake normal maps from or spend the 5 minutes in Photoshop it would have taken to smooth them.  Such a big budget project with such obvious and easily fixable mistakes.

I've been looking at mods that other Skyrimmers have been making.  There’s an interesting one that adds dialogue to the player’s otherwise mute character saying things like, “Where am I?” when a new area discovered event is triggered.  The problem with this is that you could possibly have a single voice actor tasked with creating hundreds or more sound assets for the player character.  What if you want to add something later or do an expansion pack and you can’t track that same voice actor down again?  Scary.  But I really like the idea of the player creating a character, and then that character having a specific personality separate from the player.

This is a subtle, but unusual idea for an MMORPG.  Usually players create an avatar and role play(even if only subconsciously) that this avatar is an extension of themselves.  I know a lot of players of RPGs think role playing is dumb even if they’re unwittingly doing it.  No one says, “Ah man, my character just died.”  They say, “I just died.  Damn it!”  So everyone role plays on some measureable level.  Oh, and also, not even hard core role players say “thee” and “thy” while they talk.

Sidetracked.  Anyway, having the player character either be mute or choose their dialogue(like Age of Conan and SWTOR did), makes a lot of sense.  The character is an extension of the player and how the player is actively choosing that character’s personality to be.  But what if you created the personality of your character when your character is created, and that personality comes through automatically throughout the rest of the game?  This latter example is the norm in single player games.  Mario is not the player’s avatar.  As Sheldon Cooper might say, "Mario, going after Princess Peach.  And what am I doing?  I'm just enabling you."

Mario has a set personality.  Duke Nukem has a set personality.  You don’t actively control those personalities while you play.  But you also don’t get to pick their personalities at the start of the game.  What if you could?  Since they’re single player games, it’s easy for the developer to make the player’s character stand out personality wise.  But in an MMO where players are all picking the same choices, that’s much harder to accomplish.  But what if the developer bit the bullet and made tons of personality choices, got the voice actors to do that huge task of work, and took the huge amount of time to code in all those event triggers to make it happen?  I think it would be worth it.

Ah well, speaking of Dawnshine, a lot has changed with the art team—the same sort of thing that’s happened with the programmer team earlier.  I used to recruit programmers and give them tasks at our meetings without doing anything to vet them first.  This really wrecked havoc in the early days when a programmer would have a time sensitive task and they’d stop coming to the meetings or keeping in contact with me. And I would have no idea what they were doing, if I needed to reassign the task, are they coming back, will they eventually do it?  That really, really sucks from a project management point of view.  And, a single flaky person can sap the morale of the entire team.

Eventually, I had to start giving programmers tests first.  Pass the tests, then you can start coming to our meetings.  Keep showing up at our meetings for a while, then we give people stuff to do.  I hate having to make people jump through hoops.  Why do people flake?  A lot of times people hear about us and OMG! have to be part of this because MMOs are amazing!  Then they join the team and find out that game development is actually a lot of work, the HeroEngine is pretty hard and time consuming for programmers to learn and they don’t want to ask a lot of questions right away(who does?) so they drift away.

After I changed my recruiting techniques, the programmer team has gotten a lot better.  We’re having much fewer people join the team, but those that do, tend to work out better.  But as I said, over the last couple months,we've been having a similar problem with the art team. We've lost quite a few people that, I think deep down inside, didn't want to be there in the first place, and it showed in their work.

Artists are different in that they don’t have to learn the HeroEngine at all. The problem is the same, but unlike programmers who never get past doing the tutorials, it means the less committed artists tend to do lower quality of work. Now, I’m not talking about skill level—especially about 3d art. No artist picks up Maya and puts out great work on day one. But even the absolute beginner can do great 3d artwork. It just takes them a whole lot longer.

Ok, enough ranting.  Let’s talk about what people are up to.  The programming team is currently making a pretty big transition.  To understand it, let’s talk about the HeroEngine a bit.  I was talking about engines with other game developers in the area at some meet up a few days ago.  They’re complaining about how if you want to do something in Unity, you pretty much have to use their tools or you’ll spend too much time fighting it.  There’s not much to fight in the HeroEngine, because there aren't many tools.  It means you have to build all your tools from scratch.  The good news is that you can make everything work how you want.  The bad news is that the HeroEngine is generally designed for huge budget studios with dozens of programmers working on hundreds of scripts a day.  We have none of those tools made.

Now, the HE comes with something they call the Clean Engine and the Evaluation system.  The Clean Engine is stuff like how props and cameras attach to characters, how players are first sent to the “Character Selection” area, simple AI pathing—basic stuff.  They expect a big budget studio will replace all of it, while a smaller studio will accept the defaults.  The Evaluation system is stuff like simplistic character creation, hitpoints, basic AI, and simple combat.  They expect everyone to replace the Evaluation stuff.  All we've been doing so far is modifying the combat systems from the Evaluation system to our own.  That’s cool and all, but we've been hard coding everything.  Not that we want to.  It’s just that unplugging these systems and plugging in our own, newly created ones is a scary step.  In modifying these inflexible, hard coded systems, we’re learning how they tick, what’s connected to what, and how they all fit in.  We’re getting really close to completing this very important milestone—essentially pulling the project off the grid and surviving on our own power.  We probably won’t face another similar moment until we get the source code and have to compile it and run the game on our own servers ourselves.  We’re nowhere near being able to do that.

On the art side of things, the artists have been building assets instance by instance, zone by zone.  I think I mentioned that in the last post.  Pretty soon, we should have an entire instance completed, then all the instances in an entire zone.  The first zone we’re working on is called The Howling Meadows.  All of the zones have strong stories behind them.  THM is ruled by a tribe of Neg Wath in the center of the zone.  They’re dying off, and no one seems to understand why. I won’t spoil the surprise, but I’ll say that since Dawnshine is hard fantasy, they’re not dying off due to a supernatural reason, though they think they are. It’s actually a pretty anticlimactic and mundane reason, but that’s part of what makes Hard Fantasy cool. There are other tribes in the area, each who’d like to fill the power void. The players will get pulled into the middle of the power struggle turned bloody.

Though it’s unclear why the ruling tribe is dying off and many stay away because of it, the land itself is valuable and worth fighting for.  The air is thick with the spirits of the dead, unable to pass on into the afterlife.  These spirits are impossible to detect by most.  But those that are able to drift into the spirit world can hear the howl of thousands of anguished souls.

I haven’t talked much about how the classes in the game works, how magic works or… ah hell, our website says close to nothing about the game despite there being a huge amount of stuff worked out.  One of the classes in the Neg Wath faction is the Spirit Walker.  I can’t remember, but I don’t think I’ve mentioned any of the classes on the blogs before.  I’ll talk a little about them.

The Spirit Walkers are sort of like a necromancer / cleric.  All 3 of the spell casting classes of the Neg Wath faction are different types of Necromancers.  The Spirit Walkers only deal with spirits though.  They can forcibly bind spirits to allies and enemies.  So Spirit Walkers would naturally gravitate to the Howling Meadows due to the abundance of souls.  Since Spirit Walkers can use the binding of spirits to heal people(outside of combat), you’d think the Howling Meadows would be a sort of grand hospital rather than a place that causes people to grow sick and die.  Again, it’s a confusing and conflicted place.  It’s a bummer that it’s a level 5-10 zone and that players will zip through it so fast, but there’s lots of other really interesting zones I can’t wait for players to experience after that.

Which leads me to what I’m working on. So I've been the sole environmental texture artist on the team. Lately I've also been working on the particle system. It’s perhaps the only system in the game that we’re not going to be overhauling. Though, it was meant to give developers tons of flexibility.  And it does, though anything with lots of flexibility is never user friendly or simple.

I figured out how to get blood to squirt out of enemy’s necks when you decapitate them(not that we have decapitation working yet—but the blood spurts are).  And I got it to leave blood puddles on the ground afterwards.  Now that I finally have that working, I’m realizing I need to do blood puddles with decals rather than with particle effects.  Oops.  Still, it’s good I’m figuring out this stuff now.

Something a lot more embarrassing--all this time I’ve been creating ground texture normal maps that have been upside down.  “Flip Y and X” boxes are checked on by default in my Photoshop plugin.  Who am I to argue with NVidia who made the plugin?  Ok, so I figured that out and am in the process of redoing all the normals for ground textures.  Speaking of normal maps, I always though flat grass textures were impossible to look realistic.  But one thing I noticed in playing Skyrim, not only do the normal maps highlight each blade of grass, but they also add little blobs that make the ground look really clumpy.  I was pretty amazed at how well they could get a flat grass texture to look realistic.  So I might change my mind about grass textures.  How did they do such a great job with normal maps for grass and a terrible job on people’s faces?  I’m guessing their environmental artists are really good and their character artists suck.

A really big development that will happy soon, HeroEngine is getting SpeedTree 6, which will be awesome because the “tree asset system” is currently disabled.  Having to create assets for the Neg Wath who live in trees, without being able to use trees, has kind of sucked.  But once ST 6 is working, that will be awesome.

I’m really hoping in the next couple months, we’ll be able to start posting screen shots and game play footage.