Звуколенник №II УЖЕ СКОРО

Звуколенник

 

 

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



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

Гамак — Структура игры

GameMaker

GM-Игра состоит из разновсяких частей (на картинке — древовидный список слева), называемых ещё ассетами (в новой версии Studio) или ресурсами (в старой):

  • Спрайты — это плоские анимированные либо статичные изображения
  • Звуки — а также музыка
  • Фоны — это недвижимые, неанимированные плоские картинки, как правило большие
  • Пути — там можно нарисовать любые двухмерные фигуры и пускать по ним объекты
  • Скрипты — вызываются из кода объектов, но в простых играх могут и отсутствовать
  • Шейдеры — это не ко мне, думаю и так понятно
  • Шрифты — которыми писать буквы, цифры, и прочие символы
  • Линии Времени — это как Пути, только для событий (точнее реакций на них)
  • Объекты — вся основная логика игры описывается здесь
  • Комнаты — содержат в себе «уровни» игры, в виде двухмерных карт с расставленными объектами
  • Включённые файлы — любые свои файлы можно присоединить к дистрибутиву игры
  • Расширения — тут не рассматриваются
  • Макросы — фрагменты текста, подставляемые в код по шаблону

Но нас в данном случае интересуют всего лишь Объекты и Комнаты. Ну и наверное Спрайты, чтобы видеть Объекты.

Тут нужно замечание об именовании ресурсов — каждому ресурсу необходимо уникальное название, поэтому практикуются префиксы, например s_wall для спрайта и o_wall для объекта. Если названия совпадают, ГМ может перепутать индексы и возникнут баги. Поэтому лучше заранее всё называть с префиксами и не беспокоиться.

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

Так что теперь посмотрим на объекты.

Кнопка Add Event посередине внизу добавляет Событие объекту, а выбрав конкретное Событие из существующих, можно назначить ему ту или иную реакцию. На «кнопках» ГМа можно много чего сделать, но моя практика показывает что куда лучше кодить на GML, что даётся нам кнопкой «Execute a piece of code», находящейся во вкладке control справа. Её нужно перетащить в Actions, и можно кодить. Но что кодить? Это уже зависит от объекта и события.

Тут много знать не надо. Самые главные события это Create (создание объекта, оно же «конструктор»), Destroy (уничтожение объекта, «деструктор»), Step (шаг объекта, самое главное событие) и Draw (отрисовка объекта, но по умолчанию он отрисовывает свой спрайт и сам, а добавление пустого Draw делает его невидимым). В Create желательно инициализировать переменные, в Destroy часто ставят создание объектов для спецэффектов типа взрывов, в Step ставят всевозможные вычисления и управление объектом, а в Draw — прорисовывают интерфейс, меню, или что там нужно.

Ещё одно главное событие это Collision, или событие столкновения — оно срабатывает всякий раз, когда два объекта пересекаются своими масками столкновений. Маски по умолчанию совпадают со спрайтами, но могут быть переназначены на другой спрайт.


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

Гамак — Названия и термины

GameMaker
Обычные ООП-языкиGameMakerОсобенности GM
переменнаяпеременнаяМогут менять свой тип во время исполнения кода
Типов очень мало — вещественные числа, строки, массивы
Традиционных указателей нет
функция (НЕ метод)скриптСкрипты не принадлежат объектам, могут вызываться откуда угодно
Вызванный скрипт выполняется в контексте вызвавшего объекта
У скриптов может быть не более 16 параметров
Параметры скриптов никак не именуются: argument0...argument15, но
для наглядности можно вручную называть полученные аргументы,
записывая их во временные переменные только ради названия.
классобъектВсе объекты могут обращаться ко всем переменным всех объектов
GM-объект описывается как реакции (действия в ответ) на события
GM-объекты могут иметь родителя, наследуя его реакции на события
Унаследованные реакции можно переопределить либо дополнить новыми
объектэкземплярЭкземпляры GM-объектов содержат множество встроенных переменных,
поэтому использовать их в качестве структур данных — плохое решение
(для этого просто заводят множество массивов с похожими названиями)
событиесобытиеСвои события создавать нельзя, но можно назначать номерные
User Events, и вызывать их вручную через event_user(номер).
Впрочем, встроенных событий хватает на очень многие вещи.
обработчик событиядействие событияРаньше ГМ затачивали под то, чтобы в этой колонке складывать несколько
«кнопок», где пользователь задаёт только параметры действий. Однако,
для большей гибкости лучше писать код на GML, а «кнопки» игнорировать.
 исключениенетМеханизма исключений в GM нет, и никогда не было
Впрочем, можно подавлять возникающие ошибки, и игра никогда не вылетит
в традиционном смысле этого слова, если это не аппаратная проблема или
проблема на стороне операционной системы.
Конструктор

Create Event

(ev_create)

Событие, вызываемое сразу при создания объекта, на том же шаге

Модификатор Persistent позволяет объектам «жить вечно», переходя между
разными Комнатами (по смыслу — уровнями), если только их принудительно
не удалить через код скриптов, комнат или других объектов.

Деструктор

Destroy Event

(ev_destroy)

Событие, вызываемое сразу при уничтожении объекта, после конца
выполнения текущего участка кода

При переходе между Комнатами, непостоянные объекты удаляются, но
событие Destroy в них не происходит.

Гамак — Хаб

GameMaker

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

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

Цикл посвящён не разработке игр, не программированию, не гейм-дизайну, не левел-дизайну, а конкретно и именно Гейм Мейкеру. Ориентирован на людей, которые уже программировали что-либо, объяснений базовых понятий программирования и конкретно ООП в нём нет, благо всю недостающую информацию можно бесплатно достать в Интернете, а весь недостающий опыт — наработать.

Кроссплатформенность и работа с 3Д, равно как и с прочими глубокими фишками, в цикл не входит. В него входит минимум, чтобы ввести в курс дела, как мутить всякие простые штуки в 2Д, чтоб было от чего оттолкнуться. ГМовских «кнопок» не будет, только код на GML.

 

Оглавление

Основы

0 - Названия и термины

1 - Структура игры

1а — Кодим клон Aliens X

2 - Как придумать игру и не смочь её сделать
(старый дедовский способ ещё на 58% проще!)

Может быть про дебаг

Может быть что-то ещё

 

Тонкости и нюансы

varенье - «отдельная» локальность
переменных с ключевым словом var

про айдишники ассетов

сёрфейсы

чё там ещё

 

 

Пишите комментарии и предложения, если есть.

games-list

Цех имени DarkDes'а

| Обсуждение | Список Игр | Видео |

 

 

Игры* в порядке разработки

Эпоха**НазваниеОписаниеПримерное Время\Конкурс? Скриншоты?Скачать\Ссылки
1Лети, корабль, лети!Простой shoot'em up сделанный на GameMaker 6 (конвертирован в GM8).2010 Скачать .zip
2Последняя защита

 На самом деле это Shoot'em up и является переработкой «Лети, корабль, лети!», вернее ЛКЛ — это был прототип-игра.

В 3Д, но механика 2Д разумеется.

2011

Раз

Два

Три

 Оригинал потерян.

Запускается и работает с переменным успехом.

 -/-/-Проект по Биологии Некая «обучающая программа», не игра, но были идеи как переделать в нормальную такую игрушку, возможно, в стратегию.2012

Раз

Два

 На Win7 особо не пашет.

Относительно стабильная версия.

3Люк бункера номер 3

Бродим по бункеру и помогаем Люку открыть люк на поверхность.

2014

Gaminator 15

 Gamin.me:Gaminator15 версия
Пост-G15 версия
GamesJamKanobu версия

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

Сделал веселенькую игрушку

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

Управление: стрелки — передвижение, открыть рот — правая кнопка мыши (будьте осторожны), выстрел окрошками пончика.

Если непонятны особенности управления:

 

На правую кнопку мыши Вы открываете рот, при этом вы можете кушать пончики. Однако если вы откроете рот и попытаетесь съесть камень — вы получите урон. За съеденные пончики у вас увеличивается боезапас, и вы можете «стрелять».

 

Правила: уничтожьте инопланетян — выиграете, потеряете жизни — прогираете, шкала сверху — здоровье, число — кол-во еды.

Музыка: Sour Tennessee Red — John Deley and the 41 Players, музыка без авторских прав,

              https://www.youtube.com/watch?v=Vfc9sAQjJtc

Ghost 1.0

Обзоры игр

Геймплейно это аркадная 2D-стрелялка типа Abuse, с платформерным управлением и прокачкой. Да, пример может не самый подходящий, но это единственная похожая игра по игровой механике, к-я пришла мне на ум — в 2D-стрелялки с видом сбоку я редко играю.


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