(Translated by https://www.hiragana.jp/)
遊戲編程 - 維基百科,自由嘅百科全書 とべ內容

遊戲ゆうぎへんほど

呢篇文係一篇好文。想知更多,請撳呢個掣。
出自しゅつじ維基百科ひゃっか自由じゆう百科全書ひゃっかぜんしょ

一隻處於製作早期嘅 gem1せい gem1 嗰陣,製作せいさくぐみ通常つうじょうかい低質ていしつ圖像ずぞういただきじゅう檔先,試行しこう吓個遊戲ゆうぎ嘅程しき

遊戲ゆうぎへんほど粵讀:jau4 hei3 pin1 cing4;英文えいぶんgame programmingがかり電子でんし遊戲ゆうぎ製作せいさく一環いっかんゆびためせき電子でんし遊戲ゆうぎ軟件工程こうてい:一隻遊戲嘅製作組做完設計せっけいこうさらしせき遊戲ゆうぎ規則きそくおう該係てんこれ正路まさじ就要いくしゅうつしほどしき途中とちゅうかいよういた電腦でんのう圖像ずぞうどう人工じんこう智能ちのうとう技術ぎじゅつ,而 MMOG 嘅編ほどなかかいこう製作せいさくぐみ識唔識做あみからまへんほどどううめかずよりどころ[1]

一個遊戲程式嘅根基係遊戲ゆうぎ迴圈せき遊戲ゆうぎ嘅程しきがかりいち迴圈ようがかり重複じゅうふく做同いちよう工作こうさく,而唔がかりはたほどしきみなもと逐句逐句ぎょういち就算-遊戲ゆうぎほどしきよう玩家撳咗咩掣以及せき遊戲ゆうぎじょういちこくがかり喺咩狀態じょうたい,按呢啲資訊同うめせき遊戲ゆうぎ法則ほうそくけい遊戲ゆうぎ世界せかい一刻嘅狀態應該係點。そくがかりはなし一隻電子遊戲大致上可以想像成一個噉嘅 while 迴圈[2][3]

 while せき gem1 くだり緊
   睇吓 input かかり乜
   噏哋遊戲ゆうぎ世界せかい
   さんせい output
 loop

以上いじょうだん碼就噉望落好簡單かんたんただし查實佢包含ほうがん咗多複雜ふくざつ系統けいとう:Input 包括ほうかつ鍵盤けんばん踎士どう呀噉,而控せい系統けいとう設計せっけい以高ふかこう交關,れい如「要用ようよう啲掣做 input さき以令玩家さとしとく舒服就手?」噉;噏哋ap1 dei1遊戲ゆうぎ世界せかいそくがかりよう攞玩嘅 input うめ世界せかいぜん一刻いっこく狀態じょうたいよう一大いちだいうずたか表示ひょうじ遊戲ゆうぎ世界せかいうんさく法則ほうそく嘅)碼計一刻嘅狀態應該係點,れい如如はて玩家撳咗こうまえ玩家かくしょく位置いち就要こうじゅう佢面こう方向ほうこう改變かいへん;跟手ほどしきなかようゆう方法ほうほうはたしん狀態じょうたい顯示けんじ喺個熒光まく上面うわつらわたる電腦でんのう圖像ずぞう技術ぎじゅつ。喺現實げんじつ應用おうよう裏面りめん上述じょうじゅつ嘅程しきあいだあいだ哋可以有いくまんぎょう碼咁ちょう[2][4]

雖然遊戲ゆうぎへんほど咁專ぎょうただしかかりゆう啲人ため興趣きょうしゅ而做遊戲ゆうぎへんほど,而且なかゆう成功せいこうあんれい[5][6]

基本きほん結構けっこう

[編輯へんしゅう]
1982 ねん嘅食おに遊戲ゆうぎ

一個遊戲程式結構大致如下:一隻遊戲嘅程式啟動嗰陣,ほどしきようはつはじめ[おう 1]しつらえこうさらしせき遊戲ゆうぎさんすう嘅數值、こうこうさらし要用ようよう資源しげん... とうとうはつはじめほどしき就要進入しんにゅう遊戲ゆうぎ迴圈[おう 2]-喺ほどしきへんうつしうえ迴圈[おう 3]かかり一類いちるいひかえせいりゅうほどせいのう夠令一段程式碼唔淨只係行一次咁簡單,而係かい一路いちろ重複じゅうふくぎょうちょくいたりぼう條件じょうけんたちいたためとめ[7]こうがかり以下いか呢段しょくおにきょなずらえ噉,就用咗 while 迴圈[2][8]

 しつらえ move_speed すう值做...
 しつらえ number_of_ghost すう值做...
 ... もちい若干じゃっかんぎょう設定せってい遊戲ゆうぎならさんすう嘅數值
 
 while player.lives > 0 とう玩家ゆう 0 じょういのち嗰陣一路いちろ做...(「玩家いのちへん咗 0」就係 GAME OVER 條件じょうけん
    // 讀取よみと input
    JoystickData j = よししゅ掣嗰探測たんそく玩家撳咗乜掣
    
    // Update 遊戲ゆうぎ世界せかい;睇遊戲ゆうぎ邏輯どう人工じんこう智能ちのう
    もと於玩撳嘅掣,更新こうしん玩家かくしょく位置いち
    for ごといちせきおに (foreach おに)
       if 玩家撞到嗰隻おに
          玩家就死
       else
          もと於隻おに人工じんこう智能ちのう更新こうしん佢嘅位置いち
       end
    loop
    // 現實げんじつ應用おうようじょう以上いじょう各個かっこ動作どうさ通常つうじょうかいごといちほどしき
    
    ...
    
    // さんせい output;睇遊戲ゆうぎ外觀がいかん
    喺熒こうまく上面うわつら相應そうおう嘅影ぞう
    ... どううめせいごえこう
 loop

如果讀者どくしゃぐういたゆう基礎きそ概念がいねん唔識,以睇睇電腦でんのうほどしきへんうつしどうひかえせいりゅうほどとう嘅內よう

讀取よみと輸入ゆにゅう

[編輯へんしゅう]
いち任天堂にんてんどう Switch 嘅手掣;佢上めんゆうこう掣,俾玩よう手指しゅし活動かつどう嚟俾輸入ゆにゅう

一個遊戲程式首要任務係要曉讀取玩家俾嘅輸入ゆにゅう一隻いっせき遊戲ゆうぎ定義ていぎうえ就要のう夠俾玩家ゆうみさおひかえけん,唔似とくおどけあるもの文學ぶんがくとうきよしがかりむこうかん眾單こう噉傳たち;噉就表示ひょうじせき遊戲ゆうぎ梗要ゆうぼう啲方ほう玩家そう做乜;喺廿いち世紀せいきはついえよう遊戲ゆうぎとうなか,玩家かいゆう攞喺しゅしゅ掣有若干じゃっかん掣俾佢撳,まいとう佢撳いち掣,掣就かいゆうこう微弱びじゃく、唔足以危害きがい人類じんるい嘅)でんつてかえし;喺是ただしいち時間じかんてん以靠探測たんそくよししゅ掣嚟嘅訊號得知とくち玩家撳咗いく[9][10]

軟件方面ほうめん遊戲ゆうぎ內部たい輸入ゆにゅう處理しょり以大致上想像そうぞうなり噉嘅 Arduino(一種用嚟為電子硬件做編程嘅ほどしきげん[11]

const int UpButton = 12; /* よういち變數へんすう代表だいひょう [うえ] 掣有冇俾じん撳 */
const int DownButton = 11; /* 另いち變數へんすう代表だいひょう [した] 掣有冇俾じん撳 */

void setup(){ 
   ...
} 

void loop(){ /* ほどしき迴圈 */
   if(digitalRead(UpButton) == HIGH){ /* 如果 [うえ] 掣有訊號... */
	Serial.println("Up:");
	delay(100);
   }
   if(digitalRead(DownButton) == HIGH){ /* 如果 [した] 掣有訊號... */
	Serial.println("Down:");
	delay(100);
   }
}

いち遊戲ゆうぎほどしきよう編成へんせいれい如)感應かんおういたうえ掣有訊號嗰時,はたかくしょくこうぜん移動いどう移動いどうはばけつ於個かくしょく速度そくど-於是玩家就可以透過とうか撳手掣上嘅掣,ひかえせい遊戲ゆうぎ世界せかいいれめん嘅嘢。其他平台ひらだい遊戲ゆうぎ通常つうじょう唔會ようしゅ掣,原理げんり基本きほんじょういちようこうがかり電腦でんのう遊戲ゆうぎとうなか,玩家かいよう踎士どう鍵盤けんばん輸入ゆにゅう;而呢啲輸入ゆにゅうせいがかりかいでん訊號俾部電腦でんのう嘅主[9]

指令しれいかいしゃく

[編輯へんしゅう]

現實げんじつ世界せかいとくがいうり遊戲ゆうぎ多數たすうゆう指令しれいかいしゃく[おう 4]指令しれいかいしゃくうつわがかり

  • 遊戲ゆうぎおさむいた輸入ゆにゅうどう
  • 世界せかい噏哋

これあいだ嘅詮しゃくせいれいいちせきさいしゃ遊戲ゆうぎとうなか,喺玩撳咗 X 掣嗰じん遊戲ゆうぎほどしきようしょう呢個指令しれい翻譯ほんやく」做玩家そう加速かそく,跟住さい按呢份資訊將玩家しゃ加速度かそくど作出さくしゅつ相應そうおう改變かいへん。呢個過程かてい就噉睇好冇咩必要ひつようただし查實相當そうとう有用ゆうようゆう咗指れいかいしゃく遊戲ゆうぎ製作せいさくぐみ就可以整ぐみ嚟,俾玩設定せっていれい如)X 掣對おう指令しれいY 掣對おう指令しれい... 呀噉[12][13]

れい如如はて冇指れいかいしゃくいちせき射擊しゃげき遊戲ゆうぎ原始げんし碼會こう[14]

void InputHandler::handleInput()
{
  if (isPressed(BUTTON_X)) jump(); // 如果撳咗 X 掣,かくしょくようとべ
  else if (isPressed(BUTTON_Y)) fireGun(); // 如果撳咗 Y 掣,かくしょくかいひらきやり
  else if (isPressed(BUTTON_A)) swapWeapon(); // ...
  else if (isPressed(BUTTON_B)) lurchIneffectively();
}

而如はてゆう指令しれいかいしゃくだん碼會比較ひかく噉嘅さま[14]

void InputHandler::handleInput()
{
  if (isPressed(BUTTON_X)) buttonX_->execute(); // 如果撳咗 X 掣,做 X 掣相おう嘅功のう
  else if (isPressed(BUTTON_Y)) buttonY_->execute(); // 如果撳咗 Y 掣,做 Y 掣相おう嘅功のう
  else if (isPressed(BUTTON_A)) buttonA_->execute();
  else if (isPressed(BUTTON_B)) buttonB_->execute();
}

而呢だん碼會配合はいごうこう噉嘅碼[14]

class Command // 定義ていぎいち class,代表だいひょう指令しれい
{
public:
  virtual ~Command() {}
  virtual void execute() = 0;
};

class JumpCommand : public Command // 定義ていぎとべ」嘅指れい
{
public:
  virtual void execute() { jump(); }
};

class FireCommand : public Command // 定義ていぎひらきやり」嘅指れい
{
public:
  virtual void execute() { fireGun(); }
};
... 如此類推るいすい ...

class InputHandler // 定義ていぎいち class 
{
public:
  void handleInput();

private:
  Command* buttonX_; // まい掣都がかりいち pointer,point ぼう指令しれい
  Command* buttonY_;
  Command* buttonA_;
  Command* buttonB_;
};

ゆう咗指れいかいしゃく製作せいさくぐみ就可以俾玩家揀要唔要跟預しつらえひかえせい方案ほうあん,而如はて佢唔よう,佢想揀邊代表だいひょう指令しれい指令しれいかいしゃく存在そんざいれい玩家ゆうどくはたひかえせい方案ほうあん個人こじん[12]

遊戲ゆうぎ邏輯

[編輯へんしゅう]

遊戲ゆうぎ邏輯[おう 5]ゆびせき遊戲ゆうぎいれめんゆう物件ぶっけんまいけん物件ぶっけん包含ほうがん變數へんすう、以及物件ぶっけんどう物件ぶっけんあいだてん互動,遊戲ゆうぎ邏輯またかいてい咗個遊戲ゆうぎほどしき要點ようてんさまたい玩家嘅輸入ゆにゅう俾反おうよう返上へんじょうめん嗰段しょくおに碼為れいせき遊戲ゆうぎ遊戲ゆうぎ邏輯包含ほうがん咗初はじめとうちゅう嗰柞定義ていぎ咗嘅變數へんすうどう物件ぶっけん,以及遊戲ゆうぎ迴圈いれめんprocess input どう update game world とうなかせき遊戲ゆうぎてんうんさく」嘅法そく遊戲ゆうぎ邏輯做電子でんし遊戲ゆうぎ設計せっけい嗰陣就要[7]ため一隻遊戲編定遊戲邏輯嗰陣要考慮嘅嘢包括咗[15]

  • かずよりどころ結構けっこう[おう 6]:一隻遊戲會包含大量嘅物件同相應變數,れいいちせきいち般嘅射擊しゃげき遊戲ゆうぎかいゆう若干じゃっかん唔同嘅槍俾玩揀,まいがかりいちけん物件ぶっけん,而佢哋分べつ喺「たまくしげだいほそどうまいやり造成ぞうせい幾多いくた傷害しょうがいとう嘅變すうじょうみやこゆうへんうつし一個遊戲程式需要思考數據結構要點處理-ほどしき內部要用ようよう乜方ほうもうかおこりかく變數へんすうどう物件ぶっけん嘅數よりどころ[15]
  • もと事件じけん[おう 7]かかりいちしゅ軟件そくうえ嘅範しき。喺遊戲ゆうぎへんほどうえ事件じけん構將一隻遊戲軟件視為一柞事件じけん[おう 8]嘅集合體がったい。一件事件係指一次系統狀態嘅改變—れい如「しゃ開始かいし加速かそく加速度かそくどひさげます若干じゃっかんすう值」,而喺こう遊戲ゆうぎ嘅程しきとうちゅうゆう事件じけん管理かんり系統けいとう[おう 9]事件じけん管理かんり系統けいとうかいじょうごとしゅ事件じけんがかり乜同わたる及乜すうよりどころ;而喺做更新こうしん遊戲ゆうぎ狀態じょうたい嗰時,遊戲ゆうぎ世界せかいいれめんごとけん物件ぶっけんどうまい系統けいとう(睇 foreachかい睇吓發生はっせい緊嘅事件じけんとうちゅう啲係どう相關そうかん嘅,さい遊戲ゆうぎ法則ほうそく決定けってい要點ようてん俾反おう[16]

遊戲ゆうぎ物理ぶつり

[編輯へんしゅう]
うちぶん遊戲ゆうぎ物理ぶつり

遊戲ゆうぎ物理ぶつり[おう 10]ゆび遊戲ゆうぎ世界せかい物理ぶつりじょ互動しき小說しょうせつとう少數しょうすう遊戲ゆうぎ類型るいけいそと電子でんし遊戲ゆうぎ多數たすう都會とかいゆう空間くうかん俾玩ひかえせいぼう啲嘢喺入めんいくどう所以ゆえん一隻遊戲嘅世界多數要有物理ぶつり法則ほうそく主宰しゅさい啲嘢おう該點いく(唔一定合乎現實世界嘅物理定律),而喺「更新こうしん遊戲ゆうぎ世界せかい狀態じょうたい」嘅過ほどとうなか遊戲ゆうぎほどしきよう按照遊戲ゆうぎ物理ぶつり法則ほうそくどう玩家輸入ゆにゅうけいかえし世界せかい狀態じょうたいおう該點へんれいいちせきよううしひたぶる力學りきがくさいしゃ遊戲ゆうぎ,喺玩撳咗「踩油」嘅掣嗰陣,よう改變かいへんしゃ加速度かそくどかず值,而架しゃ相應そうおう速度そくどどう位置いちとう變數へんすうまたよう跟牛ひたぶる力學りきがく裏面りめん法則ほうそく作出さくしゅつ相應そうおう改變かいへん[15]

れい如以呢段よう C うつし嘅碼以攞嚟模擬もぎうしひたぶるだい定律ていりつこれいくどう嘅物たい,喺動作どうさ遊戲ゆうぎとうちゅう基本きほんじょうかいよういた[17]

double t = 0.0;
float dt = 1.0f;

float cuk_dou = 0.0f;
float wai_zi = 0.0f;
float lik = 10.0f;
float zat = 1.0f;
// しつらえいちだいなら變數へんすう包括ほうかつ咗時あいだてん(t)、時間じかん間隔かんかく(dt)、速度そくど(cuk_dou)、位置いち(wai_zi)、けん物體ぶったい受嘅りょく(lik)、どうけん物體ぶったい嘅質りょう(zat)。

while ( t <= 10.0 ) // 重複じゅうふく噉計若干じゃっかんけいいた時間じかんてんがかり 10 ためどめ
{
    wai_zi = wai_zi + cuk_dou * dt;
    cuk_dou = cuk_dou + ( lik / zat ) * dt; // よううしひたぶるだい二定律計吓件物體受嘅力同佢嘅質量會點影響佢嘅速度。
    t += dt;
}

呢段嘢會俾嘅輸出ゆしゅつ如下,佢列嗮佢模擬もぎ嗰件物體ぶったい喺每時間じかんてん 位置いちどう速度そくど[17]

t=0:    wai_zi = 0      cuk_dou = 0
t=1:    wai_zi = 0      cuk_dou = 10
t=2:    wai_zi = 10     cuk_dou = 20
t=3:    wai_zi = 30     cuk_dou = 30
t=4:    wai_zi = 60     cuk_dou = 40
t=5:    wai_zi = 100    cuk_dou = 50
t=6:    wai_zi = 150    cuk_dou = 60
t=7:    wai_zi = 210    cuk_dou = 70
t=8:    wai_zi = 280    cuk_dou = 80
t=9:    wai_zi = 360    cuk_dou = 90
t=10:   wai_zi = 450    cuk_dou = 100

人工じんこう智能ちのう

[編輯へんしゅう]

遊戲ゆうぎへんほどかいよういた人工じんこう智能ちのう(AI)嘅技術ぎじゅつこう遊戲ゆうぎせきいれめん都會とかいゆうてきじん俾玩,啲敵じんようあかつき唔淨ただがかりくわだて喺度,なかかなめ探測たんそく玩家嘅位置いちなみ且攻げき玩家,以及たい玩家嘅攻げき作出さくしゅつ迴避とうとうそくがかりばなしようれい遊戲ゆうぎかくしょく作出さくしゅつゆう智能ちのう行為こうい,而「れい機械きかい展示てんじ智能ちのうせいせい就係人工じんこう智能ちのう定義ていぎ[18]

いち般嘅電子でんし遊戲ゆうぎ人工じんこう智能ちのうゆう以下いか嘅部份:

  • 刺激しげきかいしゃく[おう 11]刺激しげきかいしゃく會話かいわ俾一個人工智能程式知個遊戲狀態係點;一般いっぱん嚟講,まい個個ここたいてきじん都會とかいゆう獨立どくりつ人工じんこう智能ちのうじょせき遊戲ゆうぎがかりこう玩家かくしょくいちはん具有ぐゆう集合しゅうごう心靈しんれい嘅外ほしじん),まい智能ちのうかい透過とうか刺激しげきかいしゃくいた佢哋おう該得いた嘅資訊,跟住ほどしきようゆう方法ほうほう表示ひょうじforeach てきじん,嗰個てき人手ひとでじょうゆう乜資訊」[19]
  • けつさく系統けいとう[おう 12]まい一個人工智能都要按手上嘅資訊同自己嘅目的,けい跟住よう採取さいしゅ乜嘢行動こうどうれい如一個敵人見到玩家,知道ともみち玩家嘅位置いち,而佢目的もくてきがかりようぎょううめ玩家攻擊こうげき佢,佢個人工じんこう智能ちのうほどしき就要ゆう方法ほうほうきょう佢點さまよう「玩家嘅位置いちどう自己じこ位置いち」(けつさく系統けいとう輸入ゆにゅうけいだし自己じこおう該向乜方向ほうこう移動いどう」(けつさく系統けいとう輸出ゆしゅつ[19]

舉例說明せつめい,喺遊戲ゆうぎ AI じょう,其中一樣最基本嘅嘢係教 AI ついてきじんれい遊戲ゆうぎてきじんつい蹤玩,嘗試接近せっきんどう攻擊こうげき玩家かくしょく以下いかかかりきょういち AI つい seek いちけん物件ぶっけん嘅演算法さんぽう[20]

class KinematicSeek:
  // Declare 演算えんざんほうひかえせい緊邊かくしょくどうようつい目標もくひょう
    gok_sik, target
  // Declare かくしょく最大さいだい速度そくど
    maxCuk

  def getSteering():
    // せい output 嘅結構けっこう
    steering = new KinematicSteeringOutput()
    // 攞個 steering 嘅方向ほうこう
    steering.velocity = target.position - gok_sik.position // 如果はた呢個すう變成へんせいずい以用嚟教 AI ずいぎょう嚟行(wandering)。
    if steering.velocity.length() < radius: // 如果どう目標もくひょうあいだ距離きょりほそぼう特定とくていすう值,就唔使いく
      return none
    // けいだし exact 嘅速度そくど
    steering.velocity.normalize()
    steering.velocity *= maxCuk
    // 轉向てんこうよういく方向ほうこう
    gok_sik.orientation = getNewOrientation(gok_sik.orientation,steering.velocity)
    // はた steering 俾做 output
    steering.rotation = 0
    return steering

じゅんたいいちひさげはた target.position - gok_sik.position あらためgok_sik.position - target.position 就可以令だん演算えんざんほう變成へんせいきょう AI 避開いちけん物件ぶっけん[20]さいしん一步嘅演算法仲會教埋個 AI はなれ目標もくひょうゆうかえし上下じょうげきん就要剎掣、はた方向ほうこうたいじゅん、以及はた自己じこ速度そくど變成へんせいどう目標もくひょう一致等等嘅功能[21]

遊戲ゆうぎ外觀がいかん

[編輯へんしゅう]
いちでん液晶えきしょう顯示けんじ一部いちぶいえよう遊戲ゆうぎ通常つうじょうかいようぼう啲方しきでん訊號顯示けんじ嗰度,俾個顯示けんじ聽要乜畫めん
一部いちぶ PSP;PSP がかり一部いちぶ手提てさげ遊戲ゆうぎ機上きじょうめんゆう熒幕よう顯示けんじ遊戲ゆうぎ狀態じょうたい

遊戲ゆうぎ外觀がいかん包含ほうがん一柞將遊戲邏輯向觀察者(通常つうじょうゆび玩家)てんげん嘅子系統けいとう:一隻遊戲需要俾玩家決定要作出乜行動,而為咗俾玩家よう做決さくほどしきじつよう以某啲方しきていげん遊戲ゆうぎ世界せかい狀態じょうたい俾玩;喺廿一世紀嘅應用當中,遊戲ゆうぎ世界せかい通常つうじょうかいようゆう吸引きゅういんりょく電腦でんのう圖像ずぞう(CG)さいうめ適當てきとう聲音こわね嚟呈げん。喺攞咗玩輸入ゆにゅうまたけいこう遊戲ゆうぎ世界せかい嘅新狀態じょうたいのち遊戲ゆうぎほどしきよう做嘅嘢就がかりこのみ熒光まくよう顯示けんじ乜圖ぞう」以及「啲音響おんきょう喇叭らっぱよう乜嘢ごえ」-せめ做呢こうじょ遊戲ゆうぎほど式部しきぶ份就がかり遊戲ゆうぎ外觀がいかん系統けいとう[22]

影像えいぞう

[編輯へんしゅう]

顯示けんじ影像えいぞう嘅方法要ほうよう睇隻遊戲ゆうぎがかりよう二維定三維影像嘅做法:

  • 圖像ずぞうかいよう精靈せいれい[おう 13]結合けつごううめ一齊いっせいせいけい。舉個れい說明せつめい,喺いちせき維嘅《ちょうきゅう瑪利おく遊戲ゆうぎいれめん遊戲ゆうぎほどしきかいじゅうぬしかく嘅精れいどううめ啲怪じゅう嘅精れい,而個ぬしかく瑪利おく嘅精れいまたかい包含ほうがん咗(れい如)佢企喺度嗰陣嘅樣、佢行嗰陣嘅樣、どううめ佢跳嗰陣嘅樣とうとう。喺每いち時間じかんてんほどしき都會とかい按「ぬしかくどうまいせき怪獸かいじゅう喺邊位置いち,喺度做緊乜」とう嘅資訊,揀應該用いくぶく精靈せいれいなみ且按あきらまいけん物件ぶっけん位置いちはた呢啲精靈せいれいどう背景はいけいあい拼埋一齊いっせい最後さいご形成けいせいいち畫面がめん最後さいごほどしきようしょう呢個畫面がめんでん熒光まく嗰度,とう熒光まくはた畫面がめん顯示けんじ[23][24][25]
  • さん圖像ずぞうかいよういたさん維模がた[おう 14]いちさん維模がたがかりいちたい於部電腦でんのう嚟講)よう數字すうじていげんさん維物たい,而整一幅三維嘅電腦圖像過程要用あやげん[おう 15]嘅方ほうそう做彩げん嘅人かいくびさきせいいちけい檔案[おう 16]嚟,呢個檔案かい包含ほうがん多種たしゅ訊,包括ほうかつけいいれめんよう咗啲乜嘢立體りったい模型もけい」、「まい立體りったい模型もけい喺邊位置いち」、「光源こうげん喺邊」、「きょうあたま擺喺位置いち」、どううめ幾何きか變換へんかん」(睇下めん)呀噉,描述けいがかりてん嘅;しか後部こうぶ電腦でんのうかいはた呢個檔案いれめん嘅數よりどころでん一個彩現程式嗰度,とうほどしき做一大柞人手做唔嚟嘅運算,けいきょうあたまかい睇到嘅(維)影像えいぞうおう該係てんさま嘅,なみ且將きょうあたましょ睇到嘅影ぞう俾出嚟做輸出ゆしゅつ[26][27]
  • 無論むろん二維定三維圖像,一個電子遊戲程式會係噉做「もと遊戲ゆうぎ狀態じょうたい更新こうしん影像えいぞう」嘅工作こうさく,而且一秒內做閒閒地做幾廿次-由人よしと嚟睇就好がかり識郁嘅影ぞう[23][26]

ようきょなずらえ碼表たちだい致上かいがかり[28]

 設定せってい背景はいけいがかり咩樣。 // はた背景はいけいしつらえ做應ゆう嘅色すい
 
 for each 物件ぶっけん // for each 物件ぶっけんよう精靈せいれい(2D 嘅話)あるものさん維模がた(3D 嘅話)佢出嚟。
     攞件物件ぶっけん位置いち
     攞作物件ぶっけん嘅精れいあるものさん維模がた
     佢出嚟

聲音こわね

[編輯へんしゅう]

電子でんし遊戲ゆうぎほどしきかい內有若干じゃっかんごえ檔案,喺某啲事件じけん發生はっせい嗰陣,ほどしきよう按「玩家かくしょくはなれ發聲はっせい物件ぶっけんいくとおとう嘅資訊,つて訊號音響おんきょう喇叭らっぱ嗰度,きょう喇叭らっぱ乜嘢ごえ電子でんし遊戲ゆうぎわたる及三だいたね聲音こわね[29]

  • 音樂おんがく遊戲ゆうぎほどしきいちにち喺某狀態じょうたい(「喺標題畫だいがめん」、「喺第一關いちのせき」、「喺第二關にぜき」... とうとう)就要一路いちろ循環じゅんかん播嘅ごえかいよういた while 迴圈(while せき遊戲ゆうぎ喺呢呢個狀態じょうたい,播呢くび呢首音樂おんがく)。音樂おんがくたい營造えいぞう一隻遊戲嘅氣氛嚟講不可或缺[30]
  • こえこう[おう 17]ゆび喺某啲事件じけん發生はっせい嗰時いちせい嘅聲,れい如係いちせきさいしゃ遊戲ゆうぎいれめんまいとうゆうりょうしゃしょう撞,遊戲ゆうぎほどしきようさけべ喇叭らっぱ播出相應そうおう嗰個ごえ檔案嘅內よう[29]
  • こうかかり三種聲入面最難搞嗰種;いんため喺多すう情況じょうきょう遊戲ゆうぎほどしき唔淨ただようさけべ喇叭らっぱ播出ごえ檔案,なかよう確保かくほ啲聲どうこう緊嘢嗰個かくしょくさん維模がたくちばしくちびる嘅郁どうどう(而且喺製作せいさくじょうせいこう嘢聲ようとくとう請配おんいんかえし嚟做)。ゆう遊戲ゆうぎほどしきかいさくせいゆう個數こすうよりどころもうかじゅう人類じんるいくちばしくちびる喺發ごとしゅごえ嗰時がかり乜樣」嘅資訊,さい喺要播講嘢聲嗰陣,そくじょうよし啲聲けいだしかくしょく嘅三維模型嘅嘴唇要係乜樣[29]

喺每いち時間じかんてん 遊戲ゆうぎほどしきよう考慮こうりょゆういくごえ檔案喺度播緊,さい(foreach 播緊嘅聲檔案)按「呢個ごえ檔案しょ於邊時間じかんてん」以及「呢個ごえげんはなれ玩家かくしょくいくとおとう嘅資訊,けいだし佢喺嗰個時間じかんてんかい造成ぞうせい乜嘢ごえいちごえゆういく高音こうおんどういく大聲おおごえとう以用數字すうじ表示ひょうじ),さいしょう呢啲訊傳音響おんきょう喇叭らっぱ嗰度[29]

へんほど概念がいねん

[編輯へんしゅう]

一般いっぱんみとめためよううつし遊戲ゆうぎほどしきおこり碼要識晒以下いか呢啲へんほど概念がいねんさき

へんほどせい

[編輯へんしゅう]

常用じょうよう嚟做遊戲ゆうぎへんほどほどしきげんどうせいゆう以下いか呢啲(よう留意りゅうい嘅係,遊戲ゆうぎこうかいよういち款語げんうつし):

文獻ぶんけん

[編輯へんしゅう]
  • Lengyel, E. (2001). Mathematics for 3D game programming and computer graphics. Charles River Media, Inc..
  • McShaffry, M. (2014). Game coding complete. Nelson Education.

呢篇ぶんよう咗嘅くだりばなし彙,英文えいぶん版本はんぽん如下:

  1. initialize
  2. game loop
  3. loop
  4. command interpreter
  5. game logic
  6. data structure
  7. event-driven architecture,簡稱 EDA
  8. event
  9. event manager
  10. game physics
  11. stimulus interpreter
  12. decision system
  13. sprite
  14. 3D model
  15. rendering
  16. scene file
  17. sound effect

呢篇ぶん引用いんよう咗以呢啲文獻ぶんけんどうあみぺーじ

  1. Sanchez-Crespo, D., & Dalmau, D. S. C. (2004). Core techniques and algorithms in game programming. New Riders.
  2. 2.0 2.1 2.2 Game Programming Algorithms and Techniques: Overview, p. 2. informIT.
  3. "Programming Linux Games, Chapter 1" (PDF). ISBN 1-886411-48-4.
  4. Valente, L., Conci, A., & Feijó, B. (2005). Real time game loop models for single-player computer games. In Proceedings of the IV Brazilian Symposium on Computer Games and Digital Entertainment (Vol. 89, p. 99).
  5. 7 Reasons Game Development Is the Perfect Side Hobby for Software Developers 互聯もう檔案かんかえりかえり檔日2018ねん10がつ13ごう,.. Atomic Object.
  6. Moore, Michael E.; Novak, Jeannie (2010). Game Industry Career Guide. Delmar: Cengage Learning.
  7. 7.0 7.1 McShaffry, M. (2014). Game coding complete. Nelson Education. p. 34 - 35.
  8. Valente, L., Conci, A., & Feijó, B. (2005). Real time game loop models for single-player computer games. In Proceedings of the IV Brazilian Symposium on Computer Games and Digital Entertainment (Vol. 89, p. 99).
  9. 9.0 9.1 Shelly, Gary; Vermaat, Misty (2008). Discovering Computers: Fundamentals. Boston, MA: Course Technology Cengage Learning. p. 172.
  10. Whitehead, A., Crampton, N., Fox, K., & Johnston, H. (2007, November). Sensor networks as video game input devices. In Proceedings of the 2007 conference on Future Play (pp. 38-45). ACM.
  11. Video Game Controller With Arduino 互聯もう檔案かんかえりかえり檔日2019ねん1がつ13ごう,..
  12. 12.0 12.1 McShaffry, M. (2014). Game coding complete. Nelson Education. p. 40.
  13. Designing Game Controls 互聯もう檔案かんかえりかえり檔日2019ねん1がつ12ごう,.. Gamasutra.
  14. 14.0 14.1 14.2 Command. Game Programming.
  15. 15.0 15.1 15.2 15.3 15.4 15.5 McShaffry, M. (2014). Game coding complete. Nelson Education. Ch. 2.
  16. K. Mani Chandy. Event-Driven Applications: Costs, Benefits and Design Approaches, California Institute of Technology, 2006.
  17. 17.0 17.1 Integration Basics: How to integrate the equations of motion 互聯もう檔案かんかえりかえり檔日2018ねん10がつ26ごう,.. Gaffer on Games.
  18. Yannakakis, Geogios N (2012). "Game AI revisited" (PDF). Proceedings of the 9th Conference on Computing Frontiers: 285–292.
  19. 19.0 19.1 McShaffry, M. (2014). Game coding complete. Nelson Education. p. 45 - 46.
  20. 20.0 20.1 Millington, I. (2019). AI for Games. CRC Press. p. 52 - 53.
  21. Millington, I. (2019). AI for Games. CRC Press. p. 62 - 64.
  22. McShaffry, M. (2014). Game coding complete. Nelson Education. p. 41.
  23. 23.0 23.1 Hague, James. "Why Do Dedicated Game Consoles Exist? 互聯もう檔案かんかえりかえり檔日2018ねん4がつ23ごう,.". dadgum.com.
  24. Schaul, T. (2013, August). A video game description language for model-based or interactive learning. In 2013 IEEE Conference on Computational Inteligence in Games (CIG) (pp. 1-8). IEEE.
  25. Khalifa, A., Green, M. C., Perez-Liebana, D., & Togelius, J. (2017, August). General video game rule generation. In 2017 IEEE Conference on Computational Intelligence and Games (CIG) (pp. 170-177). IEEE.
  26. 26.0 26.1 Bouknight, W. J. (1970). "A procedure for generation of three-dimensional half-tone computer graphics presentations". Communications of the ACM. 13 (9): 527–536.
  27. Phong, B-T (1975). "Illumination for computer generated pictures". Communications of the ACM. 18 (6): 311–316.
  28. Ultimate Guide to the Processing Language Part II: Building a Simple Game. Developers.
  29. 29.0 29.1 29.2 29.3 McShaffry, M. (2014). Game coding complete. Nelson Education. p. 43 - 44.
  30. Collins, Karen (2008). Game sound: an introduction to the history, theory, and practice of video game music and sound design. MIT Press. pp. 112–118.
  31. Hyde, Randy (1985). Using 6502 Assembly Language.
  32. 32.0 32.1 Corlan, Alexandru-Dan (2011). "Game Programming in C and C++ 互聯もう檔案かんかえりかえり檔日2019ねん5がつ13ごう,.".
  33. Corlan, Alexandru-Dan. "LWJGL - Projects".
  34. Corlan, Alexandru-Dan (2015-03-24). "Lua: Uses 互聯もう檔案かんかえりかえり檔日2019ねん7がつ24ごう,.".