Меню Рубрики

Game maker studio windows sdk

Setting up GameMaker: Studio for YoYoCompiler Platforms

Please be aware that for all of the new YoYoCompiler platforms you will require an additional bit of setting up GameMaker: Studio and a couple of external downloads. In this guide I will talk you through setting this up.

Note also that currently YYC compilation is only available on the platforms listed here. You will need to own these modules (iOS/Android) in order to use the YoYo Compiler on them.

Windows

Downloads

Windows 7 or 8 user? Please follow this guide and download Visual Studio 2012 Express for Windows Desktop.

Vista/XP user? Follow this guide and download Visual C++ 2010 Express. Please be aware that on XP (and possibly Vista also) the VS2010 install might well cause problems with .NET 3.5 which makes various programs show errors they didn’t before. If after installing VS2010 you find GameMaker suddenly won’t open up because the updater is crashing and you’re shown a Just In Time debugger window instead, please go to your Add/Remove Programs and repair your .NET 3.5 Framework. This should fix your Windows setup. It has been reported that VS2012 now supports XP due to new updates. Therefore, using VS2012 may now work, although it is recommended that VS 2010 is still used, for stability reasons.

Once you’ve downloaded the installer you require, go ahead and install it using the default options.

Inside GameMaker: Studio

The new File -> Preferences -> Windows needs to be setup correctly before the compiler will work properly. The defaults which ship with GameMaker are correct for Visual Studio 2012 on Windows 7/8, but these will need to be changed for other configurations. You can see the two fields for your Visual Studio and Windows SDK install locations default as in the image below:

For XP/Vista you will need to change both fields to something more like:

Obviously, if you customised the locations for your Visual Studio install you will need to change the paths here to match.

To build with the YoYoCompiler simply select the Windows (YYC) target from the drop-down menu and then click the test button on the toolbar/menu as you would normally for other platforms. Please read the Beta restrictions section below for additional information on what happens currently!

Android

Downloads

You will need to install the Android NDK (as well as the SDK you have installed). Follow this guide to see what we require. Once you have it downloaded, extract the .zip to a suitable location on your drive — recommended is «C:\android-ndk- «.

Inside GameMaker: Studio

Navigate to File > Preferences > Android and shift to the SDKs tab. Ensure that the NDK Location field matches where you extracted your copy of the files to (if you used the recommended location I gave above it will match already. Now click the «Check NDK» button and confirm that it says it’s all okay.

You should now be able to build for Android YYC. Much easier than using the SDK, isn’t it.

Downloads

Assuming you’re set up for regular iOS or Mac development and so you have a suitable XCode version installed on your Mac and all your certificates, etc., there’s nothing new to download. If you aren’t already a GameMaker: Studio iOS or Mac developer, please see the relevant FAQs for those platforms before carrying on here.

Inside GameMaker: Studio

Again, there’s very little to do inside the IDE. However, we do strongly advise getting the latest release, as 1.1.1086 requires extra setup for testing iOS YYC which you no longer have to perform in newer releases. Some things to be aware of in the IDE are that you will likely find yourself cleaning your project cache much more frequently at the moment. This is largely because there are now two machines involved in the build process, so twice the opportunity for files to become stale. It is advised to clean the cache any time you see any odd issues and also in preparation for a «Create Executable» build.

A «Create Executable» build will ask you to save an Xcode Archive format file, not an .ipa. This file can be saved anywhere — the relevant information is saved on the Mac and you’re just being asked where to save a copy for backing-up, etc.

One limitation of the Apple tools used also is that users of iPods will (and any devices with older versions of iOS may) find that although the build is fine and it gets installed okay, the compile script won’t launch the game. You may get errors saying that the instrument rejected the trace or, more plainly, that it couldn’t start the app — if a project fails to run, check the device for a YoYoDev app and run it manually.

Similar to the last issue, you may occasionally find that the Mac won’t put your game on your device for no visible reason. Checking the device console may well show that the message was too large for USB. In these instances we recommend opening the project in Xcode and finishing the build there. Ensure you change the scheme to be a Release build. This will usually also clear the block for future builds. If your iOS version is sufficiently old enough, however, you might have to do this step quite often.

Additionally, if you see your build process stalling at: «cmd /c «»C:\Users\Dan\AppData\Roaming\GameMaker-Studio\putty\plink» -batch -pw password123 MyMac@MyMac cd

/GameMaker-Studio/MyGame/MyGame; if [ ! -d MyGame.xcodeproj/xcuserdata ]; then open MyGame.xcodeproj; while [ ! -d

/GameMaker-Studio/MyGame/MyGame/MyGame.xcodeproj/xcuserdata ]; do sleep 2; done; fi;»» in the compiler window, then it’s likely Xcode is showing you a prompt on the Mac — most likely that you’ve cleaned the project cache while Xcode was working on the project.

YYC Notes And Restrictions

Please report any issues via the bugs form and have a sample project .gmz ready if the Helpdesk ask for one.

  • The debuggers do not work with the YYC platform. If selected, it will actually run a normal (non-YYC) debug build. This is by design — you’d want the speed of building for testing iterations more rapidly and the ease of getting the data back.
  • game_save() and game_load() do not work properly with the compiler at this time.
  • If scripts are called with the wrong number of arguments, then the game will crash on YYC platforms, so please note that this is now a change in GM practices for all platforms and you must apply the fix to your code.
  • Windows XP support for YYC platforms is limited at this time. You may find projects which compile fine on 7/8 instead complain about unknown/missing functions on XP.

Источник

Уроки по Game Maker Studio 2 для начинающих (Часть 1)

Приветствую всех вас, уважаемые читатели! Ну вот я наконец и добрался до самих уроков по движку. Если вы не читали еще прошлые мои статьи, то понять из данной статьи тоже наверное сможете не многое, если вы пришли прям с нулевыми знаниями. По этому я вам очень бы рекомендовал вернуться сначала к предыдущим статьям, и только потом приступать к прочтению данной. Итак, поехали!

Пробуем создать свой Арканоид

Я всегда всем советую начать изучение движка с создания простой игры. Да я и сам в свое время учился так. Создав 5-6 отличных друг от друга игр вы получите очень хорошую базу знаний по движку.

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

Запускаем наш Game Maker Studio 2.

Для начало вам нужно будет зарегестрировать свой аккаунт на официальном сейте YoYoGames , чтобы войти в данный движок. Я об этом вроде говорил ранее.

Нажимаем «New» , что значит «Новый» , для создания нового проекта. У вас далее появится следующий выбор:

Тут следует немного остановиться подробнее. Движок GMS2 позволяет создавать игры на своем языке программирования GameMaker Language (GML) либо вообще без написания кода, то есть собирать игру как бы из логических блоков (Drag and Drop). Я бы рекомендовал учиться сразу писать код. Но вы можете конечно попробовать поиграть с блочной системой. Конкретно в этом уроке я буду объяснять работу именно проектов на основе кода, т.е. выбираем второй вариант. Ну а далее вы выбираете место, где будете сохранять своей проект и дадите ему имя.

Готовим ресурсы для игры

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

Для игры нам будут нужны: бита, мяч, стены и блоки.

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

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

Далее создаем объекты и прикрепляем к ним спрайты. Опять же я все это подробно объяснял в прошлых статьях, останавливаться не будем особо.

Назовите объекты так как я их назвал. Это пригодится далее в уроках. Итого у вас должно быть 4 спрайта и 4 объекта в дереве ресурсов.

Далее подготовим комнату и расставим все объекты в ней для первого уровня. Кроме мяча. Мяч мы будем создавать кодом.

Задайте ей размеры 960 пикселей в ширину и 540 пикселей в высоту. Создайте несколько слоев именно того типа, что я пометил стрелочкой (т.е. слои для объектов). Поменяйте им названия. Расположите их в том же порядке что у меня на скриншоте. И далее на каждый слой перетащите и расставьте соответствующие объекты, как они у меня расставлены в комнате. Т.е. на слой «Walls» , например, расставляем объекты «Wall» и т.д.

Так же можете поменять цвет фона. Для этого просто щелкаете на слой Background и чуть ниже выбираете нужный нам цвет. Но это не обязательно. Можно оставить и изначальный черный.

Обратите внимание, что мы создали еще и слой «Ball» , но на него ничего не ставим. Мы подготвили этот слой заранее, чтобы потом создать кодом на нем наш мяч (объект Ball).

Если вы все сделали правильно, то теперь, если нажать на кнопку запуска игры в виде треуголника, то у вас уже запустится что-то похожее на эту самую игру. Только пока в ней нельзя ни управлять битой, ни мяча в ней нет, который бы летал и разбивал блоки и т.д.

Т.е. при запуске у вас откроется подобное окно:

Справились? Поехали дальше!

Начинаем писать логику для игры

Давайте начнем с биты, так как игрок будет управлять именно ей. Щелкнем на объект биты и создадим ей событие шага ( Step ), о котором я писал в прошлых статьях. Создаем именно событие Step , не Begin Step и не End Step . Для чего нужны они, объясню когда-нибудь в последующих статьях. Но запомните, в 95% вы будете использовать именно событие Step из этих трех возможных, так что пока не забивайте голову.

И вот наконец-то у нас открылось окно редактора кода. Как долго же мы шли к этому событию! Для начала, давайте сделаем так, чтобы бита двигалась вправо и влево по нажатию кнопок со стрелками вправо/влево на клавиатуре.

Для этого нам в шаге нужно создать условие, которое бы проверяло, что нажата та или иная клавиша (вспоминаем прошлые статьи опять же). За событие нажатия клавишы в GMS2 отвечает функция keyboard_check_pressed () , где в скобках мы напишем необходимую нам клавишу. Чуть ниже мы к этому вернемся. Так вот, а что именно мы будем делать при нажатии этой клавиши? Просто будем менять X-координату самой биты, т.е. будем прибавлять или отнимать эту координату, тем самым перемещая биту вправо или влево. Итоговый код в событии шага биты у нас будет выглядеть так:

Т.е. если нажата клавиша «стрелка вправо» ( vk_right — это как раз обозначение этой самой клавиши), то x биты прибавит 10 пикселей, а так как ось X в GMS направлена слева-направо , то бита как раз сдвинется вправо. Вот этот код как раз отвечает за прибавление 10 к x: x+=10.

Аналогично для левой стороны. Итак, жмем клавишу для запуска игры, чтобы потестировать. Сделаю оговорку: мы очень часто будем запускать игру для проверки текущего кода, чтобы избежать ошибок на первых порах. Напишем небольшой кусочек, проверим, напишем еще — снова проверим и по такой схеме постоянно. Если возникнет какая-то ошибка, то нам проще будет найти тот участок кода, в котором мы ее допустили.

Протестировали? Хм. Код и правда УЖЕ работает не так, как нам хотелось бы, правда? Т.е. зажав стрелочку вправо, например, бита сдвинется чуть вправо и остановится, пока мы не отожмем клавишу и заново ее не нажмем. Т.е. чтобы нам двигать биту, нам нужно постоянно клацать на клавишу стрелки. Согласитесь, это не очень удобно. Что же мы сделали не так?

Все дело в том, что мы выбрали не совсем нужную нам функцию нажатия клавиши. Их существует три. Давайте подробнее на них остановимся.

  1. keyboard_check_pressed()
  2. keyboard_check_released()
  3. keyboard_check()

С первой фкункцией мы уже познакомились, она срабатывает ровно в тот момент, когда клавишу нажали, т.е. когда клавиша только опустилась. Событие при нажатии сработает соответственно только раз.

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

А вот третья функция будет срабатывать постоянно пока клавиша зажата. Т.е. то, что у нас должно выполниться при нажатии клавиши, по сути будет выполняться каждый шаг.

По умолчанию, GMS2 настроен вроде на 30 шагов в секунду (этот параметр можно будет поменять потом). Т.е. каждую секунду весь код в Step’е будет выполнен от начала до конца аж 30 раз! Соответственно, если мы зажмем и будем не отпускать стрелку вправо при такой функции, то за секунду бита уедет аж на 300 пикселей вправо (30 раз * 10 пикселей сдвиг за шаг).

Меняем код и пробуем:

Теперь не нужно жмякать на стрелочки, чтобы сдвигать биту каждый раз по чуть-чуть, а просто нажимаем клавишу и наслаждаемся «полетом» биты!

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

Теперь бита кажется более плавной. А давайте вообще заменим скорость переменной, чтобы можно было потом в самой игре менять скорость движения биты, например, когда подбираем какой-нибудь бонус. Согласны?

Для этого давайте введем переменную с именем spd , например, которая и будет отвечать за скорость передвижения биты.

Создаем событие Create (так же как мы создавали Step ) и в нем напишем всего одну строчку кода:

А в самом событии шага (Step) чуть изменим код на такой:

Т.е. мы просто цифры заменили именем переменной, а так как она равна 5, то результат при запуске будет тот же. Но в дальнейшем нам это пригодится.

Не люблю повторяться, об этом я писал в прошлых статьях, но тут все таки сделаю исключение. Напомню, что событие Create выполняется лишь раз, в момент создания объекта. Т.е. весь код, что написан в событии Create выполнится лишь раз, в самом начале, в отличии от Step , где он выполняется циклически, т.е. неприрывно.

Делаем столкновения со стеной

Тестируя игру, вы наверное уже заметили, что если доехать битой до стены, то бита продолжит двигаться сквозь стену и уедет за край экрана. Но нас ведь не устраивает такой вариант, верно? Давайте введем дополнительную проверку для ограничения движения биты.

Т.е. что нам нужно сделать? Алгоритм такой:

  1. Проверить нажата ли клавиша вправо
  2. Проверить находится ли бита все еще левее самой крайней стены
  3. Если да, то только в этом случае сдвигаем ее на 5 пикселей вправо

Тоже самое потом проделываем и для левой стороны. Чуть дорабатываем наш код:

Ну, давайте разбираться, что мы тут написали.

Сначала как и прежде первой строкой проверяем нажата ли клавиша «стрелка вправо». И если она нажата, то все, что идет далее между скобок <> будет выполняться, если нет, то код в них просто будет игнорироваться.

А в скобочках у нас еще одно условие (if). Им мы проверяем если x-координата биты меньше значения 891, то можем выпонить код следующий далее в скобках <>. А в нем у нас как раз прибавление координаты x на 5 пикселей, т.е. сдвиг вправо. Таким образом, если у нас x биты меньше 891, то она сдвинется вправо, а если больше или равно, то код в скобках не будет выпоняться, т.е. бита не сдвинется и будет стоять, т.е. как бы упрется в стену.

То же самое для левой стороны, только там условие чуть отличается. Если x больше 67, то бита сдвинется влево на 5 пикселей, если меньше или равно 67, то соответственно нет.

Где я взял эти значения: 67 и 891? Это просто координаты в комнате. Как уже сказал, ось X в GMS идет слева направо. Т.е. самая левая координата комнаты будет равна 0, а самая правая — значению ширины комнаты (которое мы задавали при создании комнаты, т.е. 960 пикселей в нашем случае).

Сетка в комнате у нас идет размером 32 на 32 пикселя. На рисунке я пометил как расположена ось X (ось Y кстати направлена сверху вниз, но об этом потом).

Координата x биты находится в ее центре (помните, при создании спрайта, мы указывали куда расположите его центр (он был отмечен крестиком — так вот там мы как раз определяли, где будет находится x и y координата нашего спрайта/объекта)

Я пометил точки на уровне (64 пикселя и 896), но почему я в условиях поставил не эти цифры? Попробуйте заменить на них и увидете, что бита будет чуть заезжать в стену. Т.е. мы не учитываем еще и скорость, у нас же бита смещается на 5 пикселей, а сетка 32. Т.е. координата ровно не делится. По этому я отнял значение скорости (64+5=69 и 896-5=891). А вот скажем если скорость поменять с 5 на 2, например (в Create поменять код на spd=2), то в условии можно будет оставлять 64 и 896, ведь бита теперь будет смещаться ровно по 2 пикселя, т.е. кратно сетке.

Ну тут нужно немного практики и понимание координатной плоскости и умение считать. Если вы кстати поводите курсором в редакторе комнат по сетке, то увидите координаты комнаты, где расположен курсор, это может вам немного помочь на первых порах понимать координатную плоскость.

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

Пока, пробуйте, эксперментируйте. И не забудьте сохранить своей проект.

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

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

  • Game launcher для windows 10
  • Game killer windows phone
  • Game guardian для windows 10
  • Game for windows live просит ключ
  • Game dvr windows 10 что это такое