2017-03-27 68 views
0

我正在製作遊戲引擎,但我似乎碰到了牆壁。我想將遊戲引擎作爲一個exe文件分發給開發人員,然後加載他們的文件。內部對象被存儲爲:C++加載外部類exe 0

class Gameobject 
{ 
    Vector position; 
    virtual void Update(){} 
    virtual void Render(){} 
} 

std::vector<GameObject*> gameobjects; 

我想開發商只是做

class ClassForGame: public GameObject 
{ 
    void Update(){} 
    void Render(){} 
} 

,並添加到列表中

gameobjects.push_back(new ClassForGame()); 

,但我希望他們能夠做到這一點的使文件結構如下:
MyGameEngine.exeGame.cpp

我將如何加載他們的文件和類以便使用它們?

我使用的是g ++,Ubuntu和glut,如果這有幫助,我寧願不使用任何外部庫。
他們如何將他們的文件編譯成我的exe文件,以便他們分發他們的遊戲?我意識到這些是兩個不同的問題。

+0

在做這樣的項目之前瞭解更多C++。現在,對於其他人實際上從您的代碼中受益,您似乎並不知情。在這種情況下:exe是機器代碼。源文件是編程語言。沒有編譯器,編程語言就無法做任何事情。另外,你爲什麼用Ubuntu標誌這個,然後談論一個exe? – Aziuth

+0

@Aziuth讓人們知道這是一個可執行文件 –

回答

1

引擎應該像庫一樣分發,不像可執行文件。

+0

謝謝。我會使用靜態庫還是動態庫? –

+0

您可以使用靜態或動態選項。這取決於哪個更適合您的項目。但是,就像下面的評論中提到的,首先你應該明白它們之間的區別。 – Maksim

0

首先,您應該瞭解進程地址空間,以便您瞭解進程的工作方式。

我認爲你想製作一個遊戲引擎的SDK,開發人員可以從這個SDK中調用API來製作他們自己的項目。

一個SDK可以釋放爲dll或lib,因此您應該瞭解它們之間的區別。