Skip to content

Commit

Permalink
readme: Remove community options descriptions
Browse files Browse the repository at this point in the history
  • Loading branch information
obiwac committed Aug 12, 2024
1 parent 125199c commit c251e8c
Showing 1 changed file with 6 additions and 24 deletions.
30 changes: 6 additions & 24 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,12 @@ If you are using Poetry, you can run the following command:
poetry run python main.py
```

## Community

The `community` directory is for experiments & contributions made by other people on the latest tutorial's code.
It more generally extends the project with functionality I've yet to cover in a tutorial or that I don't intend on covering at all.
Anyone is welcome to contribute!

## Episodes

Here is a list of all the episodes and a brief description of what each one of them covers:
Expand Down Expand Up @@ -85,30 +91,6 @@ Here is a wishlist of other episodes I'd like to make in the future after the af

Feel free to send me suggestions for future episodes you'd like to see!

## Community

The `community` directory is for experiments & contributions made by other people on the latest tutorial's code (see PR [#29](https://github.com/obiwac/python-minecraft-clone/pull/29)).
It more generally extends the project with functionality I've yet to cover in a tutorial or that I don't intend on covering at all.
Characteristic contributions are contributions which *add* something to the code.
Contributions which *fix* something are still merged on the source of all episodes.

The community has several features and options that can be toggled in `options.py`:
- Render Distance: At what distance (in chunks) should chunks stop being rendered
- FOV: Camera field of view

- Indirect Rendering: Alternative way of rendering that has less overhead but is only supported on devices supporting OpenGL 4.2
- Advanced OpenGL: Rudimentary occlusion culling using hardware occlusion queries, however it is not performant and will cause pipeline stalls and decrease performance on most hardware - mostly for testing if it improves framerate
- Chunk Updates: Chunk updates per chunk every tick - 1 gives the best performance and best framerate, however, as Python is an slow language, 1 may increase chunk building time by an ludicrous amount
- Vsync: Vertical sync, may yield smoother framerate but bigger frame times and input lag
- Max CPU Ahead frames: Number of frames that the CPU can go ahead of a frame before syncing with the GPU by waiting for it to complete the execution of the command buffer, using `glClientWaitSync()`
- Smooth FPS: Legacy CPU/GPU sync by forcing the flushing and completion of command buffer using `glFinish()`, not recommended - similar to setting Max CPU Ahead Frames to 0. Mostly for testing whether it makes any difference with `glClientWaitSync()`

- Smooth lighting: Smoothes the light of each vertex to achieve a linear interpolation of light on each fragment, hence creating a smoother light effect - it also adds ambient occlusion, to simulate light blocked by opaque objects (chunk update/build time will be severely affected by this feature)
- Fancy translucency: Better translucency blending, avoid weird looking artefacts - disable on low-end hardware
- Mipmap (minification filtering): Texture filtering used on higher distances. Default is `GL_NEAREST` (no filtering) (more info in `options.py`)
- Colored lighting: Uses an alternative shader program to achieve a more colored lighting; it aims to look similar to Beta 1.8+ (no performance loss should be incurred)
- Antialiasing: Experimental feature

## List of projects based on this

- **Nim implementation:** https://github.com/phargobikcin/nim-minecraft-clone
Expand Down

0 comments on commit c251e8c

Please sign in to comment.