对游戏编程开发的一点思考
本文希望总结一些过去的开发经验,从而提炼出一点思想的东西,以引导游戏编程的学习思路和成长方法。若有不足之处,期望能共同讨论指导。
越来越多人在不断的进入游戏行业,而这一行里面游戏编程方向,可以说是最简单的,也是最难的。简单的原因是现在这方面的知识甚至经验都可以在网络上找到并自主学习,各大视频网站教学课程制作也是越来越精良。难是因为,知识内容太多,涉及的领域也比较多,更新变化几乎是一年一变,而且一般都是颠覆性的。做客户端的,需要认识数学,物理,图形学,设计学,美术,多种编程语言交错,多种开引擎,多个平台跨越等等。开发服务器的,要学习的除了基本数学,物理等基础知识外,linux系统,各种数据库,各种架框模式,网络编程,分布式部署,大数据处理等等。16年流行的是cocos2d,17年又前赴后继的使用unity3d,接下来H5也在悄无声息地走近。日新月异,想要跟着走,会非常累。10年工作经验,每一种技术也就最多平均熟练使用3年(ps:小数点不算),就会被淘汰。于是你要让自己学快点,或者就算你不了解一些技术具体的,别人说起,你也能知道所以然,才能跟上步伐。
于是我总结了一下,我个人的学习思路,以供一些需要的同学进行参考,希望会有所帮助。
首先是我们需要什么,才能让我们成为绝世高手?在很多武侠,玄幻小说里面,主角大部分的都是一步一步炼上去的,但光有努力是不行的,主角光环必然会生效。势必在某时某地会得到一部绝世“功法”,和一部精妙“武技”。之后便会在一般同等级,甚至跨一两个等级横行,所向披靡,最终走向世界的顶端,有甚者遨游宇宙去了。小说说完回到现实,小说是虚构的,现实是残酷的,鸟那么多什么林子都有,你只是这些林子的石头,绝不会谁都是宝石。但一部好的“功法”可以让你蜕变,一部好的“武技”可以让你发光。那“功法”,“武技”何来,你幸运了。满地都是,想要的话到小贩那里买。
我总结一句话,功法看图书,武技找百度,若是找不到,github能帮助。网络时代,IT知识是随处可以找到的。
那么何为“功法”呢?“功法”者,行于体内,上至百汇,汇于丹田,积久而成海,外放之,无坚而不摧(ps:好吧这几句是我胡扯,不要当真)。其实也就是说要有好基本功,那么之后做什么事,妈妈再也不用担心我的学习了。而游戏程序员的功法是什么呢?我列了以下这些书,全部都要融汇贯通,不断复习,形成自己的扎实的基本功。
功法书籍 |
||
高等数学 |
c/c++ |
游戏编程大师技巧 |
英语 |
c# |
3D数学基础 |
物理 |
java |
游戏开发物理学 |
线性代数 |
python |
游戏开发中的人工智能 |
概率论 |
lua |
游戏引擎架构 |
离散数学 |
objective-c |
opengl es 3.0 编程指南 |
计算机系统结构 |
swift |
directx3d编程指南 |
数据结构 |
javaScript |
android应用编程 |
模拟与数字电路 |
typeScript |
ios应用编程 |
数据库 |
golang |
linux应用编程 |
计算机网络 |
xml |
windows应用编程 |
算法导论 |
html |
mysql db |
编译原理 |
json |
mongodb |
软件工程 |
gradle |
|
计算机图形学 |
http tcp/ip |
以上有一些不一定是的书,可能是一种学科,可能是一种工具,而且其实还不只包括这一些,但作为一个从业10年经验的来说,知道能够融汇这些“功法”的游戏开发人员,能力绝对是很高的。怎么高法,也许是很难神会的,除非你就是懂的那个人。但我也可以用一些世俗的方式给你描述一下。同样一个3年的程序员,(2017的行业情况)广州一般是8k~18k之间,那为什么出现10k的中间差异呢?就因为“功法”的扎实情况,或许拿8k打打杂慢慢来的人自己觉得还可以,但在同一时候,也许同样3年人家可以当主程了,薪资18k,人家公司还觉得很划算18k一个主程,什么都会做。也许这只是排除其它因素的比较,宗旨只在说明“功法”是否扎实的差异性。
“功法”说完了,不懂的再读几遍吧,这是一个很好的学习方法。再不行多看几遍电影《少林寺》也行。
现在说“武技”,”武技“者,行于体外,作用于万物,万物顺其而变,此皆立于功法,生生不息,变化无穷。就是在”功法“稳定的基础上,学习到的一些实践操作方式,前人的一些方法,一些技巧。比如说,一个木工怎么做一个桌子,要先画图纸,根据图纸尺寸做好各块零件,再按图纸拼装加固。整个过程就是一个”武技“。积累某一个工作内容的”武技“越多,这种工作你就越熟练,效率就会越快。那么游戏程序员的”武技“是什么呢?我列了以下书籍或者网站。
武技书籍 |
||
unity3d |
xcode |
https://unity3d.com/cn/learn |
cocos2d-x |
VS |
http://forum.china.unity3d.com/forum.php |
LayaAir |
android studio |
https://answer.uwa4d.com/ |
Egret |
intellij idea |
https://www.baidu.com |
Netty |
sublime |
http://www.google.com |
Node.js |
beyond compare |
https://developer.apple.com/documentation/ |
libevent |
photoshop |
http://www.cocos.com/docs/ |
Lua5.2 |
3dmax |
http://forum.cocos.com/ |
RocketMq |
bodypaint |
https://github.com/ |
ZeroMq |
substance |
https://sourceforge.net/ |
Zookeeper |
ms project |
http://gad.qq.com/community |
设计模式 |
ms visio |
http://blog.csdn.net/ |
bootstrap |
mindmanager |
https://www.photonengine.com/en/PUN |
由于“武技”太多,不能详细列举,和列举所有的,只能给出相关查阅方向,还是得读者自己去搜索体会,才来得更有沉淀感。
“武技”与“功法”的转换。“功法”在遇到一些实际问题时,会产生解决这个问题的操作步骤和方法,形成“武技”。“武技”在做多了熟练了,就可以应用到同一类型的问题上,最后就会形成一个套路,而这个套路进行理论升华,辐射到不同类型的问题上又产生了新的解决方案,那这时新的功法也就形成。而有一些功法是建立在一些另外一个功法上面的,可称其为二阶功法,二阶功法区域限制性更强,但能量也会越大,产生的“武技”也会越精巧。
说了一大串,有点绕,其实就是两个字“创新”,要有自己创建功法,武技的觉悟。生生才能不息。
最后祝广大读者能够看得懂我在说什么,反正我自己也不懂,练功去吧!
对游戏编程开发的一点思考相关推荐
- 对软件项目开发的一点思考
今天看到同事写的一些思考,感觉还不错,真的是通过这个项目让他成长起来了. 目录 I 1 引言 1 2 概念 1 3 国内软件项目角色分析 1 4 国内项目的一般性问题 2 5 客户与项目组对需求的认知 ...
- 对于微信小游戏JS开发的一点整理
对于微信小游戏JS开发的一点整理 我像大家一样,遇到了不懂的喜欢在csdn上搜索解决问题,这篇文章参考了csdn上一些博主的文章,故标为转载,主要是参考博主:陈田田. tips 代码包大小上限为4MB ...
- 给自学者的建议:想学游戏编程开发,你需要做什么?
声明:只是个人见解!!! PS 2013/03/11 17:02 Yellow Lee早上在百度游戏开发贴吧,看到里面好多人很迷惘,加入置 顶的群,聊了一下,发现迷惘的人更多,做点事吧,憋着一口气写了 ...
- Mac iOS Mac Watch 应用和游戏编程开发工具推荐
今日分享「iOS / Mac / Watch 应用和游戏开发工具」推荐,这期专题主要为iOS开发者推荐一些优秀的设计和开发工具,这些工具包含移动原型的设计.程序的开发等,可以大大提高开发的效率!专题会 ...
- 我对软件开发的一点思考
但凡是搞IT的 对软件架构.设计模式.XP编程(极限编程)或是敏捷开发.代码重构 这些软件开发的思想或方法都不陌生 但是它们之间究竟有什么联系??? 在实际的开发过程应该如何做??? 才能构建一个好的 ...
- 游戏收费方式的一点思考
由于在筹备做新的项目,所以关于网络游戏方面的讨论,在朋友圈子中多了许多.前几天和投资人吃饭,说起前几年盛大提出所谓免费游戏的策略转型,问道有没有可能在未来几年出现新的收费模式.从这个话题引开,饭桌上我 ...
- wpf 使子ui元素可视区域不超过父元素_对游戏UI设计的一点思考
UI决定了一个游戏的初体验,甚至决定了玩家的初始留存,甚至可以说决定了一个游戏的品质,虽然看起来是表象的,却是直指游戏核心的.简单讲,玩家认可一款游戏永远都是造型场景好,剧情好,画质棒:但是玩家骂一款 ...
- 关于编程思想的一点思考
计算机发展了几十年了,其中的技术层出不穷,令人眼花缭乱,而且每种技术还在不断更新迭代中,让人心烦.这篇文章是关于 我在这飞速发展中探索的思考. 一.计算机硬件 底层硬件,其工作原理是支撑庞大系统软件的 ...
- Go游戏服务器开发的一些思考(一):语言层面
Go是比C++更好用的高级语言 使用Go作为服务器开发的主语言前,首先需要对Go语言做下定性.在接触Go前,可能给人的印象(至少是我),Go是一门脚本语言.看了 官方文档 ,才知道Go是一门高级语言. ...
- Go游戏服务器开发的一些思考(十):goroutine和coroutine
概要 go语言的特色之一就是goroutine.也就是go协程.由于协程这个东西在go语言之前,用到相对比较少,大家对协程的理解程度不一,或有偏差.比如本人刚接触goroutine时,就对其比较畏惧, ...
最新文章
- 关于JSON的一些问题
- (转)国外软件外包项目网站(适用软件兼职)
- python 爬虫 爬取序列博客文章列表
- 晚上无聊象征性收取了网友100元辛苦费,实现支持多语言功能的XML语言包版的C#的ASP.NET多语言支持例子程序...
- java.sql.preparedstatement的应用
- 为什么有些大厂的技术弱爆了?
- 英语语言学c是,教师招聘笔试之英语语言学经典必做20题(1)
- python简单实战项目:《冰与火之歌1-5》角色关系图谱构建——人物关系可视化
- Pascal Sentences数据集预处理
- 复旦大学数学学院高等代数历届期中考试大题精选之一(08级--12级)
- 【Pygame实战】超有趣的泡泡游戏来袭——愿你童心不泯,永远快乐简单哦~
- Cocoa-Cocoa框架
- ubuntu 批量压缩图片
- 三星pay显示无法连接服务器,三星智付Samsung pay正式开启:服务器宕机 三星紧急发公告...
- Java OCR 图像智能字符识别技术,可识别中文
- MySQL inet aton函数_MySQL INET_ATON()用法及代码示例
- fish or cut bait 当机立断
- 红队武器库-网络安全人员必备
- 基于Arduino的显示测量环境数据设计
- java pdf 模板多页数据导出
热门文章
- html怎么设置区块隐藏,网页区块隐藏/显示的切换技术
- 微软官网免费下载win10系统
- 计算机网络吞吐量计算
- Python描述 LeetCode 781. 森林中的兔子
- 使用MS Project创建项目计划
- 保姆级笔记-佳能Canon LBP2900在Win10安装驱动
- 计算机学院教学质量改进的制度,计算机科学与技术学院教学管理文件规章制度汇编.doc...
- 信息安全工程07875 自考软件工程 助学班复习纲要
- 计算机考试画箭头,word绘图教程:画箭头、大括号、曲线等常用自选图形-word技巧-电脑技巧收藏家...
- Fibonacci 斐波那契数列的R语言实现