打造自己的网络游戏[1]-Muddery安装与启动
Muddery是一個用Python編寫的在線文字游戲(如MUD)框架,所有的代碼都是開源的,采用BSD許可證發(fā)布。它使用Evennia(一個MUD游戲框架)作為其內(nèi)核。
特點
Muddery具有以下特點:
使用Python開發(fā),可以跨平臺使用,只需要花幾分鐘時間就能夠安裝它。
支持多人在線游戲,游戲內(nèi)容主要以文字形式展現(xiàn),但也可以擴展加入多媒體的內(nèi)容。
內(nèi)建有基本的任務系統(tǒng)、事件系統(tǒng)、對話系統(tǒng)等,便于游戲的創(chuàng)建。
自帶有網(wǎng)頁版的游戲編輯器,可以在網(wǎng)頁上構建游戲世界。
自帶網(wǎng)頁客戶端,可以輕松地發(fā)布游戲。
完全使用點擊式的游戲操作模式,便于在智能手機、平板設備上使用。
Python3 的 Ubuntu 版本,如 18.04,安裝:
$sudo apt-get update $sudo apt-get install python3.7 python3.7-dev python3-setuptools python3.7-venv gcc $ mkdir game_jjsd $ cd game_jjsd $git clone https://github.com/muddery/muddery.gitPython應用程序通常會使用不在標準庫內(nèi)的軟件包和模塊。應用程序有時需要特定版本的庫,因為應用程序可能需要修復特定的錯誤,或者可以使用庫的過時版本的接口編寫應用程序。
這意味著一個Python安裝可能無法滿足每個應用程序的要求。如果應用程序A需要特定模塊的1.0版本但應用程序B需要2.0版本,則需求存在沖突,安裝版本1.0或2.0將導致某一個應用程序無法運行。
這個問題的解決方案是創(chuàng)建一個 virtual environment,一個目錄樹,其中安裝有特定Python版本,以及許多其他包。
創(chuàng)建虛擬環(huán)境
用于創(chuàng)建和管理虛擬環(huán)境的模塊稱為 venv。venv 通常會安裝你可用的最新版本的 Python。如果您的系統(tǒng)上有多個版本的 Python,您可以通過運行 python3 或您想要的任何版本來選擇特定的Python版本。
要創(chuàng)建虛擬環(huán)境,請確定要放置它的目錄,并將 venv 模塊作為腳本運行目錄路徑:
python3 -m venv tutorial-env
如果它不存在,這將創(chuàng)建 tutorial-env 目錄,并在其中創(chuàng)建包含Python解釋器,標準庫和各種支持文件的副本的目錄。
創(chuàng)建虛擬環(huán)境后,您可以激活它。
在Windows上,運行:
tutorial-env\Scripts\activate.bat
在Unix或MacOS上,運行:
source tutorial-env/bin/activate
$ python3.7 -m venv game_jjsd $ source game_jjsd/bin/activate python3.7 -m venv game_jjsd ~/game_jjsd$ source game_jjsd/bin/activate $ pip install -e muddery (game_jjsd) jjsd@instance-wf2i4r00:~/game_jjsd/jjsd$ muddery stop Evennia not running. (game_jjsd) jjsd@instance-wf2i4r00:~/game_jjsd/jjsd$ muddery start Portal starting ... ... Portal started. Server starting ... ... Server started. Evennia running. ------------------------ Evennia --- Evennia Portal 0.9.0 (rev f6daa5fa)external ports:webserver-proxy: 8000webclient-websocket: 8001internal_ports (to Server):webserver: 5001amp: 5000Evennia Server 0.9.0 (rev f6daa5fa)internal ports (to Portal):webserver: 5001amp : 5000 ------------------------------------ Static file collected. ------------------------ Muddery ---啟動示例程序
muddery --init mygame example_cn補充知識:
你可以使用一個名為 pip 的程序來安裝、升級和移除軟件包。默認情況下 pip 將從 Python Package Index https://pypi.org 安裝軟件包。你可以在瀏覽器中訪問 Python Package Index 或是使用 pip 受限的搜索功能:
(tutorial-env) $ pip search astronomy skyfield - Elegant astronomy for Python gary - Galactic astronomy and gravitational dynamics. novas - The United States Naval Observatory NOVAS astronomy library astroobs - Provides astronomy ephemeris to plan telescope observations PyAstronomy - A collection of astronomy related tools for Python. ...pip 有許多子命令:“search”、“install”、“uninstall”、“freeze”等等。(請參閱 安裝 Python 模塊 指南以了解 pip 的完整文檔。)
您可以通過指定包的名稱來安裝最新版本的包:
(tutorial-env) $ pip install novas Collecting novasDownloading novas-3.1.1.3.tar.gz (136kB) Installing collected packages: novasRunning setup.py install for novas Successfully installed novas-3.1.1.3您還可以通過提供包名稱后跟 == 和版本號來安裝特定版本的包:
(tutorial-env) $ pip install requests==2.6.0 Collecting requests==2.6.0Using cached requests-2.6.0-py2.py3-none-any.whl Installing collected packages: requests Successfully installed requests-2.6.0如果你重新運行這個命令,pip 會注意到已經(jīng)安裝了所請求的版本并且什么都不做。您可以提供不同的版本號來獲取該版本,或者您可以運行 pip install --upgrade 將軟件包升級到最新版本:
(tutorial-env) $ pip install --upgrade requests Collecting requests Installing collected packages: requestsFound existing installation: requests 2.6.0Uninstalling requests-2.6.0:Successfully uninstalled requests-2.6.0 Successfully installed requests-2.7.0pip uninstall 后跟一個或多個包名稱將從虛擬環(huán)境中刪除包。
pip show 將顯示有關特定包的信息:
(tutorial-env) $ pip show requests --- Metadata-Version: 2.0 Name: requests Version: 2.7.0 Summary: Python HTTP for Humans. Home-page: http://python-requests.org Author: Kenneth Reitz Author-email: me@kennethreitz.com License: Apache 2.0 Location: /Users/akuchling/envs/tutorial-env/lib/python3.4/site-packages Requires:pip list 將顯示虛擬環(huán)境中安裝的所有軟件包:
(tutorial-env) $ pip list
novas (3.1.1.3)
numpy (1.9.2)
pip (7.0.3)
requests (2.7.0)
setuptools (16.0)
pip freeze` 將生成一個類似的已安裝包列表,但輸出使用 pip install 期望的格式。一個常見的約定是將此列表放在 requirements.txt 文件中:
然后可以將 requirements.txt 提交給版本控制并作為應用程序的一部分提供。然后用戶可以使用 install -r 安裝所有必需的包:
(tutorial-env) $ pip install -r requirements.txt Collecting novas==3.1.1.3 (from -r requirements.txt (line 1))... Collecting numpy==1.9.2 (from -r requirements.txt (line 2))... Collecting requests==2.7.0 (from -r requirements.txt (line 3))... Installing collected packages: novas, numpy, requestsRunning setup.py install for novas Successfully installed novas-3.1.1.3 numpy-1.9.2 requests-2.7.0更新 Muddery 代碼
Muddery 的代碼是發(fā)布在 Github 上的,用戶可以隨時從 Github 上獲取最新的代碼。
進入 Muddery 代碼所在的目錄,執(zhí)行
git pull
這樣就可以從 Github 上拉取最新的代碼,并且和你本地的代碼進行合并。
請注意,如果你修改過本地的 Muddery 代碼,可能會造成合并、更新失敗。所以不建議用戶直接修改 Muddery 目錄中的代碼。如果想給系統(tǒng)添加自定義的內(nèi)容,可以在用戶自己的游戲目錄中創(chuàng)建派生類,在派生類添加自己的內(nèi)容。具體的修改方法之后會有詳細的教程。
升級游戲
當 Muddery 系統(tǒng)的數(shù)據(jù)庫結構發(fā)生了變化或者有其他重大更新時,用戶不止要更新 Muddery 系統(tǒng),還要升級已創(chuàng)建好的游戲才能讓游戲正常運行。
游戲?qū)南到y(tǒng)版本號和模版記錄在游戲目錄的 game.cfg 文件中,系統(tǒng)會以此判斷游戲的版本是否需要升級。
進入游戲目錄,輸入命令
muddery start
啟動游戲。如果游戲沒有啟動,而是顯示出以下信息:
Your game’s version is too old. Please run:
就說明游戲目錄必須升級。
你只需要在游戲目錄中執(zhí)行
muddery --upgrade
系統(tǒng)就會自動升級。
在升級前,升級程序會先備份當前的游戲目錄,備份目錄和當前游戲目錄在同級目錄中,備份目錄的名字為游戲目錄名加上 _bak_日期。用戶可以在這個文件夾中找到所有升級前的文件。如果用戶覺得升級有問題,只要將備份目錄的名字改為原來的名字就可以回退。
請注意,有時在升級游戲之后,某些游戲數(shù)據(jù)無法自動同步到新的游戲中,這時就需要手工將數(shù)據(jù)補充到新的游戲數(shù)據(jù)庫中。如果用戶使用的是默認的Sqlite3數(shù)據(jù)庫,數(shù)據(jù)庫文件會隨其他文件一起拷貝到備份目錄中,而如果使用的是MySQL或其他數(shù)據(jù)庫,則需要在升級之前先手工備份數(shù)據(jù)庫。
總結
以上是生活随笔為你收集整理的打造自己的网络游戏[1]-Muddery安装与启动的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php如何将mysql数据库中的admi
- 下一篇: html%2b怎么转换成加号,Apach