RU
Red Dunes Project
Red Dunes Project
18.07.2023
  
Откуда у меня возникла идея научить спрайты взаимодействовать с источниками света? Зачем вообще в 2D-игре правдоподобное освещение? Ответ кроется во всё той же Dune 2: The Battle for Arrakis для Sega Mega Drive. Ниже я прикрепил скриншот оттуда, прошу взглянуть.
  
Стоят танки Харконненов - те, что красные. Башня левого верхнего повёрнута на 90 градусов относительно корпуса. При этом, свет на неё падает с условного юго-запада, но на корпус - с востока. Правый верхний танк готов двигаться в северном направлении, башня направлена туда же, но свет на них падает с запада. На корпуса ещё двух танков, что находятся ниже, свет падает с юга. Но на их башни - с севера... Продолжать можно бесконечно.
  
Вот только в реальности ТАК НЕ БЫВАЕТ!!!
  
Причина данных косяков банальна - размеры картриджей были сильно ограничены. У каждого танка 8 направлений для движения и столько же - для поворота башни. Если бы художники нарисовали спрайты с корректным падением света, то на каждый танк приходилось бы по 16 спрайтов. Но разработчики не могли тратить столько места на картридже - по крайней мере, ради подобных мелочей. Вот и оставили один спрайт для корпуса и один - для башни, научив движок поворачивать спрайты под необходимыми углами.
 
Вернёмся в наши дни 😂. На первых этапах работы с графикой я заметил, что всё, что я рисовал, выглядело гораздо, буквально на порядок хуже, чем в той же Dune 2 - даже несмотря на богатую цветовую палитру и гораздо большее разрешение. Причина нашлась достаточно быстро - у меня напрочь отсутствовала игра света. Именно она делала объекты в Dune 2 такими правдоподобными. Казалось бы, мне необходимо было сделать паузу и начать серьёзно учиться рисовать? Не совсем...
У меня в игре техника не была ограничена несколькими направлениями движения. И корпуса, и башни поворачивались плавно, на любой необходимый градус. Значит, чтобы поворот происходил без рывков, а картинка выглядела красиво, спрайтов должно было быть много - куда больше восьми. Вот только рисовать даже по 16 спрайтов для одной башни никакого желания не было, а о бóльших количествах - вообще молчу. Вывод напрашивался сам собой - взять один спрайт и заставить его взаимодействовать со светом в реальном времени...
 
Собственно, результат - в прикреплённом видео. Для наглядности, я ускорил время в игре во много-много раз...

Уровни подписки

Нет уровней подписки
Наверх