物件生成

物件生成mat6 gin2 sang1 sing4英文spawning)係電子遊戲上嘅一個用語,指個遊戲程式虛擬世界嘅空間裏面「產生一嚿物件」-可以係角色道具或者 NPC 呀噉-嘅過程[1][2]

呢個虛擬世界入面有好多嚿物件-檯、櫈同埋檯上嘅紅酒樽... 呀噉;遊戲程式要响遊戲開始嗰陣 spawn 呢啲物件出嚟。

廿一世紀初嘅電子遊戲廣泛噉採用物件導向編程(OOP)嘅技巧:遊戲程式會將遊戲世界當做由好多嚿物件(object)組成,每嚿物件都有一拃,例如响一隻射擊遊戲裏面「玩家角色」呢嚿物件會有生命值同埋「手上揸住啲咩武器」噉嘅一拃特性;呢啲咁多唔同物件要喺遊戲世界當中郁動以及互動,令到遊戲得以進行;喺遊戲開始嗰陣,遊戲程式通常就要將呢啲物件產生喺遊戲世界嘅特定位置度[3]

因為物件生成咁常用,主流遊戲引擎手稿語言(簡化講,係專俾人喺遊戲引擎度寫程式嘅語言)都索性整埋專化嘅陳述式嚟做呢樣工作,例如 Unity C#Instantiate 就相當出名[4]

主要功能

  • 生成(spawn):物件生成嘅基本;生成通常嘅做法係,遊戲程式寫成指明件物件屬咩類別,然後指定嚿物件要出現喺遊戲世界嘅邊個位置,跟住嚿物件就會按照佢內部嗰啲程式碼嚟行事;例如係喺 Unity C# 手稿裏面會有以下噉嘅碼[4]
    using UnityEngine;using System.Collections;public class ExampleClass : MonoBehaviour{    public Transform prefab; // 俾用家指定嚿物件嘅位置、旋轉同要縮放幾多倍。    void Start() // 開始嗰陣...    {        for (int i = 0; i < 10; i++) // 重複以下工作 10 次...        {            Instantiate(prefab, new Vector3(i * 2.0F, 0, 0), Quaternion.identity); // 指定位置同旋轉,產生嚿物件。        }    }}
  • 反生成(despawn):指將一件物件由個遊戲世界入面除走,例如一個角色或者敵人生命值變咗 0,佢就會死亡,而喺呢個時候個遊戲程式就要將佢剷走[註 1];噉做係因為如果一個遊戲世界入面物件數量多得滯,會搞到隻遊戲窒。喺 Unity C# 手稿裏面有以下噉嘅碼[5]
    using UnityEngine;public class ScriptExample : MonoBehaviour{    void DestroyGameObject()    {        Destroy(gameObject); // 將嚿 gameObject 剷走佢。    }}
  • 重新生成(respawn):指一件物件反生成之後再生成多一次;例如喺好多遊戲當中,玩家角色俾敵人打中死亡之後唔會即刻 GAME OVER,而係玩家會少咗條,跟住個玩家角色會喺某個地點再生成,要一路去到玩家角色死兼且玩家啲命冇嗮嗰時先會 GAME OVER [6]
  • 生成地點(spawn point):指遊戲世界入面一個指定用嚟俾某啲嘢重新生成嘅地點;例如係好多 PvP 射擊遊戲死亡競賽入面,玩家角色死咗會响若干秒之後重新生成,等玩家有得繼續參與對局,整嚟俾重生生成發生嘅地點就係生成地點;喺實際應用上,生成地點通常會係遊戲世界入面一嚿隱形嘅物件[6]。睇埋生成地點露營

註釋

睇埋