KISS GAME ENGINE (kge
) is a 2D Game Engine written in Python, running in Python and For Python Game Developers.
Its intend is to provide python game developers with an easy API to learn to build their own 2D games and provide the possibility to write from little to very big games.
It is built on top of the pyglet library for rendering, and a python version of the great physics engine Box2D. So you can expect it to be of top quality.
If you have any issue you can add an issue to the repository. The community will be very pleased to help.
kge runs only under python 3.7
only in windows. So only python is required.
kge can be installed from PyPI:
pip install --upgrade --user kge
If you're reading this README
from a source distribution, you can install kge with:
python -m pip install .
To get started to create your first scene, add an image named player.png
to your game folder and start with the code :
import kge
from kge import *
class Player(Sprite):
def on_update(self, event: kge.events.Update, dispatch):
self.position += Vector.Right() * event.delta_time
def setup(scene: Scene):
scene.add(Player(image='player.png'))
kge.run(setup)
The fastest way to get involved is to check out the ongoing
discussions.
If you're already using kge
feel free to report bugs, suggest enhancements, or ask for new features.
If you want to contribute code, definitely read the relavant portions of Contributing.MD
The engine uses Event System to run almost everything in the game. you can see it from the method on_update
in the code above. you will notice further that every event of the engine has the same signature i.e on_event_name(self, event_type, dispatch_function)
. to see all of the events available checkout the List of events.
We want our users to start really easily on making game so each of the functions, constants and classes are available on the top level module, no need to to import manually all of the stuff like :
from kge import Vector
v = Vector.Left()
Instead you can use directly with :
from kge import *
v = Vector.Left()
So far we have done :
- Animations see docs here
- Audio (Only wav and ogg files) See docs here
- Physics See docs here
- Sprites See docs here
- A behavior system See docs here
- Scene Management See docs here
- UI System See docs here
- Debug Draw See docs here
Our next functionnalities we are excited to give the users are :
- A Particle System
- Light System
- Editor
- Simple way of saving advancement
- Joystick Management