Vulkan大闷锅之启程

事出有因

现在回想起来,那已经是几周前的事了。这是个干燥的上午,我正迷失在信息流中,角落的一行文字引起了注意,“OpenGL已经过时了”。过时了?不等我收拾心神,赶紧Google。霎时间,屏幕上迸出几个大字——V-u-l-k-a-n

Vulkan?干什么用的?能吃么?

就在那时,空气中弥漫着对无知的恐惧。吓得我赶紧学习了一下。

简述

Vulkan算是后继OpenGL的图形接口(不过Vulkan正式发布后,OpenGL居然还更新了…)。为保证准确性,本系列文不打算延伸,其核心的目标是,让程序跑起来。由于Vulkan诞生时间尚短,而且热度不高,仅凭网上几篇文档,让程序正常运行真的是有点难度。

本系列文是一个教程,而是一个参考。如果你和之前的我一样,花了大量时间,结果程序都跑不起来先。那么,欢迎阅读以下内容。 Continue reading Vulkan大闷锅之启程

几种状态机实现形式

状态机(State Machine),在电气,电子行业应用比较多。对于程序员,尤其是在应对流程复杂的业务逻辑时也非常有用。大多情况下,只要设计出良好的状态图,就可以机械地将其翻译成代码。状态机的概念分支其实很复杂,中文其实没有正确的翻译所有术语,比如automata。我没有能力涵盖所有内容,以下只是笼统的讲一点理论和形式。

基本概念

游戏编程有个概念,触发器(是Trigger不是电子中的Flip-flop)。它核心的两个概念,事件(Event)和动作(Action),有时候可选的加上环境(Environment)/ 条件(Condition/Criterea)。下面是个简化的实例:

大多格斗游戏,输入“↓→A”,会发出波动拳,像街头霸王的Ken。对触发器来说,“↓→A”就是事件,波动拳就是动作。但在浮空和倒地时不能发出波动拳,这两个就可以算作环境或条件。再之后,释放的波动拳又可以作为触发下一个动作的事件。

Continue reading 几种状态机实现形式