摘要: 周末折腾了2天环境,主要是从windows迁移到mac上,提升逼格告别山寨,迈向专业化。首先,终于把pomelo的c客户端在xcode上跑起来了,至此已基本解决了网络连接问题。由于是第一次用mac开发,踩了无数个坑。(一)libpomelo的编译安装不是用make而是gyp,gyp貌似下下来就可以了,不用安装,但是要修改环境变量。(二)libpomelo依赖的两个库是libuv和jansson,这两个库已经被打包进libpomelo的源代码中了,可以一起编译出来,一共是三个静态库,没有动态库,但刚开始我以为要自己下载两个依赖库,于是从git上下了代码又自己编了一遍,浪费了很多时间,修改pyth 阅读全文
posted @ 2014-01-26 20:55 GAMTEQ 阅读(470) 评论(0) 推荐(0) 编辑
摘要: 在ubuntu上搭建pomelo环境一 安装node.js不要直接安装nodejs, 因为ubuntu上默认的nodejs版本是0.6的太老千万不要下tar包自己安装, 问题很多正确方法如下:sudo apt-get updatesudo apt-get install -y python-software-properties python g++ makesudo add-apt-repository -y ppa:chris-lea/node.jssudo apt-get updatesudo apt-get install nodejs(来源: https://github.com/j 阅读全文
posted @ 2014-01-26 20:53 GAMTEQ 阅读(404) 评论(0) 推荐(0) 编辑
摘要: 一 概述游戏服务器的本质就是基于长连接的socket服务器。 它利用socket通讯来实现服务器与客户端之间的交互。事实上有不少游戏是直接基于原生socket来开发的。相对于简单的socket服务器,它承受着更加繁重的任务:后端承载着极复杂的游戏逻辑。网络流量与消息量巨大,且实时性要求高。通常一台socket服务器无法支撑复杂的游戏逻辑,因此往往使用一个服务器集群来提供服务。游戏应用只能使用长连接,原因如下:通讯的双向性,游戏应用不仅仅是推拉模式,而且推送的数据量要远远大于拉的数据量响应的实时性要求极高,一般游戏应用要求推送的消息实时反应,而实时响应的最大时间是100ms。二 场景分区游戏交互 阅读全文
posted @ 2014-01-26 20:48 GAMTEQ 阅读(790) 评论(0) 推荐(0) 编辑
摘要: 最近一直在看网游(即MMO游戏)架构的资料, 总结了一些要点1. MMO游戏仿真框架MMO游戏的客户端和服务端架构比较相似,上层是网络层, 负责数据包的收发.底层是游戏仿真层, 负责游戏对象的仿真, 如运动,战斗等游戏中的对象, 比如人物, 怪物, 物品, 障碍, 地图都是仿真对象, 游戏业务逻辑就是这些仿真对象的交互(物理, AI等)client-server的数据流:client的玩家操纵人物, 引起client仿真层的变化,client仿真层的变化数据发送给serverserver用这些数据来更新自己的仿真层server把自己仿真层的变化广播给所有相关客户端client用这些数据来更新自 阅读全文
posted @ 2014-01-26 20:46 GAMTEQ 阅读(360) 评论(0) 推荐(0) 编辑
摘要: 最近开始研究MMORPG游戏的网络编程发现国内关于这方面的书几乎是空白, 于是在亚马逊上搜了些英文书Algorithms and Networking for Computer Games这本书前半部分讲AI算法, 比如寻路和模糊逻辑, 后半部分讲各种网游的算法和技巧NetworkingandOnlineGames这本书基本涵盖了网游编程的方方面面, 对网络底层着墨也很多从丢包,抖动到延迟补偿到数据包嗅探, 还讲了GPRS和3G网络的特点, 最后还有一个搭建网游服务器的实例Massively Multiplayer Game Development 1,2这本书有1,2两册,第一册有中文版,名 阅读全文
posted @ 2014-01-26 20:44 GAMTEQ 阅读(680) 评论(0) 推荐(1) 编辑
摘要: 为主角增加特殊技能火焰箭, 需要用到粒子系统以前看的例子中有做好的粒子效果, 于是直接搬来用目前我理解的粒子系统, 是一个发射器, 按照一定的规律向周围发射粒子(方向, 速度, 衰减, 颜色)发射器同时发射n个粒子, 待粒子衰减后, 回收, 继续发射, 就能实现比较炫的效果cocos2dx的粒子系统, 是由一个png图片和一个plist文件组成, 和tiled_map有点类似.png图片定义了粒子的纹理, plist定义了粒子系统的特点, 入发射规律用喷射粒子来模拟飞行的火箭, 难点就是控制喷射方向首先,要把喷射的初始方向设为x轴正向_jet->setAngle(0);然后,假设飞行方向 阅读全文
posted @ 2014-01-26 20:43 GAMTEQ 阅读(326) 评论(0) 推荐(0) 编辑
摘要: 在设计基于地图的游戏,特别是isometric斜45度视角游戏时,几乎必须要用到最短路径算法.Dijkstra算法是寻找当前最优路径(距离原点最近),如果遇到更短的路径,则修改路径(边松弛).Astar算法基于Dijkstra算法,可以理解成,优先寻找离终点的直线距离最近的路径.(距离原点近且距离终点也近)1. 地图建模首先要对地图建模,把地图抽象成图,图由点和有向边表示.对45度瓦块地图建模,以每个瓦块的中心是一个点,每个瓦块有8条边,指向相邻的8个瓦块.(由于边可以由节点算出来,所以为了节省内存,可以不保存边的数据结构)2. 基础数据结构实现Dijkstra算法,要用到以下3个数据结构ve 阅读全文
posted @ 2014-01-26 20:39 GAMTEQ 阅读(4127) 评论(0) 推荐(0) 编辑
摘要: 已知图片上的一个触摸点,怎么求其落在地图的哪个瓦块上?已知:瓦块尺寸64*32pt,瓦块数20*20,地图尺寸1280*640pt如图, 图片的原点是o1地图原点是o2向量:o1p,o1o2地图坐标系的基向量:u,v瓦块的宽的1/2: w瓦块的高的1/2:ho2的坐标: (W, H)p的坐标:(x, y)求:m, n 使得o2p=m*u+n*v解:根据向量减法o2p=o1p-o1o2即o2p=(x, y) - (W, H)=(x-W, y-H)又u=(w, -h)v=(-w, -h)o2p=m(w, -h)+n(-w, -h)则(x-W, y-H) =m(w, -h)+n(-w, -h)得二元 阅读全文
posted @ 2014-01-26 20:37 GAMTEQ 阅读(911) 评论(0) 推荐(0) 编辑