準備從頭實現一個類似dota的遊戲,怎麼入手好呢?

cs大二學生,暑假過了一半還沒怎麼寫代碼,心血來潮決定自己做一個moba遊戲看看。

本身有c++和python的基礎,大一用python的tkinter寫過彈幕射擊遊戲。

剛開始動手,發現自己對這種體量比較大的遊戲架構沒有清晰的認識,還有就是dota那種半個3D的圖像顯示也沒有做過。

想問問有沒有有過這方面經驗的老手,能稍微指點我一下呢?


題主熟悉 Python 的話,你需要開源的 Panda3D - Free 3D Game Engine

具體步驟需要循序漸進:

1. 先用 Panda3D 用 Python 開發個貪食蛇,看你開發得出來么。

2. 再用 Panda3D 開發一個走迷宮遊戲,使用免費 3D模型來做人物。

3. 將走迷宮改成推箱子,看你改得了么。

4. 個走迷宮添加 NPC ,添加 PK 和道具,變成一個 RPG

5. 改成一個 ARPG,添加實時戰鬥。

6. 為 ARPG 實現地圖編輯器,支持各種事件

7. 給 ARPG 添加寵物,可以跟隨你戰鬥,並且可以有好幾個

8. 實現英雄,戰爭迷霧,科技樹,各種AI,改成一個 Dota

9. 給地圖編輯器增加更多觸發器和行為編輯。

難度排序:貪食蛇 &< 推箱子 &<&< RPG &< ARPG &<&< DOTA

先從簡單的入手,簡單的目標實現了,再做下一個階段的目標,自然而然知道該怎麼做了。

正常學生,使用 Panda3D 三天就可以上手,第五天就能開發一個貪食蛇。



僅僅是入手階段的話,先花時間學習使用C++和DirectX 11 / 12,然後會有兩個結果:

1:發現自己果然學會了,那麼你已經成功了一半了,繼續做下去。

2:發現自己這麼容易的東西居然沒學會,那麼改學C#和Unity。


Dota2地圖編輯器。你值得擁有


先學會一個引擎吧 u3d ue ...


dota是用war3地圖編輯器做的,樓主可以換sc2的地圖編輯器啊


當你要投入這個工作的時候,首先你要先玩個把月,試著去了解這個遊戲。

然後你就會忘了你最初的夢想,發現還是遊戲有意思。


你先拿魔獸地圖編輯器試試。然後你就會放棄了。


我當年也一心想做一個牛逼的遊戲,看了很多書,結果發現自己成了另一種生物——程序猿


可以先試著做一個2D的,最好是頂視圖的,這樣圖形方面是最簡單的解決方案了

然後要考慮的多了,

地形如何編輯,最簡單的可以是一個文本文件,裡面寫N*M個字元,每個字元代表可以走的路或者障礙物

想辦法用2D的方式畫出來

然後實現給定地圖上的任意一點,求到地圖上另外任意一點的最短路徑, 尋路問題

自動查找周圍8個格子里的地方玩家,按照一定頻率給他減血

再加上簡單的滑鼠輸入

一個最簡單的moba遊戲就完成啦!!!


都只在談實現,沒人談設計。

dota的pvp框架,即使是專業設計師,沒有一年半載也摸不出門道,更何況多少年的設計數據你能拿得到嗎?你有什麼底氣支撐你的設計?

實現方面我稍微提一下吧,你可以在重生dota下的編輯器看看Valve的底層是怎麼搭建的,包括模型、粒子、地圖元素、API封裝等等,除了C++源碼以外的大部分內容你都可以看見。看完還有勇氣做下去,那就去做吧,自己不後悔就行。


你想寫遊戲代碼?還是想體驗做遊戲?

想寫代碼,可以用unity(支持c++、js等)。

想體驗,用魔獸或者DOTA2編輯器(Lua腳本)。


先用unity快速做一個demo,然後重構,抽象。


我在的公司用的是unity+c#負責渲染畫面,c++負責計算和邏輯。

我覺得一個人完成太不可思議了,太多細節的東西了。

比如一次普攻,就有攻擊前搖,施法,攻擊後搖三段,攻擊前後搖可以取消狀態,施法要鎖定。

比如技能,要區分是主動還是被動,是對目標釋放,還是對地點釋放,或者對塔釋放,或者對小兵釋放,目標又可以是敵人也可能是隊友。

比如技能的衝突,有些技能是不可以同時放的,有些可以。

比如英雄的狀態改變,眩暈,禁錮,隱身,計費,沉默等對技能有什麼影響。

還有小兵或者英雄AI你得實現吧。

太多太多細節了。


準備從頭實現一個操作系統,怎麼入手好呢?

cs大二學生,暑假過了一半還沒怎麼寫代碼,心血來潮決定自己做一個現代操作系統來玩玩。

本身有c++和 shell 的基礎,大一用 bash 的腳本寫過圖書管理系統(作業,文件增刪改查那種)。


做過植物大戰殭屍的實時對戰引擎,其實很簡單,碰撞檢測,定時器,技能效果,配置文檔。做個原型還是很容易的


我覺得可以學學c#,用u3d。

我也有做一個moba的想法,可是一個人太複雜了,而且以我目前水平幾乎不可能…


可以從回合制遊戲開始。戰鬥流程,技能,技能效果逐步完成。這一塊搞清楚後就可以加入地圖元素,移動控制,怪物ai。

dota這種技能效果很豐富的遊戲,對技能實現要求還是挺高的。


mailto icefrog@gmail.com


用 Dota2 新出的引擎提供的編輯器唄


推薦閱讀:

如何判斷一款遊戲是好遊戲還是壞遊戲?
關於暴力摩托偽3D演算法?
2D遊戲中的碰撞檢測都是N^2複雜度嗎?
怎麼成為遊戲策劃?
學習遊戲製作要掌握哪些專業知識?

TAG:Python | 遊戲開發 | 編程 | 多人聯機在線競技遊戲MOBA |