学习电脑编程然后制作游戏的前提
游戏编程指利用计算机编程语言,如C编程语言、C++编程语言、汇编等,编制计算机、手机或游戏机上的游戏。目前流行的游戏编程语言为C++编程语言,目前流行的游戏编程接口为DirectX9.0,还有OpenGL、SDL(SimpleDirectMediaLayer)等。
现在手机上玩的游戏多为Java游戏。是在JavaME平台下开发出来的。
首先,别的都不管,一定要先学精以下数学科目:线性代数、空间解析几何、微积分。都要学到比较深的程度,千万不能囫囵吞枣,否则往后的压力会越来越大。现在本科的内容其实不够的,例如quaternion你在课本里就没学,但游戏里绝对用得多。还有,课本里大概也不会教你怎样判断任意两个多面体是否相交。这些都要靠自己多钻研、多琢磨,不能满足课本内容的。
然后,看你是侧重图形、物理、还是AI方向。
图形方面,其实基本上就是几何和光学问题,关键是熟悉API(DirectX或OpenGL)。如果想获得尖端效果,则要先学一些光学基础,然后才能进入可编程Shader的美妙境界。
物理方面,本人经验太少,只能说:这真的是太太复杂了。AI方面:本人也没经验。就不多说了。
最后才说C++编程:其实C++编程这东西真的很奇怪。我们先是在课堂上学了一套东西,然后实际开发的时候人们又会告诉我们那套东西是不能用的(理由一般就是性能低啦、不安全啦,等等),反正又得学另一套东西。搞C++特别是游戏的人,都有一种近乎病态的完美主义倾向,企图用目前并不完美的语言工具实现完美的目标(最典型的病态就是那个const,什么都加const,其实你就算加了const,人家用强制类型转换,一样可以转成非const)。还有那个指针,如果你真的用CObject*pObj这样的形式,肯定要被人骂。他们要用所谓的“smartpointer”。诸如此类,都相当变态。
其实真的要做AAA级的游戏,简直就和强迫自己开发一套操作系统、加上一套程序框架、加上实现绝大多数的数据结构和算法一样痛苦。
当然,如果你只是满足比较不那么出众的游戏,或许并不用那么痛苦,随便拿个所谓的“引擎”过来用就行。或者用C#,也可以吧。
本回答由提问者推荐
计算机如何编程打游戏?
你好,能通过编程开发出来的游戏有很多,比如java开发的贪吃蛇,我的世界等,python开发的小矮人,动物大战等
,具体如何编程就需要学习软件开发专业里面的游戏开发相关知识。下面是部分学习知识点,希望能帮到你。
1.例如字符串查找、子串、模式匹配等。
当在Lua中对字符串做索引时,第一个字符从1开始计算(而不是C里的0)。索引可以是负数,它指从字符串末尾反向解析。即,最后一个字符在-1位置处,等等。
2.字符串库中的所有函数都在表string中。
它还将其设置为字符串元表的__index域。因此,你可以以面向对象的形式使用字符串函数。例如,string.byte(s,i)可以写成s:byte(i)。
字符串库假定采用单字节字符编码。
接收零或更多的整数。返回和参数数量相同长度的字符串。其中每个字符的内部编码值等于对应的参数值。
数字编码没有必要跨平台。
3.返回包含有以二进制方式表示的(一个二进制代码块)指定函数的字符串。
之后可以用load调用这个字符串获得该函数的副本(但是绑定新的上值)。如果strip为真值,二进制代码块不携带该函数的调试信息(局部变量名,行号,等等。)。
带上值的函数只保存上值的数目。当(再次)加载时,这些上值被更新为nil的实例。(你可以使用调试库按你需要的方式来序列化上值,并重载到函数中)
4.查找第一个字符串s中匹配到的pattern)。
如果找到一个匹配,find会返回s中关于它起始及终点位置的索引;否则,返回nil。第三个可选数字参数init指明从哪里开始搜索;默认值为1,同时可以是负值。第四个可选参数plain为true时,关闭模式匹配机制。此时函数仅做直接的“查找子串”的操作,而pattern中没有字符被看作魔法字符。注意,如果给定了plain,就必须写上init。
如果在模式中定义了捕获,捕获到的若干值也会在两个索引之后返回。
5.返回不定数量参数的格式化版本,格式化串为第一个参数(必须是一个字符串)。
格式化字符串遵循ISOC函数sprintf的规则。不同点在于选项*,h,L,l,n,p不支持,另外还增加了一个选项q。q选项将一个字符串格式化为两个双引号括起,对内部字符做恰当的转义处理的字符串。该字符串可以安全地被Lua解释器读回来。
希望能帮到你,谢谢!