Skip to content
This repository has been archived by the owner on May 13, 2024. It is now read-only.

timattt/TheChapterLegacy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

The chapter

В этом репозитории располагается мой самый большой game-dev проект.
The chapter - пошаговая стратегия по своим механикам похожая на серию игр Civilization и Humankind.

Код разделен на 3 части:

  • движок (оболочка над LWJGL с удобной системой создания объектов, прорисовкой, управления системными объектами и т.д.)
  • The chapter (собственно сама игра, для работы необходимо подключить движок)
  • Тестовый сценарий (код для отдельного jar файла со всеми ресурсами и настройками для игры)

Необходимые библиотеки

  • joml (версия ниже 1.10)
  • lwjgl
  • assimp
  • glfw
  • nanovg
  • openal
  • opengl
  • stb

Все вышеперечисленное можно скачать тут.

Сборка

  1. Клонируем репозиторий
  2. Устанавливаем Ant и JDK
  3. Устанавливаем переменную среды JAVA_HOME в путь, где ледит jdk
  4. Переходим в папку TheChapter репозитория
  5. Запускаем там консоль
  6. Используем команды:
ant
ant Starter
  1. Все работает

The chapter

Теперь подробнее о самой игре. Итак, у нас есть карта - разделенные на клетки, на каждой клетке может что-нибудь находится: город, отряд солдат, элемент ландшафта.
Игроки делают свой ход по очереди. Во время своего хода можно двигать свои армии на фиксированное колличество клеток, устраивать сражения с соперником и т.д. Главное мысль, которой я придерживался при разработке - универсальность кода, т.е. возможность быстро и эффективно добавлять любые нововведения в игру. Для этого разработана система сценариев, о ней далее.

Основные игровые механики

Юниты

Юнит - это группа "людей", которых игрок может двигать по карте и выполнять с их помощью различные действия. Например, отряд стрелков считается одним юнитом.
Вот юнит игрока выделен, красным отмечен радиус стрельбы Теперь посмотрим, что могут делать юниты.
Тут юнит двигается А тут два юнита перестреливаются Здесь видна анимация у юнита сразу после сражения До этого мы видели юнит линейной пехоты, он пренадлежит к классу стрелков, но есть еще и юниты ближнего боя, посмотрим их.
А вот юнит ближнего боя - мечник Кстати, можно легко менять колличество человечков, которые отображаются А вот большая баталия

Ландшафт

Помимо ровной карты можно сделать холмистую, гористую и вообще какую мы захотим, ибо есть встроенная система height-map. И колличество полигонов в одной клетке регулируется. А также можно установить цвет или комбинацию цветов для карты.
Пейзаж 1 Теперь больше будет полигонов.
Пейзаж 2 Включим цветовую интерполяцию.
Пейзаж 3

Сценарии

Сценарий состоит из генератора карты, объектов на карте, набора игровых правил. Т.е. сама игра по умолчанию никакого игрового контента не имеет (кроме нескольких основных механик), все лежит в сценарии. При запуске игры вам предлагается выбрать сценарий, который лежит упакованный в jar-файл, таким образом игрок может по своему желанию подгрузить то, что захочет. Но главное система сценариев дает неограниченные возможности игровому сообществу для моддинга, любой человек сможет добавить в игру все, что захочет. Это прямо как моды для minecraft, только не нужно устанавливать никакого стороннего ПО (вроде forge), все легко, доступно и удобно.

WIP

Тут можно посмотреть игровые механики, которые сейчас находятся на ранней стадии разработки.

Иерархии сущностей

Далее представленны несколько диаграмм, на которых показаны связи различных внутриигровых объектов. Для какждого элемента диаграммы в коде есть соответствующие инструменты для обработки и добавления. Так что для создания нового контента вам достаточно унаследовать свой класс от нужного.

  • TileObject (объекты, которые расположены на карте)

About

LWJGL project

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages