pyvida
pyvida copied to clipboard
cross platform point and click adventure game engine
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_
Developer
You can contribute to pyvida by cloning the github repository.
To make a scripting event, on your class add a:
def on_
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