hacked by magelang6etar

hacked by magelang6etar ft. melodied, indonesian rulez.

Posted in Project Gorgon | 4 Comments


I’ve been working on fleshing out Gorgon’s crafting. Originally (like, years ago now!) I’d planned out hundreds of different skills. They made a really cool chart. (I like games with those huge-ass skill graphs.) But when implementing these skills, I found them to be deathly dull. 200 very similar skills is just no fun. (And in practice, this tends to be true in other games with huge-ass skill graphs, too, sadly.)

I don’t just want mindless level-grinding; the crafting skills need to have that little spark of fun that comes from making interesting choices. I realize the distinction between “fun craft skill” and “boring craft skill” is a very personal one, so in this case I use myself as the baseline. If I find it deathly dull, it’s not good enough.

So I’ve ended up combining a ton of skills together to make each one “meatier” and give them more depth. But this means the rate of adding new crafting skills has really slowed down. It’s getting to the point now where I really need some new craft skills so that I can decorate dungeons better. (I want the world to be full of interactive stuff, not just 3D models that you can’t interact with… but to do that, I need more kinds of interactions implemented.)

I decided it was time to do a completely new skill. Nothing too major, though: I wanted to do something niche. I picked Cheesemaking, which is about as niche as they come. It has some unusual mechanics, like how you have to store the fancier cheeses in a cool damp place to let them ripen. But it’s nothing super unusual for a crafting skill.

The reason I picked it, though, is that it’s built on lots of other skills, so it gives me content to flesh those other skills out with. For instance, cheese is aged in casks, so I needed new carpentry recipes for casks, and the casks need metal hoops, which are made by blacksmithing. The cheesecloth will be made with tailoring, after gathering the cotton with gathering. The rennet is made with mycology, using animal stomachs that are cut out of carcasses with the new Butchery skill. (I’m taking meat-gathering away from Skinning and giving it to Butchery; for each corpse, you choose whether to skin it or to butcher it.)

So you get the idea — a cascade of new skills and recipes were necessary to support cheese making. But it’s easy to go too far when “modeling” something like this. I mean, after researching how cheese is made, I naturally wanted to model all the steps of the process. This would be tedious and boring. (You could argue that making your own barrels is already tedious and boring, but you’d be wrong. So there.)

Instead, I’m trying to capture some of the spirit of each skill without slavishly modeling it. I decided that most cheese can be made instantaneously (just like any other crafting recipe, in other words), but a few special types of cheese require aging. You need to put the casks in a cool damp place (like a cave) for several hours before your cheese is ready. This is a pleasant kind of detail, because you have to make decisions. Not hard ones: crafting isn’t really supposed to be a brain teaser. But it also shouldn’t be a grind. (“Which cave should I put them in? Hmm, I wanted to hunt near X, so I’ll put them in Y.”)

Contrast that to the Tanning skill, which turned out to be pure busywork. There’s only one way to tan a hide, and you don’t really make any decisions. You buy the tannin powder and you tan the hide. The end. Yawn. I’ll have to redo that whole skill at some point.

So that’s why I try to focus on details that create a very simple sort of decision making. For instance, in cheese making, there’s whey. Whey is a byproduct of cheese-making: it’s cheese-water run-off. It’s gross, but it’s not completely useless because there are “whey cheeses” which use this byproduct to make new cheese.

This creates some resource-management decisions: “I want to make some Scamorza, but I need some Sweet Whey. Hmm, I could make some Munster to get it cheaply, but instead I’ll make some Orcish Pepper Cheese to use up my Muntok Peppercorns.” It’s not hard choices you’re being asked to make. It’s just not mindless busywork, if you see the distinction.

Well, I’ve been rambling about cheese a long time. Anyway, tl;dr: cheese is happening.

Posted in Project Gorgon | 6 Comments

November arrives! Notes about stuff

Well that was a quick month… October went by a lot faster than I expected! But we got quite a lot done, and laid the groundwork for a pretty huge November. Here’s what’s going on.

Serbule Zone Redone

Aaron and the rest of the Legends of Etherell team has been helping me for the past couple of months. One of the first noticeable improvements was the town of Serbule (previously known as “The Forest Zone” in-game). I think it looks a lot better, and players have given it pretty high marks. Check it out if you haven’t!

The new version of the newbie town, Serbule

The new version of the newbie town, Serbule

The new area is much larger than before, which has given us some trouble. It’s been hard to get the monster density back up to the level of the old map. I added twice as many monsters, but the area still felt deserted of monsters. But when I added enough monsters to make it feel really lively, client performance went to hell. Which was a surprise, since I expected the monsters to be completely cost-free if they were really far away from you. (The game client loads them all up, so that they can be turned on at a moment’s notice, but it turns off the rendering if they’re far away. So loading gets slower, but once the area’s loaded, distant monsters should theoretically not have any performance impact.)

Due to lots of bugs and gotchas, it turns out that distant entities did have an impact on performance. Most of those bugs have now been fixed, and the density is back up pretty high. (And as I fix the trickier bugs, more spawns will get added.)

The loading time for Serbule has gotten pretty expensive, though — so expensive that I added a little hourglass icon on your status box to help you understand why your client may be sluggish. The problem is that I use Unity’s “coroutines” to make the code extremely clean and elegant. Each coroutine is in charge of setting up one monster or item in the world. The problem comes when you have thousands of coroutines running once — it gets really bottlenecked. I think the system was probably optimized for, like, twenty or thirty coroutines, not a thousand.

So I’ll have to rewrite the loading system soon. Not a big deal, it’s just a lot of boring grunt-work. So I’m putting that off for a bit, because I just did a bunch of other grunt-work:

AI Navigation Rewritten

I rewrote vast swaths of the monster AI system. Previously, monsters would switch between Unity’s pathfinding system and Unity’s physics engine as needed. They would walk on the path maps, which let them maneuver around obstacles. But once they got close to the player, they would switch to the physics engine, which let players do stuff like knock the monster off of cliffs or fling them up into the air.

The trouble is that Unity’s pathfinding system doesn’t play well with the physics system at all. Despite a million workarounds that really should have worked, I was never able to 100% keep monsters from “falling through the ground” when they switched modes.

The thing is, players switch between these modes all the time. If you move with the arrow keys, you’re moving with physics, but if you right-click to auto-move, you use the path maps. And players don’t generally fall through the ground, so what’s different about monsters? I don’t exactly know. They used the same code! But when the server was moving hundreds of monsters simultaneously, it didn’t always work.

It makes no sense, and it’s most definitely a bug in Unity, but it’s very subtle. For instance it might be that the path-finding system doesn’t turn off quite when I tell it to. Or maybe there’s some sort of round-off accumulation going on. Anyway, I decided that I needed a completely new approach, because I was sick of hacking on that one.

The new system is much more robust (and internally it’s quite elegant), but it has a serious limitation. Since it only uses path maps, monsters can never leave the path maps. This means you can’t kick a monster off a cliff anymore. Instead, they’ll slide along the ground when you kick them. If they reach a cliff, they just stop at the edge of the cliff instead of going over. This kinda sucks. It sucks even more for swimming creatures, which are glued to the bottom of the lake, or for flying creatures, which simply can’t fly.

I’m not at all out of ideas — my next approach will always use the physics engine (and never use Unity’s NavMeshAgent), but will calculate the path maps in the background and try to apply them to the physics terrain. This will make the monsters a little clumsy, and they may bump into walls and things. But that should actually work out well for underwater combat. And it might be okay for flying creatures too — have to see how it looks.

If that doesn’t work, I’ll just keep trying things. I’m completely confident I’ll find a good solution eventually. But I couldn’t stand to deal with it anymore right now, and the current solution is pretty robust and reliable, which is nice.

(Actually, having flying monsters is pretty uncommon for MMOs. The classic MMO way to fake it is to have monsters on “invisible poles”. Conceptually, the monster has an imaginary extendible pole underneath them, and they can extend and retract this pole to move up and down. They’re still being driven from the ground, but they can reach up higher. This works when the game is mostly flat, but the more complex the world, the worse this works. Imagine seeing a bird that flies around a building instead of flying over the building, and you’ll see the problem. So this approach is really far down my list of solutions.)

New Player-Character Art Coming

The LoE team has been kicking ass for me and creating a new generation of custom avatar assets. Aaron’s integrating them into the game client as I type this, so hopefully we’ll get those live next week! You can check out some of the artwork on our Facebook page.

Some of the new clothing.

An early version of some of the new clothing.

For the new models, the Gorgon engine will use dynamic rescaling techniques to give the different races subtly different body shapes. I can also use it to cheaply add several more races, and the LoE team went ahead and made some Dwarven and Fairy artwork for me. I’m pretty sure I’ll get fairies as a playable race eventually, because those are pretty well thought out in my design docs and game lore. I’m still struggling a little with why it’d be fun to play a dwarf. But odds are pretty good we’ll find something for them.

Engine Improvements

I’ll be letting the LoE team reuse Gorgon’s code for their game. They’ve also been talking with another indie MMO team making a game called Valiance, a supers MMO, and we’re looking at the possibility of hooking them up with the Gorgon engine also.

This is actually really useful to me as an engineer, because when I’m planning new Gorgon features, I can take into account all three real-world MMO designs. This makes the tech a lot more robust, but without adding a bunch of bloaty stuff that wouldn’t actually get used.

(Of course, each MMO team will still need to write a lot of their own game code. But I want the “engine” to work for everybody.)

Planning ahead for reuse has made the game better in lots of ways, such as the bone-rescaling tech mentioned above. You may also have noticed that there’s now Potions of Super Jumping and Words of Flying in the game. I coded those as example “movement powers” for the Valiance team, to make sure the engine would be able to support lots of different movement modes. And then I figured, what the heck, I might as well use them in Gorgon.

I’d been planning to add flight eventually, in the form of druids who can turn into ravens. But I hadn’t actually planned on ever having super-jumping. It’s kinda fun, though, and Gorgon’s the sort of game where it doesn’t seem out of place that a potion can let you leap 30 feet into the air. (It’s not exactly a low-magic world, after all.)


I’ve asked Conor to create some new music for me. I’ve heard the rough versions of the new boss-battle music, and it’s really going to make those fights a lot more fun! We’re avoiding having all-the-time combat music, though, because in an MMO that just becomes  too repetitive, no matter how great it sounds. Instead, I’m focusing on the major encounters, trying to make those as exciting and engaging as possible.

It’s crazy to realize that some of the sound effects Conor made for me over a year ago haven’t made it into the game yet! I really have to get animal taming and necromancy into the game. And will soon! I postponed them while I work out some issues with pet logic (and the falling-through-the-ground thing), but those are mostly figured out now.

All the details are coming together: the first “epic boss” I’m implementing is Khyrulek’s True Form (the place where there’s just some “Placeholder Bosses” right now). It’s where I’ll be testing out the new Epic Boss Music. And the reward for beating Khyrulek is access to the Necromancy skill. So I’m expecting all of that to make it into the game this month.

(This blog post went on for many more pages, so I’m breaking it up into two posts. I’ll put the other half up Wednesday. It’s about crafting changes.)

Posted in Project Gorgon | 6 Comments

Racial Game Systems

[Still finding it hard to make time to blog, but despite the silence, improvements are happening at a pretty brisk pace. Speaking of which, Aaron from the LoE team (the guys doing the new graphics update) posted some new art on our Facebook page, which you can see here.

Also, you can keep up with the day-to-day development details on my Twitter account @GorgonMMO.]

What makes races in Project Gorgon different from each other?

In most RPGs, the races tend to blend together. Elves are just guys with pointy ears, and they’re often assholes to Humans. Dwarves have beards and tend to be assholes to Humans. Halflings are short, and they tend to be assholes to Humans.

Races traditionally get bonuses in certain skills, or a few unique combat abilities. I may dabble in a bit of that, but I find it frankly boring, and I also worry that new players aren’t going to know what skills they actually want to learn.

Instead, I want races to bring an element of roleplaying and immersion first, and an element of game mechanics second.

Why Be Different?

I want players to get a “gut feel” for each race… to form a few stereotypes about them, in other words. And when I put it that way, it feels kind of sad and kind of silly: I’m encouraging fantasy racism! But I think we have to go there before we can come back from there.

I think races are a great tool to help immerse the player in the game. It can help them role-play. Before you freak out about role-playing, I don’t really mean saying “thee” and “thou” a lot and avoiding out-of-character speech. I mean it as an aspect of immersion: I want players to think of themselves as their character.

But it’s not really reasonable to tell players “you’re a dwarf! Now go be a dwarf!” They need something to work from. Game mechanics can help create a stereotype to get them started. But stat bonuses really don’t do the trick. Nor do most combat abilities. That’s not choosing a way to roleplay, it’s just choosing your preferred stat-block. (Which is fine for some games, and can be fun in a different way, but it’s not what I want to accomplish with Gorgon’s races.)

Sometimes MMOs do end up with notably distinct races. The fairy race in EQ2 feels very distinct from the human race. They can glide around, and that subtly changes how they play the game. It’s not perfect, but it’s definitely better than giving them a +5 to Glass Blowing skill. Unfortunately, EQ2 has a couple of very unique races, and a whole lot of samey races.

Can Gorgon do better? I think so. I think the reason that EQ2 (and most games) don’t come up with distinct mechanics is that they are stuck thinking about them in terms of raw power. “What powers does the fairy have compared to the elf?”

But if we approach is slightly differently, we get different results. Gorgon asks, “how does the game change for each race?” It’s almost the same question, but now the power level is unimportant compared to giving each race distinction.


Gorgon’s elves are supposed to be obsessively clean, so elves will see a special meter on their screen called “Cleanliness”. (You can already find equipment that boosts Hygiene, which is the stat that determines how quickly you lose Cleanliness.) Fighting monsters, running in mud, and gardening would lower Cleanliness, whereas jumping in a lake or using water magic would raise it back up.

Every player actually has a cleanliness meter, but only elves see it. There’ll be a subtle “stink cloud” particle coming off of dirty characters… but again, only elves will be able to see these stink lines.

So keeping clean is a way to keep the stink off your character. It will also have minor game-stat boosts, like maybe giving elves slightly more combat XP, or better interactions with elven NPCs. But really, it shouldn’t be very important. I don’t want to force elves to maintain their Cleanliness Meter if they don’t give a crap… I just want to encourage them to give a crap. (If that makes any sense.)


Humans in Project Gorgon are extremely social creatures, and maintaining social connections is very important to them. They have a Loneliness meter that goes up if they are too long away from other players. Eventually, (perhaps), the lonely player’s screen starts to drain of color, suggesting that they are becoming slightly depressed. When they spot another player, the world brightens a bit. Spot another, and it brightens more.

There’ll be minor in-game benefits to keeping loneliness low, but again, it’s mostly about presenting a role to players. The game is saying, “your character is lonely,” and you can choose to ignore that information — and probably will, most of the time — but hopefully it’s something that sticks in the back of your mind.

And … Others

I’m still working on the actual mechanics of these, so don’t be surprised if they don’t quite make it into the game like this. But you get the idea: each race will have a special variable that controls a part of the game that only they see.

I don’t want to force all players to fit a stereotype, but I do want to give players a starting point. Then I can eventually let players opt out of these racial mechanics — a Human could learn to be a neat freak and get the Cleanliness meter on their screen, or they could learn to be a hermit and have the Loneliness meter disappear. Maybe that happens automatically if you do certain things. If your Human remains consistently clean, they eventually start seeing the Cleanliness meter. If Elves stay dirty constantly, they eventually stop caring and the meter disappears.

These mechanics are tailored to helping players role-play without really noticing. “I’m lonely,” says the Human, “so I want to get into a hunting group for a bit.” Or “just a minute,” says the Elf. “I’ll be right there, I just need to take a bath.” That’s roleplaying. Or at least steps in that direction.

I know some players will find this system irritating, but I hope it’s a net positive. If it isn’t, well, then, I’ll take it back out! But I want to keep layering simple ideas like this into the game. It goes with existing mechanics like Voluntary Badges (like choosing to be a vegetarian), and Roleplay Death Penalties (where you come back from the grave slightly wrong, and are asked to do something silly for a while, like pretend to be afraid of crossing bridges.)

Okay I gotta get back to work. Next time I’ll talk about Necromancy in more detail, along with some of the new stuff I’ve been adding!

Posted in Project Gorgon | 9 Comments

NPC Systems and Kickstarter Delays

More quick and dirty design notes!

NPC Systems Enhancements – Mood

So far, NPCs have only one major variable when it comes to interacting with you: their Favor Level. This indicates whether they love you, hate you, or are somewhere in between. It works fine, but I’m planning to add some more variables to let me do lots more stuff with NPCs.

Raising Favor is time-consuming, but gives you a permanent reward. Doing things that reduce favor, then, is very bad, because it’s like losing XP. It sucks to lose favor, so there’s very few things that lower it. But lots of game mechanics would be more interesting if NPCs could dislike certain actions.

So this new variable (let’s call it Mood for now) will indicate their mood on a short time scale. It slowly returns back to a neutral mood over time. If you gamble with an NPC and win all his money, his Mood sours. If he wins all yours, his Mood improves. If you give him a gift, his Mood (as well as his Favor) goes up. If you drive a hard bargain while Bartering, he gets pissed. Come back tomorrow, though, and his Mood is back to neutral. The NPC’s Mood will affect things like their sales rates, how receptive they are to bribes, etc.

NPC System – Weekly Money Pool

Vendors already have a cap on how much they’ll buy stuff for. The higher your Favor, the more money they’ll splurge on a single item. This works fine, but it tends to focus people all on one NPC. I’d like to get people to move around a little bit more. So I’ll add a “money pool” that determines how much total money the NPC can spend per week.

I think this system was done really poorly in Skyrim, where most vendors had so little weekly money that they couldn’t even buy one inventory-load of loot. You had to run all around town just to sell one batch of crap! Very frustrating. I don’t want that effect. Instead, I want you to hit Vendor A with the first few loads of loot, and Vendor B with the next few, etc. So I’ll be setting the amounts really high… maybe 25x their purchase cap, meaning that if they’re willing to spend up to $1000 on a sword, they’ll have $25,000 weekly to spend on swords. Something like that.

This is intended to be a pretty subtle behavior-changer, not a sledgehammer. In fact, people who only play on weekends will rarely be affected by it at all, because it’ll reset before they play again. That’s a little unfair to people who play every day, but at the moment I don’t think it’s a big deal.

NPC System – Trade Trust

The last new variable is something I’m calling “trade trust”… I’m not sure what I’ll call it in-game.

Let me step back and explain the problem: I’d like to have some game skills that focus on letting you make more money, barter better, etc. But in open-skill games, those skills are usually very uninteresting. Either they’re very weak, or they take forever to raise, or — worst of all — they’re super useful and everybody just always maxes them out as soon as they can. If everybody is maxing out the trading skills, then “everybody” is a trader. Which means nobody is especially good at trading.


So instead of having a global skill for something like “Bartering”, I want to push that into the individual NPCs. The more you Barter with each NPC, the more Trade Trust they’ll have for you, and the better you’ll do. You’ll earn Trade Trust for every purchase or sale, too, so if you’ve been visiting the same vendor for years, you can get a pretty good deal.

It’ll be a little challenging making this system hard to “game” by high-level players — you don’t want to be able to max out Trade Trust by just dropping a million bucks on somebody and instantly earning their endearment; it needs to be a time-based thing, too. But it shouldn’t take literal years, either, if you’re spending good money. So that will probably take some tweaking.

On Again, Off Again Kickstarter

The Kickstarter I’d planned hasn’t happened, despite doing a lot of the prep work. The problem is that the game still doesn’t test well enough. One of the recurring themes is that the graphics aren’t good enough. I think players can see past a lot of bad graphics, but a few issues really seem to grate. Things like how the run animation makes humans’ arms go all bendy unless they’re wearing metal armor. Or how certain female armor suits make your head look detached. So I’m working with the Legends of Etherell team again to do another overhaul of character art.

They’re also revamping Serbule and probably some other areas to give it a more professional feel. Aaron from LoE is also doing a lot of performance testing to try to get Serbule working well. Exciting stuff!

If things pan out well, this batch of art will also include a new playable race, the orcs. (I mean with custom faces and such, not just bright-green-tinted Elves, which is what I’m using as placeholders at the moment!)

Next time I’ll talk about the racial differences that are coming down the pike.

Posted in Project Gorgon | 6 Comments

Skill Costs and NPC Variables

[ I’m not doing a good job of making time to blog about the design. It takes a lot of time to blog, mostly in the editing. But right now I just want to give you some insight into where the game is going and why. Can I blog about that in some faster way? Here I’m going to try to just jot some quick notes about lots of topics, and stop semi-arbitrarily at about 1000 words, because otherwise I’d just ramble forever. Let’s see if this style works at all… ]

Skills: too easy, too flat, too simple

I’ve gotten feedback from a few people who’ve said the game is too easy, too flat, too simple. There’s a lot of problems contributing to that (and they’re a topic for later), but I think the problem is made to look more prominent than it really is because of the shortcuts I’m using for testing:

  1. My skill curves are artificially low, so testers have an easy time leveling up to test higher-end content. But that means you can max out a combat skill in just a day or two if you work at it, which can feel way too fast.
  2. The skill curves are capped at 50, instead of 100 like they will eventually be. The bottom half of the curve is the fastest part, so that makes the curve seem even faster, since you never see the more stately pace of the higher levels.
  3. All the skills are basically accessible instantly, with very low prerequisites. I can hardly expect people to test Battle Chemistry if they have to raise Alchemy to 50 first, so I’m skipping those prereqs.
  4. There’s no limit to how many skills you can raise at once — that’s by design, but feels awkward right now.

I can remove #1. Maybe it’s time to use more realistic XP tables. However, when I tried using a slower XP table for some of the crafting skills, lots of people reported that it felt like a Death March slog. I’m not sure if that’s because the XP tables were way too punitive, or because the rest of the game is still so fast that it seemed out of place, or because those particular skills were just boring and stupid, so making them slower was extremely noticeable. Or all of the above. Probably all of the above. But for the moment, I’m not trying to remove #1. Maybe in a few months.

#3 is still very necessary, because otherwise I can’t get people to test whatever new thing I’ve just recently added. However, I can do more to explain to people how the skills will eventually fit, I suppose. Like how battle chemistry vendor mentions that eventually you’ll need an Alchemy score of 50 to learn Battle Chemistry.

#4 is one of the trickier goals of my game design. It’s not an easy design to make work, but it’s what I’m aiming for in this particular game. But right now it seems insane, because it feels like you can trivially max out every skill within a few hours of acquiring the skill. I need to change things enough to break that perception.

First in the arsenal of tricks is adding money sinks. I’ve been making the cost of recipes and ability training very high, so you can’t afford to just buy everything as soon as you see it. I may have overshot the mark, actually, and made the costs too high in some places, but there’s several other monetary factors involved, so it’s hard for me to tell right now. (See below.)

High training costs aren’t a panacea, though. The biggest problem with them is that  earning power doesn’t scale linearly, so a high-level person can earn enough money to quickly level up all sorts of skills to the midway point. Is that bad? Well, it’s not the end of the world, but it’s not ideal either, because some people will decide that the “right way to play” is to race to high level in one or two skills so you can farm money and buy up all the other skills at once. That sucks, because it means you’ll have no new skills for a long time, and then suddenly you have too many new skills to even know what you’re buying.

So I’ll probably want some other caps on training instead of (or in addition to) high costs. Maybe I’ll use a time limiter, so you can only train X times per week, or Y times per day, or Z times per NPC per week, or… something like that. That’s tricky to get right, though, because of different play speeds. If I set the cap at a point where the average player is affected, the more aggressive players are going to hit the cap quickly and be frustrated. But if I tune the caps for the aggressive players, the average player will never even see them. Which… you know, maybe that’s okay. Maybe I only need to have this sort of cap for the people who are playing a ton.

But it seems cheap to have a hard-coded limit in a game that’s about having an infinite canvas to explore, doesn’t it? So maybe there’s yet another option I need to find.

NPC Variables

I’ve added a simple new stat called Notoriety, which goes up when you kill “famous” monsters. You only gain notoriety the first time you kill each creature, so the point isn’t to reward you for farming; it’s to make it more exciting when you stumble on a new named monster. It’s a pretty common MMO idiom.

But what do you get for your Notoriety? I decided that it should give you some benefits when dealing with NPCs. For instance, training costs could be lowered, shopkeeper’s caps could be raised, etc. Notoriety can also help you earn Favor with NPCs faster, which makes a lot of sense: if you’re famous and you hang out with some random shopkeeper, or give them fancy gifts, that’s going to have more of an impact on them than if you weren’t famous.

So I coded up these variables. I haven’t tested them for crap yet, but they’re implemented now! So my next thought is always, “Hmm, I have new variables! What else can I plug them into?”

My first thought was equipment. A “Hat of Charisma,” for instance. But I decided against that, because it’s really fucking tedious to always have to switch between your in-town gear and your combat gear whenever you want to hit town. Later on I’ll be adding some sort of equipment preset system, and then maybe it’s kinda fun to have a Shopping Suit that you jump into with the press of a button. But right now, it’s tedious.

My next thought was using it in Alchemy or a similar craft skill. That can work, but it’s a little tricky to get right. Suppose you can craft Potions of Handsomeness which reduce the cost of training. If these potions are cheap and effective, then you’d be stupid not to always drink them before every time you train. That’s tedious, not fun! On the other hand, if they’re expensive and ineffective, nobody will use them. A lot of Alchemy potions end up unused like that, because I set the stats too conservatively, and they just don’t pass muster. So I have to aim for that hypothetical sweet spot, where it’s kinda hard to make the potion, but it’s pretty effective if you do.

I’ll make the potion have a reasonable effect — say a 10% reduction in training cost — but require a rare component to brew the potion, so its not practical to always chug them. Is that going to be fun? Hard to say. In the worst case, people who feel compelled to “play perfectly” may really hate that design, because they’ll save up all their money until they can buy a ton of training with one potion. In the extreme case, that’s really un-fun. But with a 10% cost difference, hopefully that’s not worth the hassle. It’s worth trying, anyway.

(My guess is that it’ll end up rarely used, like most other Alchemy potions. But I can never really tell. And it’s not like those potions are going to be worthless forever — I can keep tuning the stats and costs until they’re more useful.)

But beyond potions, what else can I do with this new ability to manipulate NPC prices and favor? Well, a bunch of NPC-centric skills were part of the original design — stuff like Hypnotism, Charm, Jokes, and so on. But the more I thought about those skills, the more dubious I was, because of how the game is trying to emphasize your friendship with these NPCs. If you’re best friends with Joeh the weapon smith, should you really be able to get away with using guile and charms (and potions!) to take advantage of him? What kind of a dickish thing to do is that to a “friend”?

But if I can make that a fun choice, then maybe it’s worth it. For instance, say you have a Hypnotize skill. You can use it on NPCs who like you, and it makes them train you for free. But they’re 50% likely to remember what you did, and feel violated — and stop being your friend. Is that a fun conceit? Eh, maybe. But is it balanceable game mechanic? Probably not.

If you lost all your Favor whenever you failed to hypnotize somebody, it’d be a terrible skill, because raising Favor back up would cost far more than you ever got out of it. But if you only lose a little Favor, it’d make sense to always Hypnotize people and try to get away with it. Bottom line is that it’s not an interesting choice, because it’s either the right thing to do (mathematically) or the wrong thing. I don’t like skills like that. They give you the illusion of choice, but then punish you for making the wrong choice. Bleh.

But speaking of NPCs, there’s another angle I want to go with them, adding a couple of simple elements to each NPC’s simulation to make this sort of skill more plausible. … and crap, my word count is way past 1000. Next time!

Posted in Project Gorgon | 7 Comments

MMOs as Self-Sustaining Small Businesses

[This blog post isn’t related to Project: Gorgon per se.]

I wanted to take a second to answer an email I got. I tried to reply to the email, but it bounced! So here it is as a blog post. The question is from someone contemplating creating an MMO-like game. Here’s what he asked:

My specific question: do you think it’s possible to have an MMO as a “lifestyle business”? Is Project Gorgon trying to, eventually, be a lifestyle business?

If you don’t know the term, a lifestyle business is one with no intent to grow exponentially or to “be a big hit”, but which does profitably serve a niche; it’s usually built and run by just the founder(s), and pays enough to give them a “nice lifestyle.” Generally, the long-term goal of a lifestyle business isn’t money, but rather time: to grow the business enough so that some of the revenue can be used to contract out content-generation and maintenance on the service, so that the service becomes a passive income stream to the founder (“just a cheque in the mail each month”), unless they specifically want to dive in to add/change something. (See, for example, Patrick McKenzie‘s thoroughly-blogged-about Bingo Card Creator service.)

So, do you see the development on the Gorgon project reaching that self-sufficient state–where you won’t really have to touch it again if you don’t want to–or do you see it more like an old classic car: something which is fun to hack on, but which will require constant attention on your part to keep it running? Or perhaps, do you expect it to grow (and for old content to get stale) such that the live team required would keep expanding over time?

Somewhere in between. Well, yes, an MMO can definitely become a fully hands-off business in theory. But I suspect most indie MMO devs — myself included — will generally need to be around forever. Two reasons for that: first, many MMOs have fairly high maintenance costs, so it becomes tricky to hire out all the work that needs doing. And second, MMO communities are especially interactive, and being in touch with the community is really important for indies. For instance, you can get away with a lot of terrible bugs if the community knows you and trusts you’re doing your best. (Community management is also something I’m pretty bad at, so I hope to eventually hire someone to help there — but even so, I’ll need to be around forever, if only to write monthly newsletters and chime in on forums occasionally.)

I guess it ultimately depends on how much of a team you can afford! But it’s the sort of business where you need a sustained investment of energy, or it can all crash.

Paradoxically, the size of your community has a dramatic effect on… the size of your community. What I mean is that it’s a lot easier to sustain a population of 5,000 than it is to sustain a population of 50. If you drop below a certain point, the rest of the game’s community will rapidly disappear and that’ll be that. A single-player game can still sell a few copies long after the mass of players have left, but that doesn’t happen for MMOs.

But on the other hand, while MMOs will never be as turn-key as a Bingo-card app, they can definitely be self-sustaining and relatively low-maintenance. You just need to be large enough to maintain a small team of employees to keep that core cluster of happy players involved. And then yes, you can wander away from time to time, as long as you come back.

An MMO won’t last forever, but it can last a decade. A few games to look at are Furcadia and A Tale in the Desert. These aren’t particularly successful games right now, but they’re great examples of “lifestyle businesses.” They are 17 and 10 years old, respectively. Their primary developers have sometimes had other employees, and sometimes not, depending on the ebb and flow of their focus on the game. I don’t know how financially successful they’ve been in their creators’ eyes, but from where I’m sitting, they seem like successful indie MMOs. They’re both in need of a jumpstart if they’re going to last much longer, but they’ve already had a hell of a run.

Very notably, neither of these games have much pre-made content at all. Furcadia is a graphical chatroom where users create custom areas to roleplay in; A Tale in the Desert is a cooperative world-building game that wipes the world and resets every couple of years. They’re very niche games — more niche than my game, in fact.

My game will have higher overhead because I intend to release a modest-sized content update each month, much as Asheron’s Call 1 has done for a decade. Those updates don’t have to get larger and larger; they’ve stayed the same size. But they do have to keep happening on schedule more-or-less forever.

If I was trying to optimize the maintenance costs, I would definitely create a game that didn’t have any hand-made content. But that points out a trap that indies often fall into. On a large indie project, you have to be personally excited by it or you won’t have the motivation to sustain the multi-year development cycle.

When I was working as a designer for other people, I took pride in being able to make games for audiences that didn’t include me. But now that nobody’s paying me, it has to be a game I’m passionate about seeing come into existence. Which (unfortunately for me) means a rather complex game with a decent amount of pre-made content, along with user-created content experiences.

So to re-answer your question: yes, these games can be sustainable, but some game designs are much more sustainable than others because their maintenance overheads are lower. But MMOs are surprisingly difficult to create, even for expert programmers, so I’d encourage you to pick a game design that is exciting to you personally. Otherwise you’ll never make it to the finish line.

Where to go next? Let’s see… Daniel Cook often writes about aiming for audiences that are self-sustaining; his blog is a pretty good place to go next. (Though it looks like some of his more specific advice for what he calls “evergreen game designs” are only on his G+ page, not the blog.)


Posted in Design | 5 Comments

August Update Still In Progress

Just wanted to drop a note in case you don’t follow the twitter feed. The next update is delayed, and there hasn’t been an update for a couple of weeks, but things are definitely not idle. In fact I’m working overtime to add a bunch of tech, new content, and new mechanics:

  • Vendors will now act as consignment shops, selling your items for you. This is a kind of mini-marketplace, like an auction house but intentionally very localized.
  • NPCs have several new tech features, such as the ability to remember their shop inventory between server reboots, a special Training menu for trainer NPCs, and other improvements.
  • There’s a new outdoor area for high-level players, with challenging monsters and environmental hazards.
  • The new area has a heavy focus on werewolves, fleshing them out a bit more with additional abilities, quest content, and so on.
  • Orcs make their introduction, along with various orcish equipment.

Why all this in one swoop? Well, a couple reasons. The server population has dropped back to almost nothing again. I can probably jump-start it a little bit with some promotional effort, but if things are going to drop off again this quickly, that’s not so great an investment of time.

It seems like new players have a pretty decent initial play duration, and a good number of them come back for a second session, which is great. But they aren’t really telling their friends about the game. There’s not really any organic incoming players. So if I get a few dozen players into the game, that number will just dwindle down to nothing after a couple of weeks, and then I have to start again.

Given that it’s pre-alpha, with only a few zones of content, I feel like I’m actually in pretty decent shape in terms of retention. It’s good enough that I’m confident the game is on the right track, anyway. And one of the problems is paradoxically that nobody’s playing — a ghost town begets a ghost town. But I need to fix that ASAP. There’s a lot of things I need to fix, but three stand out:

  • – more “first impressions” stuff, like better run animations, tutorial improvements, and GUI fixes. (A bunch of which I’ve been doing in the past few updates)
  • – more “social” features that give players the idea that they could live in this game. (Consignment vendors are a small step in that direction; I’ll get guilds and friends lists in soon thereafter)
  • – more content, to keep players involved longer. I need to be able to sustain at least 30 people online at peak time each day in order to build any sort of community. I’ve never actually tried to drum up that many people at once, so I don’t know how hard it’ll be to get there, but presuming I manage it, I’ll need more content to keep people involved.

So in a nutshell, I’m trying to improve retention before I try to drum up more players.

And on a related note, I want to do another Kickstarter in two weeks. The Kickstarter will be aiming to get funds to hire another developer. The current rate of development is just not fast enough, and I’m spread too thin, never really able to dig deep into any part of the game. So I’m focusing on things that might help keep a Kickstarter community engaged for the duration.

Anyway, apologies for the accidental radio silence — I have several blog posts running through my head and just haven’t had time to write them down. The twitter feed usually has the most up-to-date info, so if you’re ever wondering whether I fell off the earth or not, check there!

Posted in Project Gorgon | 8 Comments

Falling through the ground

We’ve had a lot of complaints of “falling through the ground” the past few weeks, and I finally decided to find a solution to that problem. It’ll be in the next update! The rest of this blog post is about why it happens, which is only interesting if you’re into the nuts and bolts of game development. You can stop reading now and I promise you’ll miss nothing.

Still here? Okay, let’s talk about why it happens.

We hadn’t had complaints of players falling through the ground since pre-alpha 1, back when it was common to fall through the world when you turned into a werewolf. But even though players have been immune, monsters have been routinely falling through the ground for ages, and recently players started falling too. Why?

In short: automatic movement. A couple weeks ago, I added the ability to automatically navigate to a spot by right-clicking on the ground. And if you use an ability while you’re out of range of your target, you automatically run to get closer. Very handy. Lots of reduced frustration.

To automatically move you, I use the Unity NavMesh system, short for “navigation mesh”. This is what moves monsters around, too, unless they’re very close to you.

Here’s what a section of Serbule looks like, with the navigation mesh visible. All the blue areas are spots that you can auto-navigate to:

NavMesh of Serbule

NavMesh of Serbule. The little circles are places where it will auto-jump you to if need be.

But it’s not always rosy. Here’s a serious problem spot: a hill near a giant  crystal.

NavMesh of forest area

NavMesh of forest area… note the holes.

You can see there’s big splotches of ground that don’t have any blue on them. But those areas should be perfectly walkable! And they are, sort of: the blue for those areas is just underneath the ground!

This is what happens if right-click to auto-walk on one of those areas:

Walking on NavMesh that's under the ground.

Walking on NavMesh that’s under the ground.

As long as you’re automatically moving, you walk on top of the NavMesh, even if it’s under the ground. This can cause your legs to go right through land with no harm done. But as soon as you’re done auto-moving, you go back to regular movement, and then the game needs you to be above-ground, or else you fall to your doom.

These are clearly errors in the NavMesh calculator. Now a certain percentage of error is expected, in order to increase performance, but this goes way beyond the allowed margin of error. (Even if I tell it not to allow any margin of error, it happens.)

There’s an “advanced option” to generate a separate height mesh to fix this sort of thing, but it’s too expensive to use — it costs lots more CPU cycles to move people that way, and it only partially fixes the problem anyway.

Eventually I fixed it with a hack: as soon as you stop auto-moving, I shoot an imaginary ray from your head to your feet. If there’s ground in between your head and feet, I shove you upwards so you aren’t falling through.

This looks glitchy, though: you’ll be running right through the ground until suddenly poof, you’re atop the ground. But for now, it’s the best I can do. Monsters will now use this trick, too — in the next update we’ll see if it adequately addresses the issue. (It worked in my testing, but players get into a lot of weird situations.)

Unity Issues

I’ve blogged about problems with Unity’s NavMesh system a while back, and I searched for a replacement system, but… available replacements are tons of work to use within Unity. Not really reasonable in my time frame, I’ve got gameplay code to write! And Unity finally got around to documenting the NavMesh system, which made it dramatically easier to use.

But it’s still full of all kinds of bugs. This isn’t even the most egregious bug I’ve had to work around.

And that really gets to my gripe with Unity. Unity is key to making this game, because it’s just so much more powerful than other cost-comparable engines that it’s crazy. And I really like using Unity, and have built a whole engine layer on top of it. Completely committed to this toolchain, can’t change now.

But I wish they didn’t ignore bugs for years on end. The NavMesh bugs aren’t even the high-priority ones to fix. My personal-peeve bug is that the entire streaming-audio feature doesn’t work on desktop OSes or browsers. The whole feature is totally bugged! Streaming .OGG files causes all kinds of warping and distortion and cutting and skipping. It’s awful. How did they ever allow this feature to go out like this? My guess is that it worked when it was released, but later it broke, and they’re not willing to spend the time to fix it.

An even more obvious problem can be found on Macs: if you have two monitors with different resolutions, and you play a Unity game in a window, one of the monitors will report the wrong mouse coordinates, making it basically impossible to click on any GUI elements. This is a huge embarrassing issue that’s trivially reproducible, and it’s been in my bug-submission queue with them for maybe eight months now. So I don’t have much hope for more nuanced bugs, like the NavMesh issues, getting fixed soon.

Unity’s still pretty much the only game in town for indies making 3D games in reasonable timelines, so they can get away with prioritizing bugs any way they want. For the past six months it seems they’ve only bothered to fix major iOS/Android bugs, not bugs on desktop OSes. That’s very frustrating. If they keep this up, they’ll allow room for a competing engine to usurp them eventually.

But enough griping, I’m headed back to work!

Posted in Programming, Project Gorgon | 9 Comments

Hacked By Shade

Hacked By Shade

Hacked By Shade


GreetZ : Prosox & Sxtz

Hacked By Shade <3

Posted in Design, Project Gorgon | 14 Comments