V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
Bitex
V2EX  ›  问与答

做一个类似 Minecraft 的游戏,引擎的选择?

  •  
  •   Bitex · 2014-11-22 15:07:05 +08:00 · 5168 次点击
    这是一个创建于 3657 天前的主题,其中的信息可能已经有所发展或是发生改变。

    编程/游戏开发新人,想试着做一个类似Minecraft的游戏,有两种考虑:

    1. Python/Ruby,利用Pyglet等等封装OpenGL的库/gems;

    2. Unity 3D。

    但是不知道第一种方案的难度,希望有前辈指点一下。

    另,有哪些OpenGL的靠谱教材?学校图书馆只借得到《OpenGL编程指南》的6、7版,翻开一看全是glBegin()glEnd()。似乎第八版对应的是OpenGL 4.3,又或者根本不需要纸质教材?

    10 条回复    2014-11-23 12:23:14 +08:00
    icedx
        1
    icedx  
       2014-11-22 15:27:29 +08:00 via Android   ❤️ 1
    Python/Ruby 不太适合写游戏, 但没有什么不可能, 因为Cocos2d 最初就是用Python 写成的
    Unity3D/Cocos2D 不太推荐, 因为会被局限在其框架中

    OpenGL 教程推荐Nehe的OpenGL中文教程
    开发过程中常备OpenGL编程指南
    icedx
        2
    icedx  
       2014-11-22 15:35:22 +08:00 via Android
    其实我的List 中也有和楼主要做的类似的事情.
    目标是构建一个3D 的Terraria.
    不知道你为什么会有这种想法, 但是毫无疑问的是, 如果用了Python 性能问题不可避免.
    Bitex
        3
    Bitex  
    OP
       2014-11-22 15:38:26 +08:00
    @icedx 那么,用C/C++会更好一点?

    一方面是很喜欢沙盒游戏,娱乐+练手,另一方面是为了应付课程实验/_ \
    akfish
        4
    akfish  
       2014-11-22 15:56:13 +08:00
    Unity3D无疑是门槛最低的方式,你完全不需要接触到OpenGL的API。
    任何需要大量接触到OpenGL API的实现途径,都完全与用引擎背道而驰,需要你自己实现大部分引擎的逻辑。
    用引擎撸得快,不用引擎学得多,就看你的主要目的是哪样了。

    做游戏把场景渲染出来只是一方面,游戏中的交互、逻辑还需要脚本引擎的支持。
    所以除非你打算再去折腾如何嵌入V8/Mono做脚本引擎,就不要考虑用C/C++调用OpenGL API裸撸了。

    Minecraft这样的对渲染画质要求不高的游戏,lz还可以考虑用WebGL撸。
    onemoo
        5
    onemoo  
       2014-11-22 15:57:11 +08:00
    opengl方面:
    如果不想用glBegin...glEnd的话,说明你打算使用“现代”opengl,那就别看nehe的教程了,直接看下面:
    《opengl superbible》第5版或以后,第五版讲的是opengl3.3,现在开发opengl至少也要3.3。
    《opengl programming guide》第8版,讲的是opengl4.3。
    我还是觉得看以上两本书最好,因为opengl官网上缺少一个循序渐进的入门tutorial,wiki上资料虽不错,但是并不是step-by-step的,对新人不够友好。而网上的各种教程且不说还有很多过时的东西,就算是一些opengl3.3+的教程也讲得不够详细,还不如看这两本书呢。

    至于要写游戏嘛,当然最好是用C/C++啦,但是这样的话,不管是使用现成的游戏引擎还是完全自己搭建都非常耗时间(考验功力)。如果是为了交作业,那还是别自己干了,直接用unity3这种带有完整工具链的游戏开发工具也不错。
    真打算自己写的话,试试一些开源游戏引擎? 或用开源的图像引擎搭配其他的中间件? 或是干脆从头撸一个? 时间不紧又有兴趣的话可以慢慢干。

    有人用irrlicht重写了一个Minecraft: http://minetest.net/
    akfish
        6
    akfish  
       2014-11-22 16:03:46 +08:00
    这里已经有一个类Minecraft的WebGL引擎了:
    http://voxeljs.com/
    Bitex
        7
    Bitex  
    OP
       2014-11-22 16:06:31 +08:00
    @akfish 的确,一想到还要有复杂的脚本引擎,就觉得不单单是把画面渲染出来这么简单了。

    不过权当是为了学习好了。
    Bitex
        8
    Bitex  
    OP
       2014-11-22 16:12:49 +08:00
    @onemoo 已经买了第八版!

    说起来只有半个学期时间的话,想在deadline之前从头到尾撸出一个功能完整的类Minecraft游戏几乎是不可能吧……就算可以很快学会、完成图形渲染的部分,也估计会死在脚本上(我的形式语言真的学得好烂XD)
    onemoo
        9
    onemoo  
       2014-11-22 23:46:29 +08:00   ❤️ 1
    @Bitex
    从头撸的话,光是熟悉opengl就要大概2个月吧。而且这只是开始,各种图形学的东西也要学,还有游戏架构也要摸索...还有数学也要好,你线代怎么样?......仅这点时间就要做出游戏确实不现实。不过如果以后想要做游戏,或是想在这方面有些积累的话,坚持学学也不错。

    其实大部分游戏程序员是死在3d美工上的...哈哈~

    直接使用unity3d这样完善的创作工具的话,也不是没可能做出来。
    Bitex
        10
    Bitex  
    OP
       2014-11-23 12:23:14 +08:00
    @onemoo
    我的线代……也很烂。

    昨天试着用Python + Pyglet撸出了图形,因为都是简单的方块,要考虑的东西就少了很多。感觉再稍微做做就可以达到交作业的标准了,时间还很充裕呢。

    毕竟是第一次尝试写游戏,还是想一点一点累积起来吧。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3365 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 82ms · UTC 00:41 · PVG 08:41 · LAX 16:41 · JFK 19:41
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.