Rework game-planning docs for new manual
This commit is contained in:
parent
fcb8f3ff9f
commit
cde208e998
1 changed files with 133 additions and 133 deletions
|
|
@ -1,107 +1,106 @@
|
||||||
# Game Planning
|
[prev lesson](../Starting-Part2) next lesson
|
||||||
|
|
||||||
|
# On Planning a Game
|
||||||
|
|
||||||
|
This lesson will be less hands-on and more introspective. We'll go through some general things to think
|
||||||
|
about when planning your game. In the following lessons we'll apply this to plan out the tutorial-game we will
|
||||||
|
be making.
|
||||||
|
|
||||||
|
Note that the suggestions on this page are just that - suggestions. Also, they are primarily aimed at a lone
|
||||||
|
hobby designer or a small team developing a game in their free time.
|
||||||
|
|
||||||
|
```important::
|
||||||
|
|
||||||
|
Your first all overshadowing goal is to beat the odds and get **something** out the door!
|
||||||
|
Even if it's a scaled-down version of your dream game, lacking many "must-have" features!
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
Remember: *99.99999% of all great game ideas never lead to a game*. Especially not to an online
|
||||||
|
game that people can actually play and enjoy. It's better to get your game out there and expand on it
|
||||||
|
later than to code in isolation until you burn out, lose interest or your hard drive crashes.
|
||||||
|
|
||||||
|
- Keep the scope of your initial release down. Way down.
|
||||||
|
- Start small, with an eye towards expansions later, after first release.
|
||||||
|
- If the suggestions here seems boring or a chore to you, do it your way instead. Everyone's different.
|
||||||
|
- Keep having _fun_. You must keep your motivation up, whichever way works for _you_.
|
||||||
|
|
||||||
|
|
||||||
So you have Evennia up and running. You have a great game idea in mind. Now it's time to start
|
## The steps
|
||||||
cracking! But where to start? Here are some ideas for a workflow. Note that the suggestions on this
|
|
||||||
page are just that - suggestions. Also, they are primarily aimed at a lone hobby designer or a small
|
|
||||||
team developing a game in their free time. There is an article in the Imaginary Realities e-zine
|
|
||||||
which was written by the Evennia lead dev. It focuses more on you finding out your motivations for
|
|
||||||
making a game - you can
|
|
||||||
[read the article here](http://journal.imaginary-realities.com/volume-07/issue-03/where-do-i-begin/index.html).
|
|
||||||
|
|
||||||
|
Here are the rough steps towards your goal.
|
||||||
|
|
||||||
Below are some minimal steps for getting the first version of a new game world going with players.
|
1. Planning
|
||||||
It's worth to at least make the attempt to do these steps in order even if you are itching to jump
|
2. Coding + Gradually building a tech-demo
|
||||||
ahead in the development cycle. On the other hand, you should also make sure to keep your work fun
|
3. Building the actual game world
|
||||||
for you, or motivation will falter. Making a full game is a lot of work as it is, you'll need all
|
4. Release
|
||||||
your motivation to make it a reality.
|
5. Celebrate
|
||||||
|
|
||||||
Remember that *99.99999% of all great game ideas never lead to a game*. Especially not to an online
|
## Planning
|
||||||
game that people can actually play and enjoy. So our first all overshadowing goal is to beat those
|
|
||||||
odds and get *something* out the door! Even if it's a scaled-down version of your dream game,
|
|
||||||
lacking many "must-have" features! It's better to get it out there and expand on it later than to
|
|
||||||
code in isolation forever until you burn out, lose interest or your hard drive crashes.
|
|
||||||
|
|
||||||
Like is common with online games, getting a game out the door does not mean you are going to be
|
You need to have at least a rough idea about what you want to create. Some like a lot of planning, others
|
||||||
"finished" with the game - most MUDs add features gradually over the course of years - it's often
|
do it more seat-of-the-pants style. Regardless, while _some_ planning is always good to do, it's common
|
||||||
part of the fun!
|
to have your plans change on you as you create your code prototypes. So don't get _too_ bogged down in
|
||||||
|
the details out of the gate.
|
||||||
|
|
||||||
## Planning (step 1)
|
Many prospective game developers are very good at *parts* of this process, namely in defining what their
|
||||||
|
world is "about": The theme, the world concept, cool monsters and so on. Such things are very important. But
|
||||||
This is what you do before having coded a single line or built a single room. Many prospective game
|
unfortunately, they are not enough to make your game. You need to figure out how to accomplish your ideas in
|
||||||
developers are very good at *parts* of this process, namely in defining what their world is "about":
|
|
||||||
The theme, the world concept, cool monsters and so on. It is by all means very important to define
|
|
||||||
what is the unique appeal of your game. But it's unfortunately not enough to make your game a
|
|
||||||
reality. To do that you must also have an idea of how to actually map those great ideas onto
|
|
||||||
Evennia.
|
Evennia.
|
||||||
|
|
||||||
A good start is to begin by planning out the basic primitives of the game and what they need to be
|
Below are some questions to get you going. Depending on your game, there are many more possible questions you
|
||||||
able to do. Below are a far-from-complete list of examples (and for your first version you should
|
could ask yourself.
|
||||||
definitely try for a much shorter list):
|
|
||||||
|
### Administration
|
||||||
|
|
||||||
|
- Should your game rules be enforced by coded systems by human game masters?
|
||||||
|
- What is the staff hierarchy in your game? Is vanilla Evennia roles enough or do you need something else?
|
||||||
|
- Should characters be able to send mail (IC/OOC?) to each other in-game?
|
||||||
|
- Should players be able to post out-of-characters on channels and via other means like bulletin-boards?
|
||||||
|
|
||||||
|
### Building
|
||||||
|
|
||||||
|
- How will the world be built? Traditionally (from in-game with build-commands) or externally (by batchcmds/code
|
||||||
|
or directly with custom code)?
|
||||||
|
- Can only privileged Builders create things or should regular players also have limited build-capability?
|
||||||
|
|
||||||
### Systems
|
### Systems
|
||||||
|
|
||||||
These are the behind-the-scenes features that exist in your game, often without being represented by
|
- What are the game mechanics? How do you decide if an action succeeds or fails?
|
||||||
a specific in-game object.
|
- Do you base your game off an existing RPG system or make up your own?
|
||||||
|
- How does the character-generation work? Walk from room-to-room? A menu?
|
||||||
- Should your game rules be enforced by coded systems or are you planning for human game masters to
|
- Does the flow of time matter in your game - does night and day change? What about seasons?
|
||||||
run and arbitrate rules?
|
- Do you want changing, global weather or should weather just be set manually in roleplay?
|
||||||
- What are the actual mechanical game rules? How do you decide if an action succeeds or fails? What
|
- Do you want a coded world-economy or just a simple barter system? Or no formal economy at all?
|
||||||
"rolls" does the game need to be able to do? Do you base your game off an existing system or make up
|
- Do you have concepts like reputation and influence?
|
||||||
your own?
|
- Will your characters be known by their name or only by their physical appearance?
|
||||||
- Does the flow of time matter in your game - does night and day change? What about seasons? Maybe
|
|
||||||
your magic system is affected by the phase of the moon?
|
|
||||||
- Do you want changing, global weather? This might need to operate in tandem over a large number of
|
|
||||||
rooms.
|
|
||||||
- Do you want a game-wide economy or just a simple barter system? Or no formal economy at all?
|
|
||||||
- Should characters be able to send mail to each other in-game?
|
|
||||||
- Should players be able to post on Bulletin boards?
|
|
||||||
- What is the staff hierarchy in your game? What powers do you want your staff to have?
|
|
||||||
- What should a Builder be able to build and what commands do they need in order to do that?
|
|
||||||
- etc.
|
|
||||||
|
|
||||||
### Rooms
|
### Rooms
|
||||||
|
|
||||||
Consider the most basic room in your game.
|
- Is a simple room description enough or should the description be able to change (such as with time, by
|
||||||
|
|
||||||
- Is a simple description enough or should the description be able to change (such as with time, by
|
|
||||||
light conditions, weather or season)?
|
light conditions, weather or season)?
|
||||||
- Should the room have different statuses? Can it have smells, sounds? Can it be affected by
|
- Should the room have different statuses? Can it have smells, sounds? Can it be affected by
|
||||||
dramatic weather, fire or magical effects? If so, how would this affect things in the room? Or are
|
dramatic weather, fire or magical effects? If so, how would this affect things in the room? Or are
|
||||||
these things something admins/game masters should handle manually?
|
these things something admins/game masters should handle manually?
|
||||||
- Can objects be hidden in the room? Can a person hide in the room? How does the room display this?
|
- Can objects be hidden in the room? Can a person hide in the room? How does the room display this?
|
||||||
- etc.
|
|
||||||
|
|
||||||
### Objects
|
### Objects
|
||||||
|
|
||||||
Consider the most basic (non-player-controlled) object in your game.
|
|
||||||
|
|
||||||
- How numerous are your objects? Do you want large loot-lists or are objects just role playing props
|
- How numerous are your objects? Do you want large loot-lists or are objects just role playing props
|
||||||
created on demand?
|
created on demand?
|
||||||
- Does the game use money? If so, is each coin a separate object or do you just store a bank account
|
- If you use money, is each coin a separate object or do you just store a bank account value?
|
||||||
value?
|
- Do multiple similar objects form stacks and how are those stacks handled in that case?
|
||||||
- What about multiple identical objects? Do they form stacks and how are those stacks handled in
|
|
||||||
that case?
|
|
||||||
- Does an object have weight or volume (so you cannot carry an infinite amount of them)?
|
- Does an object have weight or volume (so you cannot carry an infinite amount of them)?
|
||||||
- Can objects be broken? If so, does it have a health value? Is burning it causing the same damage
|
- Can objects be broken? Can they be repaired?
|
||||||
as smashing it? Can it be repaired?
|
- Is a weapon a specific type of object or can you fight with a chair or a flower too?
|
||||||
- Is a weapon a specific type of object or are you supposed to be able to fight with a chair too?
|
|
||||||
Can you fight with a flower or piece of paper as well?
|
|
||||||
- NPCs/mobs are also objects. Should they just stand around or should they have some sort of AI?
|
- NPCs/mobs are also objects. Should they just stand around or should they have some sort of AI?
|
||||||
- Are NPCs/mobs differet entities? How is an Orc different from a Kobold, in code - are they the
|
- Are NPCs and mobs different entities? How do they differ?
|
||||||
same object with different names or completely different types of objects, with custom code?
|
- Should there be NPCs giving quests? If so, how do you track Quest status?
|
||||||
- Should there be NPCs giving quests? If so, how would you track quest status and what happens when
|
|
||||||
multiple players try to do the same quest? Do you use instances or some other mechanism?
|
|
||||||
- etc.
|
|
||||||
|
|
||||||
### Characters
|
### Characters
|
||||||
|
|
||||||
These are the objects controlled directly by Players.
|
|
||||||
|
|
||||||
- Can players have more than one Character active at a time or are they allowed to multi-play?
|
- Can players have more than one Character active at a time or are they allowed to multi-play?
|
||||||
- How does a Player create their Character? A Character-creation screen? Answering questions?
|
- How will Character creation work? Walking room-to-room? A menu? Answering questions? Filling in a form?
|
||||||
Filling in a form?
|
|
||||||
- Do you want to use classes (like "Thief", "Warrior" etc) or some other system, like Skill-based?
|
|
||||||
- How do you implement different "classes" or "races"? Are they separate types of objects or do you
|
- How do you implement different "classes" or "races"? Are they separate types of objects or do you
|
||||||
simply load different stats on a basic object depending on what the Player wants?
|
simply load different stats on a basic object depending on what the Player wants?
|
||||||
- If a Character can hide in a room, what skill will decide if they are detected?
|
- If a Character can hide in a room, what skill will decide if they are detected?
|
||||||
|
|
@ -111,83 +110,72 @@ chair rather than a sword?
|
||||||
can smash?
|
can smash?
|
||||||
- What does the skill tree look like? Can a Character gain experience to improve? By killing
|
- What does the skill tree look like? Can a Character gain experience to improve? By killing
|
||||||
enemies? Solving quests? By roleplaying?
|
enemies? Solving quests? By roleplaying?
|
||||||
- etc.
|
- May player-characters attack each other (PvP)?
|
||||||
|
- What are the penalties of defeat? Permanent death? Quick respawn? Time in prison?
|
||||||
|
|
||||||
A MUD's a lot more involved than you would think and these things hang together in a complex web. It
|
A MUD's a lot more involved than you would think and these things hang together in a complex web. It
|
||||||
can easily become overwhelming and it's tempting to want *all* functionality right out of the door.
|
can easily become overwhelming and it's tempting to want *all* functionality right out of the door.
|
||||||
Try to identify the basic things that "make" your game and focus *only* on them for your first
|
Try to identify the basic things that "make" your game and focus *only* on them for your first
|
||||||
release. Make a list. Keep future expansions in mind but limit yourself.
|
release. Make a list. Keep future expansions in mind but limit yourself.
|
||||||
|
|
||||||
## Coding (step 2)
|
## Coding and Tech demo
|
||||||
|
|
||||||
This is the actual work of creating the "game" part of your game. Many "game-designer" types tend to
|
This is the actual work of creating the "game" part of your game. As you code and test systems you should
|
||||||
gloss over this bit and jump directly to **World Building**. Vice versa, many "game-coder" types
|
build a little "tech demo" along the way.
|
||||||
tend to jump directly to this part without doing the **Planning** first. Neither way is good and
|
|
||||||
*will* lead to you having to redo all your hard work at least once, probably more.
|
|
||||||
|
|
||||||
Evennia's [Evennia Component overview](../../../Components/Components-Overview) tries to help you with this bit of development. We
|
```sidebar:: Tech demo
|
||||||
also have a slew of [Tutorials](../../Howto-Overview) with worked examples. Evennia tries hard to make this
|
|
||||||
part easier for you, but there is no way around the fact that if you want anything but a very basic
|
|
||||||
Talker-type game you *will* have to bite the bullet and code your game (or find a coder willing to
|
|
||||||
do it for you).
|
|
||||||
|
|
||||||
Even if you won't code anything yourself, as a designer you need to at least understand the basic
|
With "tech demo" we mean a small example of your code in-action: A room with a mob,
|
||||||
paradigms of Evennia, such as [Objects](../../../Components/Objects),
|
a way to jump into and test character-creation etc. The tech demo need not be pretty, it's
|
||||||
[Commands](../../../Components/Commands) and [Scripts](../../../Components/Scripts) and
|
there to test functionality. It's not the beginning of your game world (unless you find that
|
||||||
how they hang together. We recommend you go through the [Tutorial World](../Part1/Tutorial-World-Introduction) in detail (as well as glancing at its code) to get at least a feel for what is
|
to be more fun).
|
||||||
involved behind the scenes. You could also look through the tutorial for
|
|
||||||
[building a game from scratch](../Part3/Tutorial-for-basic-MUSH-like-game).
|
```
|
||||||
|
|
||||||
|
Try to avoid going wild with building a huge game world before you have a tech-demo showing off all parts
|
||||||
|
you expect to have in the first version of your game. Otherwise you run the risk of having to redo it all
|
||||||
|
again.
|
||||||
|
|
||||||
|
Evennia tries hard to make the coding easier for you, but there is no way around the fact that if you want
|
||||||
|
anything but a basic chat room you *will* have to bite the bullet and code your game (or find a coder willing
|
||||||
|
to do it for you).
|
||||||
|
|
||||||
|
> Even if you won't code anything yourself, as a designer you need to at least understand the basic
|
||||||
|
paradigms and components of Evennia. It's recommended you look over the rest of this Beginner Tutorial to learn
|
||||||
|
what tools you have available.
|
||||||
|
|
||||||
During Coding you look back at the things you wanted during the **Planning** phase and try to
|
During Coding you look back at the things you wanted during the **Planning** phase and try to
|
||||||
implement them. Don't be shy to update your plans if you find things easier/harder than you thought.
|
implement them. Don't be shy to update your plans if you find things easier/harder than you thought.
|
||||||
The earlier you revise problems, the easier they will be to fix.
|
The earlier you revise problems, the easier they will be to fix.
|
||||||
|
|
||||||
A good idea is to host your code online (publicly or privately) using version control. Not only will
|
A good idea is to host your code online using _version control_. Github.com offers free Private repos
|
||||||
this make it easy for multiple coders to collaborate (and have a bug-tracker etc), it also means
|
these days if you don't want the world to learn your secrets. Not only version control
|
||||||
your work is backed up at all times. The [Version Control](../../../Coding/Version-Control) tutorial has
|
make it easy for your team to collaborate, it also means
|
||||||
instructions for setting up a sane developer environment with proper version control.
|
your work is backed up at all times. The page on [Version Control](../../../Coding/Version-Control)
|
||||||
|
will help you to setting up a sane developer environment with proper version control.
|
||||||
|
|
||||||
### "Tech Demo" Building
|
## World Building
|
||||||
|
|
||||||
This is an integral part of your Coding. It might seem obvious to experienced coders, but it cannot
|
|
||||||
be emphasized enough that you should *test things on a small scale* before putting your untested
|
|
||||||
code into a large game-world. The earlier you test, the easier and cheaper it will be to fix bugs
|
|
||||||
and even rework things that didn't work out the way you thought they would. You might even have to
|
|
||||||
go back to the **Planning** phase if your ideas can't handle their meet with reality.
|
|
||||||
|
|
||||||
This means building singular in-game examples. Make one room and one object of each important type
|
|
||||||
and test so they work correctly in isolation. Then add more if they are supposed to interact with
|
|
||||||
each other in some way. Build a small series of rooms to test how mobs move around ... and so on. In
|
|
||||||
short, a test-bed for your growing code. It should be done gradually until you have a fully
|
|
||||||
functioning (if not guaranteed bug-free) miniature tech demo that shows *all* the features you want
|
|
||||||
in the first release of your game. There does not need to be any game play or even a theme to your
|
|
||||||
tests, this is only for you and your co-coders to see. The more testing you do on this small scale,
|
|
||||||
the less headaches you will have in the next phase.
|
|
||||||
|
|
||||||
## World Building (step 3)
|
|
||||||
|
|
||||||
Up until this point we've only had a few tech-demo objects in the database. This step is the act of
|
Up until this point we've only had a few tech-demo objects in the database. This step is the act of
|
||||||
populating the database with a larger, thematic world. Too many would-be developers jump to this
|
populating the database with a larger, thematic world. Too many would-be developers jump to this
|
||||||
stage too soon (skipping the **Coding** or even **Planning** stages). What if the rooms you build
|
stage too soon (skipping the **Coding** or even **Planning** stages). What if the rooms you build
|
||||||
now doesn't include all the nice weather messages the code grows to support? Or the way you store
|
now doesn't include all the nice weather messages the code grows to support? Or the way you store
|
||||||
data changes under the hood? Your building work would at best require some rework and at worst you
|
data changes under the hood? Your building work would at best require some rework and at worst you
|
||||||
would have to redo the whole thing. And whereas Evennia's typeclass system does allow you to edit
|
would have to redo the whole thing. You could be in for a *lot* of unnecessary work if you build stuff
|
||||||
the properties of existing objects, some hooks are only called at object creation ... Suffice to
|
en masse without having the underlying code systems in some reasonable shape first.
|
||||||
say you are in for a *lot* of unnecessary work if you build stuff en masse without having the
|
|
||||||
underlying code systems in some reasonable shape first.
|
|
||||||
|
|
||||||
So before starting to build, the "game" bit (**Coding** + **Testing**) should be more or less
|
So before starting to build, the "game" bit (**Coding** + **Testing**) should be more or less
|
||||||
**complete**, *at least to the level of your initial release*.
|
**complete**, *at least to the level of your initial release*.
|
||||||
|
|
||||||
Before starting to build, you should also plan ahead again. Make sure it is clear to yourself and
|
Make sure it is clear to yourself and your eventual builders just which parts of the world you want
|
||||||
your eventual builders just which parts of the world you want for your initial release. Establish
|
for your initial release. Establish for everyone which style, quality and level of detail you expect.
|
||||||
for everyone which style, quality and level of detail you expect. Your goal should *not* be to
|
|
||||||
complete your entire world in one go. You want just enough to make the game's "feel" come across.
|
Your goal should *not* be to complete your entire world in one go. You want just enough to make the
|
||||||
You want a minimal but functioning world where the intended game play can be tested and roughly
|
game's "feel" come across. You want a minimal but functioning world where the intended game play can
|
||||||
balanced. You can always add new areas later.
|
be tested and roughly balanced. You can always add new areas later.
|
||||||
|
|
||||||
During building you get free and extensive testing of whatever custom build commands and systems you
|
During building you get free and extensive testing of whatever custom build commands and systems you
|
||||||
have made at this point. Since Building often involves different people than those Coding, you also
|
have made at this point. If Builders and coders are different people you also
|
||||||
get a chance to hear if some things are hard to understand or non-intuitive. Make sure to respond
|
get a chance to hear if some things are hard to understand or non-intuitive. Make sure to respond
|
||||||
to this feedback.
|
to this feedback.
|
||||||
|
|
||||||
|
|
@ -195,14 +183,19 @@ to this feedback.
|
||||||
## Alpha Release
|
## Alpha Release
|
||||||
|
|
||||||
As mentioned, don't hold onto your world more than necessary. *Get it out there* with a huge *Alpha*
|
As mentioned, don't hold onto your world more than necessary. *Get it out there* with a huge *Alpha*
|
||||||
flag and let people try it! Call upon your alpha-players to try everything - they *will* find ways
|
flag and let people try it!
|
||||||
to break your game in ways that you never could have imagined. In Alpha you might be best off to
|
|
||||||
|
Call upon your alpha-players to try everything - they *will* find ways to break your game in ways that
|
||||||
|
you never could have imagined. In Alpha you might be best off to
|
||||||
focus on inviting friends and maybe other MUD developers, people who you can pester to give proper
|
focus on inviting friends and maybe other MUD developers, people who you can pester to give proper
|
||||||
feedback and bug reports (there *will* be bugs, there is no way around it). Follow the quick
|
feedback and bug reports (there *will* be bugs, there is no way around it).
|
||||||
instructions for [Online Setup](../../../Setup/Online-Setup) to make your game visible online. If you hadn't
|
|
||||||
already, make sure to put up your game on the [Evennia game index](http://games.evennia.com/) so
|
Follow the quick instructions for [Online Setup](../../../Setup/Online-Setup) to make your
|
||||||
people know it's in the works (actually, even pre-alpha games are allowed in the index so don't be
|
game visible online.
|
||||||
shy)!
|
|
||||||
|
If you hadn't already, make sure to put up your game on the
|
||||||
|
[Evennia game index](http://games.evennia.com/) so people know it's in the works (actually, even
|
||||||
|
pre-alpha games are allowed in the index so don't be shy)!
|
||||||
|
|
||||||
## Beta Release/Perpetual Beta
|
## Beta Release/Perpetual Beta
|
||||||
|
|
||||||
|
|
@ -216,3 +209,10 @@ to gradually perfect your vision.
|
||||||
|
|
||||||
You are worthy of a celebration since at this point you have joined the small, exclusive crowd who
|
You are worthy of a celebration since at this point you have joined the small, exclusive crowd who
|
||||||
have made their dream game a reality!
|
have made their dream game a reality!
|
||||||
|
|
||||||
|
## Planning our tutorial game
|
||||||
|
|
||||||
|
In the next lesson we'll make use of these general points and try to plan out our tutorial game.
|
||||||
|
|
||||||
|
[prev lesson](../Starting-Part2) next lesson
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue