所以我的问题是:哪种语言最适合这项工作?我不是在寻找一种通用解决方案,而更像是核心语言。我想说的一种方式是,如果您需要将同一程序移植到Windows、OS X和Linux上,最好的语言是什么?Java不在考虑范围内。
C语言(现在加一些填充以达到15个字符)
你看过电影《布鲁斯兄弟》吗?在电影中,杰克和艾尔伍德进入一个乡村酒吧表演,并询问女招待喜欢什么样的音乐,女招待回答道:
我们有两种:乡村音乐和西部音乐。
这与本题有何关联呢?嗯,你想创建高性能的3D图形,想知道使用哪种语言?
我们有两种:C和C++。
C++。您可以避免使用数百万个“if #define”来处理平台相关的事情,而是使用继承(为每个平台派生一个类,并且客户端使用/了解抽象基类)。对于性能关键部分,可以做出一些例外。
此外,还有许多用于跨平台开发的库。
对我而言,Java可能是最容易学习的语言之一。但Java在图形系统方面表现不太出色,如果你要编写“游戏”,需要更多的代码来支持图形显示,但如果你要编写网站,请选择JavaScript、CSS和HTML/5中任意一种或两种语言进行编写,通常最好选择适合自己的语言……=)对于初学者而言,如果要编写FPS游戏,我建议使用Java,如果你对自己想创建的东西有很好的想法,并且它是一个更复杂的游戏,那么可以选择C#或C++,因为它们使用较少的硬件,可以制作出运行在多平台上的更复杂的游戏。
我强烈推荐使用Lua进行脚本编写。它是一个ANSI C库,这意味着:一、它可以在(至少大多数)C ++编译器中编译;二、如果平台上有C编译器,则可以使用lua。它允许显著扩展您的游戏灵活性,并且如果您愿意,它还可以让您的玩家自定义它!
无论你使用什么,你都需要编写特定于平台的代码。像Java或其他解释性语言(Python是我个人偏好)这样的语言将允许您使用许多共同点。但是,由于这不是一个快速简单的项目,我建议使用C或C++。
编辑:GUI不一定必须为每个平台从头编写。请查看wxWidgets。
大多数跨平台游戏都是用C++编写的,因为它在性能方面非常出色;而且比C更用户友好。游戏需要最大的速度和效率!
您可以将特定于平台的内容隐藏在某些抽象和API之后,以便轻松移植。您还可以使用跨平台框架,例如Qt或wxWidgets来处理窗口和GUI元素。在非关键部分添加脚本语言也很不错。:)
正如许多人在这里指出的,最终你几乎肯定会需要C/C++来满足你的图形需求,尤其是高性能(图形)要求。
然而,也许有机会用脚本语言开发“核心”,并且该脚本语言可以轻松嵌入到C/C++应用程序中。这种情况下,你可以考虑使用Lua和Tcl这两种顶级脚本语言。
特别是Lua,它在《魔兽世界》等游戏中被广泛使用。而Tcl则有更多“内置电池”(库)。