Перейти к публикации
Форум - ComputerCraft

Клуб только для чтения  ·  6 участников

Хэш CC.RU
Fingercomp

117 просмотров

Мегапроекты, мегаобсуждения, огромная мотивация... Ну, конец истории вы уже поняли.

В этом посте посетим могилу Ethel — моей игры, которой было суждено не быть.

Начать надо с понятий. Ethel — это платформер. Естественно, 2D и скроллинговый.

jdLe8nz.png

На скрине выше:

  • Красные — это враги. При контакте с ними персонаж дохнет.
  • Жёлтый прямоугольник — это персонаж.
  • Голубенький квадратик — это точка спаун поинта.
  • Серенький — это каменья. По ним можно ходить.

А остальное — небо.

Затея сделать игру приняла форму действия 30 мая 2017 года и (моими усилиями) стремительно нарастала фичами.

Из реализованных фич:

  • Самые тупейшие враги. Они идут в одну сторону — и в другую при коллизии о стену или своего товарища.
  • Передвижение базовое. Можно прыгать и ходить.
  • Дебаг-экран, отключаемый по F1.
  • Загрузка всех ресурсов из файлов. Карта выше была загружена из файла с данными карты. И спрайты, и тайлы.
  • Физика какая-то. Примитивная, конечно. Как-то коллизии умудряется определять и ускорение рассчитывать.
  • Главное меню. Куда ж без него?
  • 20 FPS на опенкомпе. Вроде бы. Хотя это, скорее, из-за того, что нереализованного дофига.
  • 2D и скроллинг.

Для адекватности в скорости использовалась либа doubleBuffering. Все компоненты соединяются посредством либы событий libaevent, которую я тогда достаточно любил, потому что довольно удобная штука она есть.

Но тут параллельно мы поднимали свой сервачок MC, для которого, очевидно, нужен был свой сайт. Сисайт. Иначе несолидно. А так как 2 любительских проекта параллельно одновременно я вести не умею, выжить должен был один из них за счёт второго. И так получилось, что вторым стал ethel.

Уже через 3 недели после начала энтузиазм куда-то иссяк — и 27 июня был запушен коммит, который оказался последним. С тех пор обновлений не было.

Какую мораль я вытащил из этого потонувшего проекта?

  • Я не умею делать нормальные архитектуры. Но это я и так знал.
  • То же для физики. Казалось бы, что там сложного-то: радиус-вектор, вектор скорости и вектор ускорения. Но вот я и в них как-то запутался. Там самым запарным было из этих трёх векторов сообразить нормальный интерфейс программный.
    • Во-первых, действующих на спрайты сил было несколько. Как минимум, там есть гравитация. В теории могли бы быть всякие пружинки.
    • Во-вторых, движение врагов, на самом деле, задаваться должно не ускорением, а простой скоростью. Я там как-то накостылял, и оно даже работало, но удовольствия от этого я не получил.
    • И коллизии. Просто так на них прочекать тоже не столь и сложно, но запары все возникали при использовании результата проверки в методах, задающих поведение спрайтов.
  • Костыли — это плохо.

Ну, то есть, всё как обычно.

Посмотреть на останки можно здесь. Можно даже попробовать запустить это — но сначала сделайте git checkout HEAD^^ (в мастере там какие-то блохи). А, ещё надо будет откуда-то достать либу буферную. И lua-objects скопировать в /usr/lib/lua-objects/lua_objects.lua.

Ethel — это лишь один из множества руин некогда поражавших воображение своей амбициозностью проектов. В этом элитном клубе мы намереваемся продолжить копаться в исторической пыли и вытаскивать на свет из-под неё и другие павшие проекты.

Поэтому ненастойчиво убеждаем вас подписаться на сей чудесный блог, тыкнув на соответствующую кнопку — ту, что повыше. А можно нажать и на обе. 🍪

  • Like 5


2 комментария


Рекомендованные комментарии

23 часа назад, NEO сказал:

Ну что сказать, еще один рипнутый.

Да! О том я, собственно, на протяжении всего поста и писал. Так что можно было не говорить. 😉

Поделиться комментарием


Ссылка на комментарий

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас
×