Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

A 3D game engine in python, for learning purposes

Notifications You must be signed in to change notification settings

MonliH/nimble-engine

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

130 Commits

Repository files navigation

Nimble logo

Nimble Engine


Nimble is a basic 3d game engine written in python. It renders the 3d models (and game) using low level GLSL shaders (with OpenGL), uses Pybullet for physics, and Qt5 for the UI.

Before you ask: yes, I know, this is probably not suitable for super-serious games because of CPython's poor performance. It's more for learning purposes, like pygame is.


example

roll a ball demo Demo of the roll-a-ball game, located in examples/roll-a-ball. To try it, open the project.nimproj file in nimble, using the File > Open menu.


running

The easiest way to try nimble is to download the packaged binaries, found in the releases page.


running from source

You will need:

  • Python (3.9+)
  • Conda (preferably Miniconda, as the pyqt5 packaged with Anaconda is not compatible with some dependencies)

Download the source either through github zip, or:

git clone https://github.com/MonliH/nimble-engine.git
cd nimble-engine

Activate a conda environment, for example base:

conda activate base

Install the dependencies:

conda install -c conda-forge pyqtads
pip install -r requirements.txt

Then run:

python -m nimble

building into an executable

NOTE: make sure the commands below are run in the conda environment that you set up above. Also, building on windows is a serious pain, as you need to use backdated dependencies. Please open an issue if you need help with this.

For now, nimble uses pyinstaller to bundle everything into an executable. Make sure to install my branch with a patched splash screen:

git clone https://github.com/MonliH/pyinstaller.git
cd pyinstaller
git checkout develop
python setup.py install # may need sudo

Then build using the nimble.spec file:

pyinstaller nimble.spec

todo

  • Add some lighting system, and eventually physically based rendering (PBR)
  • Add a UI to add 2d elements

About

A 3D game engine in python, for learning purposes

Resources

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

AltStyle によって変換されたページ (->オリジナル) /