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

从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就勉为其难了。

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

时间: 2024-10-12 22:26:51

从游戏开发到应用开发的转变的相关文章

html5游戏开发-零基础开发《圣诞老人送礼物》小游戏

开言: 以前lufy前辈写过叫" HTML5游戏开发-零基础开发RPG游戏"的系列文章,在那里面我学习了他的引擎以及了解了游戏脚本.自从看了那几篇文章,我便对游戏开发有了基本的认识.今天我也以零基础为视点,为大家讲述如何开发一款简单的游戏.希望大家看了这篇文章,能使你对理解游戏开发有帮助. 你可以先测试一下游戏: http://lufylegend.com/lufylegend_developers/yorhom_Christmas/index.html 1,如何进行游戏开发 1.1游

Android游戏开发:物理游戏之重力系统开发--圆形自由落体Demo

本节为大家提供有关物理游戏的知识,讲解了一个简单的圆形自由落体Demo的编写.. Java代码 package com.himi; import java.util.Random; import java.util.Vector; import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import a

黄金欢乐大灌篮游戏h5理财软件开发

黄金欢乐大灌篮游戏h5理财软件开发(杨小姐:186-6508-4445电/微)源码,app,定制,系统开发互联网+和+互联网这是两个概念.现在总理提出互联网+概念之后,已经成为国家战略,最典型的谈互联网+的书有100多本,现在都开始做互联网思维培训,但是这里面有很多弄混了,说我们也在做选择.其实用互联网打广告做宣传,包括你在互联网上卖东西,或者说我用了互联网的技术,什么大技术.云计算,这些你原来商业本质上没有变化,产品和用户形态没有变化,只是当成一种战术,提升你的宣传效果,加强你的销售,这个不是

某互联网(特大型)公司游戏元数据管理系统前端开发技术

本人于去年十月份开始接收游戏元数据管理系统的开发,下面就把使用的技术总结一下: 由于元数据数据库比较多,链接频繁会影响效率,所以我们使用了facebook开源的Thrift,服务端使用C++,客户端链接使用python和php,由于我主要做php,下面是Thrift的php客户端入口文件: <?php #Thrift Lib Path Root $GLOBALS['THRIFT_ROOT']=$_SERVER['DOCUMENT_ROOT']."/application/Thrift/li

2014年天嵌最新开发板——TQ210V6开发板正式发售

2014年10月23日,广州天嵌计算机科技有限公司最新研发的S5PV210系列——TQ210V6开发板与TQ210coreD核心板将正式发售.此次,天嵌发布的TQ210V6开发板将重新设计部分的配置与端口,整体的设计工艺得到全面的提升,致力为广大天嵌客户提供高性能低成本的嵌入式开发板. 此次,TQ210coreD核心板的接口形式是插针,相对TQ210coreB核心板的接口形式——B2B,插针速度更快.另外,TQ210V6开发板新增MIPI端口. 10月23日,TQ210V6开发板完成开发板的调试

区块链多币种钱包开发,交易平台开发,抵押借贷平台开发

区块链在经历交易平台,公链,区块链游戏的热潮之后,下一轮该轮到谁了呢?要知道,交易平台是用户交易,公链则是一个独立的链条,区块链游戏则是挑起用户的趣味心,接下来区块链应该会走向何方呢?众多人猜测,区块链下一个风口将刮向多币种钱包,结果究竟如何,我们也只能等待它的发展.但是我们现在能够看到的就是多币种钱包已经不仅仅只有储存币这一项功能了,现在的多币种钱包能够包含以下几个功能:1.交易平台区块链多币种钱包里面可以带有数字资产交易的功能,用户可以在钱包里直接交易数字资产,这样就可以不用到处搬砖交易,其

砖石OTC跑分系统源码开发--跑分系统开发平台找:黄经理137-1912-1181 / 微:LING1995hhh,跑分软件,跑分APP,跑分模式,跑分平台,跑分系统定制开发

跑分系统开发平台找:黄经理137-1912-1181 / 微:LING1995hhh,跑分软件,跑分APP,跑分模式,跑分平台,跑分系统定制开发 跑分系统开发平台优势:可以解决大额量的交易问题,目前传统支付已经被严重限制,甚至存在资金冻结问题,风险比较大,而大额交易目前市面上也没有什么更好的方式! App.手机网页.PC商城.小程序,微商管理系统.扫码红包.质量追溯.分销.全返.分红.拼团.区块链商城,农场养殖系统,果园种植游戏,养殖游戏系统,区块链钱包系统,区块链挖矿系统,定制服务·系统开发提

微信跑分APP定制开发--跑分系统开发平台找:黄经理137-1912-1181 / 微:LING1995hhh,跑分软件,跑分APP,跑分模式,跑分平台,跑分系统定制开发

跑分系统开发平台找:黄经理137-1912-1181 / 微:LING1995hhh,跑分软件,跑分APP,跑分模式,跑分平台,跑分系统定制开发 跑分系统开发平台优势:可以解决大额量的交易问题,目前传统支付已经被严重限制,甚至存在资金冻结问题,风险比较大,而大额交易目前市面上也没有什么更好的方式! App.手机网页.PC商城.小程序,微商管理系统.扫码红包.质量追溯.分销.全返.分红.拼团.区块链商城,农场养殖系统,果园种植游戏,养殖游戏系统,区块链钱包系统,区块链挖矿系统,定制服务·系统开发提

支付宝跑分软件模式开发--跑分系统开发平台找:黄经理137-1912-1181 / 微:LING1995hhh,跑分软件,跑分APP,跑分模式,跑分平台,跑分系统定制开发

跑分系统开发平台找:黄经理137-1912-1181 / 微:LING1995hhh,跑分软件,跑分APP,跑分模式,跑分平台,跑分系统定制开发 跑分系统开发平台优势:可以解决大额量的交易问题,目前传统支付已经被严重限制,甚至存在资金冻结问题,风险比较大,而大额交易目前市面上也没有什么更好的方式! App.手机网页.PC商城.小程序,微商管理系统.扫码红包.质量追溯.分销.全返.分红.拼团.区块链商城,农场养殖系统,果园种植游戏,养殖游戏系统,区块链钱包系统,区块链挖矿系统,定制服务·系统开发提

微信跑分系统模式开发--跑分系统开发平台找:黄经理137-1912-1181 / 微:LING1995hhh,跑分软件,跑分APP,跑分模式,跑分平台,跑分系统定制开发

跑分系统开发平台找:黄经理137-1912-1181 / 微:LING1995hhh,跑分软件,跑分APP,跑分模式,跑分平台,跑分系统定制开发 跑分系统开发平台优势:可以解决大额量的交易问题,目前传统支付已经被严重限制,甚至存在资金冻结问题,风险比较大,而大额交易目前市面上也没有什么更好的方式! App.手机网页.PC商城.小程序,微商管理系统.扫码红包.质量追溯.分销.全返.分红.拼团.区块链商城,农场养殖系统,果园种植游戏,养殖游戏系统,区块链钱包系统,区块链挖矿系统,定制服务·系统开发提