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
Python codes for the classic Hang Man game

Python codes for the classic Hang Man game. The user will be assigned a random word to guess, one character at a time. If the user gets everything right, the program says Well Done!, but if the user

p.katekomol 1 Jan 25, 2022
🎅 Celebrating 2021 Christmas with the development of this game

ChristmasGame (DEVELOPING) 🎅 Celebrating Christmas with the development of this game You can also use this engine to create your game too, just empty

Érik Freitas 5 Jan 10, 2022
Wordle for the terminal, writen in python

Wordle Wordle in the terminal, written in python Simply run bash run.sh in your terminal to run. This creates a virtual environment, installs the depe

Matthew Lidell 1 Feb 09, 2022
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
BritishTrainsDepartureBoard - A pygame program that immitates the dot matrix departure screens found at National Rail stations

BritishTrainsDepartureBoard - A pygame program that immitates the dot matrix departure screens found at National Rail stations

Finn O'Neill 3 Aug 10, 2022
Wordle Tas Tool is a terminal application for solving Wordle puzzles

Wordle Tas Tool Terminal application for solving Wordle puzzles Wordle Tas Tool (WTT) is a Python script that iterates over SCOWL95 to solve Wordle pu

1 Feb 08, 2022
Pendulum Simulation using Pygame

Pendulum project, built using pygame and math modules.

3 Nov 09, 2021
For the Exapunk minigame, ПАСЬЯНС

Exapunks Automation This repository solves Exapunk's Solitaire minigame, ПАСЬЯНС. This repository is useable, but only with specific display condition

Will C 5 Jul 29, 2022
Chesston (Chess+Python) is a two-player chess game with graphical user interface written in PyQt5

♟️ Chesston (Chess+Python) is a two-player chess game with graphical user interface written in PyQt5. 💿 Dependencies This program uses Py

6 May 26, 2022
A Simple Scissor Paper Rock Game On Python Using Pygame.

Scissor Paper Stone Game Using Pygame This is a simple GUI based game made on pygame python. Installation Run code on your machine: git clone https:

Dipin Adhikari 0 Mar 21, 2022
Pratice Project - Tic tac toe game

Hello! This tic-tac-toe game project and its notes are result from a course pratice milestone. The project itself is written in Python using the Jupyt

Rafael Nascimento 1 Jan 07, 2022
Tic Tac Toe Python Game GUI

Tic Tac Toe is one of the most played games and is the best time killer game that you can play anywhere with just a pen and paper.

Astitva Veer Garg 1 Jan 11, 2022
A hangman game that I created. Thanks to Data Flair for giving me the code!

Hangman A hangman game that I created. Thanks to Data Flair for giving me the code! Run python3 hangman.py in a terminal if you have Python 3. Please

SmashedFrenzy16 0 Dec 24, 2022
Wordle is a word game reminiscent of mastermind

Wordle is a word game reminiscent of mastermind. The player tries to guess a five letter word within six attempts. After each attempt, hints are given. Green tiles show that the letter is in the righ

Sidharth Anand 1 Feb 09, 2022
We tried to recreate this classic game using python physics libraries.

We tried to recreate this classic game using python physics libraries. The result is certainly hilarious but enjoyable. One of my very first physics application.

Delwys Glokpor 2 Dec 12, 2021
PyCraft - A Minecraft launcher made in python

A Minecraft launcher made in python. The main objective of this launcher is to enable players to enjoy minecraft (especially those without a mojang/microsoft account). This launcher is not illegal as

38 Dec 12, 2022
用于 blivechat 的图形界面

blivechat GUI 用于 blivechat 的图形界面。 有朋友在搞 Vtuber,像 blivechat 类似的项目能通过自定义 CSS 的方式在 OBS 上添加一个非常好看的聊天栏。但是想要在桌面端看到弹幕的话得要再开一个浏览器页面,十分不方便。就想写一个背景透明的浮窗浏览器。 挺喜欢

Silence 11 Dec 29, 2022
Utility.py - a utility that offerres cool cli tools and games.

Utilty.py Utility.py is a utility that offerres cool cli tools and games. Currently the offerd games/items are: get the number, countdown, random name

bee-micizi 1 Dec 08, 2021
Practice the use of the random library to get the user guess the result.

Guessing Game Practice the use of the random library to get the user guess the result. Additional description about the project and its features. Buil

Herbert Orellana 1 Dec 13, 2021
Magic: The Gathering Arena draft tool that utilizes 17Lands data

MTGA_Draft_17Lands Magic: The Gathering Arena draft tool that utilizes 17Lands data. Steps for Windows Step 1: Download and unzip the MTGA_Draft_17Lan

41 Dec 31, 2022