MatinAfzal / OpenUniverse

3D Infinite Computer Universe

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

OpenUniverse

An open source implementation of 3D Computer Universe


Contents


1. Introduction

A computer world made of voxels, this project is a suitable space for learning and working together, let's help each other to make this project better and more efficient.

Although Python is a higher-level language than CPP and Rust and has a lower speed than the two compiler languages ​​mentioned, this project is implemented on Python for three reasons:

  1. Implementing this project with Python is a more difficult task and requires more optimizations, because Python has a lower speed, and this project needs optimizations to run on Python, which normally are not needed on many other languages, although implementing these optimizations is a difficult and time-consuming task, the depth of learning and gaining new experiences lies in these optimizations, all these implementation difficulties on Python They work hand in hand to make fewer programmers implement similar projects with Python, in other words, the number of similar projects implemented with Python is less than other languages.

  2. Python has a higher readability and this makes many computer and programming enthusiasts choose Python as the gateway to this world, the existence of such projects can help a large circle of programmers to learn more things.

  3. Outside of different languages, the biggest lesson that anyone should learn in their learning path is the philosophy of programming and not learning a specific language, the existence of such projects can help a programmer to learn beyond the speed and capabilities. A programmer should look at the engineering and mechanisms built and have a better understanding of the programming philosophy.

Any programmer can use the codes in this project to build his own world or help improve OpenUniverse.

This project uses an internal engine called FAE, which was built from scratch specifically for OpenUniverse. You can find more information about FA-Engine HERE.


2. Download

You can download the latest released version of the project from here V1.8.8-beta, or visit here to see the list of all released versions.

You can also clone this repository with the following command:

git clone https://github.com/MatinAfzal/OpenUniverse

Or if you want to have the latest source code under development, you can use the beta branch and clone it with the following command:

git clone -b beta https://github.com/MatinAfzal/OpenUniverse

3. Run the Universe

To run Universe, you must install the necessary files using the following command:

pip install -r /path/to/OpenUniverse/requirements.txt

Then you can use the Python interpreter to run the world with the following command:

python /path/to/OpenUniverse/main/OpenUniverse.py

4. Contributing

To contribute to the project, you must register your changes (features - optimization - improvements - bug fixes) for the beta branch. This branch contains the latest changes under development and in other words, pull requests should be given for this branch.

  • All pull requests must contain a complete comment of all the changes, and after review and approval, they will be added to the beta.
  • After the beta version is stabilized, after passing the relevant beta tests, it will be merged with the new tag version to the main branch.
  • Also, all participants are invited to join my Discord server. All the efforts of this community will be to make this server a suitable space for collaboration and programming. You can also contact the following email if needed: contact.matin@yahoo.com

5. Video Documentary

You can see the video documentary of the project on YouTube!

2