Game maker 2.3.0.529 studio полная версия
Содержание:
Maths
- matrix_build_identity() — return an identity matrix
- matrix_build_lookat(xfrom,yfrom,zfrom,xto,yto,zto,xup,yup,zup) — builds a «look-at» (view) matrix for a camera at position (xfrom, yfrom, zfrom) and looking at a point (xto, yto, zto) with an up vector of (xup, yup, zup)
- matrix_build_projection_ortho(width,height,znear,zfar) — build an orthographic projection matrix with width, height and a z range from znear to zfar
- matrix_build_projection_perspective(width,height,znear,zfar) — build a perspective matrix with width, height and a z range from znear to zfar
- matrix_build_projection_perspective_fov(fov_y,aspect,znear,zfar)- build a perspective matrix with field of view ange fov_y and an aspect ration and a z range from znear to zfar
- matrix_transform_vertex(matrix, x, y, z, ) — multiply the given vector (x,y,z,w) by the matrix NOTE: if no w component given then it is treated as 1
- matrix_stack_push(optional_matrix) — push matrix onto the matrix stack
- matrix_stack_pop() — pop matrix from the top of the matrix stack
- matrix_stack_set(matrix) — set the given matrix as the top of the matrix stacl
- matrix_stack_clear() — clear the matrix stack
- matrix_stack_top() — return the value at the top of the matrix
- matrix_stack_is_empty() — return true if matrix stack is empty, false otherwise
FUNCTIONS, SCRIPTS AND METHOD VARIABLES
Above we outline some changes to the GameMaker Language, but now it’s time to talk about the good stuff… what’s been added! To start with we want to talk about in-line functions and scripts. Previously, a script was a single resource that was created on a global scope and used to create a single custom function which would then be called using the script name as the function name. This is no longer the case and scripts, while still global in scope, are now a type of «container» for one or more functions.
What this means is that when you compile your project, scripts are no longer called individually, but are actually all run at the start of the game in the global scope, so all variables that are defined in the script (outside of function definitions) will be considered global. That said, you should still use the identifier to explicitly define and identify global variables in your code.
The reason for this change is that scripts can now contain multiple functions. If you’ve only used GML to code projects then the idea of functions may be something new to you, but think of them as being the same as scripts, only explicitly assigned to a variable. This variable is called a method and is used to call the code that is in the function, the same as you would have previously called the script name. This is easier to visualise with an example, so let’s look at one. Consider this simple script :
Now, however, this would be defined as a function like this:
or like this:
You would call this function just as you would have called the script:
So, as we mentioned above, scripts can now contain multiple functions and these should be defined with the format shown above where you have the JS doc comment to identify the function, then the function definition below, and then the next JS Doc comment, and then the function, etc…
Above, we briefly mentioned that functions as variables were called method variables, but it should be explained in a bit more detail. Basically, when you create a function with a variable like this, you are creating a method variable, and they can have different scopes. Consider this function:
-
In the case of a script a variable called «foo» is declared at global scope
-
If the function is declared in an event then the variable «foo» is on the instance that ran that event
-
If the function is declared in an event using the keyword then the variable «foo» is local to the event only
-
If «foo» is declared inside a then it is declared on the that is active at that time
This means that if you have some code that you need to use only within a loop in an alarm event (for example), then you can define it as a local scope method variable at the start of the event and then use it within the loop without the need to clutter up the script assets with it.
It is worth noting that while the variable will be in the chosen scope, the actual function will be bound to the scope that it was initially defined in. Going back to script functions, these are all global scope and are considered «unbound» (ie: they are not associated with any instances), but if you have a script function that creates another function within it and then you call this script from an instance, the function used within the script will be bound to the instance. In general this is not something you ever need to think about but for more complex operations with method variables it’s worth taking into consideration. This also applies when using other constructs like — when you create a method variable inside a , the function will be bound to the instance that is currently in scope.
The following new functions have also been added to deal with methods:
Check the manual for details fo how these functions should be used.
Что в нем плохого
GML не является объектно-ориентированным языком в прямом смысле этого слова. Существуют игровые объекты, у них есть свойства, и можно даже создавать отношения типа родитель-потомок. Однако объекты не имеют методов. Для выполнения операции над объектом, вам нужно будет использовать его идентификатор экземпляра внутри скрипта. Вначале это может вызвать путаницу для тех кто пришел из объектно-ориентированных языков.
GM:S поддерживает 3D, но это не главное. Нет 3D-редактора, отсутствует программа импорта 3D моделей, а код для работы с трехмерной графикой довольно запутан. Если вас интересуют 3D-игры, я рекомендую вам использовать другой инструмент. В будущем 3D может стать более приоритетным для YoYo Games (компании, владеющей GM:S), но на данный момент это явно последнее в списке.
Версии приложения
Изначально была одна версия программы, но впоследствии приложение разделилось на две редакции: упрощенную (Lite) и профессиональную (Pro). Профессиональная версия расширяет возможности игрового редактора, добавляя, например, функции:
- создания многопользовательского режима;
- импортирования и экспортирования ресурсов для совмещения разных проектов;
- продвинутого редактирования изображений и анимаций;
- расширенных средств программирования.
Профессиональная редакция также может работать в Windows 7 и других версиях. При запуске в ней отсутствуют всплывающие надписи, призывающие к обновлению до версии Pro, а в создаваемых программах нет логотипов.
Разделение приложения на Lite и Pro актуально для версии 8.0.
GameMaker Studio 2
Часто художники, писатели или геймеры задумываются о разработке собственной игры, но не знают, с чего начать. GameMaker помогает воплотить самые смелые идеи для создания 2D-игры — например, top-down-экшена, платформера или головоломки.
Первые итерации GameMaker были созданы более 20 лет назад профессором Утрехтского университета в Нидерландах Марком Овермарсом в качестве пособия для студентов. В 2007 году официальным представителем движка стала студия YoYo Games — дочерняя компания PlayTech. В 2012 году произошёл ребрендинг: конструктор переименовали в GameMaker Studio, попутно расширив его технические возможности. В начале 2021 года команду GameMaker приобрела компания Opera — с перспективами дальнейших серьёзных вложений.
Ограничения пробной версии:
- срок действия программы — 30 дней с момента регистрации аккаунта на официальном сайте;
- нет возможности скомпилировать окончательный вариант проекта;
- в маркетплейсе можно покупать и скачивать ассеты, сделанные другими пользователями, но собственные наработки нельзя выставлять на продажу.
Существует несколько лицензий GameMaker Studio 2. Тип лицензии зависит от типа платформы, на которой разработчик запланировал релиз.
- GameMaker Studio 2 Desktop (1 599 рублей) — лицензия для разработки игр на Windows, Mac OS и Ubuntu.
- GameMaker Studio 2 Web (2 579 рублей) — для HTML5-проектов.
- GameMaker Studio 2 Mobile (1 599 рублей) — экспорт на iOS, Android и Amazon Fire.
- GameMaker Studio 2 UWP (3 499 рублей) — универсальная лицензия с возможностью портирования проекта на все вышеперечисленные платформы.
Достижения:
- клиент движка загрузили 10 млн раз;
- посещаемость официального сайта достигла 200 тысяч человек в месяц;
- каждый день более 1 000 пользователей регистрируются на сайте, чтобы скачать клиент (по данным gameindustry.biz)
Преимущества:
простота освоения — благодаря системе визуального скриптового инструмента drag & drop;
собственный упрощённый язык Game Maker Language (GML), который не требует углублённого изучения кода;
кросс-платформенность (поддерживает Windows, Mac OS X, Ubuntu, Android, iOS, tvOS, fireTV, Android TV, Microsoft UWP, HTML5, PlayStation 4, Xbox One);
наличие инструмента для создания кат-сцен;
возможность сделать игру в любом жанре и стиле;
оптимизация готовых приложений в плане объёма, что важно для мобильных игр.
Недостатки:
- несмотря на поддержку 3D, работать с ним крайне неудобно;
- если разработчик надумает сменить движок в будущем, ему будет сложно перейти с GML на другой язык;
- из-за специфики GML возникают сложности при поиске программистов;
- несмотря на упрощённый экспорт игр на другие платформы, нет поддержки одновременного выпуска патчей;
- экосистема GameMaker не может конкурировать с более мощными движками из-за недостатка функциональности.
Игры на движке: Undertale, Hyper Light Drifter, Hotline Miami, Blazing Chrome, Danger Gazers, Katana Zero.
Скриншот из Katana Zero — игры, созданной на GameMaker Studio 2 / Скриншот: игра Katana Zero / Steam
«Я выбрал GameMaker в качестве основы для своих игр, так как с его помощью можно быстро прототипировать. К тому же он обладает расширенным функционалом, необходимым современному 2D-движку.
GameMaker существует достаточно давно. Поддержка и сообщество — одно из главных достоинств, и для меня как для разработчика-одиночки это большой плюс. Мой опыт работы с этим движком достаточно положителен. Рекомендую его всем, кто хочет делать 2D-игры: возможности инструмента в этой области ничем не ограничены
При этом неважно, новичок вы в геймдеве или у вас уже есть опыт программирования, — в любом случае это один из лучших 2D-движков на сегодняшний день»
Шота Бобохидзе, инди-разработчик (Kontrakt, Danger Gazers)
Скриншот из Danger Gazers — игры, созданной на GameMaker Studio 2. Скриншот: игра Danger Gazers / Steam
«GameMaker восхитителен, когда нужно быстро создать прототип. Именно поэтому самые высокооценённые игры крупнейшего игрового джема — GMTK — сделаны на этом движке. GameMaker — мой самурайский меч, fire of my loins.
Я работаю на нём уже 18 лет и за этот период сделал Steam Panic, Paper Knight, Geon FX, а также первый эпизод Gripper. Ничто не дарит такой детской радости, как этот конструктор».
Кирилл Золовкин, инди-разработчик (Steam Panic, Paper Knight, Geon FX)
RPG Maker
История одного из самых знаменитых конструкторов ролевых игр началась ещё в конце 1980-х. Более поздние версии для Windows, созданные японскими разработчиками, получили широкое распространение на Западе. Сегодня популярность движка достигла таких масштабов, что тег RPG Maker в Steam представляет уже не столько игры на самом движке, сколько собирательный образ тематического направления в геймдеве. Этот феномен легко объяснить.
RPG Maker используют преимущественно для создания JRPG в стиле ранних частей Final Fantasy. Сам жанр требует огромного количества ресурсов: локаций, персонажей, мобов и так далее. Большинство тех, кто работает в RPG Maker, используют дефолтные шаблоны движка, дополняя их собственными персонажами и иллюстрациями. Иногда даже NPC в этих играх созданы только с помощью генератора. Поэтому игры на RPG Maker, как правило, выглядят очень однотипно. Лень тут ни при чём: у большинства инди-разработчиков просто нет времени, навыков и ресурсов, чтобы сделать всё с нуля. А готовые системы сохранения, боя и интерфейс тяжело изменить. Даже если потратить на кастомизацию достаточное количество времени, мелкие детали в интерфейсе всё равно выдадут RPG Maker.
Сейчас существует несколько версий редактора. Последняя — RPG Maker MZ — вышла в 2020 году. Базовая версия обойдётся в 1 389 рублей. Также не стоит забывать о DLC с наборами тематических ассетов, которые наверняка потребуются начинающему разработчику.
Скриншот из To the Moon — игры, созданной на RPG Maker. Скриншот: игра To the Moon / Steam
Преимущества:
- не требует навыков программирования, более опытные разработчики могут оценить гибкость движка с помощью JavaScript;
- кросс-платформенность (Windows, Mac OS X, HTML5; iOS и Android — в RPG Maker MV);
- огромное количество плагинов: игру можно сделать фактически с нуля без помощи художников и композиторов;
- на тематических форумах есть бесплатные ассеты.
Недостатки:
- большое количество ассетов и DLC, которые следует докупать отдельно;
- неоправданно большой «вес» проектов: согласно порталу gamedesigning.org, игра занимает от 400 МБ независимо от количества контента, к тому же конструктор нередко создает резервные копии, засоряя жёсткий диск;
- если перемудрить с ассетами, игра начнет тормозить — выявить причину будет непросто;
- портирование на мобильные платформы может сопровождаться неприятными багами.
Игры на движке: To the Moon, Hello Charlotte, Grimm’s Hollow, Lawmage Academy.
Скриншот из Lawmage Academy — игры, созданной на RPG Maker. Скриншот: игра Lawmage Academy / Steam
«Мне хотелось сделать добротную двумерную RPG с приятным геймплеем, хорошей боёвкой и презентабельным визуалом. Я понял, что мне не хватит опыта и бюджета для работы с Unity 3D или UE4 (если не считать работой сборку игры сомнительного качества из готовых ассетов), поэтому я остановился на RPGMaker, тем более что мне уже доводилось с ним работать. Это замечательный инструмент, но, к сожалению, за годы у него сложилась репутация конструктора плохих игр, которые порой бывают даже хуже, чем поделки на Unity. Отчасти это связано с простотой его использования. Практически любой желающий может сразу создать игру на RPG Maker, достаточно посмотреть пару обучающих видео. Однако реальные возможности движка сильно ограничены: на нём можно сделать только JRPG в стиле Final Fantasy, для иных жанров потребуется масса плагинов, а ещё предстоит потратить время на работу с кодом».
Manly Mouse Studios, инди-разработчик (The Singularity Wish). Дневник разработчика, октябрь 2019 года
Скриншот из The Singularity Wish — игры, созданной на RPG Maker. Скриншот: игра The Singularity Wish / Steam
«RPG Maker действительно очень простой движок. Его простота и доступность привели к тому, что на нём появилось огромное количество „мусора“, в том числе порнографического содержания. Из-за этого многие геймеры терпеть не могут RPG Maker. И эта дурная слава будет преследовать даже качественные проекты. Игры на этом движке очень узнаваемы. Ещё могу отметить тот факт, что движок подходит для создания пошаговых RPG и даже квестов. Игры других жанров в теории тоже можно сделать (я даже видел симпатичный beat ’em up), но это равносильно забиванию гвоздей отвёрткой вместо молотка».
Кирилл Пестряков, инди-разработчик (Heroines of Swords & Spells)
Скриншот из Heroines of Swords & Spells — игры, созданной на RPG Maker. Скриншот: игра Heroines of Swords & Spells / Steam
Обучение GameMaker: Studio
GM:S предлагает два различных способа создавать игры. Первый это так называемый интерфейс Drag and Drop (сокращённо DnD). Он довольно мощный и позволяет создавать сложную логику. Однако, он не такой мощный, как второй вариант: использование языка программирования GameMaker Language (сокращённо GML). GML — это прекрасный язык сценариев, который может делать все, что может делать DND, и многое другое.
Начало работы
После того, как
вы загрузили версию движка GM:S которая соответствует вашим потребностям, вам следует ознакомиться с учебными материалами,
которые поставляются вместе с GM:S. Их можно найти во вкладке Tutorials после того, как вы откроете GM:S.
В начале уроков будет показано, как использовать drag and drop интерфейс, а более поздние руководства начинают охватывать язык программирования GML. Самое приятное в предложенных уроках — это то, что они фактически добавляют окно к
интерфейсу, в котором вы узнаете, как создавать каждую игру, поэтому вам
не нужно обращаться к веб-странице — все доступно изложено для вас в GM:S!
Я рекомендую
проработать столько, сколько вам нужно, до тех пор, пока вы не
почувствуете, что у вас есть четкое представление об общем процессе
работы и инструментах, которые предлагает движок GM:S. Дополнительные уроки вы можете найти на вики сайте YoYo games по адресу http://wiki.yoyogames.com/index.php/GameMaker:Studio_Tutorials включая некоторые более продвинутые руководства.
Для самого продвинутого обучения можно посмотреть демки на вкладке Demos после запуска GM:S. Они не откроют окно обучения, но они предоставляют доступ ко всему используемому исходному коду, чтобы можно было просматривать его, запускать отладчик и наблюдать за тем, что происходит, так что вы получите хорошее представление как использовать их методы в своих играх.
Руководство
Руководство по GM:S можно найти в меню Help в разделе Contents…. Это должно быть первым местом, где вы будете искать ответы на свои вопросы, если сразу перейти на форумы, люди по всей вероятности огорчат вас за то, что вы просто не проверили справку. Существует также онлайн-руководство, которое можно найти по адресу docs.yoyogames.com
Руководство в программе GM:S
Если вы выполняете поиск как в прилагаемом руководстве, так и в онлайн-руководстве и не можете найти ответы, не бойтесь! На reddit существует большое сообщество /r/gamemaker и есть официальные форумы. Кроме того, имеется отличный сайт полон инди-разработчиков, некоторые из них часто используют GM:S на форумах TIG. Эти сообщества полны полезных людей, поэтому не бойтесь задавать свои вопросы!
Где я могу получить GameMaker: Studio?
Основной сайт движка GM:S — это http://www.yoyogames.com/. Вы можете загрузить бесплатную версию или приобрести одну из лицензионных версий.
Ниже приведено сравнение различных версий GameMaker, взятых с веб-сайта YoYo Games:
Как вы видите, бесплатная версия (Studio) довольно ограничена, но это отличный способ увидеть рабочий процесс и расположение инструментов, а также потратить некоторое время на изучение языка.
Обновление: Бесплатная версия GameMaker: Studio теперь та же, что и стандартная версия! Для получения дополнительной информации см. GameMaker: Studio будет бесплатной.
Стандартная версия отлично подходит для разработчиков одиночек, которые только планируют разработку компьютерных игр; Профессиональная версия идеально подходит для небольшой команды разработчиков планирующих переходить в конечном итоге на кроссплатформенную разработку, поскольку они могут добавлять различные модули с течением времени после получения некоторого дохода; и Master Collection отлично подойдет для небольших команд, которые являются частью созданных студий, и хотели бы использовать кроссплатформенную разработку с самого начала.
GM:S также
доступен в Steam, но я бы рекомендовал не покупать его там, так как
YoYo Games не знает, что вы его приобрели, и,
следовательно обладателям их продукта будет больше хлопот в отделе обслуживания клиентов. Кроме
того, они иногда предлагают дешевые апгрейды для тех, у кого уже есть определенная версия GM:S, и они не могут дать то же обновление пользователям купившим в Steam. Кроме того, если вы покупаете у Steam, то необходимо войти в Steam, чтобы запустить GM:S, а это может раздражать.
Используемые принципы игростроения
Возможностей редактора хватает для создания игр, подобных тетрису, арконоиду, пэкмену и т.д. Можно создать и красивые аркады, если задействовать творческий потенциал на всю мощь – функции приложения это позволяют. Все элементы, используемые программой для создания игры, называются ресурсами. К ним относятся:
- спрайты;
- объекты;
- комнаты или уровни;
- звуки;
- фоны;
- пути;
- скрипты;
- шрифты;
- тайм-лайны.
Наиболее важными и одновременно простыми в усвоении являются первые пять ресурсов. Остальные четыре требуют дополнительного изучения, они помогают усовершенствовать игру.
Спрайтами называются изображения, которые используются для отображения на экране объектов. Другими словами – это картинки или анимации. Их можно нарисовать в самой программе или загрузить из внешних источников, например, большой встроенной библиотеки. Они могут иметь формат .png или .gif.
Объекты – основная составляющая игр. Это герои, враги, стены, препятствия, окружающие предметы мира и т.д. Объектам могут задаваться действия, например, реакции на нажатие кнопок клавиатуры, мыши или джойстика, реакции на столкновения с другими объектами, действия по умолчанию и т.д. При создании объектов используются принципы объектно-ориентированного программирования, но простота игрового редактора позволяет использовать эти принципы без их глубокого изучения.
Комнаты или уровни – это локации, в которых происходят игровые действия, и в которых находятся объекты. Комнаты плоские, двухмерные, но они могут имитировать и 3D-графику. Уровни можно оформить любым образом, использовать объекты-стены и декорации, загружать фоны и т.д. Можно настроить комнату так, чтобы при выходе все объекты в ней сохранялись или сбрасывались.
Фоны могут создаваться в самом редакторе игр, можно их загружать и с внешних источников. Вместо изображения можно применить только один цвет. Фоны используются и для других целей, не только в качестве задников.
Программа имеет библиотеку встроенных звуков. Совершая действия, объекты могут издавать те или иные звуки. Кроме встроенных эффектов, можно использовать загруженные звуковые файлы. Кроме спецэффектов, можно загружать и фоновую музыку.
Этих ресурсов достаточно для создания несложных, но увлекательных игр, которые запустятся даже на Windows 10. На воплощение задумки может понадобиться около часа. Чтобы игра засияла новыми гранями и стала глубже и интереснее, все ее элементы можно настроить скриптами, а для придания игровым функциям гибкости используются пути и тайм-лайны. Эти элементы требуют некоторых знаний об информационных технологиях, однако они не обязательны.
Chaining
Another great feature in GameMaker Studio 2 is the ability to visually «chain» things together. This is most obvious when dealing with objects, but is also a feature of the room editor and other areas of the workflow.
As you can see from the image above, GameMaker Studio 2 will chain together the object with its events and with the code associated with each event. In this way you can dedicate areas on your workspace to chains of objects and then navigate between them to get a far more visual representation of what’s going on. Note that you can change some of the chaining properties from the GameMaker Studio 2 preferences, so if — for example — you would rather have the code for each event in multiple tabs in a single window rather than have a window for each one, you can change this.
Web Audio
When creating games for the HTML5 target platform, the audio
engine requires Web Audio support, and this in turn mans
that sometimes your audio won’t play when or how you expect it.
This is because the Web Audio context may not be running or may
stop running when your game is being played. What causes this
varies greatly between browsers, and even between different
versions of the same browser, and so detecting when the web audio
context status changes is very important, eg: to detect when the
context changes and pause/start looping audio like background
music.
To help with this issue, GameMaker Studio 2 has two
separate ways to detect the change in Web Audio context status,
either using the following function:
Or using the Asynchronous System Event, which will be
triggered whenever the Web Audio status changes. In this event you
will get the built in async_load DS map populated with
the key «event_type» which in turn will hold the string
«audio_system_status» if it is an audio event. When this
key exists, there will also be a further «status» key
which will be either «available» or
«unavailable«. Note that this event will be triggered on
all platforms, but on everything except HTML5 it will only
be triggered once on Game Start when the audio engine is first
initialised. For more information please see the section: