Dorothy SSR性能参数介绍

Dorothy SSR的程序中如果打开Director.displayStats = true,或是每帧调用ImGui.ShowStats(),就会在界面上展示一些引擎性能相关的参数。这些参数包括渲染器(Renderer),多线程渲染(Multithreaded),主渲染缓 »

Dorothy SSR项目

功能展示 项目地址   项目地址在这里:码云,Github。 项目目标   Dorothy SSR项目的最终目标是制作一款跨平台的,专门用于制作2D游戏的“魔兽争霸3世界编辑器”。这个目标由三个子目标组成: Step 1   开发一个跨平台的底层游戏框架。功能包括或是整合图形渲染 »

Dorothy Xml编写UI 2

使用了Dorothy Xml编写界面以后,接下来要解决的问题是,为Xml中定义的纯展示界面增加界面逻辑。我们可以使用Dorothy的class类的机制,写一个继承Xml界面组件的带有界面处理逻辑的新的类。比如我们有一个按钮的Xml组件。 <!-- ButtonView. »

Dorothy Xml编写UI 1

Dorothy编辑器的项目现在进展到了场景编辑器的部分,因为担心项目太过复杂,用之前随意地进行编码的方式可能会导致后期难以维护。尤其是之前几个编辑器的代码都是一个.lua文件动辄上千行代码,混杂着创建UI组件,设置布局大小,颜色外观,创建交互动画特效,响应事件回调,处理编辑器 »

Dorothy新版消息机制

Dorothy的Lua接口中的消息处理,从最初的函数接口: -- 注册 layer:registerTouchHandler(function(eventType,touch) if eventType == CCTouch.Began then return »

Dorothy Lua开发建议

1.禁用全局变量   可以在zbstudio中使用Analyze(Shift+F7)功能检查全局变量的使用。但是可以通过模块做数据的共享,但是只能共享基本数据类型包括string, number, boolean, table, 没有俘获userdata类型变量的function »

I++ Talk

The programmer`s three romantic works are OS, Compiler and CG. -- So said the VCZH. Why use scripting language Chrome Network, Webkit, V8, e »

Dorothy物理编辑器

一、物理编辑器的介绍   在Dorothy中有对Box2D物理引擎进行了封装。Box2D是一个十分纯粹的2D物理运算的程序库。给它设定好输入的几何图形以及物理属性,它就能持续地模拟出这些物理对象接下来的速度、加速度、碰撞、弹性和摩擦等等的物理变化来。因为Box2D提供的只是纯粹演 »

Dorothy模块管理

在Dorothy Lua中,如果要使用某一个模块比如CCNode模块,标准的写法是在.lua的源文件开头添加local CCNode = require("CCNode"),之后就可以任意使用这个模块。   这样做的好处很多,在动态语言里比如lua、js和 »

Dorothy面向对象的写法

用Lua编程是非常自由的。闭包、table加上metatable,可以按自己的喜好调教成任意的编程风格。我最喜欢函数式的写法,在写乱七八糟的业务逻辑的时候,可以一边写一边想,想到什么业务规则就随手加什么业务规则,开发效率很高。当然写的时候行云流水很顺畅,写完要维护会费一些力。 »

Dorothy动画编辑器

Dorothy里带了一套自己的骨骼动画库,叫做oModel库,以及可视化的动画编辑器AcionEditor。编辑器可执行版本的下载地址在:这里。 目录   一、基本概念   二、编辑器的使用   三、图片切片编辑界面   四、模型节点编辑界面   五、模型动画编辑界面   六 »

Dorothy Routine

回调函数大家一定不陌生,比如说我们使用一个计时器的功能,时间到了要做一件事,自然就会定义一个自己的回调函数,就像这样: setTimeout(1000, function(){ ... });   在这样回调式的写法里,如果我们要连续做很多件事,每件事之间都要等待一些时间,这 »

Dorothy的安装和配置

首先通过git来clone这个仓库到本地,或是直接下载zip。   然后在Windows下,双击运行Dorothy/tools/tolua++/build.bat生成lua绑定代码。   或是在Mac下,双击运行Dorothy/tools/tolua++/build.sh生成 »

Memory 4

一个游戏最大的内存消耗就是游戏资源的缓存。游戏资源主要包括图片、音频、游戏数据等等,这些资源都得从游戏硬盘上读取并加载到内存中,然后游戏才能使用。   这些资源中尤其是图片对内存的消耗很大,像一张标准的1024x1024大小的png图片加载到内存中,每个像素占4个bytes, »

Memory 3

内存池   内存池就是像一个养鱼池一样的东西,我们需要鱼的时候就从池子里捞出来,鱼少了以后又往池子里补充鱼苗,也就是用来做这两件事的一个池子而已。   我们进行内存分配依赖的new和delete关键字,或是底层的malloc和free函数,它们是一些通用的内存分配回收的系统调用方 »

Memory 2

内存泄漏   内存泄漏就是不再使用的内存没有被释放掉。   最基础的情况,像在C++里的new和delete没有对应使用就一定会发生内存泄漏。C++中进行内存管理有一个通用的做法叫做“RAII”,基本原理就是把内存或是其它要进行“获取”,“使用”,“释放”的资源,封装成C++对象 »

Memory 1

内存的基础使用   程序在运行时对内存使用包括: 程序代码、程序常量 静态变量 栈内存 堆内存   程序代码、程序常量和静态变量,在程序进入main函数执行之前就已经放到了内存里分配了空间。有一个冷知识,如果使用的静态变量是类的对象的话,还会在main函数执行之前就运行构造函数, »

整理心理问题

情绪不稳定得让自己害怕。刚才充满自信high到了极点,接着down得无法做任何事情,现在却暂时变得安静了,也许乘机整理一下思绪。   It`s all about love.   各式各样的Love。   对父母的,对妹子的,对自己的。   我几乎已经不敢提及对游戏的Love »

HIHGame Demo

以参加微软ImagineCup游戏开发比赛拿奖为目标的驱使下,真正开始制作游戏了。   游戏打算以3D世界纸片风格+冒险岛2D横版游戏方式来制作。因为比赛需要使用了微软叫XNA的开发技术,其它正在各种华丽的用上叫Box2D的物理引擎。   目前完成度是很低的,等如果 »

HIHGame 0.1架构设计(其它)

有自动Update功能的Camera是不能同时启用多个的,那样只有在后面启用的Camera才能生效。其实还应该设计一个ICamera的接口,有一个管理CurrentCamera的HIHCameraManager之类的东西负责通过ICamera管理所有的摄像机。An »

HIHGame 0.1架构设计(Animations)

Animation   这个类定义了一个动画类必须实现的功能,像是一个动画类的模版。有个小细节是为什么没有Pause和Resume,先用Speed = 0.0f,Speed = 1.0f好了。 Frame FrameDef   帧动画就是每间隔一段时间改变纹理上的绘制 »

HIHGame 0.1架构设计(Game)

Harmony.Game核心模块 上面是第一个版本Game部分的架构图。 Group RelationShip RelatedGroupInfo   为了提高查询效率,单位的分组使用的是枚举类型。相关组的信息里包含相关的两个组是否碰撞(bool),这两个组之间的关系(& »

HIHGame 0.1架构设计(Core)

  初步实践以后,第一个版本Core部分的设计图。 IUpdatable Drawable   游戏的核心总是围绕着做两件事,更新(Update)和绘制(Draw或者叫做Render)。所以游戏里的东西要么需要更新,要么需要绘制,或是同时需要更新和 »

HIHGame 0.1架构设计(Original)

在开始制作我们的游戏之前,有凭想象写过一个架构图。像是这个样子:   这个图的作用是用来设计程序代码要按什么样的结构去组织和编写。如果把软件开发和建造房屋作比较的话,编写程序相当于堆砌砖头,程序的设计图就对应于房屋的设计图。一所坚固舒适美观环保的建筑一定是先经过详 »

Intro HIH

你有感觉过有一件事无论如何都要去做么?即使这件事看起来也许似乎不是那么的充满意义,也许无法通过它得到任何立刻的好处,没有人告诉你要这样做,并且这件事做起来却还困难得非常非常……有吗?很想知道你会怎么样。   好吧,真没好处的事没人会做,只是不知道怎么去表达,让别人也感受到自己 »

Dorothy Season

进入大学第一个学期以后是一段潜伏期。我开始越来越清楚编程绝对不是制作一款游戏的全部。于是试图通过创建以游戏制作为主题纯兴趣的社团,然后希望能够遇到也迷上这样一件事有各种才能的家伙们。结果并没有遇到,社团也顺利灭掉。不过在这样优秀的大学和学院以及出色的同学们之中,这样不务正业的 »

Early C++ Gaming

进入大学就是为了能够真正地学习到游戏制作的知识和技能。至少在进去之前没想过,要为了能够拿到文凭忍受学校的各种忽悠和玩弄,要纠结自己为什么不把有限的精力用来做努力考高分拿奖学金保研考研出国各种前途无量的事情……呵,没有女朋友之前只是觉得这些事情没有意义,好像更在意自己的追求,不 »

人物属性

Based on D&D 2nd Edition 姓名(Name):李瑾 性别(Gender):男性 年龄(Age):22 种族(Race):人类(亚洲) 职业(Class):1级魔法师学徒/2级平民 力量(Strength):9 敏捷(Dexterity):9 体质( »

Speak Again

我想说关于上次教训的一个应用。   是的,不做跑题的事。不久前有人和我说过现在是好时机可以把软院的游戏制作社发展为学校社团。我听了觉得很可行的,照那个人的说法。成为学校社团后,以学校的名义可以找游戏制作方面的专家学者资深人员什么的来做讲座;可以联系其它高校里的类似组织搞些大的 »

Alignment

重点是不要纠结阵营的问题。   人们可以做九个阵营类型的分类,由对秩序以及道德的看法作为区分,具体可分为   【守序善良】【中立善良】【混乱善良】   【守序中立】【绝对中立】【混乱中立】   【守序邪恶】【中立邪恶】【混乱邪恶】   这九个阵营属性主要是ACG人物设计灵感的 »

游戏人工智能

状态机   状态机系统中的状态具有进入状态,离开状态,接受输入,进行转移等动作。   根据“状态A->接收条件X->状态B”可以画出状态机图或是列成状态表。   原理简单,但是随着设计的状态增加状态间的跳转关系增加,状态图越来越不直观,状态机编码和调试的难度也越来越大 »

委托和消息系统

意义和用途   一个对象内部触发事件影响外部的对象。   想象不同功能按钮的点击事件。 简单处理多个点击事件 #include <FilePanel.h> #include <Program.h> class Button { public: enum »

Dorothy中对象引用的问题

在使用Dorothy时遇到了一些诡异的现象。大概的代码类似这样: -- 核心的伪代码如下 local scene = CCScene() local world = oWorld() local body = oBody(...) local joint = oJ »

Dorothy是什么

Dorothy是Cocos2d-x-Lua的另一个分支,基于原始版本2.1rc0版再次开发的框架。之所以开始在这个版本上做自定义的开发,是因为我在跟随原版的更新,持续做开发的过程中,发现它的功能渐渐变得又多又杂,吸纳了各式各样的扩展,光是骨骼动画的扩展就重复增加了两套代码。并 »

tolua++中的类型系统

一、类型继承   为了在Lua中访问C++对象,tolua++用了些方法将C++接口映射为Lua代码。Lua本身就可以存储调用一些C的对象,包括基本数据类型、C函数、指针等等。但是一个C++对象所拥有的东西要比这些复杂得多。其中最重要的就是C++的类信息。   C++的类包括类的 »

Cocos2d-x-Lua对象生命周期管理

最近研究了Cocos2d-x的Lua binding。在Cocos2d-x中,使用了tolua++来完成C++绑定到Lua的工作。以下便是我对tolua++绑定Cocos2d-x的一些理解和改进。 一、对象的生命周期管理   C++做Lua binding最重要的工作就是管理 »

一些游戏程序的基础知识(二)

在《游戏主循环、帧数控制》中提到了游戏主循环中最主要执行的两个方法updateEverything()和drawEverything(),就是游戏程序中【逻辑更新】和【图形绘制】两件最重要的工作。这里再聊聊图形绘制又是怎么做的吧。 管理场景的节点(drawEverything »

一些游戏程序的基础知识(一)

在《游戏主循环、帧数控制》中提到了游戏主循环中最主要执行的两个方法updateEverything()和drawEverything(),就是游戏程序中**【逻辑更新】和【图形绘制】**两件最重要的工作。先聊聊逻辑更新是怎么做的吧。 管理组件的更新(updateEveryth »

游戏主循环、帧速控制

FPS(Frame Per Second)游戏帧速60帧是指游戏每秒循环更新60次。   一个游戏程序的基本结构像是这样: while (isRunning) { updateEverything(); }   但是这样死循环的话,游戏的更新速度就只与CPU频率有关了,频率 »

Speak 1

说吧。   我觉得和一个宅女最有效的互动方式就是……本来应该这么简单的事,我却弄的那么复杂。最终目的本来也不过如此的,可为什么最初想法出来的时候不直接处理了了事,还弄什么,啊,试图接近她,啊,努力了解她,要增加交流,培养默契。 [THE F WORD],我并不擅长做培养默契这 »

游戏帧速

理论上24帧够(每秒画面更新24次),一般游戏30~60帧(除了早期的2D回合制游戏,那个恐怕10帧就可以了…)。个人感觉30和60没有什么区别,呃,除了60帧的游戏玩着一般更容易卡(那个其实是配置不够才是原因吧)。所以需要从30~60里挑个数字作为本引擎的帧速,因为还不确定 »

兄赵的无向图连结算法

李瑾 21:17:34   给一组点和点之间的连结规则   然后要输出无向图 李瑾 21:20:48   点是有xy坐标的一组点   每两点间满足(|x1-x2| <= A && |y1-y2| <= B) 就可以连结   要连成无向图存储下来 兄赵 »

游戏制作

贴在群空间里没人看所以贴在自己空间里自己看。   游戏制作的几个层次是:引擎->脚本->编辑器->游戏   2010-1-25 ~ 2010-2-25   这段时间开始制作引擎。   第一周引擎设计产生的成果会贴在下面。   后来的时间沉入图形学习的汪洋大海 »

Goodness

这个是布置的作业,我认真而淡定的完成了,敬请查阅。 优点一:   对人很关心   记得高一时经常在下午参加足球或是篮球比赛,然后偶尔有时候比赛结束时都离晚自习很近了,结果这个时候吃晚饭往往就成了问题。这样的情况有一次就被她注意到了,然后被她打着“师姐应该照顾好师弟”的名义,帮 »

理论课大概讲义

本质:虚拟的真实   电子游戏艺术的本质是:“虚拟的真实”。   说到虚拟,电子游戏里无处不充满了虚幻和创作者天马行空的想象,就如我们总是说,游戏里都是假的东西,不要把它当真了。   可是在另一方面,这些幻象与想象,都必定来源于创作者的真实生活,都来源于他们内心中对现实世界的感性 »

MissChen

他一直记得陈老师教的第一个单词“Question”。然后一直在心里淡淡地觉得有点奇怪,为什么这个词那么重要,以至于第一堂课只学了这个单词。再后来,他分析以为,因为自己一直是“好同学”,任何问题都是能由自己努力攻克的,所以有一直不放在眼里的感觉。结果,他忽略了所有的细节,对她的 »