惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

腾讯CDC
T
Threatpost
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
T
Tenable Blog
AWS News Blog
AWS News Blog
Know Your Adversary
Know Your Adversary
TaoSecurity Blog
TaoSecurity Blog
P
Palo Alto Networks Blog
Spread Privacy
Spread Privacy
I
Intezer
Security Latest
Security Latest
The Last Watchdog
The Last Watchdog
Google DeepMind News
Google DeepMind News
Help Net Security
Help Net Security
Cyberwarzone
Cyberwarzone
N
News and Events Feed by Topic
O
OpenAI News
A
Arctic Wolf
S
Secure Thoughts
Attack and Defense Labs
Attack and Defense Labs
N
News and Events Feed by Topic
M
MIT News - Artificial intelligence
F
Full Disclosure
P
Privacy International News Feed
The GitHub Blog
The GitHub Blog
T
Troy Hunt's Blog
C
CXSECURITY Database RSS Feed - CXSecurity.com
H
Hacker News: Front Page
aimingoo的专栏
aimingoo的专栏
S
Security @ Cisco Blogs
H
Hackread – Cybersecurity News, Data Breaches, AI and More
Apple Machine Learning Research
Apple Machine Learning Research
Engineering at Meta
Engineering at Meta
Cloudbric
Cloudbric
大猫的无限游戏
大猫的无限游戏
Google Online Security Blog
Google Online Security Blog
Recent Announcements
Recent Announcements
H
Help Net Security
量子位
V
V2EX
美团技术团队
G
Google Developers Blog
www.infosecurity-magazine.com
www.infosecurity-magazine.com
S
Schneier on Security
V2EX - 技术
V2EX - 技术
D
Docker
博客园 - 【当耐特】
Project Zero
Project Zero
博客园 - 司徒正美

博客园 - Cloudage

测试:单、多帧自动拼块地图及视口卷动 测试了测试了,silverlight做游戏的可能性 IMH 这次的卡渲还算过得去 严重警告!关于D3D的渲染表面 今天开始研究Tiny 小改一下 这是一个关键……可是这个门槛我上不去了 恭贺本人加入KidFansChannel特别创作组 序列化 用Sprite做Billboard “应用程序LoaderLock”异常的引发和解决 漏图 玩家通过自主绘制法术阵来自定义法术的初步实现的思考 优化……优化…… Billboard的旋转以及让物体面向一个点的一种方法 卡通渲染原理 同层物体间的遮挡处理
游戏系统的结构是怎样的?
Cloudage · 2006-02-25 · via 博客园 - Cloudage

我想讨论的是RTS/RPG/SLG系统。这种系统有如下特点:
1、场景角色多,且具有丰富的行为能力;场景也比较复杂,有各种行为机关
2、用户操作界面较为复杂,需要用户介入的地方比较多
3、要支持多用户(我把AI也视为用户)
4、必须流畅,即需要脱离windows消息循环,独自运行。(不同于AVG等更为休闲的形式)

由此,我作出如下设计:
1、要有一个场景控制器,监视和控制场景和其中的角色活动:
为了存放监视结果,我需要一个监视队列。为了存放控制任务,我需要一个控制队列。

2、要向用户提供操作界面。向人类用户提供直观界面,向AI用户提供逻辑界面。
界面的作用是向用户反映场景中的信息,并将用户的输入反馈给场景控制器。那么界面就需要连接到监视队列和控制队列。
逻辑界面则仅仅需要为AI用户映射队列的操作方法;而为了提供人机界面,我不仅需要为人类用户映射队列的操作方法,还需要图形引擎和声效引擎来呈现监视队列的内容,需要输入管理引擎来接收人类用户的输入信息(并把它们放进控制队列)。

3、人类用户肯定是拥有智能的,所以人机方向到此为止。另一个方向,我需要编写AI来操纵NPC。这些AI可以基于脚本(如工作角色,比如商铺老板之类),也可以基于逻辑组(上至敌军司令下至拦路好汉)。AI是程序,就必须要能够调试。所以AI应该有调试器和行为记录器。

4、对游戏场景最直接的操控者是场景控制器,只有它有能力进行暂停、存盘、读档、退出、新开等操作。所以这些系统级的控制也要放入控制队列中,由它来处理。同时,它应该具备一个调节器,来监控它自身的运行,以便于调试。


这样一个系统,它的启动顺序是怎样的呢?
首先,场景调试器启动场景控制器;然后AI调试器启动各自的AI,同时用户启动自己的人机界面。所有界面尝试连接场景控制器,最后场景控制器开始监视和控制。此时主动权掌握在场景控制器手里——它甚至有权拒绝用户的退出要求,当然这样一来我就得去调试它了——所有的用户必须向控制器提出要求才能得到结果。这样一来权限管理就会显得非常方便,比如任何一个AI要求关机,控制器都不会去理它。
如果这是一个网络游戏,那自然AI在一台服务器上,场景调试器在一台服务器上,服务器先开机然后用户再连线。如果这是单机游戏,则可以用一个引导程序先完成场景和AI的启动,然后再启动人机界面。