代码之家  ›  专栏  ›  技术社区  ›  Mike Trpcic

泥浆编程问题

  •  8
  • Mike Trpcic  · 技术社区  · 15 年前

    我以前玩泥巴是基于 Smaug Codebase . 它是高度定制的,但核心是相同的。我有这个泥的源代码,并且有兴趣编写自己的(只是为了一个有趣的项目)。不过,我有一些问题,主要是关于设计方面的。也许有人能帮我一把?

    1. 我应该使用什么语言?解释或编译?有什么区别吗?斯马格是用C语言写的,我对很多语言都很熟悉,而且再学习也没有问题。
    2. 我是否应该遵循一种特殊的方法来不妨碍性能?面向对象、功能性等?
    3. 我应该使用什么介质来存储数据?平面文件(这是Smaug使用的),或者类似于sqlite的文件。两者的性能优缺点是什么?
    4. 有没有任何人知道如何开始这样的项目的指南?

    我希望它的规模能够允许50个玩家同时在线,而不会降低性能。如果我使用Ruby 1.8(非常慢),与使用Python 3.1(更快)或编译C/C++相比,它会有什么不同吗?

    如果有人能帮忙提供一些信息或建议,我将永远感激。

    2 回复  |  直到 12 年前
        1
  •  11
  •   Paul Schifferer    12 年前

    我来试一试:

    1. 在2009年,对于一个50人的游戏来说,这并不重要。如果您想进一步扩展,您可能需要选择一种您熟悉的分析工具语言,但是由于RAM现在很便宜,因此驱动早期lpmud(我有经验)和dikumud(您的smaug是从中派生的)的约束不适用。(lpmud可以在内存为8MB的机器上处理大约10-15个玩家)
    2. 编程风格不一定会导致性能问题,比如大型站点 Amazon's 'obidos' webserver 是用C语言写的,但就像原来的雅虎商店一样,StackOverflow是用Lisp语言写的,StackOverflow是用ASP.NET等语言写的。我会/亲自/使用C语言,但很多人会称我为虐待狂。
    3. 平面文件在当今的时代对于很多数据存储来说都是毫无意义的,但也有一些特殊的情况例外(例如,大型邮件服务器有时使用“maildir”,它是结构化的平面文件)。游戏的规模可能意味着你不会因为数据检索延迟而陷入巨大的缓慢,但是万一崩溃的数据完整性可能会成为最令人信服的论据。
    4. 我不知道任何指南,但我要做的是尝试让游戏作为一个愚蠢的聊天服务器启动,确保用户可以登录并做一些事情(接受他们的输入并将其转储给所有其他用户),然后建立起来允许特定的登录,所以您将开始面临用户名/密码处理和用户选项设置/存储的挑战。/正在检索…然后开始添加游戏驱动程序元素(让tic-tac-toe游戏在游戏中工作),然后变得更复杂一点(让一个5房间的设置与可以互相拾取/放置/击打的对象一起工作),然后添加一些非玩家角色,然后担心在diku派生的smaug castles/etc中发出咕噜声,并与它们一起工作。:)

    这有点离谱,我相信有不同意见。:)祝你好运!

        2
  •  1
  •   Dan Hook    15 年前

    这是一个基于文本的游戏,对吧?在这种情况下,对于当前的硬件,您所要担心的似乎只是无意中创建了一个O(n**2)算法。即使这样,对于50个用户来说也不算太糟糕。