Cross platform point-and-click 2D adventure game engine
Project description
pyvida
an easy-to-use fully-featured cross platform point-and-click adventure game engine
Note:
Currently undergoing a large refactor and main branch is unstable.
Features
- cross platform - windows, mac and linux
- open source
- clean scripting language (python) allows full control of actors and menu
- in-game scene editor (linux only)
- unlimited scenes and actors
- actors have unlimited animations
- full logging for errors, warning and debug
- smart loading for handling art assets so you can concentrate of your plotting
- menus and inventories built in
- fully scriptable menus
- easily switch between playable characters
- supports any image and sound formats supported by SDL (we recommend PNG for images and OGG for sound)
- supports any screen size
- supports any colour depth
- alpha blending on graphics
- walkareas, hotspots, walk behinds, etc
Installation
Windows
TBA
Mac OS
TBA
Linux
python3 setup.py install --user pyvida
Dependencies
- pyglet 1.5.11
- pygame (optional - for music and sound if pyglet doesn't work)
- python 3.3+
Older versions of pyvida before 6.2.0 need the older pyglet 1.3:
pip install --upgrade https://bitbucket.org/pyglet/pyglet/get/tip.zip#egg=pyglet-1.3.0
Writing a game in pyvida
Please refer to the documentation in pyvida/docs
Empty Project
app = Game(name="basic project", fullscreen=False)
app.init() # initialise sound and graphics
app.run() # start the event loop
Game with one scene
app = Game(name="basic project", fullscreen=False)
scene = Scene("main interface")
app.add(scene)
app.camera.scene(scene) # set the camera to the scene
app.init() # initialise sound and graphics
app.run() # start the event loop
Queue_method decorator
The game engine uses an internal event queue for game scripts.
To create an method that will be called in the correct place in the script, add the @event_method decorator and create an "immediate_" method, which will be called when the even queue is ready to call that event.
Developer
You can contribute to pyvida by cloning the github repository.
To make a scripting event, on your class add a:
def on_(self) method. self.busy += 1 # to make the event block the next event for that actor self.game._waiting = True # to make the event block all other events in the game.
pip3 install -e . --no-binary :all:
Tests
pip3 install pytest-cov pytest-mock --user
Run the tests
pytest test_pyvida.py
Code coverage
pytest --cov=pyvida test_pyvida.py
changelog
7.0.0
- added unit tests
- replaced use_one_events metaclass with queue_event decorator
- removed deprecated retalk and respeech
- removed deprecated walkareas
- replaced opacity and alpha handing with single set_alpha and get_alpha methods
- when adding modals, they must be added to game object first.
- removed deprecated WalkArea (deprecated since pyvida4)
- remove pickle code, replaced with json for loading and save games and settings
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file pyvida-7.0.2.tar.gz
.
File metadata
- Download URL: pyvida-7.0.2.tar.gz
- Upload date:
- Size: 141.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.4.2 requests/2.20.0 setuptools/49.3.1 requests-toolbelt/0.8.0 tqdm/4.48.2 CPython/3.8.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 |
5f2e606da61f31407b8422ab0fdac58ab1c3a0bed0a8d10b06f1e9d7ef50328e
|
|
MD5 |
f62f53ab692294af6937866e5113393c
|
|
BLAKE2b-256 |
90ae5fc891fb368dc6b49288c37fc7bfbf075a44eee5c2a3a6f920074dd83cc4
|