Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/dron12261/dronsengine2d
DronsEngine2D - мой игровой движок для 2D игр, который я пишу при помощи C++&SFML. (В РАЗРАБОТКЕ НА НАЧАЛЬНОЙ СТАДИИ)
https://github.com/dron12261/dronsengine2d
2d cpp game-engine gamedev in-development sfml
Last synced: about 1 month ago
JSON representation
DronsEngine2D - мой игровой движок для 2D игр, который я пишу при помощи C++&SFML. (В РАЗРАБОТКЕ НА НАЧАЛЬНОЙ СТАДИИ)
- Host: GitHub
- URL: https://github.com/dron12261/dronsengine2d
- Owner: DRON12261
- License: gpl-3.0
- Created: 2021-02-27T13:14:27.000Z (almost 4 years ago)
- Default Branch: master
- Last Pushed: 2024-10-20T21:05:38.000Z (2 months ago)
- Last Synced: 2024-10-21T01:33:52.505Z (2 months ago)
- Topics: 2d, cpp, game-engine, gamedev, in-development, sfml
- Language: C++
- Homepage:
- Size: 42.1 MB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# DronsEngine2D
## В РАЗРАБОТКЕ НА НАЧАЛЬНОЙ СТАДИИ!
### DronsEngine2D - мой игровой движок для 2D игр, который я пишу при помощи C++&SFML.
По своей задумке это не должен быть убийца Godot, Unreal и т.д. по своей универсальности, удобству и функциональности. Я вижу этот проект как какой-то базовый фундамент движка (который я буду понимать "под капотом"), уже на основе которого я буду делать прототипы и сами игры. Т.е. в нем для этого уже будет базовая и оптимальная реализация игрового цикла, заготовки в архитектуре для мультиплеера, многопоточности и поддержки модов, уже какой-то набор функционала для работы с физикой, графикой, какой-то математикой и т.д.## **TODO:**
- [x] *Игровой цикл с разделенной частотой обновления физики и всего остального:* `physicsUpdate, update, render, deltaTime`
- [x] *Фиксированный `viewport` под разные разрешения экрана*
- [x] *Класс для работы с ini файлами:* `INIFile`
- [x] *Класс логгер, а также главный логгер движка:* `Logger, GameLogger`
- - [ ] *Пересмотреть реализацию от `Singleton` в сторону `Service Locator`*
- [x] *Класс для состояний игры:* `GameState`
- [ ] *Двойной буффер рендеринга*
- [ ] *Класс для сериализации (желательно в бинарном виде):* `Serializable`
- [ ] *Класс (и структура данных) для локализации (например для строки в зависимости от языка будет выводить нужную из списка, определенном в файле):* `Localizable`
- [ ] *Класс для слоев отрисовки:* `RenderLayer`
- [ ] *Подумать над специальным механизмом управлением памяти в движке*
- [ ] *Подумать над реализацией компонентной системы в архитектуре движка: классы компоненты, сущности являются контейнерами для компонентов*
- [ ] *Обработка событий* `Observer` или `Event Queue`
- [ ] *Работа с медиа файлами: загрузка изображений, видео и аудио*
- [ ] *Простой UI для начала: `Button, Image, Label, TextBox` и т.д.*
- [ ] *Реализация класса `Object, Entity` и т.д. + подвязать под паттерн `Prototype`*
- [ ] *`State Machine` для определения логики состояний игровых обьектов или, например, анимаций этих объектов*
- [ ] *Подумать о реализации простого физического движка, возможно через `Observer` и `Singleton`*
- [ ] *Слои и маски для физического движка: `PhysicsLayer` и `PhysicsMask`*
- [ ] *Подумать о реализации и организации сцены/уровня и хранении в нем игровых объектов, вероятно через `Scene Graph` и пространственное разбиение*
- [ ] *Система активных в экране и неактивных за экраном игровых объектов*
- [ ] *Подумать над реализацией быстрой обработки и рендеринга карты из огромного кол-ва тайлов*
- [ ] *Подумать о реализации частичной многопоточности в движке: можно попытаться разделить некоторые компоненты движка по потокам, например физика, аудио и т.д*
- [ ] *Реализация поддержки пользовательских модификаций через `Lua`*