我昨天发了一个帖子,说想做网络游戏,结果马上就有人附和了!反应真是快啊,Blog这个东西就是好!
嗯,那么我们讨论些什么呢?我想可以讨论一下下面的几个方面:
1、我们这个开发采取什么协议?GPL还是别的?
2、我们如何组织这个项目?
3、我们这个游戏的是什么样子的?剧本?
呵呵,前两个留给大家说说,我先说说对于这个游戏有什么样的设想:
一、网络穿越能力
之所以前一段时间我那么关心NAT穿越,主要就是因为网络游戏必须能够穿越NAT,否则中央服务器就必须要有很强大的计算能力,我们这种因为兴趣而参与的朋友肯定没有办法支付这样的费用。如果能够穿越NAT,那么就很可能让部分的计算分布到每个玩家身上,并且大部分的数据流量都不需要经过服务器。关于这方面的知识真的很重要,大家不妨看一下我的这两个帖子,虽然说我也是才开始学的,但是自己瞎想总不是路吧?我的这两个帖子基本上已经把穿越NAT的原理探索了一下:
关于P2P穿越NAT/防火墙的困惑
关于穿越NAT进行P2P通讯
其中里面提到了一篇文章,非常的重要,几乎是编写穿越所有类型防火墙的核心原理,我在这里再贴出来一次,不过是英文的:
http://www.watersprings.org/pub/id/draft-takeda-symmetric-nat-traversal-00.txt
实际上Terrarium之所以能够发动起来,主要就是对于服务器几乎没有什么太大的要求,只是提供一个用户登录以及技术统计平台,本身几乎不参与什么运算,运算都是由客户端自己承担的。哦,对了,顺便提一下,Terrarium的服务器端可以下载的:
http://www.windowsforms.net/terrarium/server/download.aspx?tabindex=6&tabid=42
这个Terrarium的服务端几乎就是用户在上面注册,登录的时候在服务器上面登记一个地址,然后别人就可以通过连接这个地址的5000端口和你互连了。所以Terrarium必然无法穿越NAT,实际上我们只需要改进一下这个服务端,增加NAT穿越能力的协议就基本上OK了。嗯,这个Terrarium似乎有计划要开发下一个版本,并且打算公开下一个版本的源代码。不过目前似乎已经有接近两个月没有消息了,这个Terrarium的开发这似乎是MS里面的一个员工,参与Longhorn的任务,不知道是否看错了。如果没有看错的话,那也许是他最近工作比较忙吧。
二、关于游戏背景的设想:
我觉得Terrarium本身的背景还是蛮好玩的,所以我想还是以动物为背景,也就是尽可能把Terrarium的元素复现出来,甚至做得比Terrarium要优秀。但是我们再往里面添加另外一种可控制的角色,我们就可以参与到里面去了。这个添加的角色是什么呢?比如说原始人怎么样?我们就可以去打猎了!出了打猎还可以参加种族战斗啊!当然,我们必须要让这个添加进去的角色能够和原有的角色兼容,有所有的属性比如攻击力、“肉量”等等,这样原来的那种人工智能生物才能够攻击我们,杀死了人控制的角色之后还可以吃“尸体”。此外,为了配合这个原始人,我们还可以增加另外一类东西:比如刀啊枪啊。这个嘛,就还没有仔细考虑清楚,到底是直接由我们用程序设计刀枪呢?还是在游戏里面提供原材料让人来打造呢?比较复杂,涉及到游戏的平衡性问题。
三、关于分布计算的设想:
我觉得这个游戏必须要能够分布计算,理由如下:
1、如果我们不分布计算,那么强大的中央服务器群的费用,包括运行费用谁来提供呢?
2、如果我们采用Terrarium那种方式,CPU占用率太高了!基本上应该每个终端负责一部分人工智能生物的计算能力,并且将计算结果直接告诉其他参与的中断……当然这样的话会有其他的复杂问题,但是至少这样才能够制成大量的人工智能生物的存在啊。除非大家不打算有人工智能的Object存在或者有哪一个大款能够提供几百万的经费出来采用集中式服务器方式。
3、顺便可以学习一下分布式计算方面的东西,主要是深入了解这里面会遇到的问题。
四、关于安全性的设想:
如果你玩过Terrarium的话,你不得不赞叹设计者考虑得那么周到,使得你无法写出有恶意的代码——反射功能被禁止了;不允许出现静态类、静态函数、静态变量;不允许访问外部资源如硬盘;获得其他生物(包括同种)的信息是通过一个接口,这个接口背后的东西实际上是一个结构,这个结构里面的所有数据是从某个生物里面拷贝出来的,所以你无法通过获得的信息访问对方生物的任何不期望让你知道的内容;等等。这个是一个考虑的方面,但不是全部。我还希望加入加密和验证的能力,杜绝诸如木马攻击、诈骗攻击、中间人攻击以及DOS攻击等,因为涉及到分布式计算,还需要防止用户篡改数据。
大家说说我想得是否太过于复杂了?其实我觉得不会啊,人家那个Terrarium也就是一两个人能够完成的,我所说的基本上只是在他的那个基础上增加NAT穿越、更多的角色类型、分布式计算能力以及加强安全型而已。(……而已?)
好了,剩下的大家来讨论一下吧。
嗯,那么我们讨论些什么呢?我想可以讨论一下下面的几个方面:
1、我们这个开发采取什么协议?GPL还是别的?
2、我们如何组织这个项目?
3、我们这个游戏的是什么样子的?剧本?
呵呵,前两个留给大家说说,我先说说对于这个游戏有什么样的设想:
一、网络穿越能力
之所以前一段时间我那么关心NAT穿越,主要就是因为网络游戏必须能够穿越NAT,否则中央服务器就必须要有很强大的计算能力,我们这种因为兴趣而参与的朋友肯定没有办法支付这样的费用。如果能够穿越NAT,那么就很可能让部分的计算分布到每个玩家身上,并且大部分的数据流量都不需要经过服务器。关于这方面的知识真的很重要,大家不妨看一下我的这两个帖子,虽然说我也是才开始学的,但是自己瞎想总不是路吧?我的这两个帖子基本上已经把穿越NAT的原理探索了一下:
关于P2P穿越NAT/防火墙的困惑
关于穿越NAT进行P2P通讯
其中里面提到了一篇文章,非常的重要,几乎是编写穿越所有类型防火墙的核心原理,我在这里再贴出来一次,不过是英文的:
http://www.watersprings.org/pub/id/draft-takeda-symmetric-nat-traversal-00.txt
实际上Terrarium之所以能够发动起来,主要就是对于服务器几乎没有什么太大的要求,只是提供一个用户登录以及技术统计平台,本身几乎不参与什么运算,运算都是由客户端自己承担的。哦,对了,顺便提一下,Terrarium的服务器端可以下载的:
http://www.windowsforms.net/terrarium/server/download.aspx?tabindex=6&tabid=42
这个Terrarium的服务端几乎就是用户在上面注册,登录的时候在服务器上面登记一个地址,然后别人就可以通过连接这个地址的5000端口和你互连了。所以Terrarium必然无法穿越NAT,实际上我们只需要改进一下这个服务端,增加NAT穿越能力的协议就基本上OK了。嗯,这个Terrarium似乎有计划要开发下一个版本,并且打算公开下一个版本的源代码。不过目前似乎已经有接近两个月没有消息了,这个Terrarium的开发这似乎是MS里面的一个员工,参与Longhorn的任务,不知道是否看错了。如果没有看错的话,那也许是他最近工作比较忙吧。
二、关于游戏背景的设想:
我觉得Terrarium本身的背景还是蛮好玩的,所以我想还是以动物为背景,也就是尽可能把Terrarium的元素复现出来,甚至做得比Terrarium要优秀。但是我们再往里面添加另外一种可控制的角色,我们就可以参与到里面去了。这个添加的角色是什么呢?比如说原始人怎么样?我们就可以去打猎了!出了打猎还可以参加种族战斗啊!当然,我们必须要让这个添加进去的角色能够和原有的角色兼容,有所有的属性比如攻击力、“肉量”等等,这样原来的那种人工智能生物才能够攻击我们,杀死了人控制的角色之后还可以吃“尸体”。此外,为了配合这个原始人,我们还可以增加另外一类东西:比如刀啊枪啊。这个嘛,就还没有仔细考虑清楚,到底是直接由我们用程序设计刀枪呢?还是在游戏里面提供原材料让人来打造呢?比较复杂,涉及到游戏的平衡性问题。
三、关于分布计算的设想:
我觉得这个游戏必须要能够分布计算,理由如下:
1、如果我们不分布计算,那么强大的中央服务器群的费用,包括运行费用谁来提供呢?
2、如果我们采用Terrarium那种方式,CPU占用率太高了!基本上应该每个终端负责一部分人工智能生物的计算能力,并且将计算结果直接告诉其他参与的中断……当然这样的话会有其他的复杂问题,但是至少这样才能够制成大量的人工智能生物的存在啊。除非大家不打算有人工智能的Object存在或者有哪一个大款能够提供几百万的经费出来采用集中式服务器方式。
3、顺便可以学习一下分布式计算方面的东西,主要是深入了解这里面会遇到的问题。
四、关于安全性的设想:
如果你玩过Terrarium的话,你不得不赞叹设计者考虑得那么周到,使得你无法写出有恶意的代码——反射功能被禁止了;不允许出现静态类、静态函数、静态变量;不允许访问外部资源如硬盘;获得其他生物(包括同种)的信息是通过一个接口,这个接口背后的东西实际上是一个结构,这个结构里面的所有数据是从某个生物里面拷贝出来的,所以你无法通过获得的信息访问对方生物的任何不期望让你知道的内容;等等。这个是一个考虑的方面,但不是全部。我还希望加入加密和验证的能力,杜绝诸如木马攻击、诈骗攻击、中间人攻击以及DOS攻击等,因为涉及到分布式计算,还需要防止用户篡改数据。
大家说说我想得是否太过于复杂了?其实我觉得不会啊,人家那个Terrarium也就是一两个人能够完成的,我所说的基本上只是在他的那个基础上增加NAT穿越、更多的角色类型、分布式计算能力以及加强安全型而已。(……而已?)
好了,剩下的大家来讨论一下吧。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器