近期面试,遇到遇到了两件事:

1、终于有TR问我3D数学相关的了,指导点和面的向量表达方式,怎么求点在面的距离,其实只要代入点的坐标n*Point+d就能求得点到面的距离,但是我都忘记点面关系了。至少明确一点,我必须要在3D开发和3D数学相关深化,决不能回到2D写UI的层次,要不然此次离职才是真正地亏大:钱又无(上线奖金),人又无(多出的个人时间不用来进步,狗都不愿意吃)
2、不是Set、不是Map(即不是红黑树和hash映射),而是deque。说句实话,目前而言,移动端也越过了内部瓶颈问题,可以明确地进入空间换时间的算法时代;但这不是我忘记deque的实现机制理由。我基本没在实际项目中使用过deque,不知道是怎么回事,我想不起需要使用它的场景;另一方面,list和map比vector带来更多的碎片问题可以考虑用deque来弥补,但是deque也不能有较好的增删性能,基于此发现list和deque一样具有较少的使用场景;也就是说,搞定vector、map(set)、unordered_map就实现container知识使用的80%。但是我们时常自己实现了map映射(map或vector)和数据区的存储(链表或vector),其实这个就是deque,但是有较好的增删改查性能。
现实是,我们只需要记住:来自侯捷《STL源码解析》
Deque系由一段一段的定量连续空间构成,一旦有必要在deque的前端和尾端增加新空间,便配置一段定量连续空间,串接在整个deque的头端或尾端。deque的最大任务,便是在这些分段的定量连续空间上,维护其整体连续的假象,并提供随机存取的接口,避开“重新配置,复制、释放”的轮回,代价则是复杂的迭代器架构。
基于deque从中间插入单个数据的较差性能,可以考虑实现插入一个mapNode,被存放插入新数据挤出来的旧数据缺不满足一个mapNode长度(即插入极少量数据不够一个MapNode的情况下),考虑使用单个mapNode来存储,并将结束点指引向下个MapNode。这要求插入或查找时处理断层空间问题。插入时逻辑问题不大:该下表的MapNode还有可存储空间,则进行小范围移动,若没有则申请新的MapNode实现上述逻辑的插入。查找时则丢失了原先的逻辑直接映射,但是问题不大,极限的情况下出现二倍长度问题:即每个满MapNode后面跟随一个仅存储一个数据元素的MapNode。要么进行类似于hash冲突系数的调整,要么进行最优和最次范围进行查找。普通的vector中进行二分法删除元素,变成在原先n的2倍空间进行查找,仅仅多了一次,效率上和旧的deque属于同个数量级,复杂度增加在于新数据结构模拟连续的逻辑处理方式。问题来了,这也散失了下标式直接索引的优势,需要额外记录断层空间的总量感觉上改了还不如不改。最后只能是KISS(keep it simple,stupid)。然后我就基本没用过deque了,希望面试时别问这个啦。
回到上次的问题,假如大家都不喜欢UI,怎么处理工作分配的问题?如何分配达到一个最高效率?
尔后,我突发奇想,假如将一个游戏的UI和Icon工作限制在一个游戏开发工作量的30%到40%左右,会怎么样?基于什么原因出现这个念头,首先美术同事们都不愿意画icon(特别是遇到出现修改icon材料的情况下),中级程序不喜欢弄UI,大家都觉得浪费自己的劳动力。我不喜欢听到某个老大说公司花钱请你来就是包括干这个,甚至主要干这个。好吧,好像曾经听到类似言论,我因没有绝对实力,没有去反驳,但进心里了——我一定要有绝对的技术实力不再写UI,如果拿着二三十K月薪写UI我也是醉了,权且当放假吧。故高级程序基本没可能再接触UI,除非主程任务分配及管理工作出现重大的失误。同理理解高级原画和主美。
当社会的人力成本越来越高时,游戏开发行业也会感受到社会的整体变迁。此时跟开题还没有绝对的相关性。
跳一下话题:下一款火热游戏类型是什么?卡牌?RPG?MMO?真正的卡牌具有极高的游戏性,基本说就算不再风靡,总有固定的用户群,不能因为游戏热风略过就认为其该进入历史。RPG和MMO,就是当前的东南风,差不多到中国二级阶梯——该停了,还没上市的项目组速度上线,圈点效益回来。下个时代,3D无疑,招聘市场上基本是unity3D,cocos不成气候(主要是2D失败率不低+3D底层开发不成熟+工具流相较差了一个级别,时间点2015年08月07日),不排除行业内的初级客户端人员饱和(#define 告诫 LOG(新手们或实力不够自信的朋友不要在当前节点离职,重要的事要说三遍) for(auto i = 0;i< 3;++i){告诫;})。
3D也有很多类型,不知道大家是否记得乱西游,可惜现在还没实现玩家间的多人对战,有移动设备和国内运营商瓶颈(流量真心贵,好吧大公司内部会有移动用户调查报告,为什么他们有,因为制作人一个手指头就可以把我这种级别小咖干掉),可能还有一点:网易自研多人即时性对战类产品不多,不排除即时对战的通信分支版本没能通过测试——我乱猜的,别打脸(求私信打脸)。LOL和Dota系列是仍是当下主流之一,但是有个明显的趋势:快节奏。然而设计大神们多次提速游戏数值,企图加快游戏正常的平衡崩溃(决出胜负),一场游戏的有效时长还是没能控制在25分钟内。
本身Dota类游戏就是基于碎片化时间的产物,很多有正常生活工作的玩家不能长时间投入于RPG形式的游戏(征途和传奇的怀旧系列大卖就明白了有多少玩家回笼了)。虽然结果上大部分玩家触发类Dota的海洛因模式,投入更多更长的时长于游戏时间(基本不比RPG少,如果当年不是我哥在网吧当着我面把我冒险岛online的装备全部丢掉,可能我也会在RPG的死循环中沦陷了)。但是RPG类游戏不停地构建一个个“斯金纳盒”让玩家不停地点击——这个和类dota玩家不断的开始新的一局游戏一样。实际因素和结果会有差别,行为都属于斯金纳盒行为方式,大部分玩家赢够了都会去休息,而人与人的对战总是少于50%的人获得胜利的快感,类dota玩家会在不停地进行50%淘汰在线(即实现下线行为),这点比PRG玩家无法控制自己的下线时间好多了。最后有一部分玩家掉进50%无限循环中,可能触发删游戏或催死还有可能叫个外卖,和新上线的玩家重新开始新一轮的游戏成为获得胜利快感的50%玩家。这里注意到一点,类Dota玩家同时也养成了不断上线的“斯金纳盒”中老鼠不停按钮的行为。最后都变成不停地吸食“电子海洛因”。LOL的低门槛为这场“毒party”构建了一个更大数量即的基数去计算1/2的n次方,点个赞。
好了重点无非是说明,碎片化时间一直是主流,游戏必须在碎片化时间中开展。这样子就出现了几个流派:
RPG派:硬生生地培养玩家碎片化行为连续性行为。对玩家的生活和工作经常产生极其负面的影响,但是收益比最高——目前来看,中国的游戏厂商大多数是靠这个起家的,未能确认是时代因素还是游戏类型因素。
类Dota派:培养固定长度的碎片化行为,从而形成固定周期习惯,保证玩家的有效生命——长期弱化玩家的正常物理活动,封闭社交圈停留在玩家与玩家之间,造成伤害可以使永久性的。不知道是不是我自己的问题,我试过在RPG类型游戏中和其他玩家有其他社交延伸,但是在类Dota中没长期与一个陌生玩家交互过。线下真人从陌生到熟悉不算。
家机等存档派(还没完全诞生):得看游戏类型,单机读档也会成为上个PC单机时代(据说被破解和外挂毁了),比如家机联网了,然后开发个RPG扔在上面,好吧,家机和移动端版迭代完PC端的历程?这倒不会吧,单机有其魅力,大型制作厂商不会有较大的改变行为——暴雪都出移动端游戏了,我预测不了任何事物,我就是个软件工程师,未来会偶尔侃侃数学和物理学、计算机几何学。
如何发挥玩家的碎片化时间产生运营效益?要么如上述般培养用户习惯(忽然发现微博、知乎、外卖、打车软件等都TM是同个逻辑导出的产物,太恐怖了!!!个人行为完全被控制了,幸好我有时间思考了这个问题),要么用休闲轻游戏:这些就不说了,真的很多,而且我基本不熟,我定位是游戏引擎方向,轻休闲类的技术目前就物理引擎是我感兴趣的,其他的UI类“斯金纳盒”开发工作是我从业的噩梦。我害怕在这场厂商的赚钱美梦中沉沦,害怕没有实力去引导身边的工作流,我害怕被雇佣来写UI。
回到原题的某个节点:游戏类型最热将为类Dota。而我能在这场狂欢中出任程序组的什么角色——3D逻辑开发(技能等,场景管理相关问题思考过好多次,锁视角是目前我能直接用的结果,八叉树或个人思考的方体排序均未实现出来),简单shader,寻路(我的寻路仍未完成主干道法和网格导航,但是圆形版的算法可以给出,作为项目的启动模块),物理引擎的使用这块真心不够,多边形相交的原理我都还没学会,怎么感觉这个和导航网格中类似的计算多边形约束有知识重叠。可能我要学学python暂时写基本的UI编辑器、场景编辑器、粒子编辑器等。能力出现真空范畴,如上面推测网易团队的问题:多人即时关键帧数据同步模型,仅在知乎收藏层次。
再跳回上层话题,人力成本高,需要管理好人的生产力就要处理各种角色之间的矛盾冲突。所以,程序和美术的黑洞:UI和Icon应该控制在一定比例下。而卡牌类游戏的可玩性完全依赖于策划思维的独创性——说实话,想出来大多数都会被全屏copy,投资这些思维还不如投资技术壁垒,比如育碧的IK算法应用于自己的开发团队中(好吧,国内估计没几个会的,所以才是壁垒)、实际点的如3D逻辑实现、物理碰撞、即时网络对战同步、场景资源管理、内存以及效率优化、工具流(unity3D没这个问题,这就是它的优势)等。将程序和美术的工作核心调整至可玩性之后,策划这边就要认真的构建世界观工程以及玩法核心不能停留在点UI上了。这点结局可能促使策划入行门槛瞬间提高——好吧,我对策划工作不熟悉,连个excel都是更多在于浏览而非操作。
问题来了,哪个制作人会乐意将一个游戏的UI和Icon工作限制在一个游戏开发工作量的30%到40%左右?毕竟付费界面是UI写。所以我的方向应该是将技术难点逐个突破,提供技术支持保证,这样子我的意见会被极大地采纳。甚至是由我来引导游戏世界观的构造——把UI的比重限制了,只能在沙盒红构建更有吸引力的元素来提高游戏的可玩性。
曾经有人说他的一生注定是抗争的一生。这样子是很奋发,但也太累了,我应该学会在一个友好的环境中低头,而不是将抗争性带入新的环境里面。要时刻记住不能被依赖性和逆反性影响自己的行为,做综合性方向决定是要全面考虑相关的影响因素,做取舍决定时应该剔除环境因素的影响,接着假设完成取舍后,有较低比重的负面环境因素导致取舍结果期望值较低,这个时候应该考虑地是如何避免被负面的环境因素影响,而不是被负面的环境因素决定其他个体的取舍。
一旦决定了就不可以后悔,坚定地走下去!只有开朗阳光的人才能保证绝佳的创造力。

(类dota其实就是现在的MOBA,至今没拿到offer,难道是入职时间填错了)

出来行,迟早是要还的(篇六):衣带渐宽终不悔相关推荐

  1. 出来行迟早是要还的(篇四):游戏开发离职日志和面试日志

    1.当时无心写UI,大部分时间用来实现技能和AI,谁知UI的需求演化成为压死我的最后一根稻草--因为主管们一致认为可展示的UI具有最高的优先权,或者说当时主程只希望我能完整实现UI的大大小小需求,给一 ...

  2. 匹马行天下之思维决定高度篇——编程“价”更高

    匹马行天下之思维决定高度篇--编程"价"更高 ----也许我注定成不了一个伟大的人,但是至少我可以做一个很棒的自己.我想我现在应该做的不是瞻前顾后,而是活在当下,正确认知自己,做好 ...

  3. 匹马行天下之思维决定高度篇——教你如何爱上“编程妹子”

    "天上掉下个林妹妹 似一朵轻云刚出岫 只道他腹内草莽人轻浮 却原来骨格清奇非俗流 娴静犹如花照水 行动好比风扶柳 眉梢眼角藏秀气 声音笑貌露温柔 眼前分明外来客 心底却似旧时友" ...

  4. Linux 命令行的艺术,看这篇文章就对了!

    点击上方 "程序员小乐"关注公众号, 星标或置顶一起成长 每天凌晨00点00分, 第一时间与你相约 每日英文 Sometimes we want things to be diff ...

  5. 《跨界杂谈》华为印象(六):在华为混,迟早是要还的

    题目摘自内部一篇博客,一位老员工对新员工的告诫语,原话是:"工作认真点,在华为混(日子),迟早是要还的." 三本书 为了写这一题目,特意买了本<以奋斗者为本>" ...

  6. 如何给table表格的tr行加border边框(解决篇)

    文章目录 一.如何给table表格的tr行加border边框 二.样式 bug - 截图示下 三.解决办法: 四.关于属性 `border-collapse`的取值.解析 一.如何给table表格的t ...

  7. 0基础学原画多久入行?看看你还差什么?

    0基础学原画多久入行?看看你还差什么?许多人认为学习原画的必要因素不是零基础,滴水石穿,基础是历练出来的,学习的自制力也是很重要的,能不能在零基础的情况下学习原画,要看你有没有学习的决心. 学习原画的 ...

  8. amd860k能装黑苹果吗_黑苹果配置 篇六:黑苹果硬件选购指南之终篇--2019年8月

    黑苹果配置 篇六:黑苹果硬件选购指南之终篇--2019年8月 2019-08-17 17:31:38 26点赞 238收藏 33评论 你是AMD Yes党?还是intel和NVIDIA的忠实簇拥呢?最 ...

  9. 米兔积木机器人电机是腿吗_这些年给孩子买的东西 篇六:米兔积木机器人开箱晒单...

    这些年给孩子买的东西 篇六:米兔积木机器人开箱晒单 2020-02-26 17:24:43 1点赞 4收藏 3评论 小米儿童玩具积木机器人智能拼搭智能遥控多变造型模块化编程教育早教益智米兔智能机器人履 ...

  10. android 天气 小众软件,杂货铺 篇六:习惯了手机自带的日历天气类App,来点新鲜感?这些App美到令人窒息!...

    杂货铺 篇六:习惯了手机自带的日历天气类App,来点新鲜感?这些App美到令人窒息! 2019-01-26 18:18:27 4点赞 8收藏 1评论 习惯了手机自带的日历天气类App,来点新鲜感?这些 ...

最新文章

  1. linux设备:初始化
  2. 不同系统下的shell的不同_不同论文检测系统有哪些区别?
  3. MySQL(10)数据库实现高可用架构之MHA
  4. Spring 整合 RocketMQ
  5. 逾期之后还能贷款吗?
  6. 接力,智能指针也麻烦
  7. 【BZOJ1001】狼抓兔子,平面图转对偶图(从最小割到最短路)
  8. 华为P50E全方位曝光:延续P50设计 换装骁龙778G 4G芯片
  9. PTA: 6-5 删除单链表偶数节点 (20 分)
  10. 计算机专业数学建模结课论文,数学建模论文范文2篇
  11. java简历专业技能,附详细答案解析
  12. 《HarmonyOS开发 - 小凌派-RK2206开发笔记》第1章 开发环境搭建
  13. matlab 仿真步长,[转载]matlab 仿真步长设置
  14. 赵鑫:强化学习在京东广告序列推荐中的应用
  15. Hbuilder链接逍遥模拟器
  16. ベルベット / 贝姐
  17. 微信小程序picket绑定数组对象
  18. 虚拟服务器中毒,虚拟机中毒会影响主机吗
  19. 保姆级 Java 后端线上问题排查常用命令收藏
  20. 建设智慧城市的十大反思

热门文章

  1. openstack框架搭建云计算平台和各组件运维内容包括mysql、keyston、Glance、Nova、Neutron、Dashboard、Heat、Trove、Ceilometer运维
  2. Ubuntu 下yuma源码安装
  3. win2003下php环境搭建,win2003下搭建PHP环境教程(上) | 网络菜鸟学习园地
  4. 用C语言实现将1个整数n分解成几个素数的乘积
  5. 【PS4开发】unity3d ps4手柄键位
  6. word题注格式(从每章开始,如:图1-1、图2-1)
  7. 简易漫画网站搭建-漫画喵Server版
  8. matlab 召回率,查准率、召回率、敏感性、特異性和F1-score的計算及Matlab實現
  9. tiny4412 裸机程序 六、重定位代码到IRAM+0x8000【转】
  10. (翻译)表单中应使用文本域输入地址的原因