Skip to main content

A project that seeks to recreate every old Minecraft version in Python using Pyglet and Cython.

Project description

Minecraft: Python Edition

Minecraft

Minecraft: Python Edition is a project that strives to recreate each and every old Minecraft version in Python 3 using the Pyglet multimedia library and Cython for performance.

The project is currently working on the Indev versions of Minecraft. The latest version is Indev 0.31 20100110 as released on January 10, 2010.

This version introduces fire, apples, functional tools, and the customizable Indev level generator to the game.

To easily install this version of Minecraft: Python Edition, just run python -m pip install minecraft-python==0.31.20100110.

You can learn more about this version on the Minecraft wiki.

Organization

This project's commits represent the Python versions of each Minecraft Java game version. You can view source code changes between game versions by checking the commit history or comparing branches. To play any version, specify it in the pip install command as demonstrated below.

General Usage

Pyglet, Cython, Pillow, PyOgg, and NumPy are required dependencies and can easily be installed with pip. Use the versions specified in requirements.txt.

For audio to work you will either need PyOgg which is recommended, or FFmpeg which has to be installed on your system. GStreamer is also supported on Linux through the gst-python library. PyOgg requires that your system have one of the Opus, FLAC, or Vorbis codecs. OpenAL is required and comes bundled with the source on Windows.

For a manual Cython source build, run python setup.py build_ext --inplace.

Run python -m mc.net.minecraft.Minecraft to launch the game. Minecraft: Python Edition should be compatible with any modern platform that supports OpenGL and Cython.

Run with the argument -fullscreen to open the window in fullscreen mode. The argument -creative will force the game to be in creative mode.

Gameplay

Press I to open your inventory. All available tools (shovel, axe, pickaxe, flint and steel) are in the hotbar in addition to some building blocks and torches. Press F7 to take a cool isometric screenshot and F5 to toggle rain. Q will drop items. Other keys are listed in the regular options menu.

The Indev level generator is customizable and you can choose between the Inland, Island, Floating, and Flat level types. You can specify the world theme as Normal or Hell (lava and dirt instead of water and grass), world size, and world shape (Square, Long, Deep).

The only mobs around are the MD3 Ranas, but they don't drop anything when killed. Mushrooms are unusable, but apples will restore health.

Isometric screenshot

Additional Notes

The mc.resources directory contains all of the textures and sounds that this version uses. However, the textures are only there for convenience, as all of the texture buffers are already preloaded in the mc.Resources module.

This would have been much more challenging to work on without the great tools provided by RetroMCP-Java.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

minecraft_python-0.31.20100110.tar.gz (7.8 MB view hashes)

Uploaded Source

Built Distributions

minecraft_python-0.31.20100110-pp39-pypy39_pp73-win_amd64.whl (9.6 MB view hashes)

Uploaded PyPy Windows x86-64

minecraft_python-0.31.20100110-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (10.1 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

minecraft_python-0.31.20100110-pp39-pypy39_pp73-macosx_11_0_arm64.whl (9.5 MB view hashes)

Uploaded PyPy macOS 11.0+ ARM64

minecraft_python-0.31.20100110-pp39-pypy39_pp73-macosx_10_9_x86_64.whl (9.6 MB view hashes)

Uploaded PyPy macOS 10.9+ x86-64

minecraft_python-0.31.20100110-cp312-cp312-win_amd64.whl (9.8 MB view hashes)

Uploaded CPython 3.12 Windows x86-64

minecraft_python-0.31.20100110-cp312-cp312-win32.whl (9.4 MB view hashes)

Uploaded CPython 3.12 Windows x86

minecraft_python-0.31.20100110-cp312-cp312-musllinux_1_1_x86_64.whl (22.1 MB view hashes)

Uploaded CPython 3.12 musllinux: musl 1.1+ x86-64

minecraft_python-0.31.20100110-cp312-cp312-musllinux_1_1_i686.whl (21.1 MB view hashes)

Uploaded CPython 3.12 musllinux: musl 1.1+ i686

minecraft_python-0.31.20100110-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (22.1 MB view hashes)

Uploaded CPython 3.12 manylinux: glibc 2.17+ x86-64

minecraft_python-0.31.20100110-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (21.3 MB view hashes)

Uploaded CPython 3.12 manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

minecraft_python-0.31.20100110-cp312-cp312-macosx_11_0_arm64.whl (9.9 MB view hashes)

Uploaded CPython 3.12 macOS 11.0+ ARM64

minecraft_python-0.31.20100110-cp312-cp312-macosx_10_9_x86_64.whl (10.1 MB view hashes)

Uploaded CPython 3.12 macOS 10.9+ x86-64

minecraft_python-0.31.20100110-cp311-cp311-win_amd64.whl (9.8 MB view hashes)

Uploaded CPython 3.11 Windows x86-64

minecraft_python-0.31.20100110-cp311-cp311-win32.whl (9.4 MB view hashes)

Uploaded CPython 3.11 Windows x86

minecraft_python-0.31.20100110-cp311-cp311-musllinux_1_1_x86_64.whl (22.3 MB view hashes)

Uploaded CPython 3.11 musllinux: musl 1.1+ x86-64

minecraft_python-0.31.20100110-cp311-cp311-musllinux_1_1_i686.whl (21.5 MB view hashes)

Uploaded CPython 3.11 musllinux: musl 1.1+ i686

minecraft_python-0.31.20100110-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (22.3 MB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

minecraft_python-0.31.20100110-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (21.6 MB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

minecraft_python-0.31.20100110-cp311-cp311-macosx_11_0_arm64.whl (9.9 MB view hashes)

Uploaded CPython 3.11 macOS 11.0+ ARM64

minecraft_python-0.31.20100110-cp311-cp311-macosx_10_9_x86_64.whl (10.1 MB view hashes)

Uploaded CPython 3.11 macOS 10.9+ x86-64

minecraft_python-0.31.20100110-cp310-cp310-win_amd64.whl (9.8 MB view hashes)

Uploaded CPython 3.10 Windows x86-64

minecraft_python-0.31.20100110-cp310-cp310-win32.whl (9.4 MB view hashes)

Uploaded CPython 3.10 Windows x86

minecraft_python-0.31.20100110-cp310-cp310-musllinux_1_1_x86_64.whl (21.3 MB view hashes)

Uploaded CPython 3.10 musllinux: musl 1.1+ x86-64

minecraft_python-0.31.20100110-cp310-cp310-musllinux_1_1_i686.whl (20.6 MB view hashes)

Uploaded CPython 3.10 musllinux: musl 1.1+ i686

minecraft_python-0.31.20100110-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (21.2 MB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

minecraft_python-0.31.20100110-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (20.5 MB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

minecraft_python-0.31.20100110-cp310-cp310-macosx_11_0_arm64.whl (9.9 MB view hashes)

Uploaded CPython 3.10 macOS 11.0+ ARM64

minecraft_python-0.31.20100110-cp310-cp310-macosx_10_9_x86_64.whl (10.0 MB view hashes)

Uploaded CPython 3.10 macOS 10.9+ x86-64

minecraft_python-0.31.20100110-cp39-cp39-win_amd64.whl (9.8 MB view hashes)

Uploaded CPython 3.9 Windows x86-64

minecraft_python-0.31.20100110-cp39-cp39-win32.whl (9.5 MB view hashes)

Uploaded CPython 3.9 Windows x86

minecraft_python-0.31.20100110-cp39-cp39-musllinux_1_1_x86_64.whl (21.4 MB view hashes)

Uploaded CPython 3.9 musllinux: musl 1.1+ x86-64

minecraft_python-0.31.20100110-cp39-cp39-musllinux_1_1_i686.whl (20.6 MB view hashes)

Uploaded CPython 3.9 musllinux: musl 1.1+ i686

minecraft_python-0.31.20100110-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (21.3 MB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

minecraft_python-0.31.20100110-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (20.6 MB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

minecraft_python-0.31.20100110-cp39-cp39-macosx_11_0_arm64.whl (9.9 MB view hashes)

Uploaded CPython 3.9 macOS 11.0+ ARM64

minecraft_python-0.31.20100110-cp39-cp39-macosx_10_9_x86_64.whl (10.1 MB view hashes)

Uploaded CPython 3.9 macOS 10.9+ x86-64

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page