Re: [問題] 想了解遊戲業者如何做跨平台遊戲
再請教一下
假如我要寫windows平台...
也許是在WM_PAINT呼叫engine的render();
而linux平台不熟
但應該不是像windows平台這樣寫法 是message based的嗎我也不確定...
遊戲engine有辦法把這塊也包起來嗎???
programmar不管哪個平台 開個空專案就可以直接拿engine來寫遊戲
另外就我自己了解
Windows要和driver溝通是透過win32 deviceiocontrol
所以render(){#ifdef WINDOWS 這邊可以用這win32 API去和driver溝通...}
所以#else 那邊就是呼叫linux平台可以和driver溝通的api嗎?
所以上層再用render()就不用管哪平台?
如果是使用opengl的話 opengl的腳色就是把跟driver溝通的這段包好
讓我們在實做render()的時候不用費心去處理和driver溝通嗎
所以我可以說opengl算是一套library 一個middle-ware 算是把跟Driver溝通的部分
都處理好~~~的API(API定義還是無法真正理解 常常不知道function和API怎麼區隔
好像都通.....)?
假如說 沒有了opengl這個middle-ware
我們一般人有辦法自己去實作這一段嗎(需要和nvidia之類的合作才有可能?)
現在總覺得程式要寫是OK
但想了解來龍去脈 越想是越迷惘
每次都想著 如果我沒API 那我是不是就不會寫程式了.....
請教各位= = 感謝
※ 引述《littleshan (我要加入劍道社!)》之銘言:
: 比較漂亮的作法:
: class Renderer { // 某個處理繪圖用的 abstract class
: public:
: virtual void render(const Scene& scene) = 0; // 把場景畫出來
: };
: class RendererD3D9 : Renderer {
: public:
: void render(const Scene& scene)
: {
: // 使用 DirectX 進行繪圖
: }
: };
: class RendererGL : Renderer {
: public:
: void render(const Scene& scene)
: {
: // 使用 OpenGL 進行繪圖
: }
: };
: 比較醜但是直接的做法
: void Render(const Scene& scene)
: {
: #ifdef USE_OPENGL
: // 使用 OpenGL 進行繪圖
: #else
: // 使用 DirectX 進行繪圖
: #end
: }
: 說穿了也沒什麼神奇的
: 當然其中也有一些技巧就是了 (比如 abstract factory pattern)
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 123.192.70.221
※ 編輯: QQ29 來自: 123.192.70.221 (10/12 01:02)
→
10/12 01:57, , 1F
10/12 01:57, 1F
→
10/12 01:58, , 2F
10/12 01:58, 2F
→
10/12 01:59, , 3F
10/12 01:59, 3F
→
10/12 01:59, , 4F
10/12 01:59, 4F
→
10/12 01:59, , 5F
10/12 01:59, 5F
→
10/12 02:00, , 6F
10/12 02:00, 6F
→
10/12 02:00, , 7F
10/12 02:00, 7F
→
10/12 02:01, , 8F
10/12 02:01, 8F
推
10/12 02:30, , 9F
10/12 02:30, 9F
→
10/12 02:31, , 10F
10/12 02:31, 10F
→
10/12 02:31, , 11F
10/12 02:31, 11F
→
10/12 02:32, , 12F
10/12 02:32, 12F
→
10/12 03:03, , 13F
10/12 03:03, 13F
→
10/12 03:03, , 14F
10/12 03:03, 14F
→
10/12 09:01, , 15F
10/12 09:01, 15F
推
10/12 11:59, , 16F
10/12 11:59, 16F
→
10/12 12:00, , 17F
10/12 12:00, 17F
→
10/12 13:36, , 18F
10/12 13:36, 18F
→
10/12 13:42, , 19F
10/12 13:42, 19F
推
10/12 14:06, , 20F
10/12 14:06, 20F
→
10/12 14:32, , 21F
10/12 14:32, 21F
推
10/12 15:17, , 22F
10/12 15:17, 22F
推
10/12 22:39, , 23F
10/12 22:39, 23F
→
10/12 22:40, , 24F
10/12 22:40, 24F
推
10/12 22:40, , 25F
10/12 22:40, 25F
→
10/12 22:41, , 26F
10/12 22:41, 26F
推
10/12 23:30, , 27F
10/12 23:30, 27F
→
10/12 23:31, , 28F
10/12 23:31, 28F
推
10/13 00:02, , 29F
10/13 00:02, 29F
推
10/14 23:54, , 30F
10/14 23:54, 30F
討論串 (同標題文章)