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

推荐订阅源

S
SegmentFault 最新的问题
A
About on SuperTechFans
NISL@THU
NISL@THU
V
Visual Studio Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
B
Blog RSS Feed
Engineering at Meta
Engineering at Meta
GbyAI
GbyAI
美团技术团队
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
Google DeepMind News
Google DeepMind News
小众软件
小众软件
博客园 - Franky
罗磊的独立博客
The Cloudflare Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
酷 壳 – CoolShell
酷 壳 – CoolShell
量子位
Hugging Face - Blog
Hugging Face - Blog
云风的 BLOG
云风的 BLOG
MongoDB | Blog
MongoDB | Blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
B
Blog
The GitHub Blog
The GitHub Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
P
Proofpoint News Feed
有赞技术团队
有赞技术团队
Hacker News - Newest:
Hacker News - Newest: "LLM"
Cyberwarzone
Cyberwarzone
C
CXSECURITY Database RSS Feed - CXSecurity.com
Project Zero
Project Zero
Security Latest
Security Latest
L
Lohrmann on Cybersecurity
AWS News Blog
AWS News Blog
The Hacker News
The Hacker News
I
Intezer
J
Java Code Geeks
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
P
Privacy International News Feed
月光博客
月光博客
A
Arctic Wolf
Apple Machine Learning Research
Apple Machine Learning Research
D
Darknet – Hacking Tools, Hacker News & Cyber Security
博客园_首页
WordPress大学
WordPress大学
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
T
Tor Project blog
博客园 - 三生石上(FineUI控件)
The Last Watchdog
The Last Watchdog
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org

博客园 - 我们的游戏世界

最新贴图[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模式之间的数据安全问题有什么区别呢?有,但是也只有真正研究这方面的人才知道。而且我可以说,这最多是降低了安全强度,但是同样是非常困难的一件事情。

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

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