Game maker ошибка при компиляции

MusNik

KeeVee Games
GM Pro user
*

Репутация: 733
Offline Offline

Пол: Мужской
Russian Federation Russian Federation

Награды:
3000 сообщений!За постоянность! [200 дней на форуме]За лояльность! [+500 репутации]За отличную игру Rock painting story!За помощь в развитии форума!За отличные статьи по Game Maker!
API: GameMaker Studio 2
Сообщений: 3252

WWW


Когда-то давно меня посещала мысль собрать команду для перевода справки GMS, но сознав, что все ленивые ж вряд ли её соберу, стал потихоньку (очень) переводить её.

Одним из наиболее важных аспектов, я считаю ошибки. Те, которые делают все, и которые далеко не всем понятны. Ниже перевод разделов «Compile Errors» и «Runner Errors» из справки GameMaker: Studio с примечаниями.


Ошибки компиляции

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

Во время создания игры, очень легко забыть объявить переменную, или неправильно использовать переменную, строкового типа, как вещественную и т.д. .. Эти ошибки будут найдены GameMaker: Studio и игра/компиляция остановится. Откроется окно с ошибкой, как и где она была обнаружена, так как показано на изображении ниже:

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

P.S. Также эти ошибки могут показываться в редакторе кода, или в меню «Check all scripts».

>Unknown function or script

>Unable to find script

>Execute script action is not bound to a script

>Failed to parse action_execute_script() — incorrect number of arguments received

>Trying to set a read only variable

>Constant is invalid here

>Malformed … statement

>Keyword Until expected

>If requires a then statement

>Statement in a switch MUST appear after case or default

>Break used without context

>Continue used without context

>Calling a function that needs an instance and no instance is available

>Calling a function that needs an «other» and no «other» is available

>Argument naming error, {n} arguments but no reference found to {a}

>Wrong type of arguments for …

>Division by 0

>Modulo by 0

>Cannot compare arguments

>Symbol … expected

>Assignment operator expected

>Unexpected symbol in expression

>Only 1 or 2 dimensional arrays are supported

>Variable name expected


Ошибки раннера

Здесь вы можете увидеть ошибки, которые могут появится у раннера виртуальной машины

Даже после проверки синтаксиса в редакторе кода, а затем проверки самим компилятором, могут быть ещё случаи, когда что-то может пойти не так. В большинстве случаев это вызовет VM (Virtual Machine) ошибки, которые выглядят так:

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

Примечание: Все ошибки раннера будут пытаться указать на объект или скрипт, который привел к краху.

Преобразования

  • DoConv :: Execution Error. Это означает ошибку в преобразовании одного типа данных в другой.

Прибавление

  • DoAdd :: Execution Error. Что-то пошло не так при использовании сложения (+) в выражении.

Умножение

  • DoMul :: Execution Error. Что-то пошло не так при использовании умножения (*) в выражении.

Вычитание

  • DoSub :: Execution Error. Что-то пошло не так при использовании вычитания (-) в выражении.
  • DoSub :: Execution Engine — Cannot operate on string type. Вы пытаетесь отнять неправильный тип переменных (например ,вычесть строку из вещественного).

Деление

  • DoDiv :: Execution Error. Что-то пошло не так при использовании деления (/ или div) в выражении.
  • DoDiv :: Execution Engine — Cannot operate on string type. Вы пытаетесь разделить неправильный тип переменных (например, разделить строку на вещественное).
  • DoDiv :: Divide by zero. Вы пытаетесь делить на ноль.

Остаток

  • DoMod :: Execution Error. Что-то пошло не так при использовании деления по модулю (mod) в выражении.
  • DoMod :: Execution Engine — Cannot operate on string type. Вы пытаетесь разделить по модулю неправильный тип переменных (например, разделить строку на вещественное).

Побитовое И (AND)

  • DoAnd :: Execution Error. Что-то пошло не так при использовании «&» в выражении.
  • DoAnd :: Execution Engine — Cannot operate on string type. Вы пытаетесь использовать «&» с неправильным типом переменных (например, строку и вещественное).

Побитовое ИЛИ (OR)

  • DoOr :: Execution Error. Что-то пошло не так при использовании «|» в выражении.
  • DoOr :: Execution Engine — Cannot operate on string type. Вы пытаетесь использовать «|» с неправильным типом переменных (например, строку и вещественное).

Побитовое исключающее ИЛИ (XOR)

  • DoXor :: Execution Error. Что-то пошло не так при использовании «^» в выражении.
  • DoXor :: Execution Engine — Cannot operate on string type. Вы пытаетесь использовать «^» с неправильным типом переменных (например, строку и вещественное).

Битовый сдвиг влево

  • DoShl :: Execution Error. Что-то пошло не так при использовании сдвига влево «<<» для величины.
  • DoShl :: Execution Engine — Cannot operate on string type. Вы пытаетесь использовать сдвиг влево с неправильным типом переменных (например, пытаясь «сдвинуть» строку).

Битовый сдвиг вправо

  • DoShr :: Execution Error. Что-то пошло не так при использовании сдвига влево «>>» для величины.
  • DoShr :: Execution Engine — Cannot operate on string type. Вы пытаетесь использовать сдвиг вправо с неправильным типом переменных (например, пытаясь «сдвинуть» строку).

Отрицательные числа (-)

  • DoNeg :: Execution Error. Вы пытаетесь превратить переменную в отрицательную, когда её тип не позволяет проводить такие операции.

Отрицание (not)

  • DoNot :: Execution Error. Вы пытаетесь отрицать переменную, когда её тип не позволяет проводить такие операции.

Stack Push

  • Push :: Execution Error — Variable Index out of range (var). Значение переменной превысило максимальное разрешённое в раннере
  • Push :: Execution Error — Variable Get (var). Данная переменная не определена или неизвестна.

Stack Pop

  • Pop :: Execution Error — Variable Index out of range (var). Значение переменной превысило максимальное разрешённое в раннере
  • Pop :: Execution Error — Variable Get (var). Данная переменная не определена или неизвестна.

With

  • Cannot use global in with statement. Вы пытались использовать глобальные переменные (которые не относятся к какому-либо id экземпляра) с «with» оператором.
  • Cannot use local in with statement.  Вы пытались использовать локальные переменные, помеченные «var», (которые не относятся к какому-либо id экземпляра) с «with» оператором.

Основные

  • DoCall :: Execution Engine type error. Это неизвестная ошибка в виртуальной машине. Вам следует подать отчет о баге если она произойдет
  • Stack Overflow… Переполнение стека происходит, когда слишком много памяти используется при вызове стека и когда игра пытается использовать больше пространства, чем доступно на стеке (то есть, когда он пытается получить доступ к памяти за пределами границ стека, что является по существу переполнением буфера). Стек переполнился, в результате сбоя программы. Перезагрузите компьютер и GameMaker: Studio, и если ошибка не устранится, пожалуйста, свяжитесь с поддержкой и / или сообщите об ошибке (как описано выше).

При написании использовалась справка GMS,
а также тема, об ошибках прошлых версий.
Особые благодарности Hummer и Dmitry.
Спасибо за внимание, МусНик

Game Maker Studio (GMS) — это интегрированная среда разработки (IDE), которая позволяет создавать видеоигры. Однако, при компиляции кода, могут возникать ошибки, которые могут остановить процесс разработки. В этой статье мы рассмотрим часто возникающие ошибки и способы их решения.

Ошибки, связанные с именованием файлов и путями

1. Неверный путь к файлу

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

Для решения этой проблемы необходимо проверить, что путь к файлу указан правильно. При работе с GMS, рекомендуется использовать относительные пути, которые начинаются от папки с проектом.

2. Требуется файл *.gmlc

Еще одна ошибка, связанная с файлами — это отсутствие файла *.gmlc. Файлы *.gmlc являются скомпилированной версией файла *.gml и используются для ускорения процесса компиляции.

Для решения этой проблемы необходимо перекомпилировать файл *.gml с помощью GMS. Для этого нужно нажать правой кнопкой мыши на файле *.gml и выбрать «Compile».

Ошибки, связанные с кодом

1. Недопустимый символ / Вы ввели недопустимое выражение

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

Для решения этой проблемы необходимо внимательно просмотреть код и устранить ошибки. Также можно воспользоваться инструментом «Единый отладчик» (Debug), который позволяет отслеживать все ошибки и искать их местоположение.

2. Ошибка синтаксиса

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

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

3. Ошибка запуска

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

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

Заключение

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

Время от времени я наблюдаю вопросы о проблемах со сборкой любых проектов на GameMaker: Studio, что попадают под одно из двух описаний:

  1. Игра не собирается, редактор выдает «An error occurred, check compile form for more information», но во вкладке «Compile» никакого текста о ошибке нет
  2. Игра собирается, но вместо окна игры появляется окно, просящее выбрать файл:

Причина возникновения данных ошибок предельно проста – битые пути в настройках (меню: File — Preferences):

Интерес представляют «Temp directory», «Asset cache directory», и «Backup directory». Для данных путей есть несколько правил:

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

    Не должны указывать на «защищенные» папки: Аналогично предыдущему пункту, Windows не позволяет случайным программам записывать данные в папку Windows, Program Files (см. UAC), или специфичные папки пользователей.

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

Дополнительно:

  • Если у вас есть SSD, установка TempCache directory на папку на нем может дать заметный прирост в скорости сборки больших проектов (что требуют создания множества временных файлов). Перенос самих проектов на SSD так же может помочь, но не забывайте о резервном копировании или контроле версий.
  • Если вы используете контроль версий (см. выше) для всех важных проектов, отключение автоматического резервного копирования («Enable backup on save», «Enable backup on run/debug/create») так же даст прирост в скорости сборки (копирование всей папки проекта – дело медленное).

Erik

Guest


  • #1

Hi.
I uppdated GameMaker Studio 2 this morning.
I am now at version :
IDE Version : 2.0.4.64
Current Runtime 2.0.3.36

With this update most of my projects stopped working. I have three projects that i am working on and they
all compiled and ran fine. I updated and now none of them compile and run. I don’t get any «Compile Erros» and i don’t get any «Syntax Errors»

In the output i don’t se the usual cmd runner.exe line. It just ends with :

Code:

Stats : GMA : Elapsed=861,6461
Stats : GMA : sp=0,au=0,bk=0,pt=0,sc=0,sh=0,fo=0,tl=0,ob=0,ro=0,da=0,ex=0,ma=2,fm=0x0


C:Windowssystem32cmd.exe exited with non-zero status (1)
elapsed time 00:00:03.0651921s for command "C:ProgramData/GameMakerStudio2/Cache/runtimesruntime-2.0.3.36/bin/Igor.exe" -options="C:UsersnoldorAppDataLocalTempGameMakerStudio2build.bff"  -- Windows Run started at 01/28/2017 14:52:34
FAILED : Run Program Complete

The only thing i can find in the output that looks wrong is this :

Code:

Reading project file....C:UsersnoldorDocumentsGameMakerStudio2gamegame
Reading project file....C:ProgramDataGameMakerStudio2Cacheruntimesruntime-2.0.3.36BaseProject
System.Collections.Generic.KeyNotFoundException: The given key was not present in the dictionary.
   at System.ThrowHelper.ThrowKeyNotFoundException()
   at System.Collections.Generic.Dictionary`2.get_Item(TKey key)
   at ..(String , String , Guid , Dictionary`2 )
   at ..(String , List`1 )
   at ..(String , Dictionary`2 )
   at ..(JsonTextReader , String , Boolean )
finished.

Has someone else had this problem since the update?
Is there any known solution to this problem?

Erik

Guest


  • #2

This problem was resolved by downgrading to an older version of GameMaker Studio 2 and then uppgrading again.
I hope this helps other people who has encountered this problem. :)

Thanks for the time of anyone who has read this post. :)

  • #3

FWIW, this worked for me too (IDE version 2.0.4.65 and runtime version 2.0.4.42). Though I didn’t revert or downgrade. I just uninstalled/reinstalled.

Qaletaqa Thorson

Guest


  • #4

I tried this and it didn’t work for me, please help me

Here is the complete error message:

Saving project to: F:CollegeJoe DewareGame Maker StuffFlappy Bird CloneFlappy Bird Clone.yyp
«C:ProgramDataGameMakerStudio2Cacheruntimesruntime-2.1.0.144/bin/Igor.exe» -options=»F:CollegeJoe DewareGame Maker StuffGMS2TEMPbuild.bff» — Windows Run

Loaded Macros from F:CollegeJoe DewareGame Maker StuffGMS2CACHEFlappy Bir_2FBDB1B0_2D88FF49macros.json
Options: C:ProgramDataGameMakerStudio2Cacheruntimesruntime-2.1.0.144binplatform_setting_defaults.json
Options: C:UsersJoedAppDataRoaming/GameMakerStudio215027827_1352239local_settings.json
Options: F:CollegeJoe DewareGame Maker StuffGMS2CACHEFlappy Bir_2FBDB1B0_2D88FF49targetoptions.json
C:ProgramDataGameMakerStudio2Cacheruntimesruntime-2.1.0.144/bin/GMAssetCompiler.exe /c /zpex /mv=1 /iv=0 /rv=0 /bv=0 /j=8 /gn=»Flappy Bird Clone» /td=»F:CollegeJoe DewareGame Maker StuffGMS2TEMP» /cd=»F:CollegeJoe DewareGame Maker StuffGMS2CACHEFlappy Bir_2FBDB1B0_2D88FF49″ /zpuf=»C:UsersJoedAppDataRoaming/GameMakerStudio215027827_1352239″ /m=windows /tgt=64 /nodnd /cfg=default /o=»F:CollegeJoe DewareGame Maker StuffGMS2TEMPFlappy Bird Clone_2664CC76_VM» /sh=True /optionsini=»F:CollegeJoe DewareGame Maker StuffGMS2TEMPFlappy Bird Clone_2664CC76_VMoptions.ini» /cvm /baseproject=»C:ProgramDataGameMakerStudio2Cacheruntimesruntime-2.1.0.144BaseProjectBaseProject.yyp» «F:CollegeJoe DewareGame Maker StuffFlappy Bird CloneFlappy Bird Clone.yyp» /preprocess=»F:CollegeJoe DewareGame Maker StuffGMS2CACHEFlappy Bir_2FBDB1B0_2D88FF49″
Reading project file….F:CollegeJoe DewareGame Maker StuffFlappy Bird Clone
Reading project file….C:ProgramDataGameMakerStudio2Cacheruntimesruntime-2.1.0.144BaseProject
Reading config delta ‘F:CollegeJoe DewareGame Maker StuffFlappy Bird Cloneoptionsmaininheritedoptions_main.inherited.yy’
finished.

C:ProgramDataGameMakerStudio2Cacheruntimesruntime-2.1.0.144/bin/GMAssetCompiler.exe DONE (0)
Release build
OptionsIni
Options: F:CollegeJoe DewareGame Maker StuffGMS2CACHEFlappy Bir_2FBDB1B0_2D88FF49PlatformOptions.json
[Compile] Run asset compiler
C:Windowssystem32cmd.exe /c «»C:ProgramDataGameMakerStudio2Cacheruntimesruntime-2.1.0.144/bin/GMAssetCompiler.exe» /c /zpex /mv=1 /iv=0 /rv=0 /bv=0 /j=8 /gn=»Flappy Bird Clone» /td=»F:CollegeJoe DewareGame Maker StuffGMS2TEMP» /cd=»F:CollegeJoe DewareGame Maker StuffGMS2CACHEFlappy Bir_2FBDB1B0_2D88FF49″ /zpuf=»C:UsersJoedAppDataRoaming/GameMakerStudio215027827_1352239″ /m=windows /tgt=64 /nodnd /cfg=default /o=»F:CollegeJoe DewareGame Maker StuffGMS2TEMPFlappy Bird Clone_2664CC76_VM» /sh=True /optionsini=»F:CollegeJoe DewareGame Maker StuffGMS2TEMPFlappy Bird Clone_2664CC76_VMoptions.ini» /cvm /baseproject=»C:ProgramDataGameMakerStudio2Cacheruntimesruntime-2.1.0.144BaseProjectBaseProject.yyp» «F:CollegeJoe DewareGame Maker StuffFlappy Bird CloneFlappy Bird Clone.yyp» /bt=run»
Reading project file….F:CollegeJoe DewareGame Maker StuffFlappy Bird Clone
Reading project file….C:ProgramDataGameMakerStudio2Cacheruntimesruntime-2.1.0.144BaseProject
Reading config delta ‘F:CollegeJoe DewareGame Maker StuffFlappy Bird Cloneoptionsmaininheritedoptions_main.inherited.yy’
finished.
Compile Constants…finished.
Remove DnD…finished.
Compile Scripts…finished.
Compile Objects…finished.
Compile Timelines…finished.
Compile Triggers…finished.
Compile Rooms…finished.
Compile Extensions…finished.
Global scripts…finished.
Final Compile…finished.
Saving IFF file… F:CollegeJoe DewareGame Maker StuffGMS2TEMPFlappy Bird Clone_2664CC76_VMFlappy Bird Clone.win
Writing Chunk… GEN8
option_game_speed=30
Writing Chunk… OPTN
Writing Chunk… LANG
Writing Chunk… EXTN
Writing Chunk… SOND
Writing Chunk… AGRP
Writing Chunk… SPRT
Writing Chunk… BGND
Writing Chunk… PATH
Writing Chunk… SCPT
Writing Chunk… GLOB
Writing Chunk… SHDR
Writing Chunk… FONT
Writing Chunk… TMLN
Writing Chunk… OBJT
Writing Chunk… ROOM
Error : Could not find any rooms in the project — could be caused by project file corruption (check for errors on project load)
Writing Chunk… DAFL
Writing Chunk… EMBI
Writing Chunk… TPAGE
Writing Chunk… CODE
Writing Chunk… VARI
Writing Chunk… FUNC
Writing Chunk… STRG
Writing Chunk… TXTR
Writing Chunk… AUDO
Writing Chunk… SCPT
Writing Chunk… DBGI
Writing Chunk… INST
Writing Chunk… LOCL
Writing Chunk… STRG
Stats : GMA : Elapsed=721.0413
Stats : GMA : sp=0,au=0,bk=0,pt=0,sc=0,sh=0,fo=0,tl=0,ob=0,ro=0,da=0,ex=0,ma=2,fm=0x0

C:Windowssystem32cmd.exe exited with non-zero status (1)
elapsed time 00:00:03.9952285s for command «C:ProgramDataGameMakerStudio2Cacheruntimesruntime-2.1.0.144/bin/Igor.exe» -options=»F:CollegeJoe DewareGame Maker StuffGMS2TEMPbuild.bff» — Windows Run started at 09/20/2017 00:56:46
FAILED: Run Program Complete

  • #5

So the fact that you have no rooms in your game is not the problem?

Writing Chunk… ROOM
Error : Could not find any rooms in the project — could be caused by project file corruption (check for errors on project load)

You also should probably be starting your own topic as your error looks nothing like the one the OP was getting, so there is a good chance that it isn’t anything related to it.

I’ve found this error while I’m compiling my program as an Android apk in GameMaker: Studio Pro (v1.4.1567)

 BUILD FAILED
 C:Program FilesAndroid_SDKtoolsantbuild.xml:649: The following error occurred while executing this line:
 C:Program FilesAndroid_SDKtoolsantbuild.xml:694: null returned: 1

How do I fix this? The Android SDK that I’m using is:

Android 3.2 (API 13). 

I know it’s obsolete but that is what GameMaker needs. And the NDK:

android-ndk-r10e 

If that helps, Thanks!

asked Jul 25, 2015 at 9:20

Glynn Bacanto's user avatar

1

After checking a few things I discovered that 1.4.1567 is the #1 most pirated version of GM:S right now. I’m not accusing you of illegally obtaining Game Maker Studio, but that’s the most likely explanation for your problems. If it happens to just be a coincidence and you actually bought it, just update to 1.4.1598 as @Dmi7ry suggested to see if that fixes your problems.

answered Jul 26, 2015 at 19:07

Timtech's user avatar

TimtechTimtech

1,2242 gold badges19 silver badges30 bronze badges

2

Понравилась статья? Поделить с друзьями:
  • Galaxy on fire 3 ошибка подключения к серверу
  • Galaxy gl3057 ошибка e0
  • Galaxy gl3053 ошибка e0
  • Galatec стиральная машина коды ошибок
  • Galanz коды ошибок кондиционера galanz