学习游戏开发应该从哪些方面入手

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了学习游戏开发应该从哪些方面入手相关的知识,希望对你有一定的参考价值。

我现在学过C++,以后想从事游戏开发,现在应该从哪些方面入手开始学习呢

如果要自学游戏程序开发的话,可以看看下面的,呵呵。

游戏开发资料(PDF书都是中文版的,非英文,很多是本人自己扫描制作,从未网上发布过,所以独家啦):
1、Gamebryo 2.2游戏引擎(盛大、腾讯等公司制作网络游戏常用)+Gamebryo v2.2.1说明文档

2、游戏PDF书及其代码:
3D游戏编程、3D游戏编程大师技巧、Direct3D游戏编程入门教程第2版、DirectX角色扮演游戏编程
DirectX特效游戏程序设计、MFC windows程序设计第2版、MFC深入浅出、VC++深入详解、Visual C++6.0技术内幕第5版
Visual C++视频技术方案宝典、Win32多线程程序设计、Windows程序设计、WINDOWS核心编程
精通DirectX 3D图形与动画程序设计、设计模式解析第2版、游戏开发物理学、3D数学基础 图形与游戏开发

3、C++PDF书及其代码:
C++STL程序员开发指南、C++编程规范、C++标准程序库自修教程与参考手册、Essential c++ 中文版
Exceptional C++中文版、Inside the C++ Object Model、高质量C++编程指南、经典C程序100例
深度探索C++对象模型、深入探索C++物件模型、自己动手写操作系统、代码优化:有效使用内存
Effective C++、Effective C++ 第二版中文版、More Effective C++(中文版)

4、数据库SQL PDF书:
SQL网络编程实例、精通Oracle9i、精通Oracle 10g Pl SQL编程

5、Ogre3D PDF书及其代码:
Apress-Pro Ogre 3D Programming、OGRE中文帮助手册 v1.4.0、PRO OGRE 3D PROGRAMMING中文翻译版本0.2.0

6、人工智能PDF书及其代码:
AI游戏引擎程序设计、人工智能游戏编程真言、游戏编程中的人工智能技术、游戏开发中的人工智能
游戏人工智能编程案例精粹

7、游戏开发网络编程PDF书及源代码:
C++网络编程卷1&2、Network Programming For Microsoft Window、Visual C++实践与提高-网络编程篇
Visual C++网络通信编程实用案例精选第2版、Visual C++网络游戏建模与实现(第2版)、Windows Sockets
Windows网络与通信程序设计、韩国传奇正式最终版本源码、网络游戏服务器编程、游戏学院网络游戏服务器端编程
最新传奇M2引擎程序源码、Internetworking with TCP_IP Vol 3 Client-Server Programming And Applications
PC游戏编程(网络篇)、Visual C++.NET网络编程、Winsock规范及应用、传奇3源程序、魔域服务端源码+客户端源码
盛大传奇外挂源代码

此DVD出售中,呵呵。链接在最下面。

以下是游戏公司的招聘启事:
腾讯3D游戏引擎工程师
熟悉实时3D的基本知识和算法,包括一些3D开发相关的数学基础;
能熟练使用Direct3D编写3D程序;
能熟练的用C++进行开发。
有以下经验者优先考虑:
使用过gamebryo开发游戏一年以上;
作为3D程序开发过一个游戏以上;
开发过一个成型的3D引擎。
联系邮件: hr@tencent.com

盛大网络(上海)
客户端程序员:
职位要求:
1. 热衷游戏开发事业,有耐心和自信心,学习能力强,有较强的逻辑思维能力,工作认真,有团队合作精神。
2. 本科以上学历,有1年以上游戏开发经验。
3. 有3年以上C++程序开发工作经验,熟悉STL、数据结构和设计模式。
4. 熟悉DirectX或OpenGL程序开发,有良好的数学基础,熟悉矩阵运算
5. 熟悉gamebryo引擎,熟悉Shader编程和相关图形工作经验者优先。

服务器程序员:
职位要求:
1. 热衷游戏开发事业,有耐心和自信心,学习能力强,有较强的逻辑思维能力,工作认真,有团队合作精神。
2. 本科以上学历,有1年以上的网络游戏开发工作经验。
3. 有3年以上C++程序开发经验,熟悉STL、数据结构和设计模式。
4. 熟悉TCP/IP协议,熟悉数据库编程。

本人总结的网络游戏程序开发学习流程,这是最少要看的书了:
1、C++primer中文版第4版
2、C++标准程序库自修教程与参考手册
3、Windows程序设计第5版
4、MFC windows程序设计第2版中文版
5、VC++深入详解
6、MFC深入浅出
7、Effictive STL
8、Windows核心编程
学好以上几本,也可以去游戏公司一试VC++软件工程师职位了。
9、WINDOWS游戏编程大师技巧第2版
10、3D游戏编程大师技巧
11、DirectX角色扮演游戏编程
12、DirectX特效游戏程序设计
13、精通DirectX 3D图形与动画程序设计
14、DirectX高级动画制作
15、Ogre引擎研究
16、游戏人工智能编程案例精粹
17、Visual C++实践与提高--网络编程篇
18、C++网络编程,卷1
19、C++网络编程,卷2
20、Visual C++网络游戏建模与实现第2版
21、代码优化:有效使用内存
22、编个Demo出来,好好复习一下C++和数据结构,然后去游戏公司应聘。
另外,游戏编程精粹1-6,GPU精粹1-2,也是好书,很多游戏开发者看的。以后可以看看。
还有千万别信那些什么所谓的游戏学院会把你培养起来,在他们那里想学好游戏是很难的,他们教的都是皮毛,公司用不上,还有他们提出分配工作几乎不可能实现,现在游戏公司宁愿要计算机大专毕业生也不敢要游戏学院的,啥也不懂,你真想好好学的话自己可要下点苦心,多进点中国编程的网站——Gameres论坛
参考技术A 你可以先去【绘学霸】网站找“游戏设计/游戏制作”板块的【免费】视频教程-【点击进入】完整入门到精通视频教程列表: www.huixueba.net/web/AppWebClient/AllCourseAndResourcePage?type=1&tagid=307&zdhhr-11y04r-66963280

想要系统的学习可以考虑报一个网络直播课,推荐CGWANG的网络课。老师讲得细,上完还可以回看,还有同类型录播课可以免费学(赠送终身VIP)。

自制能力相对较弱的话,建议还是去好点的培训机构,实力和规模在国内排名前几的大机构,推荐行业龙头:王氏教育。
王氏教育全国直营校区面授课程试听【复制后面链接在浏览器也可打开】: www.huixueba.com.cn/school/3dmodel?type=2&zdhhr-11y04r-66963280

在“游戏设计/游戏制作”领域的培训机构里,【王氏教育】是国内的老大,且没有加盟分校,都是总部直营的连锁校区。跟很多其它同类型大机构不一样的是:王氏教育每个校区都是实体面授,老师是手把手教,而且有专门的班主任从早盯到晚,爆肝式的学习模式,提升会很快,特别适合基础差的学生。

大家可以先把【绘学霸】APP下载到自己手机,方便碎片时间学习——绘学霸APP下载: www.huixueba.com.cn/Scripts/download.html
参考技术B 会C++就学游戏程序开发,详细课程你可以到“成都汇众益智游戏学院”的网站上去看,就知道从哪儿入手了。自学会很难,不系统,可能不是三五年学得会的 参考技术C 自学的话太没有系统的,可以到学校里看看的,比如这边 参考技术D 我不会告诉你,你只要有兴趣,要坚持等等。
我只告诉你,要学会灵活运用任何编辑软件
如:C++,Java,Emacs,vim,unity3D。
至少还要学会一门或一门以上的外语。
还有游戏美感,如果要把游戏做好至少要把美术做好。比如游戏人物建模,主要整体,注意细节。地图建模,场景环境要做好,场景做好可以衬托出一种心情。
游戏策划,他主要是策划人物背景,性格,游戏各个场景故事,游戏主线,支线任务,游戏策划要想象力颇为丰富,借鉴同类游戏的好处,取长补短。次要,策划需要一些新鲜的主题,新鲜的主题可以引起玩家的兴趣。更多内容请到优就业官网学习。

接口的安全性测试,应该从哪些方面入手?

Hi,大家好。我们在开展接口测试时也需要关注安全测试,例如敏感信息是否加密、必要参数是否进行校验。今天就给大家介绍接口安全性测试应该如何开展,文末附年终总结模板,需要年末汇报的童鞋们,走过路过不要错过。

目录

一、接口防刷案例分析

1、案例

2、 什么行为判定为刷接口?

3、如何判断用户粒度?

二、如何处理恶意请求?

1、业务逻辑上限制

2、 IP频率限制

3、验证码及短信限制

4、防止XSS、CSRF、SQL注入攻击

 三、接口安全性用例设计

 1、接口安全性设计原则

2、 接口安全性用例设计

3、总结


一、接口防刷案例分析

1、案例

  • 黄牛在12306网上抢票再倒卖并牟利。

  • 恶意攻击竞争对手,如短信接口被请求一次,会触发几分钱的运营商费用。

  • 进行压测时,用Apache Bench做压力测试。

2、 什么行为判定为刷接口?

  • 接口请求次数多;

  • 接口请求概率频繁,可能1秒上千次;

  • 用户身份难以识别,可能会在刷的过程中随时换浏览器或者ip;

3、如何判断用户粒度?

根据当前网页

  • 缺点:没有任何意义,刷新页面后用户的身份就变了;

根据session

  • 缺点:当用户手动清除 cookie 的时候即失效;

根据ip

  • 优点:伪造成本高;

  • 缺点:要考虑一个公司、一个小区的人一般会共享一个 ip,所以适当的要放宽对单一 ip 的请求限制;

二、如何处理恶意请求?

1、业务逻辑上限制

结合业务逻辑对用户行为进行分析,在代码实现层面对进行完善的用户权限判断。例如限制用户登录,用户必须满足一定条件才可以(任务限制,金额限制,参与次数限制);

2、 IP频率限制

通过 memcached 和 redis 都可以实现成熟的方案。

3、验证码及短信限制

可以通过要求用户输入验证码或短信验证码验证用户真实性,但是也要保证短信接口不会被刷。

4、防止XSS、CSRF、SQL注入攻击

防止XSS、CSRF、SQL注入常见的WEB接口安全防范手段,对参数过滤转义,表单验证等。

 三、接口安全性用例设计

 1、接口安全性设计原则

1.接口类型尽量使用https带SSL证书模式;
2.接口参数使用签名(非对称加密算法);
3.接口参数需要校验;
4.每次请求需要用户命令;
5.多次失败后需要有锁定机制;
6.接口对应用户权限,用户只能调用有权限的接口;
7.系统接口做过负荷机制用来保护系统安全;

2、 接口安全性用例设计

(1)  输入验证

客户端验证服务器端验证(禁用脚本调试,禁用Cookies)
1.输入很大的数(如72932398579857),输入很小的数(负数);
2.输入超长字符,如对输入文字长度有限制,则尝试超过限制,刚好到达限制字数时有何反应;
3.输入特殊字符,如:~!@#$%^&*()_+<>:”|;
4.输入中英文空格,输入字符串中间含空格,输入首尾空格;
5.输入特殊字符串NULL,null,0x0d 0x0a;
6.输入正常字符串;
7.输入与要求不同类型的字符,如: 要求输入数字则检查正值,负值,零值(正零,负零),小数,字母,空值; 要求输入字母则检查输入数字;
8.输入html和javascript代码;
9.对于像回答数这样需检验数字正确性的测试点,不仅对比其与问题最终页的回答数,还要对回答进行添加删除等操作后查看变化,例如:
①输入<html”>”hello</html>,是否出错;
②输入<input type=”text” name=”user”/>,是否出现文本框;
③输入<script type=”text/javascript”>alert(“提示”)</script>,是否出现提示。

(2)  用户名和密码

1.输入密码是否直接显示在输入栏;
2.是否有密码最小长度限制(密码强度);
3.用户名和密码中是否支持输入空格或回车;
4.是否允许密码和用户名一致;
5.防恶意注册:可否用自动填表工具自动注册用户;
6.有无缺省的超级用户(admin等,关键字需屏蔽);
7.有无超级密码;
8.是否有校验码;
9.密码错误次数有无限制;
10.是否大小写敏感;
11.密码是否以明码显示在输出设备上;
12.强制修改的时间间隔限制(初始默认密码);
13.token的唯一性限制(需求是否需要);
14.token过期失效后,是否可以不登录而直接浏览某个页面;
15.哪些页面或者文件需要登录后才能访问/下载;
16.cookie中或隐藏变量中是否含有用户名、密码、userid等关键信息;

(3)  文件上传下载

1.上传文件是否有格式限制,是否可以上传exe文件;
2.上传文件是否有大小限制,上传太大的文件是否导致异常错误;
3.通过修改扩展名的方式是否可以绕过格式限制,是否可以通过压包方式绕过格式限制;
4.是否有上传空间的限制,是否可以超过空间所限制的大小;
5.上传0K的文件是否会导致异常错误;

6.上传是否有成功的判断,上传过程中中断,程序是否判断上传是否成功;

7.对于文件名中带有中文字符,特殊字符等的文件上传;

8.上传并不存在的文件是否会导致异常错误;

(4)  URL校验

1.某些需登录后或特殊用户才能进入的页面,是否可以通过直接输入URL的方式进入;
2.对于带参数的网址,恶意修改其参数(若为数字,则输入字母,或很大的数字,或输入特殊字符等),打开网址是否出错,是否可以非法进入某些页面;
3.搜索页面URL中含有关键字,输入html代码或JavaScript看是否在页面中显示或执行;

(5)  越权访问

在一个产品中,用户A通常只能够编辑自己的信息,他人的信息无法查看或者只能查看已有权限的部分,但是由于程序不校验用户的身份,A用户更改自己的id值就进入了B用户的主页,可以查看、修改B用户的信息,这种漏洞称之为越权漏洞。

举例:用户登录app成功,系统记录用户id,例如userid为1。

安全风险:此时用户通过工具校验发送消息将userid设置为2后是否登录成功,及用户是否可以通过修改userid来访问其它用户资源,引发严重问题。

(5)  防止SQL注入

①sql拼接:jdbc/obdc连接链接数据库

select * from userInfo where userId=1 

sql = sql + condition

②三方组件,比如java里面的hibernate,ibatis,jpa通过各种sql查询业务信息,甚至破坏系统表;

示例:在文件框中输入,在参数值中输入如下。

 (6)  跨站脚本攻击(XSS)

原理:利用XSS的攻击者进行攻击时会向页面插入恶意Script代码,当用户浏览该页面时,嵌入在页面里的Script代码会被执行,从而达到攻击用户的目的。同样会造成用户的认证信息被获取,仿冒用户登录,造成用户信息泄露等危害。

安全风险:文字中可以输入js脚本,例如<script src=‘wrong URL’></script>这种有安全性的脚本,其它用户进入后可以获取该用户的cookie信息,即可以对该用户资源进行操作。

示例:在输入框中输入,这些脚本如果有对应的反馈就是有问题。

 

 (7)  跨站请求伪造(CSRF)

CSRF是一种对网站的恶意利用,过伪装来自受信任用户的请求来利用受信任的网站。

举例:在APP上打开某个网站时,突然弹出您已经中奖的提示和链接。

安全风险:点开链接后会跳转到对应异常界面,并且用户本地信息可能已经被获取,如果在跳出界面进行相关操作,比如银行相关操作会引起更大的安全问题和严重损失。

安全防护:使用post,不使用get修改信息;验证码,所有表单的提交建议需要验证码;在表单中预先植入一些加密信息,验证请求是此表单发送。

3、总结

接口安全性测试用例与一般测试用例的区别如下。

相同点:基本的用例设计方法,参照相同的需求和业务;

不同点:不受界面限制,逻辑性更重,存在隐藏内容,特殊值更多,传输格式种类繁多。

感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接免费拿走:

① 2000多本软件测试电子书(主流和经典的书籍应该都有了)

② 软件测试/自动化测试标准库资料(最全中文版)

③ 项目源码(四五十个有趣且经典的练手项目及源码)

④ Python编程语言、API接口自动化测试、web自动化测试、App自动化测试(适合小白学习)


⑤ Python学习路线图(告别不入流的学习)

上图的资料 在我的QQ技术交流群里(技术交流和资源共享,广告进来腿给你打断)

可以自助拿走,群号953306497(备注“csdn111”)群里的免费资料都是笔者十多年测试生涯的精华。还有同行大神一起交流技术哦。

以上是关于学习游戏开发应该从哪些方面入手的主要内容,如果未能解决你的问题,请参考以下文章

我适合做游戏开发的哪个方面?

python学啥方面

用Unity3d开发游戏的优点有哪些

游戏开发都会学啥?

学游戏设计都要注意哪些问题?

从事游戏开发(程序)工作,要学哪些知识