2016总结

2023-05-16

欲言又止:
每年的年终总结是要在新年之前发表在博客上,今年的年终总结拖到现在完成,我也是服自己。这里要感谢我的高中好友@万学清同学,在我去年微信发表的有关年终总结的朋友圈下,催促我完成2016的总结。先前写博客,写总结更多是希望其他人了解自己,希望自己写的文章有更多的访问量和评价。随着时间的洗礼,逐渐的明白了,博客主要是写给自己看的,对自身日常所思所想,以及一些常用资料的记录。为啥博客写的少了,一方面发现自己想写的东西,网上已经有了更好的。另一方面就是懒,对自己的所思所想,以及收集到的好文章都放到Evernote,并没有二次加工分享出来。但我认为写作和分享本身是另外一种高质量的思考和学习。
创业维艰:
当前岁月最重要的事情就是工作了。从2014年的年度总结里就提到我在开发一款叫《山口山战记》的手游。在2016年终于开花结果,虽然说在金钱上几乎没有大的回报,但是在游戏群,贴吧,看到玩家在游戏里获取到的乐趣,是开发人员最开心不过的事情。
游戏在开发中并不是一帆风顺,项目组走了很多弯路。在刚测试的时候我们服务器使用的缓存组件memcache丢失数据,导致游戏在首次测试的时候,出现过玩家丢档,玩家数据错乱情况。后来在@贺老板的努力下,服务器最大的隐患解决了。还记着当时为了排查这个问题,构造了很多测试用例去查找这个问题。最后问题定位在连接池这块。通过此事,对于第三方组件我的理解改变了。虽说现成模块可以快速实现原型,但对于这种商业级的项目,还是需要对整个项目用到的边边角角有深入理解,在开发中多一份安心,才可以发挥的游刃有余。
2016的农历年我没有回家过年,当时很重要的一个因素是因为游戏需要开发服务器计算模块,这个事情的难度在于给相同的参数,服务器和客户端必须计算完全一致。在立项的时候并没有这种需求。由于我们的服务器端是python写的。我和@小黄同学商量后,认为用python写,服务器好部署一些,正好那段时间学习了python,也想练练手,于是我就将客户端技能逻辑用python 重写了一遍,@小黄同学负责将战斗逻辑移植过来。一切看似非常顺利,当整个功能完成之后,到测试阶段,发现计算结果很不准。分析原因如下:
1、我们自己并没有Unity的源码,所以很多Unity API 函数和我们自己实现的函数,计算结果不一致。
2、跨平台浮点数问题,由于不同的硬件,操作系统,编程语言,计算结果会有差异
3、两边代码不一致,客户端和服务器不共用代码,有遗漏
4、编程语言之间的差异。例如我们遇到的一个问题关于角色谁先释放技能。实现方式是通过英雄和敌人的距离判断,当两个角色距离敌人的距离相同,这时通过距离排序就非常危险,因为对于这种情况不进行特殊处理,不同语言的排序函数给出的结果也不一样。
后来一狠心将这部分模块的代码全部删除。分析讨论得出结论,服务器和客户端共用代码才是正道。一开始我们想用windows服务器来单独跑这个服务,直接用Unity编译出Windows版本就好了,可现实很残酷。Unity编译出来的版本必然对图形显卡有最低的要求,通过和运维同学沟通,知道没有服务器提供带显卡的服务器,这个想法只能搁置了。看来还是要做代码和显示分离,当时项目并没有这样的需求,所以渲染层的抽象程度不是很高。方向定好了,就开始实现。在解决完多线程操作数据导致的bug,浮点数这些问题后,项目中最难的事情算是解决了。这个模块的实现也没有让我们失望,很多玩家玩的很开心。
五月六日,《山口山战记》正式上线。由于是正式上线版本,我特意将版本号调到了,1.0.36,这也算这款产品的小故事。当日上线的是收费榜,很快游戏就窜到了第一名,当天收入据说是破了龙图所有产品的首日收入记录。那天整个项目组都非常开心,很多人发了图晒朋友圈,确实自己的产品这么成功谁不开心呢。想起了当时开发的《疯狂烈鸟》上线后,很快就排到IOS免费榜第一时高兴的心情。那时的我连IOS设备都没有,听@九天讲他每天要去微博,IOS排行榜实时关注游戏的评论,以及排名,大家都觉着很夸张。当《山口山战记》上线后,我变成了昔日的九天,去贴吧,微博,IOS排行榜时刻关注大家的评论,遇到的问题。更有甚者,自己也买了游戏,和玩家一起玩。话说我是IOS第一个下载游戏不足为过。截止我写这篇总结,游戏已经到了1.0.53版本。虽说物质上没有得到很好的回报,可是我一点都不后悔,做游戏的一辈子能做成功几个游戏?
游戏上线后,在后续的运营过程中出现过一些问题。影响很深的一次是,版本已经发布到了外网,还没有正式上线。这时组内成员发现天赋系统的UI打开会导致游戏闪退,但内网没有问题。查找问题根源,原来我在合并代码的时候,代码自动合并了,但是资源没有提交上去,这是个未来的功能。这时我羞愧的恨不得找个地缝钻进去。我们的项目经理没有埋怨我,而是了解这个失误会对产品带来那些风险,了解清楚现况后,他决定撤掉这个版本。这意味着很多宣传工作,运营工作都白做了,还会导致产品发布到玩家手里延期。这时组内相关成员帮助了整个项目组,想到了通过修改新手引导参数的手段屏蔽这个功能。很快测试通过,发布后补丁及时掩盖了问题。通过这件事情后,我们团队及时总结了经验教训,改善了发布流程。后面再也没出现这类问题。
对于游戏开发人员,外挂绝对令大家闻虎色变。我们项目在开发前期就做了一些关于程序安全的工作。比如对代码二次加密,内存变量隐藏,协议包加密,数据表格加密。可是外挂人员还是修改了我们攻击的函数,这对一个战斗计算放在客户端的游戏是致命的。我们和外挂人员斗智斗勇,但总是处于下风。后来发现只有服务器验证计算结果,加上后台数据的智能分析,才是打击外挂人员的最有效的方式。通过这套系统,加上强大的gm工具,总算是彻底的解决了挖掘外挂作弊人员的难题。
游戏刚上线只有三个渠道,IOS,Android混服,应用宝。发布补丁需要配置后台文件,更新服务器代码。这几项工作都属于重复性很高,但非常繁琐的事情,而且千万不能错。最尴尬的是当发布文件如果出错,千千万万的玩家就会报错。因此我每次都会检查很多遍,保证没有错误,可是人在做大量重复,复杂的工作的时候,总是有大意的时候。在发生几次错误后,我坚定必须要用工具实现这些功能。工具实现后,后面的工作就是简单的敲几个命令,然后玩会游戏,所有事情都完成了,还保证不会出错。生活立马变的快乐惬意了。这也让我深刻理解到,能通过计算机做的事情,一定要交给程序做。人总是有疏忽犯错的时候,但机器不会。
天天向上:
游戏在线上运营,每天都有很多繁杂的事情。我时刻都没有忘记:“以提升自身能力的工作,才是健康可持续的工作”。对于组内的技术建设,每周坚持写周报,整个一年没有漏过一次周报。周报的结构如下:

周报总结——>工作内容总结
组内大事——>项目大事,公司大事,组内成员大事
成员周报:
    工作内容
    下周计划
    叽叽歪歪——>见闻,分享,建议
通过周报形式,组内成员及时互相了解工作,生活,学习情况。对于周报这件事,对于我们技术团队是非常正确有利的事情。
为了给大家指出明确发展方向,我自己添加了Unity技术树。让大家结合自身情况,查漏补缺,很好的发展自身技术。当然我们的传统习惯Code Review也是认真履行的。
开心时刻:
在媳妇的带领下(本人很宅,很懒),对公司附近的房子了解后,贷款买了一套小房子。由于是装修好的房子,也不需要自己花心思装修(甚合我意)。选购好家具,家电,就入住自己的小窝。有了自己的房子,对生活质量有了更高的需求。买了很好的智能路由器,以及自己的服务器,把家里的网络打造成了畅游网络的天堂。媳妇还买了书架,我的几大箱书终于也有了自己的窝。有了自己房子,自己不在是毫不相关的过客,有了很好的归属感。
有朋自远方来不亦乐乎,@志成的到访,非常开心。那天真是糊涂,没有备好酒。我俩就用家里的日本清酒喝了一阵。第二天和志成一起逛了市中心,爬了岳麓山。在西北餐馆吃饭,少喝了一点啤酒,过的很开心。十一放假,姐夫携妻子到访,一起吃了很多美食,逛了很多商场。最开心的是一起在游乐场玩,当时玩跳楼机,看着不咋害怕,当被机器拖到几十米高空,被阵阵凉风吹着,恐惧感开始增加,当自由落体时,连我这种胆子比较大的都吓的尖叫。再也不想玩第二次,这也算是增加了一点人生经验。后面一起玩碰碰车,唤起儿时和表弟第一次玩碰碰车的美好回忆。
年前,表弟和妹妹的孩子相继出生。由衷的感到高兴,当看到小孩子萌萌的视频,整个心都被融化了。生命的传承就这样发生了。自己成了叔叔和舅舅。
心花怒放:
在2016年给我最大惊喜属于Wings战队TI6夺冠。还记着那天凌晨五点总决赛开始,没有定闹铃我自动4点50就醒了。对于有拖延症的人,很难瞬间起床,那天我毫不犹豫起床,蹑手蹑脚到客厅打开电脑开始看比赛,其实正式比赛6点多才开始。其它强队都有自己的绝活,这些绝活英雄的集合称作英雄池,Wings战队的绝活英雄被称作英雄海。因为对于外人来说,不清楚Wings到底有多少套阵容,我想Wings战队自己也搞不清楚自己到底有多厉害。Wings诠释了天道酬勤,努力不一定会得到回报,但是不努力必然得不到任何回报,感谢Wings带来精彩的比赛,护国神翼扬我国威。
一整年来,另一个让我倍感惊喜的事是AlphaGo战胜了人类九段围棋大师李世石。当时看了很多分析,大家都预测AlphaGo不是李世石对手。当AlphaGo赢了之后,大家开始关注自己会不会被替代?人工智能纪元是否开启?做为程序员我是盼望人工智能快速发展,一方面是希望大量的非创造性工作被机器人代替,让人类解放出来做更多创造性的工作。另一方面想让人工智能辅助人类探索智慧的极限。
今年我最喜欢的游戏莫属皇室战争了,在加拿大上线当天,花费15块在淘宝买了一个加拿大区账号,完了大半年,一直是我最喜欢的游戏。这游戏考察兵种搭配,运气,操作,计谋,是我喜欢的游戏类型。
略有小成:
这一年里最大的成就必然是《山口山战记》取的较好的成绩。作为年度优秀员工我是不会轻易告诉别人的,哈哈。在腾讯GAD发表了一篇关于Unity性能优化的文章,获得了三等奖,还是很开心。
继往开来:
年龄也不小了,今年最想做的事情就是结婚。再就是发力做下一款成功的游戏,来弥补在《山口山战记》没有得到的物质回报。新的一年加油。 
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

2016总结 的相关文章

  • Windows Server 2016 文件操作系统 跨区卷 镜像卷 RAID5卷 ISCSI设置

    目录 简述 前言 说明 正文1 创建跨区卷 1 2 创建镜像卷 1 3 创建RAID5卷 2 使用存储池新建mirror布局的磁盘 3 ISCSI创建卷 简述 在Windows Server系统的各个版本中 xff0c 有5种卷类型 xff
  • Windows Server 2016 重置密码

    问题描述 xff1a 今天上午的时候 xff0c 系统提示我 xff0c 密码过期 xff0c 需要修改密码 xff0c 我上午就没处理 xff0c 等到下午去处理的时候 xff0c 告诉我 xff0c 在登陆前 xff0c 必须修改用户的
  • 2016年7月21日学习笔记

    2016年 7 月 21 日学习笔记 Linux安装以后出现的文件目录的作用 xff1a 文件系统的类型 LINUX有四种基本文件系统类型 xff1a 普通文件 目录文件 连接文件和特殊文件 xff0c 可用 file 命令来识别 普通文件
  • so_rcvbuf linux,CVE-2016-9793 CVE-2016-9793 Linux Kernel 3.11 < 4.8 0 SO_SNDBUFFORCE SO_RCVBUFFORCE...

    CAP NET ADMIN gt root LPE exploit for CVE 2016 9793 No KASLR SMEP or SMAP bypass included Affected kernels 3 11 gt 4 8 T
  • 2003文件服务器迁移2016,服务器2016设置文件共享

    服务器2016设置文件共享 内容精选 换一换 为了保证使用生成的镜像创建的新云服务器可以实现一键式重置密码功能 xff0c 建议您安装密码重置插件CloudResetPwdAgent xff0c 可以应用一键式重置密码功能 xff0c 给云
  • Luogu 1712 [NOI 2016] 区间

    传送门思路参考代码 传送门 思路 唉 xff0c 我太弱了 xff0c 什么都不会 xff0c 这么个傻逼题 xff0c 居然把离散化写错了 xff0c 唉 xff0c 我太弱啦 xff01 显然我们可以考虑枚举最短长度和最长长度 xff0
  • Outlook 2013/2016 显示“正在启动...“ 无法进入Outlook的解决方案

    因上次非正常关闭 xff0c 导致Outlook 2016启动时 xff0c 一直处于启动界面 xff0c 无法进入主界面正常工作 刚开始Outlook 2016启动界面显示的是 34 正在处理 34 查询网上各种方法 xff0c 安全启动
  • 记录生活,记录学习----我的2016

    过着2017年的日子 xff0c 思考着2016年人生的变化 xff0c 或许 xff0c 最大的变化是懂得记录学习 xff0c 记录生活吧 2016年 xff0c 博客进入了我的生活 xff0c 从年初的寥寥数篇博客 xff0c 到现在C
  • 我的三色2016

    2016年于我来讲是无疑是迄今为止最为多彩与丰富的一年 xff0c 在这一年里我完成了从象牙塔到职场的过渡 xff0c 经历过迷茫 xff0c 遭受过歧视 xff0c 遇到过挑战 xff0c 好在上帝虽然关闭了所有的门却为我 打开了一道窗
  • 致敬我奋起直追的2016

    前言 其实当用奋起直追这个词语形容我的2016时 xff0c 自己一度怀疑是不是配得上这个词语 虽然2016成长了不少 xff0c 但是依然没有达到我想要的效果 在学习过程中不断出现越学越倒退的感觉 还偶尔会出现一些恐惧感 不过庆幸的是 x
  • 2016.2.27 Px4 flow分析

    Px4 flow 分析 代码地址 https github com PX4 Flow 主要来分析最后一个函数 compute flow 原版代码的光流算法主要是使用 hist 直方图算法 xff0c 这段代码主要可以分成两部分来看 xff0
  • 2016 CSDN最佳博客(Android)

    无意中在CSDN上看见了今年的十佳博客 xff0c 虽然现在还没有分出伯仲 xff0c 但是结果大概已知 xff0c 其中看了几篇文章 xff0c 感触挺深 xff0c 故把几大博客整理下来 xff0c 一方面方便广大博友 xff0c 另一
  • 2016

    2016 最近 xff0c 许多朋友兴起总结2016了 xff0c 看得我心痒 xff0c 心热 我自己不禁也总结起来了 别人的总结要么是 2016XXXX 要么是 2016OOOO 我苦思2秒 xff0c 却想不起一个标题来 xff0c
  • 告别2016,展望2017

    2016工作总结 2016年已经过去 xff0c 曾经列过一个2016的计划清单 xff0c 却一直没有能够很好的完成 如下是我2016的目标 xff1a 读完在书柜放了三四年的算法导论这本书 还是没有读完 xff0c 完全可以挤出来一点时
  • Windows Server 2016 路由和远程访问

    本次实验是将Windows Server 2016 配置成一个路由器 xff0c 为此网络上的客户端和服务器启用多重协议LAN到LAN xff0c LAN到WAN xff0c 虚拟专用网络和网络地址转换路由服务 使用路由和远程访问需配置下列
  • 盘点2016

    年年有计划 xff0c 岁岁有复盘 xff0c 今天是2016年的最后一天 我也来回忆一下我的2016年 xff0c 展望一下2017年 记得去年的跨年是和几个朋友在一块儿的过的 xff0c 记得当时玩儿了麻将 xff0c 我输了 xff0
  • 2016总结

    欲言又止 xff1a 每年的年终总结是要在新年之前发表在博客上 xff0c 今年的年终总结拖到现在完成 xff0c 我也是服自己 这里要感谢我的高中好友 64 万学清同学 xff0c 在我去年微信发表的有关年终总结的朋友圈下 xff0c 催
  • IDEA怎么查看现在的项目使用的JDK版本? 2016年4月19日22:51

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 右键单击项目 xff0c 选择 或者直接使用F4 转载于 https my oschina net sprouting blog 670222
  • 【系统篇 / 域】❀ 06. Windows10 加入域 ❀ Windows Server 2016

    简介 众所周知 Windows Server 2016 与其它版本不同的地方就是支持 Windows10 加入域服务了 修改 DNS Windows10 加入域之前 需要把网卡的DNS指向域服务器 在Windows10系统中 鼠标右击右下角
  • visio2016企业批量授权版本的激活方式

    首先先下载visio2016的企业批量授权版本 下载地址 用window的资源管理器打开压缩包 点击setup exe 之后默认安装 接下来就是激活的过程 win r快捷键 输入cmd cd C Program Files Microsof

随机推荐

  • First Estimate Jacobian (FEJ) 如何理解SLAM中的First Estimate Jacobian

    First Estimate Jacobian FEJ 如何理解SLAM中的First Estimate Jacobian First Estimate Jacobian是Visual Inertial中的一个很重要的概念 xff0c 今天
  • 移动开发者大会--除了App,软件,我们还应该考虑什么

    今天有幸参加 移动者开发大会 xff0c 也是我第二次参与这个活动了 随着智能机的普及 xff0c 尤其是安卓千元的手机迅猛发展 xff0c 2011年可以说事移动领域的积累期 xff0c 2012年将会是蓬勃的发展期 各大厂商也在努力学习
  • 野火的freeRTOS工程怎么移植到正点原子上

    目录 简介 xff1a 时钟 xff1a 串口波特率设置问题 xff1a 滴答时钟的中断的时长问题 xff1a 简介 xff1a 正点原子的freeRTOS教程和野火系列的对比跟玩一样 xff0c 教的不细致 xff0c 代码注释也还没有野
  • ORB特征点提取代码详解 四叉树均匀化

    ORB特征点提取代码详解 ExtractORB 最近在尝试将ORB提取特征点机制放置于芯片上 xff0c 便于后期调用 xff0c 减小CPU的计算负担 xff0c 故最近对ORB特征点提取代码进行了研读 xff0c 记录一下 xff0c
  • Docker 使用教程

    Docker 使用教程 1 基本使用教程 使用docker docker 下载镜像 span class token function sudo span span class token function docker span pull
  • os.popen os.system subprocess shutil区别

    os popen os system subprocess shutil 区别 最近由于工作需求接触python xff0c 记录下遇到的问题 1 os popen os system 的区别 xff1a 总结 xff1a os popen
  • json与pickle相同和区别

    json与pickle相同和区别 1 json是可以在不同语言之间交换数据的 xff0c 而pickle只在python之间使用 2 json只能序列化最基本的数据类型 xff0c 而pickle可以序列化所有的数据类型 xff0c 包括类
  • 【id:58】【20分】C. 复数运算(友元函数)

    时间限制 1s 内存限制 128MB 题目描述 复数类的声明如下 xff1a class Complex private double real 实部 double imag 虚部 public Complex Complex double
  • Melodic + Realsense D435i 配置及错误问题解决

    Melodic 43 Realsense D435i 配置及错误问题解决 安装环境 xff1a RealSense SDK安装1 克隆SDK2 安装相关依赖3 安装权限脚本4 进行编译与安装5 测试安装是否成功6 错误汇总0x01 进行编译
  • Realsense-Ros安装配置介绍与问题解决

    Realsense Ros安装配置介绍与问题解决 Realsense Ros安装配置功能包克隆与编译编译错误与问题分析解决方案 结束语 本文主要讲述在如何进行Realsense Ros的安装与配置 xff0c 以及提出在安装配置过程中遇到相
  • 树莓派3 Ubuntu Meta16.04 操作系统烧录教程及系统换源

    树莓派3 Ubuntu Meta16 04 操作系统烧录教程及系统换源 1 写在开头 xff1a 2 操作系统烧录软件下载3 Ubuntu Meta 操作系统下载4 操作系统烧录4 1 SD 存储卡格式化4 2 操作系统写入4 3 换源更新
  • Ubuntu nautilus 快速打开文件浏览器

    Ubuntu nautilus 快速打开文件浏览器 1 问题描述2 nautilus 命令说明3 bashrc 下使用 alias 创建命令别名Reference 测试时间 xff1a 2022年6月20日 测试平台 xff1a Ubunt
  • 结构体嵌套结构体,及其的初始化

    作用 xff1a 结构体的的参数成员包含另一个结构体 利用 操作符来逐级访问结构体中的元素 1 先来个普通的结构体嵌套 xff0c xff08 不涉及数组 xff09 span class token macro property span
  • Spark Streaming + Spark SQL 实现配置化ETL流程

    Spark Streaming 非常适合ETL 但是其开发模块化程度不高 xff0c 所以这里提供了一套方案 xff0c 该方案提供了新的API用于开发Spark Streaming程序 xff0c 同时也实现了模块化 xff0c 配置化
  • 程序员永远的痛之字符编码的奥秘

    字符编码相信是每个程序员的噩梦 xff0c 只要是有中文的地方 xff0c 总是会遇到各种编码的问题 xff0c 并且这种问题还非常难缠 xff0c 尤其在linux上 xff0c 因为上面很多软件都是针对英语国家开发的 xff0c 是不会
  • 2013年终总结

    年终感悟 xff1a 2013年就这样过去了 xff0c 每个人都一样 xff0c 使用了自己一年生命药水 xff0c 要知道这种药品是花多少钱都买不来的 现在回头看看 xff0c 我用这一瓶药水都做了那些事情 在这一年里 xff0c 有过
  • C++11 之for 新解

    前言 C 43 43 11这次的更新带来了令很多C 43 43 程序员期待已久的for range循环 xff0c 每次看到javascript xff0c lua里的for range xff0c 心想要是C 43 43 能有多好 xff
  • c++11之初始化列表

    一 前言 C 43 43 的学习中 xff0c 我想每个人都被变量定义和申明折磨过 xff0c 比如我在大学笔试过的几家公司 xff0c 都考察了const和变量 xff0c 类型的不同排列组合 xff0c 让你区别有啥不同 反正在学习C
  • Unity Update 详解

    0x01 简介 Unity的脚本继承了Monobehaviour类 xff0c 在脚本中定义函数 xff1a void FixedUpdate span class hljs list span void span class hljs k
  • 2016总结

    欲言又止 xff1a 每年的年终总结是要在新年之前发表在博客上 xff0c 今年的年终总结拖到现在完成 xff0c 我也是服自己 这里要感谢我的高中好友 64 万学清同学 xff0c 在我去年微信发表的有关年终总结的朋友圈下 xff0c 催