免内置mysql和客户端媒体的kbengine demo,kbengine通用版

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介: 关键字:kbengine换外部mysql数据源和外部客户端托管地址,kbengine js demo外部托管 黑屏,kbengine外置mysql

关键字:kbengine换外部mysql数据源和外部客户端托管地址,kbengine js demo外部托管 黑屏,kbengine外置mysql

kbengine的引擎意义

kbengine是一个优秀的游戏服务端逻辑引擎 大于 其作为游戏服务器引擎存在的意义(假设游戏应用域架构首先按CS这个粒度来分脱离不了服务端客户端之分的话 — 当然并不排除更广泛的游戏方案域抽象将CS视为低级抽象),它为游戏APP定义了一个appstack。就像GAME界的WEBAPP一样,开发游戏就是开发一些gameapp(人类总是要研究终极之道),你也可以叫它WEBGAME engine.

然而此WEBGAME指的并不是客户端富网页技术和微端发布那些,而侧重指的是其使用了WEB的开发发布模式,是GAME界的“WEBGAME引擎”(对GAME这个东西方案域和程序域开发发布通观的总抽象),首先要说的是它运用了广为流行的CS和BS架构,

1,它分开了游戏C端和S端,使得不同终端平台上的C端可以共享一个服务器,而服务器上,可以同时共存很多游戏。你可以叫他们assert,mod或其它什么东西,呆会详解

2,其次,它隐藏了开发者需要从0开始面对的所有东西,它封装了协议,甚至最终的游戏逻辑定义,它并不提倡直接对引擎开发,开发者仅需要定义游戏领域逻辑。它透露给开发者立马可工作产生一个游戏的那些方面(服务端的游戏编辑器,当然带点开发)

3,重点在这里——它封装的程度是使用户(包括非专业的)只需要作换装和UGC就可以开发出一个游戏的功能,就像客户端的gamestudio一样,而且kbe是游戏容器。它像WAMP架构一样,负责运行,整个开发发布就像WEB界成熟的那些框架和应用服务器一样。当然还有开发范式。

谈到UGC,这其实也是WEB应用的方式。WEB是开发更是应用,它使用户直接参与程序(内容)建设。

总之,mod+ugc,这一切,使游戏编程有了终极游戏编程的味道。这也是当今所有领域编程最终要达到和到达的境界。

什么是终极编程,编程的最高境界是什么

终极编程真的存在,然而并不需要是类似编程葵花宝典之类的东西,我们可以理解让编程体现为适可而止,有止境的境界,在工程上(编程上让事情变得越来越容易最后不需投入或极少投入再学习成本),通往其的方法可以有很多种,但一种无疑是那种直到脚本和可视编辑器的封装。就像WEB前端,以及上面的GAME MOD开发一样。

如果编程方法可以归结为一门最终的哲学,学者可以利用它举一反三,完成自举学习,那么这种元性质的哲学,就是终极。
图形界面的出现和DLL API机制,VB可视化,在这个意义上都是伟大的铺垫作品,面向对象也是一种终极编程,它在语言内在抽象接近平民,各种OO范式,PME,再后来,框架容器,都是使编程变得终极的方法和基础工作。
kbengine只是运用了所有这些(当然还有更多,比如接下提到的持久机制)。
kbengine的程序技术

在程序技术上,KBE使用到了分布式架构和传统服务器多载的方式,它的各个部件可以分布式存在不同物理机甚至进程中,扩展负载,本身作为分布式云存在。

然而,以上所有这些,都不是重点,KBE对“服务端游戏逻辑”的应用抽象,才是它的根本。它将一切抽象为实体,空间,等等,它首次提出了对游戏逻辑->世界的抽象,这种方式下,它完全可以视RPG/RTS为同一个游戏(准备地说是游戏虚拟世界)。因为可以共享一个服务端的世界。产生区别的仅是客户端。可以产生混合的游戏世界。

其次,它对于协议处理,数据定义,这些方面也有自己的创新。特别是它对组件和XML持久数据的应用。这些都是让游戏编程变得终极的方法(硬要给点提示的话:持久化和XML语义化=使数据与逻辑对接,让数据化代码转领域逻辑的终极手段,将不可见的黑箱逻辑变得可编辑hook到用户可视化操作,跟脚本变量,数据库,ORM等,都有异曲同工之妙)

未来会专门详细一篇文章分析其架构。

修改kbengine使得mysql和客户端可外置外部托管

原KBE引擎python,js,cpp都是大小写敏感的,作为混合编制的程序体系,一个kbe demo要处理这些,kbengine官方的方法是强制验证大小写。规定mysql.ini大小写。这使得对mysql环境有限制,这里谈的即是让kbengine换外部数据源和外部客户端媒体文件托管地址的方法。

这里所用到的是0.9.4的kbegine src和js demo.

1,首先cpp src端要处理一下,在srclibdb_interfacedb_interface.cpp中将如下三行注释:

//if(ret)
// {
// ret = pdbi->checkEnvironment();
// }

2,在kbegine asserts设置文件中,server.xml中,强制外网IP为某个IP:

115.28.103.100

3,改动最大的地方,.py中有大量大小写要改。media js中要改。

首先,Main.js,IP换成外网地址,然后将client media放到外部托管环境中发现大部分加载黑屏是因为JS大小写敏感获取不到正确的类名:

方法:在chrome F12下,不断测试,找出monster.js,npc.js,avatar.js,gate.js,account.js中的KBEngine.xxx中的xxx要改成小写,注意文件名中的大小写不用处理

以下是最终能运行的测试图,

下载地址及相关msyscuione程序包见原贴,之所以不发具体地址是因为地址经常会失效。只能维护在原贴了,原贴也有本文新增内容及错误堪正方面的修改。

以后demo发布类带下载的文章基本也会这样所以第一时间找不到资源请去官网谢谢。


(此处不设回复,扫码到微信参与留言,或直接点击到原文)

qrcode.png

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
1月前
|
SQL 关系型数据库 MySQL
【MySQL】— —熟练掌握用SQL语句实现数据库和基本表的创建。熟练掌握MySQL的安装、客户端登录方法;熟练掌握MySQL的编码、数据类型等基础知识;掌握实体完整性的定义和维护方法、掌握参照完整性
【MySQL】— —熟练掌握用SQL语句实现数据库和基本表的创建。熟练掌握MySQL的安装、客户端登录方法;熟练掌握MySQL的编码、数据类型等基础知识;掌握实体完整性的定义和维护方法、掌握参照完整性
101 1
|
7月前
|
网络协议 关系型数据库 MySQL
1.4 启动MySQL客户端程序
1.4 启动MySQL客户端程序
45 0
|
7月前
|
关系型数据库 MySQL 数据库
【Navicat 连接MySQL时出现错误1251:客户端不支持服务器请求的身份验证协议;请考虑升级MySQL客户端】
【Navicat 连接MySQL时出现错误1251:客户端不支持服务器请求的身份验证协议;请考虑升级MySQL客户端】
381 0
|
1月前
|
关系型数据库 MySQL 数据库
rds安装数据库客户端工具
安装阿里云RDS的数据库客户端涉及在本地安装对应类型(如MySQL、PostgreSQL)的客户端工具。对于MySQL,可选择MySQL Command-Line Client或图形化工具如Navicat,安装后输入RDS实例的连接参数进行连接。对于PostgreSQL,可以使用`psql`命令行工具或图形化客户端如PgAdmin。首先从阿里云控制台获取连接信息,然后按照官方文档安装客户端,最后配置客户端连接以确保遵循安全指引。
86 1
|
3月前
|
SQL 关系型数据库 MySQL
免费MySQL数据库客户端推荐
免费MySQL数据库客户端推荐
63 0
|
3月前
|
SQL 关系型数据库 MySQL
MySQL数据库免费客户端简介
MySQL数据库免费客户端简介
41 0
|
4月前
|
SQL 关系型数据库 MySQL
⑩⑨【Tool】MySQL常用客户端管理工具:mysql、mysqladmin、mysqlbinlog、mysqlshow、mysqldump、mysqlimport、source
⑩⑨【Tool】MySQL常用客户端管理工具:mysql、mysqladmin、mysqlbinlog、mysqlshow、mysqldump、mysqlimport、source
43 0
|
4月前
|
存储 缓存 关系型数据库
MySQL处理客户端请求
可以提高系统性能,但是也因此需要维护这块缓存而造成一些开销。比如每次都要去查询缓存中检索、请求处理完后需要更新查询缓存等。从MySQL5.7开始不推荐使用查询缓存,在MySQL8.0中查询缓存被删除。
|
7月前
|
关系型数据库 MySQL
3.3.2 【MySQL】客户端和服务器通信中的字符集
3.3.2 【MySQL】客户端和服务器通信中的字符集
72 0
|
8月前
|
存储 缓存 关系型数据库
MySQL处理客户端请求
简单来说 MySQL 主要分为 Server 层和存储引擎层: Server 层:主要包括连接器、查询缓存、分析器、优化器、执行器等,所有跨存储引擎的功能都在这一层实现,比如存储过程、触发器、视图,函数等,还有一个通用的日志模块 binlog 日志模块。
MySQL处理客户端请求