排序:
默认
按更新时间
按访问量

javascript在游戏服务器的应用

JavaScript,一开始定位为浏览器表单验证的“玩具语言”,发展到如今,却能胜任各种舞台。nodejs,es6等等,奠定了其作为后端语言的地位。在JVM里,我们也可以直接使用javascript代码,因为jdk已默认绑定其实现。由于拥有动态语言灵活的特点,我们可以用来作很多有趣的事情。在游戏服...

2018-05-18 23:05:04

阅读数:68

评论数:0

手游服务端框架之跨服匹配服

如今的手游世界,如果没搞个跨服赛事,都不好意思说它是一个手游了。说到跨服,就不得不说下匹配服了。比如一个跨服天梯赛事,需要满足不同服的玩家能够同屏PK。为了能够把实力接近的玩家作为对手,我们需要一个独立的匹配服来收集数据,然后进行房间分配。匹配服,也是跨服赛设计的基础。典型的匹配服通信层我们可以采...

2018-03-10 18:53:18

阅读数:680

评论数:2

有限状态机在游戏中的应用

游戏里经常有各种AI行为,例如怪物砍人,玩家自动挂机等等。假设有这样的简易场景场景里的一只怪物平时就在洞口巡逻。当遇到敌人的时候,如果比对方强大,就揍敌人;如果比敌人弱,就绕道逃跑。用switch或if语句,很简易实现上面的需求enum State { Patrol, RunAway, ...

2018-01-06 21:42:35

阅读数:394

评论数:0

Netty网络聊天室之优雅的JavaFX界面开发

Java在服务端领域能够独占鳌头,然而,在客户端领域一直不温不火。Java的客户端技术,从AWT,SWING,SWT,一直到JAVAFX,即使每一代都有非常大的改善,但仍改变不了它尴尬的地位。不管怎样,javafx的设计理念还是非常优秀的。它借鉴了html开发的特点,将代码,界面,样式三者分离。使...

2017-11-26 21:04:02

阅读数:1381

评论数:2

手游服务端框架之使用Redis实现跨服排行榜

实现跨服排行榜的常规方法游戏里为了刺激玩家的攀比心理,经常有各种各样的排行榜。排行榜又可以分为本服排行榜以及跨服排行榜。简单说来,本服排行榜上的记录来自本服的玩家,而跨服排行榜上的记录是来自所有服务器前N名玩家。通常,跨服排行榜含金量更大,奖励也更为丰富。从技术上而言,实现起来也更为麻烦。典型地,...

2017-10-06 22:14:07

阅读数:1016

评论数:2

手游服务端框架之每日重置逻辑

大部分游戏都有每日重置的逻辑。关于每日重置,我们需要考虑两个问题。一个是如何区别在线玩家和离线玩家,一个是保证业务的线程安全的。本文提供一种方式,比较简单地实现了重置业务。

2017-09-17 19:38:46

阅读数:770

评论数:5

手游服务端框架之客户端协议组合下发

很多时候,客户端一个请求过来,服务端可能需要发多个响应消息。典型地,当客户端请求加载登录加载资源完成,服务端需要推送非常多的消息。功能模块越多,消息也越多。这个时候,可能就需要对下发的客户端协议进行优化。个人理解,针对这种情况,比较好的优化方式是整合多个小消息一起下发。也就是说,对于多个消息,我们...

2017-09-08 12:20:41

阅读数:1388

评论数:0

手游服务端框架之后台管理工具

后台管理工具在游戏运营中的作用手游功能的更新迭代是非常频繁的,有些项目甚至每个星期都会进行停服更新。也就是说,对于生产环境的游戏进程,我们必须有工具能够对游戏服务进行维护,例如更新维护,或者对游戏内部各种资源进行管理。典型地,完成这种任务的系统被称为后台管理工具。那么,后台管理工具怎么和游戏进程进...

2017-09-03 22:45:01

阅读数:3135

评论数:0

手游服务端框架之使用事件驱动模型解决业务高耦合

游戏里经常有这样的业务,当玩家触发某个动作时,有若干与之关联的业务也要一起执行。诸如这样场景,我们选择引入事件驱动模型来帮助我们解决业务代码耦合的问题。本文实现一个工具库,来解决监听器与事件多对多的关联问题。

2017-08-14 22:11:10

阅读数:928

评论数:0

Netty网络聊天室之使用spring管理各种组件

spring是web开发的宠儿,不管mvc框架选择structs还是SpringMVC,IOC容器都是选择Spring。Spring有两个主要的作用,一个是IOC(依赖反转),另一个是AOP(面向切面编程)。在我们的聊天室,我们也将使用Spring容器来管理各种组件。

2017-08-10 21:04:16

阅读数:730

评论数:0

Netty网络聊天室之会话管理

浏览器第一次与服务器建立连接的时候,服务器就会自动为之分配一个Session。在我们的聊天室,也可以使用Session来判断用户是否经过登录验证,保存用户的各种信息,向客户端发送消息。这极大方便了程序对客户端的管理。

2017-08-05 16:36:08

阅读数:5615

评论数:10

手游服务端框架之GM金手指的设计

游戏开发需要一些命令,能够像金山游侠这种软件一样,修改游戏里的玩家或公共服务的数据。在游戏项目里,这些命令统称为GM命令。本文将介绍实现gm系统的一种方式。

2017-07-30 16:01:47

阅读数:1422

评论数:0

手游服务端框架之使用Guava构建缓存系统

缓存,在项目中的应用非常之广泛。诸如这样的场景,某些对象计算或者获取的代码比较昂贵,并且在程序里你不止一次要用到这些对象,那么,你就应该使用缓存。缓存,在项目中的应用非常之广泛。诸如这样的场景,某些对象计算或者获取的代码比较昂贵,并且在程序里你不止一次要用到这些对象,那么,你就应该使用缓存。

2017-07-23 15:03:00

阅读数:977

评论数:0

手游服务端框架之配置与玩家数据库设计

一款网络游戏的设计,至少需要策划数据库和用户数据库两种数据库。本文主要介绍这两种数据库的设计及使用,同时,介绍如何通过ORM框架来完成玩家数据的持久化。

2017-07-16 20:56:19

阅读数:3359

评论数:2

手游服务端框架之消息线程模型

玩家的消息请求如果放在mina的io线程池进行处理,当业务处理非常耗时,会严重影响io的吞吐量。所以,我们应该另起用于处理业务逻辑的线程池,采用生产者消费者模型,异步处理玩家请求。

2017-07-12 23:17:48

阅读数:2403

评论数:3

手游服务端框架之模仿SpringMvc处理玩家请求

经典web开发项目通常采用三层架构来组织代码。典型的,第一层为表现层,通常使用MVC模式;第二层为业务逻辑层,该层主要是各种service业务操作类;第三层则为数据访问层。类似的,我们的游戏项目也可以采用上面的三层架构,使用Controller注解对应MVC模式的控制器,使用RequestMapp...

2017-07-02 14:53:56

阅读数:1554

评论数:2

手游服务端框架之网关

网关介绍游戏服务器的网关,主要是用于手机客户端与游戏业务服务端通信的中转器,负责接收来自手机客户端的请求协议,以及推送服务端的响应包。在单一进程服务端架构里,网关跟游戏业务处理是在同一个进程里。为了提高通信吞吐量,一些服务端架构将网关作为一个独立进程。这种模式下,客户端请求全部由网关接收,再通过网...

2017-06-24 14:17:39

阅读数:3504

评论数:3

游戏开发的艰辛历程与升级展望

从第一款游戏《贪吃蛇》开始,到《水果忍者》、《时空猎人》,再到如今风靡全国的《王者荣耀》,手机游戏迎来了百花齐放的繁华时代。怀着对游戏行业的热爱,一批一批游戏开发大军加入了队伍。即使从业道路很艰辛,我们还是一如初衷,希望在奉献自己力量的同时,能够从中收获财富与自我成长。

2017-06-22 22:31:24

阅读数:1576

评论数:2

游戏服务端防御式开发

游戏服务端承担着游戏复杂业务逻辑实现,玩家数据持久化等重要作用。作为一个合格的服务端开发人员,我们有必要遵守一些好的防御手段,让自己的代码少踩些坑,或者当出现了bug,能够在第一时间进行抢救。本文是我在开发过程中的经验总结。

2017-05-29 21:04:42

阅读数:1260

评论数:1

理解Go的Goroutine和channel

go的goroutine和channel组合为解决并发场景提供了新的实现手段。本文主要是帮助读者更好地理解goroutine和channel两个概念。

2017-04-21 14:30:39

阅读数:1268

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭