积极答复者
请问用Visual C#能开发像类似魔兽世界那种类型的游戏吗?

问题
-
由于我对程序开发不是很懂,但我有个项目想用Visual C#来做开发,基本跟魔兽世界那种服务器端与客户端的形式构成。不知道能用Visual C#开发吗?还有XNA到底是什么东西,能为游戏开发带来哪些方便呢?
- 已编辑 RickyLinModerator 2009年7月13日 6:02 修改标题的错别字
- 已移动 Sheng Jiang 蒋晟Moderator 2009年7月13日 19:32 需求分析问题 (发件人:Visual C#)
答案
-
是的,可以的。而且C#还很适合做这些事情。
XNA是微软基于.net设计的游戏开发框架 - XNA Framework,XNA Framework是一系列帮助开发人员编写游戏的类库,可以为游戏开发提供非常强大的支持!
另外,XNA Studio是用于游戏开发的Visual Studio,它是一个集成的、基于团队的、为游戏产品量身定做的开发环境,可以在Windows和Xbox360两个平台上用C#开发游戏。
希望楼主早日设计开发个游戏出来,让我们玩玩~:)
http://hi.baidu.com/2009ajun- 已建议为答案 Junxiang 2009年7月12日 8:59
- 已标记为答案 Allen Chen - MSFTModerator 2009年7月20日 8:39
全部回复
-
是的,可以的。而且C#还很适合做这些事情。
XNA是微软基于.net设计的游戏开发框架 - XNA Framework,XNA Framework是一系列帮助开发人员编写游戏的类库,可以为游戏开发提供非常强大的支持!
另外,XNA Studio是用于游戏开发的Visual Studio,它是一个集成的、基于团队的、为游戏产品量身定做的开发环境,可以在Windows和Xbox360两个平台上用C#开发游戏。
希望楼主早日设计开发个游戏出来,让我们玩玩~:)
http://hi.baidu.com/2009ajun- 已建议为答案 Junxiang 2009年7月12日 8:59
- 已标记为答案 Allen Chen - MSFTModerator 2009年7月20日 8:39
-
我没有见过一款网络游戏是由 C# 开发的。
因为网络游戏通常都需要脚本系统支持的,所以基本上都是 C++,而 C# 在这个方面非常的差。同时感觉 C# 的灵活性受制颇多,例如只要是网络封包,C#非拆开重组不可,性能损耗严重啊(因为C#的类的内存布局是不确定的),而 C++ 一句 memcpy_s,搞掂..(当然,如果哪位高人C#在这方面有经验的,恳请告知,我为这个问题烦恼很久了)
魔兽世界的服务端的脚本系统是用 lua
http://hi.baidu.com/2009ajun -
我没有见过一款网络游戏是由 C# 开发的。
因为网络游戏通常都需要脚本系统支持的,所以基本上都是 C++,而 C# 在这个方面非常的差。同时感觉 C# 的灵活性受制颇多,例如只要是网络封包,C#非拆开重组不可,性能损耗严重啊(因为C#的类的内存布局是不确定的),而 C++ 一句 memcpy_s,搞掂..(当然,如果哪位高人C#在这方面有经验的,恳请告知,我为这个问题烦恼很久了)
魔兽世界的服务端的脚本系统是用 lua
http://hi.baidu.com/2009ajun
呃, 请问那款类似魔兽世界那种规模的网络游戏可以用来证明这个存在的道理的....我真的很想学习一下
因为我亦从事对性能有较高要求的网络服务端开发工作。C# 即使用上异步或者托管的IOCP,也比 C++ 的 IOCP 的系统差上一截。当然这有很多原因的,但是一直无法找到一个更好的范例,兄弟你要知道的话还请提醒一下 -
我没有见过一款网络游戏是由 C# 开发的。
因为网络游戏通常都需要脚本系统支持的,所以基本上都是 C++,而 C# 在这个方面非常的差。同时感觉 C# 的灵活性受制颇多,例如只要是网络封包,C#非拆开重组不可,性能损耗严重啊(因为C#的类的内存布局是不确定的),而 C++ 一句 memcpy_s,搞掂..(当然,如果哪位高人C#在这方面有经验的,恳请告知,我为这个问题烦恼很久了)
魔兽世界的服务端的脚本系统是用 lua
http://hi.baidu.com/2009ajun
呃, 请问那款类似魔兽世界那种规模的网络游戏可以用来证明这个存在的道理的....我真的很想学习一下
因为我亦从事对性能有较高要求的网络服务端开发工作。C# 即使用上异步或者托管的IOCP,也比 C++ 的 IOCP 的系统差上一截。当然这有很多原因的,但是一直无法找到一个更好的范例,兄弟你要知道的话还请提醒一下
淡定,淡定。
http://hi.baidu.com/2009ajun -
我没有见过一款网络游戏是由 C# 开发的。
因为网络游戏通常都需要脚本系统支持的,所以基本上都是 C++,而 C# 在这个方面非常的差。同时感觉 C# 的灵活性受制颇多,例如只要是网络封包,C#非拆开重组不可,性能损耗严重啊(因为C#的类的内存布局是不确定的),而 C++ 一句 memcpy_s,搞掂..(当然,如果哪位高人C#在这方面有经验的,恳请告知,我为这个问题烦恼很久了)
魔兽世界的服务端的脚本系统是用 lua
呵呵,
我支持你的观点。c#和java一种类型的语言。这种托管语言本身的机制导致了它固有的缺陷。执行效率比不了c、c++。它不适合做图形渲染效果要求很高的游戏。魔兽世界我就不做什么评价了。C#如何做到这种高质量、高效率的3D渲染效果是个问题。
我知道的朋友做图形软件开发的都是c/ c++.C#也许可以做一些简单的,相对性能要求不高的游戏。但是魔兽世界这种level的就算了。~
Frank.Xu Lei--谦卑若愚,好学若饥
专注于.NET平台下分布式应用系统开发和企业应用系统集成
Focus on Distributed Applications Development and EAI based on .NET
老徐的博客:http://frank_xl.cnblogs.com -
我没有见过一款网络游戏是由 C# 开发的。
因为网络游戏通常都需要脚本系统支持的,所以基本上都是 C++,而 C# 在这个方面非常的差。同时感觉 C# 的灵活性受制颇多,例如只要是网络封包,C#非拆开重组不可,性能损耗严重啊(因为C#的类的内存布局是不确定的),而 C++ 一句 memcpy_s,搞掂..(当然,如果哪位高人C#在这方面有经验的,恳请告知,我为这个问题烦恼很久了)
魔兽世界的服务端的脚本系统是用 lua
呵呵,
我支持你的观点。c#和java一种类型的语言。这种托管语言本身的机制导致了它固有的缺陷。执行效率比不了c、c++。它不适合做图形渲染效果要求很高的游戏。魔兽世界我就不做什么评价了。C#如何做到这种高质量、高效率的3D渲染效果是个问题。
我知道的朋友做图形软件开发的都是c/ c++.C#也许可以做一些简单的,相对性能要求不高的游戏。但是魔兽世界这种level的就算了。~
Frank.Xu Lei--谦卑若愚,好学若饥
专注于.NET平台下分布式应用系统开发和企业应用系统集成
Focus on Distributed Applications Development and EAI based on .NET
老徐的博客:http://frank_xl.cnblogs.com
360上的3d游戏哪个游戏没有wow 的dx8强涅 ?
图形渲染效果什么年代需要和托管不托管扯上关系了? 能用显卡功能的是王道阿。 渲染用非托管库和硬件支持的滤镜 物理运算用物理引擎 .net就是个调度而已
答案900, 目标五颗星 -
我没有见过一款网络游戏是由 C# 开发的。
因为网络游戏通常都需要脚本系统支持的,所以基本上都是 C++,而 C# 在这个方面非常的差。同时感觉 C# 的灵活性受制颇多,例如只要是网络封包,C#非拆开重组不可,性能损耗严重啊(因为C#的类的内存布局是不确定的),而 C++ 一句 memcpy_s,搞掂..(当然,如果哪位高人C#在这方面有经验的,恳请告知,我为这个问题烦恼很久了)
魔兽世界的服务端的脚本系统是用 lua
http://hi.baidu.com/2009ajun
呃, 请问那款类似魔兽世界那种规模的网络游戏可以用来证明这个存在的道理的....我真的很想学习一下
因为我亦从事对性能有较高要求的网络服务端开发工作。C# 即使用上异步或者托管的IOCP,也比 C++ 的 IOCP 的系统差上一截。当然这有很多原因的,但是一直无法找到一个更好的范例,兄弟你要知道的话还请提醒一下
我正好有个IOCP的问题一直在讨论,我分别发到中英文论坛了,WCF与IOCP的,我基本弄清楚了答案。你看看你能给点什么好的看法不?
1.http://social.microsoft.com/Forums/zh-CN/wcfzhchs/thread/1e6bf941-6b99-4096-bb8c-d708962d7517
2.http://social.microsoft.com/Forums/zh-CN/wcf/thread/3f45500d-6de0-4c90-8a62-f08e1ede053e
Frank.Xu Lei--谦卑若愚,好学若饥
专注于.NET平台下分布式应用系统开发和企业应用系统集成
Focus on Distributed Applications Development and EAI based on .NET
老徐的博客:http://frank_xl.cnblogs.com -
所说的差上一截是比较有趣的
我们组织c# iocp socket和c++的程序员写iocp tcp echo server 压力测试过 不过是局域网c#12000连接和c++16000连接的差别
猜猜传奇用什么,delphi 自建线城池 p3 800也能600稳定在线。大不了用虚拟化多系统多网卡 有什么办不到的呢
答案900, 目标五颗星- 已编辑 韦恩卑鄙 waywaModerator 2009年7月14日 5:23
-
我没有见过一款网络游戏是由 C# 开发的。
因为网络游戏通常都需要脚本系统支持的,所以基本上都是 C++,而 C# 在这个方面非常的差。同时感觉 C# 的灵活性受制颇多,例如只要是网络封包,C#非拆开重组不可,性能损耗严重啊(因为C#的类的内存布局是不确定的),而 C++ 一句 memcpy_s,搞掂..(当然,如果哪位高人C#在这方面有经验的,恳请告知,我为这个问题烦恼很久了)
魔兽世界的服务端的脚本系统是用 lua
呵呵,
我支持你的观点。c#和java一种类型的语言。这种托管语言本身的机制导致了它固有的缺陷。执行效率比不了c、c++。它不适合做图形渲染效果要求很高的游戏。魔兽世界我就不做什么评价了。C#如何做到这种高质量、高效率的3D渲染效果是个问题。
我知道的朋友做图形软件开发的都是c/ c++.C#也许可以做一些简单的,相对性能要求不高的游戏。但是魔兽世界这种level的就算了。~
Frank.Xu Lei--谦卑若愚,好学若饥
专注于.NET平台下分布式应用系统开发和企业应用系统集成
Focus on Distributed Applications Development and EAI based on .NET
老徐的博客:http://frank_xl.cnblogs.com
360上的3d游戏哪个游戏没有wow 的dx8强涅 ?
图形渲染效果什么年代需要和托管不托管扯上关系了? 能用显卡功能的是王道阿。 渲染用非托管库和硬件支持的滤镜 物理运算用物理引擎 .net就是个调度而已
答案900, 目标五颗星
呵呵,我确实对XNA不熟悉。因为一直没从事游戏相关的开发工作。
不过对魔兽世界早有耳闻。个人理解,c#可以做游戏开发,但是魔兽世界这个level的游戏,就目前的c#技术条件来说,能开发到什么效果,就难说了。
Frank.Xu Lei--谦卑若愚,好学若饥
专注于.NET平台下分布式应用系统开发和企业应用系统集成
Focus on Distributed Applications Development and EAI based on .NET
老徐的博客:http://frank_xl.cnblogs.com -
我不是很同意 韦恩卑鄙版主 的说法
第一,关于 IOCP,12000 和 16000 的负荷量已经很说明问题了。而对于网络游戏服务端来说,一两万的负荷是必须要考虑的问题。即使用上均衡负载,也应该考虑更高的效率以节省成本。
第二,关于虚拟化多系统多网卡。对于解决负荷问题很明显是没有帮助的。服务端负荷过重并非是系统资源耗尽,而是服务器不堪负重。
第三,关于 XNA,老实说不了解,没有XBox360,但是看 Wiki 上的介绍,用的公司不是很多。基本的原因是封装的太漂亮了,灵活性较差。
基本上感觉,客户端怎么写还不是一样,反正一部PC或者主机上只有一个实例,资源,性能,效率的要求非常宽松。服务器端则要认真考虑这些问题。
当然,这也可能是我这个仅专注于服务端开发的人的偏见而已。
-
WOW 的服务端我亦只能够猜测。但是在我见过的另外一个网络游戏服务端, 它是分成几个大块的: auth server, game server, NPC server, cache server, database。此外还有 web 等外围。所以基本不用担心运算负荷的问题。
WOW 单服人数的确不多,所以他们定期有跨服的活动。而其他游戏跨服交流比较少,所以追求单服的容量。
而且,性能差异也并非仅仅表现在连接方面,例如服务端要发一个数据包,它其中的一些内容,其内存布局在服务端与客户端是相同的。若 C# 则必须老老实实地逐个写入封包中,但 C++ 却能很方便的使用内存复制,简单快捷方便,当然,其风险不言而喻,需要谨慎地处理。(C#可能有更好的解决方案,仅是我不知道而已)
所以,在做一些性能要求较高的服务端的时候。我还是没有胆量跑到老板面前,说:“尽管 C++ 的解决方案能够提供 33% 的性能提升,但我决定采用 C# 的方案”。
但是说到底,我觉得应该是和韦恩卑鄙版主的工作需求方向不同,所以在同一个问题上,看问题的角度就不一样了。 -
我没有见过一款网络游戏是由 C# 开发的。
因为网络游戏通常都需要脚本系统支持的,所以基本上都是 C++,而 C# 在这个方面非常的差。同时感觉 C# 的灵活性受制颇多,例如只要是网络封包,C#非拆开重组不可,性能损耗严重啊(因为C#的类的内存布局是不确定的),而 C++ 一句 memcpy_s,搞掂..(当然,如果哪位高人C#在这方面有经验的,恳请告知,我为这个问题烦恼很久了)
魔兽世界的服务端的脚本系统是用 lua
你没写过WOW的插件吧!WOW的UI是由lua驱动的。C++ + Lua 是WOW的开发模式,服务器端使用Lua,我还真没听说过。