Elder Game: Notes During A Slow Upload

From Project: Gorgon Wiki
Jump to: navigation, search

This Blog Post was part of the Elder Game blog. It was posted by Citan on May 16, 2013.

Previous Post: Elder Game: Gorgon's Archery System
Next Post: Elder Game: June Status Report

Additional Blog entries can be found on the Developers page or in Category:Game Blogs

Since I don’t have my own operations team, I’ve had to build my own ops scripts and tools. I’ve just made some changes to them to accommodate new hardware, so now I have to watch for bugs… and it takes many hours to do an entire build. So that’s fun.

In the mean time, here’s some random unimportant thoughts.

Bits are Bad (Or at least, limiting)

My first love was bit-math. When I discovered the concept in junior high, it was like voodoo magic. And all the time I was failing out of high school, I was filling notebooks with designs for BBS software, carefully packing everything into the fewest possible bits.

This made sense in the late 80s and early 90s. There wasn’t a lot of RAM to go around. It makes less sense now. You no longer need to bit-pack everything… but a lot of things can still benefit from it.

If you’ve ever wondered why you can’t stack more than 64 of a block in Minecraft, it’s because of bit optimizations. There are only five bits for the stack size of a block. (EDIT: not true, see comments.) They do this because they want to have a lot of stuff in the world, and saving a few bytes on every object can really add up.

In the previous iteration of the MMO engine (“Project: Frontier”), I also wanted to have a lot of stuff. So I used bits to represent each item in your inventory. Every item got 32 bits total: 16 bits determined the item’s type, 8 bits determined the stack size, and 8 bits were for “flags”, which are indicators like whether the item was soul-bound to you, or a temporary item, or so on.

That implementation is a pretty classic approach for MMOs to take, but it’s not good for Project: Gorgon. Items in this game have a million uses, and they need way more than 32 bits’ worth of info. So nowadays items can have arbitrary data attached to them. There’s no inherent size limit.

But the old 32-bit part is still there. Arrows can only stack to 250 because there’s only 8 bits for the stack size. And since there’s only 16 bits for type IDs, that means I can’t have more than 65,536 different types of items. I already have about a thousand… I could easily blow past 65k in a few years!

So I’m going to reorganize the bits… I don’t need the “flags” bits, they get done a different way now, so that gives me 8 bits of breathing room.

You might wonder why I don’t abandon it entirely. It’s only partially to save storage space — that’s not very expensive anymore. The bigger benefit is saving bandwidth. Most items in your inventory really can be completely described by just a type ID and a stack size. The networking protocol takes advantage of that to optimize how much data is sent between the client and server.

But if I ever end up with more than 4 million types of items, I’ll be really and truly out of bits. Well, I’ll have bigger problems at that point, I’m sure…

New Monsters A’Comin

Today’s server update adds a new sand-worm monster, which is one of the models for sale in the Unity store (from the ever-awesome Kalamona). The LOE team has also gotten me a new goblin and hag model, which I’m going to start integrating next.

The Legends of Etherell guys have been working out their animation pipeline — it’s not as easy as it might look, especially when we’re trying to reuse as many animations as possible between different models. But the pipeline they’re developing should work well for their own MMO also, so in some ways, I’m happy to be their guinea pig. There’s a few more monsters in their pipeline for me, including an orc, a treant, and I heard Vince is working on improving the wolf you turn into as a werewolf. Woo!

With the new monsters I’ll be finishing another section of the goblin dungeon, and starting on the third dungeon.

Kickstarter Part 2

I’ve spent a bunch of time this week trying to fix issues that show up for new players, because I’m hoping to start drumming up more testers this week. And from there I’m hoping to do another Kickstarter. This time, the MMO will be running throughout the Kickstarter duration, so it shouldn’t seem like vaporware.

I’m still working on the plans for that. I need to get it going, but the last one was … well, very stressful… so I’ve been putting it off a little. But soon!

About The Strange Order of Implementation

I hope that the stuff I’m adding is keeping testers reasonably entertained, but I know the order of implementation could be better: it’d be better to add more content, more areas, more dungeons, before adding yet more weapon types. But there’s a reason for the order I’m doing. Each step adds new tech. For instance, archery added fletching boxes that advance offline. That’s new tech! (And buggy… hopefully fixed today!)

And today, I added a seemingly-pointless feature: if you stand in a cooking fire, it burns you. I didn’t add this because I care whether you stand in cooking fires or not (because I don’t particularly care), but because it was a way to test other new tech. That tech is very versatile and will be important for the new super-boss encounter I’m working up to.

Other things have gotten blocked by tech issues; for instance, geology should have gone in by now, but it’s got some tech design flaws. (Geology will be the way you find most crystals and gemstones. Right now, gems just “show up” on the landscape, but that’s a stopgap.)

In addition to the new tech stuff, I’m also trying to add some new content every week. But man, it’d be great to have someone help me on that. I can only do a few NPCs worth of content a week while I’m doing all this other stuff. If the Kickstarter goes over the minimum, I’m hoping to use it to hire some content help.

Other Content In the Works

I have a lot of content in various states of implementation. Some of the short-list items are:

leather armor crafting
an update of the goblin dungeon
fleshing out the castle courtyard
fleshing out Sie Antry’s homestead (some of that happened in today’s update)
Myconians
mushroom farming
Some extremely silly new skills like Iocane Resistance
The first Ultra-Boss, complete with her own Fate Worse Than Death
A new quest line for animal-cursed players (giving them access to content that other players get later, so they have more to do while they’re cursed)
The Dickweed combat skill
Fleshing out Carpentry
Fleshing out Teleportation

and a few more.

As always, your in-game feedback is amazingly useful. I love it, keep it comin’! I’m really backlogged and unable to respond to all feedbacks right now, but I’m reading all of them, and replying to a large number.

Okay, looks like the script finished, so it’s time to put up the new version of the server. More later!