Моя ненависть к ГМС

Цех имени DarkDes'а

Собственно заголовок должен сказать обо всём. Это не какой-то пост с идеями или прочим — просто мне хочется «выкрикнуть в окно» накопившиеся facepalm относительно ГМС. Да, я могу быть не вправ и всякое такое. В правильных руках можно хоть на чём делать игры. Но давайте таки говорить о очень-авторских-не-про людях.

И так. Это, как говорится «мой бложик» — и пост пишу по большей части для себя, но и для вас, мимо проходящий байт трафика с набором символов.

Не знаю, нумеровать ли то, о чём хочу писать, но потом если что отредактирую.

Текстурный атлас.


Вот для многих, скорее всего, это значения не имеет, а некоторые и в голову не берут. Но тут подстава от ГМС это нечто. Ладно, если все ваши графические ресурсы загружаются через IDE, то можете пропустить этот блок. Тут только тем, кто загружает «из вне». А загружать из вне есть несколько причин:
1. внешний ресурс позволяет заменять игровую графику и это более удобный способ при активной разработке (художник например дорисовывает ассеты)
2. снижается скорость компиляции.

Если ваш проект и так быстро компилируется и вы спрашиваете «ты что, не можешь 5 секунд подождать?», а теперь возьмите проект больше, чем ЗлыеПтицы и не пиксель-арт. Взертос от графо-ресурсов компилируется несколько минут — тут чай успеешь заварить! И это при том, что большую часть тяжелой графики таки теперь вне самой игры.

И вот теперь самое интересное, чем ГМС в этом плане меня удивил — он, ска, каждый кадр грузит как отдельную текстуру. При этом, он вполне умеет в текстурные атласы на момент компиляции. Ладно, сборку атласа «на лету» я могу ему простить — сам не знаю как это сделать, вот и не выёживаюсь, но когда ты подаёшь файл-стрип с анимацией (36 кадров), а он делит их на отдельные текстуры… ну это жесть так-то! Может быть, конечно, это какая-то хитрая система «чтобы запустилось на тостере», где максимальный размер текстур 128х128, НО серьёзно? В добавок к этому он конечно же не даёт ничего настроить, ой, погодите — даёт, но в ПРО версии т.е. YoYoGames намеренно не просто режут функционал, но и вообще делают его хуже для фришной версии. Всё верно — надо ведь как-то зарабатывать, но по неподтверждённым данным оказывается, что в ПРО версии ГМС таки может налету собирать текстурные атласы. Проблемы, жалкий индюк без финансов?!

Ну вот эту функцию старую возьмём, а вот эту перепишем. А что с этой делать? Да и так сойдёт!


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

И вот какая ситуация возникла — стали спрайты пропадать, которые грузил через IDE. «Неслыханное действо!» — подумал я. Не может же ГМС удалять свои «системные» спрайты! Что это такое?! Ведь через sprite_replace он не даёт заменять именно эти же спрайты. Явно что-то не так! Ой, не так же что-то!

Как потом оказалось, дело было в одном условие, которые задевало индексы загруженных IDE спрайтов. Но вы только послушайте — ладно мои кривые руки, но кривые логические руки ЙоЙо? Почему можно удалять IDE-спрайт, но не заменить его? Где логика вообще? Запретили бы тогда и удаление «системных», но ведь нет! Пусть одна функция работает так, другая так, ну а треться и так сойдёт!

Я твой символ в цифровой ад ссылал.

Вот эта проблема появилась недавно (пятница, 19 августа 2016). И это подстава, которой пока нет равных. И опять же всё дело в деталях т.к. обычный новоиспечённый разработчик не узнает об этом.

Короче. Как всегда делаю Взертоса и опять тут какая-то бага, которая чуть ли не ставит крупный крест. Ну ладно, без этой штуки можно обойтись, наверно так и поступлю, но ...
Знаете ведь, что в ГМ символ "#" означает перевод на новую строку? Короче как "\n" в Си и ему подобных. Так вот. Всё отлично — пишу во внешнем файле локализации строку, где был этот символ и всё должно быть ок, но… НЕТ. Вернее не так. ГМСу-то Ок конечно — там действительно показывается перенос строки, да вот только он эту строку ломает полностью.

Ну и что я решил? Провести исследование и заодно заменять # на нормальный \n — в файле пишу \n и он заменяется на #. Проверяю дебагером и консолью — всё окей, в строке есть символ решётки. Рисую текст. ПРОПАЛ. Нет символа. Смотрю опять в дебаг — в начале символ был, потом нет, значит теряется где-то. Окей. Иду по горячим следам. Уже чуть ли не через строчку идёт дебаг в консоль и… нахожу точку потери, вернее скрипт. И это становится интереснее, моя уверенность, что это моих рук дело становится 80%… но после проверки деббагером… ВОТ.ЭТО.РЕАЛЬНО.ЖЕСТЬ. Скажите, ну это нормально? А, самое главное-то — в чём проблема была. Оказывается функция string_width_ext берёт и съедает куда-то мой символ перевода строки! Вот серьёзно что ли? При этом он переводит его в какой-то свой символ. Очевидно байтовый и тот самый '\n'.

Собственно проблему не решил.


Мы будем строить из себя очень профессиональную IDE

Как иначе, если не этим высказыванием-заголовком оправдать то, что с ГМС невозможно сделать быстрый тест? Замечу, что такое было возможно в ГМ8.1 — открываешь IDE и можешь сразу сделать какой-нибудь быстрый проект для тестирования чего-либо (ибо с ГМС приходится тестировать чуть ли не стандартные функции, ой, вернее так и приходится). И что же нас ждёт в очень ПРОдвинутом IDE от GM:S? Конечно же непонятная лажа-заставка с «играть» или «делать». На самом деле тут у меня случается логический сбой и никак не могу оправдать от чего они так сделали. game MAKER и PLAY ?! Щато?! Ладно бы отдельным лаунчером или там в Стиме через пункт выбора (такое есть в некотрых играх). Это целый лишний клик. Для кого-то это просто адская придирка на ровном месте. Но после 1000+ часов и запуска каждый день вы измените своё мнение.

Далее продолжение во всех смыслах — дальше нам предлагают «открыть недавний проект», наверно разработчики не знали, что в программах есть такой пункт как «file -> Recent» (забавно, что в ГМС он таки тоже есть). Но ведь нет — надо подражать крутымIDE, где сделано аналогично. Хорошо, не буду спорить, что простым списком недавних проектов удобнее. Но в этом лаунчере 100500 пространства занимает чёртова реклама!

Дальше то, с чего я начал негодование этого пункта — нельзя просто взять и запустить IDE без создания проекта. Я не хочу ничего создавать и терять 14мс! Хочу открыть IDE, проверить если не фичу, то просто исправность работы и закрыть этот проект.
А теперь подумаем как работает ГМС — он создаёт папки и файлы во временной директории. Сейвы игр(это будет отдельная тема) он тоже хранит не пойми где. И вот собственно что мешало им поступить аналогично и «сохранять» проект в какой-нибудь временной папке? Ну что за IDE.

Более того. Кто-нибудь наверно натыкался на кнопку New IDE в самом IDE. И казалось бы по логике «О! оно откроет мне отдельную новую __IDE__», но на деле… опять пере открывает сам себя и просит создать проект или выбрать существующий.

Это чёртова мелочь и очень-профессионалы-которыми-забита-инди-индустрия конечно нормально могут работать с ГМС.

 

Активировал активировал да не доактивировал.

На самом деле уже было начал писать этот раздел. Но потом решил всё перепроверить и оказалось всё чуть иначе. Потом (через день) таки создал отдельный проект только чтобы написать там 7 строчек ...

И о ужас. Вот это реальная подстава. Ненавижу ГМС. Главное деактивация, кажется, происходит как и нужно — в момент вызова instance_desactivate. Окей. Теперь сделаем АКТИВАЦИЮ и что видим? <Тут был мат, но СедКрад его вырезал>! СЕРЬЁЗНО!??! У МЕНЯ СКОРО ЩИЗА БУДЕТ ОТ ГМС.
Слушайте люди, которые выбирают движок — не берите <опять мат>-ый ГМС! НИКОГДА ВООБЩЕ.

Он не может работать нормально даже в рамках одного «блока» логичного.
Вот допустим смотрите на такую штуку:

И вот вам вопрос: чему будет равна переменная C1, C2, K и М?
Данные такие: всего объектов 200, в том указанном прямоугольнике в среднем получается 6-10, главное что оно меньше 200. Жду ваши ответы и предположения по этому поводу. Отвечаю — результат меня просто вывел из равновесия.

Собственно к чему я так дерзко начал об этих активациях и деактивациях? Мало кто вообще их наверно использует.
Так вот открою вам завесу тайны — хотел я значит использовать их для оптимизации т.к. на Атоме жутко тормозил Взертос. И что? И добавил я на мобов это дело — ФПС повысился и я даже порадоваться успел. Добавил ещё на некоторые объекты, которые вообще не нужны вне зоны видимости — ФПС должен был ещё больше стать, но он наоборот упал (но всё равно больше, чем без оптимизации). Ну и начал смотреть… и СЕЙВЫ СЛОМАЛИСЬ, <опять СэдКрад вырезает>!!! И я такой непонимаю — от чего это оно? Скажу сразу — я учёл активацию и деактивацию _ПО ВСЕЙ МИРОВОЙ ЛОГИКЕ 13 ВСЛЕННЫХ_, но у разрабов ГМС похоже вообще другая Вселенная коли «работает» оно так.

 

Всё ради безопасности юзера! Но ведь не удобно жуть! РАДИ БИЗОПИСНОСТИ!!111

Вот честно признаюсь — не могу понять от чего ЙоЙо решили так сделать — чтобы уподобиться Андроидам? Или может «безопасность». Думаю вы знаете как ГМС даёт доступ к файловой системе. Ой, не даёт ни##я. Тебе будет выделено место где-то на конце цифрового мира и как до него добираться юзеру (если вдруг) — «не наша проблемамана», при том, что реально обычный пользователь, который может ПК запускает только поиграть или не осведомлённый в ОС не сможет добраться до туда, а от чего? Да потому что папка-то скрытая! Ахахах! Ладно. Эта папка «системная» и туда другие программы сохраняют некоторый свой мусор. И да, это папка не «Мои документы» — ладно бы было так. Хотя я всё равно бы ворчал.

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

Теперь (на самом деле узнал-то раньше) во время тестирования через IDE есть очень крутая тема. Мало того, что сейвы сами по себе находятся у чёрта на куличках, ТАК ЕЩЁ И САМ ТЕСТ БИЛД в какой-то, извиняюсь, заднице. Вот буквально:

«C:\Users\DesPC\AppData\Local\Temp\gm_ttt_18563\gm_ttt_41736\Vzertos_01D.win»

Не буду бухтеть по поводу C\Users\итд\Local\Temp. Хотя это тупо. НО ВОТ ДАЛЬШЕ ТО НУУУ!!! При этом до темпа вы можете в настройках заменить — это норм. НО ВОТ ДАЛЬШЕ. Серьёзно? Ему надо две папки _КАЖДЫЙ ЗАПУСК_ менять? Т.е. имени не достаточно? ВОТ РЕАЛЬНО!? Ладно, предположим мы делаем ММО на ГМС (АХХАХАХА) на 100500 клиентов и запускаем их. Имеет смысл… имеет смысл только одна папка, да и то <project_name>_<номер запущенного приложения>.

Но погодите. Что мне там подсказывают из зала? Ах точно! Чуть не забыл! В ГМС вы можете запустить ТОЛЬКО ОДИН ЭКЗЕМПЛЯР игры! Это вам не ГМ8! И давайте ещё дальше. Даже сейвы идут через такую убогую дирикторию. Или нет. Не знаю как оно работает (странно, что вообще работает), но по всей логике, если севый sandboxed по определённой директории (примерно вот по аналогично пути, только вместо Temp там уже имя проекта и это является корнем).

Так вот. По логике. Даже из такого уродского пути оно должно сохранять в путь сейвов игры. И смотря по дате изменения файлов (и появления их в реальном времени) — вроде так оно и происходит. ИЛИ НЕТ! Т.к. я вывожу в консоль сообщение о пути сейв-файла — и там этот бред с TTT. О КОНСОЛЬ — о ней пару слов — скопировать оттуда текста тупо нереально. Знаете сколько я копировал текст вот того пути? Раз 10 нажал Ctrl+C! СЕРЬЁЗНО! Оно тупо не может в копирование нормально. Это пять, ЙоЙО!

К чему меня прорвало-то сейчас? Коли об этом я знал ещё на момент первых сейвов — в Земе Овлене. Да просто опять от вины ГМС у меня сейвы не стали работать. Вот взяли и не стали работать — там я ничего не менял, дня два назад работали, а сейчас? Спасибо ГМС!

Может дело в кол-ве символов пути? Может это так. А может ГМС слишком глючный или мог бы сделать нормальный путь к временным данным. Мог бы вообще как директорию брать папку с самим проектом. Или типа того.

Да, привыкнуть можно. Можно смириться и даже не замечать как ГМС имеет тебя.

И чуть не забыл. Если вы хоть раз запускали игру на ГМС, а уж тем более они имеет сейвы — прошу не удивляться тому, что у вас пропало место на диске C. Т.к. эти данные вы не сможете удалить, если не знаете, что они там есть. А ГМС очень любит делать кэш ачивок, ДАЖЕ ЕСЛИ В ИГРЕ ИХ ТУПО НЕТ. ГМС заботится о вас.

 

----

Небольшой пункт, который не имеет отношения к багам ГМС (или имеет), скорее к АБФП.

Нацеленный на Стим я со своим Взертосом иду через круги ада, никак проще это я назвать не могу. И казалось бы, что этого вполне достаточно, чтобы боги игростроя насытились моею кровью и потом, НО нет — им нужно было ещё.

Совсем позабыл собственно о главном (Стиме), пиля днём и ночью эту игру. Собственно SteamAppID и SteamAPI, но я-то знаю, что ID получаешь только после прохода гринлайта и всякое такое, да и SDK и API до этого не нужен. А уж имея интеграцию ГМС и Стима казалось бы это лафа, но… вылетело из моей головы посмотреть как оно там и конечно какой это был удар (хотя это очевидно и для ЙоЙо логично) — только в ПРО версии ты можешь ачивки и прочую лабуду добавить, не знаю как с карточками этими <Вырезано>ыми, но по сути SteamAPI доступен только в Про версии.

Конечно повезло тем, кто урвал Про версию «за дёшево», но ради интереса я пошёл посмотреть сколько оно стоит… более 2.5к рублей? СЕРЬЁЗНО!?! Этот кусок глючного кода и 1к не стоит!

Моё негодование, гнев и прочие эмоции так перемешались, что я реально уже готов просто взять и выкинуть это всё (вместе с собой) в окно <вырезано>уй!

Вот чем был бы хорош движок свой? Я бы не стал зависеть от каких-то там ЙоЙо-ХуёХуё и просто сделал бы обёртку SteamAPI.
Тут на гринлайтопропуск собирал букча знает сколько, а тут такая лажа.

Пост про ненависть превращается просто в пост про нытьё и я этого не скрываю — это капец как долго копилось во мне. <Вырезано>уй ваш ГМС. Уверен и с Юнити и прочими выбросами аналогичная <вырезано>я происходит.

----

Тут скорее будут ещё проблемы, о которых вспомню. Но это потом скорее всего. Много опасностей таит в себе ГМС. Ой как много. Конечно с ними столкнуться те, кто делает большие проекты. Или кто хочет какие-то особые штуки реализовать.

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

Похожие статьи

129 комментариев
Xitilon

Да, я могу быть не врав и всякое такое.

По-моему ты весь пост написал не врав, и знаешь, хорошо вышло.

для вас, мимо проходящий байт трафика с набором символов.

Ты чё, совсем заиндевел, Взертос ДесКрадов? А ЖАРЕНЫЙ ГИГАБАЙТ НЕ ХОЧЕШЬ?! 
теперь возьмите проект больше, чем ЗлыеПтицы
Кстати вторая часть ОЧЕНЬ нагружена графоном, там часть рендерится в 3Д и долгие загрузки между разными экранами.
DarkDes

Да, я могу быть не врав и всякое такое.

Да и так сойдёёёёт!

По-моему ты весь пост написал не врав, и знаешь, хорошо вышло.

Не знаю что получилось забавнее — то, что я действительно «не врал» или то, как эта опечатка заставила тебя указать на эту ошибку, которая логически не является ошибкой. ВОТ ЭТО Я ПОНИМАЮ ИНДЯ!

Шутку про гвозди гигабайты оценил!

Вот про вторую ничего не знаю — не играл. Первая же (возможно, таки даже сааамая первая версия, а то думаю они допиливали её со временем) точно была очень простой. Настолько простой, что даже в примерах ГМС есть игра-аналог — Злые Кошки что ли называется, не помню.

Xitilon
 в примерах ГМС есть игра-аналог — Злые Кошки что ли называется, не помню.
ЩАТО?!?!!?!?71?!7
DarkDes

Ну да, думал ты знал об этом. Там есть свои Злые Птицы, странно, что Флэппи Бёрд нет.

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

Rs11
вообще у гмс с # мистикак какаято просходит…
DarkDes

Ты про перенос строки?

Это-то вполне. Хотя я не помню какая реакция на ## — либо символ "#" или же двойной перевод строки (скорее всего первое).

DarkDes
Добавил пункт

Мы будем строить из себя очень профессиональную IDE

DarkDes

Добавил пункт

Активировал активировал да не доактивировал.

+ немного там под конец ещё больше негодования.

Xitilon
Дальше то, с чего я начал негодование этого пункта — нельзя просто взять и запустить IDE без создания проекта.
Кстати тоже очень бесит. Всегда бесило. Дошло до того что я создал ОДИН тестовый проект который открываю чтобы тестировать там то что нужно, и потом забывать об этом. Но зато не создавать новый проект на какую-то мелочь каждый раз. Только это я даже в ГМС не делаю ни одну игру! А если бы делал? Ваще ХЗ!
 
АБФП
Эт што?
 
доактевировал
Ошибочка закралась.
 

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

Но я не могу сказать что разделяю именно «обвинительный» мотив твоего поста — да, ГМС очень, очень, очень далёк от того чтобы его назвать панацеей и «серебряной пулей», но — он напрямую и не обещан как работающий из коробки во всех направлениях. Я даже припоминаю текст лицензии, говорящий об так называемом «no guarantee of fitness for a particular purpose», то есть производители этого софта не только не несут ответственности за использование этого продукта (GM:Studio то бишь), но и не обещают что он в принципе подойдёт. То есть, получается, выживешь — молодец, но мы этого не обещали! Иначе к ним бы полилась куча претензий и, вероятно, несколько (десятков?) судебных исков. И на их месте я сделал бы точно так же. GM:Studio — сложноватая прога, её тяжело поддерживать.

Так вот, зная такую штуку, нет смысла ожидать что оно будет работать подходяще хоть в одном нюансе. Вообще в принципе. Звучит парадоксально, не так ли? Типа, вот прога, купите её за 200$ или на распродаже за поменьше, а мы ничего не гарантируем и крутитесь как хотите. Однако, юридически… всё так и есть. По-моему даже с официальной MS Visual Studio тоже так. Это состояние «на отъебись» много какого современного софта вообще. Не говорю про Фотошопы, я именно про девелоперские инструменты. Так чтооо… Переругал ты ГМС, но и твою задолбанность тоже понимаю. То есть, стоя на месте ЙоЙо, я задолбался бы, и стоя на твоём месте, тоже. Хотя лол, мне хватает и своих проблем с КонЯми2!

 
Уверен и с Юнити и прочими выбросами аналогичная <вырезано>я происходит.
Ну и ээээ… тут нечего добавить! Ибо так и есть.
DarkDes

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

АБФП

Эт што?
Авторы без финансовой поддержки — олдовая ИНДЯ короче. Точно. Хорошо, что напомнил — надо будет создать новый пост… погоди, да он же уже есть!
 
Ошибочка закралась.
Ага. А может это такая задумка? Я ХУДОЖНИК Я ТАК ВИЖУ Но вообще конечно да.

Не, это-то я понимаю. Поддержка и всякое такое, никакой ответственности, что «вы скачаете ГМС и сделаете крайзис3 за 4 дня!». Тут дело немного в другом. Оно собственно не даёт того _базового_, что уже наверно с первых версий идёт. Я же не имею претензий к новым функциям — инстанс это вроде вообще основные, но они не работают по логике.
Вот что мне с того, что там один шаг? В смысле сделайте тогда Sleep на один шаг, или остановку или ещё хоть что-нибудь — какого фига функция не отрабатывает в конкретный момент то, что нужно.
Теперь я даже понимаю от чего мой изначальный метод нанесения урона в ближнем бою не работал — как раз там я использовал вот эти активации. Пришлось просто на with переписать и попрощаться с оптимизацией.

Да не то слово как я задолбался! Это даже мягко сказано. Ну и в Вики прочитал, что у ЙоЙо дела не круто идут — от этого и понятно, что поддержки ГМС как таковой нет или не видно вообще — раньше помню были какие-то обновления, а теперь? Печально это короче.
 
Переругал ты ГМС
На самом деле нет — я ещё ведь про сохранения не сказал
И ещё одну «фичу» связанную с сохранениями и их результатом. А потом удивляешься «а чего это места на диске С нет? я же ничего не ставил!»
 
Ну и ээээ… тут нечего добавить! Ибо так и есть.
Вот поэтому я только за свой движок. Не читай это как «свой крутой и уделывающий юнити и гмс!111», а читай как «более независимый от других людей, заточенный под определённые игры».
Собственно даже сейчас можно было бы составлять такие пункты типа «вот это мне надо, а вот это нет. А вот это у них вообще не работает» и тем самым выработались требования _реальные_ для разработки. Т.е. если бы я был настолько безумен и решил бы сделать «свой гейммейкер с блэкджеком», то некоторые основные вещи сделал бы вообще иначе. Мне пофиг на эти всякие мобилки — на них игр нет и не будет никогда, всё что я вижу — это Винда да Линукс, даже на МакОс вполне бы забил.
Так что эта новомодная «кроссплатформенность!111» вообще не нужна. Ну только если вы-уже-не-инди и идёте на ПС4 какую-нибудь обкладываться контрактами и договорами — вот там-то индя как идея умирает, лол.
Xitilon
Теперь я даже понимаю от чего мой изначальный метод нанесения урона в ближнем бою не работал — как раз там я использовал вот эти активации. Пришлось просто на with переписать и попрощаться с оптимизацией.
Чё-т я не врубил — ты использовал активацию и деактивацию для объектов БЛИЖНЕГО БОЯ, которые точно находятся на экране? Зачем???
А про фичи с сейвами расскажи тоже, ага.
Мне пофиг на эти всякие мобилки — на них игр нет и не будет никогда, всё что я вижу — это Винда да Линукс, даже на МакОс вполне бы забил.
Золотые слова. Жаль, Линуксоиды на них обидятся. Ой, погоди… Яблочники! (хотя на Маке на самом деле больше игр… или нет? интуитивно кажется что да)
DarkDes
В самой первой версии я планировал сделать через деактивацию всех мобов, потом включения их в радиусе поражения, чтобы «нанести им урон» — вот допустим у тебя 80 мобов на карте и ты по всем проходил чтоль? (сейчас так и получается, спасибо ГМС). А там вообще-то вычисление расстояния, что как бы тяжко для ГМС-а.

Суть была в момент удара просто отбросить тех, кто дальше, а тех кто в радиусе принимать в расчёт урона.

Это было задолго до новой оптимизации мобов. И тепер, если кто-то спросит меня «а чего это ты мобов не сохраняешь? А то надоело каждый раз их убивать!», то на это у меня есть аж 3(три) ответа: 1. Вы тупо можете их пробежать, лол,  2. Спасибо ГМС за это, 3. Так было в ДаркСоус и ничего — хайпят и хвалят за божественный геймдизайн.

которые точно находятся на экране? Зачем???

А теперь скажи мне как получить список объектов, которые находятся ТОЛЬКО на экране. Важный момент — список объектОВ, а не один.

Да, про сейвы расскажу. Только в каком формате? Ещё один пункт ненависти и\или может про устройство в Взертосе поведать? Может интересно будет кому.


Не знаю про игры на Маке, но оно само себя позиционирует как «это очень модные и молодёжные ноутбуки и ПК для ПРОфессионалов и работы, мэн!» — вот и пусть сидят без игр. Хотя они там есть. А в силу того, что Стим пытается двигать Линукс в плане игр — МакОСь только проиграет когда-нибудь. Забавно, что ведь у линуха и Мака одно ядро? Или ядро-отец один, Unix вроде. Короче портануть с Линуха на МакОсь думаю проще, чем с Винда на что-то вот из них. Только как всегда у Яблока там всё через регистрацию наверно будет, не знаю.
Xitilon

Суть была в момент удара просто отбросить тех, кто дальше, а тех кто в радиусе принимать в расчёт урона.

Так для этого деактивации не нужны. Где-то на gmlscripts.com я видел скрипт как раз для подобных ситуаций. Но уже лень искать, да и тебе скорее всего будет лень, но чесслово был такой.

А теперь скажи мне как получить список объектов, которые находятся ТОЛЬКО на экране. Важный момент — список объектОВ, а не один.

Написать кастомный скрипт, а потом кастомно его использовать, как ж ещё… Что скажешь насчёт такого?

on_screen_objects=0
on_screen_object[0]=noone
with obj { if x>view_xview[0] && x<view_xview[0]+view_wview[0] && ...y/h... on_screen_object[on_screen_objects]=id }

on_screen_objects после этого будет равен количеству, а массив on_screen_object будет самим массивом собственно. Ну можешь просто список сделать на лету. Так же и с расстояниями.

Про формат не знаю, тебе видней. Про Мак- в самую точку.

Я уже так устал, что мне показалось что мой комментарий появился уже прямо с зелёным +1 к нему.

DarkDes

Где-то на gmlscripts.com

with obj

Всё с тобой ясно

Как раз про это я и писал. В смысле скрипт урона. Там надо было отключать 100500 мобов, чтобы проходится через with только по 10, например. А потом я удивлялся от чего Stealth Inc 2 так тормозит, хотя сделан на ГМ(С?) и при этом 2Д — там тоже автор не думал об оптимизации, лол. Не удивлюсь, если весь уровень рисуется и всё обрабатывается, лол.

Вот поэтому я себе на бумажке даже записал — в своём движке сделать что-то вроде get_object_in_radius или типа того. Вроде в Юнити это решается через костыль с коллизией, что вообще правильно или нет — название не нравится. Хочу get_list.

on_screen_objects=0
on_screen_object[0]=noone

on_screen_objects после этого будет равен количеству

Ничему ты не научился у мастера ГМС!!11 Можно в один массив зафигачить, где элемент-0 — это кол-во элементов в нём. Офигительный метод кстати, назвал это Паскаль-Массивом по аналогии с Паскальной-Строкой, хотя знаю, что там массивы как у людей нормальных, но я НЕ КАК ВсЕ!

Я уже так устал, что мне показалось что мой комментарий появился уже прямо с зелёным +1 к нему.

Кому-то к голову кони ударили и теперь мнишь себя звездой?! Пока мильёнов нет — никто о тебе не знает Вот как будут, то сразу «Ксит, друг! Давно не виделись!»

А на самом деле ты просто смотрел на мой коммент и хотел поставить +1 моему комменту! Совсем стариком стал — забываешь уже!

razzle_dazzle

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

А почему не попробовать сделать то же самое и на гамаке? Просто возвращать в массив айдишники с помощью коллизий с кругом.

DarkDes
А оно вернёт массив? Коллизия с кругом в смысле. Или может там надо будет КАЖДЫЙ проверять на коллизию с кругом?

У себя-то я хоть как-то хотел это дело оптимизировать и сделать ну хотя бы Quad-Tree.

Вся беда именно в оптимизации (которая не нужна? Мой Атом с этим не согласен) — кому-то это кажется смешным со своими i7 («типичный» геймер), для меня — вообще ни разу т.к. это не просто «чтоб на тостере работало», а чтобы тупо я смог тестировать на втором своём железе.

Вообще, сейчас (именно в эту пору) отлично иллюстрируется то, как даже ААА разрабы забивают болт на оптимизацию. Как следствие отхватывают негативные комменты в стимах. Конечно. Ведь у каждого дома уже есть видюха GeForce 1080, например. Или там процессор последнего поколения.

Как видишь меня занесло опять… кажется я заболел старичковой ворчюнькой! С кем поведёшься — от того и наберёшься. Ксит, это я на тебя намекаю!
Xitilon

Чё! Сам ты старый!!!111!!!11

Вообще-то «коллизия с кругом» это и есть «расстояние от точки до точки меньше чем R», R=радиус круга. Шах и мат.  

DarkDes
Ну так понятно.

Я про то, что надо проверять ВСЕ объекты. Раз наверно третий пишу — не меньше, а всё никак суть не можете уловить.
Xitilon
Это я как раз понял уже.
DarkDes
Ну вот. Это пока основная претензия во всем предложенным методам + это ещё вычисления хоть и небольшие, но лишние. Или нет.
Xitilon

А. Окей, теперь я понял в чём вообще принцип который ты хотел использовать для меньшей выборки объектов. Плохо объяснил значит! Та же проблема что и у нас в Конях.

— ДД, сделай что-то!
— Что?
— А всё!

А нулевой элемент для длины всё-таки как-то не алё — эту договорённость нужно отдельно запоминать, либо я бы заводил для понятности кода отдельную переменную, куда всё равно сбрасывал бы нулевой элемент массива, а итерации бы делал с 1 по длину, хотя это тоже надо запоминать и как-т неудобно! ИМХО.

DarkDes
Очень хорошо иллюстрирующий пример работы над Конями, лол!

Ну да, неудобно. От части. Ещё одна _придирка_ к IDE ГМС. Это реально придирка из пальца, но… было бы неплохо, чтобы вместе с подсказкой по аргументам _своих скриптов_ ещё выводилась, например следующая строчка коммента, где и было бы расписано, что вернёт массив, где э-0 — это кол-во\размер массива.

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

Вот ты например знал бы, что одна функция у меня возвращает массив, где 0 — это кол-во патронов, 1 — это размер обоймы (или клипсы их называю), а 2 — (внезапно) доступность этого оружия? Просто потому, что ГМЛ не умеет в любимый мной от Си адрес-аргумент функции (опять забыл как называется). Приходится возвращать массивы как мульти-результаты.

Кстати ГМЛ может иметь массив в массиве? Именно один в другом, а не двумерный.
Ну типа
var a; a[0] = noone; a[1] = 100500;
var b; b[0] =1; b[3] = 30; b[2] = «YAK»;
a[2] = b;

Вот последняя строчка прокатит вообще и если да, то как потом обращаться к ней? А то это бы решило точно одну проблему у меня в коде там.
Xitilon

Не думаю что так можно. Не пробовал.

В продвинутых языках тип возвращаемых данных входит в сигнатуру функции/метода. Но тут скрипты, да. Лучше бы выводило ПРЕДЫДУЩУЮ строку комментария, так удобней.

Кстати может часть этого есть в Parakeet, это альтернативная IDE для того же GML. Но она… платная.

DarkDes

Ну я про вторую\следующую строку, а лучше БЛОК.
Там же как, если в скрипте на первой строчке:
/// имя_скрипта( аргументы, которые будут отображаться )
/*
И вот тут я хочу подсказку и типа ставишь какой-нибудь @return как в продвинутых IDE и сразу видно, что убедт на выходе.
*/

На самом деле я при просмотре этого IDE и понял, что этого реально нехватает, с учётом того, что это можно реализовывать!
Да, ох уж этот платный мир. Во Вселенной-19 уже налог на воздух на рассмотрении, ладно хоть до нас не дошло или…

При этом она не просто платная, а с подпиской. Вот если бы Винда была такой… это какая же жесть была — кол-во линуксойдов возросло бы, наверно.

razzle_dazzle
Но тут подстава от ГМС это нечто. Ладно, если все ваши графические ресурсы загружаются через IDE, то можете пропустить этот блок.

Тут тоже подстава. В какой-то момент разработки Мариуполис начал тормозить на ноуте с Intel GMA, у которой на тот момент было 96 (!!) Мб видеопамяти, поскольку всё, что есть в IDE не только содержится в проекте, но и загружается в память одновременно с запуском игры. В итоге мне пришлось все игровые фоны выносить отдельно. Решается использованием текстурных страниц в про-версии (хахаха!)

Но есть и другая сторона. Тут скоро ЛД, и я думаю об инструментарии. Ну вот возьму я PyGame, XNA, по которой когда-то проходил курс на coursera, или может Defold, который везде пиарят. И что я успею сделать? ГМС не идеален, но тут уж как с нелюбимой работой, на которой ты остаешься, потому что остальные любишь ещё меньше.
DarkDes

Решается использованием текстурных страниц в про-версии (хахаха!)


Вот-вот! А если ты бедный школьник, студент или настоящий авторский разработчик интерактивного программного обеспечения в реальном времени, то мучайся — не платил ведь!

Ну ЛД не совсем корректный пример, однако, общую мысль я понял. И даже оспаривать её не буду т.к. согласен с ней. Частично конечно. Если есть короткий срок и ты хоть как-то знаешь инструмент (а ещё лучше, если недостатки знаешь), то лучше использовать его.
Однако, если планы на проект большие (не думал, что я полгода буду игру делать эту), то тут вот как получится может. Особенно, если проект расти в ширь будет.

Для прототипов и «быстренько склепать» как раз прокатывает. На ЛД точно, и на другие конкурсы с сроком до месяца. Ну или если игра про генерацию «и типа это олдово» — то может быть. По опыту скажу, что с графикой хуже первого Диабло начинаются проблемы. 

 

razzle_dazzle

Вот-вот! А если ты бедный школьник, студент или настоящий авторский разработчик интерактивного программного обеспечения в реальном времени, то мучайся — не платил ведь!

Как можно было прозевать Humble Bundle с гамаком?! Они тогда больше миллиона долларов собрали, кстати, но в итоге после этого выпустили только одно обновление для ГМС.

Для прототипов и «быстренько склепать» как раз прокатывает. На ЛД точно, и на другие конкурсы с сроком до месяца. Ну или если игра про генерацию «и типа это олдово» — то может быть. По опыту скажу, что с графикой хуже первого Диабло начинаются проблемы.

Тогда стоит ожидать перевода Взертоса на другой движок?

DarkDes

Да, вот так вот получилось — я прозевал этот момент (не помню, говорили ли вообще? вроде говорили). И на то два фактора точно: 1. я никогда не думал, что мне нужна будет ПРО версия т.к. я не планировал делать и продавать игру на богомерзком ГМС. 2. Я настолько был (и есть) бедный студент, что не было у меня и тех денег, что просили за ПРО.  Да и честно — не взял бы тогда, даже если бы были деньги. За бесплатно — да, ибо другая цена тупо не оправдана.

Так или иначе мне _придётся_ купить ПРО. Но это надо смотреть на поведение Взертоса и нытиков игроков. Если окупится — куплю хоть за полную цену, а эти деньги ЙоЙо могут засунуть себе в одно место. А всё от чего? От того, что я хочу _игрокам_ ачивки и стим клауд, лол.

 

Тогда стоит ожидать перевода Взертоса на другой движок?

Ну уж нет. Я что, зря всё лето угробил на него? Тогда бы я пошёл просто делать КиберДанженКроулер на своём движке (что я и изначально и планировал кстати). Допилю _как получится_ и в Стимы. У меня уже нет ни сил, ни времени, ни нервов. Как видно из последнего добавления в пост — только мат и остался.

Xitilon

авторский разработчик интерактивного программного обеспечения в реальном времени,

Разработчик в реальном времени это жёстко. Я вот стараюсь разрабатывать походово — день покодил, месяц на тестирование другими людьми (с некоторым шансом что им вообще будет интересно), и то плохо получается.

А ведь ЛД скоро, да. Пара дней осталась.

DarkDes
Лол. Но ведь ты понял, что я имел ввиду. Хотя погоди… ты что это не в реальном времени делаешь игру?!? Теперь ясно почему КонЕ2 так долго делаются

Да кому нужен ваш ЛД, когда есть удивительные и восхитительные выходные с ГМС наедине! У неё родители уехали на дачу! Зажигать будем вдвоём дома, если вы понимаете о чём я…
Xitilon

кому нужен ваш ЛД, когда есть удивительные и восхитительные выходные с ГМС наедине!

В общем-то для меня это одно и то же. Но шутку понял, ага.

DarkDes
Нет. Там вас 100500 таких. А тут ты, она и ничего больше… хотя как бы неожиданно не препёрся её Ба{г}тя!
DarkDes

Добавил

Всё ради безопасности юзера! Но ведь не удобно жуть! РАДИ БИЗОПИСНОСТИ!!111

 

Yuuri
Прошу прощения, про пропавший символ какая-то шизофазия, ваще не понял. Кто куда пропадает, кто где заменяется, кто как должен отрисовываться?
А «Да какого гейба в бесплатной версии урезаны фичи!» и «Да такое багло даром раздавать должны!» вообще пушка. Не нравится цена — не ешь, чай, ЙоЙо не монополист.
DarkDes
Символ "#" в файле есть, символ "#" в строке\переменной есть, делаешь string_width — символ "#" пропадает и заменяется на перенос строки на байтовом уровне (похоже). Вопрос не в отрисовке — вопрос в существовании символа т.к. ГМС не смог в форматированный вывод текста и мне пришлось писать свой с цветным выделением слов и мне нужен там символ "#", чтобы узнать где перевод строки. Хотя я забыл на это дело и использую там "\n" (при этом это не символ перевода, как в Си)

Ладно, поясню по другому — в бесплатной версии сделали моменты _намерянно хуже_, например, читай про алтасы.

Т.е. если вам продают глючный кусок кода, то вы согласитесь покупать его за полную цену?

Вообще да — я тупанул, когда выбрал забагованный ГМС — лучше бы свой движок писал. Но мне нужна ПРО версия только для того, чтобы игрокам комфортнее было (опять читай про атласы). Суть в том, что ПРО версия — это просто как таковая «обычная», мне пофиг на экспортёры для тостера — там обычная работа похоже порезана, лол.

Ну как я для себя понял, если Взертос окупится, то я хоть за полную цену куплю эту ПРО. И никогда не буду делать игры на ГМС. Хотя наверно придётся, чтобы следующая игра отбила цену этого ПРО издания, лол.
Xitilon
На всякий случай замечу, что атласы меня в ГМС никогда не занимали, и если бы не твоё (не критичное для большинства геймеров) желание запустить игру на Интел Атоме, то тебе бы это было всё равно? (могу ошибаться или забывать какой-то пункт из твоих выкладок)
DarkDes

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

Т.е. вот какой лимит у видеокарты на текстуры? Предположим, что 128 одновременных текстур ( или там от объёма видеопамяти зависит? ). И допустим я загружаю стрип, где размер спрайта 16х16 и там кадров 256. И вот эти 256 текстур он создаёт, но… не может т.к. всего доступно 128. Не знаю правда как оно у ГМС работает. Но если или если он только при вызове _создаёт_ текстуру на уровне GAPI, то в любом исходе это тупо.

Нет, конечно если у тебя ПК ТОП на 2016 и ты на нём играешь в Взертоса… погоди, что-то тут не так ...

атласы меня в ГМС никогда не занимали

На то есть несколько причин, которые я в посте и расписал: 1. у тебя не было столько графики, чтобы компиляция длилась несколько минут. 2. ты не загружал много кадров (10 спрайтов по 36 кадров, например) 3. не открывал деббагер ГМС на вкладке с сёрфейсами и текстурами.

Это всё от того, что в своё время начинал наверно раза 3 уже писать, если не графический движок, то точно графический фрейморк и вывод 3Д графики что на OpenGL, что на DirectX (на чистых конечно, без всяких SDL). И начитался столько статей, при этом смежных и по серьёзной графике, до которой не дойти мне. Суть в том, что все нормальные движки наоборот должны компоновать текстуры и отрисовывать как можно больше геометрии за один проход\вызов (DIP вроде это называют).

Если ГМС так к текстурам относится, то страшно подумать, что там по общей графике вообще.
Xitilon

Окей, я всё внимательно прочитал, что ты написал. Но «страшно подумать» — а думать не надо, вот что я тебе скажу. Надо делать!

3. не открывал деббагер ГМС на вкладке с сёрфейсами и текстурами.

Тут ты конечно прав. Тяжело открывать дебаггер ГМС на вкладке с сёрфейсами, если вообще не открываешь ГМС.

Эх. Короче говоря. У меня самого старый Атлон 2.7ГГц. 2ГБ оперативки DDR2. И Взертос на нём играется. Вот тебе факт!

Raseri
Так у тебя же пойдёт Овервотч.
DarkDes

А мог бы игры...! Ой, не туда

Вот будут мильёны у меня и тоже куплю себе Овервотч за 2к и будем вместе играть! И игры не делать!

DarkDes
Лол! Оно и видно, что не открывал ГМС. Даже не открывая ты смотрел на него с презрением, а если бы столкнулся с теми же багами, что и я… то сразу бы похоронил окончательно этот ГМС, лол. Всё что он может предложить «инновационного» — это экспорты в другие платформы и интеграцию со SteamAPI и всякие гуглплей. Ой, ну да. АЛЬТИМЕЙТ-ЩА-ИНДУСТРИЮ-ПОРВУ версия стоит около 32к рублей. Эх!

Зато старые ГМ вообще платными были вроде. Ладно хоть ЙоЙо бесплатно стали давать стандартную версию, а не «фри», где было ограничение на 15 объектов. 15 объектов, КАРЛ! Не помню какую игру я делал, но это была жесть и застал эти ограничения.


У меня тоже какой-то Атлон, но вроде мощнее, да. Да и оперативки с недавних пор больше (6Гб, было 2Гб тоже).

А у меня нетбук на Атоме. Мне надо там тоже тестировать. Хотя и ведь твоя правда — кто играть-то будет на Атоме, там даже СистемШок2 нормально не играется! Игра 1999 года! Хотя идёт Варкрафт3 и Heartstone (вроде). А ВЗЕРТОС ТОРМОЗИТ!
Yuuri
Зато старые ГМ вообще платными были вроде. Ладно хоть ЙоЙо бесплатно стали давать стандартную версию, а не «фри», где было ограничение на 15 объектов.
Начал «работать» с GM аж с версии 4.0, и первой платной была, если не ошибаюсь, 5.1 (перед этим была ещё donationware 5.0, которая просила заплатить, но работать не отказывалась). Ограничения в бесплатных редакциях 5.х и 6.х были хоть и не 15 объектов, но достаточно существенными по сравнению с GMS. Вот 7 и 8 как-то прошли уже мимо меня.
DarkDes
Моей первой ГМ была 6-ая версия. Точно была какая-то продвинутая, следовательно пиратка, так что и не знал, что ГМ был когда-то бесплатной. Потом пиратка ГМ8 (и 8.1), но на ней я уже почти не сидел вообще — я там другие программы пробовал. И вот когда ГМС в стиме увидел — захотелось попробовать что и как. Результат конечно неожиданный
Xitilon

В 8.1 открыли «для свободного доступа» уже очень много функций, практически что угодно можно сделать в ней не покупая. Но лицензия на него у меня всё равно зачем-то есть, ага.

Начинал я таки с пятой. Вообще не помню историю с donationware.

DarkDes

Ну в новой (стандарт) ГМС тоже можно почти что угодно сделать. Не знаю вообще кто пользовался фришной. Ну вроде я разок, от чего я негодовал, когда упёрся в лимит ресурсов.

Из открытия функций в ГМС на платной основе знаю только про стим-апм. Всё другое это вроде экспортёры.

Xitilon

Пока у них держался лимит на КОЛИЧЕСТВО ассетов, я вообще не прикасался к ГМСу. Ибо покупать лицензию казалось дороговато, а юзать фришную с такими приколами — как-то не алё.

Да, Стим АПИ явно пригодится ещё...

DarkDes

Просто я вообще не знал о лимитах в таком смысле. Думал, что там, например, в гринлайт нельзя или продавать игру и всякое такое. Ну ладно там функции залочены какие-нибкдь (как вот со СтимАПИ).

Но когда я упёрся в лимиты, то послал ГМС вообще. Потом сказали, что мол всем Стандарт дали. И я думал как это его обновить вообще. Потом плюнул и там вроде Наколенник Н2 был — когда я Зема делал. И потом чёт-падазрительно стало, когда я вдруг осознал, что лимиты-то превышены, а никаких сообщений нет, лол.

Hrenzerg

Сделай отдельный пример в проекте на каждый приведённый тобой «косяк» GMS и выложи сюда.

Текстурный атлас

Зависит от того как ты делаешь. Нужно смотреть код. На75% ты просто делаешь хуйню.

Ну вот эту функцию старую возьмём, а вот эту перепишем. А что с этой делать? Да и так сойдёт!

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

Я твой символ в цифровой ад ссылал.

Не понял чего ты добивался. Читай справку. Есть экранирование символа # если он тебе так нужен. Вот:

https://docs.yoyogames.com/source/dadiospice/002_reference/strings/string_width_ext.html

Здесь нужен ппример-проект того что не получается.

Мы будем строить из себя очень профессиональную IDE

Эту придирку я вообще не понял. Разве что с тем пунктом, что пустой проект создать нельзя. Но тут есть вполне логичное объяснение почему сделано так. В GM8.1 проект хранился одним файлом и его можно было сохранить во временную папку а потом грохнуть. Кстати GM8.1 точно так же хранить временные файлы компиляции в каких-то ебенях. В GMS эту папку можно менять. так вот GMS хранит проект в нескольких файлах если ты вообще хоть раз видел как выглядит проект GMS. Невыгодно засорять временную папку большими проектами. Много геморроя по удалению я так полагаю. Плюс система контроля версий… Так что она не строит из себя профессиональную IDE а является таковой на деле.

Активировал активировал да не доактивирова

Нужно код смотреть что у тебя там не получается. А вообще «var c1; with o_test c1++» — это bad smell… очень рисково так делать. Надёжнее и, возможно, быстроее юзать просто
c1 = 0; with o_test other.c1++

Оператор with влезает в контекст другого объекта. Модификатор other очень выручает в таких конструкциях. Он ссылается на контекст вне оператора with.

Всё ради безопасности юзера! Но ведь не удобно жуть! РАДИ БИЗОПИСНОСТИ!!111

Это всё потому что есть юзеры у которых стоит блокировка засписи не в системные файлы. То есть когда программа может писать только в свою app-dir. Сделано для компиляции под андроид, линукс и макос. То есть это сделано для совместимости. Есть такая штука в справке working_directory. Да и вообще про хранение файлов почитал бы сперва.

Я подключал недавно SteamAPI — там всё очень просто. Не хочешь покупать PRO, читай мануалы на steamworks и юзай http запросы.

 

Уверен и с Юнити и прочими выбросами аналогичная <вырезано>я происходит.

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

 

Xitilon
c1 = 0; with o_test other.c1++
Оператор with влезает в контекст другого объекта. Модификатор other очень выручает в таких конструкциях. Он ссылается на контекст вне оператора with.
Так разве можно? Ведь скажет, что в other нет никакого c1.
Hrenzerg
Если с1 не было объявлено через var, т.е. является локальной переменной объекта, то можно.
Xitilon

Да ну нет. Наоборот, если c1 объявлена через var, то тогда она будет существовать в любом контексте, но только в пределах текущего куска кода. Иначе — в контексте объекта где она была объявлена, но в любом куске кода, который выполняется после этого.

http://kolenka.su/blog/gamemaker/gamak-varene.html  — вот же, был пост про «varенье».

Yuuri
Ты не увидел other или что?
Xitilon

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

Хм, мой косяк, к доках это есть,:

The special keyword other has two different ways that it can be used to reference a specific instance: when used in a with function (explained here) or when used in a collision event, which is what this section is going to explain.

Hrenzerg

Блядь, вы с даркдесом мудаки, справку вообще открывали хоть раз?

https://docs.yoyogames.com/

other
KeywordDescriptionvalue
otherThe other instance involved in a collision event, or the other instance from a with function.   -2
The special keyword other has two different ways that it can be used to reference a specific instance: when used in a with function (explained here) or when used in a collision event, which is what this section is going to explain.
Palets
Синхронно бомбануло.
Yuuri
Аж втроём :)
Xitilon
Отредактирован: Только что
Hrenzerg 4 минуты назад ↑ +1 
А если б вы чуть-чуть подождали, вы бы прочли, что я дошёл до этой справки и всё выяснил. Сейчас, если что, будний день, рабочее время, а Гамак у меня всё ещё на уровне хобби. Серьёзные такие, жесть просто.
Hrenzerg

Конечно, ждём ответа немедленно.

Не ответишь в течении минуты — я буду гневно писать что ты меня игнорируешь и призывать общественность к суду Линча за такое безобразие!

Yuuri
Некогда справку читать, надо игры делать!
Palets

https://docs.yoyogames.com/source/dadiospice/002_reference/001_gml%20language%20overview/401_18_with.html

10 лет опыта с гамаком, не знал ни про локальные переменные, ни про other, шпилькервейстер.

Xitilon
Всё правильно. Ненужные фичи отсеиваются практикой.
Palets
Тебе бы в президенты, а не в разработчики.
Yuuri
В писатели и наставники практических практик. Самоучитель «Как создать три игры за десять лет».
Xitilon
Так просто 97 игр были отсеяны практикой — таковая показала, что я ленивая жопа!
Yuuri
Отсеиваются – это когда попробовал разные штуки, поработал, а потом оставил только нужные. А если не знал, и когда узнал, заявил, что нинужно, – это не практика, это неосиляторство.
Xitilon

Погодите, это было mis-возражение. Никакого использования other вне коллизий в GM5.0-8.1 (все, с какими я работал начиная с 2005 года) не существует — ни в документации по with, ни в документации по other.

А на Студии я не работаю, и её тихо ненавижу. Видели хоть раз проект на ГМС от меня? Так что лососните тунца.

В итоге, кстати, спасибо Хейзеру, за то что стало ясно, что так можно делать в Студии. Правда, зачем я сказал это спасибо, понятия не имею. Может и не пригодится. Вот поживём — увидим.

Yuuri
Специально ради тебя я откопал хелп от версии 6.0. Страничка «With constructions»:

Note that, within the statement(s), the indicated instance has become the self instance. Within the statements the original self instance has become the other instance. So for example, to move all balls to the position of the current instance, you can type

with (ball)
{
  x = other.x;
  y = other.y;
}
Так что лососнул тут только ты, уже дважды.
Xitilon

> 10 часов назад

> в 5 часов ночи искать старый хелп чтобы утереть Кситилону нос

М-да, во что ты превратился. Нет чтоб по ночам игры делать. Нееет, в интернете кто-то не прав.

Окей-окей, пишу тебя в графу «Ваще ЭКСТРА-грамотные копатели в доках»! Тест пройден.

Хм… интересно, что будет при with obj { with obj2 { other.x+=100 } }.

Palets
other вернет obj2.
Xitilon

А что будет при

var c;

with obj { var c; c=1; with obj2 { var c; c=2; other.c=3 } }

?

Palets
Ты объявишь в obj не-локальную переменную с, которой придашь значение 3. Локальная переменная c (единая на весь кусок кода независимо от того, сколько раз и в обращении к какому объекту ты напишешь var) в конце кода будет иметь значение 2. Любое обращение к объекту (включая other) использует не-локальные переменные.
Xitilon

В ГМ три типа переменных — локальные, глобальные и переменные экземпляров. Ты видимо о последних.

А почему 2, если в конце этого интервала other.c=3?

Palets
other.c — это обращение к, как ты выразился, «переменной экземпляра» (нигде не видел, чтобы их так называли, кстати, поэтому сказал «не-локальная»), и она будет равна 3. Локальная переменная будет 2, потому что c=2.
Xitilon

Я тупанул. Она была бы переменной экземпляра, если бы там не было второго var во втором with (что я и собирался написать, но зачем-то впилил ещё один var).

http://docs.yoyogames.com/source/dadiospice/002_reference/001_gml%20language%20overview/variables/index.html

Вот три вида переменных, в любом случае.

Yuuri

RTFM же, ну.
with statement:

Note that, within the statement(s), the indicated instance has become the target (self) instance that runs the code block, which means that the statements the original instance (that contains the «with» and the code block) has become the other instance.

keywords:

other The other instance involved in a collision event, or the other instance from a with function.

Hrenzerg

Я помню этот пост. Но меня смущает тот факт что с1 будет существовать в двух контекстах. Легко лажануть.

Вот через локальную переменную и ссылку other работает. Я сам такой приём часто применяю.

DarkDes

Сделай отдельный пример в проекте на каждый приведённый тобой «косяк» GMS и выложи сюда.

Сделай. Я например игру делаю. Ведь их так просто повторить.

Зависит от того как ты делаешь. Нужно смотреть код. На75% ты просто делаешь хуйню.

Ну-ну. Видимо не шаришь, да? Как я могу делать «хуйню», если ГМС не позволяет её делать? Просто загрузи спрайты через sprite_add, на скажем кадров 40 и скажи сколько _разных_ текстур он тебе сделал. А да, важный момент — не используй ПРО.

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

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

Не понял чего ты добивался.

Значит я не так это описал. У меня есть строка, где есть символ #. Я знаю, что это перевод строки. И знаю про экран. НО! Дело в том, что всё время, что в фале, что в переменной этот символ таки остаётся как символ # — это хорошо, это то, что мне нужно было — самому узнавать, где идёт разрыв строки. НО!!! Функция string_width\string_width_ext берёт и убирает этот символ и возможно заменяет его на байт-код '\n' т.к. перевод строки остаётся, а вот символ # пропадает.

 

Так почему в ГМС-то нельзя было аналогично сделать? Т.е. начать как тестовый — за ненадобностью удалить, а при сохранении (вот это поворот) сохранить куда выберет пользователь? К тому же у него есть ведь домашняя папка проектов. Почему там например нельзя делать?
Для справки — я видел как устроен проект в ГМС.

Нужно код смотреть что у тебя там не получается.

Я ведь весь код и предоставил, нет? Вот там в картинке. Вот это и всё.  А что не так с var c1; если я уверен, что в o_test точно нет такой переменной? Тут где-то Ксит писал про эту штуку мини-пост. Про with-то знаю, вот про other (или self?) однажды Ксит подловил — с тем, что это не id.

Сделано для компиляции под андроид

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

Есть такая штука в справке working_directory

Дааа-лааадно?! Вот это диво!

Да и вообще про хранение файлов почитал бы сперва.

Ты про общее хранение или как ГМС хранит?

Я подключал недавно SteamAPI — там всё очень просто. Не хочешь покупать PRO, читай мануалы на steamworks и юзай http запросы.

Это кстати выход, но частичный.

Xitilon

А да, важный момент — не используй ПРО.

Не получится, он тоже прикупил её на Хамбл Бандле за 6% её оригинальной цены.

Это кстати выход, но частичный.

Частичный?! Для ГМ8.1 с нашими Конями — единственный.

DarkDes
Вот именно! Или нет! Или ЯКУБОВИЧ! Короче я понял, что я лоханулся, что я такой бедный студент не смог себе купить даже за 300+ рублей какую-то там ПРО.

Ну для ГМ8-то да — единственный. Для ГМС — нет. Ну можно будет попробовать что-нибудь с этим сделать. Проще будет свою же dll-ку написать для этих дел. А может быть и нет. На будущие проекты-то.
Xitilon
Это я о том что выход-то не «частичный», а вполне себе штатный.
Hrenzerg

Сделай. Я например игру делаю. Ведь их так просто повторить.

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

Ну-ну. Видимо не шаришь, да? Как я могу делать «хуйню», если ГМС не позволяет её делать? Просто загрузи спрайты через sprite_add, на скажем кадров 40 и скажи сколько _разных_ текстур он тебе сделал. А да, важный момент — не используй ПРО.

Что за дичь? Ты хочешь в не PRO версии заюзать функционал, предназанченный для PRO версии? Мне тут кэп подсказывает, что PRO он на то и PRO чтобы давать дополнительные фичи. Не нравится — пиши на каком-нибудь бесплатном движке без поддержки. Типа Flixel-я того же на флеше. Но я попробую, загрузить спрайты как ты сказал чтобы поглядеть на это, заодно и понять как ты смотришь текстуры. У меня то такой необходимости до сих пор не было. Даже с большими проектами типа Зеркального я ресурсы все встроенные использую.

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

Читаю справку:

This function will delete a sprite from the game, freeing any memory that was reserved for it. This is a permanent removal, and if the asset that you delete was included as part of the game's resources, not even restarting the game (unless you close the application first) will recover it.

То есть про удаление всё-таки написано.

Я ведь весь код и предоставил, нет? Вот там в картинке. Вот это и всё.

Нет не всё. Важно где этот код написан. Возможно на него влияет ещё чей-то код. Ты там писал что хотел оптмиизировать, вот тебе выдержка из справки:

It is normally not necessary to deactivate instances every step of your game and this can actually cause your game to lag and runs slow. Instead it is recommended that you only run these functions every few steps in an alarm (for example), or if the view has changed position, and it is especially important that you do not use these functions in the draw event as this can lead to serious errors in your game.

А по твоему коду неясно куда ты его засунул. В каком он событии? В Step, Draw, EndStep, Alarm, Room Start? Многое важно. Потому я и прошу предоставить пример. Я когда сам разбираюсь с кодом то бывает что на него влияет ещё какой-то фактор. Пример — случай с сурфэйсами, когда у меня всё пиздой пошло. А дело было в том что я не синхронизиировал переосздание сурфэйсов и айдишники им выдавались старые. Есть вещи которые невозможно предусмотреть в комплексе.

Ты про общее хранение или как ГМС хранит?

Я про вот этот раздел: https://docs.yoyogames.com/source/dadiospice/002_reference/file%20handling/file%20system%20limits.html

 

В GMS есть баги, но чтобы они исправлялись нужно о них сообщать. Представь себя на месте ТП. Тебе пишут «У вас тут хуйня и функция неправильно работает!». Ты проверяешь и у тебя всё работет. Что хочется сделать с таким юзером? Верно — послать лесом. А если тебе предоставить пример того где что не пашет — то тебе будет проще разобраться и исправить ошибку.

Palets
У тоби фокса-то небось нормально всё работало, у буржуя поганого!
Xitilon
Его консультировало аж целых ДВА человека насчёт Гамака. Кроме того, у него было бабло на Про-версию, в которой функционал не порезанный. Ну и он делал эту игру 2 года. Или 3? Взертосу всего полгода, насколько помню.
Palets
Мы-то тебя тут вообще втроем консультируем. Ожидаю увидеть своё имя в титрах!
Xitilon
Ваших консультаций я не запрашивал, и знание о ключевом слове other мне не особо поможет что-либо сделать в конкретной игре. Тут фишка в том, что у него опыта было ноль в самом начале. У меня-то его уже много. И у него была масса вещей которыми надо заниматься в игре. Поэтому он просто заюзал помощь других людей, чтобы успеть. (и не успел, но всё равно довёл и выпустил)
Palets
Ничего не знаю, 12,5% процентов вынь да положь.
Xitilon

yadda yadda

Эти 12,5% я в шутку, но хотя бы вычислил, как 1 моя мера взноса против 8 Хейзеровских. А ты уже просто гиперболизируешь. Ха-ха, как смешно!

Palets
Это я показываю значимость «консультаций» по программированию.
Xitilon

у него опыта было ноль в самом начале. У меня-то его уже много.

== здесь она минимальна, там — максимальна.

Hrenzerg
Тем не менее про то как правильно использовать other ты не знал! А ещё мастером ГМ себя называешь, подлец!
Xitilon

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

Не знал и не знал, делов-то. Кстати, когда я писал вот этот коммент, я уже почти отправил, что в хелпе есть пример с одним использованием other, но нету с другим, но осёкся — таки я его нашёл в старом хелпе по 8.1. А потом подумал — ну-ну, неужели кто-то настолько зануда, чтобы откопать ГМ8.1, который уже официально не раздаётся на сайте ЙойоГеймс? Оказалось, Юрри в натуре зануда.

Вот и живи теперь с этим.

Yuuri

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

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

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

Xitilon

Ага, ведь я всё делаю ради себя. (раз уж ты так сильно хочешь это доказать, то и чего с тобой спорить, лол)

Истинная мотивация была в том, чтобы узнать, насколько далеко способны мои текущие собеседники зайти, лишь бы отстоять какую-то точку в каком-то абсолютно потерянном в интернетах споре. КТО-ТО В ИНТЕРНЕТЕ НЕ ПРАВ! Get real, dude. Ты сам полез искать хелп ГМ8.1 чтобы «выгородить себя». И это подкрепляет мою гипотезу, что ты всё ещё перфекционист-вопреки-эффективности, ещё и, может быть, похуже чем раньше. Ну, это жаль.

Palets
Xitilon
азаз затралено)))00
mylittlekafka
М-масака?!
Yuuri
Вот только не надо тут с больной головы на здоровую валить.
В тутошнем обсуждении развернулась типичная ситуация, что и в куче других топиков. Ты в своих постах с типичным апломбом сделал несколько фактических ошибок, тебе их поправили с пруфами – и ты, вместо того чтобы спокойно согласиться «да, ошибся, буду знать» и уйти делать игры, предпочёл длительно юлить, демагожить и ещё вот и лгать, как оказывается. Пойми, дело не в том, что кто-то там интернет-паладин или зануда, а в том, что ты регулярно и безапелляционно распространяешь высосанные из пальца мнения или даже откровенную дезу, а потом ещё отказываешься признавать свои ошибки, потому что это больно ударяет по нерукотворно воздвигнутому реноме обермейстера с десятилетним опытом.
Xitilon

Ого. Чё такое «реноме»? Слишком умно для меня. Я знаю «резюме», ну или «портфолио»!

Насколько я помню, я допустил только одну ошибку — вот про то использование other. Хейзер показал — я сказал спасибо. А вот всё остальное уже было для иллюстрации, как люди (вы) способны тратить время на какую-то херь. И мне удалось! И видимо это так ударило уже по тебе, что стало крайне важным теперь доказывать мне, будто я напыщенный ШпильХренЗергергергер — дабы отвлечься от того факта, что ты сам потратил время абсолютно бездарно, в нердовских спорах о геймдеве в вакууме. Ну и Певзи тут как тут, конешно!

Причём смотри, ты ведь не просто погромист-окодемик, ты меня пытаешься учить как жить, типа я младший брат-тормоз, или отстающий студент! Самому-то шапка-конфедератка не жмёт, лол? Мне, значит, мудрой рукой господина д. м. н., проф. Ю. Р., прописывается в системные требования: апелляции, признания. Ох ты ж ё! Простите, что не следую вашему кодексу, но для чего именно он существует? Без него планета рушится? Общество? O RLY? Следует пить чай с правильными манерами, а не то! Всем срочно воспитывать разбушевавшегося Кситилона!

Ты защищаешь спецификации и байты так, будто от моей ошибки, троллинга или вымысла, документация поменяется сама собой, и other действительно потеряет свою волшебную силу, прям во всех версиях GML. Тебе это не кажется странным? У меня вот это уже вызывает какие-то… опасения, что ли. И да, ты делаешь это регулярно. Наверняка не только в моём отношении.

Я тебя подловил, понимаешь, не? Ты анти-демагог, молодца, а ещё диванный психоаналитик. А я в данной ситуации — анти-анти-демагог. Ну впрочем из твоего текущего закостенелого восприятия ситуации я тебе уже ничего не докажу. А и надо ли?

СЛАВА РОБОТАМ

А, и ещё одно, наверное даже самое главное — не надоело ли маскировать свою собственную склочность намеренной имитацией моей демагогии? Если бы у тебя не было склонности к срачам, тебе было бы чхать на это всё. А это работает именно она, а не «во имя справедливости». Просрал на меня время, будь добр теперь признай и свою ошибку по просиранию оного тоже. Раз уж ты докопался с признанием ошибок — держи ответку!

  

(хм, а какой был бы годный графический эвфемизм для минусо-бана!)

Yuuri
Насколько я помню, я допустил только одну ошибку
Ну во-первых, она была двухуровневой – сперва ты заявил, что other используется не с with, а с коллизиями, а потом – что это так было в достудийных версиях. Во-вторых, я про другие темы тоже. Вон, соседняя темка про Андертейл очень показательна.
И видимо это так ударило уже по тебе, что стало крайне важным теперь доказывать мне
Да при чём тут я вообще? Мои мотивы, или чьи-либо ещё из участвовавших в этих срачах, никак не влияют на то, что ты пишешь лажу и затираешь всем про принципы прагматизма, а вместо того чтобы им следовать и идти делать игры, продолжаешь строчить килобайты демагогии.
Xitilon

Вот это щас называется «ты анти-анти-демагог, а я анти-анти-анти-демагог». Всё, запарило уже.

Можно подумать, если ты не пишешь слово «я» и его разные формы, то наличие твоих комментариев не говорит о том, что ты выпячиваешь именно своё мнение. Вот при том тут и ты. Это тебя (и вас) волнует что я якобы «пишу лажу», тогда как на самом деле ваши возражения не убирают лажу, никому не помогают, а служат только вашим способом вякнуть «я знаю лучше! я знаток!». Такие дела!

что это так было в достудийных версиях

Это сюда:

А вот всё остальное уже было для иллюстрации, как люди (вы) способны тратить время на какую-то херь. И мне удалось!

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

Palets

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

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

Xitilon
Стаж десяти лаж, дай мне силу!
Palets
 
sb122
А попробуй написать пару игр на с++ и winapi. Сразу гамак полюбишь. Вот отвечаю.
buntarsky
Не бахвалься, ничего сложного для пряморуких там нет.
sb122
О, шизик тут как тут. Кто там в твоей голове бахвалился?
buntarsky
А чего так грубо и без фантазии?
sb122
Ну так. Ты вот клоун, а я по делу пишу. Есть дохрена систем на порядок сложнее чем гамак. Если ДаркДес испытывает трудности с простейшим гамаком, это звонок прежде всего ему самому.
buntarsky
Ты мне сейчас медведя-шатуна напоминаешь: проснулся посреди зимы, злой, голодный, и ревёшь.

Гамак, как раз, непростейший. Ибо высокоуровневый, без спецификации (полагаю), да еще и закрытый. У меня сложилось стойкое убеждение (возможно ложное), что те, кто им пользуется документацию (если она вообще существует) никогда не читали, все методом тыка узнают. А потом это сокровенное знание из уст в уста передают, из поколения в поколение. Так чего удивляться трудностям? Но С++ от этого сложнее не становится. А даже наоборот.
А ты людей пугаешь почем зря, лишая их возможности бросить свой костыль и прикоснуться к прекрасному. Для начала, попробовав Godot Engine, к примеру.
Xitilon

документацию (если она вообще существует)

http://docs.yoyogames.com  — вот она, тама.

Ну и в .chm-файле при дистрибутиве тоже есть.

Yuuri

С гамаком проблема, думаю, такая: большинство в него приходит, программировать не умеючи, зато горя желанием делать игори. Причём в отличие от программирования, гамаку по учебникам не научишься за неимением оных; а минималистичная справка-референс особой пользы для неофита не несёт, вот и остаётся сакральное знание копать по форумам и передавать в поколениях. Если у человека уже есть программистический бэкграунд, то ему как раз вполне хватит справки, чтобы продуктивно перенести свой опыт на ГМ; но такие скорее воротят нос и берут движки на Серьёзных Языках™.

Но С++ от этого сложнее не становится. А даже наоборот.

А вот это зря, один из самых сложных языков эвар, и неочевидных граблей в нём тоже предостаточно. Спека на тыщу страниц есть, да, вот только простому разрабу легче от этого? :)

buntarsky
Ну если использовать только небольшое подмножество языка («Си с классами»), выкинув метапрограммирование и возможности С++11, то даже с учетом многочисленных «неочевидных граблей» (есть такое да, «последовательность» — это не про плюсы) он достаточно прост. Во многом благодаря обилию и доступности популярных (но при этом очень подробных, вплоть до внутренностей языка) книг. Какой еще язык может похвастать наличием настолько качественной «документации»?
зато горя желанием делать игори
«игорей» же, ну
Xitilon

вот и остаётся сакральное знание копать по форумам и передавать в поколениях.

Да ничего подобного. Просто сначала нужно уже уметь программирвать хоть немного. На момент моего открытия ГМа, я только ходил на курсы где вяло преподавали BASIC/Паскаль, и больше ничего! Не читал я никаких форумов и туториалов. Хелп — да, и он очень полезен. Его реально достаточно просто прочитать от корки до корки. Просто кто ж это сделает столь вдумчиво, когда кажется что вот — можно делать игру «без программирования»?

buntarsky
Ха. Я тоже с Бейсика начинал (по встроенному хелпу, потом по книжке, написанной преподом Паскаля, лол). И Паскаль тоже потом был, да. Но только изучение С/С++ дало мне более-менее серьезное понимание того, что же программирование есть такое.
sb122
Бунтарски, еще раз: ты клоун. Это тред о разработке игр. Ты игр никогда не разрабатывал ни с какой стороны. Но прилез и -=мнение имеешь=-. :)
buntarsky
Иди лапу пососи чтоль. Глядишь, отпустит.
sb122

Но ведь именно ты здесь человек случайный и не в тему. Инди игры ты не делал ни с какой стороны никогда. Ни дизайном, ни кодом, ничем вообще. Да и как активный игрок в инди не был замечен. Ни играл, не делал, обзоров не писал. Ты хоть понимаешь это, что ты тут вообще мимо двери пришел? :)

Даже не просто в этой теме о разработке. А в целом, на сайте.

buntarsky
Если ты сам лапу не пососешь, никто ее за тебя не пососет. Так что, не откладывай.
Xitilon
Не согласен что Бунтарский на сайте лишний, но «ничего сложного в C++ нет» это действительно и само по себе неверно («для пряморуких» == «для меньшинства»), и это мимо геймдева.
sb122
Ох добрый ты. А я бы гнал. Вот смотри, он сейчас еще и спор с местными устроит. Будет доказывать и с умным видом рассуждать, и ему будут доказывать. Дивану этому.
На мой взгляд это обесценивает профильное обсуждение. Причем диваны в таких спорах обычно строчат самые большие и уверенные простыни.
buntarsky
Так, так. Не останавливайся, продолжай аналитику.
Xitilon
Боюсь, тут профильного обсуждения и так почти не было. Просто общаемся как можем, потому что можем. Коленка сейчас в принципе на паузе, мы тут Гринлайт прошли пару часов назад.
buntarsky
«для пряморуких» == «для меньшинства»
Сколько я не пробовал разных конкурсных игр c Гамина: если на Гамаке написано — значит, в половине случаев упадет с ошибкой. Выходит, пряморукость везде нужна, и как фактором при выборе инструмента (в нашем конкретном случае) ей можно пренебречь.
Xitilon
Для себя, который уже с прямыми руками, можно пренебречь. Для масс — нет.
Hrenzerg
Здесь не пряморукость нужна, а руки из плеч. У меня вон руки хоть и кривые (реально в локтях плохо сгибаются), зато из плеч. А у кого-то золотые руки из задницы…
razzle_dazzle
Недавно вот хотел поменять одну головоломку в Мариуполисе, открыл исходники на другом компьютере, и этот чёртов гамак отказывается открывать некоторые комнаты, в которых скейл некоторых спрайтов выставлен в редакторе не по умолчанию. Думал, что всё это из-за того, что на другом компьютере не Про версия, ввёл свои данные, получил Про и на этой машине, однако ошибка осталась. Единственный известный мне способ её избежать — открыть вручную файлы комнат и проставить на скейле объектов в комнате значение по умолчанию. В то же время на нетбуке, на котором по преимуществу разрабатывалась игра, таких ошибок никогда не было.
Xitilon
А это точно не связано с тем что на одном компе, в настройках системы, разделитель дробной и целой части числа — запятая, а на другом — точка? А то знаю такой ряд проблем у некоторых прог. С ГМСом правда ни разу не натыкался. Хейзер что-то слышал, но куда-то он опять занырнул.
razzle_dazzle
Я это написал в надежде на то, что кто-то знает выход из подобной ситуации. Спасибо, заработало!
Xitilon
Круто!
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.