Version 1.0rc10, py3.10 min
This commit is contained in:
parent
18f04ef97b
commit
07935f68a3
10 changed files with 43 additions and 45 deletions
|
|
@ -20,7 +20,7 @@ jobs:
|
||||||
|
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
python-version: ['3.9']
|
python-version: ['3.10']
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout ${{ github.ref }} branch
|
- name: Checkout ${{ github.ref }} branch
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@
|
||||||
> Not released yet
|
> Not released yet
|
||||||
> 2019-2022 develop branch (WIP)
|
> 2019-2022 develop branch (WIP)
|
||||||
|
|
||||||
Increase requirements: Django 4.1+, Twisted 22.10+ Python 3.9, 3.10, 3.11. PostgreSQL 11+.
|
Increase requirements: Django 4.1+, Twisted 22.10+ Python 3.10, 3.11. PostgreSQL 11+.
|
||||||
|
|
||||||
- New `drop:holds()` lock default to limit dropping nonsensical things. Access check
|
- New `drop:holds()` lock default to limit dropping nonsensical things. Access check
|
||||||
defaults to True for backwards-compatibility in 0.9, will be False in 1.0
|
defaults to True for backwards-compatibility in 0.9, will be False in 1.0
|
||||||
|
|
|
||||||
39
README.md
39
README.md
|
|
@ -2,52 +2,46 @@
|
||||||
[![Build Status][unittestciimg]][unittestcilink] [![Coverage Status][coverimg]][coverlink]
|
[![Build Status][unittestciimg]][unittestcilink] [![Coverage Status][coverimg]][coverlink]
|
||||||
|
|
||||||
|
|
||||||
*Evennia* is a modern library for creating [online multiplayer text
|
[Evennia][homepage] is a modern library for creating [online multiplayer text
|
||||||
games][wikimudpage] (MUD, MUSH, MUX, MUCK, MOO etc) in pure Python. It
|
games][wikimudpage] (MUD, MUSH, MUX, MUCK, MOO etc) in pure Python. It
|
||||||
allows game creators to design and flesh out their ideas with great
|
allows game creators to design and flesh out their ideas with great
|
||||||
freedom.
|
freedom.
|
||||||
|
|
||||||
Evennia does not impose a particular style, genre or game mechanic. Instead it
|
Evennia does not impose a particular style, genre or game mechanic. Instead it
|
||||||
solves the boring networking and provides a framework for you to build the game
|
solves the boring networking and basic stuff all online games need. It provides
|
||||||
you want. Coding in Evennia is done using normal Python modules imported into
|
a framework and tools for you to build the game you want. Coding in Evennia is
|
||||||
the server at runtime. All library code is heavily documented. Evennia has
|
done using normal Python modules imported into the server at runtime.
|
||||||
extensive manuals and tutorials as well as a very active support community!
|
|
||||||
|
Evennia has [extensive documentation][docs]. It also has a very active community
|
||||||
|
with [discussion forums][group] and a [discord server][chat] to help and support you!
|
||||||
|
|
||||||
## Installation
|
## Installation
|
||||||
|
|
||||||
pip install evennia
|
pip install evennia
|
||||||
|
(windows users once: py -m evennia)
|
||||||
evennia --init mygame
|
evennia --init mygame
|
||||||
cd mygame
|
cd mygame
|
||||||
evennia migrate
|
evennia migrate
|
||||||
evennia start / stop / reload
|
evennia start / stop / reload
|
||||||
|
|
||||||
Next, browse to http://localhost:4001 or telnet to localhost port 4000 to see your working (if empty) game!
|
See [the full installation instructions][installation] for more help.
|
||||||
|
|
||||||
- https://www.evennia.com is the main hub tracking all things Evennia.
|
Next, browse to `http://localhost:4001` or use your third-party mud client to
|
||||||
- [Here is a shortcut to the documentation and tutorials](https://www.evennia.com/docs/latest/)
|
connect to to `localhost`, port `4000` to see your working (if empty) game!
|
||||||
|
|
||||||
![screenshot][screenshot]
|
![screenshot][screenshot]
|
||||||
|
|
||||||
## Current Status
|
## Where to go next
|
||||||
|
|
||||||
The codebase is currently in **Beta**. While development continues,
|
If this piqued your interest, there is a [lengthier introduction][introduction] to read. You
|
||||||
Evennia is already stable enough to be suitable for prototyping and
|
can also read our [Evennia in pictures][evenniapictures] overview.
|
||||||
development of your own games.
|
|
||||||
|
|
||||||
## Where to go from here
|
After that, why not check out the [Evennia Beginner tutorial][beginnertutorial].
|
||||||
|
|
||||||
If this piqued your interest, there is a [lengthier
|
|
||||||
introduction][introduction] to read.
|
|
||||||
|
|
||||||
To learn how to get your hands on the code base, the [Getting
|
|
||||||
started][gettingstarted] page is the way to go. Otherwise you could
|
|
||||||
browse the [Documentation][docs] or why not come join the [Evennia
|
|
||||||
Community forum][group] or join us in our [development chat][chat].
|
|
||||||
Welcome!
|
Welcome!
|
||||||
|
|
||||||
|
|
||||||
[homepage]: https://www.evennia.com
|
[homepage]: https://www.evennia.com
|
||||||
[gettingstarted]: https://www.evennia.com/docs/latest/Getting-Started.html
|
|
||||||
[docs]: https://www.evennia.com/docs/latest
|
[docs]: https://www.evennia.com/docs/latest
|
||||||
[screenshot]: https://user-images.githubusercontent.com/294267/30773728-ea45afb6-a076-11e7-8820-49be2168a6b8.png
|
[screenshot]: https://user-images.githubusercontent.com/294267/30773728-ea45afb6-a076-11e7-8820-49be2168a6b8.png
|
||||||
[logo]: https://github.com/evennia/evennia/blob/master/evennia/web/website/static/website/images/evennia_logo.png
|
[logo]: https://github.com/evennia/evennia/blob/master/evennia/web/website/static/website/images/evennia_logo.png
|
||||||
|
|
@ -60,3 +54,6 @@ Welcome!
|
||||||
[group]: https://github.com/evennia/evennia/discussions
|
[group]: https://github.com/evennia/evennia/discussions
|
||||||
[chat]: https://discord.gg/AJJpcRUhtF
|
[chat]: https://discord.gg/AJJpcRUhtF
|
||||||
[wikimudpage]: http://en.wikipedia.org/wiki/MUD
|
[wikimudpage]: http://en.wikipedia.org/wiki/MUD
|
||||||
|
[evenniapictures]: https://www.evennia.com/docs/latest/Evennia-In-Pictures.html
|
||||||
|
[beginnertutorial]: https://www.evennia.com/docs/latest/Howtos/Howtos-Overview.html#beginner-tutorial
|
||||||
|
[installation]: https://www.evennia.com/docs/latest/Setup/Setup-Overview.html#installation-and-running
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@
|
||||||
> Not released yet
|
> Not released yet
|
||||||
> 2019-2022 develop branch (WIP)
|
> 2019-2022 develop branch (WIP)
|
||||||
|
|
||||||
Increase requirements: Django 4.1+, Twisted 22.10+ Python 3.9, 3.10, 3.11. PostgreSQL 11+.
|
Increase requirements: Django 4.1+, Twisted 22.10+ Python 3.10, 3.11. PostgreSQL 11+.
|
||||||
|
|
||||||
- New `drop:holds()` lock default to limit dropping nonsensical things. Access check
|
- New `drop:holds()` lock default to limit dropping nonsensical things. Access check
|
||||||
defaults to True for backwards-compatibility in 0.9, will be False in 1.0
|
defaults to True for backwards-compatibility in 0.9, will be False in 1.0
|
||||||
|
|
@ -222,6 +222,7 @@ Increase requirements: Django 4.1+, Twisted 22.10+ Python 3.9, 3.10, 3.11. Post
|
||||||
- Add `AT_EXIT_TRAVERSE` signal, firing when an exit is traversed.
|
- Add `AT_EXIT_TRAVERSE` signal, firing when an exit is traversed.
|
||||||
- Add integration between Evennia and Discord channels (PR by Inspector Cararacal)
|
- Add integration between Evennia and Discord channels (PR by Inspector Cararacal)
|
||||||
- Support for using a Godot-powered client with Evennia (PR by ChrisLR)
|
- Support for using a Godot-powered client with Evennia (PR by ChrisLR)
|
||||||
|
- Added German translation (patch by Zhuraj)
|
||||||
|
|
||||||
## Evennia 0.9.5
|
## Evennia 0.9.5
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -101,7 +101,7 @@ caller.msg(coordinates=(9, 2))
|
||||||
```
|
```
|
||||||
|
|
||||||
Godot
|
Godot
|
||||||
```
|
```gdscript
|
||||||
func _on_data():
|
func _on_data():
|
||||||
...
|
...
|
||||||
if json_data[0] == 'text':
|
if json_data[0] == 'text':
|
||||||
|
|
@ -130,7 +130,7 @@ you receive, so you can manage the code better.
|
||||||
This is an example of a Script to use in Godot 3.
|
This is an example of a Script to use in Godot 3.
|
||||||
The script can be attached to the root UI node.
|
The script can be attached to the root UI node.
|
||||||
|
|
||||||
```
|
```gdscript
|
||||||
extends Node
|
extends Node
|
||||||
|
|
||||||
# The URL to connect to, should be your mud.
|
# The URL to connect to, should be your mud.
|
||||||
|
|
@ -221,7 +221,7 @@ Note that the version is not final so the code may break.
|
||||||
It requires a WebSocketClientNode as a child of the root node.
|
It requires a WebSocketClientNode as a child of the root node.
|
||||||
The script can be attached to the root UI node.
|
The script can be attached to the root UI node.
|
||||||
|
|
||||||
```
|
```gdscript
|
||||||
extends Control
|
extends Control
|
||||||
|
|
||||||
# The URL to connect to, should be your mud.
|
# The URL to connect to, should be your mud.
|
||||||
|
|
|
||||||
|
|
@ -7,12 +7,12 @@ you can run `evennia -l`, or start/reload the server with `evennia start -l` or
|
||||||
|
|
||||||
## Check your Requirements
|
## Check your Requirements
|
||||||
|
|
||||||
Any system that supports Python3.9+ should work.
|
Any system that supports Python3.10+ should work.
|
||||||
- Linux/Unix
|
- Linux/Unix
|
||||||
- Windows (Win7, Win8, Win10, Win11)
|
- Windows (Win7, Win8, Win10, Win11)
|
||||||
- Mac OSX (>10.5 recommended)
|
- Mac OSX (>10.5 recommended)
|
||||||
|
|
||||||
- [Python](https://www.python.org) (v3.9, 3.10 and 3.11 are tested. 3.11 is recommended)
|
- [Python](https://www.python.org) (3.10 and 3.11 are tested. 3.11 is recommended)
|
||||||
- [Twisted](https://twistedmatrix.com) (v22.3+)
|
- [Twisted](https://twistedmatrix.com) (v22.3+)
|
||||||
- [ZopeInterface](https://www.zope.org/Products/ZopeInterface) (v3.0+) - usually included in Twisted packages
|
- [ZopeInterface](https://www.zope.org/Products/ZopeInterface) (v3.0+) - usually included in Twisted packages
|
||||||
- Linux/Mac users may need the `gcc` and `python-dev` packages or equivalent.
|
- Linux/Mac users may need the `gcc` and `python-dev` packages or equivalent.
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,7 @@ You can also [clone Evennia from github](./Installation-Git.md) or use [docker
|
||||||
```{sidebar} Develop in isolation
|
```{sidebar} Develop in isolation
|
||||||
Installing Evennia doesn't make anything visible online. Apart from installation and updating, you can develop your game without any internet connection if you want to.
|
Installing Evennia doesn't make anything visible online. Apart from installation and updating, you can develop your game without any internet connection if you want to.
|
||||||
```
|
```
|
||||||
- Evennia requires [Python](https://www.python.org/downloads/) 3.9, 3.10 or 3.11 (recommended). Any OS that supports Python should work.
|
- Evennia requires [Python](https://www.python.org/downloads/) 3.10 or 3.11 (recommended). Any OS that supports Python should work.
|
||||||
- _Windows_: In the installer, make sure you select `add python to path`. If you have multiple versions of Python installed, use `py` command instead of `python` to have Windows automatically use the latest.
|
- _Windows_: In the installer, make sure you select `add python to path`. If you have multiple versions of Python installed, use `py` command instead of `python` to have Windows automatically use the latest.
|
||||||
- _Windows:_ If you want to use Python 3.11, you must also install the [Windows SDK](https://aka.ms/vs/16/release/vs_buildtools.exe). Run the linked installer. Click the `Individual Components` tab at the top, then search and checkbox the latest `Windows 10 SDK` (also for older/newer Windows versions). Then click `Install`. If you have trouble, use Python 3.10 for now (2022).
|
- _Windows:_ If you want to use Python 3.11, you must also install the [Windows SDK](https://aka.ms/vs/16/release/vs_buildtools.exe). Run the linked installer. Click the `Individual Components` tab at the top, then search and checkbox the latest `Windows 10 SDK` (also for older/newer Windows versions). Then click `Install`. If you have trouble, use Python 3.10 for now (2022).
|
||||||
- Don't install Evennia as administrator or superuser.
|
- Don't install Evennia as administrator or superuser.
|
||||||
|
|
|
||||||
|
|
@ -3,8 +3,8 @@
|
||||||
# when people upgrade outside regular channels). This file only supports lines of
|
# when people upgrade outside regular channels). This file only supports lines of
|
||||||
# `value = number` and only specific names supported by the handler.
|
# `value = number` and only specific names supported by the handler.
|
||||||
|
|
||||||
PYTHON_MIN = 3.9
|
PYTHON_MIN = 3.10
|
||||||
PYTHON_MAX_TESTED = 3.11.0.0
|
PYTHON_MAX_TESTED = 3.11.100
|
||||||
TWISTED_MIN = 20.3.0
|
TWISTED_MIN = 20.3.0
|
||||||
DJANGO_MIN = 4.0.2
|
DJANGO_MIN = 4.0.2
|
||||||
DJANGO_MAX_TESTED = 4.1
|
DJANGO_MAX_TESTED = 4.1.100
|
||||||
|
|
|
||||||
|
|
@ -53,7 +53,7 @@ You must also remove the protocol from the `connect_to_url` call made
|
||||||
within the `_ready` function.
|
within the `_ready` function.
|
||||||
|
|
||||||
```
|
```
|
||||||
func _ready():
|
func _ready():
|
||||||
# ...
|
# ...
|
||||||
# Change the following line from this
|
# Change the following line from this
|
||||||
var err = _client.connect_to_url(websocket_url, ["lws-mirror-protocol"])
|
var err = _client.connect_to_url(websocket_url, ["lws-mirror-protocol"])
|
||||||
|
|
@ -73,13 +73,13 @@ func _on_data():
|
||||||
var data = _client.get_peer(1).get_packet().get_string_from_utf8()
|
var data = _client.get_peer(1).get_packet().get_string_from_utf8()
|
||||||
var json_data = JSON.parse(data).result
|
var json_data = JSON.parse(data).result
|
||||||
# The json_data is an array
|
# The json_data is an array
|
||||||
|
|
||||||
# The first element informs us this is simple text
|
# The first element informs us this is simple text
|
||||||
# so we add it to the RichTextlabel
|
# so we add it to the RichTextlabel
|
||||||
if json_data[0] == 'text':
|
if json_data[0] == 'text':
|
||||||
for msg in json_data[1]:
|
for msg in json_data[1]:
|
||||||
label.append_bbcode(msg)
|
label.append_bbcode(msg)
|
||||||
|
|
||||||
# Always useful to print the data and see what we got.
|
# Always useful to print the data and see what we got.
|
||||||
print(data)
|
print(data)
|
||||||
```
|
```
|
||||||
|
|
@ -102,18 +102,18 @@ caller.msg(coordinates=(9, 2))
|
||||||
```
|
```
|
||||||
|
|
||||||
Godot
|
Godot
|
||||||
```gdscript
|
```
|
||||||
func _on_data():
|
func _on_data():
|
||||||
...
|
...
|
||||||
if json_data[0] == 'text':
|
if json_data[0] == 'text':
|
||||||
for msg in json_data[1]:
|
for msg in json_data[1]:
|
||||||
label.append_bbcode(msg)
|
label.append_bbcode(msg)
|
||||||
|
|
||||||
# Notice the first element is the name of the kwarg we used from evennia.
|
# Notice the first element is the name of the kwarg we used from evennia.
|
||||||
elif json_data[0] == 'coordinates':
|
elif json_data[0] == 'coordinates':
|
||||||
var coords_data = json_data[2]
|
var coords_data = json_data[2]
|
||||||
player.set_pos(coords_data)
|
player.set_pos(coords_data)
|
||||||
|
|
||||||
...
|
...
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
@ -132,7 +132,7 @@ you receive, so you can manage the code better.
|
||||||
This is an example of a Script to use in Godot 3.
|
This is an example of a Script to use in Godot 3.
|
||||||
The script can be attached to the root UI node.
|
The script can be attached to the root UI node.
|
||||||
|
|
||||||
```gdscript
|
```
|
||||||
extends Node
|
extends Node
|
||||||
|
|
||||||
# The URL to connect to, should be your mud.
|
# The URL to connect to, should be your mud.
|
||||||
|
|
@ -190,7 +190,7 @@ func _on_data():
|
||||||
# elsewhere in the project.
|
# elsewhere in the project.
|
||||||
self.emit_signal('updated_coordinates', json_data[1])
|
self.emit_signal('updated_coordinates', json_data[1])
|
||||||
|
|
||||||
|
|
||||||
# We only print this for easier debugging.
|
# We only print this for easier debugging.
|
||||||
print(data)
|
print(data)
|
||||||
|
|
||||||
|
|
@ -224,7 +224,7 @@ Note that the version is not final so the code may break.
|
||||||
It requires a WebSocketClientNode as a child of the root node.
|
It requires a WebSocketClientNode as a child of the root node.
|
||||||
The script can be attached to the root UI node.
|
The script can be attached to the root UI node.
|
||||||
|
|
||||||
```gdscript
|
```
|
||||||
extends Control
|
extends Control
|
||||||
|
|
||||||
# The URL to connect to, should be your mud.
|
# The URL to connect to, should be your mud.
|
||||||
|
|
@ -243,7 +243,7 @@ func _ready():
|
||||||
websocket.connect('connected_to_server', self._connected)
|
websocket.connect('connected_to_server', self._connected)
|
||||||
websocket.connect('connection_closed', self._closed)
|
websocket.connect('connection_closed', self._closed)
|
||||||
websocket.connect('message_received', self._on_data)
|
websocket.connect('message_received', self._on_data)
|
||||||
|
|
||||||
# We attempt to connect and print out the error if we have one.
|
# We attempt to connect and print out the error if we have one.
|
||||||
var result = websocket.connect_to_url(websocket_url)
|
var result = websocket.connect_to_url(websocket_url)
|
||||||
if result != OK:
|
if result != OK:
|
||||||
|
|
@ -286,4 +286,4 @@ func _on_button_pressed():
|
||||||
var msg_str = JSON.stringify(msg_arr)
|
var msg_str = JSON.stringify(msg_arr)
|
||||||
websocket.send(msg_str)
|
websocket.send(msg_str)
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
||||||
|
|
||||||
[project]
|
[project]
|
||||||
name = "evennia"
|
name = "evennia"
|
||||||
version = "1.0rc9"
|
version = "1.0rc10"
|
||||||
maintainers = [
|
maintainers = [
|
||||||
{ name="Griatch", email="griatch@gmail.com" },
|
{ name="Griatch", email="griatch@gmail.com" },
|
||||||
]
|
]
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue