2DMC is an abrrieviation for 2 Dimensional Minecraft.

Related tags

Game Development2DMC
Overview

2DMC

2DMC is an abrrieviation for 2 Dimensional Minecraft. This idea is originally created and implemented by Griffpatch on Scratch. This is a personal project of creating a Paper Minecraft clone in python, better, smoother, and more Minecrafty.

Installation

Clone the repository at https://github.com/DaNubCoding/2DMC, run the file named "main.py"

Modules to install (pip install [module]):

  • pygame
  • opensimplex
  • pywin32

How to play

  • 'a' and 'd' to move left and right
  • 'w' to jump
  • RMB to place blocks
  • LMB to remove blocks
  • 'e' to open inventory
  • F5 to open debug

Credits

Thank you to Griffpatch for the original creation of Paper Minecraft!

Structure generation code is based heavily on this answer from Megalng: https://stackoverflow.com/questions/67557147/how-to-generate-trees-or-other-structures-over-chunks-in-a-2d-minecraft-like-game

Got ideas from this answer from Rabbid76 in solving a weird glitch (solved now): https://stackoverflow.com/questions/67419774/falling-left-and-right-inconsistencies-in-pygame-platformer

Shoutout to onlyTr3v0r for supporting me throughout this project and helping me with ideas and git/github!

Shoutout to Hayyayson for helping with playtesting and overall support on the project!

You might also like...
A project to san the internet of all open Minecraft servers.

MC-Server-Finder A project that scans the internet to find open Minecraft servers. Install the dependencies by running pip install -r requirements.txt

My first Minecraft CPU. Created in collaboration with Peer Carnes as a final project in CS 281: Architecture and Assembly at the University of Puget Sound
My first Minecraft CPU. Created in collaboration with Peer Carnes as a final project in CS 281: Architecture and Assembly at the University of Puget Sound

Minecraft CPU This is my first ever Minecraft CPU, created in collaboration with Peer Carnes. We created a custom assembly language, including an asse

Utility for generating randomizer datapacks for minecraft.

Minecraft Rando Utility for generating randomizer datapacks for minecraft. At the moment, it randomizes the following: Loot tables (including block dr

Script to remap minecraft 1.12 java classes.

Remapper Script to remap minecraft 1.12 java classes. Usage You must have Python installed. You must have the script, mappings, and files / folders in

Deliver buycraft orders to players across the map in minecraft servers using baritone

Deliver buycraft orders to players across the map in minecraft servers using baritone

You want to uto-update your private minecraft client? Give this to developer and enjoy!

minecraft-hack-installer You want to uto-update your private minecraft client? Give this to developer and enjoy! Steps to do: Install libraries: pip i

Minecraft Script to Tellraw Datapack Generator

Minecraft Script to Tellraw Datapack Geneator (STDG) can generate a chain of tellraw command in datapack from script.

An asynchronous Minecraft server wrapper written in python3 with asyncio

mark3 (WIP) A modern Minecraft server wrapper written in python3 with asyncio TODO Note: The order of the following checklist doesn't necessarily mean

Repository containing documentation about the Minecraft Legacy FUI file structure

Repository containing documentation about the Minecraft Legacy FUI file structure

Comments
  • Poetry and better rust

    Poetry and better rust

    Using poetry for dependency management and venv management. This allows for the rust hooks to be installed into the virtual environment with maturin develop, meaning it does not clutter up the global package list. We also use poethepoet as a task managing tool. The README has been updated to follow this.

    opened by Hex5DA 0
  • Added crosshair colour fading!

    Added crosshair colour fading!

    A very minor (and not very polished ngl) feature. The colour of the crosshair fades between the current colour and the opposite of the colour it is hovering over :D

    opened by Hex5DA 0
  • Player gets teleported when inside blocks

    Player gets teleported when inside blocks

    When inside a block, most commonly when falling at low framerates or during a lagspike the player will start their ascension to heaven by moving to the top left of the screen. You can replicate this by producing a staircase with headhitters that goes from left up to the right and walking down it with an fps capped extremely low (ex. 5)

    bug 
    opened by Hex5DA 0
  • Walking Particles inside blocks

    Walking Particles inside blocks

    Some walkign particles appear inside blocks. Possibly because they are spawning inside blocks and their collision detection / spawn detection doesnt prevent this.

    bug 
    opened by Hex5DA 0
Releases(v0.2.1)
  • v0.2.1(Apr 13, 2022)

    Version 0.2.1

    Version 0.2.1 is a minor release with a host of technical changes and new features, most notably a new sprite draw system, cinematic mode & screenshots and player walk particles / held blocks!

    We also now have a new way of downloading 2DMC! You can download a non-standalone release at the bottom of this page. This is a zip that contains an executable and the game assets and information. Download this if you want to change any assets or view anuy information provided with 2dmc without having to download the repo and set up the pip packages. Also use this if you want to take screenshots or make profiles!

    Full changelog


    Additions

    Screenshot

    • Press F2 to screenshot
    • The screenshot image will be stored in a folder named "screenshots" in the same directory as main.py
    • The image will be the same resolution as the resolution of the game (1200 x 600)

    Cinematic Modes

    • To toggle cinematic modes, press F3
    • There are 4 option to toggle through in order:
      • Show both the hotbar and crosshair
      • Hide both
      • Show crosshair but hide hotbar
      • Show hotbar but hide crosshair
    • The current cinematic mode state will be shown by a popup displayed on the top-right

    Hand Held Blocks

    • Blocks will now physically appear in the player's hand when the player is holding an item

    Walking particles

    • When the player walks at over 3 blocks per second, block particles would be spawned underneath its feet

    2DMC logo

    • 2DMC now has... a logo! It will be shown on the top left corner of the game window and in Alt + Tab menu!
    • You can see it below:

    logo

    Changes

    • Optimized particles with conditional collision testing
    • Text boxes now show their outer border / rect whilst in debug mode
    • Velocity now shows up as BPS (blocks per second) in debug
    • Paperdoll no longer covers held item when in inventory
    • Optimized chunk loading and structure generation
    • Spacebar is now also binded to jumping

    Bug Fixes

    • Fixed particles occasionally falling into solid blocks
    • Fixed void fog particles spawning in extremely large numbers when the player enters the upper threshold of void fog particles
    • Fixed player being able to tunnel through blocks as FPS gets extremely low
    • Fixed player tunnelling when the window is moved, now, the game will just pause with dt being set to 0

    Licensing

    • 2DMC is now an officially Open Source project!
    • It is licensed with the GNU General Public License v3
    • You can view the full license here!
    • All src/ files now have a short header to reflect this.

    Technical Changes

    • Reworked the sprite system to allow better control over draw order, and to make the sprites easier to work with!

      • We now have a custom defined sprite class
        • This sprite class serves as a superclass for all other sprites, and provides a constructor and a number of methods that make all sprites compatible with our SpriteManager
      • We have a SpriteManager class that manages draw order, updates and other useful management functions
      • Draw order is defined in an automatic enumeration
      • Sprites can have a custom debug layer (debug information is rendered on a different layer to the sprite) or a regular debug layer (debug information is rendered on the same layer as the sprite)
      • If you want to get a better understanding of this system then you are best off looking at the code (particuarly sprite.py), be warned the code is kinda gross >.<
    • Velocity is now set and calculated with BPS (blocks per second)

    • We have implemented a Single Instance Superclass. This class ensures any subclasses can only have 1 instance of themselves at a time.

      • This is useful, for example for the inventory labels, where whenever you move the mouse a new label will spawn. However, we only want one label to spawn at a time. Previously this required a very complicated and extremely ugly system of kill methods and class attributes and conditional checks which was, in short, gross.
      • This system removes the need for this. Any sprite that inherits from SingleInstance and calls it's constructor will have this handled automatically
      • Demo (because the constructor is slightly confusing):
      class Foo(Sprite, SingleInstance):
        def __init__(self, layer: int | LayersEnum) -> None:
          Sprite.__init__(self, layer)
          SingleInstance.__init__(self, self) # The second self call passes the instance to SingleInstance, the first is just a __init__ thing ¯\_(ツ)_/¯
      
    • We have implemented a new system called "Information Labels"

      • These labels can be defined as "anything non-permanent that conveys information or any other content".
      • This includes images, popups, labels, toasts, ect.
      • Made a information label class to better how these labels are handled. Labels are considered sprites internally, and so can be given different layers
      • Labels are designed with OOP in mind. As of 0.2.1 the inheritance tree is as follows:
      InformationLabel
      └── GenericTextBox
          ├── InventoryLabelTextBox
          └── HotbarLabelTextBox
      
      • NOTE: GenericTextBox also inherits from SingleInstance but this is hard to show on an inheritance tree.
    • Structure generation and chunk loading is now done slightly differently

      • Structure that extend into already existing chunks will simply place down the extra blocks directly into the neighboring chunk
      • Base block generation is now cached by position
      • Since perlin noise (which is used for cave generation) is very slow, it is now done once per loop instead of 64 times at once
      • The cave heighmap will be generate block by block while chunks are not loading, so that when chunks load, the heightmap values have already been cached
    Source code(tar.gz)
    Source code(zip)
    2DMC.v0.2.1.exe(26.15 MB)
    2DMC.v0.2.1.Non-standalone.zip(55.70 MB)
  • v0.2.0(Feb 6, 2022)

    Version 0.2.0

    Version 0.2.0 is a major update that focuses primarily on underground generation and features. Other notable changes include pickblock, block selection, better particles and profiling.

    Additions

    New blocks

    • Bedrock
    • Granite
    • Diorite
    • Andesite
    • Coal ore
    • Iron ore
    • Gold ore
    • Lapis ore
    • Redstone ore
    • Diamond ore
    • Emerald ore
    • Deepslate
    • Cobbled deepslate
    • Deepslate coal ore
    • Deepslate iron ore
    • Deepslate gold ore
    • Deepslate lapis ore
    • Deepslate redstone ore
    • Deepslate diamond ore
    • Deepslate emerald ore

    Caves

    • Generated with Perlin Noise
    • You will sometimes find grass and dirt getting cut off without any actual cave generating, that is a quirk of cave generation
    • Caves will not be able to cut through bedrock

    Example: img

    Stone Types

    • There are 4 new stone types:
      • Granite
      • Diorite
      • Andesite
      • Tuff
    • Granite, diorite, and andesite generate anywhere above deepslate level ( < chunk-y 64)
    • Tuff only generates below deepslate level ( > chunk-y 64)
    • Their shapes are determined by a Cellular Automata algorithm
    • They will not generate overlapping with ore veins, neither will they replace dirt, ores, nor bedrock

    Bedrock + World Height

    • Bedrock generates from y 1024+
    • There is a blend between stone and bedrock, generated the same as stone -> deepslate
    • The player cannot break bedrock

    Ore Veins

    • Ore vein shapes are determined by a Cellular Automata algorithm.
    • They will turn into deepslate variants of the ores if they generate replacing deepslate
    • Ores will not replace bedrock or dirt

    Distribution

    • They generate underground with the following distribution (all percentages represent the chance of generation per chunk):
      • Coal ore (2 attempts per chunk) starts generating with a 16% chance at the top of the world, decreases until it reaches chunk-y 64, gets more common going down until chunk-y 96 with a 3% chance, then gets rarer until chunk-y 128
      • Iron ore (2 attempts per chunk) starts generating at the top of the world rarely, quickly goes to 10% chance at chunk-y 8, then gets rarer as chunk-y goes down to 72
      • Lapis ore (1 attempt per chunk) starts generating at chunk-y 32, gets more common until chunk-y 64 with a 6% chance, then gets rarer until chunk-y 96
      • Gold ore (1 attempt per chunk) starts generating at chunk-y 56, gets more common until chunk-y 88 with a 7% chance, then gets rarer until chunk-y 120
      • Redstone ore (2 attempts per chunk) starts generating at chunk-y 56, gets more common until chunk-y 120, then quickly gets rarer until chunk-y 128
      • Diamond ore (1 attempt per chunk) starts generating at chunk-y 56, maintains a 1% chance of generating until chunk-y 96, then gets more common until chunk-y 128 with a 5% chance
      • Emerald ore (1 attempt per chunk) starts generating at chunk-y 56, maintains a 1% chance of generating until chunk-y 72, then gets more common until chunk-y 96 with a 3% chance, then gets rarer until chunk-y 120

    Ore distribution map: ore_dist

    Best y-level for mining

    • The best chunk-y to mine for each ore, the attempts per chunk, and the chance per attempt:
      • Coal: 2 (not 1 because a large portion of chunk-y 1 is made up of dirt), 16%, 2
      • Iron: 8, 10%, 2
      • Lapis: 64, 6%, 1
      • Gold: 88, 7%, 1
      • Redstone: 120, 15%, 2
      • Diamond: 126 (not 128 or 127 because a large portion of them are made up of bedrock), 5%, 1
      • Emerald: 96, 3%, 1

    Particles

    Void Fog Particles

    • Void fog particles start to spawn below y 896
    • The lower down the player is:
      • The more particles spawn
      • The bigger the particles on average
    • Void fog particles will be deleted if they either move behind a block or move outside the screen

    Player Fall Particles

    • Player fall particles will be spawned when the player falls for more than or equal to 4 blocks and lands
    • The longer the player falls for, the most particles are spawned, to a maximum of 15 blocks
    • The particles will take the color of a random pixel of the block that the player fell onto

    Block Selection Box

    • Added a selection box around the block that the crosshair is hovering over
    • It is 2 pixels thick, and is offset towards the topleft corner by 2 pixels to fit the selected block entirely within the box

    Sky Gradient

    • The background colour now has a gradient between the default blue (y = 0-) and black (y = 1024)

    Pick-block

    • Press the MMB (middle mouse button) to pick the block the crosshair is hovering over
    • Some blocks cannot be pick-blocked, like bedrock, tall grass top, and leafed oak log
    • Pick-blocking will move the targeted block to the slot that you are selecting, no matter if it is on the hotbar or in the inventory

    Changes

    • Crosshair now fades between colors instead of instantly changing
    • Added "Block position" to the debug menu, which shows the coordinates of the block the crosshair is hovering over
    • Added "Particles" to the debug menu, which shows the number of particles that is being calculated
    • Added a transparent white overlay on the inventory slot that is being hovered over

    Bug fixes

    • Fixed floating tall grass on chunk borders
    • Particles float upwards when inside a block, now they just fall out
    • Fixed tall grass being cut off by a tree on chunk borders

    Technical changes

    • Grouped code into different files in the "src" folder

    • Added comments, docstrings and type annotations explaining the code

    • Separated collision detection from camera because that is just very bad

    • Improved particle performance

    • Greatly improved chunk loading performance considering the new terrain features that have been added

    • The system by which we create, update and draw particles has been completely reworked.

      • We are now using OOP in the inheritance tree:
        Particle
        ├── PhysicsParticle
        │   ├── BlockParticle
        │   └── PlayerFallParticle
        └── EnviromentalParticle
            └──VoidFogParticle
      

    Profiling

    • To make a profile for a function, pass the callable into src.utils.profile, along with its parameters
    • It will create a .prof file in build/profiles on the function that has been passed when F9 is pressed
    • The file will have the time of creation in its file name

    In game you can presss F9 and it will generate a profile of <callable> in build/profiles.

    # variable = <callable>(<*args>)
    import src.utils as utils
    variable = utils.profile(<callable>, <*args>)
    

    For instance, to time the loading of chunks, you could do the following:

    # self.rendered_chunks = load_chunks(self.player.camera)
    import src.utils as utils
    self.rendered_chunks = utils.profile(load_chunks, self.player.camera)
    

    If you want to generate a profile without you having to press a key (for example, if you want to time a function if a certain condition is met), you could do the following:

    import src.utils as utils
    if <condition>:
      utils.do_profile = True
    profile(<callable>, <*args>)
    

    For instance, to time the loading time of a certain chunk at (x, y), you could do the following:

    import src.utils as utils
    if chunk == (x, y):
      utils.do_profile = True
    profile(Chunk, chunk)
    
    Source code(tar.gz)
    Source code(zip)
    2DMC.v0.2.0.exe(25.93 MB)
  • v0.1.1(Jan 3, 2022)

    Release v0.1.1 of 2DMC. An update following v0.1.0 with minor changes.

    Changelog

    Additions

    • Camera is now offset from the player towards the cursor to increase viewing distance

    Changes

    • Player speed has been tweeked again
    • The textbox above the hotbar will now fade gradually instead of staying on the screen all the time
    • FPS is now synced with the monitor refresh rate (aka Vsync in Minecraft), and FPS is now more stablized

    Bug fixes

    • Player no longer slows down when walking as FPS increases
    • Textbox will no longer appear beside the cursor in the inventory if an item has already been picked up

    Installation and running

    Therefore to play this version please extract the "2DMC_v0.1.1" zip into a directory of your choice. Do not move the exe out of the directory containing the assets and data folders! Then you can just double click the exe to run it. As for linux and mac users, try installing the packages that are imported in the .py files, and running main.py from the command line. In the future, I may provide proper instructions for running on non-windows OSs, but I don't have easy access to a Linux / Mac computer as I (sadly) use Windows, and I don't really want to fiddle around with WSL or VirtualBox to try and figure out some instructons, sorry.

    Executable's zip below vv

    Source code(tar.gz)
    Source code(zip)
    2DMC_v0.1.1.zip(25.26 MB)
  • v0.1.0(Jan 3, 2022)

    Release v0.1.1 of 2DMC. The biggest update as of yet!

    Changelog

    Additions

    • Player animation
    • New blocks
      • Oak log
        • Naturally generate in trees
      • Oak leaves
        • Naturally generate in trees
      • Leafed oak log
        • Naturally generate in trees
        • Has 2 layers, first layer is oak leaves, second layer is oak log
      • Poppy
        • Naturally generate
      • Dandelion
        • Naturally generate
      • Tall grass
        • Naturally generate
      • Oak planks
      • Cobblestone
      • Glass
    • Tree generation
      • 5 different tree types
        • Regular oak tree
        • Short oak tree
        • Medium oak tree
        • Balloon oak tree
        • Large oak tree
    • Crosshair
      • Changes color according to the color of the pixels underneath it
    • Particles
      • When blocks are broken
    • Maximized FPS (FPS can go as high as possible instead of being restrained at 60)
    • Hotbar
      • Control with the numbers 1-9 or with the mouse scroll wheel
    • Inventory
      • By clicking the item you want to move, and clicking again to drop it off
    • Minecraft font

    Changes

    • Player speed has been increased slightly
    • Doubled game resolution
    • Thinner, less obstructive lines
    • The texture of grass has been tweeked slightly
    • The debug info is now offset 6 pixels from the left of the window
    • The debug info on blocks is now offset from the cursor so that it can be seen more clearly

    Bug fixes

    • Player x velocity no longer stays fast when not jumping (player slows down when on the ground)
    • Block no longer gets placed on grass if the player is standing in the grass
    • Fixed the bug where red squares stack up when debug mode is not on, and appear all at once when debug mode is turned on
    • Frame rate independent movement: The game no longer slows down when the FPS drops
    • Grass on chunk borders no longer breaks off when the block below is gets unloaded
    • Fixed glitchy movement when player is moving at max speed

    Technical changes

    • Block update system as in real Minecraft
    • Data folder to store all text based information
    • Cleaned up the code

    Installation and running

    Packaging directories with pyinstaller is difficult, and as far as we know not possible without modifying the code. Therefore, to preserve the "originality" of the code we haven't bundled the game assets with any version before v0.1.1. Therefore to play this version please extract the "2DMC_v0.1.0" zip into a directory of your choice. Do not move the exe out of the directory containing the res folder! Then you can just double click the exe to run it. As for linux and mac users, try installing the packages that are imported in the .py files, and running main.py from the command line. Beware some older versions may require you to downgrade certain packages or modify the code. In the future, I may provide proper instructions for running on non-windows OSs, but I don't have easy access to a Linux / Mac computer as I (sadly) use Windows, and I don't really want to fiddle around with WSL or VirtualBox to try and figure out some instructons, sorry.

    Executable's zip below vv

    Source code(tar.gz)
    Source code(zip)
    2DMC_v0.1.0.zip(25.26 MB)
  • v0.0.2(Jan 3, 2022)

    Another very old release of 2DMC. There was actually a version between this and v0.0.1, which, judging by the discrepancy between this versions changelog and features, added block breaking and placing as well as some other features. This version has been lost to the sands of time, so I have rewritten the changelog to add the changes made in this "0.0.1.5" update by finding differences between 0.0.1 and 0.0.2, and presuming any difference not mentioned in the 0.0.2 changelog is a 0.0.1.5 change. However this is imperfect - any small tweaks made in 0.0.1.5 that I havent noticed will be lost, so feel free to open a github issue if you notice anything! Also note some changes may me mis-attributed to the wrong version, not sure if there is any way around this sadly. I have tried my hardest to include every 0.0.1.5 feature but again if I missed anything open a github issue ^-^. I will attatch the original 0.0.2 changelog here for completionists sake along with the executable. Running installation below.

    Changelog

    Additions

    • Block selection (0.0.1.5 feature)
      • The currently selected block is shown in white in the bottom-left.
        • This block is the block placed when placing a block.
      • You can cycle through the "hotbar" using the keys 1-4 (no scroll wheel support)
      • The items or the order of items in the hotbar cannot be changed.
      • The order of the hotbar is as follows: { 1: grass_block 2: dirt 3: stone 4: grass }
    • Block breaking and placing (0.0.1.5 feature)
      • Block breaking - blocks can be broken by pressing the left mouse button over the block's hitbox
      • Block placing - blocks can be placed by pressing the right mouse button over any overwritable block
        • Overwritable blocks are air and grass
        • The block placed is the currently selected block.
    • Camera (0.0.1.5 feature)
      • The camera has a slight momentum
      • If you stop moving in one direction suddenly, the camera keeps on going before returning to the player
        • This is displayed by the camera offset display in debug mode
    • Debug Mode (0.0.1.5 feature unless otherwise stated)
      • Debug mode can be toggled using the F5 key
      • Information is displayed in the top left:
        • Seed (the seed of the world, used for terrain generation): ex. 1400917286
        • Velocity (the velocity of the player): ex. (2.7, 0.0) when walking
        • Position (the position of the player, aka their co-ords): ex. (-52, 3)
        • Camera offset (the offset of the camera relative to the player): ex (26, 0) when walking
        • Chunk (the chunk the player is standing in): ex. (-7, 0)
        • Chunks loaded (the amount of chunks the game has loaded): ex. 78
        • Rendered blocks (the amount of blocks the game is rendering): ex. 385
      • Chunk borders are displayed with yellow lines
      • The block below the mouse cursor is displayed in white text next to the mouse cursor
      • The blocks being tested for collision are highlighted in red (0.0.2 feature)
      • The player is outlined in white (0.0.2 feature)

    Tweaks (0.0.2)

    • The player hitbox size has been reduced in width to 0.225 block size
    • Player movement speed has been tweeked

    Bug fixes: (0.0.2)

    • When player travels beyond 4000 blocks, the frame rate starts to drop below 60
    • Fixed some moving left and right inconsistencies (not being able to land on a block on the left but being able to land on the right... etc)
    • Optimized the performance further

    Installation and running:

    Packaging directories with pyinstaller is difficult, and as far as we know not possible without modifying the code. Therefore, to preserve the "originality" of the code we haven't bundled the game assets with any version before v0.1.1. Therefore to play this version please extract the "2DMC_v0.0.2" zip into a directory of your choice. Do not move the exe out of the directory containing the res folder! Then you can just double click the exe to run it. As for linux and mac users, try installing the packages that are imported in the .py files, and running main.py from the command line. Beware some older versions may require you to downgrade certain packages or modify the code. In the future, I may provide proper instructions for running on non-windows OSs, but I don't have easy access to a Linux / Mac computer as I (sadly) use Windows, and I don't really want to fiddle around with WSL or VirtualBox to try and figure out some instructons, sorry.

    Executable's zip and original 0.0.2 changelog below vv

    Source code(tar.gz)
    Source code(zip)
    2DMC_v0.0.2.zip(25.23 MB)
    2DMC_v0.0.2_changelog_orig.txt(558 bytes)
  • v0.0.1(Jan 3, 2022)

    The oldest version of 2D Minecraft we have access too! Very few features because of this - and we have had to write the changelog after the fact so there may be some things missing or mis-described, I'm trying my best!

    Changelog:

    Additions:

    • Blocks & Chunks
      • Added blocks! 32x32 pixels in size
      • Added 4 blocks (grass, dirt, grassy dirt and stone)
      • Added chunks made of 8x8 blocks each.
      • Chunks are unrended, rendered and generated as the player moves throughout the world.
    • Terrain Generation
      • Chunks are generated using perlin noise as the player moves throughout the world.
      • All 4 block types are used in generation.
    • Player
      • Added a player (a player might be generous, its a grey rectangle)
      • Added player movement using WAD
      • Added collision between the player and blocks
    • Camera
      • Added a static camera.
      • The player is always at the center of the camera's vision.
    • Game FPS, chunks and blocks loaded are displayed on window title.

    Installation and running:

    Packaging directories with pyinstaller is difficult, and as far as we know not possible without modifying the code. Therefore, to preserve the "originality" of the code we haven't bundled the game assets with any version before v0.1.1. Therefore to play this version please extract the "2DMC_v0.0.1" zip into a directory of your choice. Do not move the exe out of the directory containing the res folder! Then you can just double click the exe to run it. As for linux and mac users, try installing the packages that are imported in the .py files, and running main.py from the command line. Beware some older versions may require you to downgrade certain packages or modify the code. In the future, I may provide proper instructions for running on non-windows OSs, but I don't have easy access to a Linux / Mac computer as I (sadly) use Windows, and I don't really want to fiddle around with WSL or VirtualBox to try and figure out some instructons, sorry.

    Executable's zip attatched below vv

    Source code(tar.gz)
    Source code(zip)
    2DMC_v0.0.1.zip(21.83 MB)
Owner
DaNub
Pythoner
DaNub
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
A small fun project to simulate Conway's Game of Life, created in Python.

A small fun project to simulate Conway's Game of Life, created in Python. Conway's Game of Life simulates a grid of cells, where the state of each cell consists of whether the cell is alive or dead.

Harrison Verrios 1 Jun 19, 2022
DouZero_For_HLDDZ_FullAuto: 将DouZero用于欢乐斗地主自动化

DouZero_For_HLDDZ_FullAuto: 将DouZero用于欢乐斗地主自动化 本项目基于DouZero 和 DouZero_For_Happy_DouDiZhu 环境配置请移步项目DouZero 模型默认为ADP,更换模型请修改main.py中的模型路径 运行main.py即可 在原

322 Dec 25, 2022
A small, Pygame-based library project intended for personal use.

EzyGame Version 0.0.1 A simple library project intended for personal use with Pygame. Warning: I am a very amateur programmer, so the code will probab

Dorbell 1 Jan 08, 2022
A project to san the internet of all open Minecraft servers.

MC-Server-Finder A project that scans the internet to find open Minecraft servers. Install the dependencies by running pip install -r requirements.txt

drakeerv 8 Mar 12, 2022
A Street Fighter game in Pygame

What is Street Fighter? Street Fighter, commonly abbreviated as SF or スト, is a Japanese competitive fighting video game franchise developed and publis

Sameer Sahu 3 Aug 20, 2022
Dragon Quest IV (NDS) English + Party Chat Script Patcher for Japan ROM

Patches English script files from the US version of Dragon Quest IV for Nintendo DS and Android so they are rendered nicely when used with the Japan ROM. Addresses various issues caused by the Japan

Aric Huang 35 Dec 18, 2022
This is a good project to train your logic game with python language

JO-KEN-PÔ!!! | Description | basic. I make this game only to train. This is a good project to train your logic game with python language. This game is

Elianderson Silva 1 Jan 24, 2022
Aftermath is an anti token grabber written in Python3.

🎈 Aftermath 🎈 Aftermath is an anti token grabber written in Python3. This tool with a GUI setup is checking the Downloads folder to search for token

Billy 39 Dec 16, 2022
Ghdl-interactive-sim - Interactive GHDL simulation of a VHDL adder using Python, Cocotb, and pygame

GHDL Interactive Simulation This is an interactive test bench for a simple VHDL adder. It uses GHDL to elaborate/run the simulation. It is coded in Py

Chuck Benedict 2 Aug 11, 2022
Abandoned plan for a clone of the old Flash game Star Relic

space-grid When I was in middle school, I was a fan of the Flash game Star Relic (no longer playable in modern browsers, but it works alright in Flash

Radon Rosborough 3 Aug 23, 2021
This is an amazing game make using pygame.

This is an awesome balloon game. It is made in python using Pygame library. It is a project game while learning game development.

Rishikesh Kumar 2 Oct 10, 2021
Tool for Path of Exile game to automatically scan Archemesis inventory and display related information

poe-archnemesis-scanner Tool for Path of Exile game to automatically scan Archemesis inventory and display related information Features Controls When

70 Nov 10, 2022
3 Oct 22, 2021
Gamelib is a pure-Python single-file library/framework for writing simple games.

Gamelib is a pure-Python single-file library/framework for writing simple games. It is intended for educational purposes (e.g. to be used in b

Diego Essaya 15 Dec 22, 2022
Guess Your Card - A Multiplayer Python Game

Guess Your Card - A Multiplayer Python Game This is a guessing card game having two levels - Developed in Python and can be played between two to four

Hammad Ahmed ~ 1 Oct 20, 2021
Cricket game using PYQT

Cricket-game-using-PYQT This is a Fantasy cricket Desktop application build in p

Sanket Mane 1 Jan 03, 2022
Backend application for a game to classify waste for recycling

Waste Organizer Game Backend application used in a game to classify trash for recycling. What is waste organizer game? It is a game developed during t

10 Jun 13, 2021
PyCheckers - A classic board game implemented in pygame

PyCheckers! A classic board game implemented in pygame! Complete with every feature you need to play checkers! (including handsome sprites drawn by a

helaxious 1 Jan 21, 2022
Brax is a differentiable physics engine that simulates environments made up of rigid bodies, joints, and actuators

Brax is a differentiable physics engine that simulates environments made up of rigid bodies, joints, and actuators. It's also a suite of learning algorithms to train agents to operate in these enviro

Google 1.5k Dec 31, 2022