c 写网页游戏用到什么数学知识
创始人
2024-10-21 20:05:36
0

一、编程与数学的关系

你好,我是计算机专业大三的学生,我来说说在我的印象中数学的关系:

第一,编写程序体现的是一个人的逻辑思维,既然涉及到逻辑,必然会与数学有些关系。但是与数学关系的深浅要与你所涉及的方面有关。

第二,编程中必须要学的数学:

1.最基本的数字与运算知识:二进制的概念(在哈夫曼树,哈弗曼编码等方面有直接的应用),取余的概念(在循环链表,随机数方面有应用),基础平面几何(在绘制窗口,绘制曲线,自定义按钮等图形化的地方会用到),还有些很基础的数学知识绝对不超出初中的范畴。

2.计算机中的数学知识:主要的一门叫做离散数学,讲的是逻辑代数的相关知识,其实在真正的编程中不会直接体现这门课的重要性,对于初学者只要知道:与或非是怎么回事,什么是集合就可以了。离散数学还涉及到一些图与树的概念,我现在先把这些划归到数据结构中。

3.我前面说了,编程与你的需求有直接的关系,有些编程领域与数学的知识密不可分:

1)搞底层:举个例子,如果你想设计一套你自己的windows字体,那么肯定涉及到字体平滑,字体平滑就涉及到一个很难的数学知识:插值。这个知识在数值分析中讲解,而且没有高等数学的基础,这门课想学会的可能性几乎是零。。。这门课主要解决的是高等数学中的问题如何用计算机解决,比如:泰勒插值,拉格朗日插值,求解一般方程或微分方程的解,还有的我忘了,反正都是很难的知识。而底层的很多编程都是以这些为基础的。

2)搞图形学:CG技术由于在游戏中的如日中天,使得很多初高中生对图形学神往已久,但却不知计算机图形学的知识是建立在很多大学数学课程的基础上的。尤其是图形学理论的学习,没有线性代数的基础是根本看不懂的。而在三维视图方面又要涉及到高等数学中极坐标的知识。很多算法,比如梁-Baskey算法对于平面几何分析水平的要求是非常高的!如果你想搞游戏设计,动画电影(这个是要写脚本程序的,否则画面哪能那么好),我劝你还是到了大学再深入学习吧。

3)搞算法:学习算法与其说数学要好,还不如说成是智力要好。。。比如分治法,动态规划算法,回溯法等对于问题的前期分析要求很高,尤其是列出递归方程,这些我觉得是在考智力。还有一些,比如图算法,树的应用,排序,查找,这些知识涉及到计算机专业的另一门课程:数据结构,这门课是计算机专业的核心课程之一,也是专业与非专业的最大区别。这门课对数学要求不高,但对于一个人的思维要求比较高。还有像计算几何的问题,那就是纯数学问题了。。。

4)搞密码学:我不搞这方面,而且也没研究过,但听说这方面对数学要求极高!由于我的数学比较好,别人还推荐过我去搞这方面,但是我一想到面对的都是数字,我就退缩了。。。

以上就是我所知道的与数学有关的计算机分支,每个方面都够人学一辈子,而且学好了,前途与钱途都是大大的!

第三,这么多方面都跟数学有关,那编程岂不没法学了?还有些方面对于数学要求相对较低,我说的相对较低是由于不管哪方面都会涉及到一些基础的数学算法。总的来说,越往高层,对数学的要求越低,比如MFC,那些网络编程,系统编程都是封装好的,但对于一个系统来说整体的规划和设计更关键,就是说前期的需求分析、逻辑结构设计和物理结构设计比编码更重要,当然工资也更高。。。

最后,我想给你提些学习编程的建议:

1)由于你的年龄还小,中国的教育体质问题,希望你不要把太多的精力放在这上面。。。我想你懂的。虽然听说过哪个孩子做了个游戏之后成了百万富翁,但这么多年了,似乎只有他一个,不要怀疑自己的实力,但更不要幻想你有这个运气。。。

2)编程注重逻辑思维,你才是初中生,大脑的发育不知是否成熟(绝不是说你智力低,你应该知道大脑发育是有阶段的吧),所以要以语言的基础为主,这个对数学要求不高。

3)请选一门语言去练习,编程注重实践,没有实践只有理论那就等于没学,所以一定多练练。至于语言,我推荐学习C或C++,至于C与C++是怎么回事,怎么学习,这是另一个比较难的话题。。。注意别上来就学VC++(MFC),否则你会一事无成!

4)编程很枯燥,所以要耐得住性子,不要一见到难题就退缩,一见到不会的概念就把书扔了,不会的时候请多看看基础,八成是语言基础不到位。

就写这么多吧,希望我的回答对你有帮助。你若有什么问题还可以继续问,若是编程过程中遇到什么问题也可以问我,很欢迎的!

二、游戏开发主要学什么

学习的先后顺序

1、首先是C++语言。

2、只是做windows方面的游戏学习,可以学习下DirectX,这个很方便在windows下做游戏开发。

3、如果想制作跨平台游戏,建议学习下opengl/opengles,这是个很强大很专业的图形接口,因为很多平台支持所以适合跨平台游戏制作使用。

4、想学习3d游戏并迅速工作,建议学习u3d引擎、ue引擎这些游戏引擎,有了以上的基础学习这些引擎也可以理解的更深入,u3d还会用到c#与js语言。

5、做2d游戏,可以使用cocos2dx等一些引擎,当然你也可以使用上面的3d引擎制作2d游戏。

6、然后就是可以深入的研究一些开源的游戏引擎,终极目标是可以自己做出一款比较棒的游戏引擎。

一、游戏程序:

类似软件工程师,需要精通至少一门以上程序语言,比如c,c++,页游方面有flashas3,php等。他们的主要工作是写程序代码,需要一定的逻辑思维能力,数学能力。

如果你想成为程序员,可以从学习一门程序语言入手。

二、游戏美术:

游戏中的画面都是由游戏美术师来制作的,具体细分为:游戏原画,3d游戏模型贴图(分3d场景与3d角色),游戏动画,游戏特效,关卡美术等。想学习游戏美术的话,一定要有审美能力,如果有深厚的绘画功底更佳。另外,还需要学习3dmax,ps,zbrush等软件,这三个软件是做游戏美术常用的。

三、游戏策划:

游戏策划主要制定游戏的规则和玩法,比如世界观,剧情,对话,任务,数值,职业设定,副本设计,帮会系统等等。想学习策划的话,需要你有较高的综合素质,沟通能力,理解能力,逻辑思维能力等。

另外需要多玩游戏,并从设计的角度去分析游戏。策划需要掌握的技能范围很广,根据具体项目和具体职责而不同。

游戏开发这个方向看起来目标很明确,但其实是个领域很广的方向,入门的时候如果得不到指点一二,很容易误入歧途,相反,如果走这条路之前能得到前人的一些指引,是可以事半功倍的。这里为大家推荐一下,以做参考。

游戏客户端学习路线

1.首先,一开始可能对游戏引擎没什么概念,建议先入门一两个游戏引擎(我推荐可以先去学习Cocos2d-x和Unity3D两个引擎,市面上大多数游戏是利用这两个引擎开发的)。入门阶段要做的就是看该引擎的教程(书籍、视频、网上博客、网上教程、官方帮助文档等),并且熟练该引擎所使用的编程语言。

推荐课程:C#教程。

因为不同平台下的性能不同,支持的编程语言也不尽相同,所以针对不同平台下的流行的游戏引擎也是不同的。下面列举一些现在流行的游戏引擎。

windows或游戏主机:【Unreal】、寒霜、CE3

苹果IOS:【unity3D】、【cocos2d-x】、【Unreal】、sparrow、spritekit。

安卓:【unity3D】、【cocos2d-x】、【Unreal】、AndEngine、libgdx。

网页:【Egret】、【cocos2d-js】、Fancy3D、unity3D。

当然并不是不同平台的游戏开发,就毫无共通之处,学了这个到了另一个平台就无用了。不是这样的,编程的世界里你走得越远你会发现很多东西的本质都是相似的,例如你如果扎实地理解了C++的基本语法,日后再转Java语言也不是很难的事情,因为它们本质的面向对象特性还有各种编程语言特性都是相通的。

2.因为游戏开发就是一门实时渲染的艺术,所以离不开图形库的学习。现在主流的图形库是Windows平台专用的DirectX11和通用平台的Opengl。这两个图形库,至少需要入门其中一个。

3.然后,你就可以开始看计算机图形学的书籍了。如果你发现你的理论底子不足,这个时候就需要补一下线性代数、基本的微积分、还有3D数学的知识。

4.游戏引擎中包含了各个部分,上面的渲染只是游戏引擎的一部分。还有其它诸如着色器编写、地形编写、物理引擎编写、模型和动画、人工智能体设计、网络编程等等,完成渲染部分的基本学习后,你可以选择自己感兴趣的部分进行专攻,毕竟我们实际工作大多数时候是团队开发,而不是单打独斗,每个人都应该精通自己所擅长的那部分。

5.至此,独自开发一款小型游戏已经完全不在话下了。也具备了加入公司合力开发一款大型游戏的能力。

游戏服务端学习路线

1.首先需要熟悉一门服务端语言,比如C/C++、PHP等,会使用一个开发框架。

2.会在服务器上搭建环境,拿lamp来说linux和apache、mysql、php四者担任的角色要清楚。大多服务器会选择搭建在Linux环境下,所以也需要熟悉Linux操作命令。

3.至少熟悉一种数据库。比如关系型数据库mysql,能熟练写出增删改的语句和不算很复杂的查询语句,再比如了解各种方式的多表查询有哪些不同等数据库技能也是需要的。

4.了解网络编程及多线程等。比如http通信协议。跨平台的交互一般http是使用比较广泛的,需要大体了解,你得清楚请求报文通常包含哪些部分、常见的服务器返回码对应的含义。

5.会使用至少一种数据格式。服务端和客户端建立了联系,数据的传输也需要一种协议格式去统一。json是目前使用率最高的格式了。json的数据格式还是简单明了易学的,主要是要了解如何使用它较好的去定义接口。

关于学习路线,我觉得对于学习者,尤其是初学者来说,非常有用,它的作用就是一幅地图,让你在浩瀚的知识丛林不至于迷失方向,甚至放弃在99%的地方。

其实和软件开发一样,游戏开发也是需要从编程语言学起,但不同的是游戏开发需要熟悉各种游戏开发工具,相对软件开发难度稍大一些,所以,如果你是零基础想学游戏开发,你需要有一个系统的学习方向和规划。

根据游戏类型的不同,所学的软件也不一样。

中小型游戏大致可分为网页游戏,flash游戏,小游戏等,基本上都是一些休闲类的傻呆萌的情节和操作。

这类游戏开发相对比较简单,会Javascript、HTML、flashcs、Java就可以进行开发了,语言类主要有C/C++,汇编语言,着色器语言,脚本语言,高效的开发语言C#或Java。

现在的游戏主要分为三种:

1、PC类端游(就是电脑上面运行的游戏)

这类游戏在线人数多,游戏中要处理的数据庞大。所以对服务器性能要求非常高,一般都是采用C++做为开发语言,C++可以直接操作内存数据,与操作系统直接交互,减少数据之间的复制,它运行效率高,处理速度快,是很适合这里游戏开发语言。

学习这种游戏的开发,学习的有C++编程,Linux网络编程、TCP/IP通讯协议、多线程编程再加数据库。

PC类端游戏开发周期较长。大概需要三年左右的时间。

2、网页游戏(比如现在经常说的1刀999级)

因为是网页游戏,游戏的界面展示依赖于网络传输,所在在画面和特效上会次于客户端游戏很多。和端游类是差不多是一样的,有些公司之前是做端游的,他们就直接把端游的服务器架构拿来就可以使用,以完成快速开发。

需要学习内容和端游差不多。

3、手机游戏(主要区分为安卓和IOS)

手机类游戏目前是最热门的游戏,很多热播的电视剧或者电影之后,都会有相同情节的手游上线。

服务器主流的开发语言是C++和Java,但是C++学习难度大,开发速度慢。一般来说我们都是使用Java语言来开发服务器。

希望这些见解,能给头条的友友们带来帮助。

三、计算机编程需要用到什么水平的数学

别张口数学闭口数学。首先数学你会吗?就算是牛顿殴几里德,他也只是会自己从事的那行业,说数学精通他们也不敢吹这样的牛逼。

所以对大多数人来说,在数学方面都不太可能取得什么很深的造诣。直白一点能学好数学的人太少。数学是又深奥又费解学习成本巨大需要耗费大量时间学完不用立马就忘的学科。所以说数学重要,先问问你自己能不能学会。

其次,计算机学科跟数学根本就不是一门学科,不存什么包含关系。计算机编程有自己的理论体系,很多跟数学关系不大。学好编程最重要的是对你学的编程语言的熟练运用和工具SDK的烂熟于心。每个语言都有自己的设计理念,不存在什么好学的编程语言。

所以说,题主,你想得太远了。软件开发需要用到的知识比数学重要的太多了。比如英语。而数学对于大多数人来说是最难学也是最不重要的知识,基本上是学了就忘忘了就扔扔了也没感觉的那种,很多搞编程的可能一辈子也用不到数学知识。为什么?理解C++的指针和多态需要数学吗?一个复杂的系统架构也不需要半点数学知识,而你就是看不懂。

还有就是程序调试技术,很多IDE给出的出错语句非常费解,什么指针为空,数组越界,内存溢出,SDK找不到,你没经验时打死你也看不懂你的编程工具提示的是什么。这时你那高大上的数学真是P用没有,它能帮你排查错误找出程序崩掉的原因吗?我看不行吧,你还是得到论坛百度去问人家这些基本的问题。

在你担心数学好不好之前,你更应该关心编程环境怎么搭建,连IDE都搞不定不知道程序怎么跑起来你还搞什么呀,下一步就是程序基本的语法和SDK库函数的掌握,基本SDK都不知道什么意思怎么去用,如字符串函数,文件读写和数据库常用操作,这些你都不会你还有学下去的必要吗?还有更重要的更基本的程序调试技术,程序老出错老崩溃怎么办呀,哪里变量为空了内存写错了?为什么程序老编不过去呀,谁能帮帮我呀!!!这个时候你发现那牛逼的数学知识真是屁用没有,你还是感叹自己基本功底不行经验太少,这个时候打死你也不会再关心数学好不好的问题了。

如果说用到数学的大概只有3D游戏引擎,很智能的人工智能,如格斗游戏的电脑应对玩家的复杂AI,生化危机中僵尸怪物的配合商量运用策略包抄玩家和记忆功能,还有航空航天领域这样高精尖技术学科才会用到复杂一点的数学知识。而这些都是计算机专家才要掌握的内容。所以题主你是想多了,还是先关心下自己程序为什么编不过老是报错的问题吧

相关内容

热门资讯

cf游戏安全知识答题全部正确答... 一、cf生化大赏答案大全2023cf生化奖励活动的答案是什么?2023年最新答题活动已经开始。玩家可...
3d游戏的技术知识 一、3d技术原理是什么3D技术:是靠人两眼的视觉差产生的。人的两眼之间一般会有8厘米左右的距离。要让...
1年级知识游戏大全 一、有哪些适合一年级小朋友学习的游戏类app值得推荐下载一些汤姆猫之类的小游戏吧!我觉得这些小游戏它...
cf一些基本知识有哪些游戏 一、CF介绍一下所有的游戏模式爆破模式:进攻方需要使用C4炸弹摧毁目标物,而防守方则要阻止目标物被摧...
b5游戏平台基础知识篇的答案 一、b5对战平台进游戏卡在主界面解决方法b5对战平台卡在界面的主要原因是因为没有国服的测试资格,我们...
3岁宝宝打游戏学知识软件 一、幼儿软件app推荐目前的幼儿软件分类有些以下几种——启蒙类,英语类,思维类,识字类,数学类,美术...
1年级知识游戏有哪些 一、适合低年级学生玩的课堂游戏有哪些第一种游戏名称:开火车适用范围:用于复习巩固拼音字母、音节、生字...
Cf游戏安全中心知识常识 一、QQ安全中心游戏登陆保护里为什么没有穿越火线啊qq安全中心怎样登录cf需要验证才能玩正常操作是,...
cf腾讯游戏知识答题答案大全 一、腾讯游戏安全知识答题答案20211游戏账号的密码,怎么样设置才比较安全?A弄个我的生日什么的,多...
34年级知识问答游戏大全 一、一年来数学新领程34页第4题怎么做三角形=3,正方形=9,圆形=6,长方形=5,棱形=7,五角星...