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

推荐订阅源

酷 壳 – 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

博客园 - 我们的游戏世界

最新贴图[Sumtec] 终于快忙出头了,开了个FTP给大家用[mikespook] 非常抱歉没有为大家做点什么[吹雪] 框架结构图(二)[Sumtec] DGF的详细解说[Sumtec] Framework组的工作报告[Sumtec] 提交了CsharpC&C DEMO的代码在cvs[steeven] 更加详细的ThreadPool测试报告[Sumtec] ThreadPool 测试结果的第一时间发布[Sumtec] GC的一个问题 [Koffer] [工作报告] Framework组的工作报告[Sumtec] [讨论] 分布式计算的Action,我的解决方案[Sumtec] [游戏]服务器和客户端之间的同步策略[steeven] 代码更新了。[Sumtec] Framework组最近的工作报告[Sumtec] 同学们,准备干活了[steeven] [引用资料][转帖] 玩家行为基本模式[[ IceSharK - PP.Poet ]] 微軟用.net開發的遊戲例子 - 我们的游戏世界 mikespook 你的任务有没有进展啊?[Sumtec]
[公告]Framework组的最新进展[Sumtec]
我们的游戏世界 · 2004-06-18 · via 博客园 - 我们的游戏世界

呵呵,好像有个把礼拜没有更新进展了吧?其实不是没有新内容,而是为了把更多的抽象概念展现出来,在不停的进行开发和测试。

那么最近的进展包括哪些呢?
包括一个最简单的“角色思考调度器”(就是所谓的唤醒和呼吸啦),以及一个最简单的“动作调度器”。这两个东西目前的功能都是最基本的,也没有经过很多的优化,能够完成最基本的功能了。其中角色思考调度器则应该没有什么大的问题了,往里面添加了两个对象,进行了一些简单的测试。而动作调度器则没有经过什么测试,只是如果空转的话肯定没问题。不过这里我也看不到有大问题存在的地方,因为它们内部都是使用同样的DemoScheduleQueue来执行的,如果有问题的话,在思考角色调度器里面就应该会反映出来了。原始的DemoScheduleQueue确实有点问题,不过大家是没有机会看的了,目前更新的代码里面已经是没有问题的版本了。

现在整个程序一共会开6个Thread,其中两个不知道是什么,好像是VS自己开的,另外四个则包括一个主线程(用于处理窗口消息),一个主循环线程(用于游戏主循环处理),以及两个用于动作队列调度的线程。前面两个线程比较好理解,并且可以肯定他们是长期并行运行的。而后两个则不太好理解,这里给出一个简单的解释:

因为动作在可以执行之前首先需要经过一系列的检查以确定动作是否已经可以开始执行了,检查的内容包括,前项动作是否完成以及动作双方的数据是否已经到达。如果检查通过了,才会放到执行队列里面进行执行。换而言之,这个调度器分为两个阶段,第一个阶段用于检查等待队列,第二个阶段用于执行运行队列。可是光是这样完全没有必要使用两个线程啊,顶多新开一个线程就足够啦。嗯,我这里使用线程并不是期望并行处理的,事实上这两个线程之间甚至和主循环线程之间都是串行执行的。用线程的目的是提供一个分别限制着两个阶段的执行时间的机制,因为有可能某一个动作花费很多的时间,使得最后整个图像填充过程被延迟执行,出现了丢祯的现象——虽然目前的Demo直接用Winform不存在这个问题,但是如果万一以后用DX/OpenGL,那就必须得这样了(总不能到时候再来大改吧?)。

目前这个机制运行得非常好,大家可以放心。

最后呢,为了能够有更多的视觉效果,做了一个控制台。虽然由于目前还没有什么具体的动作完成了,所以也不可能有动作可以执行,但是看看效果总是可以的。(由于没有动作,因此这一次只是考虑尽快展现视觉效果,因此某些功能实际上还不正常,请见谅)

最后说说下一阶段的计划:

现在没有一个机制用于“选中”角色,因此跟角色相关的操作还是显得比较混乱。下一阶段计划就是做一个角色选中器,里面包含了控制台更新的功能。控制台更新的功能现在是有的,但是并不能够很好的工作,例如无法进行一次选中多个角色的操作。

其次要准备考虑一下碰撞检测方面的问题了。碰撞检测的代码应该是有的,但是是否有可能提高效率则是另外一个问题了。比如说:如果游戏里面一共有1k个对象,那么每个对象移动一下都需要和其它的999个对象进行检测,因此一共讲需要进行999k次检测。而我希望这样的过程能够被简化,被优化。这可是一笔不小的开支啊!

当完成上述内容之后,我想应该可以开始写一些具体的“动作”出来了。完成了动作就意味着整个游戏可以开始活动了。当然,我想应该只是有限度的活动。

P.S.: 代码已经在sf.net上面更新了。
有空我就把它移动到mikespook的ftp上面去。