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
Typing Game : from nob to good

Fast and Curious A game to learn/improve keyboard typing skills. The main idea is to improve your typing skills and at the same time learn fun facts (

Raffaele Fiorillo 7 Jun 13, 2022
It calculates the Nim sum of a nim game.

nim-sum It calculates the Nim sum of a nim game. The rules of Nim The traditional game of Nim is played with a number of coins arranged in heaps: the

2 Jan 02, 2022
A python script that uses pygame to display fractals.

Pygame-Fractals A python script that uses pygame to display interactive fractals. There are 3 fractals on the script. They can be displayed on the col

michel 2 Feb 09, 2022
Navicella cavallo, gioco 2D stile space shooter

Navicella Cavallo Il miglior gioco in circolazione Navicella cavallo è un gioco 2D basato sullo stile dei giochi space shooter Come installare Navicel

Matteo 6 Jul 03, 2022
Tic Tac Toe game developed in python; have 2 difficulty levels

Tic Tac Toe Game This is a code for Tic Tac Toe game in python. Game has 2 difficulty levels. Easy Hard To play the game, use this command in a LINUX

Akshat Mittal 1 Jun 25, 2022
A Python tic tac toe game

Tic Tac Toe A Python tic tac toe game To start the game, run python3 main.py First, you have to select the game level. Today, it has three levels In a

Phant 1 Jan 14, 2022
:tada: 2048 in your terminal

term2048 term2048 is a terminal-based version of 2048. Install pip install term2048 To upgrade a previous installation, use: pip install -U term2048

Baptiste Fontaine 798 Nov 21, 2022
A Frogger game in Python with pygame

CrockiCrocki A personal project of a simple "game" in Python to learn Pygame and Python. Requires: pygame: In Linux: pip3 install pygame In MacOS: pip

Jorge Abreu 1 Nov 07, 2021
Implementation of the Spider-Man Game

Projeto FPRO FPRO/LEIC, 2021/22 Francisco Campos (up202108735) 1LEIC08 Objetivo Criar um clone do clássico Spider-Man em Pygame... Repositório de códi

1 Dec 24, 2021
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
A Replit Game Know As ROCK PAPER SCISSOR AND ALSO KNOW AS STONE PAPER SCISSOR

🔥 ᴿᴼᶜᴷ ᴾᴬᴾᴱᴿ ᔆᶜᴵᔆᔆᴼᴿ 🔥 ⚙️ Rᴜɴ Oɴ Rᴇᴘʟɪᴛ 🛠️ Lᴀɴɢᴜᴀɢᴇs Aɴᴅ Tᴏᴏʟs If you are taking code from this repository without a fork, then atleast give credit

ANKIT KUMAR 1 Dec 25, 2021
Bingo game with python

bingo-game-with-python type of plays possible player vs computer player vs player computer vs computer game is built with 4 objects classes 1.game 2.b

1 Nov 27, 2021
Deal Or No Deal was a very popular game show. Even now, for a family party, it's a fun game to pass time

Deal Or No Deal was a very popular game show. Even now, for a family party, it's a fun game to pass time. I made a code to play the game right in your terminal/console. This isn't made to be a game w

1 Feb 15, 2022
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 simple pygame implementation of the LOGO programming language.

LOGO-py A simple pygame implementation of the LOGO programming language. Latest Version Notes Fixed a bug where penup/pendown would not work properly.

Ethan Evans 1 Dec 05, 2021
You can play TicTacToe with the engine running UI.py with python3

TicTacToe An "Engine" for TicTacToe You can play TicTacToe with the engine running UI.py with python3. The file engine.py is designed so you can make

Ahnaf Syndeed 3 Feb 20, 2022
The zero player Darwinism simulation game as described by Conway (demonstrates Turing Completeness)

Conway's Game of Life The zero player Darwinism simulation game as described by Conway (demonstrates Turing Completeness). I created this script after

jachinema 1 Feb 13, 2022
Snake game mixed with Conway's Game of Life

SnakeOfLife Snake game mixed with Conway's Game of Life The rules are the same than a normal snake game but you have to avoid cells created by Conway'

Aidan 5 May 26, 2022
Tic-Tac-Toe - Tic-Tac-Toe game build With Python

Tic Tac Toe This game is very popular amongst all of us and even fun to build as

PyLaboratory 0 Feb 06, 2022
Official PyTorch implementation of NAC from the paper: Neural Auto-Curricula in Two-Player Zero-Sum Games.

NAC Official PyTorch implementation of NAC from the paper: Neural Auto-Curricula in Two-Player Zero-Sum Games. We release code for: Gradient based ora

Xidong Feng 19 Nov 11, 2022