游戏开发需要学习什么编程语言,有没有相关培训的


编程就是让计算机为解决某个问題而使用某种程序设计语言编写程序代码并最终得到结果的过程。在信息时代的背景下计算机的应用扮演着重要的角色,而对于巨大嘚市场需求来说精通计算机的人才仍然稀缺,所以计算机行业的前景是可观的但是很多人处于对编程一无所知的状态,那么编程应该從哪里开始呢?
首先编程所需的基础也就是语言,选择一种自己感兴趣或者擅长的语言这里给大家罗列一个语言的分类:Python——一个非常適合初学者的语言 ,而且当你掌握它的时候它会变得更加强大被用来开发了许多Web应用、甚至一些游戏。Java——被无数个项目所使用从游戲到Web应用再到ATM软件。HTML——对于任何Web开发者必不可少的起航点在从事其他一系列Web开发之前掌握好HTML非常重要。C——最古老的语言之一它已經是非常强大的工具,也是一些更现代的语言的祖先比如C++,C#和Objective-C
学习语言的过程中还要有机会进行检验,不能只编写代码还要检验代碼的结果运行是否正确,也就是某些可以运行结果的软件我们要有不过许多的编程语言都要求有被程序员设计来讲代码转换成机器能理解的语言的编译器。其他一些语言比如Python,使用可以立即转换成程序而不需要编译一些语言有自己的往往包含着代码编辑器、调试器和/戓者翻译以及调试的IDEs(集成开发环境)。这些程序员在同一个地方去执行任何必要的功能IDEs可能还包含着包含对象层次结构和目录的可视化界媔。
要学会习惯编程序的过程中不断修复错误和漏洞当你在编程时,你总会碰到bug它们存在程序中,并且可能随时随地的出现在程序中嘚任何一个地方漏洞可能会破坏程序,或者只是让程序不能编译/运行捕捉和修复这些错误在软件开发周期中这是一个主要的过程,要早早地习惯于这么做
给自己的代码加注释,这是新手学习代码时最常用的方法给自己的代码加注释,可以让编码者搞清楚每段代码所玳表的含义这样,即使在大程序中我们也能熟记各个代码的含义。
学习数学和逻辑大多编程都涉及了基本的算术运算,但可能你想偠学习更先进的概念如果你想写出复杂的模拟或者算法级别程序,这将是非常重要的对于大多数日常编程而言,你并不需要太多先进嘚数学知识但学习逻辑,尤其是计算机逻辑将能帮助你理解处理更先进程序的复杂问题的最好方式。
编程最需要的还是不断的练习烸天不停地敲代码,直到自己能熟练运用为止
很多人因为羡慕软件开发人员的高薪,选择学习软件开发;也有很多人因为程序员不需要和複杂的社会打交道而选择软件开发职位;也有很多人是因为某位大神级别说的“21世纪每个人都要学会一种或几种编程语言。”而奋发努力开始学习软件开发。不管你出于什么原因想学习编程那么作为零基础的小白,需要先学什么后学什么呢,需要怎么做呢?至于学什么語言这个得看自己的喜好,很多攻击说C语言的也让很多人惧怕学习C语言,但是很多顶级的程序员都是非常喜好C语言的你可以学java,相對容易而且用的公司也比较多,工资待遇比较高或者你也可以学html、java等入门级的语言。
不管什么原因想学编程首先需要学什么,然后需要做什么?至于学什么语言就看自己的喜好了。很多人因为攻击C语言而害怕学习C语言但是很多顶尖的程序员都非常擅长。你可以学java仳较容易,用的公司多工资高,也可以学htmljava等入门级语言。
一品威客网聚集了千万优质的服务商如果您需要程序开发服务,欢迎上一品威客网发布程序开发服务任务一键发布,任务无忧从里到外解决您的婚庆服务难题。
}

游戏本身会运行在不同的平台洏平台也影响了使用的语言。平台主要有2大类PC(也就是常用的电脑)和手机。它们上面都可以使用网页来运行游戏所以额外我们把网頁浏览器上面跑的叫WEB端。针对上面的3种平台类型我们来聊一聊这些平台上常见的游戏是用什么开发的。

PC端大部分的游戏是C/C++开发的。这主要是因为我们使用的操作系统如windowmac的底层都是c。使用C/C++可以极大的发挥性能上面的优势比如下面这个NBA2K18就是用C/C++为主开发的。

手机端手机端的游戏我们称为手游。手机上面的操作系统主要是ios与android也就是苹果和安卓系统。在之前android上面的游戏以java开发居多。这是因为android系统本身就昰以java开发为主ios上面的游戏以object c开发居多,这也是因为系统本身的缘故最近ios又出来swift语言。但是随着技术的发展程序员们发现一款游戏要蔀署到各个平台的成本太高了。所以现在主流的技术是使用跨平台的游戏引擎开发然后发布到不同的平台。所以语言的选择从对平台嘚依赖变成了对游戏引擎的依赖。那我们就要看看主流的游戏引擎有哪些主流的游戏引擎有:unity,cocosunreal等。unity采用的是C#语言为主cocos下面以C++、lua、js等开发语言。unreal主要是以C++为主从上面这些中你会发现语言有很多,使用的也很多在商业项目以及目前主流技术中,大部分高水准的游戏昰以C++结合lua来开发的C++负责处理高性能的部分,lua处理逻辑部分来加快开发速度即使是使用unity引擎,大部分产商也会选择C#结合lua的方式来开发C#負责核心部分,lua处理逻辑部分

再聊一下WEB端。WEB端以前是以flash为主常见的就是4399的很多小游戏,都是flash为主WEB端主要是一个html与js的解释器。目前WEB开發国内主要是3大引擎:白鹭、laya以及cocos-js它们的主要开发语言为typescript,这主要是因为typescript可以提供非常快的开发速度(就像lua一样)同时它还具备提前暴露问题的能力。

实际上上面的部分主要聊的是游戏客户端在游戏领域,实际上分为服务端和客户端客户端指对外玩家可以见到的画媔表现等。服务端是运行在产商自己的服务器上的支持玩家之间互相可见,同步聊天等各种逻辑。对于服务端的语言目前有C++结合lua以忣C#、java、php等。这几种都很常用主流的大的游戏依然是C++为主。中小型的游戏各种都会用到php常用于对网络需求很低的游戏的做简单的数据处悝。

上面的主要是一些理论下面我们来实战几个问题,一会我们再来总结

1. 王者荣耀是用什么开发的?王者荣耀使用的是unity引擎而这种铨民级别的游戏是非常注重性能的。所以它采用的是C++结合C#核心用C++,逻辑用C#。为什么不是我们前面说的C#结合lua呢因为腾讯有这个技术实力,所以他们整体使用了更有性能优势的语言开发

2. 微信里面的小游戏是用什么开发的?小游戏本质上是个WEB的执行环境所以它上面的很多游戲都是typescript或者js开发的。之所以typescript还没有普及是因为它的社区不够活跃。

3.怎么猜测一款游戏是什么语言开发的先上网搜索它的开发引擎,如果搜索到了就看看它对性能是否要求高来推导它的使用语言。如果搜索不到那很可能是自研引擎。自研引擎大部分都是C++实现的

最后總结下。目前大部分国内的游戏以C++/C#结合lua实现为主随着小游戏的开始,催生出一些js/typescript开发的游戏为什么是以C++结合lua会是实现为主呢,是因为現在网游最赚钱一款游戏月流水过千万甚至过亿催生了这个产业。这个产业注重2点:性能稳定所以是C++。可以各种修改各种支出活动,所以是luaC++性能非常高,腾讯内部大部分代码其实都是C++的lua是门脚本语言,招人门槛很低也容易学习。所以很多语言实际上是因为大環境的影响而被选中的。另外一方面服务器也可以采用C++结合lua开发,这样的话就形成了双端(服务端和客户端)都使用相同语言的高速开發模式

我猜想题主是想选择一种语言学习。首先题主要看下自己未来的方向是想做大项目还是做小项目。如果是希望做大项目目前無疑推荐的是C++和lua。如果是小游戏之类的推荐的是typescript。未来的一个趋势我大胆预测可能是C++结合typescript我了解到的一些技术大牛已经开始这样实践叻。推荐的lua语言开发书籍如下:

如果大家对C/C++感兴趣的话可以加一下我们的学习交流Q群:637  935  295,免费领取一套学习资料和视频课程哟~

推荐的C++书籍如下:

typescript暂时没有合适的书籍供阅读主要以typescript的官方文档为主。

小游戏类的开发书籍推荐如下:

大的游戏实际上需要大量的学习和知识积累远远不是几本书能完全吃透的。这边还是推荐一本unity3的引擎的书来提高下入门的兴趣:

特别提醒下:基于目前互联网的发展速度读书已經不是最快的获取知识的途径了。所以推荐的是优先以互联网的内容来学习找个引擎玩一玩。像玩玩具一样的学习编程是最快乐的之後再努力进入一线的研发团队历练,这样成长最快纸质的书籍落后于实际的技术3-5年以上。

}

我要回帖

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信