非典型萌新的游戲開發(fā)學習筆記:chapter 1 面向?qū)ο?,以及做回合制對?zhàn)游戲

之前未接觸過游戲開發(fā)但又對其感興趣的朋友,可以參與咱們的網(wǎng)易游戲開發(fā)3天集訓營,體驗一次激動人心的游戲開發(fā)過程——提出需求、思考原理、實現(xiàn)功能、定位bug、設(shè)計關(guān)卡、更換美術(shù)資源......麻雀雖小五臟俱全。添加下方網(wǎng)易小伙伴聯(lián)系方式(備注B站)便可輕松報名:


大家好,我是Stinger。由于之前放了狠話,咱們的學習筆記如約而至。
上一篇傳送門:

今天的主要內(nèi)容是寫寫學習制作回合制對戰(zhàn)游戲時的感想。
回合制游戲歷史非常悠久。如果要追溯的話,人類歷史有據(jù)可考的最早游戲之一“塞尼特”就是典型的回合制游戲。嚴格說,絕大部分桌游都是回合制游戲。

進入到電子游戲時代,回合制游戲那更是層出不窮。給我10秒鐘,我能快速說出10個:最終幻想仙劍奇?zhèn)b傳女神異聞錄真女神轉(zhuǎn)生如龍7八方旅人寶可夢英雄傳說勇氣默示錄地球家園......
電子游戲中的回合制游戲又稱排排站(bushi),基本的機制是“你打我一下,我打你一下”。
這樣的游戲聽著規(guī)則甚是簡單,但待到我一頭栽進去的時候才發(fā)現(xiàn)——坑還蠻多的。

不過在這之前,我首先惡補了一下面向?qū)ο蟮闹R。
由于我腦海里關(guān)于編程的僅有的回憶都是十余年前的那些有關(guān)C的,一方面學的又是個半吊子,另一方面這些半吊子的記憶又死賴著不走,要從面向過程過渡到面向?qū)ο螅€真不是一件容易的事兒。
我在學習這部分內(nèi)容的時候,剛好在看一本皮皮關(guān)老師推薦的游戲設(shè)計書籍(英文原版)。里面講了一個概念:量化生活(quantifying life)。
大意就是,我們可以為生活中的每件事物都創(chuàng)造出一條或者多條屬性,用來將該事物的各個特征進行量化。舉個例子,我們針對“人”這樣一件事物來思考一些屬性。
第一時間能想到的無疑是一些最一目了然、可以直接通過測量得到的:
身高;
體重;
血型;
年齡;
鞋碼;
etc.
再轉(zhuǎn)念一想,又會想出一些沒有那么直觀的:
幽默感;
領(lǐng)導力;
情商;
etc.
這些屬性定性比定量更容易。
再借鑒借鑒典型游戲里的屬性,又能弄出一些更抽象的:
洞察力;
精神力;
血量;
精準度;
etc.
這些屬性更不好量化。
以此類推。
屬性思考得得差不多了之后,再根據(jù)需要,從已經(jīng)建立的屬性庫中篩選、或者整合出游戲里真正需要的屬性。
在這之后就可以為“人”設(shè)計各種各樣的行為。比如:
行走;
站立;
攻擊;
受擊;
負傷;
死亡;
etc.
無論這些屬性與行為抽象與否、好量化與否,咱們這樣“確立一個事物、且為該事物確立各種屬性和行為”的過程,現(xiàn)在看來其實就跟面向?qū)ο蟮乃枷敕浅O嗨啤?/p>
重點在于“事物”本身。任何事物都可以被歸類到一個特定的類里去;該事物本身則可以被看作該特定類的一個對象。
惡補了這部分內(nèi)容之后,再回過頭來做回合制對戰(zhàn)游戲,我猛然發(fā)現(xiàn)一切簡單多了。
假設(shè)我要實現(xiàn)一個簡易版的《仙劍奇?zhèn)b傳》,簡單的思路是:
那么我創(chuàng)建一個“角色”類。這個類中,有名字、HP、MP、攻擊力、防御力、身法六項屬性,同時還具有攻擊、防御、仙術(shù)、使用道具、死亡這五種行為。
其中“防御”的效果是“被造成的傷害減半”——相當于是把傷害計算出來之后最終再乘一個系數(shù)0.5。
額外還需要創(chuàng)建兩個類。
其中一個類是“仙術(shù)”,這個類可以有名字、作用對象、消耗、效果值、持續(xù)時間五項屬性:
作用對象指的是仙術(shù)對哪項屬性值產(chǎn)生作用。舉個例子,“御劍術(shù)”的作用對象是HP,表明它是一個直接造成傷害的仙術(shù);而“仙風云體術(shù)”的作用對象是身法,表明它是一個buff效果。為了簡單起見,仙術(shù)如果是buff/debuff,那么僅限于“增減角色的屬性值”,而不涉及到諸如封印、混亂等特殊狀態(tài)。
消耗表明使用該仙術(shù)需要消耗的cost。注意,消耗可以是MP,也可以是HP,也可以混搭;
效果值表明該仙術(shù)對作用對象所產(chǎn)生的影響數(shù)值——正數(shù)表示恢復或者buff,負數(shù)表示傷害或者debuff;

持續(xù)時間僅對作用對象為攻擊力/防御力/身法的仙術(shù)有效(即buff/debuff類),表明持續(xù)的回合數(shù)。
另一個類是“道具”,這個類和仙術(shù)類似,也可以有名字、作用對象、消耗、效果值、持續(xù)時間五項屬性。
這些準備好了之后,就只需要創(chuàng)建兩個角色對象,然后令這兩個角色交替行動。初始化的情況如下:
角色的屬性值在一定范圍內(nèi)隨機確定;
每個角色都擁有御劍術(shù)(造成50點傷害)和仙風云體術(shù)(身法加倍)兩種仙術(shù);
每個角色都擁有2個恢復100點HP的道具“金創(chuàng)藥”;
角色行動的先后順序由“身法”決定,身法高的人先行動,如果身法相同則隨機一個角色先行動;
角色會隨機從攻擊、防御、仙術(shù)、使用道具這四種行為中挑選一個來自動執(zhí)行(概率相同)。
下面是一次戰(zhàn)斗過程:

老實講,這樣“從0開始逐漸搭建起作為玩家再熟悉不過的一些動態(tài)”,給到人的感覺是非常美妙的——我深刻體會到了那句“玩游戲哪有做游戲好玩”的合理之處。
本篇筆記差不多就到這里,下一篇筆記預計就是直接上Unity了。興奮!