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

推荐订阅源

酷 壳 – 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] [公告]Framework组的最新进展[Sumtec] 终于快忙出头了,开了个FTP给大家用[mikespook] 非常抱歉没有为大家做点什么[吹雪] 框架结构图(二)[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]
DGF的详细解说[Sumtec]
我们的游戏世界 · 2004-06-08 · via 博客园 - 我们的游戏世界

实际上在很早之前,我曾经发表了好几个Post,来解说我这个计划的总体思想以及一些详细的解说,也许是比较零散吧,可能有部分朋友没有能够全面的了解。先给大家收集一下这些文章的连接,不过也许我那些都说得太详细了,如果您嫌麻烦,可以跳过这些链接,我会尝试用简洁的语言,从另外一个角度描述整个的计划。当然,如果您能够耐心的看完所有的这些东西,自然最好,毕竟详细的解释比起简单的解释不容易引起歧义。下面是连接:

[公告] 重新写的“注册描述”[Sumtec]   (这里给大家清楚地讲解了整个项目的目的)
[构想] 关于框架-1 [sumtec]   (这里告诉大家我的计划并不是实现一个图像引擎)
[构思] 关于框架-2 [sumtec]   (这里给大家展示的是我一个很玄乎的想法,目的是和普通的游戏引擎概念区别出来)
[构思] 关于框架-4 [sumtec]   (这个Post里面展示的是几个比较现实的东西,有一些正在这里面实现)

上面都是文字资料,看起来也许会头疼。下面给出一些图像资料:

[讨论] 我的简单框架图[Sumtec]  (这里有一个比较完整的结果图,用图形来展示整个计划的结果和想法,虽然比较粗糙,但是总可以了解一些基本的东西)
[讨论] 分布式计算的Action,我的解决方案[Sumtec]  (这个是我的“分布式计算”的一个解决方案,说的是“动作”方面的问题的解决。如果没有仔细看前面的文章,也许并不能够很好的了解这个意图)

好了,下面开始简单的进行介绍:
首先这个计划并不是一个具体的游戏计划,其次不是一个传统意义的游戏引擎的计划。所谓传统意义的游戏引擎是指,基本上围绕解决图形系统的图形引擎(例如QuakeIII的引擎)或者围绕多媒体方面的、各种感官方面的引擎。
那么我们围绕的问题是什么呢?游戏当中对象模型的建立、数据保存问题、网络连接与传输问题、分布式处理问题,等等,简而言之就是一个底层的基础框架。对照.NET Framework的作用和意义,就能够明白这个.Game Framework的作用和意义——我们不是仅仅提供一个GDI+,而是所有与游戏开发相关的底层基础。
有人会有疑问,你的想法是不是太大了?对,这个想法是太大了,但是我并没有说立刻要实现,这个只是一个最终的目标。.NET能够实现,为什么我们的计划是不可能实现的呢?Mono不也一样在逐步建立吗?

另外,我在这里向澄清一下一些问题。比如说分布式处理中的数据安全问题。
首先需要说明的是,这个问题不是说一两句话就能够说明白的。如果真需要知道这些细节问题,需要看一下《应用密码学》这本书。
很多人会提出来,如果分布式处理的话,数据安全很难保证。理由如下:
1、.NET的程序很容易破解
2、客户的数据在客户端很容易被破解
3、外挂更容易实现,或者功能会更加强大

对于上面这三点我一一解释:(当然,还有更多的问题,简便起见这里不讨论了。)
1、.NET的程序的破解并不是如你想象的那么简单。
   首先.NET的强命名可以保证你的程序不被修改。其次,native和msil混合模式(也就是非托管和托管的混合模式)能够抵抗“反编译——再编译”这种破解方式,因为ildasm无法得到native的反汇编。或者说目前没有什么好的办法对付混合模式的程序。最后,我们应当相信.NET的安全机制,这个机制保证了我们只需要有一个“混合模式”的核心,就可以用这个核心以及.NET提供的安全机制来阻止整个代码遭受入侵。
   因此说,.NET的程序的计算过程应当是可信的。或者说我们不需要担心计算过程被破坏,或者计算数据被篡改。但是这样并不解决数据的传输和保存问题,这个问题我在下面一点说明。

2、客户端的数据在客户端的修改也许并不容易。
   为了解决这方面的问题,我们需要对整个数据进行加密。实际上我们完全可以做到整个数据是不可被修改的。简单的说一个方案来示意一下(也许有漏洞):每一次客户端希望保存数据的时候,把保存的数据的散列值发送到服务端保存,下一次读出的时候和服务端的散列值比较,如果不一样代表被修改了。这个方法的安全强度取决于散列的方式,如果采用比较安全的散列算法,甚至交由服务器来散列,这个过程应当是相当安全的。这里需要说明一下,这个散列并不是.NET的HashCode函数那种简单的散列,而是密码学里面的散列。虽然意思是一样的,但是安全角度看则完全不一样。密码学的散列要求的是数据的改变对于散列值的改变是不可预测的(不是不可重复的),如果有疑问,还是先看看相关书籍。

3、从漏洞方面看,也许给外挂的漏洞更大,但是不代表我们不能够比目前的游戏做得更好。
   我之所以这么说,主要的原因是现在的网络游戏的数据传输实在是做得很弱,从数据安全角度说,也就是说我们完全可以做到比他们更安全。当然,如果他们也采取了和我们一样的措施,也许会更安全一点。但是我想告诉大家的是,如果认真去做着一件事情的话,也许对于数据安全专家才能够感觉到分布式与传统的C/S模式之间,在数据传输安全方面的差别。为什么这么说呢,我举一个例子:比如说我们传输的数据完全可以数字签名,签名之后别人就不能够修改或者伪造我们的数据了。你觉得破解数字签名会很容易吗?我想关于如何破解签名,知道的人并不多,何况我们传输的数据有效时间很短暂,想要有效的进行攻击,是一件非常困难的事情。那么分布式与C/S模式之间的数据安全问题有什么区别呢?有,但是也只有真正研究这方面的人才知道。而且我可以说,这最多是降低了安全强度,但是同样是非常困难的一件事情。

最后,我再强调一下这个项目的目的:把游戏设计者从繁重的、与游戏设计本身无关的那些对象模型建立、传输协议设计甚至数据安全等各方面的任务里面解脱出来,专心做游戏剧情的设计等。

如果我有空,还会继续写一些稍为详细一点的框架结构图出来给大家看。