找回密码
 立即注册
楼主: 风来时狂放

最适合游戏开发的语言是什么?

[复制链接]
发表于 2021-1-9 14:26 | 显示全部楼层
我跟其他回答的人观点完全不同。这个问题重点不是游戏开发适合用什么语言,而是问问题的人对游戏开发完全不懂。在问题描述中,我觉得问问题的人根本没有弄清楚什么是做游戏,对游戏这个概念极度的模糊。

我只从问题的内容来看,可以了解到问问题的人没有什么程序语言的基础。所以我给的建议是,请先去学一些程序语言的基础,在考虑做游戏开发。

当前做游戏也就是走研发路线的话会分3个路线:策划,美术和程序员。

如果想走程序员路线的话,既然你已经开始看C++primer,那就把它看下去,如果你觉得学习成本高,那么就请放弃成为游戏程序员的路线。因为这个基础中的基础,你连这个都吃不下,别去想其他的东西了。

如果走美术的路线的话,我不知道你美术能力如何,自己决定。

如果你说我程序不行,美术也超级垃圾的话,请别来做策划。游戏策划肯定不是你想的那种工作,并且一个合格的游戏策划对自身能力要求极高,不然就是tmd在坑人。

以上。
发表于 2021-1-9 14:31 | 显示全部楼层
肯定是脚本语言,可以是Lua/Python/JS。如果要用C#/Java其实也可以。最糟糕就是用C/C++。
原因是:游戏策划天天在改需求!如果我写的每个函数,都要去考虑到底参数是指针,还是值,又或者这块内存到底应该什么时候回收,哪有时间去应付那些天天改的需求!另外,那些需要编译的语言,往往不适合热更新,也就是说,你不可以简单的通过下载一个文件来更新玩家已经安装的程序,你不可以在不停服务器的情况下修一些BUG。最后,那些编译型的语言没有反射,你精心设计的名字(类名、函数名)无法自动的和各种游戏所需的资源绑定起来,要知道,游戏这个业务,最重要的就是代码去控制各种“资源”,比如动画、音乐、场景、配置等等,所以你要维护一大堆各种配置文件,用来描述代码中的常量和外部数据的关系,既啰嗦又容易出错。最后,就算你不喜欢面向对象,游戏也是非常适合面向对象建模的领域,或者说,你必须要建模,那么就应该用建模最容易的语言,否则那些互相类似、又稍有差别的业务逻辑,会让你写上大堆大堆的“疑似重复”的代码。另外,Lua和Python这类脚本,因为比较简洁,还能直接用来存储游戏数据,代替配置文件,而且脚本语言的表达能力比XML/INI这些格式要强大的多。所以说应该用脚本语言来写游戏,没有其他的悬念。
发表于 2021-1-9 14:37 | 显示全部楼层
随着微软越来越开放,C#也变得越来越吸引人们的眼球。而在游戏行业中,C#也开始慢慢地获得了关注。C#是一种安全的、稳定的、简单的、优雅的,由C和C++衍生出来的面向对象的编程语言。它在继承C和C++强大功能的同时去掉了一些它们的复杂特性。其强大的操作能力、优雅的语法风格、创新的语言特性和便捷的面向组件编程的支持成为.net开发的首选语言。
随着“移动为王”潮流的到来,Unity3D也变得越来越流行。使用C/C++开发,提供C#作为脚本。移动游戏开发必备神器,而且随着VR热潮的到来,使用Unity3D开发VR内容也十分便利。毋庸置疑,C#语言非常适合游戏开发同时也是进行游戏开发学习的语言基础。
是不是想学游戏开发,却没有头绪、没有学习资源、没有盘缠、没有高人指点……
总之一个学习者所具备的一切,你都没有……戳穿


遇到小编的你,算是三生有幸。删除废话,省略套路,直接上菜。
千锋游戏开发入门教程:C#编程语言视频教程
“点赞+关注”投币后自动领取
对小编线下课程感兴趣的小伙伴可私信留言(* ̄︶ ̄)
(以下为C#编程语言视频教程详细内容)


一、初识unity
Unity基础之认识
Unity基础之创建第一个Unity项目
Unity基础之初识界面
Unity基础之三维坐标系
Unity基础之场景基本操作
Unity基础之父子物体关系
Unity基础之面向组件
Unity基础之材质的使用
二、地形系统&游戏对象
Unity基础之预设体
Unity基础之资源包的导入导出
Unity基础之地形系统
Unity基础之Collider简介
Unity基础之物理材质
三、Unity基础之物理材质
Unity基础之角色移动控制
Unity基础之综合练习
Unity基础之AR项目
C#基础之计算机基础理论
四、代码初体验
C#基础之数据类型1
C#基础之标识符与变量常量
C#基础之VisualStudio的使用
C#基础之变量常量使用
C#基础之数据类型转换
C#基础之字符与字符串
C#基础之常用运算符
五、流程控制
C#基础之流程控制简介
C#基础之if-else
C#基础之switch-case基本语法
C#基础之for循环
C#基础之字符串操作
六、方法
C#基础之输入输出
C#基础之while循环
C#基础之循环练习
C#基础之方法声明
C#基础之方法调用
C#基础之方法参数
七、方法&数组
C#基础之返回值
C#基础之方法重载
C#基础之方法递归
C#基础之数组简介
C#基础之引用
八、引用&常用算法
练习题
C#基础之ref和out关键字
C#基础之二分查找法
C#基础之数组选择排序
C#基础之数组冒泡排序
C#基础之二维数组
九、面向对象之类的设计
C#进阶之面向对象
C#进阶之类的设计
C#进阶之实例化对象及内存分析
C#进阶之static关键字
十、面向对象之封装
C#进阶之构造方法
C#进阶之静态构造方法
C#进阶之属性和访问器
C#进阶之readonly关键字
十一、面向对象之继承
C#进阶之单例设计模式
C#进阶之继承
C#进阶之继承中的构造方法
C#进阶之访问权限修饰符
英雄管理器练习
十二、 面向对象之多态&结构体
C#进阶之多态初步
C#进阶之方法的隐藏与重写
C#进阶之枚举
C#进阶之结构体
C#进阶之静态类
C#进阶之sealed关键字
十二、 面向对象之多态&结构体
C#进阶之多态初步
C#进阶之方法的隐藏与重写
C#进阶之枚举
C#进阶之结构体
C#进阶之静态类
C#进阶之sealed关键字
十三、 抽象类与接口
C#进阶之运算符重载
C#进阶之抽象类
C#进阶之接口
C#进阶之命名空间
十四、委托与回调
面向对象练习之电话簿管理器
C#高级之委托、匿名方法和Lambda表达式
C#高级之委托回调
十五、集合
C#高级之接口使用
C#高级之ArrayList集合
C#高级之ArrayList集合自定义排序
C#高级之List集合
十六、 正则表达式&异常处理
C#高级之Hashtbale和Dictionary
C#高级之正则表达式
C#高级之异常处理
十七、反射
C#高级之反射
C#高级之字符串操作




-------------------------------6月8日游戏开发视频教程更新-------------------------------


近期更新了RPG游戏从框架到实战的相关视频教程,涉及内容如下:
软件开发常用设计原则及设计模式:设计原则、单例、观察模式和代理模式、中介者营造者模式、门面、组合模式。
游戏典型模块封装:http www封装、音效模块封装、UI模块封装、背包类UI封装、UI实例、easytouch封装、小地图封装、阴阳师画符实现、魔兽争霸3小地图实现。
用框架思维制作RPG游戏
矩形攻击、伞形攻击、实战框架搭建、相机封装及easytouch、玩家控制fsm、玩家控制逻辑梳理、npc封装、npc与ui交互、npc模块封装。


有需要的小伙伴,点击此处进群向群主伸手免费索要  


PS.关于之前评论区说的双层汉堡的问题,C++的视频教程也可以呼喊群主索取。对了,更正一下,现在是三层肉堡。不要克制,我已经看出你一脸满足的样子。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
发表于 2021-1-9 14:38 | 显示全部楼层
如果可以选择,我希望是 Ruby。
写过这么多种语言,Ruby 算是写起来舒服的。
可惜由于种种原因,它仅凭借 Web2.0火了一下,后面有逐步被其它类似的语言追上。Python 也就罢了,JavaScript 这种反人类的语言,怎么看都是一种勉强将就的解决方案,真不明白为什么能火这么长时间。

现在用 Unity3D,主语言是 C#,算是中规中矩的语言,总体来讲还是优点比缺点更多,就是 Mac 下的 IDE 太蛋疼了。就算 Unity 的官方要换另一种语言,当下所有语言里也未必有更好的选择,目前 C#还是最棒的。

一款语言的发展壮大,也是讲究天时地利人和的,另外傍上一家巨头公司也尤为重要。
    PHP 的创始人曾在 Yahoo 呆过很长时间。后来 PHP 也被 Facebook 大为重用。
    Python 的创始人在Google 呆过。
    Python 本来可以借助 Blender3D 这款开源软件,在游戏领域发展壮大。可惜的是 Blender3D 组委会一直不紧不慢,白白错失了良机。Java 是 Sun 的命根。C#是微软的亲儿子。
    ObjectiveC 的兴起是借助 iOS 的流行。当初据说苹果内部也考虑过 Ruby,甚至 MacOS 也内置了 Ruby 脚本,跟 Python 平起平坐。MacRuby 在 Ruby 社区内曾一度呼声很高,但那又如何,高层终究不会采用。所以才有了新推出的 Swift,Go 等语言。
    Javascript 最初是网景和 Sun 共同推出的。后来成了统一 Web 的语言。我个人写了不少 Javascript,但始终喜欢不起来,原因很简单,语法不优美,甚至比 ObjC 更难看,可读性差,歧义多,手写的话 Bug 率奇高。node.js 火的时候,很多人宁可用 CoffeeScript 来写。
    Ruby 的创始人是日本人。估计他未来也不会去任何巨头公司任职了。Rails 出到5.0, 但很多上线多年的代码依然用的是2.几的代码。社区很活跃可惜一直没有出现革命性的产品或者方向,反而一直充当开拓者,很多新的思想都发源于 Ruby/Rails 社区,验证成熟后再被其它社区吸收使用。
==========
最后附带说一下,有一款文字+策略经营RPG游戏叫《The Dark Room》,中文名小黑屋,它的移动版是用RubyMotion开发的,是 Ruby 的跨平台移动 app 框架,具体可以看作者的开发日志:
A Dark Room for iOS

作者采用它(Ruby 语音)来写程序,能一直不停歇地工作12个小时,非常享受其中的编码过程。
我也了解了一下 RubyMotion,然而在游戏方面,它对图形动画方面的支持并不够多,3D 就更别想了。只能用来做 App 或者文字类游戏,所以一直没有考虑采用。
发表于 2021-1-9 14:41 | 显示全部楼层
我不是做游戏的,但是我用C语言编过数值计算,就是微积分 ,解微分方程,遗传算法,数值仿真之类的,现在在看C++。
——————我的体会是,由于有指针 ,C和C++很灵活,你可以任性的玩,缺点是你需要很多年的训练,就像练习武功一样,才能掌握和灵活使用C和C++。
——————所以,你应该利用闲暇时间,不放弃C和C++,作为一个十年二十年的计划,然后抓紧学习python这类脚本语言,在短时间内开始干活。一个是为了长远,一个是为了眼前。
发表于 2021-1-9 14:49 | 显示全部楼层
居然没人说lua,关于题主说的“游戏开发”,我理解为游戏逻辑开发。

C++的话,开发效率不高,一方面是静态语言改动起来麻烦,另一方面是编译速度造成。在我看来,C++适合用来做需求稳定的、逻辑经典的模块,比如物理引擎,渲染引擎、网络层等等。

我第一次用lua就感受到动态语言是面向对象最好的归宿(虽然lua没有直接支持oop)。当我们第一次去解决某个问题的时候,常常对问题的理解总是不够深刻的,随着开发的进行,我们理解时刻变化,我们也会在开发中重构我们的代码,如果用动态语言,那么就非常合适,而且运行效率非常高,解决问题非常简洁。因此lua是游戏逻辑开发的首选。

综上所述,我给lua点个赞。
发表于 2021-1-9 14:56 | 显示全部楼层
做过两款手游一款端游顺便给服务器打杂的人告诉你,显然是c++。其实用什么语言并不重要,关键还是要理解编程的思想,至少精通一门语言,你就会发现,什么c#,lua,as,java本质上都是一样的,只不过语法不同罢了。
发表于 2021-1-9 15:06 | 显示全部楼层
C++应该还是最好用的吧
发表于 2021-1-9 15:09 | 显示全部楼层
c++,python
python将会成为各大媒体组件的连接工具,例如未来连接Houdini engine和你家客厅的大型电视。
发表于 2021-1-9 15:10 | 显示全部楼层
我认为C++最重要是历史原因造成的,语言本身,C#、Java、Swift、AS3都更好更适合
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-9-20 10:42 , Processed in 0.068357 second(s), 20 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表