Skip to content

Latest commit

 

History

History
157 lines (126 loc) · 13.9 KB

README.md

File metadata and controls

157 lines (126 loc) · 13.9 KB

my banner

Pycraft is the OpenGL, open world, video game made with Python.


GitHub all releases

Contents

About

Pycraft is a 3D open-source, open-world video game made in Python. For a long time attempts to make large 3D games in Python have been ignored, we believe there are two reasons: one; People use Python primarily for data handling and processing and not graphics and, two; there is little to no documentation out there to do anything more than make a 3D rotating cube in Python. Making a 3D game in Python for us hasn't been an easy experience, far from it but we have decided to share my project, complete with tutorials, explanations, articles and code explanations in the hope that 3D game development in Python can be seen as a more easily attainable target, and to fill that gap in documentation. Pycraft then is a trial project, as we learn and experiment on what goes best where and how thing go together, this is why development can sometimes appear to have stopped, because we are learning and testing what we have learned, so hopefully for people in the future it will be an easier experience. Also, don't forget there is more to game development than just graphics, there is AI, sound, physics and all the other GUIs that go with it, and as we learn the quality of the overall program will improve. Pycraft is not going to be the final name of the game, however until something better becomes available, we shall stick to it.

Setup

Note: Python version 3.7 to 3.11 is required!

Installing the project (recommended)

The way to install Pycraft is changing. For the best experience, we recommend this installation approach:

  1. Navigate to the most recent release of Pycraft in the releases section
  2. Download the installer in your desired format.
  3. Run the installer and follow the installation instructions.

Note: If you run the installer from the source code, instead of through an executable format, make sure you have the following packages: requests, pillow. You can install these packages together using the command pip install requests pillow and on Linux make sure you also install pillow's dependencies using: sudo apt-get install python3-pil.imagetk and that you have the full Python standard library, which can be installed using the command: sudo apt install python3.10-full

Installing the project (manual approach)

The way we develop Pycraft is changing with code developed here and the resources hosted through MediaFire. The new installer is built to handle this, and is recommended, however if you wanted to install Pycraft on your system manually, do the following:

  1. Download the source code for the most recent release of Pycraft in the releases section
  2. Extract the contents to a directory of your choosing on your system.
  3. Download the resources for Pycraft, found here
  4. Extract the contents to the same directory as the code on your system.
  5. You should end up with two sub-directories called: src and resources.
  6. Run the command: pip install -r requirements.txt from the directory you just installed Pycraft to. This installs Pycraft's dependencies.

Note: When installing Pycraft manually, you will likely be automatically be updated to the latest version when a newer version is available. This behaviour can be configured in the settings menu.

Execution

In order to run Pycraft on your system, please follow the steps below before heaving to the "Everyone" section.

If you installed Pycraft through the installer

Or created a custom virtual environment in the Pycraft directory yourself.

  1. Navigate to the directory Pycraft on your system.
  2. From here the process is different depending on which operating system you are using:
  • On Windows; head to this location within the Pycraft directory: /venv/pycraft/Scripts/python.exe
  • On Linux; head to this location within the Pycraft directory: /venv/pycraft/bin/python
  1. Make a note of the full path to this location.

If you manually created your own virtual environment

  1. Navigate to the location you created your custom virtual environment in.
  2. From here the process is different depending on which operating system you are using:
  • On Windows; from there head to this location: /venv/pycraft/Scripts/python.exe
  • On Linux; from there head to this location: /venv/pycraft/bin/python
  1. Make a note of the full path to this location.

If you installed manually, and don't want to use a custom virtual environment

  1. This process is much simpler, simply make a note of the command you would use to run python in the terminal.
  • On Windows, this will likely be python
  • On Linux, this will likely be python3 or python

Everyone

  1. From the Pycraft directory, navigate to the src sub-directory.
  2. Open this sub-directory in a terminal or command prompt window.
  3. Type or paste (by right clicking or using the shortcut; CONTROL + SHIFT + v) the location of the Python executable you made a note of earlier.
  4. Then type main.py and hit enter.

Note: We strongly advise you make a shortcut for this command as it makes the process of running Pycraft much easier.

Credits

With thanks to;

Python OpenGL OpenCV Blender Gimp Gnu Image Manipulation Program Inkscape Visual Studio Code Visual Studio GitHub Stack Overflow NumPy Windows Edge

Understanding the release notes

This section will hopefully provide additional information on helping to read the release notes.

  • Points detailed after the "Feature" tag are what was focused on in the update and will likely always be present in each update, often this is the most significant area of the update.
  • Points detailed after the "Bug-Fix" tag are likely to be the most frequent, they outline the most major bugs that have been fixed in this update, although they are not the only bugs that have been fixed.
  • Points detailed after the "Performance" tag are used where there have been significant performance improvements to the project.
  • Points detailed after the "Identified-Bugs" tag are bugs that have been identified in the project and that haven't been fixed as of writing the release notes, these are significant issues and will be fixed as soon as possible.
  • Points detailed after the final "Documentation" tag are indicators of significant improvements to the documentation. The "PEP8" tag is used to signify that significant changes have been made to Pycraft to bring it in line with the PEP8 standards.

Input mapping

This section will be replaced with a dedicated file for key-mapping as well as an in-game guide when this area of Pycraft is completed.

Keyboard

  • Use W, A, S, D in game to move around.
  • Use SPACE to jump in game or to control the camera spin in the 2D engine.
  • Use F11 to toggle full-screen
  • Use L in game to toggle locking your mouse (forcing it to stay in the window or not)

A detailed map of inputs for keyboard and mouse or controller combinations is coming; for now, see the section below, toggling between full-screen is currently not bound to a button on the controller because we will need all the different buttons for gameplay

Our Update Policy

New releases will be introduced regularly, it is likely that there will be some form of error or bug, therefore unless you intend to use this project for development and feedback purposes (Thank you all!) we recommend you use the latest stable release; below is how to identify the stable releases.

Version Naming

Pycraft's versions will always follow the semantic versioning structure; "vA.B.C"

  • Where "A" is the major revision number.
  • Where "B" is the minor revision number.
  • Where "C" is the patch and developer preview numbers (combined).

Every version of Pycraft as of the 27/10/2022 (DD/MM/YYYY) must feature all 3 values. Updates also now go sequentially, so Pycraft v9.6.4 is newer than Pycraft v9.5.7.

Final Notices

Thank you greatly for supporting this project simply by running it, we are sorry in advance for any spelling mistakes. The program will be updated frequently and we shall do my best to keep this up to date too. we also want to add that you are welcome to view and change the program and share it with your friends however please may we have some credit, just a name would do and if you find any bugs or errors, please feel free to comment in the comments section any feedback so we can improve my program, it will all be much appreciated and give as much detail as you wish to give out.