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 20100130 as released on January 30, 2010.

This version adds workbench crafting, gold tools, the "Beast Boy" MD3 mob, mob item drops, and soup to the game.

Features from previous Indev versions include the Indev mossy cobblestone spawn house, NBT level file saving, tools, torches, advanced liquid spread, TNT explosives, chests, and passive MD3 mobs.

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

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, NumPy, and nbtlib are required dependencies which can easily be installed with pip. Use the versions specified in requirements.txt. wxPython is an optional dependency for the level file picker, but if you don't have it then Tkinter is used instead.

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.client.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 (or press F11 in-game). The argument -creative will force the game to be in creative mode.

Gameplay

All controls are as you would expect for the game and they can be configured in the options menu. Press I to open your inventory, F5 to toggle rain and F7 to take a cool isometric screenshot.

Smelting is unique in early Indev: to get iron or gold ingots, light the dropped ores on fire or throw them in lava.

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).

Levels can be saved to a single .mclevel NBT file in the pause menu. The level files are perfectly compatible with Java and vice versa.

MD3 Steves may drop string on death, Black Steves may drop gunpowder, and Beast Boys may drop feathers.

Crafted mushroom bowl soup will restore health. Check the Wiki for crafting recipes added in this version.

Isometric screenshot

An isometric screenshot of a normal Island map generated by the game, showing the MD3 mobs.

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 Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

minecraft_python-0.31.20100130-cp311-cp311-musllinux_1_1_i686.whl (23.5 MB view details)

Uploaded CPython 3.11 musllinux: musl 1.1+ i686

minecraft_python-0.31.20100130-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (24.4 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

minecraft_python-0.31.20100130-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (23.5 MB view details)

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

minecraft_python-0.31.20100130-cp311-cp311-macosx_11_0_arm64.whl (10.6 MB view details)

Uploaded CPython 3.11 macOS 11.0+ ARM64

minecraft_python-0.31.20100130-cp311-cp311-macosx_10_9_x86_64.whl (10.8 MB view details)

Uploaded CPython 3.11 macOS 10.9+ x86-64

minecraft_python-0.31.20100130-cp310-cp310-win_amd64.whl (10.5 MB view details)

Uploaded CPython 3.10 Windows x86-64

minecraft_python-0.31.20100130-cp310-cp310-win32.whl (10.1 MB view details)

Uploaded CPython 3.10 Windows x86

minecraft_python-0.31.20100130-cp310-cp310-musllinux_1_1_x86_64.whl (23.2 MB view details)

Uploaded CPython 3.10 musllinux: musl 1.1+ x86-64

minecraft_python-0.31.20100130-cp310-cp310-musllinux_1_1_i686.whl (22.5 MB view details)

Uploaded CPython 3.10 musllinux: musl 1.1+ i686

minecraft_python-0.31.20100130-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (23.2 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

minecraft_python-0.31.20100130-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (22.4 MB view details)

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

minecraft_python-0.31.20100130-cp310-cp310-macosx_11_0_arm64.whl (10.6 MB view details)

Uploaded CPython 3.10 macOS 11.0+ ARM64

minecraft_python-0.31.20100130-cp310-cp310-macosx_10_9_x86_64.whl (10.8 MB view details)

Uploaded CPython 3.10 macOS 10.9+ x86-64

File details

Details for the file minecraft_python-0.31.20100130-cp311-cp311-musllinux_1_1_i686.whl.

File metadata

File hashes

Hashes for minecraft_python-0.31.20100130-cp311-cp311-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 69fe25c26275107a91cb1f0925890bd902935c1afefb088a99983ed5b5c9ebc0
MD5 94fe7d7e6590eae531607c669da1fca4
BLAKE2b-256 53994805d0c5e0ee5efe95248d0d2527f93e98d568eae488fffbabafe86d0d3e

See more details on using hashes here.

File details

Details for the file minecraft_python-0.31.20100130-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for minecraft_python-0.31.20100130-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 67ba0ec1265c12fd418d26494fc2b9c7f0174235536beb28f7b427fa40cbc3b4
MD5 5c2e00b81333721dfd6f7b04ce845c31
BLAKE2b-256 9d7c830d90d0fbb25d5ecd4bc384819709385ce1c29348d9bb961a3236be2009

See more details on using hashes here.

File details

Details for the file minecraft_python-0.31.20100130-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for minecraft_python-0.31.20100130-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 3c4713adf54984ca56f28c5fd9ba2967cf97d1698f0416a2574985f59a7be9cb
MD5 75af5e64d1a294dc2e51fc4c97f74fdc
BLAKE2b-256 fa8afe2e4e3e6eeca26210f2788ea64cc3c230006ca5ac42111a2afd78a07f9c

See more details on using hashes here.

File details

Details for the file minecraft_python-0.31.20100130-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for minecraft_python-0.31.20100130-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 385d60a05ecd7d5942e581f9983e0055df0e8cde9ad2d64d5adc0b247d874dc6
MD5 4ee237de24b4fc2d9f32dc05b4f49650
BLAKE2b-256 dcef636770d1de75868b24029d5c8ca2326bffb7aefcd50f86ed443c615a1c05

See more details on using hashes here.

File details

Details for the file minecraft_python-0.31.20100130-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for minecraft_python-0.31.20100130-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 dd274cf3ef3dd4fe368ac7d3c1fb703b2da960db36f8ef026e8580ea209da98d
MD5 423000ac151ce79e93419723dd3f015d
BLAKE2b-256 7d7a687237d408d739e0ae66a5315b9dd217b137c906ae0926dc29b00da8881c

See more details on using hashes here.

File details

Details for the file minecraft_python-0.31.20100130-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for minecraft_python-0.31.20100130-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 27054218366de52029cd0d89260edec0802788fb7b183fc290e3505a989266bc
MD5 3df35158d999624fa4fef34c89134459
BLAKE2b-256 3780678068fe1704d58468ac463483eb98d79eb54f70f35e1af9d4f550a9198d

See more details on using hashes here.

File details

Details for the file minecraft_python-0.31.20100130-cp310-cp310-win32.whl.

File metadata

File hashes

Hashes for minecraft_python-0.31.20100130-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 d6dd4d1f0919080737eac7a22bee67015fa2d3df53e81d75a9ea463976019f13
MD5 0a269e9eba524b4126b3baf6edbc4a62
BLAKE2b-256 831651d1028f9b1f06ed5e0fce2f93060cccf581e6c2adc3b2f06dffe16a6921

See more details on using hashes here.

File details

Details for the file minecraft_python-0.31.20100130-cp310-cp310-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for minecraft_python-0.31.20100130-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 5d34713fdf9c2b2f167556f8f3bc7fd49f15c930ddaa4f058fa0ba2fb3929a95
MD5 8310c2c093068d4642fe99138b26640b
BLAKE2b-256 f1c3c000ca3abdd6c5688bb7ba36361dbbffe79401f70843ecfada257a3d62a0

See more details on using hashes here.

File details

Details for the file minecraft_python-0.31.20100130-cp310-cp310-musllinux_1_1_i686.whl.

File metadata

File hashes

Hashes for minecraft_python-0.31.20100130-cp310-cp310-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 a862135c8e5986543c040f74ae280694fe303fbfeb085eb3acd479a33e66abb8
MD5 98f784dbce828eaeb82cdd43ff3f58ed
BLAKE2b-256 a4745dd5602170185a64eeafb5062a0a0dbef0a110235b021b28d08158f3f878

See more details on using hashes here.

File details

Details for the file minecraft_python-0.31.20100130-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for minecraft_python-0.31.20100130-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b4afa4bf1e19555617fee94f6a6e294530c530043497c47d649f0a5aac8b2992
MD5 7d184a1a71f564a1ff3e7d66f3d9bdac
BLAKE2b-256 80e2cbdb955670756ec3d5bb97ffc6f6612e1a4085d52b840dcaf6aa27ac3ba1

See more details on using hashes here.

File details

Details for the file minecraft_python-0.31.20100130-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for minecraft_python-0.31.20100130-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 608dc495065f8383cb5d7ad3107073a1dfadda44864238d313c98c9679ccd7a0
MD5 417bfa76e8b20efff32d687934ba8df9
BLAKE2b-256 d771b7953cb75809b1ade0a243c21b29d7afdfada64fe7754c2cd95623db800a

See more details on using hashes here.

File details

Details for the file minecraft_python-0.31.20100130-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for minecraft_python-0.31.20100130-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 391bfe04f908018999af377ecdd2aaf584bb66815afb83420455f7624425aeb2
MD5 6916e5b800a8ee6d4991e41ed657b943
BLAKE2b-256 01a471bf010031c050dab837760dca207e53d35e028f7a4e69211b5e77c1cc1e

See more details on using hashes here.

File details

Details for the file minecraft_python-0.31.20100130-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for minecraft_python-0.31.20100130-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 3a308e87459d70c8b703ea770ac898da751cbaf1b685ea8bb1eecb8029a4e58a
MD5 2d5787d7c8598843dbc7458622f5f690
BLAKE2b-256 4c748a9acd8d6781d3afc5837845b3a9e479bf4d6e12c31a903d9e78a1965926

See more details on using hashes here.

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