物件生成

(由反生成跳轉過嚟)

物件生成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]。睇埋生成地點露營

註釋 編輯

  1. 喺廿一世紀初嘅應用上,遊戲程式通常係即刻將個角色嘅 3D 模型做 despawn,跟住即刻 spawn 個新模型嚟做布公仔物理

睇埋 編輯

編輯

  1. Saunders, Kevin; Novak, Jeannie (2012-03-27). Game Development Essentials: Game Interface Design. Cengage Learning. p. 200.
  2. Ebner, M., Levine, J., Lucas, S. M., Schaul, T., Thompson, T., & Togelius, J. (2013). Towards a video game description language (PDF).
  3. Chen, W. K., & Cheng, Y. C. (2007). Teaching object-oriented programming laboratory with computer game programming. IEEE Transactions on Education, 50(3), 197-203.
  4. 4.0 4.1 Object.Instantiate. Unity Manual.
  5. Object.Destroy. Unity Manual.
  6. 6.0 6.1 Melnic, D., & Melnic, V. (2018). Saved games and respawn timers: The dilemma of representing death in video games. University of Bucharest Review: Literary and Cultural Studies Series, 7(07), 2018.

編輯