A Minecraft clone written in python and pyglet.

Overview

PyCraft

DeepSource DeepSource Contribs Repo Size Downloads issues Discussions license commits
social social social

A Minecraft clone written in python and pyglet.

Running PyCraft

To run PyCraft, run the following code:
git clone https://github.com/TheWebCrafters/PyCraft.git
cd PyCraft
python __main__.py

Known issues

  • - Will be fixed soon.
  • 1. The game hangs while generating chunks.
  • 2. All contributors don't appear on the README.

Contributors

(Someone please make all-contributors appear here)
Comments
  • Add your name to the Contributors list!

    Add your name to the Contributors list!

    If You've contributed to this repository in any way, add your name to the contributors list!

    Example usage:

    @all-contributors add @somePythonProgrammer for Code, Ideas

    opened by SubNerd 41
  • The game hangs while loading chunks.

    The game hangs while loading chunks.

    Describe the bug The FPS meter goes lower than 1.0 while loading chunks.

    To Reproduce Steps to reproduce the behavior:

    1. Run the code.
    2. Wait, and keep checking the FPS meter on the bottom left.

    Expected behavior We need to add multiprocessing or threading for efficiency.

    Desktop

    • OS: Windows 10
    • NVIDIA GTX Graphics card: 2GB
    • Processor: intel 11th gen i5: six cores
    • 8GB RAM
    bug help wanted Priority 1 
    opened by SubNerd 20
  • How to execute script?

    How to execute script?

    So, whether I want to contribute, before contributing please make a dep installer (dependinces installer) so we can execute your scripts. After that, If possible, I will contribute. Please help!

    Dep installer for packages

    documentation Priority 2 
    opened by e-coders 11
  • import pyglet, i already import in conda, where else?

    import pyglet, i already import in conda, where else?

    Traceback (most recent call last): File "C:\Users\pdv\PyCraft_main_.py", line 1, in import pyglet ModuleNotFoundError: No module named 'pyglet'

    I already install pyglet in my conda env. what else i do to play the game?

    • OS: windows 10
    • Browser chrome
    • Version v94
    bug Resolved Priority 1 
    opened by GabrielMendesdc 10
  • Suggestion on how to fix the game lagging while displaying chunks

    Suggestion on how to fix the game lagging while displaying chunks

    Hi, I saw on the README that you pointed out the game freezes while loading chunks.

    What I think you should do is add a render distance feature. If you've played Minecraft, you would know that there is a value called render_distance that basically detect the player's position in the world, and then renders a certain number of chunks so that the game does not lag. Else, if the world is infinitely generated, and the render distance is set to infinite (as it is now), it could cause the game to freeze like anything or even crash the game. Please implement this feature so that the game runs as expected.

    Thanks, @Adatta1276

    opened by Adatta1276 6
  • Add cross platform support

    Add cross platform support

    Right now, PyCraft only runs on Windows. We need to make it cross-platform. As @cixtor has pointed out in #54, the game doesn't run on MacOS. We need to add a cross-platform dep installer.

    bug enhancement good first issue help wanted Priority 1 
    opened by SubNerd 2
  • Adding cross-platform support

    Adding cross-platform support

    As @cixtor pointed out in #54, we are adding cross-platform support for PyCraft. It will be able to run on PC environments like windows, mac, linux, etc.

    enhancement Priority 2 
    opened by SubNerd 1
  • The Framerate of the game drops tremendously as the number of chunks increases.

    The Framerate of the game drops tremendously as the number of chunks increases.

    The game's framerate deteriorates as we go further exploring the world.

    Steps to reproduce the behavior:

    1. Run the game
    2. Move around a lot in one direction, allow many chunks to form.

    Expected behavior The game should run smoothly even when we go further into the world.

    Solution We need to remove chunks which are too far away from the memory, maybe even create a separate renderer for each chunk.

    bug help wanted Priority 1 
    opened by SubNerd 1
  • The following packages do not install with dep_installer.bat

    The following packages do not install with dep_installer.bat

    Deps are the following - glfw , PyOpenGL , pillow , pygame

    Suggested fix - add the following code

    python -m pip install --upgrade glfw python -m pip install --upgrade PyOpenGL python -m pip install --upgrade pillow python -m pip install --upgrade pygame

    opened by ghost 1
  • [ImgBot] Optimize images

    [ImgBot] Optimize images

    opened by imgbot[bot] 1
  • Added better efficient chunk generation

    Added better efficient chunk generation

    Before, PyCraft generated chunks and also drew the borders of chunks. This caused HUGE fps drops. This PR fixes the problem by adding 'simulated blocks' to the borders of the chunk, but not rendering them. Also, we have BIOMES!

    opened by SubNerd 0
  • Block shading overlay

    Block shading overlay

    Currently, PyCraft has plain textured blocks. We need to add some kind of shader, or a translucent overlay for shading blocks. We also need to add a new Lighting class in terrain/, which will store all the block shading values when the game is running. The shading value of a face depends on the lighting values of the nearby coordinates.

    enhancement help wanted Priority 2 
    opened by SubNerd 0
  • Use a 3D image storage instead of a texture atlas

    Use a 3D image storage instead of a texture atlas

    Currently, PyCraft uses a texture atlas for all the textures. This causes some limitations. We need to use glTexImage3d and glTexSubImage3d for the TextureManager class.

    bug enhancement good first issue help wanted Priority 3 
    opened by SubNerd 1
  • Texture remake?

    Texture remake?

    The game textures currently are AWFUL. We need better textures for the game. Anyone who is good with textures can open a PR with new textures. Please note that the textures should be 16x16 pixel PNGs.

    enhancement good first issue Priority 4 
    opened by SubNerd 0
Releases(v0.0.4-pre)
  • v0.0.4-pre(Dec 20, 2021)

    What's Changed

    • Remake by @somePythonProgrammer in https://github.com/1upCommunity/PyCraft/pull/48

    Full Changelog: https://github.com/1upCommunity/PyCraft/compare/v0.0.3-pre...v0.0.4-pre

    Source code(tar.gz)
    Source code(zip)
  • v0.0.3-pre(Dec 9, 2021)

    What's Changed

    • Refactor the comparison involving not by @deepsource-autofix in https://github.com/1upCommunity/PyCraft/pull/46
    • [ImgBot] Optimize images by @imgbot in https://github.com/1upCommunity/PyCraft/pull/45
    • Use identity check for comparison to a singleton by @deepsource-autofix in https://github.com/1upCommunity/PyCraft/pull/47

    New Contributors

    • @imgbot made their first contribution in https://github.com/1upCommunity/PyCraft/pull/45

    Full Changelog: https://github.com/1upCommunity/PyCraft/compare/v0.0.2-pre...v0.0.3-pre

    Source code(tar.gz)
    Source code(zip)
  • v0.0.2-pre(Dec 2, 2021)

    What's Changed

    • Remove unnecessary statement by @deepsource-autofix in https://github.com/1upCommunity/PyCraft/pull/29
    • Added and changed docs folder by @Genius398 in https://github.com/1upCommunity/PyCraft/pull/30
    • Change methods not using its bound instance to staticmethods by @deepsource-autofix in https://github.com/1upCommunity/PyCraft/pull/38
    • Change methods not using its bound instance to staticmethods by @deepsource-autofix in https://github.com/1upCommunity/PyCraft/pull/32
    • Change methods not using its bound instance to staticmethods by @deepsource-autofix in https://github.com/1upCommunity/PyCraft/pull/37
    • Use is to compare type of objects by @deepsource-autofix in https://github.com/1upCommunity/PyCraft/pull/34
    • Use is to compare type of objects by @deepsource-autofix in https://github.com/1upCommunity/PyCraft/pull/33
    • Change methods not using its bound instance to staticmethods by @deepsource-autofix in https://github.com/1upCommunity/PyCraft/pull/36
    • Change methods not using its bound instance to staticmethods by @deepsource-autofix in https://github.com/1upCommunity/PyCraft/pull/35
    • Import packages in separate lines by @deepsource-autofix in https://github.com/1upCommunity/PyCraft/pull/39
    • Change methods not using its bound instance to staticmethods by @deepsource-autofix in https://github.com/1upCommunity/PyCraft/pull/40
    • Use hypot method to calculate hypotenuse by @deepsource-autofix in https://github.com/1upCommunity/PyCraft/pull/41
    • Remove duplicate dictionary key(s) by @deepsource-autofix in https://github.com/1upCommunity/PyCraft/pull/42
    • Use is to compare type of objects by @deepsource-autofix in https://github.com/1upCommunity/PyCraft/pull/43
    • Refactor unnecessary else / elif when if block has a return statement by @deepsource-autofix in https://github.com/1upCommunity/PyCraft/pull/44

    Full Changelog: https://github.com/1upCommunity/PyCraft/compare/v0.0.1-pre...v0.0.2-pre

    Source code(tar.gz)
    Source code(zip)
  • v0.0.1-pre(Oct 20, 2021)

    What's Changed

    • Change methods not using its bound instance to staticmethods by @deepsource-autofix in https://github.com/TheWebCrafters/PyCraft/pull/2
    • Change methods not using its bound instance to staticmethods by @deepsource-autofix in https://github.com/TheWebCrafters/PyCraft/pull/1
    • Create CODE_OF_CONDUCT.md by @somePythonProgrammer in https://github.com/TheWebCrafters/PyCraft/pull/3
    • Create LICENSE by @somePythonProgrammer in https://github.com/TheWebCrafters/PyCraft/pull/4
    • docs: add somePythonProgrammer as a contributor for code, ideas by @allcontributors in https://github.com/TheWebCrafters/PyCraft/pull/6
    • docs: add somePythonProgrammer as a contributor for doc by @allcontributors in https://github.com/TheWebCrafters/PyCraft/pull/7
    • docs: add somePythonProgrammer as a contributor for infra by @allcontributors in https://github.com/TheWebCrafters/PyCraft/pull/8
    • docs: add somePythonProgrammer as a contributor for content by @allcontributors in https://github.com/TheWebCrafters/PyCraft/pull/9
    • docs: add somePythonProgrammer as a contributor for maintenance by @allcontributors in https://github.com/TheWebCrafters/PyCraft/pull/10
    • docs: add somePythonProgrammer as a contributor for userTesting by @allcontributors in https://github.com/TheWebCrafters/PyCraft/pull/11
    • docs: add somePythonProgrammer as a contributor for bug by @allcontributors in https://github.com/TheWebCrafters/PyCraft/pull/12
    • docs: add deepsourcebot as a contributor for code by @allcontributors in https://github.com/TheWebCrafters/PyCraft/pull/13
    • docs: add Sreehari521 as a contributor for code, test by @allcontributors in https://github.com/TheWebCrafters/PyCraft/pull/14
    • docs: add e-coders as a contributor for bug, ideas by @allcontributors in https://github.com/TheWebCrafters/PyCraft/pull/18
    • Website + 🐛Fixes by @somePythonProgrammer in https://github.com/TheWebCrafters/PyCraft/pull/19
    • Fix INFGEN (a little) by @somePythonProgrammer in https://github.com/TheWebCrafters/PyCraft/pull/21
    • Remove unnecessary statement by @deepsource-autofix in https://github.com/TheWebCrafters/PyCraft/pull/25
    • Remove unnecessary statement by @deepsource-autofix in https://github.com/TheWebCrafters/PyCraft/pull/24
    • Remove unnecessary statement by @deepsource-autofix in https://github.com/TheWebCrafters/PyCraft/pull/23
    • Create pull_request_template.md by @Genius398 in https://github.com/TheWebCrafters/PyCraft/pull/26
    • Revert "Remove unnecessary statement" by @somePythonProgrammer in https://github.com/TheWebCrafters/PyCraft/pull/27

    New Contributors

    • @deepsource-autofix made their first contribution in https://github.com/TheWebCrafters/PyCraft/pull/2
    • @somePythonProgrammer made their first contribution in https://github.com/TheWebCrafters/PyCraft/pull/3
    • @allcontributors made their first contribution in https://github.com/TheWebCrafters/PyCraft/pull/6
    • @Genius398 made their first contribution in https://github.com/TheWebCrafters/PyCraft/pull/26

    Full Changelog: https://github.com/TheWebCrafters/PyCraft/commits/v0.0.1-pre

    What's Changed

    • Change methods not using its bound instance to staticmethods by @deepsource-autofix in https://github.com/TheWebCrafters/PyCraft/pull/2
    • Change methods not using its bound instance to staticmethods by @deepsource-autofix in https://github.com/TheWebCrafters/PyCraft/pull/1
    • Create CODE_OF_CONDUCT.md by @somePythonProgrammer in https://github.com/TheWebCrafters/PyCraft/pull/3
    • Create LICENSE by @somePythonProgrammer in https://github.com/TheWebCrafters/PyCraft/pull/4
    • docs: add somePythonProgrammer as a contributor for code, ideas by @allcontributors in https://github.com/TheWebCrafters/PyCraft/pull/6
    • docs: add somePythonProgrammer as a contributor for doc by @allcontributors in https://github.com/TheWebCrafters/PyCraft/pull/7
    • docs: add somePythonProgrammer as a contributor for infra by @allcontributors in https://github.com/TheWebCrafters/PyCraft/pull/8
    • docs: add somePythonProgrammer as a contributor for content by @allcontributors in https://github.com/TheWebCrafters/PyCraft/pull/9
    • docs: add somePythonProgrammer as a contributor for maintenance by @allcontributors in https://github.com/TheWebCrafters/PyCraft/pull/10
    • docs: add somePythonProgrammer as a contributor for userTesting by @allcontributors in https://github.com/TheWebCrafters/PyCraft/pull/11
    • docs: add somePythonProgrammer as a contributor for bug by @allcontributors in https://github.com/TheWebCrafters/PyCraft/pull/12
    • docs: add deepsourcebot as a contributor for code by @allcontributors in https://github.com/TheWebCrafters/PyCraft/pull/13
    • docs: add Sreehari521 as a contributor for code, test by @allcontributors in https://github.com/TheWebCrafters/PyCraft/pull/14
    • docs: add e-coders as a contributor for bug, ideas by @allcontributors in https://github.com/TheWebCrafters/PyCraft/pull/18
    • Website + 🐛Fixes by @somePythonProgrammer in https://github.com/TheWebCrafters/PyCraft/pull/19
    • Fix INFGEN (a little) by @somePythonProgrammer in https://github.com/TheWebCrafters/PyCraft/pull/21
    • Remove unnecessary statement by @deepsource-autofix in https://github.com/TheWebCrafters/PyCraft/pull/25
    • Remove unnecessary statement by @deepsource-autofix in https://github.com/TheWebCrafters/PyCraft/pull/24
    • Remove unnecessary statement by @deepsource-autofix in https://github.com/TheWebCrafters/PyCraft/pull/23
    • Create pull_request_template.md by @Genius398 in https://github.com/TheWebCrafters/PyCraft/pull/26
    • Revert "Remove unnecessary statement" by @somePythonProgrammer in https://github.com/TheWebCrafters/PyCraft/pull/27

    New Contributors

    • @somePythonProgrammer made their first contribution in https://github.com/TheWebCrafters/PyCraft/pull/3
    • @allcontributors made their first contribution in https://github.com/TheWebCrafters/PyCraft/pull/6

    Full Changelog: https://github.com/TheWebCrafters/PyCraft/commits/v0.0.1-pre

    Source code(tar.gz)
    Source code(zip)
Owner
The WebCrafters
We make cool games!
The WebCrafters
Quantum version of the game Tic Tac Toe.

QTicTacToe Quantum version of the game Tic Tac Toe. This game was inspired by the game at this site. Installation The game requires the qiskit python

1 Jan 05, 2022
pyLodeRunner - Classic Lode Runner clone made in pyxel (Python)

pyLodeRunner Classic Lode Runner clone made in pyxel (Python) Controls arrow key : move the player X : dig right side Z : dig left side ESC : quit gam

2 Feb 12, 2022
Game Boy emulator written in Python

If you have any questions, or just want to chat, join us on Discord. It is highly recommended to read the report to get a light introduction to Game B

Mads Ynddal 3.7k Dec 30, 2022
An all-inclusive Python framework for the Riot Games League of Legends API. We focus on making the data easy and fun to work with, while providing all the tools necessary to create a website or do data analysis.

Cassiopeia A Python adaptation of the Riot Games League of Legends API (https://developer.riotgames.com/). Cassiopeia is the sister library to Orianna

Meraki Analytics 473 Jan 07, 2023
Wordle player - A Class that plays wordle optimally

wordle_player A Class that plays wordle optimally if you want to play wordle opt

Andrés Hernández 1 Jan 31, 2022
A set of tools to help you with running a Project Zomboid game server (Linux only)

Project Zomboid Server Tools A set of tools to help you with running a Project Zomboid game server (Linux only). Features Install Project Zomboid Dedi

24 Dec 25, 2022
A full featured game of falling pieces using python's pygame library.

A full featured game of falling shapes using python's pygame library. Key Features • How To Play • Download • Contributing • License Key Features Sing

Giovani Rodriguez 7 Dec 14, 2022
Space shooter being built for PyWeek 32

Axium Humanity's expansion into space had lasted centuries by the time we encountered the vicious Threx. The Threx adopted a single, religious mission

Daniel Pope 6 Oct 28, 2021
SpiderArcadeGame - A game where the player controls a little spider who is trying to protect herself from other invasive bugs

SpiderArcadeGame - A game where the player controls a little spider who is trying to protect herself from other invasive bugs

Matheus Farias de Oliveira Matsumoto 1 Mar 17, 2022
A launcher to launch games from Riot Games under Linux

rito-launcher A launcher to launch games from Riot Games under Linux Requirements: Python 3, with the following pip plugins: 'configparser, pathlib, w

6 Mar 07, 2022
Jogo da velha com interface gráfica desenvolvida em Python utilizando pygame e IA(Inteligência Artificial)

Jogo-da-Velha Sobre o projeto Jogo da velha com interface gráfica desenvolvida em Python utilizando pygame e IA(Inteligência Artificial) Layout tela d

Matheus Maia Alvarez 6 Apr 09, 2022
This is a simple game of rock-paper-scissors developed in Python

This is a simple game of rock-paper-scissors developed in Python. It allows two players to play with one another on different command lines through networking.

NAMAN JAIN 3 Oct 21, 2022
a simple keyboard game

Maxwell-Demon-Game Powered by Taichi. a simple keyboard game This is hw2 of Taichi course, as a basic exercise of class. Rigid 2d bodies and resolve c

8 Feb 01, 2022
Un semplice Snake game , come negli anni 90!

Project-SnakeGame Un semplice Snake game , come negli anni 90! ITA VI porto un semplice giochino per i nostalgini degli anni 90 , ispirato al vecchio

Matt K Lawrence 1 Oct 17, 2021
This is simple minesweeper-like Telegram game

This is simple minesweeper-like Telegram game. You need to open all "free" squares and put flags on squares with bombs on them. If you open a cell with a bomb, the game is over.

Aleksandr 32 Dec 31, 2022
BUG OUTBREAK is a game of adventure and shooting.

BUG OUTBREAK BUG OUTBREAK is a game of adventure and shooting. I am building the game for Github Game Off 2021. This game has 5 levels. You have to co

Shreejan Dolai 3 Nov 11, 2022
Searches the word list in Wordle based on search pattern.

Wordle Searcher Searches the word list in Wordle based on search pattern. Warning: like all forms of cheating, it trivializes the game, and robs you o

Tyler Martin 1 Jan 29, 2022
Creates a landscape with more accurate river generation in Minecraft version 1.12 using python.

MinecraftLandRiverGen View the following youtube video to set up a world that can interact with the python programs

23 Dec 25, 2022
Battle of Saiyans: Goku v Vegeta is a 1 v 1, (Player vs CPU) 2D Martial arts fighting game

Battle of Saiyans: Goku v Vegeta is a 1 v 1, (Player vs CPU) 2D Martial arts fighting game inspired by the popular anime series Dragon Ball Z The game

ARZ 3 Feb 16, 2022
2d war game single player

WarGame-third-version-0.0.4- 2d war game single player Hi ! Today, I publish on GitHub the version 0.0.4 of "WarGame". In this version, you can find a

Edouard Vincent 2 Apr 08, 2022