summaryrefslogtreecommitdiffstats
path: root/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'README.md')
-rw-r--r--README.md64
1 files changed, 64 insertions, 0 deletions
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..b6ffee6
--- /dev/null
+++ b/README.md
@@ -0,0 +1,64 @@
+# AltCraft
+AltCraft is implementation of [Minecraft: Java Edition](https://minecraft.net) in C++.
+
+This is aimed at being fast, being free and being easy expandable.
+# Features and TODOs
+### General
+- [x] Compiles!
+- [x] Some general optimizations
+- [x] Some graphics and gameplay settings (mouse sensitivity, rendering distance, username, etc)
+- [x] C++17
+- [x] Minecraft 1.12.1
+- [ ] Decouple bundled dependencies
+### Original Minecraft resources support
+- [x] Block models
+- [ ] Block states
+- [ ] Generating texture atlas at runtime
+### Network
+- [x] Connecting to server and receiving/transmitting of packets
+- [x] Server with compression (receiving packets only)
+- [ ] Mojang account auth
+- [ ] Server with encryption
+### Physics
+- [x] Simple AABB-collision detection
+- [x] Simple physics
+- [ ] Advanced physics
+- [ ] Optimization: Octree
+### Gameplay
+- [x] Player moving
+- [x] Chat and inventory partially implemented
+- [x] GUI based on [Dear ImGui](https://github.com/ocornut/imgui) library
+- [ ] Digging
+- [ ] Block placing
+- [ ] Simple lighting
+- [ ] Chat
+- [ ] Inventory
+### Graphics
+- [x] OpenGL 3.3
+- [x] Rendering world
+- [x] Rendering entities position
+- [x] Realtime blocks updating
+- [ ] Rendering models of entities
+- [ ] Advanced lighting and shadowing
+- [ ] Optimization: Occlusion culling algorithm
+- [ ] Optimization: Greedy mesh simplification
+
+# Build
+1. Install C++17 compiler, CMake 3.8, SDL2, libZLib.
+>Linux: GCC7 and system package manager.
+
+>Windows: Visual Studio 2017 and vcpkg.
+3. Generate project-files for your compiler by CMake.
+```
+ mkdir build && cd build
+ cmake ..
+```
+2. Copy *.minecraft/version/1.12.1/1.12.1.jar/assets/* to *AltCraft-root/cwd/*
+>You can extract .jar file as .zip archive.
+
+>*/cwd/assets/minecraft/models/block/block.json* must be a valid path.
+4. Compile generated files. Content of */cwd/* will be automatically copied to directory with compiled binary.
+>Linux: `make` in directory with generated files.
+
+>Windows: Use VS2017 to open .sln file and build project.
+5. Enjoy!