Обнаружение события загрузки игры

Программирование

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

Но так как всё это делать сложно, и, наверное, не целесообразно (а мог бы игры делать), а код, который я написал в рамках этой работы, относится к уже стремительно устаревающему Game Maker 8.1, то я позволю себе просто привести его здесь, и задать вопрос невидимому гипотетически существующему любопытному читателю — а что же мы получим в результате его выполнения?

В Create:

x=0
alarm[0]=50
game_save('1')

if file_exists('1')
    show_message('saved')
else
    show_message('NOT saved')

game_load('1')
x=3
show_message('loaded, x='+string(x))

В Alarm 0:

show_message('x='+string(x))

Одинаковое разное оружие добра и зла (на примере моей игры Aliens X)

Программирование

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

Когда я открыл для себя Game Maker и попытался сделать игру, подразумевавшую перестрелку игрока и врагов, оказалось — не тут-то было. Тут-то меня и постигли первые приступы охреневания от того, что создание игры != программирование игровой логики. Это ощущалось парадоксальным.

Как говорил Кортех:

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

Как работала система выстрелов в Aliens X:

Был выстрел игрока, были выстрелы врагов, и были выстрелы, которые «ничьи» летают на орбите игрока, задаваемые отдельным путём. Выстрелы врагов превращались в орбитальные выстрелы, а потом, при отпускании правой кнопки, в выстрелы игрока, по фазам способности использования выстрелов врагов против них самих. В ранних версиях игры игрок умел только выкидывать вражеские выстрелы обратно в землю, кстати.

А теперь у меня та же проблема всплывает в нашем совместном Замке Невозврата 2. Но теперь-то я уж давно знаю, как с этим разбираться — достаточно менять и обрабатывать переменную, назвав её как-то вроде side или team.

Ну вот, какой-то такой забавный факт из истории.

КсиТехнология-01 — система анимаций «движение-атака»

GameMaker

Слишком претенциозное название для способа анимировать объекты в Гейм Мейкере, я знаю. Однако, это первое серьёзное усовершенствование, которое я придумал в ГМ, и использование которого ни разу не видел в исходниках (и уверен, что мало кто использует этот способ в принципе).

Когда я в каком-то бородатом 2008 году программировал платформер (это был пресловутый Эсдировский Red Zone, который, конечно, так и не вышел), я встретился со следующей проблемой, или, точнее говоря, неудобством — у персонажа много спрайтов, и их нужно не просто переключать в зависимости от того, в воздухе он или нет, а — как в Мегаменах — в зависимости и от того, стреляет от в данный момент или нет, находится ли в рывке, прыжке, на лестнице, и прочее. Об этом я и поведаю под катом.

Ставьте лайк, если всегда гадали, какого же цвета становится Марио/Луиджи, когда берёт звёздочку.

У него таких проблем как раз нет. Он парень простой, 8-битный.

(у него проблемы с обилием перекрасок, что было решено КсиТехнологией-02)


Читать дальше...

You are the blood…

НА КОЛЕНИ
..flowing through my fingers

% Это первый наполняемый пост девлога игры, которую я уже некоторое время разрабатываю и не собираюсь бросать. Окончательное название для неё ещё не определено; главное место будет отведено созданию трагикомичного кичливого мира в духе всего того, что я в последнее время тут писал, и больше я, кстати, ничего не скажу, целиком посвящая это место тем маленьким и скучным, лишённым какой бы то ни было романтики вещам, которые так сложно разглядеть в завершённой игре, но из которых она тем не менее состоит.

Читать дальше...