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
Space Invaders x Asteroid Game

Retro Journey 1: Space Invaders A simple implementation of a retro style video game where users compete against asteroids and the goal is to destroy a

Sandesh Lamsal 2 Aug 05, 2022
🕹️ Jeu Azul en Python avec 4 IAs 🤖 implémentées, jouable de 1 à 4 joueurs

Projet jeu Azul 🕹️ Jeu Azul en Python avec 4 IAs 🤖 implémentées, jouable de 1 à 4 joueurs Par : Berachem MARKRIA et Tristan MARTINEZ Projet réalisé

Berachem Markria 2 Jun 07, 2022
Guess The Random Number - A sample Random Number Guessing Game Python Program

Guess_The_Random_Number This repo contains a simple "Random Number Guessing Game

Pramod Kumar 3 Feb 09, 2022
Hangman Game

Hangman Game Este juego fue creado a partir de los conocimientos adquiridos en el Curso de Python: Comprehensions, Lambdas y Manejo de Errores que exi

Carlos Valencia 2 Nov 14, 2022
Track your favorite minecraft servers' (too bee too tee) queue at any time at your own convenience!

2b2t Queue Monitor Track your favorite minecraft servers' (too bee too tee) queue at any time at your own convenience! Compiled Usage go to https://gi

Addi 1 Feb 05, 2022
Vac-Man in Python

Vac-Man in Python This is my personal version of Vax-man game using python, which is the first assignment of EA Software Engineering Virtual Experienc

ZiXiang Luo 3 Jan 05, 2022
A chess engine with basic AI capabilities (search for best move using MinMax algorithm)

A chess engine with basic AI capabilities (search for best move using MinMax algorithm)

Ken Wu 1 Feb 02, 2022
Disables the chat in League of Legends for Windows.

Disables the chat in League of Legends for Windows. If you simply can't stop yourself from typing LeagueStop will play KEKW.mp3 each time you try. The sound will stack & becomes horribly annoying.

1 Nov 24, 2021
Never get booted from a game for inactivity ever again

Anti AFK Bot Never get booted from a game for inactivity ever again! Built With Python Installation Clone the repo git clone https://github.com/lippie

1 Dec 05, 2021
A Cataclysm: Dark Days Ahead launcher with additional features

CDDA Game Launcher A Cataclysm: Dark Days Ahead launcher with additional features. Download here. Implemented features Launching the game Detecting th

Rémy Roy 402 Jan 02, 2023
Automates cubemap generation for Source Engine games.

AutoCube Automates cubemap generation for Source Engine games during compile-time. Download: see the release page Installation Using with CompilePal A

5 Feb 18, 2022
Simple program to play Metamon automatically

Getting Started Radio Caca Important disclaimer This software is intended for use by individuals familiar with Python programming language. It uses se

Metamon Island 35 Dec 28, 2022
Exposè for i3 WM. Fork of https://gitlab.com/d.reis/i3expo to fix crashes and improve features/usability

Overwiew Expo is an simple and straightforward way to get a visual impression of all your current virtual desktops that many compositing window manage

137 Nov 03, 2022
This repository contains the Unix Game challenges and metadata

This repository contains the Unix Game challenges and metadata

Nokia 7 Apr 06, 2022
Frets on Fire X: a fork of Frets on Fire with many added features and capabilities

Frets on Fire X - FoFiX This is Frets on Fire X, a highly customizable rhythm game supporting many modes of guitar, bass, drum, and vocal gameplay for

FoFiX 377 Jan 02, 2023
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
This is the card game like HearthStone and Magic

Territory War How to use it use pip3 to install django and channels: pip3 install Django pip3 install channels go to CardGame/first/consumers.py and g

Caesar 3 Oct 24, 2022
A pygame implementation of John Conway's Game of Life

Game of Life A Pygame Simulation This is a Pygame implementation of the famous Conway's Game of Life. The game features a set of very simple rules: An

1 Jan 06, 2022
TicTacToc - Simple TicTacToc game played by minimax algorithm

TicTacToc simple TicTacToc game played by minimax algorithm. This app is based o

5 Apr 05, 2022
FlappyBird game with python and pygame

FlappyBird game with python and pygame

Mohammad Dori 4 Jul 15, 2022