Ходоки: Игра В Ходячих

Сначала я нарисовал куб.

Потом я подумал: «Давай загрузим карту».

В результате получается лабиринт. Давайте добавим панели! Давайте добавим огненные шары! А как же без вида от третьего лица? Где мультиплеер?! Так родилась игра Walkers

видео



Об игре

Как известно, каждый программист должен написать игру и чат. В конце концов я сделал и то, и другое.

Однако под «чатом» я понимал добавление мультиплеера.

В результате получилась более-менее серьёзная игра, которую я хочу сейчас показать.

Ходоки.

Qt + OpenGL + (многопоточность + работа в сети + анимация)

Контроль

WASD - движение Стрелки — вращение камеры (можно использовать мышь в полноэкранном режиме) Сдвиг - садиться Космос - Прыгать В главном меню вы можете посмотреть записи.



Ходоки: Игра в ходячих



Как устанавливается уровень

  • Сначала указывается количество строк и столбцов (N, M).

  • Затем N строк по M символов каждая определяют статическую карту.

    • '.

      ' - пол

    • «Е» — закончить
    • '0' - опасность (лава/вода/.

      )

    • '*' - стена
    • «P» — стартовая позиция игрока.

      Если символа «P» нет, то начальной позицией считается позиция (0, 0).

  • После этого идет количество движущихся объектов и их описание.

    Существует 3 типа движущихся объектов: Hpanel - периодически исчезающая панель, Mpanel - движущаяся панель, Fpanel - огненные шары.

    • Hpanel: H x y &ltпервая задержка&gt &ltпервый интервал&gt &ltвторой интервал&gt &ltначальное состояние (0/1)&gt Схема его работы следующая: сначала во время &ltпервой задержки&gt будет &ltначальное состояние&gt, затем состояние изменится на &ltпервый интервал&gt, затем оно изменится на &ltвторой интервал&gt. После этого &ltпервый интервал&gt и &ltвторой интервал&gt будут чередоваться.

    • Мпанель: M x y &ltPARAM&gt &ltPARAM&gt — строка, описывающая движение панели.

      Допустимые символы: S (оставаться), UDLR (вверх, вниз, влево, вправо).

      Важно помнить, что строка будет обрабатываться циклически.

      После обработки последнего символа строки положение панели будет равно (x, y)!

    • Fпанель: F &ltx*100&gt &lty*100&gt &ltz*100&gt &ltr*100&gt &ltDIR&gt &lttime для прохождения одной ячейки&gt &ltcooldown&gt &ltdistance*100&gt &ltfirst Delay&gt &ltsx * 100&gt &ltsy * 100&gt &ltsz * 100 .

      Положение пусковой установки огненного шара указывается числами x, y, z. В параметрах необходимо указать эти числа, умноженные на 100. Все числовые параметры должны быть целыми числами.

      r — радиус огненного шара.

      &ltDIR&gt - направление (UDLR).

      &ltcooldown&gt - интервал между запусками.

      sx, sy, sz — масштабирование шаров.

      Это позволяет запускать эллипсоиды.

      расстояние - расстояние, на которое полетят шарики.

      &ltfirst Delay&gt — параметр, позволяющий смещать шарики по направлению их полета.

  • После этого текстуры установлены.

    Все текстуры находятся в папке «Текстуры».

    Указывается количество текстур, затем названия объектов и названия картинок.

    Допустимые объекты:

    • небо
    • стена
    • Выход
    • пол
    • Опасность
    • скрытый
    • движущийся
Файлы с уровнями хранятся в папке Levels. Количество уровней хранится в файле «param.walk», который после удаления восстанавливается с правильным номером.

Уровни должны быть пронумерованы начиная с единицы.

Опубликованная версия имеет 13 уровней.



Ходоки: Игра в ходячих



Я узнал:

  • Программа на С++
  • Пишите проекты на Qt
  • Работа с OpenGL
  • Работа с сетью
  • Написание многопоточных приложений
  • Работа с матрицами
И:
  • Понял, как работает скелетная анимация.

  • Я пробовал работать с Git
  • И я усвоил очень важный урок: Вам нужно подумать о том, что будет в итоге, прежде чем вы сядете писать.

    Итак, из-за того, что графика и вычисления находились в одном классе, мне пришлось изрядно потрудиться, чтобы разделить их на разные классы и запускать в отдельных потоках.



Что мое, что не мое.

Я не использовал готовые двигатели.

Однако текстуры и модели не мои.

Модель взята из Half-life. Если кто и не узнает героя, так это Барни.



Игра

Источники Линукс Окна
Теги: #walkers #Qt #opengl #Qt #Разработка игр
Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.