如何計(jì)劃一款游戲 2018-04-14

https://github.com/evennia/evennia/wiki/Game%20Planning

Game Planning

So you have Evennia up and running. You have a great game idea in mind. Now it's time to start 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.

Below are some minimal steps for getting the first version of a new game world going with players. It's worth to at least make the attempt to do these steps in order even if you are itching to jump ahead in the development cycle. On the other hand, you should also make sure to keep your work fun for you, or motivation will falter. Making a full game is a lot of work as it is, you'll need all your motivation to make it a reality.

Remember that 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. 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 "finished" with the game - most MUDs add features gradually over the course of years - it's often part of the fun!

Planning (step 1)

This is what you do before having coded a single line or built a single room. 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. 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.

A good start is to begin by planning out the basic primitives of the game and what they need to be able to do. Below are a far-from-complete list of examples (and for your first version you should definitely try for a much shorter list):

Systems

These are the behind-the-scenes features that exist in your game, often without being represented by a specific in-game object.

  • Should your game rules be enforced by coded systems or are you planning for human game masters to run and arbitrate rules?
  • What are the actual mechanical game rules? How do you decide if an action succeeds or fails? What "rolls" does the game need to be able to do? Do you base your game off an existing system or make up your own?
  • 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

Consider the most basic room in your game.

  • Is a simple description enough or should the description be able to change (such as with time, by light conditions, weather or season)?
  • 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 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?
  • etc.

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 created on demand?
  • Does the game use money? If so, is each coin a separate object or do you just store a bank account value?
  • 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)?
  • Can objects be broken? If so, does it have a health value? Is burning it causing the same damage as smashing it? Can it be repaired?
  • 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?
  • Are NPCs/mobs differet entities? How is an Orc different from a Kobold, in code - are they the same object with different names or completely different types of objects, with custom code?
  • 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

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?
  • How does a Player create their Character? A Character-creation screen? Answering questions? 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 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?
  • What skill allows a Character to wield a weapon and hit? Do they need a special skill to wield a chair rather than a sword?
  • Does a Character need a Strength attribute to tell how much they can carry or which objects they can smash?
  • What does the skill tree look like? Can a Character gain experience to improve? By killing enemies? Solving quests? By roleplaying?
  • etc.

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

Coding (step 2)

This is the actual work of creating the "game" part of your game. Many "game-designer" types tend to gloss over this bit and jump directly to World Building. Vice versa, many "game-coder" types 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 Developer Central tries to help you with this bit of development. We also have a slew of Tutorials 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 willhave 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 of Evennia, such as Objects, Commands and Scripts and how they hang together. We recommend you go through the Tutorial World in detail (as well as glancing at its code) to get at least a feel for what is involved behind the scenes. You could also look through the tutorial for building a game from scratch.

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. 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 this make it easy for multiple coders to collaborate (and have a bug-tracker etc), it also means your work is backed up at all times. Here are instructions for setting up a sane developer environment with proper version control.

"Tech Demo" 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 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 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 would have to redo the whole thing. And whereas Evennia's typeclass system does allow you to edit the properties of existing objects, some hooks are only called at object creation ... Suffice to 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 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 your eventual builders just which parts of the world you want for your initial release. Establish 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. You want a minimal but functioning world where the intended game play can 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 have made at this point. Since Building often involves different people than those Coding, you also get a chance to hear if some things are hard to understand or non-intuitive. Make sure to respond to this feedback.

Alpha Release

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 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 feedback and bug reports (there will be bugs, there is no way around it). Follow the quick instructions for 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 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

Once things stabilize in Alpha you can move to Beta and let more people in. Many MUDs are in perpetual beta, meaning they are never considered "finished", but just repeat the cycle of Planning, Coding, Testing and Building over and over as new features get implemented or Players come with suggestions. As the game designer it is now up to you to gradually perfect your vision.

Congratulate yourself!

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!

Planning, Coding, Testing, Building

Planning

  1. 系統(tǒng)
    天氣挪丢,戰(zhàn)斗蔬螟,經(jīng)濟(jì)畅姊,排行版,玩家自建...
  2. 房間
    描述(靜態(tài)、動(dòng)態(tài))味滞,房間內(nèi)人物扁眯,物品(是否可隱藏),房間狀態(tài)是否可變...
  3. 物品
    重量硅蹦,堆疊個(gè)數(shù)荣德,是否可破壞修煉,裝備童芹,類別涮瞻,任務(wù)
  4. 人物
    是否允許多賬號(hào),職業(yè)假褪,技能署咽,技能樹
  5. 找出最本質(zhì)的,在第一個(gè)版本嗜价;后續(xù)再擴(kuò)充

Coding

Tech Demo Building

World Buiding

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末艇抠,一起剝皮案震驚了整個(gè)濱河市幕庐,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌家淤,老刑警劉巖异剥,帶你破解...
    沈念sama閱讀 212,454評(píng)論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異絮重,居然都是意外死亡冤寿,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,553評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門青伤,熙熙樓的掌柜王于貴愁眉苦臉地迎上來督怜,“玉大人,你說我怎么就攤上這事狠角『鸥埽” “怎么了?”我有些...
    開封第一講書人閱讀 157,921評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵丰歌,是天一觀的道長姨蟋。 經(jīng)常有香客問我,道長立帖,這世上最難降的妖魔是什么眼溶? 我笑而不...
    開封第一講書人閱讀 56,648評(píng)論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮晓勇,結(jié)果婚禮上堂飞,老公的妹妹穿的比我還像新娘。我一直安慰自己绑咱,他們只是感情好绰筛,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,770評(píng)論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著羡玛,像睡著了一般别智。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上稼稿,一...
    開封第一講書人閱讀 49,950評(píng)論 1 291
  • 那天薄榛,我揣著相機(jī)與錄音,去河邊找鬼让歼。 笑死敞恋,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的谋右。 我是一名探鬼主播硬猫,決...
    沈念sama閱讀 39,090評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了啸蜜?” 一聲冷哼從身側(cè)響起坑雅,我...
    開封第一講書人閱讀 37,817評(píng)論 0 268
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎衬横,沒想到半個(gè)月后裹粤,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,275評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡蜂林,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,592評(píng)論 2 327
  • 正文 我和宋清朗相戀三年遥诉,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片噪叙。...
    茶點(diǎn)故事閱讀 38,724評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡矮锈,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出睁蕾,到底是詐尸還是另有隱情苞笨,我是刑警寧澤,帶...
    沈念sama閱讀 34,409評(píng)論 4 333
  • 正文 年R本政府宣布子眶,位于F島的核電站猫缭,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏壹店。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,052評(píng)論 3 316
  • 文/蒙蒙 一芝加、第九天 我趴在偏房一處隱蔽的房頂上張望硅卢。 院中可真熱鬧,春花似錦藏杖、人聲如沸将塑。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,815評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽点寥。三九已至,卻和暖如春来吩,著一層夾襖步出監(jiān)牢的瞬間敢辩,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,043評(píng)論 1 266
  • 我被黑心中介騙來泰國打工弟疆, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留戚长,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,503評(píng)論 2 361
  • 正文 我出身青樓怠苔,卻偏偏與公主長得像同廉,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,627評(píng)論 2 350

推薦閱讀更多精彩內(nèi)容

  • By clicking to agree to this Schedule 2, which is hereby ...
    qaz0622閱讀 1,440評(píng)論 0 2
  • 【姓名】:劉芳 【坐標(biāo)】:河北省邢臺(tái)市 【職業(yè)】:瑜伽教練 【標(biāo)簽】:樂觀迫肖、性格溫和锅劝,待人真誠,積極向上蟆湖。 【一句...
    63aedfe8a94e閱讀 440評(píng)論 0 0
  • 神奇動(dòng)物在哪里 看完的時(shí)候時(shí)候愣了半天故爵,不知道該說什么。沒有辦法客觀地評(píng)價(jià)這部電影帐姻,它之于我更像是一種情懷稠集。所以這...
    堆_砌閱讀 562評(píng)論 0 0
  • 毛迦勒閱讀 1,583評(píng)論 0 6