我曾经根据Smaug Codebase播放MUD .它是高度定制的,但核心是相同的.我有这个MUD的源代码,我有兴趣编写自己的(只是为了一个有趣的项目).我有一些问题,主要是关于设计方面.也许有人可以帮我一把?
我应该用什么语言?解释还是编译?这有什么不同吗?SMAUG是用C语言编写的.我对很多语言感到满意,并且学习更多内容也没有问题.
是否有一种特殊的方法可以遵循不妨碍性能的方法?面向对象,功能性等?
我应该使用什么媒介来存储数据?平面文件(这是SMAUG使用的),或类似SQLite的东西.两者的表现优点/缺点是什么?
有没有人知道如何开始这样的项目的指南?
我希望它可以扩展到允许50个玩家同时在线,而不会降低性能.如果我使用Ruby 1.8(非常慢),与使用Python 3.1(更快)或编译C/C++相比,它会有所作为吗?
如果有人可以伸出援助之手并提供一些信息或建议,我将永远感激不尽.
我会试一试:
在2009年,对于一个50人的游戏,没关系.你可能想要选择一种你熟悉分析工具的语言,如果你想进一步增长它,但是由于RAM现在如此便宜,驱动早期LPMUD(我有经验)和DikuMUD(这对你的Smaug来自)不适用.(LPMUD可以在8MB RAM的机器上处理~10-15个玩家)
编程风格并不一定会导致性能上的困难,像亚马逊的'obidos'网络服务器这样的大型网站是用C语言编写的,但像原始Yahoo Stores这样的大型网站是用Lisp编写的,StackOverflow是用ASP.NET编写的,我/个人/使用C但很多人会称我为虐待狂.
平面文件在当今大量数据存储的时代都是毫无意义的,有特定情况例外(大型邮件服务器有时使用'maildir',例如结构化平面文件).游戏的大小可能意味着您不会因数据检索延迟而导致速度变慢,但崩溃时的数据完整性可能会成为最有说服力的论据.
不知道任何指南,但我要做的是尝试将游戏作为一个愚蠢的聊天服务器启动,确保用户可以登录并执行某些操作(接受他们的输入并将其转储给所有其他用户) ,然后构建允许特定登录,所以你将开始面临用户名/密码处理和用户选项设置/存储/检索的挑战...然后开始添加gamedriver元素(在游戏中获取tic tac toe游戏),然后再复杂一点(使用可以拾取/放下/互相撞击的对象进行5室设置),然后添加一些非玩家角色,然后担心在Diku派生的smaug中啜饮城堡/等与他们一起工作.:)
这有点脱了袖口,我敢肯定有不同意见.:) 祝好运!