# Tanks_Server_StepLock
**Repository Path**: jacob_ddl/Tanks_Server_StepLock
## Basic Information
- **Project Name**: Tanks_Server_StepLock
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2017-07-16
- **Last Updated**: 2020-12-19
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
巨人网络技术部Lua手游服务器框架.
实现了一个轻量的手游服务器。
C++代码一万行左右,一个中级程序员可在半天内理解整个架构并开发。
而征途服务器有100万行C++,一个高级程序员需要半年时间阅读代码才能大概熟悉。
轻量的目的是容易理解。
希望新创建的手游项目优先采用该服务器,同时部分模块可以提供给征途服务器,
推动征途服务器代码的演进。
采用该服务器,手游开发团队仅需配置一名中级C++程序员(Lua编程可现学现用),
一个月内即可开发出核心玩法提供测试。后续深入开发仅需添加Lua脚本程序员。
为实现轻量,服务器一方面需用Lua脚本处理游戏逻辑,另一方面是采用第三方库。
游戏逻辑默认为Lua实现,部分性能要求高的逻辑可C++实现,如寻路,AI行为树。
采用现成的代码库,可以使简化设计,提高代码可靠性,性能上也有保证。
采用Lua脚本的目的是让U3d客户端人员可以开发服务器脚本,尽量做到服务器客户端共享脚本。
# 特性
* 采用protobuf定义服务,以RPC语义通信。
* 用Lua实现逻辑。Lua可热更新,实现逻辑更新,但不会丢失数据。
* 分布式系统架构,以提高可用性。可加机器扩容。
* 支持异步操作 MongoDb, Redis
* 跨平台,可Windows上开发并调试,Linux上运营
* 可动态配置的日志,可临时打开并闭调试某类日志
* 服务器内部可直接跨服调用Lua脚本
# 非特性
未来会实现,但是近期不太可能实现的功能有:地图,寻路,AI.
所以目前本服务器仅适合开房间式的游戏,还不能用于带地图的MMORPG。
# 子目录说明
* bin
编译输出目录,也是执行目录。
* build
Windows下构建,包括premake脚本,VS工程和编译输出
* deps
依赖库(git submodule)
* doc
文档
* scripts
lua脚本
* src
源码目录
* tests
一些测试代码
* tools
工具
# 文件说明
* findexp
find脚本
* README.md
本文
* todo.txt
待办列表
# 编译及启动
详见:
build/ReadMe.txt
bin/ReadMe.txt
# WOA U3d 客户端测试
要求 U3d 5.3 或更高。
猫狗大战(War Of Animals, WOA)客户端在公司SVN服务器:
https://192.168.150.238/svn/GiantCode/TechDept/GameBox/trunk/code/games/WOA
测试时,需修改服务器地址与端口,打开scene main,
在Hierarchy界面中选对象 _SceneCenterObject,
在Inspector界面的最下方修改属性:
Giant Server IP : 127.0.0.1
Giant Server Port : 8003
# 其他
* 系统架构: doc/architecture.txt
* redis 本机测试可安装Windows版:
https://github.com/MSOpenTech/redis/releases
windows下使用RedisCluster集群:
http://blog.csdn.net/yubinpll9110/article/details/51579307