为什么做游戏开发要学习C

<专注网络游戏工作室赚钱项目攻略!
当前位置: &#62;&#62;
&#62;&#62; 正文
日 17:12:25&&分类: 游戏工作室建立
关注NBE好长一段时间了。看到前一段时间,有一个游戏辅助作者同行发的连载系列文章《》,真得是深有感触,所谓外行看热闹,内行看门道,看看评论,有人说他是在吹牛逼,有人说他是靠自己想象力天马行空乱写,我也只能是“微微一笑”呵呵!因为我也算是个外行!今天,我也来分享一下写的点滴历程,是微微一笑,还是呵呵,都无怕所谓了。对于游戏辅助行业而言,我属于“外行”。我本身算得上比较“老”的一代程序员了,赶上了2000年互联网泡沫的尾声。在学校的时候就喜欢搞一点黑客、破解什么的,但仅仅是出于兴趣爱好。毕业之后,一直从事软件开发相关的工作,做过网络游戏,开过互联网公司,眨眼间,在软件行业里面混了十几年了。兴趣原因,经常混迹于当时的看雪学院、小榕软件、绿盟论坛等,膜拜各路大神的时候,也在默默的积累技术。最早准备写辅助是当时玩完美的游戏,完美世界、诛仙之类的网游。现在的游戏辅助基本框架也都是在那个时候积累下来的。因为搞传统软件研发养成的习惯,辅助框架写的质量还算可以,并且文档什么的也比较规范,算是给现在的工作打下了比较好的基础,很多东西都可以重用。当时有一个本地的游戏工作室想让我给他们专职做辅助,但是考虑到种种因素,没有答应,后来辅助的开发进度也一拖再拖,最后也逐渐不好意思和他们联系了。再后来,工作越来越忙,也就把这个事情放下了。再后来,朋友的朋友找到我,希望给他开发辅助,当时有一搭没一搭的聊,因为自身收入还不错,所以也就没有很上心。再后来,碍于朋友的面子,加上对方一催再催,只好答应对方。对方是一个不算大的网络游戏工作室,大约有60台E3+32G电脑主机,在当时算是不错的配置了。游戏工作室老板A是一个非常聪明能干的小伙子。A从辅助代理商人那里买的游戏辅助,但是因为游戏工作室不大,所以价格、服务等方面都不能让A满意。因为很久不碰辅助的东西了,并且当时要做的游戏J3我也没有玩过,所以我让A给我了一份他正在用的辅助。经过分析之后,感觉能做,于是开始动工。当时的J3是有宏接口的,并且出金思路主要围绕试炼副本和帮会钓鱼,所以核心功能很容易就完成了,先让A跑起来。在当时,J3已经是被很多游戏工作室称为夕阳游戏了,开服时间太长了,但是A认为,J3是点卡游戏,生命周期本身就会相对较长,并且,如果出金思路正确,可以在做上至少1年。现在看,当时A的思路是非常正确的,因为,现在已经过去了一年半多了,他们依然还在围绕J3做。核心跑起来之后,游戏工作室需要大量的人工去看机器,并且,因为J3自身的优化的问题,单机的多开受到了极大的限制。围绕人工问题,我又制作了控制台,可以同时监控本机各个窗口的角色、等级、状态、红蓝、地图/位置、背包、金钱、体、精、帮贡等一系列信息,这样,游戏工作室员工只需要看一眼控制台,就可以了解本机的所有窗口的挂机情况。围绕效率问题,我彻底修改了挂机方式,通过降低渲染帧数的方式,把帧数降低到了30秒一帧,基本上算是解决了CPU占用过高的问题。基本上前面提到的E3机器可以开48开没有什么压力。这次的修改大约陆陆续续用了我半年的时间。至此,辅助的整体框架已经和最初的设计天差地别了。最初仅仅是要制作一个简单的插件,通过修改游戏客户端的资源包加载到客户端就可以了。但是现在,已经变成了一个主控台,通过主控台自动批量启动、自动登录,支持卡位报警、能够运行自定义脚本、能够定时运行命令、能够定时关闭客户端(每周1周4停服维护),然后针对客户端能够进行锁屏,能够进行游戏内自定义脚本调试、录制等等等等……一切看上去那么美好,我都深深的为自己的伟大创举而内牛满面……然而,2014年暑假期间,相信做J3的朋友都不会忘记,J3开始大面积封停。那段时间,基本上起一批封一批,起了就封、再起再封。A和他朋友的游戏工作室损失惨重。那段时间也恰巧碰上我的工作也很忙,只能晚上熬夜调试,找问题、找方案。基本上那段时间每天只能睡三四个小时,其余的时间,要么做公司的事情,要么在调试辅助。整整2个月的时间,处于崩溃的边缘。因为严重睡眠不足,上下班路上开车,半个月三次事故,其中有两次发生在4天内,也就是刚从4S店把车提出来的第二天,就又来了一次事故。所幸都是刮擦和追尾事故,也没有碰上对方是豪车,前后两个保险杠都换过了,喷漆也免不了。期间,不止一次想要放弃,毕竟自己的工作收入也不错,加上这么多年的打拼,也算是衣食无忧了,真没有必要这么拼命了。然而,A和他朋友的游戏工作室已经都切换到了我的辅助,我有退路,他们却没有退路。思量再三,只能坚持。终于,通过分析客户端和网络封包,找到了J3上报的检测数据,找到了规则,就很简单了,APIHook,把异常部分跳过去就OK了,对于无法跳过的规则,简单粗暴的重启客户端重登录即可,毕竟无法处理的几率比较低,好几天才能碰到一次。终于,经过几次调整之后,总算是稳定了。美美的睡了两三个周之后,问题又来了,J3又开始进行无节操的封停了。检查之后发现,客户端的检测规则没有变化,那么问题只能是出在服务器端了。因为在座APIHook的时候,我已经对本机硬件序列号、MAC地址、局域网IP等信息都做了处理,那么服务器端能够检测的只能是公网IP了,应该是通过类似于对网吧IP段做白名单,个人的同一个IP如果同时登录的客户端过多的话,就会进入封停判定。我让A去尝试同IP登录上限,同时开始考虑应对方案。因为A的机器前边是48开或者多的挂到50开,而Windows自身又没有机制能够对多个网卡进行可定制的分流,所以这个多IP的方案又让我犯了难……考虑再三,我让A直接使用市面上的IP代理软件先跑起来。跑了大概有2个周的时候,A告诉我,还会有封停。初步考虑IP代理可能会一个IP卖给多个游戏工作室,从而导致封停问题。至此,没有退路和借口的我又开始了漫漫的熬夜的日子。其实解决方案倒也简单,我自制了个路由器的ROM,让路由器充当代理服务器,然后在本地使用LSP劫持了通讯的函数,通过自己写的代理客户端完成通讯,通讯时按照配置选取通过那个代理服务器通讯。虽然各种不完美,但总算是能够稳定的跑起来了。测试没有问题之后,A和他的朋友们开始批量采购定制的路由,批量拉网线。据说光A自己就新增了近600条网线。A的游戏工作室规模越来越大,管理也越来越复杂。在完成了定制路由之后,休息了没几天的我又被A要求想办法降低人工。没办法,顾客就是上帝……于是,我又制作了网络控制台,可以监控多台机器上的角色,同时能够进行一些简单的维护工作,像重启客户端、发送命令什么的都可以在网络控制台上。又是一个多月的熬夜,终于算是稳定运行了。至此,A的160多台机器,只需要3个员工就可以轻松维护,时不时还能休个假、聚个餐什么的。而我,因为长时间的熬夜,身体被严重透支,头晕、耳鸣、神经衰弱,腰椎和颈椎也都出现了问题。严重的一次,左手拿了一杯水,硬生生的给抖的洒了一地,死活没法送到嘴里。当时正好快年底了,从公司请了年假,带着老婆孩子省内逛了一圈,玩了大概半个月,身体才逐渐好了一点。休整回来后,陆陆续续完善了一些功能。像11月份更新后出售需要确认、4月份版本更新后神行的过图问题等等,都是一些小的调整。比较大的改动是做了自动合成萤石的功能,后来合成萤石不需要跑洗炼台了,辛辛苦苦做的半仙罗盘、试炼台寻路什么的也就都没有什么用处了。运行到今年,刚过春节,A又找到我,说出金效率随着金价的降低,需要调整了,否则游戏工作室开始没有利润了。于是乎,又一次开启熬夜模式,比较凑巧的是,公司也恰好在这时开始一个重要项目的合作,前期的准备工作交给我来完成。熬夜,熬夜再熬夜……经过把试炼和钓鱼功能完全推翻重写,终于能够做到5000分装备的号平均4分30秒左右试炼通过,全部用来打试炼的话,每天大概能打330封到350封信,配合每晚的钓鱼活动,只需要极少量的副本就能把精力完全消耗光。就在前几天,新版本更新后五行石合成界面变了,不能合成五行石了,又进行了简单的调整。林林总总,也算是在游戏辅助这个圈子里做了几年了。这是一个严重透支体力精力的工作。在这几年里,身体每况愈下,到现在已经算得上是浑身是病了。如果按照投入产出比来说的话,也没有大家想象的那么划算。我现在的工作,每年能拿个小20万,加上年底分红,也能有个10几20万吧,并且基本上每年都能够上一个台阶。而写游戏辅助,付出的要比工作更多,虽然看上去一年也能有个几十万的收入,但是真的是太累太累了。我有的时候就在想,如果我拿写游戏辅助的这些精力放在工作上,或者再重新创业,应该不会比现在做辅助收益少。但是无奈,上了这条船,游戏工作室一帮人还在指望着我,只能再坚持一段时间了。大约2个月前,我也和A也进行了一次长聊,虽然没有直接说不想开新项目了,但我告诉他,应该考虑一下双项目并行,不要把宝全押在J3上面了,我真的累了。我估计J3再做1年应该没有大问题,但是,J3结束之后,我不想再继续写辅助了。毕竟也老大不小了,体力和精力都跟不上了,游戏辅助这个行业还是年轻人的天下。对于想入行的,在NBE徘徊的年轻人,我想说,这个行业其实没有那么难,同时也没有那么美好。技术层面如果要开发精品的话,还是得靠C/C++来支撑。如果是需要赶暴利期的话,那就随意了,什么开发快用什么,像什么E语言什么的,虽然我没有学过,但是可以肯定它学起来很容易。入门很简单,网上有大批的教程。,还是需要有比较全面的知识的。比如常见的系统API什么的,肯定是要熟悉的,而如果是注入式的内挂的话,各种注入方式、各种Hook技术也是必须要会的。比如,我的这个辅助,算不上完美、也算不上强大,里面用到的技术我简单的把想到的罗列一下:一套自己的网络框架,能够处理客户端和控制台之间的各种消息通讯,同时也用在了单机控制台和网络控制台之间的通讯上;一套自己的Hook引擎,用于在关键点挂接,比如帧数优化、反和谐等。这里面采用的方式有Jmp跳转方式的inline-hook、调试中断(包括int3中断和硬件中断),其他的还有内存访问中断等;为了配合上下文信息的获取,还有调用堆栈的处理等;一套自己的DLL加载器,通过DLL加载器,彻底隐藏注入的DLL,避免被扫描到;一套自己的资源打包、解包管理,将一些文本、脚本等文件进行打包处理,提高破解门槛;一套自己的特征码扫描引擎,能够根据特征码自动扫描出exe和dll里面的基址、偏移等信息,减少游戏新版本更新后的基址查找工作量。通过它,我基本上能够做到开服前更新基址;一套自己实现的socket代理客户端,能够改变制定进程的网络访问路径;一套基于lua语言的脚本引擎,能够解析并执行自定义命令及其参数,带有分支、循环等特性,同时能够自定义变量、自定义函数等;暂时就想到这些,有的内容写的时间也比较久远了,很多东西都需要翻文档或者代码才能想起来了。如果有别的出路的话,先考虑去工作吧,这个行业的艰辛超过你的想象。虽然我走的算是一路顺风顺水,但是这些和A的支持、天时地利都分不开。不要小看一个简单的辅助软件。要知道辅助对于Bug的容忍度要远远低于普通的项目软件。要知道,一旦游戏辅助商业化之后,同时运行的数量和持续时间,都远远大于普通的商业软件。正是因为长时间、大批量的运行,程序的任何缺陷都会被放大。比如试炼中的推石头关卡,有百分之一的几率会失败,那么,在A的游戏工作室里面160台机器同时运行,就相当于同时运行7000多个窗口,每个窗口每天大约通关320次,其中推石头关卡出现的几率是4/9,也就是所有的机器里面推石头关卡会出现近100万次,失败大约1万次,如果每次失败增加通关时间2.5分钟的话,相当于为整个游戏工作室浪费了25000分钟,这相当于单号打试炼通关5500次,游戏工作室的利润,就这么被浪费了。可能会有童鞋质疑,比如J3能不能做,能做的话利润太低什么的,做过童鞋的可以帮我回应一下,我没有做过游戏工作室,没有概念。我只能给出几个基本的数据:钓鱼进行了加速,基本上鱼儿上钩那个消息一到,就开始了下一次甩杆动作了,省掉了收杆动作,具体的钓鱼次数我没有统计;试炼之地只打第一层,4500分装备大约4分40秒,5000分装备大约4分30秒,6000分装备大约4分20秒,这都是比较保守的数字;每条网线跑8个窗口,A那边的网费比较便宜,每条线每个月30左右;游戏工作室需要员工3人,加上A自己出货交易;基本上能够做到平价炼号,不赚不亏(脚本+满级号组队带,有工具配合);声明:我不卖辅助,不带队,不收徒弟,我只是一个外行游戏辅助外挂作者,今天与各位写辅助的同行分享一下自己的经历而已。身心俱疲,前言不搭后语,见谅。就说这些吧,诸君见仁见智,有意见使劲拍砖。相关阅读:
此文&&原创,转载请注明地址:
标签:&&&&&&
昵称(必填)
记住我,下次回复时不用重新输入个人信息
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。
Post: 2:50:18
这位朋友,真是佩服的很,我是个刚玩挂的,什么也不懂,连挂都不会设置,能帮我设置个G吗,我出钱
Post: 14:49:08
服了,都所到这份上了,一年才赚几十万。。。。
Post: 11:39:29
这个不是说不是谁的学生然后就全灯灭咯吗
Post: 9:16:44
Post: 1:15:42
本人急找一位会开发网页游戏辅助的大神
有意者请联系QQ
Post: 17:51:21
落后的技术了,现在这些bug都被游戏公司处理了,不实用了,不赚钱了,我现在搞LOL感觉还可以,就是睡眠少,每天睡三-四个小时,已经连续两年了,除了发现头晕,开车出过两次事故,其他的都还行,关键是要吃得好,我每天熬夜都吃牛排补充能量。学学我吧。
Post: 12:28:33
我现在在学游戏开发,这东西真的难,你学那么精,真的佩服,不过既然不收徒,也就罢手好了,留个QQ:,希望能够交流吧。
Post: 11:42:36
C+++技术指导 qq
Post: 18:18:00
唉,作者的确好累人,感觉新东西怎么学都不够,问题怎么处理都有,。。。
Post: 1:27:56
Post: 1:27:29
我想做徒弟,因为命运
Post: 11:09:11
作者还在吗 在的话联系我下 QQ 可以让你赚更多的钱
Post: 19:49:13
我是个苦逼的人,有一份低薪的工作,有几台机器挂点游戏补贴家用,每天承担着家庭的运行,希望大神带我飞。QQ
Post: 0:21:19
我也是做剑网3的 希望能用上你的辅助软件 现在外面的封号都太厉害了 QQ
Post: 19:52:10
可以加QQ,帮做个网游辅助吗?
Post: 11:48:40
作者能和我联系下吗?我的QQ,我可以让你干得更少,但赚得比以前更多更多
Post: 2:15:34
哎!你这样搞不累死才怪。现在我认识的搞游戏辅助的,很多都很少去搞端游了。基本页游。而且BUG好找。甚至很变态!
Post: 7:27:22
做这行的确很累.我也是一个团队里的,负责游戏内容的收集,数据记录和LUA的编写测试.几百个任务 几百个NPC ,记录的人都傻了.有空加个Q聊聊天吹吹牛
Post: 0:17:28
能教教小弟不
Post: 15:28:55
的确是这样, 那些代理, 感觉WG作者是神,
满面都是泪啊!
但是感觉你分成要的不高啊,
下面是对于
其他人说想学外挂的人说的,
比这个更废时间 WG
但是要学的东西
比正规编程 要学的东西多很多
Post: 17:51:34
如果这一行有一天会被定为非法,那必定是有你在添砖加瓦。在游戏公司眼里已经是非法的了。
Post: 13:53:23
我算是接触比较晚的,13年开始接触按键,后来学e,后来c++,现在c#,好吧,我都感觉自己有点不务正业了,然而到现在什么都没学精 (哭丧脸
Post: 17:23:17
你学这么多语言,何必?精一门就够赚钱了。我计算机专业毕业,去年下半年开始接触辅助,一直写易语言,感觉还可以。现在开发半内存辅助。至于C++,过两年再说吧。
Post: 16:18:13
亲,你开发的是哪些游戏的辅助啊,我也想投入辅助开发,求QQ交流学习
Post: 1:02:55
求拜师,嘿嘿。
Post: 1:03:09
Post: 16:33:53
大兄弟,我也用C#写 加个QQ 以后交流下
Post: 13:50:52
我靠这还叫外行.......你让更多的弱b情何以堪..不过作者的框架这个说法值得我学习,我也得弄一个便于自己开发其他游戏辅助
Post: 12:04:35
现在正在搞jx3,发现用到的技术70%的相似,但是我不会优化,这是软肋,羡慕大神
Post: 20:57:25
这才是真大神
Post: 20:28:14
难得一见的好文章,不做作,说的都是实话,羡慕技术帝!
Post: 20:03:22
这么牛逼的作者,还是外行,你让那些按键精灵的作者们情何以堪?
Post: 14:52:25
按键精灵怎么你了!哈哈!
【相关文章】 18:52:41 17:21:22 17:41:10 18:0:40 12:9:7 17:8:8 19:43:45 17:5:31 17:25:58 10:35:19
站内搜索_游戏工作室项目
网游工作室_猜你喜欢
网游工作室_最热文章
备案号: 辽ICP备号-1
【NBE游戏工作室】我们一直被采集,但从未被超越!和NBE一起做吧。痛,并快乐着!!!俺是一个刚刚学会用C语言编程的入门者想在手机游戏开发方面有所发展,请问接下来该做什么。
微信公众账号ZOL问答堂
关注微信,随时随地解答您的疑惑
ZOL问答堂官方微博@ZOL问答堂
关注成功!该问题被回答后,将给您发送站内短信。
您也可以通过关注问答堂微信,及时获得您关注问题的回答。
微信关注问题方法“”Unity3D游戏开发入门教程
授课讲师:
软件版本:
Unity3D 4.2英文版
教程程度:
所需基础:
C语言基础或其他编程基础
交流提问:
适合人群:
游戏开发爱好者
相关素材:
课程光盘:
2817 309795 164538 235959 163347 115212 100218 110542 99152 75675 65139 50320 74508 96968 51073 44108 41238 39138 40899 39107 35670 37756 43873 33255 24141 24877 31009 35132 29696 31584
论坛最新主题
您可能感兴趣的课程
针对全国计算机等级考试二级的一套精品视频教程
access是一套关联式数据管理系统,存储方式简单、界面友好、易操作。
通过太空射击游戏等案例设计过程,使学员掌握程序设计技巧和方法。
塔防类3D游戏开发过程入手,学习资源整合,程序设计并最终发布游戏。
赞助商链接
兴趣圈成员为什么游戏引擎大多选择使用 C++ 而不是&C 开发?
&#xe614;博客专家
为什么游戏引擎大多选择使用 C++ 而不是&C 开发?
作者:crazybie链接:/question//answer/来源:知乎著作权归作者所有,转载请联系作者获得授权。在育碧干这么些年,我也来顺便说一下。先说说几个案例吧1 id soft是业界知名的游戏先驱,在前几代游戏开发上几乎全部都是纯C(doom系列等等),卡尔马克是3D图形界响当当的明星。最近几代也开始转C++。他的回答是,C++是很容易写出丑陋的代码,但是C++用的好的话能写出更漂亮的代码。2 开源软件的基石GCC编译器从3.2左右开始转C++实现。转之前的状态已经是用尽各种技巧,代码非常复杂,普通开发人员难以方便的贡献代码,整体进度很缓慢的程度。他们选择C++的理由是,C++能让代码更干净,可读性和维护性更好。Clang编译器一开始就是用C++开发。3 linus骂C++大家都知道吧。其实人家骂是因为当时C++编译器很不成熟生成的代码不适合跑操作系统。人家后来是站出来澄清过。前段时间做git客户端他还是选了C++和qt。这几个例子其实说明一点: 代码可维护性上,好的C++代码是远远大于好的C代码的,C++代码可以更干净。 因为C语言真的很优秀,跨平台,速度快,工业化就这几点这从它开始诞生到现在就没有对手,唯一比较弱的就是语言表达能力不是很强,而这一点其实跟其他几点是有些互斥的。C++正是为弥补这一点诞生的,目前也只有C++做到了相对C几乎无损耗的高抽象能力,而且还能保持C的所有特点(当然同时也引入了很多问题), 而这也注定成为C++语言复杂的原因。 简单的说,只要适合C但是又需要更好的维护性的时候,C++就很适合。为什么以前都是C做游戏:1 其实以前C编译器也不行的,都用汇编2 规模小重用需求不高3 速度快,简单,好普及现在为什么还用C做游戏的部分组件:1 因为规模不大2 C有统一的二进制接口(ABI)3 对于简单的任务C更简单直白现在为什么很多时候也避免用C++1 太复杂容易用错2 代码组织不好的话,编译慢迭代慢3 不够动态4 底层特性太多,不够安全为什么育碧之类的大公司依然坚定的用C++1 工业化好:上中下游都直接首先支持C++,民间普及度也高2 可以手动控制各种细节,优化的空间非常大。同样的游戏,肯定优先选更流畅逼真的,人永远是视觉动物。3 可以更好的团队开发所以相对这几点他的缺点其实也不算啥了。说到底其实只是一种交换而已。
查看原文:
我的热门文章
即使是一小步也想与你分享

我要回帖

 

随机推荐