Version 1.0rc10, py3.10 min

This commit is contained in:
Griatch 2022-12-03 09:57:42 +01:00
parent 18f04ef97b
commit 07935f68a3
10 changed files with 43 additions and 45 deletions

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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.

View file

@ -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.

View file

@ -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.

View file

@ -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

View file

@ -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)
``` ```

View file

@ -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" },
] ]