Skip to content

Alex9600t/3d-engine

Repository files navigation

3D-движок на SFML + C++

Версия: 0.1 beta

Быстрая навигация

Описание

Движок находится в стадии разработки. Используется SFML для рендеринга и управления окнами.

Статус разработки

  • Отрисовка граней
  • Работа с эвентами
  • Управление
  • Работа с шейдерами OpenGL
  • Работа с ImGui
  • Работа с перспективой
  • Отрисовка спрайтов
  • Базовое управление камерой
  • Загрузка текстур
  • Объекты и коллизии
  • Оптимизация рендера
  • Оптимизация вычислений
  • Поддержка карт уровней
  • Простая физика
  • LUA-скрипты

Планы

Нету

Devlog

Версия 0-1 devlog

Что нового?

  • Добавлена Оптимизация, которая оптимизирует рендер и физику.
  • Добавлены Баги, чтобы не расслаблялись!. Реализована Поддержка LUA, которая добавляет возможность модинга. Да-да, теперь вы можете модить игру с помощью Lua-скриптов! Пишите свои моды, скрипты и баги - и делитесь ими с друзьями. Пример кода на LUA:
-- --PLAYER
local mx = Game.Player:getCamera().x
local my = Game.Player:getCamera().y
-- Player pos
local x = Game.Player:getPos().x
local y = Game.Player:getPos().y
local z = Game.Player:getPos().z
-- Render data
local fov = Game.Render:getCamera().FOV
-- functions
Game.Player.teleport(x, y, z, mx, my)

-- --RENDER
-- functions
Game.Render.drawLine(x, y, z, 0, 0, 0, 1, 0, 0)
if false then
    Game.Render.clearBufferLines()
    print("Buffer clear")
end

-- --CHAT
-- functions
Game.Chat.send("Hello, LUA!")
if false then
    Game.Chat.clear()
    print("Chat clear")
end

-- -- -- log
print("Player MX:", mx)
print("Player MY:", my)
print("Player X:", x)
print("Player Y:", y)
print("Player Z:", z)
print("Render FOV:", fov)

Game.Engine.loadScript("debug/hitbox.lua")
Game.Engine.loadLocalScript("print('Hi')")

-- Game.Server.sv_loadMap("testmap")
  • Из за перехода на новую систему хранения карт не работает генерация.

Я знаю, я работаю над этим. Наверное.

  • И многое другое 🍪.

Версия 0-004-2 devlog

Что нового?

  • Добавлена Оптимизация, которая увеличивает FPS в 10934 раз :Cookie:.

Версия 0-004-1 devlog

Что нового?

  • Удален FrameDeGenerator, который снижает FPS в 10 раз 😢.

Версия 0-004 devlog

Что нового?

  • Добавлена обработка мыши, теперь можно взаимодействовать с камерой.
  • Реализована работа со спрайтами, поддерживаются 2D-изображения.
  • Добавлено текстурирование, теперь объекты могут иметь текстуры, а не просто цвета.
  • По умолчанию включен FrameDeGenerator, который снижает FPS в 10 раз 😎.

Версия 0-003 devlog

Что нового?

  • Добавлена поддержка 3D с использованием OpenGL! Теперь все стало объемным.
  • Добавлен крутящийся куб, который впечатляюще вертится в пространстве 😎.

Версия < 0-003 devlog

Что нового?

  • Добавлены события (events) для обработки пользовательского ввода.
  • Реализованы окна, теперь можно открывать и управлять ими.
  • Добавлены простые 2D-фигуры (линии, прямоугольники, круги и т. д.).

Скриншоты

Версия 0-1 скриншоты

screenshot_01 screenshot_02 screenshot_03

Версия 0-004-1 скриншоты

screenshot_01

Версия 0-004 скриншоты

screenshot_01 screenshot_02

Версия 0-003 скриншоты

screenshot_01 screenshot_02

Запуск

  1. Установите SFML3.
  2. Установите GLEW.
  3. Установите GLUT.
  4. Скопируйте репозиторий:
git clone https://github.com/Alex9600t/3d-engine
  1. Скомпилируйте проект:
make

Note

Игра запускается сразу после компиляции.

Warning

В некоторых случаях управление может не работать. Решение: Перезапустите игру:

./start

Если это не помогло, напишите в Issues.

About

Simple 3D engine on SFML3 and GLUT

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages