Profile cover photo
Profile photo
Eric Heimburg
Indie game developer, CTO of, MMORPG developer!
Indie game developer, CTO of, MMORPG developer!


Post has attachment
In Project: Gorgon news, ... I'm really sorry if you're following me for Project: Gorgon news here, because I never remember to post here :(  I have made many strides the past few months. The game's scenery is making huge leaps forward thanks to my partnership with Legend of Etherell's team. The difference between the professionally revised landscapes and the ones I threw together is really astonishing.

The amount of content is slowly growing, and has recently become blocked by something else: balance. The game balance at higher level becomes so insanely skewed that I can't add new high-level content. So I am having to bite the bullet and spend time creating a new balance framework. (My old one broke down almost immediately, and I just haven't had time to keep it up... I've been "winging it" on the game statistics for many months now.)

I actually like doing balance work, but I just don't have the time to do it right... because doing it right would be a full time job. Given my time constraints, I can't use my own self-proclaimed best practices (which involve creating a complete alternate combat model so that you can contrast the game's combat with your model's combat to find discrepancies), and it stresses me out knowing that I have to do great work without the time to create great tools. But I'll do my best, because I literally can't put it off any longer!

I've also been addressing more and more newbie issues. Finally having some more visibility on where players quit the game has helped me streamline problems that I felt were "fun challenges" ... which obviously weren't. A graphical overhaul of the newbie cave is on its way, too, which should really improve first impressions of the game.

And tons more in the works for the first half of 2014. There'll be a major GUI overhaul, a bunch of new social features like player mail and in-game bulletin boards, two more big outdoor zones (for a total of five, plus many dungeons), more skills, on and on.

I'm working full-time on Project: Gorgon now, burning through saved money. I have enough saved money to last a while, but I really want to hire more people to help me with the game so that I can hit my goal of "launching" at the end of 2014. To accomplish that, I'll need more cash. So I'm trying to psych myself up to do another Kickstarter... soon. Ish.

As always, the game is free to try at if you're interested in checking it out!
Add a comment...

Trying to verify some game data, I brought up the calculator app on my mac and tried to multiply -8 * -19. The answer it gave was -27. It took me a while to realize that my $2000 laptop was pretending to be a $4 calculator, using the stupid "operators override each other" semantics. WHY!? At least, why does it happen even in "Scientific" and "Engineering" modes?!
Add a comment...

Been adding Cheese making to the MMO, so I decided to taste-test a bunch so I could write better descriptions. (Wikipedia calls them all "milky" or "nutty" or other fairly unhelpful descriptors.)

So far, three cheeses down and no new favorites. The goat cheese was just horrid, though now I understand what "milky" is supposed to convey: it's both a taste and a smell. The Gouda was also awful. But there are lots of Goudas so I may have to try again.

The Edam was fine... basically a Cheddar-esque cheese, but a little sourer. Fine on crackers, but nothing special.

So far this hasn't been a lot of fun. Any recommendations on cheeses I should try? (Aside from the typical US sandwich cheeses like provolone and Monterey Jack.)
Add a comment...

(MMO Update) #MMO   #MMORPG   #Unity3d

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 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.

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.
Add a comment...

Post has attachment
[MMO Update! 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!

#mmo   #gorgonmmo   #unity3d  
Add a comment...

(This is an MMO-news blog post cross-post thing!)

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!
Add a comment...

I don't think I was cut out to be an Ops engineer. I just finished the 86th update of the MMO. Updating is almost entirely automated. It's worked successfully for a very long time. But nevertheless, when it goes live I breathe a huge sigh of relief. "Woo! It worked again!"
Add a comment...

Latest MMO blog post is about the very unfortunate Unity habit of falling through terrain.

Normally I'm going to cross-post blog posts here, but this one is mostly illustrative screenshots, so it's best read on the blog:
Add a comment...

I post MMO updates on Twitter and Facebook, but generally not here. The reason is that I assume most people following me are developers, not people who want daily updates about an MMO! But that leaves me unsure of what to use G+ for... I guess I should make a Page or forum or whatever they're called for my game so I can separate the two?
Add a comment...

Pretty good day. Having decided there isn't currently a patching program for Unity that's worthwhile (the one in the asset shop is apparently buggy and abandoned), I gave myself one day to write a custom patcher for both Windows and Mac.

It was close, but got them done, and they're live now on .

It's not a fancy incremental patcher; it just compresses each file of the game and downloads the ones whose checksums don't align. But still, lots of details in that. I really wish there'd been a solution I could just buy, though.
Add a comment...
Wait while more posts are being loaded