lua, 利用lua_tinker来封装。
3,entity/component
4,模式: 收到网络消息后,如何分发----利用观察者模式 来松耦合。
开发一个独立的类来实现观察者模式(一个被观察者队列),被观察者通知消息,观察者注册和处理。观察者和被观察者之间不直接调用。(直接调用了还叫松耦合么。。。)
可以参考cocos2d-x的通知机制。
5,协程,不知道何种情况下会用到。可利用lua来做。自己实现:http://www.chiark.greenend.org.uk/~sgtatham/coroutines.html
6,服务器架构:
client---gateway server---scene server
---db server
--world server
6.1, 数据库服务器(storage server):
先用mysql。利用官方提供的c/c++接口来访问。先开发一个稳定的服务端。后期可以利用缓存来提高性能。如memcache+mysql. 或者直接用
持久化key-value数据库redis.
忠告:做任何工具之前,先看看是否已有现成的工具。如我自己要去开发memcache+mysql, 而MySQL5.6.2版本增加了通过Memcached协议直接访问原生Innodb API的功能
,不要做无用功。磨刀不误砍柴工。
程序架构:
逻辑无关的底层库, 静态库方式(也可以用head only lib方式)
预处理宏,只有头文件,没有cpp文件的情况下,在main中#define才有效果。不然要在项目属性的预处理命令中添加宏。-->head only lib
libs---libbase
--------libnet
逻辑相关的框架, 源码方式,在具体的服务器中包含
framework---entity, task, 寻路
具体的服务器,包含框架代码,只处理本服务器相关逻辑。
servers---gateway server
-------------scene server
-------------db server