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

推荐订阅源

WordPress大学
WordPress大学
V2EX - 技术
V2EX - 技术
Jina AI
Jina AI
有赞技术团队
有赞技术团队
美团技术团队
月光博客
月光博客
Apple Machine Learning Research
Apple Machine Learning Research
博客园 - 三生石上(FineUI控件)
V
V2EX
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
腾讯CDC
人人都是产品经理
人人都是产品经理
Security Latest
Security Latest
C
CERT Recently Published Vulnerability Notes
P
Privacy International News Feed
酷 壳 – CoolShell
酷 壳 – CoolShell
宝玉的分享
宝玉的分享
罗磊的独立博客
J
Java Code Geeks
博客园 - Franky
V
Vulnerabilities – Threatpost
C
CXSECURITY Database RSS Feed - CXSecurity.com
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
小众软件
小众软件
P
Privacy & Cybersecurity Law Blog
量子位
T
Threatpost
T
Tailwind CSS Blog
V
Visual Studio Blog
C
Cisco Blogs
雷峰网
雷峰网
博客园 - 【当耐特】
T
Tor Project blog
T
The Exploit Database - CXSecurity.com
Simon Willison's Weblog
Simon Willison's Weblog
www.infosecurity-magazine.com
www.infosecurity-magazine.com
博客园_首页
H
Heimdal Security Blog
Security Archives - TechRepublic
Security Archives - TechRepublic
博客园 - 聂微东
爱范儿
爱范儿
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
Hugging Face - Blog
Hugging Face - Blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
T
Threat Research - Cisco Blogs
T
Troy Hunt's Blog
H
Hacker News: Front Page
T
Tenable Blog
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint

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