GithubHelp home page GithubHelp logo

mcpython-7-pretests's Introduction

mcpython-7-pretests

Repo for some tests for the 7th revision of mcpython

Started nearly 2 years after the first public release of the mcpython series

Repo for testing stuff out and writing the base systems for the real mcpython-7 This is phase-1 of the development of mcpython 7, see below for a roadmap:

  1. Preparations (do research on how to do stuff, with other smaller tests) [Since ~17.2.2018 public, before 1-2 years private for fundamental tests]: mostly finished by now
  2. Design choices must be made: some are, some aren't
  3. Write the functional code implementing the design: What we currently do?
  4. Collect: What works, what not? What parts do need a revisit, which parts do work as we like them to do?
  5. Write the game, collecting the results from here

Tests out currently the following stuff:

  • nuitka compiler
  • multiprocessing

Planned tests:

  • networking
  • full data-driven system (-> compiled code can still load stuff)
  • custom nuitka plugin
  • pre-commit-hook for formatting the code
  • fast rendering
  • pyglet 2.0 compatibility

Launching the game [DEV-only]

py launch.py

Building the game [DEV-only]

py build.py

WARNING:

  • builds will take some time to complete, especially on first build
  • as part of the whole test phase, builds may NOT work

API's

Data-Driven

  • Blocks, Items, Entities (inclusive AI definitions)
  • Block Models, Block States, Item Models, Entity Models, Animations (including complex ones for entities)
  • recipes, tags (including gameplay tags), script-like .mcfunction files
  • loot tables, world generation

Python loaded

Codecs for data driven system The following codecs are arrival:

  • Block Codec: codec for block types

Storage Design:

  • registry tables:
    • blocks used in palettes for referencing block names, so there is only an ID, linking here
  • Chunk:
    • a map chunk relative pos -> chunk data:
      • shared_palette: a palette of size u2 with ref size ceil(log2(size)), maybe add global palette and special ref from here?
      • sectors: a list of the following structures:
        • u2 cy: the y//16 coord this section starts
        • u2 palette size followed by palette entries
        • the world, as an array of 16*16*16 entries, starting with 0 for local and 1 for shared, followed by needed bits for reference

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.