上线设置


除了下载和更新时需要联网,Evennia的开发可以在没有任何网络连接的情况下进行。但某一天,你可能会想让你的游戏上线,无论是为了公开发布还是为了让其他开发人员或测试人员访问它。


将你自己的电脑作为服务器

这可能是目前最简单、最便宜的选择:在你自己家的电脑上运行Evennia。而且,由于Evennia自带web服务器,你不需要安装任何额外的东西就能开启它的网站。

优点
  • 免费(除了上网费和电费)
  • 对服务器和硬件的完全控制(它就放在那里!)
  • 易于设置
  • 适于快速安装 —— 比如要把成果展示给你的合作者

缺点
  • 你需要有良好的互联网连接,最好没有任何上传、下载的限制和费用。
  • 如果你想用这种方式完整地运行游戏,你的电脑需要一直开着。这可能会很吵,而且如前面提到的,需要把电费考虑进去。
  • 缺乏支持、不安全 —— 如果你的房子被烧了,你的游戏也会一起完蛋。另外,你需要自己负责做备份等(有些人会认为这是一个优势)。
  • 家用的IP号码通常是动态分配的,所以当需要永久在线时,你需要始终把DNS设置到正确的地址(见下文)。

将你自己的机器设置成服务器
在你自己机器运行Evennia的主要问题是要让Evennia的端口能通过最终的防火墙。在Evennia运行时要注意哪些端口正在被使用(默认的telnet端口是4000,web客户端的端口是8000,在下文中我们假设使用的是默认端口)。
  1. 前往 http://www.whatismyip.com/ (或类似网站),他们会告诉你你是从哪个IP地址连接出去的,例如230.450.0.222。
  2. 在你的网页浏览器中打开 http://230.450.0.222:8000,那最后的 :8000 就是Evennia使用的web客户端的端口。如果你能看到Evennia的网站并且可以连接到web客户端 —— 恭喜!就是它了!为了确保正确,再试着用传统的MUD客户端来连接telnet端口看看。
  3. 有可能你看不到Evennia的网站,这可能是因为防火墙阻止我们所需要的端口,也可能是因为你的计算机通过路由器与Internet连接,在这种情况下,我们“从外面”看到的IP地址其实是路由器的IP地址,而不是你电脑在本地网络上的地址。
  4. 这时你需要让Evennia的数据穿过你的路由器或防火墙。如何做到这一点会随设备制造商和软件的不同而不同,但原则上你需要寻找一个叫做“Port forwarding(端口转发)”或类似名字的东西。你需要把你电脑的8000/4000端口映射到“外部端口”,让外面的世界可以看到它们。外部端口号不必和内部端口号相同!比如,你可能想要将8000端口映射到外部的80端口 —— 这是HTTP请求的端口,web浏览器会自动搜索它。如果使用80端口你就不必在浏览器的URL中指定端口号了,如果你的计算机上还运行着其他的web服务器,这可能会产生问题。
  5. 在一些路由器上,你必须重新启动路由器才能让防火墙的更改生效,所以如果你仍然无法通过浏览器访问Evennia的网站,你可以试着重启一下看。
  6. 现在,你应该可以邀请人们访问http://230.450.0.222:8000或使用telnet连接到230.450.0.222的4000端口来玩你的游戏了。

直接指定IP地址的麻烦是你家的IP地址可能无法保持不变。许多ISP(互联网服务提供商)分配给你的是动态IP地址,可能随时会变化。一旦发生这种情况,你提供给别人的IP地址将变得毫无用处。而且那一长串数字并不好看,不是吗?人们很难记住它,而且不方便用于你游戏的推广。你需要分配一个容易使用的域名 —— 在IP地址发生变化时也能够跟随着你。
  1. 要设置域名,我们建议先从 FreeDNS 获取一个免费域名。在你注册(完全免费)之后,你可以看到别人“捐赠”的成千上万的域名,你可以将它们用在你自己的子域名上。例如,strangled.net 是那些可用域名中的一个,把IP地址绑定到strangled.net上的子域evennia意味着人们可以直接通过 http://evennia.strangled.net:8000 来访问游戏 —— 这更容易记忆!
  2. 那么,如何才能让这个新建的、漂亮的域名在我们的IP地址发生变化后依然跟随我们呢?为此,我们需要在我们的计算机上安装一个小程序。不论何时ISP修改了我们的IP地址它都会监控到,并会告知FreeDNS。在FreeDNS的主页上有很多的选择,其中一个可跨平工作的是 inadyn,可以从它们的网页上下载,也可以在Linux中通过如apt-get之类的软件安装inadyn 。
  3. 接下来,你登录 FreeDNS 并转到 Dynamic 页面,你应该可以看到自己的子域名列表。点击 Direct URL 链接,你会看到一页文字消息,别管这些内容,直接看页面的URL。URL是以许多随机字母结束的,在问号后面所有东西就是你独一无二的“散列”。复制这个字符串。
  4. 现在你使用以下命令(Linux)启动inadyn :
    inadyn --dyndns_system default@freedns.afraid.org -a <我的.域名>,<散列> &
    
    其中 <我的.域名> 是evennia.strangled.net,<散列>是我们从FreeDNS复制那串字符串。&表示我们在后台运行程序(可能无法在其他操作系统中生效)。之后,inadyn将会每60秒检查一次变化。你应该把启动inadyn的命令添加到启动脚本中,每次计算机启动时就会运行它。


远程主机

通常的“网页空间服务”很可能不足以运行Evennia。网页空间服务通常只针对非常具体的用法 —— 提供网页服务,最多再带有一些动态内容。他们主页上所称的“Python脚本”通常只在他们的网络服务器上运行的类似CGI的脚本。即使他们允许你通过shell访问(这样你可以先安装Evennia的必备软件),可用的资源也可能会受到很大限制。运行Evennia之类的完整游戏服务器可能会被回避或者是根本不可能的。如果你不确定,请联系你的网页空间服务商,询问他们有关运行需要打开自定义端口的第三方服务器的政策。

你要寻找可能是shell帐户服务或VPS。“shell帐户”服务意味着你得到了一个服务器上的shell帐户,可以以普通用户的身份登录。相比之下,一个VPS(虚拟专用服务器)通常意味着你可以获得root权限,但是是在虚拟机上。

优点
  • shell帐户/VPS比一般的网页空间服务更灵活 —— 可以让你登录到远程的共享计算机。
  • 通常运行Linux系统,因此很容易安装Evennia。
  • 有支持。你不需要维护服务器硬件。即使你的房子被烧了,至少你的游戏还能保持在线​​。在正常运行时间有一定的服务保证,也可能会为你做定期备份(因提供商而异)。
  • 提供固定的域名,所以不必再去管IP地址。

缺点
  • 可能会很贵(和网页空间服务比贵很多)
  • 不习惯ssh/PuTTy、Linux命令行的用户可能会对Linux环境感到陌生。
  • 你可能要和其他人共享服务器,这样你无法完全掌控。CPU的使用可能是有限制的。而且,如果服务器提供者决定停机维护,你别无选择,只能坐下来干等(但你应该能提前得到通知)。

在远程shell帐户/VPS上设置Evennia

假设你知道如何通过ssh/PuTTy连接到你的帐户,通常你应该就能按照准备开始中的指示来做了。端口可能是个问题,所以你一定要确切知道哪些端口是可以用的。

如果你在虚拟机上没有root权限(只有普通用户的shell帐户),你可能无法轻易获得所有资源。比如你需要root权限来使用apt-get,在这种情况下,你应该可以通过建立virtualenv来安装,请参阅准备开始的最后一节以获取更多信息。

想找到提供商,上网搜索你当地的shell帐户/VPS吧。比如有个用户成功地联系了Webfaction

值得一试的是,这里特别针对MUD游戏提供免费托管。但你需要在MUDbytes上建有帐户并且有一些使用(如果你对MUD有兴趣,这是一个很好的论坛,值得加入)。在这个MUD专用服务器上,你可以保留也可以使用端口。从他们的网页上看不出提供了哪些资源(只列出了GCC),所以可能需要使用virtualenv来获取所有的必备软件。


(原文:https://github.com/Evennia/evennia/wiki/Online Setup    翻译:卢铱俊)