很多人都痴迷于游戏,而做为程序开发人员,喜欢自己做游戏的自然也不在少数。但开发一个有点规模的游戏,除了主要的游戏逻辑外,还需要将大量的数据保存下来。现在流行的架构则是将保存数据的模块单独做成一个服务,与前端通过socket进行通迅。用socket流行当然的是完成端口技术了。但完成端口只是实现了一个基本的数据收发包,真正实现起来,还需要定义各种的通迅协议。讲到通迅协议那就要提一下google的protobuf协议了。google protobuf 是google公开的一套用于网络通信时用于协议编解码的工具库,使用它定义的格式,你可以定义协议的字段,由它自带的编译器生成出负责编解码的代码文件(可生成许多不同的语言文件).简单来说,protobuf就是将你要发送的消息内容进行,高效序列化和反序列化的。
总结一下上面废话的意思就是:游戏后台要使用完成端口+google protobuf 这样才不显得太落后。再加上访问数据库的odbc api接口,这些就组成了window下游戏后台服务的基本技术。当这些技术条件都具备了。那就可以按部就班的写程序了。当然正规开始写之前还需要相关的架构设计文档等,但业余写游戏的话,部分步骤可视情况面定。下面说一下大至的步骤:
第一步就是按需求(游戏内容)整理要保存的数据,这一步呢,要设计出表结构及一些存储过程。
第二步则是与前端游戏逻辑模块开发人员进行沟通,定义出两者间的通讯协议,也就是编写出protobuf文件。同时用google自带工具生成相应的.h和.cc文件(protobuf还支持其它的语言)。
第三步就可以开始写代码了。写代码呢无非就是封装完成端口,及数据库访问接口。等将所有接口都封完之后,接下来就是力气活了。根据一个个protobuf包格式化成SQL语句,将执行后的结果在回写到一个个应答包内(protobuf)。
以上就是一个游戏后台程序的大至流程。那么如何做到快速开发呢?
答案是, 要想快,就得充分利用网上的资源,看有什么可以拿来就用的。用度娘,找谷哥,查开源,很快你就会发现,完成端口,odbc API接口什么的网上都有封装好的,直接用就可以了。而google 的protobuf 本来就是开源的直接去官网下就行。东西都找来后,将他们拼一块就可以了,这些用不了二三天。而数据库设计及protoBuf协议编写,只要你的游戏不是非常复杂的话,一二天也照样搞得定。那接下来在初步搭好的架构上switch一个消息ID然后,取出protobuf包,拼接SQL语句?如果这样做你就OUT了,这代码一路写下来,得多少天才能完工呀,在加上来回的调试工,多变的需求,整个下来,二十来天都是少的,这还是你游戏需求不那么复杂的情况下。
那不这样做能如何呢!大家不都是这样做的吗?难道能向写protobuf文件那样,写一个描述文档,然后用一个工具直接生成我需要的代码吗?
答案是,不全对,为什么呢?对的部分是因为可以在写一个xml描述文件,然后用这个库进行加载http://download.csdn.net/detail/yd_gxm/5044507。然后呢...然后功能就实现了。不相信,不相信你就下载一下看看。看看能否达到一行代码不写就完成一个DBServer程序。
不对的地方是,还不存在一个将xml描述文件转成.h .cc的工具。如果存在这样的一个工具,那就属于微智能开发了。不过我想出现这种“编译”工具只是迟早的事情。
-----------------------------------------------------------
(最近正忙着看《原子战神》http://2152996.qidian.com 小说。等忙完了,编译上传一个vs2003版的。^_^ )
分享到:
相关推荐
【标题】"H5玛莎拉蒂转盘游戏源码 后台可控制.rar" 提供的是一款基于H5技术的在线游戏源码,主要功能是实现一个模拟玛莎拉蒂豪华汽车转盘抽奖的游戏。这类游戏通常用于吸引用户参与互动,例如在营销活动中增加用户的...
传统上,分区分服存储模型,例如SET模型,通常用于容量和压力可控的在线玩法,数据可以全Cache在游戏服务器,但数据变更会有延时更新的问题。而SNS全区全服存储模型与传统模型的差异在于,它需要处理全服海量数据,...
微信小游戏服务器是专门为微信平台开发的小型游戏提供后端支持的系统。这类服务器通常负责处理玩家的交互数据、游戏状态的存储与同步、以及玩家之间的匹配和对战等功能。在这个"微信小游戏服务器,房间及卡牌类游戏...
Java网络游戏后台管理系统是一个用于管理和控制网络游戏运行的重要组成部分,它负责处理游戏服务器的各种逻辑,包括用户管理、游戏数据处理、实时通信、安全性控制等多个方面。本系统通常采用Java作为主要开发语言,...
6. **实时监控**:后台需要有强大的监控系统,实时追踪服务器状态、性能指标和异常事件,以便快速响应和解决问题。 7. **数据分析**:收集并分析游戏数据是提升用户体验和运营策略的重要手段。这可能涉及到大数据...
Node.js是一种基于Chrome V8引擎的JavaScript运行环境,它通过提供异步I/O和非阻塞I/O模型,使得JavaScript可以高效地运行在服务器端,从而成为开发游戏后端的强大工具。本教程将引导初学者了解如何利用Node.js进行...
在这个压缩包“逍遥西游后台整套代码.zip”中,我们可以深入理解游戏服务端与客户端的交互机制,以及如何在Linux操作系统上构建和管理游戏服务器。 首先,让我们关注“服务端”。服务端是游戏的核心部分,负责处理...
【标题】"基于ElementUI和SpringBoot搭建的游戏后台管理系统"是...在开发过程中,需要掌握ElementUI的组件使用和SpringBoot的核心功能,并能灵活应用于游戏后台管理系统的实现,同时具备良好的代码组织和文档编写能力。
ElementUI是一款基于Vue.js的开源组件库,它提供了丰富的UI组件,如表格、按钮、提示、下拉菜单等,用于快速开发简洁、优雅的界面。其特点包括: 1. 高度可定制化:ElementUI的样式易于调整,开发者可以根据需求...
在运维后台领域,游戏服务器管理是一项至关重要的任务。运维后台是整个游戏运营的基石,它负责监控、管理和优化游戏服务的运行状态,确保玩家能够顺畅地进行游戏体验。本话题将深入探讨使用Django框架构建运维后台...
首先,我们需要明确,“地府后台管理系统”虽然在现实生活中并不存在,但在虚构或游戏环境中,它可能是对某个虚拟世界运行维护的后台工具。这样的系统通常负责管理角色、资源分配、事件触发、数据存储等一系列后台...
在本项目中,“基于Java SpringBoot框架开发的抽奖游戏后台.zip”显然是一款利用SpringBoot来构建的游戏后台系统。SpringBoot的核心特性包括: 1. **起步依赖(Starter Dependencies)**:SpringBoot通过一系列的...
1. **Netty**: Netty是一个高性能、异步事件驱动的网络应用框架,主要用于快速开发可维护的高性能协议服务器和客户端。在本项目中,Netty作为后台服务的主要通信组件,负责处理来自Unity3D客户端的Socket连接,提供...
1. **Python编程**:Python作为后端的主要开发语言,其简洁的语法和强大的库支持使得它非常适合快速开发。在本项目中,Python可能用于实现服务器端逻辑,处理用户请求,管理游戏状态,进行数据存储等。可能用到的...
1. PHP网站模板:PHP是一种广泛使用的服务器端脚本语言,尤其在网页开发中非常常见。网站模板则是预先设计好的布局,包含了HTML、CSS、JavaScript等元素,使得开发者可以快速地搭建网站。这个模板可能包括了头部、...
游戏服务器主要负责处理玩家的连接请求、游戏逻辑运算、数据同步等工作,这些都需要高效、稳定的后台支持,Java正好能满足这些需求。 在"描述"中提到,这个项目源码可以用于毕业设计和课程设计。对于学生来说,通过...
游戏:休闲游戏、网络游戏、模拟游戏等各类娱乐软件。 信息系统: 在企业、机构或组织中,信息系统是指由硬件、软件、人员、数据资源、通信网络等组成的,用于收集、处理、存储、分发和管理信息,以支持决策制定...
总的来说,雷霆传奇H5超级管理后台的源码学习有助于开发者深入理解游戏后台的架构设计、数据处理和业务逻辑,对于提升游戏开发和运维能力具有很高的价值。同时,源码的开放也鼓励了社区的交流和创新,推动了游戏行业...
Spring Boot是一种流行的Java框架,用于快速开发微服务和Web应用。 这个后台系统的主要功能可能包括但不限于: - 玩家管理:添加、删除、修改玩家信息,处理玩家投诉。 - 资源管理:监控和分配游戏内的资源,如...
【SpringBoot基础】 SpringBoot是由Pivotal团队提供的全新框架,旨在...通过源代码学习,开发者可以理解如何将SpringBoot的特性和Minecraft服务器管理需求相结合,从而提升自己在Web开发和游戏服务器管理方面的技能。