28 May 2018

Ion Trail 1: Ochlophobia

The crowd was densely packed, a flowing, chaotic crush of humanity, eyes unfocused or intent on something up ahead, no one meeting anyone else’s eyes. There was the occasional small cluster or pairing of people who were engaged, talking and laughing, obviously out for some social purpose in this busy, bustling locale, but the majority seemed focused on some other destination than here. I was one of that latter majority, my gaze raised just above the level of people’s heads, but not focused on any one thing, instead darting from one sign to the next or dropping briefly to confirm a momentary opening that I could slip through. I bumped people, and felt hips and elbows jostle me in return, but it didn’t even seem to register with the distracted citizens. When humans were this congested, you got used to it.

Well, most people did. I was just trying to ignore the rising panic I felt. I’d never been able to get used to large groups, despite having been born on a can colony even more overpopulated than this. In comparison life here on Kestrel station was luxurious, with many young people having tiny closet apartments all to themselves, or sharing slightly larger accommodations with one or two roommates; at most. But while I’d learned young how to wear the mask of indifference, I never felt anything other than skin-prickling, barely-restrained terror when I found myself in the midst of such a mass of people.

My childhood hadn’t been pleasant.

There was a word for what I was, one of those quaint Greek root words that were so popular among the various medical and psychological sciences during the last couple of centuries that humanity was bound to its home world, Earth. I guess being able to put a name to these things made people feel comfortable, but it never did help me. The only thing that would make me feel better would be to get the hell out of this crowd.

Finally I saw it, the place I was looking for. Dion’s Imports was a modest mercantile operation with interests in a handful of star systems, and they were my first client. Technically, they were a client of Grey Dwarf Shipping, but as a newly fledged freighter pilot contracted to Grey Dwarf, I was responsible for getting the load to Proxima Tau IV intact and on-time. Of course there was a problem; the shipment of tchotchkes and “ethnic” décor that was Dion’s primary trade had been half-loaded, when the digital manifest had been corrupted. Apparently only Dion himself had the backup files. Rather than sticking to the generally more working-class districts around the star docks, Dion liked to keep his shop and primary office in the middle of the affluent, popular Inner Loop Mall. Instead of relying on the questionable intelligence of his cargo factor, here I was pushing through the masses to talk to the man myself after several calls went unanswered.

I nearly stepped on a diminutive woman, garbed in the latest fashions out of Neo-Seoul, as I forced myself out of the press to the old-fashioned plate-glass front of the upscale shop. I quickly hauled open the door and stepped within, letting its clear, heavy glass close me off from the busy streets as I took a beat to close my eyes and just breathe. While the shop did a brisk business, the mere dozen patrons browsing its aisles was blessed solitude compared to outside. Expensive products from a dozen planets crowded the shelves, displaying a dizzying fusion of traditional crafts and the latest edge of human artistry. Dion kept his office upstairs, so I wasted no time looking around. I could hardly afford Dion’s wares, and had little use for them in any case.

“Dion!” I called as I jogged up the last few steps, raising my hand to knock on the door. “Dion, we’ve got a problem!” A muffled reply came through the door, and unlike the ostentatious manual door downstairs, this one slid aside smoothly to let me enter.

“Rickard,” said the comfortably stout man behind the desk, half-rising to greet me. I snorted at the courtesy, but appreciated it anyway. Dion wasn’t wealthy, but he was well above my meager station, and owed me no such niceties. “What is this problem? I didn’t expect to see you in person.”

“I tried to call,” I said quickly, then rushed on, before implying that he was wasting my time. “Manifest crapped out.” I winced at my choice of words. First day on the job, and here I was talking like a cannie to one of Grey Dwarf’s most reliable customers. “I mean, the datapad was corrupted. Diaz said you kept the only backups.” His brow furrowed, and he turned to pick up his personal datapad from his desk.

“Yes, that’s true,” he agreed affably, tapping at the pad. “With competition being so fierce, I don’t like copies of the manifest being available on the datasphere. Hmm.” The furrow in his brow deepened, and the smile lines around his mouth disappeared into a puzzled frown. I waited for him to continue, and after a few moments of tapping on the datapad, he looked up at me. “The datasphere appears to be unavailable.”

“What?” I asked stupidly. Datasphere access was almost universal, even on an overpopulated can colony. It was nearly impossible that access would be anything but stable and strong on such a well-heeled station as this. I raised my wrist to check my commlink, noticing for the first time that the signal icon was a dull red, instead of the normal pale green. “That shouldn’t be possible.”

“Indeed,” he replied, then hitched his shoulder in a shrug. “But I suppose that’s not your concern; my cargo is.” He reached over to tap a device on the side table, and a faint light flickered on before it unfolded to reveal a slot about 30 centimeters across. A few brief taps on his datapad, and the device started to hum, and smoothly extrude several sheets of plas. “Please be careful with this, and ensure that it’s properly wiped before you recycle them. Preferably once you’re already on your way out of system.” He folded the sheets into an opaque sheaf of plas, then handed it to me. I tucked them firmly under my arm before nodding.

“Of course, sir,” I assured him. “Won’t let it out of my hands until I’m safely away.” He smiled and sat back down to tap at his datapad again, effectively dismissing me. I turned and quickly hurried down the stairs, hearing his office door whoosh quietly closed behind me. The datasphere being down was really strange, but Dion was right; it wasn’t my concern. I already had my updated navdata and my ship’s local datasphere had synced up this morning. With the hardcopy manifest, we’d be able to ensure the shipment was complete and properly loaded, and I’d be out of here anyway. I steeled myself to push out into the crowds one more time.

This job was perfect for someone like me. Training had gotten me out of the can colony before my sanity had completely eroded and it had generally involved classes of no more than 50 other pilots, all of it paid for by Grey Dwarf Shipping. I owed them about five years of work to repay the cost of the training, but if I was thrifty, I should be able to buy my own ship by then, and I could renegotiate my contract or go looking for other opportunities. Five years of nearly indentured servitude was a heavy price, but I’d pay it again; the empty space between stars and the quiet of a ship with no one aboard, that I didn’t specifically invite, was everything I’d ever dreamed of.

The press of bodies began to thin as I left the Inner Rim behind, and I could see the tell-tale shift of character in the station that let me know I was moving into the more practical outer nodes. I was able to go faster now; it wasn’t empty by any means, but I could walk without constantly brushing past other people. My anxiety had faded from nearly overwhelming screams to a comfortable yammering in the back of my head. But as I was approaching the blast doors into the B-Sector star docks, a nervous edge to the constant buzz of voices finally broke into my preoccupation. Something was off.

I slowed down, looking around and making a conscious effort to notice people. There was no high-fashion or expensive coiffure here; shipsuits and coveralls dominated, worn by the working class that kept the station spinning and stocked with all of the goodies that made the Inner Rim so successful. But instead of the stolid expressions and business-like movements I expected, I saw people drifting into clusters, murmuring nervously, and I felt my anxiety spike up again. I moved closer to one of the groups of people, and noticed that they were all tapping fretfully at their commlinks and datapads, and the reason finally became clear; the datasphere. I tried to relax as I identified the problem, but somehow knowing didn’t make me feel any better. Even with my mind elsewhere, the sheer impossibility of it struck me again. Humanity had grown used to constant, readily available information flow. Except for a few planets here and there populated by back-to-nature communes and various types of technophobe, which limited datasphere access only to spaceports or government complexes, on-demand information was as natural as breathing.

I clutched the sheaf of plas sheets and quickened my pace again. I needed to get my cargo loaded and get out of here. Once I was away, I should be able to access my ship’s datasphere; when on-station, it synced once per rotation, and otherwise shutdown; there was no need to have it on when the station’s datasphere was already sufficient. A good, updated sync made sure I’d have everything I needed for the long, quiet spaces between stars When I got to my Proxima Tau, everything should be back to normal.

Abruptly, the entire station lurched, and a nearly sub-sonic rumble swept down the corridor, causing me to stumble to retain my feet, and succeeding in knocking down several other people nearby. The clean white lights suddenly dimmed to be replaced by stark yellow floodlights and whirling red and yellow crisis beacons. An ominous, deafeningly loud claxon filled the corridors.

The blast doors in front of me began to grind closed.

17 November 2017

Beginner's Guide to Wurm Unlimited (WIP!)

So lately my obsession has been Wurm Unlimited (Hereafter WU).
I wanted to take some time and write my own newbie guide, as someone who's maybe getting out of being a complete newb, but definitely hasn't left it all behind yet. Some of this is covered elsewhere, but either in insufficient depth, or they bury the lede, and you often miss the important parts.

(Hey! So apparently this is still getting a good amount of traffic, so I should probably try to update and finish it! Look for some changes in the next week or two!)

MOVEMENT

Wurm Unlimited is a purely first-person game, so we'll mention that first; There are client mods1 that get around this, but without modding, you're stuck in first person.
Movement is set up as your typical WASD setup, but mouselook is accomplished with the left mouse button; Otherwise, the mouse controls the cursor. There's a toggle you can set under keybinds, if you like.
There's also no jumping, nor can you sprint; Speed is governed purely by your carry weight and the surface you're walking on, whether it be paved, smooth, sloped, etc. Additionally, if you're low on stamina (or "Hurting"; see injury below) your speed can be further reduced.
Climbing is a thing. You can move up slopes up to about 25 "dirts" (more on that later), after which point, you'll need to turn on climbing via the icon on the quickbar. Climbing reduces your movement drastically, prevents stamina regen, and will probably break once stamina reaches zero. Climbing allows you to move up or down nearly(?) vertical slopes, and as long as you're not moving, you do not use up stamina. If climbing breaks while you're up a slope, you will fall, and take varying degrees of damage based on how far you fall, and how steep the slope is. Remember to turn climbing off whenever you don't need it.
Swimming is also a thing. You swim purely on the surface of the water; The tiles under the water can be "reached" if you're within horizontal distance of them, but being underwater limits what can be done. You do not regain stamina while swimming, but stamina loss is generally rather slow; Once you reach zero stamina, you will begin taking drowning injury to the torso if you continue moving. Like with climbing, you can stay still indefinitely with no adverse affects (though you might starve, eventually) If your injury reaches 100 (through any means; Swimming long distances while injured is a bad idea), then you die. The drowning injuries fade fairly quickly once you reach shore and begin regaining stamina.
If you are swimming near a steep slope that does not allow you to exit the water, you have an ability that will allow you to climb for 2 minutes, even with zero stamina, called the "Last Gasp". Open your character screen (C)2 and right click the silhouette icon in the lower left corner to activate this ability. Use this to get out of the water and onto level ground, then turn off climbing so you can recover; There will be a delay before you can use this ability again.

BASIC COMBAT

Normally I'd cover this a bit later, but considering the first thing I did in the game was get in over my head by attacking something I shouldn't have, I'll start with the basics now. Don't initiate combat with anything until you've gotten your bearings. Most things you encounter will kick your ass. First thing to do is to manage your equipment.
You're probably already wearing a full leather kit, but your sword and shield may not be equipped. Open your character menu (C) to see what you've got equipped along the outer edges of the window (minor bug: Worn equipment may not show on the paperdoll or your actual avatar immediately after starting; I'm not sure this matters for stats, but removing the equipment and replacing it will fix this). If you don't see your sword and shield, open your Inventory (I) and expand the menu. Locate your sword and shield, right click > equip (or drag to the paperdoll on your character menu)
If you must get your fight on, Don't go for anything more intimidating than a wolf; Dogs, pigs, and some wolves may be an approximately even fight, but boars, bears, giant spiders, and any group larger than one enemy should be avoided. You will get hurt, and injury takes more than a little time to recover, but as a newbie, you should be okay so long as you survive the fight3.
Running away should always be considered an option. Watch your stamina, and be aware that injuries to your legs (as well as the "Hurting" status effect, which lasts 30 seconds) can slow you down. Aside from being overburdened, injured or out of stamina, you can likely outrun almost anything you encounter, and many creatures will not follow you into the water; some will (like bears), so never assume you're safe until you've completely left behind the threat.
Once you've engaged combat, you can let it auto-attack, but there are more advanced considerations; I'll cover those a bit later. Injuries will heal on their own so long as they're light or very light; As a newbie, you will also heal from medium wounds too, if you even take any. First aid will also be covered in more depth a bit further down.

SELECTING TILES AND OBJECTS

For the purposes of this guide, it's important to realize that there are two types of things you can interact with in the world; Objects, and tiles. Objects include actual objects, like tools and vegetables, but it also includes walls and animals. Specifically, when I say object, I mean anything in the world that you can select by clicking on that is not a tile. Tiles are part of the actual world, and mostly includes the ground, but it also includes many plants and trees. So when you want to select a tree or a bush, you don't click on the visible plant, as though it were an object; You click on the tile that it inhabits. When you click on a tree tile, you're also selecting the dirt, grass, sand or whatever the tile is made of, so you can forage/botanize, clip grass, pick flowers, etc. as well as interact with the tree itself. To select an Object you click directly on the visible object itself, and you're interacting only with the object.

Containers are a special type of object, and can either be actual containers such as barrels, chest and crates, but it also  mean stacks of objects, like wood piles, or the open crate graphic that indicates multiple types of objects are piled in the same tile. You'll know a container if there is an Open option either on the Selected Window, or in the right-click menu. Most of the time, your interactions with a container will be with the container itself, but if it's a pile and you select Take, it will attempt to take all (or as many as you can carry) of the items inside, whereas Take with any other kind of container will attempt to pick up the entire Container, with all objects inside.

Finally, I want to address the Selected Window. This is the Window that shows what object or tile you've most recently selected, and gives you several buttons to interact with it (up to 8) based on the type of object/tile, proximity, and whatever tool you've selected. Some options may not always be displayed, so it's important to realize that the right-click menu will give you a full listing of potential interactions, but this window will allow you to speed up a lot of common tasks; It's a lot quicker to click a button 2-3 times than to navigate through the Right-Click window repeatedly. Note that occasionally the buttons will not update when you've moved into range, so clicking off the desired object/tile then clicking back will update the buttons.

GATHERING MATERIALS

You will need to gather a lot of materials throughout the game for basically everything. I'm going to break this down into types of gathering, and discuss the materials you can get from each. The basic thing you'll need to know is that you'll need to activate a tool to do most of these (and many other actions in the game, for that matter). Activating a tool consists of double-clicking it. You'll know it worked if the name turns green, and the name of the activated item will show up at the bottom of the inventory window. If you're activating something that's part of a stack, you'll need to expand the stack to see which one of them has been activated.
Foraging/Botanizing/Rummaging: These are three different actions, but they all work essentially identically, so I'm going to cover them together. Foraging is the act of seeking items like vegetables, cotton, etc; Larger plant-matter. Botanizing is the action of seeking herbs and such. At lower skill levels you'll only be able to do these on grass tiles (or tree tiles that are in grass), and they can both be done on the same tile. A tile may need some hours to recharge before you can do either, so it's a good idea to forage and botanize as you're moving around, to gather food and materials you'll need later. Rummaging is exactly the same as foraging and botanizing, except that it's done on stone tiles, and typically returns iron rocks and occasionally other minerals. Iron rocks will be your earliest, easiest source of iron, and they're typically low quality.
Woodcutting: Activate your hatchet (or other bladed tool; I've seen advice telling you to use your sword for this, to get an early sword skill boost; I use my hatchet, though) and select a tree tile. As a rule, you'll want to stick to older trees, unless you're actively trying to clear space. Double-clicking, or right-click > examine will tell you the tree's age. Then use the right-click menu or Selected Window to choose Chop Down. It will likely take 2-5 tries, then the tree will change to a falling tree. You can then select the fallen tree and chop it into logs; Some activities later will actually use the whole tree, like boat building; For the most part, logs will be what you want. Some trees (fruit trees, commonly) do not have enough wood to become a fallen tree, and will simply leave a log. Logs will be a maximum of 24 kg, usually with a smaller remnant once the fallen tree is depleted.
Digging: Digging is useful for shaping the land, but also getting resources. Activate your shovel to dig; With the shovel activated, you can also mouse-over the tile borders to see the slope of each, which can be useful for planning when trying to shape the land to your needs. Unless you're leveling or flattening a tile, digging will always happen at the nearest corner to where you're standing, so if you're trying to shape the land, keep that in mind. Digging dirt or sand will reshape the land, and destroy nearby grass and other tile types. If you're digging up tar or clay, you will not reshape the land unless the nearest corner is either dirt or sand, in which case you will get these instead of the desired resource. A dirt or sand pile is 20 kg, so you'll normally max out at 5-6 piles before your inventory cannot hold anymore. You can dump dirt and sand on the ground to free up inventory space, but be aware that dropping on the ground (as opposed to a pile) will raise the land at the nearest corner. Drop it as a pile to leave an accessible resource, and not reshape the land. Keep in mind that you will not be able to dig on much of a slope at all until you've gained more skill in digging, so keep to more level ground, and use dirt piles to help level out larger slopes (by dropping at the bottom of the slope) until your skill is sufficient to do as you need.
Butchering: Butchering is what it sounds like; You get meat and materials (furs/pelts etc) from dead animals (or even humanoids; I've eaten goblin, don't judge me). You can use almost any bladed instrument, but seriously use a carving knife (or butcher knife, once you can make one), as you'll get more resources. A higher skill will also help get more resources. This one is may be a complicated one to raise, since it involves combat and injury a lot of the time, but fishing is also a good way to get meat without getting bit by anything. Filleting, once you have a butcher knife, is also a handy way to raise your butchering skill, and gain you more (smaller) pieces of meat to help raise your cooking skills as well. Finally, with a few exceptions (where the corpse can be cooked on a spit) you'll want to use your shovel to bury the corpse, once you're done butchering, as this keeps the place nice and tidy, and can discourage predators from taking an interest.

MINING

Although this is technically a gathering task, I'm breaking it out into its own heading because it is one of the more complex gathering jobs. Mining has a variety of possible rewards, including iron, silver, gold, salt gemstones, or different types of stone. You will activate a pickaxe to do mining or prospecting. Once you've got your pickaxe activated, you need to get to a stone tile. If you're lucky you can find some at ground level, but there's a good chance you're going to need to climb for it. Be careful, as moving, prospecting and mining all use up your stamina, so falling is a risk if you're not careful. If you begin mining into the rock half-way up a steep slope, you can stay there and continue mining without risk of falling so long as you do not move, but once your stamina is depleted, it will take considerably longer for each mining action.
Prospecting: I'm going to talk about this a little bit before getting into mining proper, because unless all you're looking for is stone shards, you're going to need to know how to find materials. Once you've found a stone tile, select the prospecting option from the context menu or selected window. Once done, it'll tell you if there is anything aside from rock nearby. "Nearby" means within 3 tiles in any direction; so a 7-tile square, centered on the one where you are. If you don't have surface rock tiles all around you, the materials you want may be obscured under some layers of dirt. This makes prospecting more difficult, as you need bare rock tiles to prospect on. Mining will also more difficult as you'd need to dig the dirt away first, which may not even be possible depending on the slope and your digging skill. If you have sufficient rock, moving around and prospecting can help pinpoint where the deposit of iron (or whatever; but seriously, you need iron) may be. Once you find a surface tile that mentions nearby resources that you need, you can either try to pinpoint the tile, or just start mining; An advanced usage of the prospecting skill, Analysing, can help you find the minerals once you're through the surface.
Tunneling: Once you've decided where to dig (either because it's the only way you're going to be able to regain stamina without falling down the mountain first, or because you actually found something) you have two options: Tunneling and mining. Mining on the surface is similar to digging, as it is useful for shaping rock surfaces, (or preparing the area for your future mine) but all adjacent surfaces must also be rock, and like digging, you may not have sufficient skill to dig on steeper slopes. For now, we're going to ignore surface mining, and just talk about tunneling. When you begin tunneling, you'll do a bunch of nothing at first ("you chip away at the stone") but eventually you'll start generating stone shards; These are useful resources for stone work or paving, but in this case, they also mean that you're starting to make progress. Eventually you'll open a tunnel into the mountain where you can rest your weary legs (if you happened to have been hanging off the side of a cliff) and get to work doing some more serious mining. You'll want to mine walls rather than the floor or ceiling; Doing either of these will not create a tunnel, but will raise/lower the ceiling/floor height, which can be useful if you want to build underground, but otherwise isn't especially helpful. You can mine, mine up, or mine down; All of these options will generate stone shards and make progress toward mining into the tile, but one will create a basically level tunnel, and the others will raise or lower your elevation. Elevation is completely irrelevant when seeking resources underground, but can be useful for other reasons (creating a tunnel, reaching the water table) so most of the time, just the Mine option will be sufficient. Additionally, only the option selected for the last mining action matters; If you Mine up 20 times, but the last action that breaks the stone is mine down, then you'll have a downward slope. The number of times you mine a tile before it breaks is essentially random, though it will start to warn you in the Event tab when you're getting close to breaking through. Finally, tunnels cannot go above or below another tunnel, nor can they break through to dirt; If you start getting error messages, you may need to choose a different direction, or do some work elsewhere to continue (like clearing dirt from a surface tile).
Mineral Veins: Aside from the rock shards (and random gemstones) you get from normal mining, you're going to be looking for veins of iron and other resources. Surface prospecting can get you close, but aside from that, you'll need to dig until you find something, or use Analysing (below) to find resources once you're underground; Prospecting underground will only tell you some details about the rock (or vein) you're prospecting, rather than tell you about nearby resources. Mineral veins come in a spectrum of qualities, which prospecting will reveal; Low quality is generally ideal until your Mining skill gets above 20, and you should try to conserve higher quality resources (especially "Utmost") until your mining is considerably higher. Veins give a lot more resources than you'll get out of a typical stone tile, but until your prospecting gets higher, you'll never know the exact quality or quantity of the vein. (Note also that QL is somewhat random, and based on your mining skill; the vein's quality only acts as an upper boundary)
Analysing: As mentioned above, surface prospecting will get you into the vicinity of resources, but Analysing will help you get right to it. Unfortunately, Analysing doesn't open up as an option until your Prospecting is at least 20, so you're going to need to practice a bit before getting there. Analysing requires some mineral resource be in your inventory; Most commonly you'll be using stone shards, but anything you get from mining (iron, sandstone, salt, etc.) should work. When you analyse, it will tell you about traces or faint traces, and give you a cardinal direction. Traces are 1-tile away from where you mined the resource from,  faint traces are two tiles away. At higher skill levels, you'll be able to detect traces at further distances, but we'll just stick with these for now. I would recommend you mine one tile in the direction, then prospect again; East of North, for example, just pick either East or North. As mentioned above, elevation does not matter at all when finding underground resources, so just turn so that your compass indicates the desired direction, and mine that wall.

FOOD AND WATER

Like with injury, food isn't an urgent concern for a newbie, but it's better to get on top of food before your newbie benefits run out.
Water is pretty basic; You have a blue bar (up there immediately beneath your stamina/health bar) which depletes over time. As it depletes, your stamina regeneration slows down, so it's best to keep it above the 75% mark. If it ever reaches zero, your stamina will stop regenerating entirely. Refilling the bar is very easy; Select any water source (a well, fountain, jug of water, or tile partially or fully submerged in water), and select drink. If you're in deep water, aim your camera down and select one of the tiles directly beneath you. Without mods, all water is equal, and will fill your bar.
Food is really not simple, but it starts to make sense after you get the hang of it. Food is represented by 5 bars, also clustered with your stamina/health and water bars; The only one we're going to worry about now is the Food bar, located right next to the water bar, which represents how full you are of food. The color of the bar represents how nutritious the food you've eaten is; Mousing over the bars will bring up the exact values of all of the bars, and will show your actual nutrition value. Many foods can be eaten without any preparation, but this is generally a very bad idea (if still sometimes necessary), as most of the time you will get a very small boost to your food bar, and spike your nutrition down. Nutrition above 50% gives small bonuses to skill gain, and the overall level helps to determine how quickly your food bar drops. You can select Taste from the right-click menu of any edible item, and it will tell you how nutritious the food is (as well as if it provides any temporary bonuses), and the weight of the food is the primary factor in how much it will fill your food bar. The other 4 bars (Calories, Carbs, Fat, Proteins) all have different effects which you can read more about elsewhere, later, as they're not important to someone just starting out.
Preparing food seems really opaque at first, but at its most basic, it's actually fairly simple. You need a heat source (cooker, in game terms) a container, and some sort of food. It's likely you started with a ceramic bowl, which will be plenty to get you started. Cooking a single piece of meat or a vegetable is a good start, as it gives good food/nutrition gains, and isn't overly difficult. Adding other ingredients will create better meals, but will also increase the difficulty of the meal; You will always succeed in preparing a meal (assuming the ingredients/container even make any recipe) even if the difficulty is too high, but your skill gains will be minimal, and the QL of the meal will suffer.
So let's start with the cooker; The basic cooker is a campfire, but ovens can be found in most settlements (you can also use a forge or a kiln, but don't) Campfires will add a little difficulty, so if an oven is available, use that. To get a campfire, first get a source of wood that's at least 1.5 kg, and activate your carving knife, then right-click > create > kindling. Once you have kindling, you can activate your flint and steel, then select the kindling to right-click create > furnaces > campfire. If you have a oven (or even a forge; but don't use a forge to cook) you can use the flint and steel on the oven (so long as you have kindling in your inventory) to light it instead.
Open the lit cooker, and place your ceramic bowl inside. Then drag the meat, or other foods, into the bowl. Right click the bowl and select Lore; It will tell you if you have a complete recipe, if you need to add something, or if it doesn't make anything at all, as well as the difficulty. You want to keep the difficulty within 10 points of your Hot Food Cooking skill level in order to efficiently level up your cooking, though this may be hard to manage in the beginning. Each additional ingredient adds to the difficulty, so stick to simpler meals for a while. Meat or a veggie in a bowl will eventually become "Breakfast", which is a fairly efficient beginner's meal. Eat it while it's Hot (mouse-over the food for a tooltip with the temperature) for additional nutrition. If it's cooled down, you can place prepared food into a lit cooker, and it will eventually heat up again; Food will never burn, but given enough time, food will begin to decay, so don't try to stock up for too long, at least not at first. To see and search existing, known recipes, use the Cooking Recipes button on your quickbar (same bar as climbing). Many simpler items will not be in there, but experimentation and liberal use of the Lore option will help you discover new recipes.

Crafting and Building (new!)

So I covered cooking above, but I missed probably the most important part of the game: Crafting. Seriously, if Crafting isn't your thing, I'm not sure Wurm Unlimited is for you. Or maybe it is, I dunno. But crafting is a very central aspect of the game, nonetheless. For ease of explanation, I'm going to break this section down into two categories; Crafting and Building. First, however, I want to discuss the Crafting Window. Last, we'll talk about how to figure out what to build, and what's required to build it.

Crafting Window: This provides a GUI alternative to using the right-click Create menu, and can be used with objects that aren't selected by dragging them into the appropriate slots. Many things you'll build require a tool to be in one of the two slots, but some require two different objects or components, instead. Once two objects are in place, the right-hand menu will populate with potential things those two objects can be used to build. Make sure you select the correct one; I cannot count how many times I've created a Yoke instead of a Plank, because I was in a hurry and forgot to select the desired result. The right-hand menu will also display percentage chances of success; Tool quality, material quality and skill level can all contribute to the success chance. Once you've got everything set, click the Create button; You'll likely see 3 available bubbles above the Create button, which represent how many actions you can queue up at once. Higher Mind Logic(?) will eventually add more bubbles to the queue, but if you're going to fail a lot, or you need to make multiple copies, clicking Create repeatedly will fill the bubbles up (the left/right buttons below will allow you to customize how many actions a single click will queue) Be careful not to waste time or materials by making more than what you need, though. For more complex objects that require multiple components, the right-hand menu will display needed components. Keep in mind that some of these components are themselves complex objects with sub-components that will need to be built before they can be added to the main object.

Crafting: Here, I'm referring to Crafting as the process of creating Objects (see Selecting Tiles and Objects, above) that are not necessarily permanently planted. A lot of the time, Objects will be created in your inventory, at least initially; For larger Objects, such as carts and boats, an unfinished version of the object will drop to the ground, and you'll have the option to add it to the crafting window, either in the Selected Window, or the right-click menu. Mostly, the object, tools or materials will need to be in your inventory to be worked with. In this case, you work on these objects by dragging the item to the crafting window.

Building: Building refers to creating walls, floors, pavement, etc. that are permanent installations, associated with the tiles and borders you build them on. There are different systems, depending on what you want to build.


Foot notes:
  1. link to 3rd Person Mod
  2. keybinds mentioned during this guide will be defaults. Keep this in mind if you've played with any keybinds.
  3. New players have a healing bonus, food consumption bonus, enemy hostility range reduction, and magical light for 24 hours of gameplay. Note that these may not appear immediately on first login. Look for the icons in the upper left corner of the screen to check.

09 May 2017

Unchosen 34

A quick flash of how she would have handled this situation appeared in my mind. Jaunty smile, flirt and threat intermingling effortlessly in her words and expressions. I snorted at the thought of any one of us trying something like that. It'd never work, because we weren't her. But with or without her, we were in this situation, and we'd have to deal with it.

Apparently, the thug misinterpreted my snort, and his smarmy smile vanished, replaced with an ugly expression that honestly seemed more at home on his face. His goons closed in, barrels rising toward us. Amateurs. I felt a tight smile stretch my lips. Clustered up close like that, they'd go down like pins from the old pre-war game of bowling. But the lascannon on the wall was another matter, not to mention whatever rabble remained inside the wall. It was still time for words, not bullets.

"Don't rightly know how we might serve you," came the unexpectedly casual drawl from Doc, who was still a couple steps in front of me. It took me a moment to recognize the inflection; It was hers of course, Doc was mimicking her style of speech. He didn't have the presence to really pull it off, but I had to admire the guts it took to try. Besides, this was his town.

"Don't rightly know," he repeated, "because I don't know who you are."

"We're the stewards of Outertown," the lead thug blustered, trying to regain his composure. "The guardians of Nova Vi."

"Bullshit," replied Doc, his reserve cracking only slightly, more fire to the words than she would have put there. "I was born and raised in this town, and I know every single face. You three," he paused, and I could see his head move to look at each man individually, "don't belong here." The man looked taken aback for a moment, and I thought it was about to be bullets, but then he crossed his arms and laughed. He laughed like a goddamn villain from the old movies, out loud, with his head thrown back. His back-up glanced at each other, and laughed uneasily along with him.

"That's where you're wrong, my young buck," he replied, leaning forward, looming over Doc's slight form. "Outertown is ours now, unless you think you're going to do something about that?"

04 May 2017

Unchosen 33

We rounded the bend, and Outertown hove into view. We could see that they'd been busy since the worm, since the walls were once more intact, and even more, reinforced with what appeared to be blocks of stone cut from the surrounding canyon rock. Doc had move into the fore, and his eyes scanned the walls avidly, a vague expression of approval on his young face. However, as I watched him look at the town of his birth, I saw his expression shift through puzzled into concerned. I turned my own eyes back toward the town, though it took me a moment to see what was wrong.

The gates stood open like they usually did when there was no imminent threat, and thin streamers of smoke rose from behind the walls; Cook fires, and probably Elwin's forge. That was all as expected, but the demeanor of the toughs at the gate was slouchy, and the slight buzz of voices and activity from inside seemed off, more raucous than expected. While the residents of Outertown had formerly been raiders and bandits, they'd acquired a veneer of civility and sophistication in the generation since they'd thrown their lot in with the Nova Vi vault-born. The few visible guardians held themselves like wild dogs; simultaneously wary of a kick and greedy for whatever they could snatch.

"Something's wrong," Doc said, and I nodded. Chasity had obviously noticed it too, as had Tex, since they'd both fanned out to either side of Doc and me. I stopped and dropped one hand to my holster; Doc didn't reach for his submachine gun, but I could easily see the tension in his shoulders as he took a couple more steps forward, eyes still intent on the town.

"Wall," Chasity said tightly.

Looking where she indicated, I saw one of the two pintle-mounted cannons was swinging around, and I could hear the hum as its reactor came online. From the gate, a party of men emerged, the leader not ostensibly armed, but the two flanking him with their weapons at the ready. The lead man had a cocky grin on his face as he approached.

"Welcome to Outertown," he said, his voice oozing with repressed humor, and his eyes dark and cruel. "How can you serve us today?"

22 April 2016

Mage Blade: Play Session #1

We open on Gotrek Bouldercoat arriving in the town of Cheers (yes...) on his quest to find a rare and endangered flower. He sees Allowydd the fortuneteller upon entering the town, and he stops to ask directions. After securing lodging and hitting a dead-end with the herbalist (deus ex), he follows up with Allowydd, who said her mistress might be able to help him with the flower. When he describes the flower, Allowydd realizes she recognizes it as a flower that is used by some fortune tellers and seers to induce a trancelike state; She tells him that she knows where it can be found, and they agree to leave in the morning to find it.

Setting out into the hills and up to South Mountain, they begin to feel uneasy, and Gotrek notes that the forest is too quiet to be natural. When a strange, unpleasant odor begins to intrude, Allowydd reaches out with her sight to see if she can identify the source, and gets a glimpse of cowled figures with some sort of monster chained and doing their bidding. Even less sanguine about going forward, the pair decides to return to town, hoping Allowydd's mistress might be able to help identify the creature and the figures controlling it.

All is not well however, as they exit the forests to find the nearest farm in flames. Rushing in to see if they can help, they find the savagely mauled corpse of the farmer, and hear cries from inside the burning barn. Gotrek bursts into the building, seeking through the smoke and flames for the source of the cries, and finds the farmer's wife and child trapped in a horse stall. He extricates them, and assists them out of the barn.

Meanwhile, Allowydd has reached into what's left of the dead man's memories, and finds another glimpse of the cloaked figures as they goad their monster into killing the farmer. She helps Gotrek see to the farmer's wife and daughter, then the pair sets out for town as nearby farmers rush to stem the growing fire from reaching their farms.

Once in town, they try to discover what happened, but the woman is too distraught to be helpful, so Gotrek speaks to the local gendarme while Allowydd returns to her mistress, hoping the wizened fortune teller might be able to give some insight. Unfortunately it is not to be, as she finds her mistress in agony, her eyes a mass of blood, moaning over and over again that she was not supposed to see.

With no leads and a growing fear, Gotrek considers going to see a recently made friend, and Allowydd is left to seek answers of her own.

Mage Blade: Skills, Skill Trees, Dependencies

So I wrote much of the following in a G+ post yesterday, and I figured it'd be a good piece for a blog post, so I'm taking the original and expanding on it here.

This is also, sadly, the very first Mage Blade post I've made since starting this blog. Happily, it's back in my active RAM because I've just begun a weekly game of Mage Blade. It's been a rough start since I decided almost on a whim to get this going... But that's good, because I'd previously been waiting for the game to be "ready", which is kind of synonymous with "perfect"; It's never gonna happen, so I might as well get moving on it.

So I am noodling around with the idea of creating... skill trees, for lack of a better term. Right now, Mage Blade has a flat distribution of skills. It looks kinda like this:
  • 2P/1G
  • 1-5 Weapon Skill*, 6-8 First Aid, 9-12 Armor Maintenance, 13-15 Vigor, 16-17 Tactics, 18-20 Military Lore
The first part refers to the skill point distribution per year. 2P means 2 Path skills, 1G means 1 Generic skill point. Normally you'll roll a d20 for each Path skill, and select your skill from the results in the second bullet. Now, the exception to this is denoted by the asterisk by Weapon Skill; This means you don't roll 1 die, and you automatically get 1 point of that skill. So for this list (taken from the Soldier Lifepath) you'd get 1 Generic skill point, you'd get a single point of Weapon Skill, and you'd roll a d20 to get a skill from the list, assuming you'd taken a single year. If you took multiple years of the Lifepath (which is normal) you wouldn't get the focus skill each year, so you'd roll an additional 2 dice per year after the first.

If you were a Soldier for 10 years, you theoretically might have:
  • 5 Weapon Skill
  • 3 First Aid
  • 4 Armor Maintenance
  • 3 Vigor
  • 2 Tactics
  • 3 Military Lore
..assuming that you rolled perfectly average results across such a small sample size. Skills max out at 10, so you've got a fairly competent soldier here.

Unfortunately, despite having odds which shouldn't have had it happen, I've got two characters in my current playtesting group with the Vigor skill maxed out and then some. (they had to re-roll the excess points). Vigor represents your basic knowledge in how to move and use your body to best effect; It's a close analog to the Athletics skill you see in a lot of other games, and covers tasks like lifting, climbing, running, swimming, etc.

I consider it a problem that brand new characters have maxed out any skill, especially without having taken special effort to do so. Some of this, I know, will be fixed by rebalancing and diversifying the skills listed for each Lifepath, but it still perturbs me, so I've been considering solutions ever since we finished creating the characters.

The first solution that occurred to me is to have this skill have a special rule, where its effective value cannot exceed the value of the attribute it's rolled with. It's not a bad solution, but I don't think it's a particularly good solution, either.

The skill tree solution I'm considering would encourage skill diversification, without really penalizing specialists. The way it would work is that certain skills would be considered root skills, which would have sub-skills associated with them. The root skill would have a maximum value, after which you'll need to start diversifying into the related sub-skills. Some sub-skills may also have prerequisites.

Considering Vigor, it would be considered a root skill, and might have a maximum value of 4. If you rolled Vigor again once maxing it out at 4, you'd need to select a sub-skill, Running, for instance, which would now have a value of 5. If you rolled Vigor subsequently, you could choose to increment Running again, or you could choose another sub-skill at a value of 5, such as Swimming. Sub-skills would then be advanced as normal, once purchased.

If you were doing a Vigor-related task that did not match one of your existing sub-skills, you could then use your existing Vigor skill to cover that, such as climbing or lifting and carrying.

The interesting question is whether or not you'd be able to train up sub-skills without having the root skill. I think the answer would be yes, but on a case-by-case basis. I don't think you could do Running without having Vigor, but I do think it'd be possible to be a swordsman and have no skills in fighting without a sword. (Later edit: No I don't. That's stupid. Learning to fight with a sword will by necessity increase an overall skill in fighting, even if you find yourself without your weapon of choice.)

Which then begs the question, could you then get the root skill from the sub-skill? I'd say yes; Even as a pure swordsman, it wouldn't take too much effort to learn to apply your skills to more general fighting situations, so it seems like it should offer some discount or a way to pick up the root skill at a rating greater than basic.

This also sort of suggests that you might be able to transfer some skills to related skills. If you were a master swordsman in the sword-and-shield style, some of that should translate into learning how to use a longsword, shouldn't it? What about if you were an expert climber; could you translate some of that into an acrobatics skill, above and beyond the points contributed by the Vigor root skill?

So, points for discussion:
  • What are your thoughts on being able to max out a skill as a beginning character, in the first place?
  • What do you think about the ideas of root skills and sub-skills presented here? Should all skills be part of a similar framework?
  • What are your thoughts about skills giving a discount to training up related skills?

27 May 2015

Deep Thots Bout Vidya Games: Dynamic Room Detection

WARNING: ESOTERIC, NON-LANGUAGE/PLATFORM-SPECIFIC GEEKERY AHEAD

So, it's no secret that I like to design games. Finishing those designs is a different story, but I do enjoy the process, and I'm always super excited when I start a new project.

I'm thinking right now of dynamic room detection in tile-based games. Sometimes, you want to do something to a "room", rather than to individual tiles. How do you get the game to recognize what is a room, and what's not?

I have semi-dynamic room detection in Ion Trail. As part of ship design, you place room control nodes in the upper left corner of the room, and it detects the dimensions of the room, and tells the tiles which room they're a part of. It has to be a rectangular room, but it makes layout much easier.

But what if you didn't have to do that? What if you wanted non-rectangular rooms? What if you wanted something where you could change the layout in-play? That's what I want to discuss here.

Now, the system I have for Ion Trail, the pre-placed Room Control Node (RCN) upon starting the game immediately tags the tile it's on, and then uses that tile to start a cascade process of pinging the other tiles. It cascades down and right, which is why the RCN has to be in the upper-left node. It prevents any sort of duplicate processes gumming up the works. The tiles identify adjacency, and whether the adjacent tiles are across a wall. If they're adjacent and not across the wall, they name themselves part of the triggering RCN's room, and return data which is used to calculate the height and width. It's a pretty elegant system, if I have to say so myself.

But it's utterly inflexible. While I could add the ability to place the RCN in-game, it would still require proper placement, and rectangular rooms.

Now, I've been playing Prison Architect lately, and they've got a neat solution; manual zoning. You create zones, which are also rectangular. The zones have the ability to detect adjacent zones, and consider themselves part of the same zone, which allows for non-rectangular zones in play. They can detect if the tile beneath them is valid (indoor outdoor) and whether or not specific items are within their boundaries. It's elegant, but not without issues of its own. Forget to manually designate a zone, and no matter how many showers and drains you've got, the game will completely ignore it. This is a feature as well as a drawback though, as it can allow you to dezone cells and cause prisoners to move to another part of the prison, and similar operations.

But I still want something more. The zoning is nice, but not universally applicable. I just want something that tells the game, and the player, that this is A ROOM.

I think the solution lies in the tiles themselves. Each tile is an object, and thus should have a unique identifier. These identifiers can be sequenced, which can allow for a hierarchy. This'll be important in a minute.

So, okay. How do tiles determine if they're part of a room? First off, I want to differentiate tiles from empty space. Empty space is still potentially part of the playable space, but is irrelevant for room detection. So, there's some triggering event. Maybe the creation of a tile, maybe periodically during the game, whenever. It triggers on a tile. That tile then looks in all directions for other tiles. If it finds a wall, it will ignore tiles on the other side of that wall. If it finds a tile that's not walled off, it activates the search process for that tile. If the tile is already searching, it will not try to reactivate the process. The initial tile will set it's object ID (oID) as the RCN. Then, whenever two tiles that are actively searching talk, they'll compare their oID to the current RCN. If a new tile's oID is lower than the current RCN, then the RCN will be changed to the lower (older) oID.

So there's this cascading process. Eventually, you'll have all of the tiles in a given area (walled off) in "search mode". How do they know when they're done? Maybe once a tile has activated search, it'll drop into a wait mode; during wait mode, the tile will compare its FCN value to the FCN value of it's FCN, which will keep updates moving toward the oldest value. When there are no more tiles in search mode and they're all in wait mode, they should all be pointing to the oldest oID object as the RCN. Here's the rub. They're all waiting, nothing is going on as the RCN isn't updating... But each individual tile only knows it's own state. The RCN doesn't actually know which tiles are part of the room, though the RCN and all of the other tiles know who's in charge.

Does the RCN keep some sort of matrix, to keep track of all of its tiles, and their states? This seems problematic, as each tile will have to have the potential to keep this matrix... and when does the matrix get updated? When the room search is complete? We still don't know how to tell the RCN that it's done. The matrix could tell it that, but that means that there'd end up being multiple matrices being generated during the room detection, which would mean that, when each tile updates its RCN, the matrices would have to be merged. It'd be unwieldy fast.

So, okay, back up. Maybe the RCN doesn't know which tiles are which? Say there's a value on the RCN called v_roomstat. A tile will look at this value, and compare it to its own status; If the tile's status is searching, and v_roomstat = searching, it'll do nothing. If they don't match, it'll update that status to match it's own. Which means every tile that is waiting will try to tell the RCN that the room is waiting, and every tile that is searching will try to tell the RCN that the room is searching. Eventually, they'll all agree, and the value will stop being changed. When the value has been "waiting" for a designated period, the RCN will know that no more tiles are searching.

This is problematic only in as much as there might be an issue with multiple change operations being pushed simultaneously. That'll depend on the platform that the program is running on. Since this is still a thought experiment, we'll assume it's not a problem right now, and move forward.

So, we've got a blind RCN and a bunch of tiles that know who the RCN is. This is somewhat useful, because a thing can happen to/on a tile, and the tile will be able to communicate to the RCN to tell what happened. But how do we do things to the room as a whole? That's the primary purpose. We can call on ALL tiles, and pass the RCN as a parameter, so only the tiles that point to that RCN will actually run the function, but I think that would use a bunch of resources unnecessarily, even if it's only for a blip of time, as each tile was like "Who, me? Oh, never mind." Maybe we go back to that matrix idea, again, except we only really need the oIDs of the tiles, so an array should work fine. So, the RCN, once all of the room tiles are done searching, turns them all off (so status is now idle) and now generates the matrix. We'll probably have to do the all call at this point, but only the one time per room detection, not every time we want to do something to the room.

But still, how do we populate the array? An array is a list of values. You access the items in the array by calling the array and the index of the item. Depending on the platform, you can possibly just create a dynamic array, and pop each tile onto the end of it as it reports in, but I don't think this solution is ideal. In Ion Trail, it was easily done because the RCN could just call an itemAtPosition function incrementing the x and y values through a a pair of for-loops, and pop them into place on a pre-generated array, since it already knew the number of tiles in the room. As this never changed, It was done once at the beginning of the game, and never again. Obviously that solution won't work here, since we've got to allow for non-rectangular rooms, and an unpredictable number of tiles.

I think it might be worthwhile to use a linked list, instead of an array, since it allows for dynamic changes a lot better. The RCN would be the head of the linked list. We already know it's the oldest tile in the room, so we can use the oIDs as a list, starting with the oID. Any older tiles would simply not be called. Incrementing the oID call, look for the RCN value. If the RCN value matches the room, then pop that tile onto the end of the linked list. Then, when you want to do something in the room, the RCN calls the function, then sends the order down the linked list, until it hits the tail, and terminates.

I think that's workable. I want to go home and try it now... I guess I'll let you know how it goes.

05 May 2015

MMO Design Noodling, part 2: Living Economy and Ecology

Read Part 1...

So, this is going to be based in some thoughts I had many years ago, but I'm going to try to incorporate some more recent reading in my thoughts as I go.

Star Wars Galaxies was probably the first time I really thought about it, but what strikes me as the biggest problem with MMO economies is that they're completely open. Money (and in some, equipment/materials) flows into the system infinitely. Theoretically it also flows out of the system in the form of money sinks, crafting, breakage/loss, but in practice, the influx is always much, much faster than the outflux. The reason for this is players. Players will find ways to maximize gain and minimize loss. They'll hoard money and equipment, and learn to not lose equipment that isn't easily replaced (such as valuable weapons/armor/etc). The result is inflation on a massive scale. Certain base-level items will always be available for cheap in most MMOs, because the game ensures that NPC merchants will sell stuff that new players can afford. But once you start wanting to get past the basics, you usually need to start dealing with the player-based economy, whether it be through auction houses, 1-on-1 trading, player merchants, or whatever, because you can't buy the top of the line equipment from NPCs; It has to be quested for or crafted by players.

For instance, in Ultima Online, you could purchase a house for a relatively small sum. But if you wanted to actually put it somewhere, you were generally out of luck, unless you happened to find a decaying house and camp the spot until it fell down, or using player griefing to keep others from refreshing their house. Eventually, if you wanted a house, you'd have to but a pre-placed one from someone else, which meant that the demand was massive, the supply was completely fixed, and as the amount of money that was static in the system increased, the prices soared to exorbitant levels. I'm not going to lie; When Age of Shadows came out, promising empty land for housing, I spent $100 of real world money to buy 5M gold and bought several housing deeds, which I distributed to my trusted lieutenants. It was worthwhile for me to spend real money to get extremely difficult to acquire in-game assets. Though I stopped playing the game a year or so after that, I don't regret the purchase, despite the TOS violation.

So how do you fix this? My thoughts were to have a semi-closed economy. Resources like gold and materials would flow into and out of the player system, but there'd be a finite amount of those resources. Once a resource in the "pool" got low, it would flow into the system more slowly, until eventually it was depleted, or it was refreshed. Money is the easiest resource to demonstrate this.

So, if an NPC pays you to escort him safely to a town, that money enters the system from the pool. If you stick that money in a vault somewhere, it becomes static, and doesn't exit the system. If you pay for a service from an NPC, then the money exits the system, goes back into the pool, and can be put back into the system from another point of access, like maybe a dragon's treasure trove. If players start to hoard large amounts of gold, then NPCs will begin to have less to offer. Eventually, the money may become mostly static, until something changes, such as a raid on a rich player's holdings, or perhaps that player, hearing of such a raid, hires a force of NPC guardsmen to protect their vault.

One thing that I've considered is that as the player-base grows, then necessarily money will grow thinner, even without deliberate abuse. That's why I'm thinking of a semi-closed system. As the player base grows, the pool will grow to accommodate. There may also be a sort of trickle effect, perhaps to reflect the mining of precious metals and the minting of coin.

There are obviously ways this could be abused, which I'm still considering. I'd probably need to consult with people who've made a "career" of exploiting game mechanics to really cover my bases, as I've usually been one to play within the rules as much as possible.

So, how does all of this relate to a living ecology? Well, the ecology is a big source of the materials needed to build and play within the world. If you chop down a tree, you get wood which you can use to build houses, furniture, carts, weapons, and various other pieces of equipment. But you also have a tree stump, and one less tree. The normal system employed by MMOs is to have resource points which can never be depleted, or only temporarily. Trees which can be chopped for wood, and an hour later are refreshed so can be chopped for more wood. Mining nodes which yield 2-5 units of ore, every hour or so. This contributes to the same inflation problem you see with money. The system's normal way of dealing with this is to make the equipment you can make fairly low in value, until you've invested a massive amount of time building a few dozen swords, or what have you.

My thoughts on this are to make the endeavors take longer, but produce more. You take 10 minutes to chop down a tree, it's gone. But you get a whole tree's worth of wood. You spend an hour mining, you're going to get a lot of ore that you can then smelt... If you make a sword, you're not going to bang one out every 5 seconds, but when you've made one, you've also made some significant strides forward in your knowledge, and the sword won't sell for less than the cost of a meal. So there will still be the crafting grind, but in the end it'll take a similar amount of time, but a lot less individual items, and the associated equipment.

And the tree you chopped down? Plant a sapling, and it'll grow back in a comparably accelerated time (it's not going to take several real days of work to create a sword, but it will probably take several real hours) If you don't replant, then somewhere in a deep forest far away, another tree may begin to grow, but that will take significantly longer.

Extending this past wood and ore, things like climate, weather, seasons will have an effect on the recovery and growth of animals and plants. If you kill a lot of wolves, the rabbit and deer populations may grow, and conversely reduce the local plantlife. If you kill lots of deer and rabbits, the wolf populations may move away, die off, or start attacking human settlements. If you cut down a lot of trees, the wildlife in that area will become more scarce. If you never re-use the metal from old swords to make plowshares, you'll have to delve deeper and deeper into the earth to find more ore.

In the end, what I'm looking for is a world where player decisions matter. Players being selfish will eventually create a world bereft of natural resources. Players being good stewards of their lands, and learning to reduce, reuse and recycle will find themselves with more natural resources. Eventually, you may find some players at odds with others over how to treat the land. Eco-terrorists living in the deep woods, declaring themselves as defenders of the wilds, preying on the industrialists who send in their logging teams and their mining operations. In a more balanced place, industrialists will reuse materials, replant the forests amd promote animal husbandry.

I know that UO and SWG both tried something similar, and ran into issues. There was some suggestion that some of the issues were related to hardware limitations, but I doubt that was all of it. What I'm proposing is a bloody complicated system, with lots of small interactions that could eventually snowball into larger, unexpected problems.

So now that I've rambled at length, I'm turning the floor over to you. What problems do you see with the sort of system I've proposed? What solutions do you think might work? How would you address the problems I'm trying to address here?

23 April 2015

MMO Design Noodling, part 1

Introduction: I've done a lot of thinking about this over the years. MMORPGs used to be, at one point, my primary source of entertainment.


My resumé:
  1. Ultima Online
  2. Star Wars Galaxies
  3. City of Heroes
  4. World of Warcraft
  5. Saga of Ryzom
  6. Dungeons and Dragons Online
  7. EVE Online
Plus some demos, trials and Betas here and there.

This list is roughly chronological, which is somewhat telling. The MMOs that are most influential to my preferences are the first few, UO and SWG foremost. They definitely shaped what I consider an MMO, and what I want out of an MMO. We'll start there.

What I want: For me, an MMO is another world to live in and explore. I don't want the experience dictated to me, and I don't want to be constantly retreading ground where thousands of others have been before. I want it to be lived in, not a theme park where you're running from one ride to the next. Ultima Online and Star Wars Galaxies almost exemplified that ideal for me. EVE Online, were it not a ships-in-space game, would be an even better example.

Don't get me wrong. I don't actually dislike City of Heroes or even World of Warcraft. I've played both extensively and enjoyed them for what they were. But they're not what I really want out of an MMO, and they are excellent examples of what I don't want, which is theme park instances of infinitely retreaded content. Sometimes they're excellent content, but eventually it all starts to run together.

Let's get a bit more specific, though.

Dynamic Content: This is probably the hardest thing to do in a game, ever. But this is probably the biggest thing for me. I remember running around as a 20-ish Paladin in WoW, with my beer-keg-onna-stick. 5 levels later, I'm done with it, and I see another 20-ish Paladin with that same beer-keg-onna-stick... that's supposed to be a unique weapon, crafted just for me. I knew it wasn't unique when I got it, but the point remains. Before that, we "rescued" a town, just after someone else rescued it, and right before another group rescued it. It's fun only so long as you can ignore or pretend that you and your friends are the only heroes in the land.

Dynamic Content would create one-off unique experiences. They may end up being slightly generic a lot of the time, but at least you're not going to have the next group of heroes wandering into the area rescuing the same village you just did. There are a couple approaches to Dynamic Content which can actually work side-by-side, so it's not an either/or decision.

The first is content that is generated upon need based on a bunch of variables. An example might be a farmer with a bunch of variables defining resources he has. If he gets low on a particular resource, he may generate a request to get some of that resource. How the player chooses to get it is then up to them. That same farmer might have problems with bandits raiding his farm, so he'll generate a request to get rid of the bandits. Once the bandits are no longer a problem, maybe a bunch of wolves move into the area, so he may generate a request based on that.

The second approach is player-generated-content, and this one dovetails best into the various things I want in an MMO. I'm not talking about quest-creation tools like you found in City of Heroes or Saga of Ryzom, though those are pretty bad ass. The problem with those is that they're mechanically divorced from the rest of the game world. What I mean is that players should have some mechanically supported way to drive activity in the game, such as putting requests up on a message board. Such requests might be a smith wanting to buy ore, a miner wanting a mine cleared of threats, or a merchant needing goods moved from one place to another.

Living World: This obviously dovetails strongly into the above. I don't want a world where everything stays the same. This is a reason why, given the skills, the team and the budget, I would still never pick a licensed IP. I want the players to be able to shape the world to their collective will, and IP owners and fandom might get a little... cross about that.

I mean this on a pretty epic scale. Like, so epic that it might actually turn out to be completely impractical. The setting will have cities, but those cities will be capable of being conquered, burned to the ground, rebuilt, abandoned. Governments, countries, all will be capable of being taken over by players, and run as they see fit. The world on Day 1 will look very, very different from the world in one year.

I also mean it on a much smaller scale. You'll be able to build a house, set up a shop, and eventually build a tidy little mercantile operation, utilizing other players to help with tasks you can't or don't want to do. Maybe you'll build it in a prosperous city, where you'll have the protection of guards and laws, as well as regular traffic. Maybe you'll find a crossroads somewhere for your endeavor, which might in time lead to the birth of a village.

These are just the key concepts I want in an MMO, but there's a lot more, in terms of systems, gameplay and world design I want to talk about.

Next time, I'd like to dig more into the idea of a virtual world, economy and ecology, and how they all tie together.

What are your thoughts? Which MMORPGs have you played, which were your favorites, and why?

24 November 2014

Unchosen 32

Doc was born and raised in Nova Vi, which explains a lot about him, some good, some bad.

Nova Vi was a soft town. Nestled deep in a blind canyon, it was naturally defensible, and the unsealed vault that was at its heart, full of books and knowledge, allowed the inhabitants to make a better life than could be found in most places in the wastes. A long while back they'd cut a deal with a few of the stronger raider groups, and eventually they'd managed to form a lasting symbiosis. The former raiders lived large in Outertown, benefiting from the knowledge they protected in Innertown, which is where the scientists, scholars and doctors, with their technology and advanced ways lived.

Doc was from Innertown, and he'd been talented even for someone raised to it. If it hadn't been for the worm, he'd probably still be there. I still hadn't quite figured why he'd come with us, and there'd been many times I thought the soft, idealistic kid would die in the wastes. In some ways though, I guess he did. He still walked, talked and cracked the same ironic grin, but that youth who'd followed her out into the unknown was dead and buried.

Doc didn't say much as we wended our way into the canyon, but I could see the mix of emotions on his face. One moment he almost looked eager, young again in his enthusiasm for his former home. At other times, almost afraid, and still others... contemptuous? It was definitely a complicated homecoming for the kid, that much was obvious.

Just one more bend of the canyon, and we'd be within sight of Outertown.

12 December 2013

Unchosen 31

It was a few days before we were completely free of the ruins, and weeks more before we were recovered enough to move on. We'd stopped back into Leah to let the townsfolk know that we'd failed. They took the news stolidly enough, and Chasity never said a word. I guess it was a hard life, even in the pretty little township, and loss wasn't something anyone was unfamiliar with. From there, we headed back out into the world again, heading north again, trying to regain the trail of the crew that had taken the object of Her quest.

The object of Her quest. We knew a little bit more about it, but not much. She'd told us some, but though trust ran between us like an electrical current, this was the one thing she'd always played very close to the chest. We discussed it between us in the evenings, what it was for, what we'd do with it if- when we managed to get it back. We didn't really even have a plan to do that, but getting it back, finishing Her quest, was the only thing we had. 

So we wandered. We followed hints, rumors, any thread we could pick up, from junktown to village to ruined town. Weeks passed. A month. Then we rolled back into Doc's hometown, Nova Vi.

12 November 2013

Unchosen 30

I remember pain. Searing pain all over, but mostly in my back. That's what I came back to, after blackness.

After the pain, there were voices, urgent, nearly frantic at first, then calmer. Flickers of light, the sky, a fire. It was all muddled for a little while, but after a little while, it started to clear up. I tried to sit up, but the agony came back and I lost myself for a while.

The next I remember, it's dark, with a flickering fire, barely big enough to heat coffee. Except, we didn't have coffee, I remembered. It'd been a month since the last of it ran out. I didn't try to sit up this time, just turned my head. The pain flared again, but not enough to put me out this time. My eyes focused, and I found myself looking at the slack-jawed face of Tex, laid out on his bedroll next to me. His throat was still bandaged, and he was drooling, but even in the firelight I could tell that his color was much better. I turned my head again, bracing for the pain, and found Chasity and Doc, their murmured conversations stilled, staring at me across the tiny fire.

"Welcome back, you old geezer," Chasity said with a grin. I didn't answer at first, just looked her over, trying to recall what had happened. I saw the heavy bandages around her forearm, and it all came back to me. The beast in the ruins, with the acid spray. It'd gotten Chasity first, and then... Nothing. I couldn't dredge up the last bits, other than some vague recollection about the antenna.

"I got some bad news, gramps," said Doc, his voice grave. I let my eyes focus on him, searching his expression. He'd pulled something out of his pack, and held it in his lap. After a moment, he lifted it up, letting the faint light from the fire shine through it. "Your duster didn't make it. I figured you might want to say a few words before we bury it."

15 October 2012

Unchosen 29

We had a chance, but the fight wasn't over yet. There was still no reasonable chance of fleeing and getting everyone out alive, and if we'd learned anything since coming together, it was that you don't leave your comrades. The centipede was tapping its way toward me, the spur dripping acid, as though it couldn't wait to blast me into a sizzling puddle. I lined up my revolver again, knowing we wouldn't be able to move Tex before it got to us. If I was lucky, another shot could cripple the other antenna, and maybe give us enough time to get away.

Once again, I ran my marksmanship drills through my head as it the head bobbed steadily closer to me, and the uninjured antenna flicked across the rocks and broken terrain trying to find me. When I squeezed the trigger, I knew the shot was true. The shot was true, but luck was against me. The monster jinked its massive head 6 inches to the right, and the bullet tore a hole into the carapace, but not close enough to injure the antenna. At that moment, the antenna lashed out and caught my arm, and I knew we were dead. It oriented the spur on me, and I raised my second gun to unleash hell before it got me.

Then Chasity screamed again, this time a sound of defiant fury, and as she did, she cut loose with the submachinegun in three buzzsaw bursts. The centipede screamed as the bullets tore into the carapace all around the uninjured antenna, and the final burst tore it completely off. The spur erupted with acid and I turned and threw myself atop Tex, hoping that Doc would find some sort of cover.

02 October 2012

Unchosen 28

Everything I'd ever learned about marksmanship flowed through my mind as I sighted down the length of the barrel. Breathing, steady and slow, wait for the natural pause. Trigger squeeze, tip of the finger, not the bend, smooth squeeze, don't pull. Sight picture, the base of the antenna squarely framed by the rear notch, bisected by the sight post. My hand had never seemed so steady, so sure. Everything slowed to a crawl, and as the breath left me, I paused for a split second and took up the slack on the trigger.

That old revolver roared in my ears, but my eyes never left the target. I knew the shot would go true, but I didn't know if it would be enough. As the bullet ripped through the chitin and into the joint, there was an explosion of clear, viscous liquid, and the monster screamed again, but the antenna didn't go flying off like I'd hoped. The centipede turned, orienting on me, and the antennae lashed out toward me.

It was only then, after beginning to think that I'd failed and doomed us all, that I saw how that antenna flailed wildly, no longer tapping with the same precision as the blind beast tried to find me. I hadn't taken the antenna off, but I had crippled it. We had a chance.

26 September 2012

Unchosen 27

Chasity's scream rent the air. The mortal agony in her voice made me clench my teeth. I shifted my grip on the litter, getting one hand free to raise one of my revolvers to aim at the monstrous bug. Only... where to shoot? Everwhere on the massive head was armored, and it didn't have eyes, or that would have been the obvious target. The acid spur seemed risky; Who knew what rupturing that might do? As I was considering my target, I felt a hand smack weakly into my leg. I looked down into Tex's nearly delirious eyes as he murmured something I couldn't hear over Chasity's scream, and another chatter of submachinegun fire. Damn, but that girl was tough.

"The antenna, you old fuck," Tex managed in the brief silence that followed. "Shoot the antenna."

I looked up to see Chasity hunched behind a rock weeping copiously while trying to slap another magazine into the gun one-handed. The centipede's antennae were whipping furiously, tip-tapping the ground, working their way closer to her hiding spot. It seemed to have forgotten the rest of us in Chasity's determinedly continued assault. It was obvious that she didn't expect to get out of there alive, and she was giving us the opportunity to get away.

To hell with that.

I thumbed back the hammer on my revolver, leveled it and squinted as I brought it to bear. Chances were, I'd only get one clean shot.