Skip to content

matthewpoletin/Liman

Repository files navigation

Игровой движок Liman

Достигнутые Особенности

  • Базовая логика, физика, столкновения
  • Прорисовка двумерных объектов
  • Загрузка различных проектов
  • Расширяемая система актеров

Начало работы

  • Создайте пустую папку
  • Склонируйте туда решение
  • Перейдите к Liman/BuildScript
  • Запустите build-vs2015 или build-vs2013
  • Вернитесь к Liman и откройте Liman.sln

Структура проекта

  • Core Ядро движка
    • Actors Актеры (игровые объекты), основанные на расширямых компонентах;
      • Actor Игровой объект мира
      • ActorComponent Интерфейс компонента актера
      • TransformComponent Компонент трансформации
      • ActorFactory Фабрика для создания актёров
    • Subsystems Осонвные подсистемы для обеспечения работоспособности
    • Ipnut Подсистема ввода
    • Graphics Графика
  • Game Библиотека для создания двумерных игр на движке
    • Physics Подсистема физики
    • Collisions Подсистема столкновений
  • LimanEditorDLL Библиотека для обеспечения работоспособности редкатора
  • LimanEditor Редактор игрового мира (в разработке)

Список основных задач

  • Поддержка позиции мыши
  • Добавить поддержку контроллеров (включая настройки)
  • Компонент анимации
  • Система событий

Пример проекта на движке

#include "Game.h"

using namespace liman;

int main(int argc, char** argv)
{
  liman::Game* pGame = new Game();

  pGame->VInit();

  while(pGame->VGetState() == Application::State::S_Running)
  {
    pGame->VDoLoop();
  }

  pGame->VDeInit();

  return 0;
}

Используемые библиотеки

Название Назначение Применяемые Модули Версия
stb Загрузка изображений (png, jpg, etc.) stb image v2.02
glfw Работа с OpenGL, вводом v3.1.1
glew Расширения для OpenGL
glm Математика для OpenGL
tinyxml2 Работа с форматом xml