开发者社区> 石门-archy> 正文

从游戏开发到应用开发的转变

简介:
+关注继续查看

     从2011年大学毕业到2014年年底,这段时间我的软件开发生涯是在游戏圈子里渡过的,虽然终究并没有做出什么名堂来,但是至少也是混到了服务器主程的位置;游戏开发的那些日子,大概也是进步最快的日子,回忆起来自己的博客里面比较有质量的文章都是那段时间写的,尤其是面对上线和大并发的时候,对于软件和代码的理解有了不同于刚毕业那会的理解,我想大概也是项目推动成长吧!

     时间来到了2014年年底,随着自己对于游戏开发的兴趣骤减和于策划方案冲突的急剧加深,慢慢产生了离开这个行业的想法,于是就在那个契机,自己放下了一切切入到了应用的开发!

     记得第一个应用是一个手机端的应用,大概是一个类似于微博那样的应用,当然功能要弱化的多;简单被带着入门app端之后,发现服务器端的逻辑完全无法入手;最后也是在网上抄了一个redis的微博的例子;在这个例子的基础之上开做起来了。那个应用的数据库没有使用mysql,而是直接使用的redis,现在无论如何我也不会这样了吧。没有用mysql也主要是因为自己对于mysql的不熟悉,做游戏的时候对于数据库的使用处于全部nosql或者简单mysql的状态。比如我们只会设计一个玩家表,可能很多人要说玩家不是很多属性吗?一个表怎么够用,其实我们是把很多玩家的数据全部封装成json,base64转换,zip压缩,已text形式保存到mysql的表中。这样几乎mysql中两三个表就能保存游戏中所有的数据;可是到了应用层则就不一样了,一个微商城都几乎使用近一百个表,还要处理个个表之间的关系,试图等等。

      做游戏服务器的时候,写逻辑几乎不与数据库打交道,而现在写应用却几乎很难离开数据库。写游戏的时候,比如做一个帮战系统,进入到帮战里面所有的人,都是登录玩家,玩家数据已经全部加载到内存中,和他交互或者的其他玩家都是这个场景内的其他的玩家,数据也早已经加载到内存中,任何一个打斗,交互,移动等逻辑处理,都是处理内存中数据和逻辑。做应用就不一样了,应用中用户之间交互的载体变成了数据库,而不再是内存,如果用户A想要得到用户B的行为,那么用户B的行为首要要被存储到数据库中。这一点是在从游戏服务器转向webapp的过程中最痛苦的也是最难理解的,至少我个人是这个情况。记得自己第一个php小应用,把MySQL的连接做成了全局变量;以为这样每个连接都能共享;知道后来发生了mysql连接不够用的情况。

      对于游戏来讲,数据库只是一个玩家下线暂存玩家数据的地方;也就是说并不是重中之重;而对于应用来讲则不一样了;数据库除了保存着应用所有的数据,还可以用来驱动逻辑,比如触发器,游标,等等。比如排行使用order等。所以这造就了游戏程序员看到一个业务或者模块,首先想到使用怎么样的数据结构。而对于应用程序员看到了一个业务和模块首先想到了是如何设计数据库;我现在看到了很多应用开发者再处理一个逻辑的时候,首先想到的并不是从数据结构上做文章;而是首先改变数据表设计。对于游戏程序员来讲,似乎天生的拒绝多哪怕一次的sql操作,能在内存中解决的,不在数据库中做。

      在做游戏开发的时候,是把nosql作为主数据库设计的,在我开发游戏的前两年,都是用mongo作为主要的数据库;但是到了应用上,nosql还是用来作为一些特定模块的解决方案,或者是为了缓存一些常用数据。比如商城系统,对于经常游览的商品,我们就把它保存到redis中,对于首页,我们也直接将首页的html+css数据保存到redis中;但是在应用中把nosql作为主数据库,遇到复杂的逻辑,比如商品销量统计或者订单统计之类的需求,用redis就勉为其难了。

      软件开发是一个行业,可是这个行业内不同应用层之间也似乎像是隔山似的,有着不同的开发原则和准绳;我们从一个应用层到另一个应用层,也应该抱着谦卑的姿态,首先做到融入,再熟悉,然后再想着发挥自己的才能才好!

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
《鸿蒙理论知识 06》HarmonyOS 概述之应用开发基础知识
HarmonyOS 的应用软件包以 APP Pack(Application Package)形式发布,它是由一个或多个 HAP(HarmonyOS Ability Package)以及描述每个 HAP 属性的 pack.info 组成。HAP 是 Ability 的部署包,HarmonyOS 应用代码围绕 Ability 组件展开。一个 HAP 是由代码、资源、第三方库及应用配置文件组成的模块包,可分为 entry 和 feature 两种模块类型.
86 0
【零基础微信小程序入门开发五】基础能力(一)
在学习小程序中,我们必须要接触小程序的一些基础能力,从而实现一些业务的开发,例如上传图片下载文件,或者是通过接口返回的数据进行渲染来完成一些事件的触发,基础能力包括:网络请求、文件读写、存储,以及渲染画布等,这里呢我们着重讲几个,其他的例如分包下载、按需注入等因为不满足这次的零基础开发,对于还没.........
62 0
【零基础微信小程序入门开发六】基础能力(二)
同【服务器域名】配置一样在小程序界面配置即可,不过他是作为嵌入的、承载网页的容器。会自动铺满整个小程序页面,小游戏和个人类型的小程序暂不支持使用,我们可以在调试机上看一下效果,它的用法很简单 效果 我们滑动到最底部,可以看到他是铺满全屏的 可...
50 0
小程序开发入门及多端开发浅析
本部通过一个demo 入门介绍微信小程序云开发,并引申出跨端开发的现状,简要介绍各跨端开发框架,并简述其跨端开发原理。
213 0
鸿蒙HarmonyOS应用开发初体验
近期鸿蒙HarmonyOS正举行开发者日活动,趁机参加并了解了一下鸿蒙OS的现状。对DevEco Studio以及如何创建Harmony工程做一个简单的介绍
211 0
鸿蒙新作《鸿蒙HarmonyOS应用开发从入门到精通》拆箱
《鸿蒙HarmonyOS应用开发从入门到精通》拆箱。 该书由北京大学出版社出版,2022年4月上市,作者柳伟卫。
122 0
简单聊聊《鸿蒙HarmonyOS应用开发从入门到精通》这本书
《鸿蒙HarmonyOS应用开发从入门到精通》一书由北京大学出版社出版,已经于2022年4月上市。本文希望与读者朋友们分享下这本书里面的大致内容。
158 0
鸿蒙开发初体验【鸿蒙开发01】
在体验之前,大家可以先看这张图,然后按图索骥,不过不会在这个教程教如何如何安装nodejs,
134 0
两个案例五分钟轻松入门Harmony(鸿蒙)开发
两个案例五分钟轻松入门Harmony(鸿蒙)开发
149 0
+关注
石门-archy
石家庄某网络公司技术主管
文章
问答
视频
文章排行榜
最热
最新
相关电子书
更多
《平头哥剑池CDK快速上手指南》
立即下载
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载