Giter VIP home page Giter VIP logo

dronsengine2d's Introduction

DronsEngine2D

В РАЗРАБОТКЕ НА НАЧАЛЬНОЙ СТАДИИ!

DronsEngine2D - мой игровой движок для 2D игр, который я пишу при помощи C++&SFML.

По своей задумке это не должен быть убийца Godot, Unreal и т.д. по своей универсальности, удобству и функциональности. Я вижу этот проект как какой-то базовый фундамент движка (который я буду понимать "под капотом"), уже на основе которого я буду делать прототипы и сами игры. Т.е. в нем для этого уже будет базовая и оптимальная реализация игрового цикла, заготовки в архитектуре для мультиплеера, многопоточности и поддержки модов, уже какой-то набор функционала для работы с физикой, графикой, какой-то математикой и т.д.

TODO:

  • Игровой цикл с разделенной частотой обновления физики и всего остального: physicsUpdate, update, render, deltaTime
  • Фиксированный viewport под разные разрешения экрана
  • Класс для работы с ini файлами: INIFile
  • Класс логгер, а также главный логгер движка: Logger, GameLogger
    • Пересмотреть реализацию от Singleton в сторону Service Locator
  • Класс для состояний игры: GameState
  • Двойной буффер рендеринга
  • Класс для сериализации (желательно в бинарном виде): Serializable
  • Класс (и структура данных) для локализации (например для строки в зависимости от языка будет выводить нужную из списка, определенном в файле): Localizable
  • Класс для слоев отрисовки: RenderLayer
  • Подумать над специальным механизмом управлением памяти в движке
  • Подумать над реализацией компонентной системы в архитектуре движка: классы компоненты, сущности являются контейнерами для компонентов
  • Обработка событий Observer или Event Queue
  • Работа с медиа файлами: загрузка изображений, видео и аудио
  • Простой UI для начала: Button, Image, Label, TextBox и т.д.
  • Реализация класса Object, Entity и т.д. + подвязать под паттерн Prototype
  • State Machine для определения логики состояний игровых обьектов или, например, анимаций этих объектов
  • Подумать о реализации простого физического движка, возможно через Observer и Singleton
  • Слои и маски для физического движка: PhysicsLayer и PhysicsMask
  • Подумать о реализации и организации сцены/уровня и хранении в нем игровых объектов, вероятно через Scene Graph и пространственное разбиение
  • Система активных в экране и неактивных за экраном игровых объектов
  • Подумать над реализацией быстрой обработки и рендеринга карты из огромного кол-ва тайлов
  • Подумать о реализации частичной многопоточности в движке: можно попытаться разделить некоторые компоненты движка по потокам, например физика, аудио и т.д
  • Реализация поддержки пользовательских модификаций через Lua

dronsengine2d's People

Contributors

dron12261 avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.