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

推荐订阅源

酷 壳 – CoolShell
酷 壳 – CoolShell
H
Hacker News: Front Page
P
Palo Alto Networks Blog
T
ThreatConnect
Apple Machine Learning Research
Apple Machine Learning Research
博客园_首页
T
True Tiger Recordings
P
Privacy & Cybersecurity Law Blog
B
Blog
IT之家
IT之家
Last Week in AI
Last Week in AI
F
Full Disclosure
Hacker News: Ask HN
Hacker News: Ask HN
C
Comments on: Blog
Microsoft Azure Blog
Microsoft Azure Blog
C
Cybersecurity and Infrastructure Security Agency CISA
Microsoft Security Blog
Microsoft Security Blog
博客园 - 【当耐特】
N
News and Events Feed by Topic
NISL@THU
NISL@THU
腾讯CDC
雷峰网
雷峰网
Security Latest
Security Latest
李成银的技术随笔
M
Microsoft Research Blog - Microsoft Research
L
LangChain Blog
L
Lohrmann on Cybersecurity
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
C
Check Point Blog
Y
Y Combinator Blog
Recent Announcements
Recent Announcements
博客园 - Franky
N
News | PayPal Newsroom
V
V2EX
A
About on SuperTechFans
The Register - Security
The Register - Security
月光博客
月光博客
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Google Online Security Blog
Google Online Security Blog
MyScale Blog
MyScale Blog
Cisco Talos Blog
Cisco Talos Blog
Vercel News
Vercel News
WordPress大学
WordPress大学
C
Cyber Attacks, Cyber Crime and Cyber Security
The Hacker News
The Hacker News
IntelliJ IDEA : IntelliJ IDEA – the Leading IDE for Professional Development in Java and Kotlin | The JetBrains Blog
IntelliJ IDEA : IntelliJ IDEA – the Leading IDE for Professional Development in Java and Kotlin | The JetBrains Blog
爱范儿
爱范儿
A
Arctic Wolf
L
LINUX DO - 最新话题
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More

博客园 - 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的启动,然后再启动人机界面。