【原创投稿连载】一
寂寞火山 : 【原创投稿连载】一个创业程序员的35岁人生总结
(九)
★第三次创业 - 自己说了算并不能保障创业成功:立项分 析,终于可以把技术做到极致了,产品出来了怎么赚钱呢?
怀着满腔“自主创业”的熊熊火焰,我带着老婆和两个兄弟又 杀回了上海,在张江租了一个两室一厅火速开工了。当时我 们有多少钱呢?我这么多年跟老婆省吃俭用,再加上两次股 份置换的现金,满打满算一共就10万。整个研发期,人头也 一直只有我们四个,我们三个程序员全身心投入开发,老婆 做饭和照顾我们的日常起居。股份怎么分呢?钱是我出的, 我占50%吧,两个兄弟一人25%,这样相当于跟团队平分了。 当时要做一个什么游戏呢?想来想去,我们团队小,主流 RPG肯定做不了,我们必须做一个创新的游戏才有活路,讨 论半天,确定下来做一个联机版的大鱼吃小鱼竞技页游。为 啥会决定做这么一个东西呢?第一,我手上有大量鱼类和海 洋场景的美术素材,第一个失败的创业项目就是跟海洋相关 的。第二,这类游戏没见过,只见过养鱼和捕鱼的,说明大 家对鱼这个东西还是认可的。养鱼和捕鱼都有了,大鱼吃小 鱼不就是等着我们来填补市场空白的么?!然后后端语言用 什么呢?JAVA吧,因为JAVA跟AS比较像,而且JAVA的 MINA并发框架和数据库框架当时已经很成熟了,前后端通讯 协议则用谷歌的Protobuf协议。具体怎么分工呢?我主要搞产 品、美术和前后端架构,所有的功能都由两位兄弟搞定,两 位兄弟倒是给力,后端上手比我想象的快很多。最后我们三 个演变成谁都可以在任意时间写任意功能的代码,完全无缝 无等待,整个项目前后端的所有代码,看上去就像一个人写 的。
是的,以上就是我自主创业初期想的主要问题。可以看到, 大量的都还是从自身角度出发的,考虑的都是我会什么,我 要的是什么,我要怎么做。
这段自主创业前期,我收获最大的其实是后端实力的提升, 有些搞技术的朋友,尤其是搞后端的朋友可能会笑了:“你一 个搞前端的,也好意思说后端实力?”其实我在第一段创业过 中,就深度参与了后端,FMS最早也是我研究的,整个项目 几年下来碰到的从php到socket再到数据库再到服务器配置的 所有致命问题,我都历历在目、切肤之痛过。最后养成了一 个职业病,就是碰上牛逼后端就拉着人家一顿请教。后来跑 到杭州,针对这些问题,又跟那个牛逼的C++主程交流了很 多,看了他们的解决方案。所以其实整个后端的架构,都已 经在我心里了,只是一直没机会实践。经过这次实战,一方 面,检验了这些想法的靠谱性,彻底解开了我对后端长久以 来的很多疑问;另一方面,在以后的项目中,可以让我更好 更准确的站在前后端宏观的层面看待整个项目。因为我们项 目的特殊性,对及时性要求特别高。大家可以脑补一下,联 机版大鱼吃小鱼,当玩家在屏幕上疯狂的甩鼠标控制鱼互相 追逐和放各种技能的时候,这个及时性是个啥概念,200毫秒 的常规socket网络延时我们完全无法接受。为了解决这个问 题,我们几乎差点放弃TCP协议改用UDP协议。但最终通过 预判算法、平滑算法等等方式,还算实现了可以接受的效 果。但遗憾的是,后来游戏最多也就是做到几百人在线,倒 不是服务器挂了,是找不到更多的用户。。。服务器反倒是 比预想的稳定,根据经验,新手弄的服务器程序,刚上线一 般都会出几次大问题。我们小问题是出了不少,但致命的很 少,碰到最大的问题可能就是多线程并发框架的数据同步问 题了吧,但很快也就解决了。而且整个服务器IO、连接数、 内存、CPU都很稳定。唯一的遗憾就是,服务器没上2000 人,服务器的真功夫只有在量起来的时候才能真正展现,而 我们没有等到这个机会,实在是太遗憾了。
至于前端,其实真没什么特别明显的提升了,当时FLASH硬 件渲染也不是特别成熟,就没敢采用。我们就开始死磕各种 技术细节,变态的追求网络、内存、CPU的极限。因为这篇 文章不是主要讲技术的,这里就不展开了,就举一个具体例 子吧:我们当时做到整个游戏所有前端文件,注意不是代码 文件,是包含在web服务器目录下的所有游戏客户端文件,整 个压缩成ZIP,还不到10M,但是我们有十几张游戏场景,大 量的游戏角色,还有音效、特效、配置文件等等。这里估计 有些经验丰富的朋友会质疑,你这是忽悠的吧,一个游戏场 景就可能几百K上M了吧?一个角色的全部动作搞不好就上M 了吧?甚至一个特效就能上M。我们怎么做的呢?我们全部 采用的矢量图。矢量图虽然可以做到非常小,但是在游戏运 行的时候,由于所有图形都是CPU及时绘制出来的,CPU就 会负担超级重,导致游戏非常卡,为此我们采用了利用游戏 各种空闲时间预先实时转换矢量图为位图的方案,当这张图 最终被展示的时候,已经是内存里的一张位图了。其实,任 何FLASH方面有经验的程序员应该都知道,网络、内存、 CPU在FLASH RUNTIME的局促性能瓶颈下,经常是互相矛 盾,此消彼长的,像我们极限的优化网络加载速度,就必然 要耗费CPU和内存,反之亦然。而且,这个性能要素的博弈 关系还是动态的,在游戏进程的不同时刻不一样,比如,在 loading的时候,都是希望文件小、加载快,网络要求很高, 但CPU和内存占用就不用太考虑,这时候就可以做很多预渲 染的事情。所以极限的性能追求,肯定是要跟着业务逻辑动 态变化的,要通过代码实时调控的,不存在绝对完美的固定 方案。
虽然我当时自主创业当老大了,但我思想觉悟上其实还只是 个程序员而已,所以我才会各种追求技术完美,最终因为技 术的成熟和无干扰,研发速度也确实比前面两次创业快的 多,三个人一年左右就把一个完整的商业级游戏弄出来了,
虽然美术特别LOW。这才有了上面两大段文字和吹牛逼的资 格,但我马上再问一个问题,就能把这种牛逼瞬间变成傻 逼,我们游戏不是做出来了么?问题是:“怎么赚钱呢?”。
。。
→未完待续。。。 2017-02-25(19赞)
评论区:
不恭仙人 : 后半段变成技术分享了,哈哈哈
寂寞火山 : 你这么一说,貌似还真是。。很多人估计看着要晕,我写的太专业了
不恭仙人 : 没事,我能看懂就行了, 。Adobe放弃了flash,感觉可惜了。
刺猬 : 这段看上去其实你应该把其他短板交给合适的人去合作,,,,光技术这个板子太长并不能让水桶多接水。。。
。执着啊。。 寂寞火山 : 确实可惜
寂寞火山 : 兄弟所言甚是
寂寞火山 : 时间线貌似没说清楚,我是2011年底回到上海开始这段创业
J_D : 我还记得以前做的一个页游项目就是把大量的movieclip预先转换成Bitmap,节省cpu的压力
关注公众号"懒人找资源",星球资源一站式服务