Corrowland

From Adam Colton
Jump to navigation Jump to search

Development

In Progress

Nothing right now, I'm going to make Space-chess as a learning project in Go first. If, after completing that, I feel I'm ready to start on this I will set an in progress list. I may choose to create an intermediate project for more practice, but I hope that is not necessary.

A Model of Expertise

One of the things I want is to encourage expertise without enforcing it. By enforcing I'm referring to the games that limit your character to a specific skill set. I want players to have one or two skill sets by choice, not constraint. The real world effect that I want to mimic is economies of scale.

A player who is a mid-level sword-maker can invest their time and resources in getting better sword making equipment or they could invest it in - say - farming equipment. The incentive to invest in farming is that their character needs food and if they grew it themselves, they wouldn't need to buy it.

To counter that we need to keep it balanced so that a farmer can sell food to the swordmaker at a competitive margin cheaper than the farmer can grow it themselves. The catch is that "cheaper" means more than money, as a matter of fact it mostly means time. So our sword maker can spend a few gold and one hour setting up a low level farm plot which will produce one food a week. Or, they could spend that few gold to buy a new piece of equipment and the hour learning a new skill (see skill discussion - skill ALWAYS applies to the player not the character) and that will return more than the farm plot.

The other thing that should incentivise this is that even master craftsmen will not always - and not even mostly - produce a master craft. Instead, a given setup will produce its maximum only 10%, a level below 50%, two levels below 30% and three below 10%. This means that for every Master Sword there are 5 Grand swords. And for every Kings Loaf there are 5 Royal Loafs. So most players who will only need medium to good equipment will find the market is filled, but trying to buy the very best will be expensive.

I think the mathematical model this follows is Σ 1/n. This produces an infinite series, but one of diminishing returns.

Happiness

I need a better term but there are several forms of happiness. Collectively these influence everything - hit rate, quality of crafts.

  • Social - increases when around lots of other PC or when interacting directly with PC
  • Well Being - Eating healthy items, sleeping and exercise
  • Vice - Eating un-healthy items, drinking alcohol and smoking, note that there is a balance to be struck between well being and vice
  • Zen - Comes from meditation, nature and simple beauty (certain types of decoration)
  • Wealth - Comes from having and being around nice things


Maps

Maps are toruses. There will be way-points between worlds. The worlds will have properties like PvP, city, open. Each world will be its own server and will need a self balancing mechanism - as the population of a world rises, so will disincentives to be there. Fewer resources, more Trolls (high level mobs with low level drops).

Inventory

You can only carry two items at a time (or one two-handed item). You can equip items. This includes a toolbelt and backpack. Items have a volume and weight. The size of the backpack determines how much volume it can hold and the material determines the weight. Weight will also slow you down (only relevant in battle). You can put down the pack, but that takes a turn. Equipping anything from the pack takes a turn, but anything from the toolbelt is instant. Early on, I want to be able to build wagons and push/pull them around so that you can move loads of equipment

Real-Time and Minions

Taken from Reamde, the game will happen in real time and you can never leave. So you can give your character tasks to do and even if you're logged out, they will continue to do them. This will be very Dwarf Fortress style. Also from Reamde, you can build hierarchical relationships between characters and any task given to a character can be carried out by minions. The game will have perma-death, sort of. A character can die and they will drop everything on them, all commands given to them will be forgotten and the relationships will lost. But because characters have no level, it's not a huge loss.

Valet Key

To help to protect against bad things happening when you can't get to your character, there is a valet key mode. You can issue a valet key (username and password) to a friend and limit what sort of actions they can take with your character.

MMO

Some features are necessary to make the game "mmo"ish.

Locks and Permissions

Locks on chests and doors are account based. So if a character locks a door and dies, you still have access to your stuff. You can also create groups and assign access to a whole group.

Simply using another persons things without their permission can have a fine levied against you - leaving way for debt collectors to hassle you. And if the debt gets high enough even kill you and loot your body.

Admin rights to locks can be given away or sold.

Cement

A cement block can be placed and mined like a normal block, but over time it starts taking longer to destroy until it reaches a maximum. The idea is that you can build a fortress or castle (with a locked door) and it will be very difficult for other character to destroy.

With Blueprints this may not be necessary. Blocks could instantly 'set'. Because a Blueprint will never make a mistake, you don't have to worry about being able to remove a block.

Trades

Characters can trade. Possibly create contracts? Outstanding offers? Stores? This also requires currency.

There should be a fulfillment contract - I pay $100 up front for a sword meeting certain qualities. If they fail to deliver, I get $110 back. I would like to allow for more complicate contracts - I pay $100 up front and receive bread everyday for a year, and each day that I don't, I get $1 back. I could sell that contract (so could the baker). If someone goes bankrupt, then the money they owe is lost. But I could get insurance on a contract. Players don't have to disclose wealth for a contract, but they can disclose some or all of their wealth to make people feel more comfortable. This goes into the "soft limit on skills" issue - you can't spend every penny you have, you want to amass wealth to get better contracts.

Actually, it seems like there is room for a sort of domain specific language here. A "contract" has a two way exchange (though one or both directions can be void) and conditions. The conditions allow scripting against specific game conditions and can modify the exchange. The contract then results in one of several outcomes - completed, both parties failed, A or B failed, both parties agreed to void and so forth. The outcome of one contract can be used as the condition in another. So a contract may state that A will sell B a loaf of bread for $2 in 5 days and they have 24 hours to fulfill. If either part fails to fulfill the contract, they owe a debt of $0.5 to the other party. Now perhaps A has a 40 of these contracts, so they make a deal with another player (C) that A pays $10 up front to (C) and if more than 30% of those contracts fail than (C) pays A $30.

A technical note - there will be a distinction between money and debt in a contract. So if a contract states a payment of $30, you can choose to not fulfill. But a debt is fulfilled automatically.

Reputation and History

Players and some possessions will track reputation and history. Valued possessions (tools and weapons of a high enough quality) will track their history. Created, owned, sold, stolen and given. Players will track certain elements of their history (kills, high quality crafted items, trades) and this will be summarized into a reputation.

Factions

Initially I was against factions, but if I make it so that you cannot attack anyone in an allied faction, then some zones become safe by default.

Goals

I don't want leveling. The player levels, not the character, and they do it by learning about the game. The max level is determined by the complexity of the game.

Players should be able to have a real effect. This is the tough part - I want a structure where players can work together and build social hierarchies and the players who are most invested can have massive impact. Towns are not placed by the server, players build them.

Vehicles

I've wanted to be able to do vehicles in game (and I still want to) but looking at Minecraft, it would be possible to do some "Moving Castles" if moving a block didn't break the Redstone or the torches.

The simplest one that I think would be reasonable to implement and be a lot of fun would be boats. If people could build large sail boats, I think that would be fun.

Tools

In order to expand the tech-tree, there will be a lot of emphasis on tools. Like DF, there will be a quality aspect to everything. The quality of tools will be one of the factors in the quality of the materials they produce. Tools will also be used in a toolbench. Similar to the MC workbench, but with a few dedicated tool slots. So to make a piston, it may require a hammer and pliers. Tools can be swapped, but they can be left in the toolbench.

I do like the Terreria model where you don't have to lay things out specifically - if you have the supplies, tools and are at the right work bench, you're just shown a list of things that you can make (and what they cost). Falls in the "making the game more fun" category, while still leaving the complexity of requiring you to know what is need to produce something.

I also want to re-iterate; everything has a quality aspect to it. To make a top quality, steel pick-axe you need high quality wood (different areas will have different quality wood), cut with a high quality lumber axe, split into planks with a high quality carpenters axe. These planks must then be dried in a high quality kiln with high quality coal. Then they are shaped into a medium length handle - this requires a tool bench, hand-saw, and plane, all high quality. Then you need raw iron, smelted (quality of coal, flux, crucible and smelter) to steel. At each point in the crafting process the mood of the craftsman effects the work. Mood is effected by where they have been, how rested they are, what they have eaten recently. So you want a home with nice things (statues, paintings, nice floors, finished walls) to put you in a good mood. You want to be rested, but not still bleary. You will want to eat a good (quality) meal. The work room will also effect the final product, so again it should be decorated with nice things, but now they should be nice work things. When all of these are met perfectly, you are guaranteed a high-quality outcome. Of course, not all will be met perfectly each time. Every thing that falls short reduces the odds of a high quality tool.

Quality Tiers

  1. Crude
  2. Low
  3. Average
  4. Above-Average
  5. High
  6. Rare
  7. Flawless
  8. Master
  9. Epic
  10. Legendary

Roughly speaking, the power increases linearly, but the effort to produce them increases geometrically.

Magic

Energy

Magic is rare. It's not exactly powerful - a basic 'fireball' spell would be roughly as powerful as an arrow or bolt, but would "cost" dozens of times more. The advantage of magic is the ability to infinitely compound it.

To charge a wand requires that you 'spend' a crystal - diamond, topaz, ruby. These crystals can hold energy (at different conversion and loss rates). The basic process would be to build a charging stand, place a crystal in it along with an energy source (coal, sunlight) and let the crystal absorb the energy. The crystal will charge until it's absorption rate is equal to it's loss rate. When the crystal is removed from the charging stand, it starts losing energy. When the crystal is imbued into the wand the crystal is destroyed and the wand holds the energy (at no loss).

Extensions on this may be the ability to transfer energy from several crystals into one, yielding a much higher conversion (but the curve would peak quickly then drop slowly, unlike normal charging that would peak and plane). Or you may focus light using reflectors and lenses. There could be temporary modifiers to the change rate (gains as well as loss, this allows a crystal to be charged then 'frozen' temporarily allowing players to reasonably work with a powerful crystal before it loses most of it's energy).

A highly complex operation may use many reflectors to focus light onto several crystals, which are then all frozen and transferred to a central location and all their energy is transferred to a single crystal. This would allow one crystal to be hundreds of times more powerful than a normally charged one.

Jeweled

Crafted items can be jeweled for additional bonuses (like DF). So a hammer might feel lighter, a decanter increase water purity, a sword increase damage against NPC enemies.

Types

This is a seperate line of thought from the rest of this section.

  • Runes - enscribing patterns of runes on itmes give it properties.
  • Alchemy - combining item into magic components (metals, potions)
  • Enchanting - Embues items with special properties
  • Sourcing/Sorcery - Requires a source, but allows the transfer of energy (fireballs, lightning, ice)
  • Archane - Very rare magical items can be activated, very powerful. When multiple archane sources are brought together, their powers change, but beyond a certain level of power, they tend to backfire
  • Spells - very low level magic. Reading a script (which takes time) gives a buff.

Combat

This will be one of the keys. This needs to be fun for an 'average' player. Lots of monsters with interesting techniques for fighting them - like the old SNES games, you have to learn the holes in their patterns and exploit them.

I'm not exactly a 'normal' player (I don't like most of the games other people do) so I'll need to build a test bed that people like. This seems divided into 'tactics' and 'strategy'. Not sure about the exact division, but strategy seems to be the plan and tactics the execution. One of the big challenges will be how to have player ranks with out levels so that advanced players aren't simply slaughtering less skilled players. The other half is that I don't want to ban bots but I want to keep the game fun for people. How do you design a system that is tactics heavy, strategically interesting and tuned so that people have the upper hand over computers? Look to Go.

As stated earlier, there is no leveling. So I need to make a combat system that is 'technique' heavy and equipment heavy.

Tools and Weapons

This section was getting very long and it was just a list. It has been moved to Corrowland Tools and Weapons so that this document can stay focused on ideas about how the game should play.

Clock-work

I'm considering clockwork instead of redstone. The way that energy would be conveyed would be with rotating shafts. Each part in the system will have a force, resistance and dampening - dampening being a linear increase in resistance in proportion to rotational speed. I believe by setting the system up this way, it should be possible to solve the equations fairly easily for how fast each component will spin. A good basic test would be any gear-locked system.

Parts

  • Gear-box
  • Belts
  • Wheels
  • Differentials

Instead of Blocks

Something a bit more like lego - pieces fit into the world in a 3d grid, but they re-orient at angles, the pieces themselves can be curved, they can be planks or wall. By creating a wide variety of shapes, the user can create something that will look more like Fable or Skyrim but can be constructed like Minecraft (or Kerbal).

The Ground

The ground will be a mesh. Doing something like digging will distort the mesh. Unlike Minecraft (but much like DF) you can't really carry around a lot of dirt with you, you have to put it somewhere.

Economy

This is a crucial element. Fundamentally, players are trying to leverage their in-game, niche skills to acquire wealth.

Bit-Coin

Actually, Satoshis, the game can use this as it's currency. Even a large drop would only be the equivalent of a few pennies, but it's like dollar poker, winning something of values makes the game more serious. Players would have access to their accounts, so they could "cash out" at any time, but they cannot transfer money into the game. Players can also use the in-game currency to pay their monthly fee, or pay in bit-coins (presumably at a discount). Bit coins acquired by the server this way (or purchased) will then be dropped as loot.

Ownership

For most items in the game, possession is ownership. But for a few items it's a little more complex.

High Value Items

Certain items at the top two quality tiers have owner and track their history. All tools fall into this category. Theft of a commodity is not tracked, but theft of a valued item is. Returning a stolen item to its owner grants honor. Stealing an item detracts honor, and a little more than stealing an item.

Locking Structures

Any item that can be locked (doors, chests) have owners. They do not track history or even have any special action when damaged by another player.

Real Estate

Some land is owned. Placing a structure on land you don't own or damaging structures on land you don't own is vandalism. This reduces honor. If you perform enough vandalism, you will be classified as a brigand. You can safely build on land you own. No one can build on city land. These are thing like street. Building on city land will also count as vandalism. Any one can build on open land, but damaging a structure on open land does not count as vandalism. The land owner can grant access to other players. Doing this means that placing or removing structures on the property does not count as vandalism.

To convert open land to property, you have to plant a flag and defend it for some period of time (probably 24 hours). The position of all flags are publicly broadcast - so planting a flag is kind of sending out a 'come and get me' message.

Land reverts back to open if the owner does nothing with it for a period of time (something like 2 months). Simply stepping foot on the property or having a player you've granted access step on the property is enough.

Contracts

Contracts are written agreements between players. A contract has text, an expiration date, an exchange and, if it's an open contract, reputation. The text defines (in plain language) what the players are agreeing to. The expiration date is the point at which the contract state is sealed. The exchange is what the players are trading. each player can add items to the exchange. When both players agree to the exchange, regardless of date, the contract is over. If the contract is open, both players can rate the other (positive, neutral or negative) and write a review. This is can be seen by all players.

Hopefully, this is enough incentive to build trust and reputation so there can a functioning, complex economy. Given enough players, a financial class should arise that deals in complex trades.

Brigand

Performing vandalism labels you as a brigand for a short time. Murdering another player in a city labels you a brigand for a long time (I'm not sure how long - days, until you are killed, maybe it deducts a whole lot of honor and until honor is back to 0 you remain a brigand).

Killing a brigand increases your honor rather than decreasing it, and does not turn you into a brigand. You also get all of the players loot. When a brigand is attacked by a vigilante, they can defend themselves without further decreasing their honor.

Safe Mode

Players should be able to turn on a safe mode to reduce the risk that they will accidentally become a brigand.

Skybox

I would like to create the feeling of a really big world. I think this can be accomplished by having the server render perspectives of segments (perhaps every 20 degrees or so) then several skyboxes can be nested around the player stitching together these images - that should allow you to "see" very far with very little computation (or rather, a lot of shared computation). We can also have multiple models of each entity with different poly counts. So anything more than a few "meters" away drops into a medium or low poly mode. I'm not sure if the engines do this for me.

10/8 Thoughts

Make the environment a classic (WOW, D3) mesh with some tools to modify it - shovels, axes. Parts snap together Lego/Kerbal style. Now, to build a building, you flatten the world mesh then lay "the first stone" and everything builds on that. Things like tools and vehicles can be in a "use" mode or a "modify" mode (perhaps not necessary).

To mix DF/MC you have a character and your control shifts between direct and command. Fundamentally everything is command, but some commands feel more like operation - so walking around could be first person and feel like Minecraft (or 3rd person). Then you could give a complex command like "build this" or "go over there" and the character would start doing that - you could switch to a second person perspective and move the camera to anywhere within a meter of your character. You can also tack commands on in this mode. So if you were building something, you could command that a part be placed and while the characters is going to get that part, you could be looking at the piece of work and figuring out the details of the part-after-that.

Most classic MMOs place hard limits on skills. But the real world places limits by having it take a LOT of time to master something. I think we can go this route. To truly master a skill will take complexity and many high-level, valuable tools. We can do some manipulation of the world to make sure only so many of these come into existence. Special items can be created by risking these tools (as opposed to wear). So to craft a master-blacksmith-hammer, you need a greater-blacksmith-hammer, and you will lose it and there's only a 50% chance that you will succeed (or perhaps a 10% chance of master-level, 40% chance of greater-level, 30% rare-level, and 20% common-level).

Everything should have purpose - and a lot of little calculations that add up. A rug may reduce fatigue when walking on it, it may help regulate temperature, provide happiness. Food and potions should overlap. A heavy meal will mean it is longer until you are hungry again, but it also means you are slower for a while. A master-baker can make bread that staves off hunger longer without the slowing effect, perhaps buffing against fatigue. But a loaf of bread of that quality requires wheat grown in well-cultivated soil. The land had to be fertile to begin with, then a high level plow needed to be used - top quality grain, harvest by a scythe (again - quality). It needs to be threshed and milled. The water needs to come from a pure source, held in a high quality and clean container (another chance to imbue the final product). Starter is mixed in, the bowl matters, the oven matters, the wood to fuel the oven - and the axe it was cut with, where it grew. All of these factors will effect a single loaf of bread. The idea being that the wealth to acquire all these things is too high, there detailed use too complicated for a single player. Instead a baker will buy high quality flour, bread and water and own top quality bowls, spoons, pans and an oven and will use these to make a high quality loaf of bread. But a loaf of bread of this quality would be valuable to players looking to get an edge in a battle, or when crafting a master-piece.

Somethings should also take a long time. Sleep, building some things - I'm not sure what else. But you queue these things up and log off. Some things your character will do by default like sleeping and eating, so if you don't log in for a few days your character will continue to eat and sleep as needed. You could do something like queue up your character to make a high level weapon that may take several hours to finish, log of and log back on when they are done.

While there are no "set classes", the game will still break down into rough specialties. Hunting, farming, gathering, blacksmith, baker, real-estate and so forth. I should focus on making inputs from each skill required by each skill. You can't live in isolation.

While it's not my cup-of-tea, I believe for the next MMO to succeed it needs a strong social component. With no extra software you should be able to talk to your friends, set up chats dynamically on the fly - even out of game (you're at work but you want to listen to your friends). This goes beyond a simple friends list - circles and such. You be able to arbitrarily divide up people and give them permissions (or deny them). You should be able to see what your friends have accomplished, set up raids (builds?) and such right in the game. That's how we build something that hook people - focus on social, creative and status.

10/9 - 1.0

I want to build a little mock of this in a Rouge Like. The world will be a series of dungeons, leaving each room small and 2D. Players move around and battle monsters. Turns are 1 second. As a mock-up of what I want to do in the long run; no leveling, equipment is king and everything can be built. I would also like to allow for some environment modifications at some point. After a little light testing, given that from any room there are 6 directions you can travel, putting a 27% probability on each of those passages means the cavern should expand infinitely.

5/7/2013 Notes

I've been giving a lot of thought to player experience. I've been working on an idea of player classes which would be a lot like user stories. I want casual players to have a good experience, be able to have fun and contribute to the game with out getting deep into it. I want there to be 'professional players' - easy to motivate them if the currency is BitCoin and is exportable. These players could be leveraged like 'Mechanical Turk'; complex tasks that are easy to test for success but hard to automate, they can be paid to do. Serious players are deep into the mechanisms of the game. I expect them to be far less balanced (ie, more specialized) players having what amounts to a profession. This is the class that I expect to drive the game.

While thinking along these lines I focused in on the casual player and came up with some good stuff. A typical player is going to want to get some gear, fight something and build a house (if they don't want to do these things, they're playing the wrong game). So there should be a 'noob' area. When you activate an account you get a plot in one of these villages. The plot is big enough for a small house. These noob villages will be guarded by pros. This means we need:

  1. Land ownership
  2. Contracts
  3. An alert system

So, if a noob is being attacked, one of the paid guards would come and fight the aggressor. It would be helpful to also have a reputation system so that more experienced players will make more money and noobs will be turned away.

It should take a new player 5-10 hours to build up a decent set of armor, gather the materials and build a house. During this time they should constantly be faced with a series of small challenges - how to fight, how to mine, how to craft. The player can also sell their land back to the game at any point, presumably they will want to do this after they've bought better land.

Blueprints

One of the other lines of thought I've been working on (unrelated to above) is blueprints and bothavior. I like the idea of blueprints. They should function as a program for your character. Given access to the necessary resources, the blueprint would build anything. If you are in a safe area, you could even log out and let your character keep working.

To make Blueprints feasible, there will also be sandboxes. A sandbox will be the core of the game engine running in a world that the player has some control over - much like the Minecraft creative mode. As more players log into a sandbox, it is given more computational power. These sandboxes would allow a player to record building a house as a blueprint. Blueprints can be kept private or shared.

Governing

I didn't get very far down this line of thinking, but there may be a way to set up a system of governing. A group of players can select some are of ungoverned land and nominate themselves to govern. If some percentage (probably 80%) of the land in that territory elects their rule then they will have extended power over the area. They can levy a tax against the structures in that land and if the owners fail to pay, eventually the government can seize their property.

Counter AI Systems

One objective is to design the whole system as a set of APIs. This way, others can develop front ends. An effect of this is that AI and automation will be easy. To some extent this is ok, and even supported - I want people to be able to automate repetitive tasks. But I don't want the game overrun with AI bots. To achieve this, I want to embed NP complete problems that AI are poor at.

  • Go - high branching and pattern recognition
  • Backpack problem
  • Traveling sales man
  • Havana

Further - though this is unrelated to AI - I want these system balanced between different types of human thinking. Some are going to be Baysian style strategic problems (like poker), others will be like the Bean Game (I'm terrible at it, so I don't know what to call that). The only thing there's not is luck.

5/9/2013 Notes

Thinking more about player interaction. Rather than a complex system of contracts, I think the same thing could be accomplished with three easier pieces. Exchange, contracts and reputation. Exchanges are simple, I give you x, you give me y, end of story. Contracts are also simple - a written agreement between two players. There is no scripted component. Contracts are either open or closed. Any open contract gives each player the opportunity to submit a review up until a set date. The reviews only become public either when both players have entered their review or the date is passed. Reputation is also simple, each party in a contract give a satisfaction rating to the other; positive, negative or neutral along with a comment. If the date expires, the contract is automatically given a neutral rating.

While this system pushes a lot of the complexity onto the players, it should be able to achieve anything a more complex system could, just with a lower accuracy. But it gets more flexibility for less coding cost.