minecraft-glfw's People
minecraft-glfw's Issues
Баг отрисовки границ чанка под землей
Функция DrawVoxel (находится в классе Chunk) должна определять есть ли блок в соседнем чанке чтоб решить рисовать ей грань или нет.
На данный момент она работает не совсем правильно. Грани XFront и ZRear (вроде как) рисуются тогда, когда не должны
Однако на противоположные грани эта проблема не распостраняется
Реализация мобов
Создать класс Voxel и Voxel Render
Нормальная генерация мира с режимами плоский и нормальный
Создать класс Shader
Реализовать жидкости
Вывод текста на экран
Нужно как-то выводить текст на экран, то есть в GUI (возможно и на 3D пространство), в OpenGL нет встроенного инструмента для этого.
Создать класс VAO, VBO
GUI
Нужно сделать инструмент, который будет выводить изображения непосредственно на экран, а не в 3D пространство. Весь интерфейс пользователя обязан рендериться одним вызовом функции glDrawElements. Он также должен быть способен динамически обновляться (менять текстуры выборочных элементов, двигать их).
Переработка инициализации блоков + динамические текстуры
Создать класс Texture
Решить, где мы будем выставлять задания (Trello или GitHub)
Система частиц
Динамические плоские меши которые в основно мотображают текстуры ( примеры ниже )
Создать класс Events
Реализация предметов
Нужно реализовать их рендеринг 3д модельки.
Физика и коллизия
Баг отрисовки при обновлении чанка
Когда ломаешь крайний блок чанка, появляется дырка в прорисовке со стороны соседнего чанка.
Причина - соседний чанк не обновляется. Обновить его не представляется возможным, так как ему нужны ссылки всех соседних чанков для правильного обновления.
Способ решения: передавать в функцию обновления чанка не адреса соседних чанков, а адрес контейнера, в котором хранятся чанки (std::map)
Функция обновления чанка находится в классе Chunk (Source/Voxel/Chunk.h);
Вызов этой функции происходит из класса World (Source/World/World.h), функция SetBlock()
Создать репозиторий
Класс 3DModel
Баг при прыжке
Создать класс Window
Панель инструментов
Панель инструментов должна содержать предметы, которые можно использовать.
//ждем пока пудет готов инвентарь
Inventory system
Нужно сделать систему инвентаря. Ее будем прикручивать не только персонажу, но и сундукам, существам и тд.
Базовая схема: есть класс Item (пока пусть хранит id предмета и максимальное количество в стеке).
Дальше есть структура InventorySlot. Она хранит в себе обьект класса Item и количество предмета в стеке.
И есть сам класс инвентаря. Он как минимум должен иметь массив или любой другой контейнер (list, map, vector...) обьектов класса InventorySlot и максимальное количество предметов/слотов которые может иметь данный инвентарь.
Расширить класс Mesh, включить в него контейнер вершин, трансформации моделей и тд
Баг с блоками
Создать класс Camera
Меню F3
Продумать схему индексации Вокселей(предметов - блоков) и хранения ихних текстур с заделкой на их функционал
Баг с остановкой игры
При нажатии ESC не останавливаются всё потоки.
Агрегировать инициализацию и главный цикл проекта в статический класс application
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.