1. 程式人生 > >遊戲公司組成架構和遊戲開發流程簡述

遊戲公司組成架構和遊戲開發流程簡述

【原文】http://tieba.baidu.com/p/941316779

想要踏入繽紛的遊戲開發事業,先來了解一下游戲開發的基本流程吧!

【基本概念】

遊戲公司一般是指遊戲開發公司或遊戲發行、代理公司。
那遊戲公司開發遊戲需要哪些技術人員?簡單的說:需要遊戲造型、遊戲動畫、3D美工、紋理師、原畫設計師、建模師、UI製作、手遊程序員、網遊程式設計師等等。

【遊戲公司的構架】

遊戲開發的構成,從泛言,包括開發人員內部開發與外包。 
一般來說,遊戲設計、程式設計師,美術(也有部分美術用外包的)是內部開發,而音樂,CG,部分美術等,是由外包完成。
當然我們不排除有的公司非常有實力,全部可以內部完成,但據我所知,國內如網易都不是如此。
遊戲設計、程式,美術都是部門,每個裡面都有比較明確的職位,這也不排除小公司,職位不明確的可能,說得只是一般的開發公司。

>>首先說遊戲設計部門


工作職責: 
遊戲設計主負責人:主要負責遊戲設計的整體把握、給大家安排工作,稽核工作 ,提高部門人員士氣。

劇情策劃:一般負責背景,任務等等故事性比較強的,要求文筆要好
資料策劃再細分,為規則和資料平衡,包括規則的描述,公式確定,資料表設定等等。
輔助員:主要是收集資料,維護表格等等,比較不涉及核心的工作。
*注:有一些公司或者團隊,在策劃崗位,還有新的崗位,如:

表現策劃:主要負責特效、動作、音效收集並提需求,部分如音效部分亦有策劃來完成。
資源策劃:主要負責UI設計,模型相關配置,資源管理等等。

>>下面是程式部門 

主程式與主設計師:是對遊戲引擎最瞭解的人,以主程式為最強。主程的主要工作,安排程式部門工作,定遊戲的資料結構,定一些主要方案的完成方法 。

一般程式設計師:分伺服器端與客戶端、伺服器端程式,對於資料庫結構,資料傳輸、通訊方式等等。客戶端程式,對影象及優化有研究的會易受重用。

>>美術部門

主美:負責整體美術風格的把握

原畫:繪製原畫交於3D

2D:負責貼圖,遊戲介面等的製作 

3D: 負責3D建模,動作等方面工作

指令碼與編輯器 
在具體遊戲實現時,越來越多的公司不會說把遊戲中的資料寫在C++裡,而是用“指令碼與資料庫”的方式 。
C++的作用是用來解釋指令碼和呼叫資料庫的 
在指令碼中,寫上, 
     if 
     { 
     player hp >=30%hpmax 
     add hp=hpmax 
     } 
這裡的東西是寫在腳本里的,C++就會解釋,player、hp、hpmax是什麼,hp、hpmax對應資料庫是什麼列主要的遊戲核心是寫在C裡的,指令碼用來實現遊戲具體的一些東西 。
如每個場景、每個NPC、每個道具都有可能有個指令碼檔案制定命令及資料一般由主程與主設計師一起來做,具體寫指令碼,一般為遊戲設計部門按規範做這個工作 。

編輯器:是高於指令碼的一個給遊戲設計部門或是美術部門用的工作工具優點是使用簡單,介面化的東西 ,可以自動生成指令碼。
缺點是,把一些比較活的東西,寫死到工具中了,將來要加功能改結構很麻煩 
這些都是程式部門的工作 


另外,在程式部門中主要交流就是伺服器端與客戶端的。這實際就是說,一個遊戲主體置放與傳輸的問題。
一般來說,一些音聲檔案、影象檔案、大一些的文字都會放在客戶端,而資料庫,遊戲的核心解釋在伺服器端。

【遊戲開發核心流程】

>>軟體:有兩部分。
1.編寫遊戲引擎、建模:需要熟練掌握C/C++、Microsoft Develop Studio開發環境、使用SDK或者MFC、DirectX/OpenGL、SQL程式設計、SQLServer或Oracle資料庫配置。
2.策劃、美工、音效:MAYA、3DMAX 、PS(音效製作方面不熟,這方面無法提供)。


流程:策劃——引擎——建模——美工——測試。
團隊:首先要組成一個由各功能小組核心構成的策劃組,負責構思整個遊戲的內容架構。包括故事大綱,遊戲風格,人物造型,操作模式,任務模式,裝備模式等等,以及程式編寫、美工貼圖能否實現等等,資金預算能否維持等等。

然後籌建各功能小組:主程式設計組,負責遊戲引擎。建模組,負責編寫一個完整的世界,各種人物、怪等。美工組,負責包裝遊戲。測試組,設定若干組伺服器,對遊戲進行測試。


>>遊戲設計:為最前期 

1 立項 

     主要目的是描述專案的風格、主亮點、一些方方面面的規則,具體可能會涉的遊戲資源(如多少主角,多少場景,多少NPC等等統計) 
     這個階段主要目的,是與投資人交流,描述清楚這個專案可不可以做,做了有什麼好處,與其它同類遊戲對比,競爭優劣勢的分析,種種設定因何這樣說服投資人,這個專案就可開做了。

2 接下來與主美主程開會,就具體如何劃分資料結構,如果命名檔案等等交流相關的開始進行。(注:這有個前提,遊戲設計必須要前於另兩個部門。不能讓很多程式或是美術,都等著,這與成本有關)

3 遊戲設計這個部門,這時定了資料後,就開始分頭建表,遊戲有多少會變動的資料就應該有多少表 。如道具,NPC,場景、寵物,技能,ICON,特效,音樂,音效這些都要有表的。(注:這裡說的變動只是人為的變動,是不是被動,級別這個就是被動的變動,不需要玩家等級表。)

4 這時主策劃已經給大家一份總案了,這個總案中,比較清楚的告訴大家這個遊戲有什麼玩點,也就是模組。 

5.
     (1)劇情設計師開始編世界背景世界觀。 
     (2)規則設計師開始與資料設計師一起一個一個分配著開始寫規則文件。 
     (3)輔助員也可以開始先確定一些道具,NPC的名字什麼的 
     (注:這些在主設計的稽核下進行著) 

6 當場景美術描述表,NPC美術描述表,道具美術描述等東西出來了,確定後,就可以交給美術部門開始試著做。--(注:這時,美術部門應該也按投資人的要求確定了美術風格) 
     [注:策劃的工作一直先於其它幾個部門,完善表,寫全規則文件,寫資料表(為將來寫指令碼做好準備)等等]

7 美術部門的工作當做完一部分就可以交付程式部門了,這時部門的資料庫,資料結構也早搞定了,收到遊戲資源,遊戲規則,可以做一個簡單的版本出來了。 首先按遊戲設計,把操作、視角等東西,都搞順 。這時,團隊中的人就可以都進來看看了。 

8 版本不斷更新內容,然後遊戲開發這樣就一步步在開動起來了。這個過程中,需要不斷的反饋。 
     美術部門進到遊戲裡,發現做的東西不好看這時要返回去重做; 
     策劃部門如果資料不合理,要隨時調 ,同時,如果寫了模組,交給程式部門,還要寫指令碼,實現在遊戲中,要去測試。
     (1)如果是程式部門理解不清或是別的BUG要及時反饋; 
     (2)如果是規則有問題,或是資料不合理,要自行調節; 
     (3)另外為了給將來遊戲的宣傳推廣留好介面,對於每個模組在遊戲中,可以做什麼活動等等都要有文件描述。

附:名詞釋義 

     遊戲引擎:不是一個軟體,更不是其它的什麼東西,只是一段這個遊戲能實現什麼的中心程式碼。這個程式碼,也許可以做出很多東西,也許在這個基礎上,做出很好的花樣,但需要程式去挖掘,更需要遊戲設計部門去了解。又常被稱作遊戲平臺。 
    
     編輯器:位置要比指令碼高一些的一個軟體 。 
     它的作用就是生成指令碼,但是因為寫死了,功能不能隨心所欲。優點是用著方便。

【以下是遊戲製作流程的簡單總結】

>>一、計劃階段:首先,是專案計劃階段。
1、創意管理:第一步,是召開個會議,在會議中最常見的方法就是採取“頭腦風暴法”。每個人都必須拿出自己的建議和想法,之後大家一起進行討論。另外在會場內,會有專人進行會議記錄。而在專案開發的前期則會有市場調查。


2、撰寫草案:第二步,撰寫策劃草案,也叫意向書。撰寫策劃草案的目的在於,使得小組內每個成員對即將開發的專案有一個大體的認識,並且對目標進行明確。


3、市場分析:第三步,市場分析。決定了是否需要開發這個遊戲。

1)目標客戶:最重要的一點是確定目標客戶。即該遊戲是面向核心玩家,還是普通的大眾玩家。如果是面向核心玩家所開發的遊戲,則需要遊戲的難度更大一些;反之,如果是面向大眾玩家開發的遊戲,則需要遊戲的難度簡單一些。最好的方法是允許玩家自定義遊戲的難度。

2)成本估算:以網遊為例,包括以下幾個方面

•伺服器:執行網路遊戲所需花費的硬體方面的成本。成本中的大頭。大約佔到總成本的40%左右。

•客服:屬於人力成本的範疇。網路遊戲不同於單機遊戲的部分在於,其不同於單機遊戲的“售後不理”的銷售模式。使用者在玩這個遊戲之後,運營商需要不斷的提供更新和各種線上服務。

•社群關係專員:同上,屬於人力成本的範疇。同其他方面的花銷相比,這方面幾乎可以忽略不計。

•開發團隊:人力成本,這方面花費的真正大頭在核心成員和天才製作人的薪資上。

•管理:管理方面花費的成本,這方面成本較少。

•使用者帳號管理:發行成本的一部分,但也屬於運營的範疇。至於成本幾乎可以忽略不計。

•辦公室、電腦、傢俱:這方面是大頭,不過這次花費之後,開發下部遊戲時基本上花費就不需要或者很少花費了。

•頻寬:發行成本的一部分,但也屬於運營的範疇。成本也是極高的,當然各地可能都不一樣。

•網管:發行成本的一部分,同樣屬於運營成本的範疇。

•其他雜費:雜七雜八的一些費用,包括水電費、燃氣費、可能還會包括買咖啡和茶葉的錢。

•宣傳、廣告和推廣的費用:屬於運營成本。應該說最好的宣傳方法就是廣告,但各種廣告在花費上都不盡相同,這個就不細說了。

•客戶端:製作遊戲客戶端、點卡、充值卡、印製遊戲說明書、遊戲包裝、遊戲贈品一類的成本。

4、需求分析:第四步,撰寫需求分析書。這包括以下三個方面:
1)、美工需求:撰寫美工需求分析書,內容包括需求圖、工作量等。其中工作量需要以天來計。內容具體如下:

•場景:包括遊戲地圖、小場景等方面。

•人物:包括玩家角色、重要NPC(玩家隊友、提供任務的NPC、主線劇情NPC等)、次要NPC(路人、村民等)、怪物、BOSS等。

•動畫:動畫方面估計每個公司的需求都不盡相同。如果公司能力有限,動畫的製作可以考慮外包的方式。

•道具:主要需要考慮是否採取紙娃娃系統。

•全身像:人物的全身像方面。

•靜畫&CG:遊戲中可能出現的靜畫和CG的需求。沒有則不需要寫。

•人物頭像:人物的頭像製作需求,其中包括人物的表情方面,包括喜、怒、哀、樂、悲等多種表情。

•介面:介面的需求,包括主介面、各項子介面、螢幕介面、開頭介面、END介面、儲存和載入介面等方面。

•動態物件:包括遊戲中可能出現的火把、光影等方面。

•卷軸:又稱為滾動條。根據遊戲的情況來定具體的需求。

•招式圖:根據遊戲開發的具體情況決定是否有此需求。

•編輯器圖素:各種編輯器的圖素需求,例如關卡編輯器、地圖編輯器等方面。

•粒子特效:3D粒子特效的需求。

•宣傳畫;包括遊戲的宣傳畫、海報等方面的製作需求。

•遊戲包裝:遊戲客戶端的封面包裝的製作。

•說明書插圖:遊戲說明書內附插圖的製作需求。

•碟片圖鑑:遊戲客戶端碟片上的圖鑑的製作需求。

•官方網站:遊戲官方網站的製作需求。

2)、程式需求:撰寫程式需求分析書,內容具體如下:

•地圖編輯器:包括編輯器的功能需求、各種資料的需求等。

•粒子編輯器:關於粒子編輯器的需求。

•內鑲小遊戲:包括遊戲內部各種小遊戲的需求。

•功能函式:包括遊戲中可能會出現的各種程式功能、技術引數、資料、碰撞檢測、AI等方面的需求。

•系統需求:包括升級系統、道具系統、招式系統等系統匯入器的需求。

3)、策劃需求

•策劃的分工:包括劇本、數值、介面、執行等方面。

•進度控制:要時刻注意時間和開發進度的控制,需要寫一個專門的專案進度表。

•例會:專案會以里程碑的形式呈現。當完成一個里程碑後,或者到達固定日期時,需要召開例行會議,除了成員彼此交流外,還需討論開發中遇到的困難,進度是否有拖延等問題。

>>二、專案組織階段。確定時間表

1、確定日程:確定遊戲開發的日程和進度安排。包括以下幾個方面:
  1)Demo版本階段
  前期策劃:前期策劃和專案的規劃。
  關卡設計:關卡設計階段。
  前期美工:前期的美工製作。
  後期美工:後期的美工製作。
  程式實現:程式的實現,包括編碼等。
   2)Alpha版本階段
  內部測試:主要是測試和完善各項功能,看一看是否有重大BUG。
  3)Beta版本階段
  外部測試:進一步測試和完善各項功能,並預備遊戲的發行。
  4)Release版本階段
  遊戲發行:專案完成階段,開始正式的發行遊戲。
  5)Gold Release版本階段
  開發補丁:開發遊戲的補丁包、升級版本,以及 各種官方外掛等。

2、確定人員:確定各個專案所需的人員。包括策劃、程式、美工、測試、音樂、運營等方面。
3、分配任務:分配各個人員的具體的開發任務。
4、撰寫策劃書:正式撰寫遊戲策劃書。

>>三、開發階段:其三,是專案開發階段。
作為策劃來說,此階段主要需做到同各方面保持順暢的溝通,並處理各種遊戲製作中的突發事件。其中需要做到與同事的溝通、同主管的溝通、同領導和老闆的溝通等。


>>四、控制階段:最後,是專案控制階段。
1、時間
1)、成本控制:需要注意到開發成本的控制,包括伺服器、客服、場租、人工(社群關係專員、開發團隊、管理)、裝置(辦公室、電腦、傢俱等)、頻寬、網管、宣傳、廣告和推廣的費用等方面。
2)、市場變化:需要注意市場的因素。
•發行檔期:需要注意發行檔期,要趕在暑假和寒假之前發行。
•盜版因素:必須時刻注意盜版、私服等因素對遊戲發行的影響。
3)、競爭對手的因素:需要時刻注意競爭對手的情況。畢竟,知己知彼,才能百戰不殆。
2、品質
由於開發人員的水平大都參差不齊,所以必須根據製作人員的總體水平,決定作品的品質。既不能要求太高,亦不能要求太低,需要折中考慮。
3、突發事件
例如,老闆的突擊檢查、專案投資人的突然撤資等,這些都必須全盤考慮。
4、控制成本
包括時間、品質等方面的成本控制。

【遊戲組成明細】


開發團隊

•製作人

•執行製作人

•策劃團隊

•程式團隊

•美術團隊

銷售團隊

測試團隊

遊戲評論隊伍

遊戲製作人

•開發組長(always)

•資源管理 (Resource Management)

•行政管理 (Administration)

•向上負責 (Upward Management)

•專案管理 (Project Management)

遊戲執行製作人

•專案管理執行 (Project Management)

•Daily 運作

•House Keeping

•Not full-time job position


遊戲策劃

•故事設計 (Story Telling)

•指令碼設計 (Scripting)

•玩法設計 (Game Play Design)

•關卡設計 (Level Design)

•遊戲調適 (Game Tuning)

•數值設定 (Numerical Setup)

•AI 設計 (Game AI)

•音效設定 (Sound FX Setup)

•場景設定 (Scene Setup)

遊戲美術

•場景 (Terrain)

•人物 (Character)

•建模 (Models)

•材質 (Textures)

•動作 (Motion / Animation)

•特效 (FX)

•使用者介面User Interface

遊戲程式

•遊戲程式 (Game Program)

•遊戲開發工具 (Game Tools)

•Level Editor

•Scene Editor

•FX Editor

•Script Editor

•遊戲Data Exporters from 3D Software

•3dsMax / Maya / Softimage

•遊戲引擎開發Game Engine Development

•網路遊戲服務端開發Online Game Server Development

•創意 (Idea)

•提案 (Proposal)

•製作 (Production)

•整合 (Integration)

•測試 (Testing)

•除錯 (Debug)

•除錯 (Tuning)

遊戲設計(Concept Design)

•遊戲型別 (Game Types)

•遊戲世界觀 (Game World)

•故事 (Story)

•遊戲特色 (Features)

•遊戲玩法 (Game Play)

•遊戲定位 (Game Product Positioning)

•Target player

•Marketing segmentation / positioning

•風險評估 (Risk)

•SWOT (優勢Strength/缺點Weakness/機會Opportunity/威脅Threat)

遊戲提案 (Proposal)

•系統分析 (System Analysis)

•遊戲設計檔案撰寫 (Game Design Document)

•傳播媒介檔案撰寫 (Media Design Document)

•技術設計文案撰寫 (Technical Design Document)

•遊戲專案建立 (Game Project)

•時間表Schedule

•程序/控制Milestones / Check points

•管理Risk management

•測試計劃書

•團隊建立 (Team Building)

遊戲開發 (Production)

•美術量產製作

•(建模)Modeling

•(結構)Textures

•(動畫)Animation

•(動作)Motion

•(特效)FX

•程式開發 (Coding)

•策劃數值設定

遊戲整和 (Integration)

•關卡串聯 (Level Integration)

•數值調整 (Number Tuning)

•音效置入 (Audio)

•完成所有美術

•程旬與美術結合

•(攻略)Focus Group (說明書User Study)

•釋出一些攻略截圖Release some playable levels for focus group

遊戲測試 (Testing)

•Alpha(α) 測試

•除錯 (Debug)

•Beta (β)測試

•數值微調

•Game play 微調

•對網路遊戲而言 (MMOG)

•封閉測試 (Closed Beta)

•開放測試 (Open Beta)

•壓力(極限)測試 (Critical Testing)

•網路遊戲才有

關於Bug

•Bug 分級 (Bug Classification)

•A Bug

•B Bug

•C Bug

• S Bug

•Principles

•Bug 分級從嚴

•Tester(測試物件?—) vs Debugger(除錯程式)

遊戲系統(Game Software System)

系統層System Layer – APIs

•3D Graphics API

•DirectX 9.0 SDK – Direct3D

•OpenGL 2.0

•2D API

•DirectX 9.0 SDK - DirectMedia

•Win32 GDI

•Input Device

•DirectX 9.0 SDK – DirectInput

•Audio

•DirectX 9.0 SDK – DirectSound / Direct3DSound / DirectMedia

•OpenAL

•OS API

•Win32 SDK

•MFC

•Network

•DirectX 9.0 SDK – DirectPlay

•Socket library

引擎層Engine Layer

•3D Scene Management System

•Scene Graph

•Shaders

•2D Sprite System

•Audio System

•Gamepad

•Hotkey

•Mouse

•Timers

•Network

•DDK Interface

•Terrain

•Advanced Scene Management – Space Partition

•BSP Tree

•Octree

•Character System

•Motion Blending Techniques

•Dynamics

•Collision Detection

•SoundFX

•User Interface

遊戲層Game Play Modula

•NPC (Non-playable Characters)

•Game AI

•Path Finding

•Finite State Machine

•…

•Avatar

•Combat System

•FX System

•Script System

•Trading System

•Number System

•…

Game Dev Tools

•Visual C/C++

•.net 2003

•Visual C/C++ 6.0+ SP5

•DirectX

•Current 9.0c

•NuMega BoundsChecker

•Intel vTune

•3D Tools

•3dsMax/Maya/Softimage

•In-house Tools

【遊戲分類】

•RPG (Role playing games角色扮演)

•ACT(Action Game動作遊戲)

•AVG (Adventure games冒險類)

•RTS (Real-time strategy games既時戰略)

•FPS (First-person shooting games主視覺射擊)

•MMORPG(多人線上角色扮演)

•SLG (戰棋)

•Simulation(模擬)

•Sports(運動)

•Puzzle games(解迷)

•Table games(棋牌)

•...

ps:最後奉上《完美國際》的一張海報,這是我玩的第一款3D網遊,好懷念那時的時光啊。