- 博客(60)
- 资源 (1)
- 收藏
- 关注
原创 [开源]excel文件自动代码配置生成器
excel文件代码配置生成器github地址 由于xls版本采用旧格式,读取的数据会导致部分异常,仅支持xlsx后缀格式(office 2007 及以后版本)安装插件后,把xlsx文件放入工程,并且右键属性,在自定义工具中输入,ToCS(注意大小写) 在弹出对话框中,找到插件目录,输入(注意最后有下划线),并刷新,如果刷新出有数据则为正确路径。 关闭,右键运行自定义工具,即可生成代码。注意
2017-05-15 14:36:23
2523
原创 基于MongoDB REST API 以及XMPP的游戏数据同步架构
导言在开发轻量游戏的前提下,传统数据显得较为笨重又不够灵活,所以NoSQL一般作为首选,而在开放了REST API之后,可以直接解放后端人员的数据交换的请求,该公开的数据都已经在数据库里保存,自己去获取即可,剩下就是一个简单的消息丢该订阅系统了。XMPP的pubsub协议,正好确保了这个问题。修改者,去修改数据,发起pub消息。订阅者获得订阅消息,再根据自我需求决定,是否重新去获取数据,这就完成了一
2017-05-05 14:54:04
848
原创 [开源]ApolloClr一个新的IL解释器,并且能运行在Web上
[开源]ApolloClr一个新的IL解释器,并且能运行在Web上导言:隔壁有L#,又有ILRuntime,理论上不应该写这个东西,最近补.net IL 写Aop,想想顺手写个IL解释器,还能解决下携程实现问题,也就开了这个项目,希望努力能写完吧。GitHub地址:[https://github.com/icesun963/ApolloClr](https://github.com/icesun9
2017-04-06 17:10:23
1238
2
原创 Themis 序列化协议说明 V1.1[开源]
Themis 序列化协议说明 V1.1协议特点:无需预定义的二进制格式,可添加任意Key/Value 类Json风格,又可使用固定结构来进一步压缩交换空间和编码效率。二进制协议为Zigzag,大大缩小所占用空间,完全兼容Json协议,开发期Json带来可读性和解析便利性,后续可通过预定义描述,对传输体积进行压缩,并且提供ToJson接口,在客户端最低成本接入新协议,序列化协
2017-03-17 09:42:22
498
原创 一种新型的游戏服务器架构CDDE
1.传统的数据模式以整个实体数据读出,处理完成后,整体数据再写入。而在游戏行业,对同一数据的操作频繁性,使得传统处理方式更容易的暴露所在的瓶颈,所有的业务逻辑都压在数据库的负载上,导致可用性以及响应速度的下降。 为了解决这类问题,常规的做法就是在数据库之前防止一层缓存层,减少对同一数据的读取操作,以缓解对资源的竞争。这样处理之后,数据库的权重能力下降,因为缓存中的数据可能更新,那么数据库中
2016-02-26 13:49:10
1037
原创 arduino 蓝牙SSP远程烧录
之前有看到过通过TCP/IP烧录,或者通过TTL + 蓝牙主模块 连接蓝牙从模块进行远程烧录的,不过这个都比较复杂。TCP/IP需要网络模块,配置和模块都比较复杂。USB to TTL+蓝牙模块,笔记本上还要插一个USB+蓝牙模块也好不了哪里去。这里推出的就是一套比较简单的蓝牙远程烧录解决方案。仅需要一台带蓝牙的笔记本/PC,然后需要一个简单蓝牙串口模块,我这里用的ATK-HC05,
2015-08-15 14:13:16
6500
4
原创 .Net 与 Javascript 混合编程系列(如何穿透.net 和 js 的边界)
上一篇研究了如何做到CS和JS互相透明访问的设想,经过一些实践,这里做出了一个小DEMO。这里有第一个演示类: public class TestCSClass { public TestCSClass() { } //如果可被重写则重载 public virtual object Met
2015-07-02 15:55:08
2257
原创 .Net 与 Javascript 混合编程系列
之前的文章有提到 edge 和 nodejs 交互,通过node的模块为C# 提供一些扩展,这个还是比较方便。这里说下为什么要使用js。1.SharpKit是一个用于在编译时将C#语言转换为JavaScript的工具。 从试用上来说还是比较强大的,基本上支持大部分语法。2.c# 虽然是比较强大的,但是在一些方面还是比较薄弱的,而且在一些平台上还有些限制。
2015-06-25 17:28:09
1360
原创 类dota战斗机制记录——守卫系统以及连环冰冻实现
守卫系统1.守卫是一个普通的英雄2.守卫继承与释放英雄的属性数据3.守卫用于执行比较复杂的逻辑4.守卫不一定拥有普通英雄的AI,但是可作为释放技能的载体。5.守卫有一定的持续时间使用对象举例:1.治疗守卫(剑圣)2.陷阱(圣堂刺客)3.弹射类技能,连环霜冻(巫妖),闪电链(宙斯)4.重生(肉山盾)连环霜冻1.在目标身上创造一个守卫2.守卫携带技能,连环霜冻单次伤害。3.守卫携带
2015-06-12 14:56:24
872
原创 类dota战斗机制记录——u3d动画以及特效配合
英雄普通攻击过程:选择一个目标->触发前摇->播放前摇动画->等待前摇完成->释放投掷物->触发后摇->播放后摇动画->完成动画效果实现:分类:1.投掷物,一般丢出一个投掷,绘制一个弹道跟在投掷物上,投掷物销毁时,一般会在目标身上释放一个爆炸特效.2.定点型特效,无弹道过程,直接在目标身上作用一个特效.3.连线性,从发起方和被击中放使用一个特效连接,控制连接时间4.buff型,在目标对象添
2015-06-12 14:38:23
1333
原创 类dota战斗机制记录——基本系统
名称解释:1.战斗场景,负责管理场景中所有物体,也是系统中事件的入口2.物体,包括所有战斗物体和投掷物,英雄怪物,守卫3.投掷物,投掷出去的弹道4.守卫,继承与英雄,用于实现特殊技能实现的隐藏/非隐藏物体5.碰撞器,必须由投掷物携带,并且可携带多个,用于作用携带的buff6.buff,包含所有的效果,从伤害/位移/debuff/dot/都归此类7.事件循环树,updat
2015-06-12 14:12:33
1016
原创 离职之前--新的起点
今天本来是一个值得高兴的日子,我却有点伤感,因为我即将离开为之奋斗三年的团队,暂且称之为奋斗吧。。。 来到杭州仅仅是因为当初回老家过年路过时,邂逅西湖边上那一抹红色的朝霞,忽然觉得也许在这个悠闲的城市是个不错的想法。 于是乎,过完年就直奔杭州而来, 那是还是一个自由的soho,一天到晚在租的小房子里无所事事,喜欢在雨天静静的去湖边溜达,享受这喧嚣中的宁静,也许从骨子里我就是一个
2015-02-14 03:45:58
1157
1
原创 NodeJs edge.js VS IIS 性能测试
最近在写一个HTTP服务端RPC框架,在差不多成功后,进行了一次本机测试.测试开发机器凑合看,客户端和服务端都在同一机器上:cpu : i3-2120 3.3GHZ内存:4g操作系统:win7 32位测试工具:HttpTest4Net(小巧简单)计算单位:RequestPerSecondII环境A: HttpRequest -> HttpHand
2015-01-08 16:53:02
2556
原创 OOP游戏开发随笔--开发历史小故事
最近乱七八糟的写了一堆东西,大家凑合看.这里是一个简单的开发历史小故事...1.开始我们直接用SQL拼接完成这类事情.无非是不断的读表,写表,返回数据2.然后采用了标准三层结构/ORM框架,把读表/写表变为读取/修改Model对象,保存Model对象,返回数据3.接着,发现读取比较费资源,于是乎我们把Model缓存起来,大部分时间就变为修改Model/保存Model.返回数据4
2014-12-29 16:35:53
1369
原创 面对对象之差异化的网络数据交互方式--单机游戏开发之无缝切换到C/S模式
上一篇这里描述了一个关于差异数据在开发过程中的一个优点,这里来演示另外一个特点:单机开发之无缝切换到C/S模式一般C/S模式都面临一个问题:就是开发过程中的调试难题,因为涉及到客户端和服务端相关方法,如果由某个人来编写那么也是一个简单的事情.如果由2个人编写,会带来一些平台上的区别以及编码的区别.简单的说,如果我们在开发时完全的避开C/S,然后经由某个机制,可以直接让模块跑到服务器
2014-12-22 14:01:27
1930
原创 分布式异步消息框架构建笔记5——如何避开并行编程中的数据共享陷阱
任何多线程/并行/分布式都会面临一个问题,“数据状态共享"。有经验的开发者会说,要想正确有效的避开避开状态共享,那么就应该别用任何状态共享。虽然不得不说,这是一个不错的建议,但是没有状态共享,你需要如何才能知道非本地数据的状态?也许你会说使用消息,使用消息来处理,那么我们丑陋的回调金字塔应该叠的更高了。不得不说这是一个解决办法,但是为了保持状态不被修改,那么我们还得在远程申请一个写
2014-12-11 11:31:19
1084
原创 分布式异步消息框架构建笔记4——分布式消息路由
上一篇实现了消息的自动路由,这边写了一个小测试,大家可以猜一下运行输出结果是什么? public class RouterTest { public static void DoRouterTest() { var contextA = Context.Creat("A"); var contextB
2014-12-10 12:01:54
1654
原创 分布式异步消息框架构建笔记3 —— 自动消息路由
这个系列慢慢变成先设想后完成的模式了,上篇我们测试了以Yield当多任务处理.楼主写了个小Demo也完成了类似功能,并且支持中途等待,直接等到完成回调后,继续处理下一阶段.这个功能可以完成类似逻辑事件流,比如C需要等待A,B完成后再执行,而且写法也比较简单.直接上代码: //创建事件,把Handle丢入Yield队列, //执行
2014-12-09 11:59:04
1108
原创 分布式异步消息框架构建笔记2——yield机制及单线程多任务系统
上一篇这边进行了一些结构上的设想,主要的核心内容就是消息和单线程实现.这篇就介绍下如何通过C#中yield关键字,达到单线程执行多任务实现.首先了解下yield的使用.. public static IEnumerable YieldTest() { int x = 0; x++;
2014-12-08 12:57:17
1569
原创 分布式异步消息框架构建笔记 1—— 设想
前几天在查看关于 Actor模式的一些资料,包括Erlang在游戏中一些资料,虽然本人不会Erlang但是稍微看了下编写方式.觉得还是有可借鉴的地方的.因为实在不熟悉不枉加评论了.这里说下自己的一些理解.从这几年Erlang和函数式编程的崛起,引发OOP编程的一些不足,但是OOP并不妨碍获得相关的优点,只不过需要一些有效的框架和规范支持。首先这里有几个简单的问题:1.OOP方式面临多线
2014-12-05 16:38:57
1012
原创 Unity3d 游戏汉化之IL注入文本替换--木石世纪
最近下了个游戏叫木石世纪(Timber and Stone),沙盒游戏类,看着还不错.搜了下游戏资料,有人求汉化但是由于是小众游戏,没人出汉化.看了眼是Unity3d的,既然是.Net的,只要资源不是在资源包里,应该都还是蛮简单的.刚开始做了个字符串替换,发现有些地方还是比较麻烦,还不如拿UnityEngine里面的GUI函数开刀,也就是有了这么一次简单的哦汉化过程.首先写个简单的类用
2014-11-17 15:47:05
9073
3
原创 面对对象之差异化的网络数据交互方式
面对对象之差异化的网络数据交互方式传统开发C/S还是B/S应用都会经过这几个步骤1.编写定义服务端实体类,一般还需要映射到数据库2.编写定义消息类3.编写定义客户端实体类,一般服务端实体类会比客户端多一点,当然也可以和服务端公用.4.编写应用逻辑5.赋值返回数据到消息类,然后进行返回这里来讲解一种简单的模式进行优化和解放这些繁琐的体力活.
2014-11-14 14:43:32
2885
原创 多人即时战斗游戏服务端系列[3]--日志类及Config类以及Excel生成类
日志类,Config类,以及Excel to cs 相关辅助类.
2014-11-13 13:42:18
1641
原创 多人即时战斗游戏服务端系列[2]--90坦克Online游戏对象介绍以及渲染机制
多人即时战斗游戏服务端系列2,一个面对对象的游戏服务端对象设计,包括类图和一些机制介绍.
2014-11-13 12:58:33
2275
原创 大话快速开发——III 回归
1.简单的拥有反向缓存更新功能,意味着可以轻松扩容,虽然需要付出更多的CPU和内存2.编码开发更简单,无需关心修改,无论如何都仅拥有一次修改/或者不修改。3.获得基于异步写入的优秀响应性能,却没有延迟写入的一些缺陷。4.拥有即时写入优点,却更少的关心更新逻辑。
2014-02-13 21:19:15
919
原创 OpWeb——MySQL同步模块(2)
上一篇说了简单的MySQL同步模块,用于简单的查询。但是文件存储还有个弊端,如果你需要进行批量修改或处理的时候,处理文本是个比较头疼的问题。1.一不小心可能处理错了数据,使存档不可读取。2.从单目录文件上来说,存储规模不够大,而且备份需整个文件拷贝,也是比较浪费空间的。但是,文本在开发和测试期非常简单。1.测试人员无需文本进行相关修改和读取。2.快捷的管理,无需任何数据库方
2014-01-10 23:34:56
1121
原创 OpWeb——MySQL同步模块(1)
一直以来,我们的项目都是基于文本文件数据进行存储,我喜欢这种存储方式。首先,他比较简单,并且便于查看和修改,而且非常方便。我觉得唯一的麻烦就是如何管理这一堆用户数据。然而对于其他开发者来说,查询、统计、处理文本数据是个糟糕的事情,更倾向于SQL类存储。MongoDB是可以查询,但是如果能直接同步到MySQL是否会更顺利一些?刚开始计划是这样的:示例:玩家:{ OpId
2014-01-09 22:54:41
1170
原创 OpWeb——mongodbsync 之 p2p移植
最近在尝试做一个双人互动的Js小游戏,大致是一个Box2d类型游戏.总所周知,物理类游戏仅适合单人游戏,因为涉及到大量的数据交互和同步.然而OpWeb框架致力于简化交互以及开发过程,于是乎尝试编写这么一个小游戏用于演示.但是OpWeb运行于NodeJs,这是大家不愿意看到的,最好有个直接在线的Demo,在线必然避免不了服务端.上周发现个好东西,WebRTC webp2p标准,虽然还
2014-01-03 14:59:08
1122
原创 MVC模式数据流程图—— OpWeb框架系列[2]
OpWeb引擎遵守的是数据绑定监听,客户端仅关心Model和View的交互,服务端仅关心Model和操作的交互.简单的举例就是 比如你界面上绑定了一个Nick.操作流程为: 1.客户端绑定某个UI部件到Nick.(监听其改变,刷新下) 2.服务端接受修改Nick服务,修改Model的Nick到新值.完成,客户端无需关心何时修改,修改成什么样子,无需关心在什么地方修改
2013-12-25 14:27:41
1791
原创 游戏开发模式进化(OpLog协议说明)—— OpWeb框架系列[1]
目前公司以开发网页游戏为主,这里就从游戏场景说起。场景描述: 游戏简化版是这样的,游戏分为养成和战斗,玩家通过不断的战斗获得战利品并升级自己,然后挑战更强力的BOSS,貌似一般游戏都这样!那么我们就有了2个场景,玩家面板和战斗面板。玩家面板有几个数据:玩家名字,当前金钱,当前等级,当前经验,装备武器,背包。战斗过程不说:战斗会玩家会获得经验和物品或金钱。传统的
2013-12-24 23:38:07
1735
原创 OpWeb[0.0.3]--光速无服务端创建一个AJXA聊天程序
上一篇我们简单测试了如何快速构建一个聊天程序,虽然很简单很Demo.但是依然摆脱不了B/S的方式去开发. 现在OpWeb[0.0.3]版本给你带来了更令人兴奋的开发方式,全客户端模式.更快速,更便捷的开发模式. 废话不说,直接上index.html easy chat test
2013-12-24 14:34:45
1077
原创 OpWeb -- 快速构建一个简单的Ajax聊天程序
快速构建一个简单的Ajax聊天程序:下载OpWeb框架: https://github.com/icesun963/OpWeb在Service/Demos/目录下创建一个目录叫:cometChat新建一个服务端脚本:chatService.jsvar myApp = function(){ //对应的映射根对象 var chatDb=func
2013-12-23 13:45:13
1413
原创 [开源] OpWeb 框架 --快速高效的实时交互框架(更新至 0.0.4.0)
一个轻量高效的实时交互开发框架,用于开发实时Web App 或者 网络游戏。这是什么?这是一个Web在线对战射击游戏(MMOA)的开源版本,该游戏依然在运行中。原有平台为C#,现在我通过SharpKit把它移植到到了NodeJs平台!发现NodeJs给我带来更好的体验和想法,虽然有些地方很糟糕,但是这并不是问题。现在已经升级到0.0.3版本,虽然还不算成
2013-12-07 23:18:08
2221
原创 SharpKit 之移植 --I
今天试着移植公司的项目库, 首先是公用类库,包含配置库、日志库、以及序列化库,以及线程库, 测试了几个简单的功能, PS.反射性能不错,有点超过C#原生反射的样子。(不过对于其他手段,肯定慢了。。) 发现几个问题: 1.枚举支持不算很好 2.不支持Goto(虽然没怎么用) 3.需要为所有的类加上JsType,并指定File路径 包括所有依赖的类
2013-12-02 19:10:02
823
原创 玩转NodeJs之Clr JavaScript--之框架
上篇测试了Edge对于Clr的支持,于是开始构造如下的架构: 转换用的是SharpKit(商业软件),测试了基本转换,包括linq,反射,以及一些基本测试,还移植一个简单的小类库,基本上问题不大。于是就准备开始准备重构现用的架构。继续上图: 全程采用C#编写,会有部分Js代码用于绑定,理论上一个跨平台的框架。允许直接运行于C#,或者采用NodeJs独立运
2013-11-30 13:27:27
1523
原创 NodeJs与.net之edge
.net下,话说写起网络层来确实比较蛋疼。 NodeJS以其高性能的IO吞吐与便捷的异步开发著称。 如果把把.net与NodeJS结合会如何?以高性能的NodeJS Host +c#便捷开发=高性能便捷开发组合。 这时edge出现了,正好在于我需要的时候。 技术选型比较简单,NodeJS测试数据不用多说了,现在就是edge交互测试的问题了。 简单测试
2013-11-18 19:52:52
3285
2
原创 大话快速开发--II 进化
上一篇,还是在一年多前。为什么会有这篇续呢?因为笔者这边又进化了,找到了真正想要的开发模式。并且经过时间的检验,这种模式和架构是科学并合理的。 从上一篇可以看出,在试图解决C/S或者B/S中烦人的约定以及接口的问题,不断的用户交互以及在这些中间所涉及到的约定以及乱七八糟的维护问题。 上一篇的结构是这样: 拖几个控件做界面-> 访问桥接层初始化方法->初始化实体数据
2013-11-17 10:19:14
793
原创 大话快速开发--桥接层之代码生成器
看看上次写博客已经是近一年钱,CSDN虽然常逛,但是不怎么说话.如今有个小项目,涉及到一些所谓的高效开发,又需要为后期做准备.忽然有记录一下设计流程的想法,就在这里进行试着记录了.各位看客,有什么不同意的地方还请拍砖.(如果拍,请重拍...) 场景1: 首选是一个需求变动很大的小游戏项目B/S结构,涉及到大量的数值规则以及逻辑.开发初期,为了更好的控制游戏策划期的风险,采用了一个简单的
2012-07-17 11:08:58
2887
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人