在所有遊戲中(用戶輸入,圖形,人工智能,菜單,碰撞檢測,聲音,作弊,級別,配置等等),遊戲的主要部分是什麼?我應該首先實現並關注什麼?我應該最後離開嗎?你應該在遊戲中首先執行哪些部分?
回答
其他答案都很好,但在某種程度上他們並不真正告訴你先寫什麼。
當然你需要一個遊戲設計,或者至少有足夠的想法來探索,你大概知道你需要什麼。最好能得到一個垂直切片(一切正常,所以你可以儘早玩遊戲,並證明你可以克服所有核心挑戰,沒有任何不愉快的驚喜)
但我會說(更具體一些),你首先需要編寫一個框架。太多的遊戲是以「我只是從一些圖形開始」開始的,然後他們嘗試在遊戲對象,碰撞和AI之後的事情上進行插入。我製作了一個三維遊戲標題,遊戲中的每個聲音效果都必須附加到隱藏在地板下的一個小三角形上,因爲原始編碼器的螺栓連在一起而沒有思考的第一個設計是,遊戲是「一個圖形」!哎呀!
所以一個框架:也就是說,一個支持你遊戲需求的數據結構和通信架構。對於你所建議的遊戲,一個非常簡單的框架就足夠了 - 主要是想幾分鐘關於你的遊戲中將使用什麼對象(例如可能是兩個戰士和一個攝像頭),以及你將如何存儲,連接在一起並使用他們的圖形,音頻,碰撞和AI行爲,以及你將如何傳遞他們的信息(UI輸入來控制他們,以及他們如何查詢周圍的世界來做出他們的遊戲決策)。只要你考慮到你最後一場比賽的所有元素,你就不會絆倒某些明顯的事情。嘗試使它成爲模塊化(這樣您就可以用2D平面中顯示的3D圖形(即完全不同的渲染器)替換2D圖形,而不必重寫碰撞和AI)
即使您還不完全知道你將如何做什麼,只是考慮到你會需要它可以使你的設計更加靈活,並在以後爲你節省大量的麻煩。
所以,對不起,在添加一些有趣的東西之前,你必須先做一大堆無聊的東西。
最後?這是遊戲拋光。一旦你有了一個框架,你就可以使用簡單的圖形獲得一個工作原型,並獲得基本的遊戲玩法(UI,碰撞,AI)。然後你可以用更好的圖形,音頻和菜單,操縱桿支持等來修飾它。但只有在這個過程結束時,你纔有完整的外觀和感覺來測試。那就是當你需要批判性地玩遊戲並且正確地獲得遊戲平衡時。你可能會發現,隨着時間的推移,你已經爲你的戰鬥生物增加了巨大的頭顱,因爲它看起來很酷,但是這導致了級聯降低了遊戲的可玩性。或者,一旦你添加了一些音頻,你覺得你需要在圖形中多一點動畫,以使擊球感覺非常穩固。所以最後階段需要大量的時間來致力於調整平衡以達到完美。
如果你做了多個關卡,那麼當整個遊戲結束時,你需要玩整個遊戲來調整關卡,以形成一個有趣且具有挑戰性的序列。所以最後還是拋光,因爲你無法平衡這些東西,直到完成其他任何事情。
請記住,圖形,音頻,碰撞,人工智能和用戶界面對遊戲都非常重要,但遊戲比所有這些加在一起更重要。小行星仍然是有史以來最好的遊戲之一,它只是一串單色線條和一些嘟嘟聲 - 但具有出色的遊戲性。現在大多數遊戲都忘記了這一課。
您需要儘快將所有這些系統的功能提升至基本功能水平。
單層。一個角色的AI。最小的碰撞...
然後你可以看看你生產的東西是否有趣。
您會體會到您從實際嘗試您的想法中獲得的洞察力,並且您無需知道下一步應該關注什麼。
此外,您會盡快知道您的系統是否有一個基本問題,在它們變得笨拙之前合在一起。
遊戲玩法&的故事!
該命令是非常依賴於遊戲的類型。大多數遊戲都有一個反覆重複的基本互動。這是你的重點應該放在哪裏。您必須構建最簡單的原型,以便您探索遊戲的核心思想,以便了解它是否可行(並根據需要進行調整)。一些實際遊戲的例子:
- 射手,就像戰爭機器:躲在掩護下,射擊敵人。需要3D,路徑發現和碰撞,具有各種佈局和一些AI的地圖。
- 類似龍騰世紀的角色扮演遊戲:在這裏你需要用來計算技能,傷害和模擬戰鬥的規則系統。如果戰鬥沒有深度和愉悅,那麼沒有任何3D或甚至是故事可以保存它。
- 基於平臺的,像Mirrors Edge。需要使用地圖佈局和輸入系統來查看您是否可以實際執行某些操作。
所以我說的是,你應該確定什麼是你絕對需要的東西,並留下一切爲了以後。如果聲音對遊戲玩法不重要,請保留它。如果遊戲文字不重,請離開菜單。等等。如果你正在做的是基於3D的東西,你會很早就需要3D引擎,因爲它通常會影響遊戲的其他部分。
另一件事。儘量不要太雄心勃勃。隨着你添加的每一件小東西,你的遊戲變得更難以平衡,如果你想用多人遊戲來做什麼的話更是如此。最好有一些簡單的東西,可以播放一些複雜的東西,甚至從來沒有用過。
這很簡單,你從最重要的事情開始。困難的部分是搞清楚是什麼。
- 1. 哪個類首先在Python中執行?
- 2. 在AJAX調用中首先執行哪些方法?
- 3. pytest中首先執行哪個文件?
- 4. 應該執行哪些行爲?
- 5. 我加入了ACM。我應該首先看哪些資源?
- 6. 我應該首先在文字模式下發展我的遊戲理念嗎?
- 7. 應該使用哪個遊戲平臺?
- 8. 我應該使用哪些模塊來創建遊戲樹?
- 9. 我該如何執行谷歌遊戲遊戲登錄?
- 10. 應用程序的哪些部分應該在服務中?
- 11. 在安卓遊戲中,你應該爲UI線程還是遊戲線程分配內存資源
- 12. 我應該允許AdMob在Android遊戲中使用哪些類別?
- 13. 哪個操作將在Android中onStart或onCreate中首先執行
- 14. 在現代遊戲設計中,遊戲的哪些部分被編寫爲便攜式?
- 15. 哪個函數在asp.net中首先執行?
- 16. 在哪種方法中游戲狀態應該保存/加載
- 17. 在Perl中執行多線程應該注意哪些模塊?
- 18. 這個()在java中應該總是首先執行,如果存在?
- 19. 執行函數首先在Postgres中
- 20. 哪一行首先更新?
- 21. 代碼的錯誤部分首先執行
- 22. 我應該使用哪種分類器來進行遊戲自動化?
- 23. 我們應該使用哪些API將spritesheet和sprites添加到cocos2d遊戲中?
- 24. Tableview首先隱藏部分?
- 25. mysql首先執行mysql orderby
- 26. 什麼首先執行?
- 27. 你如何讓你的WP7應用出現在遊戲中心?
- 28. DataInputStream中的哪一個.readUTF方法將首先執行?
- 29. 使用遊戲中心在應用內對遊戲進行評分
- 30. 我應該在哪裏存儲我的遊戲關卡狀態?
你應該想出的第一件事是一個好主意。 – ChrisF 2010-01-01 17:55:01
我有很多的想法,但我想我會開始像2D格鬥遊戲真人快打,因爲它應該是最簡單的做法之一。你有一個簡單的關卡只有2個移動物體,即。角色,你控制的角色和另外一些人工智能,這也應該使實現碰撞檢測和輸入處理非常簡單。並不像在遊戲中那樣執行,比如說類似Contra的遊戲,這是遊戲的另一個想法。 – TheMagician 2010-01-01 18:12:52
爲什麼執行contra比MK更困難?唯一需要對付的額外編程是關卡設計和對象管理,但除此之外,它們與其他大多數遊戲非常相似。 – 2010-01-04 19:41:43