Gamedev

Ответить в тред Ответить в тред
Check this out!
Добро пожаловать в гамакотред - адекватный тред Аноним 29/07/20 Срд 14:15:00 6865401
1.jpg 3Кб, 250x142
250x142

Добро пожаловать в гамакотред - адекватный тред адекватного движка.

Задумал сделать 2d игру и не знаешь с чего начать? Качай демоверсию гамака
https://www.yoyogames.com/get
и запускай туториалы Шона Спалдинга
https://www.youtube.com/user/999Greyfox/playlists

Движок платный. Покупать лучше в стиме, по региональной цене. Десктоп версия 1600р.


Полезные каналы:
https://www.youtube.com/channel/UC7fkptPD1FHQyDc9Fnm9S_A
https://www.youtube.com/channel/UCdpsYesx7bwrKGU_u9hcwIg
https://www.youtube.com/channel/UCrHQNOyU1q6BFEfkNq2CYMA
https://www.youtube.com/channel/UCnKHIXYeYkehIJtF414f65A

Прошлый тред тонет здесь: >>617577 (OP)

Аноним 30/07/20 Чтв 16:49:12 6867202
Что хуже для производительности - объявлять глобальную переменную иди постоянно обращаться к переменной объекта, типа player.ammo ?
Аноним 30/07/20 Чтв 22:54:13 6867883
>>686720
Для производительности хуже делать поиск пути каждый шаг и выполнять код в draw_event.

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

Ну а вообще можешь затестить. Сделай цикл с 100000 обращений к obj_player.ammo и global.ammo каждый шаг и сравни фпс.
Потом нам расскажешь.
Аноним 31/07/20 Птн 15:11:12 6869054
>>686788
Разве код в draw разве хуже для производительности, чем в step? На форумах давно читал, что разницы нет
Аноним 31/07/20 Птн 17:43:13 6869355
>>686905
Только что проверил с помощью цикла в цикле и всяких операций внутри.
Производительность от выполнения кода в степе не отличается от выполнения того-же самого в драве. Может, если бы там было какое рисование, тогда разница была бы заметна, но у меня в пустом проекте без спрайтов разницы нет.

Производительность при обращении к глобальной переменной выше, чем при обращении к переменной объекта. Полусчилось, что у глобальной ФПС был больше 200, инога падал до 130, не знаю почему. А при обращении к переменной объекта фпс никак вообще не поднимался выше 130
Аноним 31/07/20 Птн 17:44:08 6869366
>>686935
Какие нибудь замечания, уточнения, коллеги?
Аноним 31/07/20 Птн 19:54:52 6869477
>>686936
>The draw event is a very intensive event, in that it's one of the events that takes up most time and resources... to that end it is never a good idea to do anything in the draw event other than drawing. So save your large code or complex actions for the Step event or Alarms or whatever other event fits, but leave the draw event clear for the drawing as that's what it does best.
Аноним 31/07/20 Птн 20:04:18 6869498
>>686947
Факт остаётся фактом. Проверь сам, если не веришь
Аноним 31/07/20 Птн 20:32:29 6869549
>>686949
В пустом проекте с парочкой draw call у тебя разницы не будет. Но хуле, ты ж лучше шаришь в гамаке, чем его создатели.
Ебашь код в draw, не слушай никого.
Аноним 18/08/20 Втр 18:35:54 69203910
1.jpg 6Кб, 443x205
443x205
Вышла версия 2.3

Ну кто бы сомневался.
Аноним 18/08/20 Втр 19:59:34 69206411
Ну круто. Откатился назад, теперь даже пустой проект в гамаке не запускается.

НЕ ПЫТАЙТЕСЬ ПЕРЕКАТЬСЯ НА 2.3!!!!

Не движкосрача для, а предупреждения анончиков ради.
Аноним 18/08/20 Втр 20:11:09 69206712
>>692064
А я всё равно попробую. Бета нормально работает.
Аноним 18/08/20 Втр 20:45:55 69207713
image.png 144Кб, 620x354
620x354
ахахах сасать
Аноним 19/08/20 Срд 11:23:06 69215514
>>692077
Ага, приятного аппетита.
Теперь все скрипты переписывать под формат function что ли? Вписывать все аргументы в скобки или даже переименовывать их. Скрипты же теперь глобальными стали и запускаются при запуске же игры.
При этом при конвертации всё работало ровно до тех пор, пока не захотел добавить скриптик новую функцию.
Или я чего-то не понимаю в конвертировании?
Аноним 19/08/20 Срд 12:12:35 69216615
пикник-пример.png 12Кб, 508x456
508x456
Вроде перекатился. Пришлось стереть папку options в проекте, тогда всё заработало.

Переписывать ничего не пришлось, кроме замены названия переменной "new" на "new_quest", т.к. new в новой версии ключевое слово.

>>692155
Компилятор сам расставил внутри всех моих скриптов строки
function sc_box_add_item(argument0, argument1, argument2, argument3)
{
Внутри старый скрипт без изменений.
}

Скрипты вроде работают.

Но да, есть поломки. Например у меня по какой-то причине обрываются некоторые звуки и музыкальные треки.
Пока изучаю.
Аноним 19/08/20 Срд 12:28:15 69217416
Походу некоторые звуки сломались при конвертации. Приходится их вручную удалять и загружать по новой.

Неприятно.
Аноним 19/08/20 Срд 15:48:12 69221917
Продолжу.

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

Сравненивая (3.99999523162842 < 4) имеет результатом ложь. Впрочем ничего нового.
Аноним 19/08/20 Срд 15:48:32 69222018
Аноним 19/08/20 Срд 19:58:37 69227919
>>692039
А с хуя ли он принудительно ставит апдейт? Типа логиниться не дадим, переходи на новые костыли. Что за неувожение?
Аноним 19/08/20 Срд 21:33:33 69230420
>>692279
Нет, никакой принудиловки.
Аноним 19/08/20 Срд 22:39:54 69231921
image.png 9Кб, 448x121
448x121
Аноним 19/08/20 Срд 22:59:35 69232322
>>692319
Это вроде был drm апдейт специальный. На 2.3 перекатываться не заставляют.
Аноним 20/08/20 Чтв 07:52:33 69238623
>>692166
Радует, что у анона хотя бы нормально работает. У меня же после конвертации при открытии скрипта окошко с кодом осталось точно таким же, никаких изменений в коде, однако рядом же (сверху) появилось другое окно, в котором указано название скрипта, аргументы в каждой отдельной строчке и пара чек боксов внизу. Возможно, это с чего-то включилось DnDшное оформлений функций, хотя само DnD вообще не используется в проекте. Как это проверить? Или що делать?
Аноним 20/08/20 Чтв 08:15:32 69239024
>>692386
Видимо, изначально всё таки это был DnD проект. Хотя и не ясно, почему канпилятор ругается на все функции после "успешной" конвертации.
Как проще всего свичнуться в GML? Можно всё экспорировать или галочку какую нажать?
Аноним 20/08/20 Чтв 10:53:04 69242225
>>692386
У меня при конвертации куча ошибок вылезла. Второй день правлю и хз сколько ещё займёт.

Конечно это лишний повод пробежаться по всем частям игры...
Аноним 21/08/20 Птн 05:10:00 69282526
Аноны, как искать причины классического "Runner.exe exited with non-zero status (-1073741819)"? Игра просто закрывается, обычного окошка с ошибкой нет. Чаще всего (несколько десятков раз) это происходит после первого End Step Event у всех объектов в игровой комнате, но не в меню: чекал с помощью show_debug_message в начале и конце выполнения соответствующих Step Event и End Step Event у всех объектов. Причем такого никогда не случалось при первом запуске конкретно игровой комнаты, часто было при втором и нередко - в один из последующих. Два раза игра закрылась в середине игры, порвавшись при выполнении Step Event у монстра.
Дс_листы удаляю сразу после использования.
Циклы while и подобное юзаю в 2х скриптах (из тех, которые выполняются непосредственно во время нахождения в игровой комнате), вызываются они достаточно редко. В принципе, они могут быть причиной, однако тесты в пустой игровой комнате, где сбоев у этих скриптов быть не должно, всё равно приводят к этой ошибке с, кажется, не меньшей редкостью.
Обнаружил это после переезда на 2.3.
Тут кто-то пишет возможную причину https://itch.io/t/890645/feature-recommendation-tips-for-gms23-users. но GMLive - это всё таки не GMS2, хотя девелопер и пишет, что причина может крыться в багах GMS2.
Есть соображения, как искать ошибку?
Аноним 21/08/20 Птн 05:18:54 69282627
>>692825
UPD: дебаггерый режим просадки в FPS не показывает (вроде... из-за некоторой непредсказуемости момента вылет мог не успеть глянуть), но есть секундного масштаба фриз перед вылетом.
Аноним 21/08/20 Птн 05:24:24 69282728
>>692825
>>692826
UPD №2: Может дело в изменениях синтаксиса? В релизном посте YYG не нашёл упоминаний о переработке старых команд. Может, дело в том, как работают новые функции? Или работе с arrays (потому что [ , ] не конвертнулось в [][], но продолжает работать, как и array_length/height_1d/2d).
Аноним 21/08/20 Птн 11:38:30 69286729
>>692422
После того, как обнаружил что у меня ещё и пропали НЕКОТОРЫЕ из прикреплённых файлов и что сломались НЕКОТОРЫЕ из функций сохранения, и перестали проигрываться НЕКОТОРЫЕ звуки, принял решение не перекатываться.

Методы буду осваивать после того, как котёл доделаю.

Аноним 21/08/20 Птн 11:58:43 69287430
>>692825
Такое бывает, если ты где-то конкретно накосячил.
Создай debug project и закрывай комментами код, с которым ты работал в последнее время и пробуй запускать. Когда сообщение "Runner.exe exited with non-zero status исчезнет поймёшь, где именно искать.
Аноним 21/08/20 Птн 11:59:13 69287631
>>692825
Размер texture page в опциях не менял?
Аноним 21/08/20 Птн 13:37:47 69291032
Так, посоны, хочу в триджэ режиме вращать объект по оси направления вгляда камеры через d3d_transform_add_rotation_axis(xa,ya,za,angle), мозги совсем дегроднули от многолетнего просмотра порно, не соображаю как мне этот аксис высчитать, синусы катангенсы в школе очень хуево проходили, а занятия с матрицами по высшей матеше упустил в универе в своё время.
При том мне пока даже хватит оставить z компонент за ноль, камера по вертикали мало двигается. Как из переменной поворота камеры простым кодом высчитать x и y компоненты вектора оси?
Я мог бы конечно наговнокодить лютое говно, которое будет даже работать, но лучше же нормально закодить.
Аноним 21/08/20 Птн 22:44:01 69319433
>>692910
d3d_transform_add_rotation_axis(cos(degtorad(o_camera.pan)),sin(degtorad(o_camera.pan)),0,-10(1-2side))
сделал так, но чот не всегда по нужной оси вращает, когда угол поворота камеры ближе к 0 90 180 и 270 то работает как по маслу, а на углах в 45 градусов ебенит по другой оси, как-будто я и не поворачивался
Аноним 22/08/20 Суб 09:07:49 69323934
>>692874
Хорошо, спасибо, попробую. Странно только то, что почти всегда вылетает, между эндстепами предыдущего шага и новыми степами. Draw? Баги 2.3? В 2.2.5-то не было такого (ВРОДЕ)
>>692876
Вроде нет. Может, само? Всё равно сравню. Спасибо, анон.
Аноним 22/08/20 Суб 20:10:43 69341135
>>693239
Безрезультатно. Зато в 2.2.5 всё збс. Подозреваю, что это баг 2.3.
Аноним 27/08/20 Чтв 23:22:41 69573836
>>692825
Врываюсь в тред! Короче, у тебя где-то дата вытекает лишняя, проверь наследуемость, и ds листы и карты.
Сегодня столкнулся с такой траблой, тоже долго ковырялся.
Аноним 28/08/20 Птн 07:37:52 69600137
>>695738
Все ds-листы обычно больше десятка строчек не живут (но перепроверю, все ли убиваются), карт и наследуемости нет. Энивей, спасибо за внимание и советики, анон.

Аноним 07/09/20 Пнд 22:26:55 69768938
.png 486Кб, 736x530
736x530
Разбужу мёртвый тред.
Предположим, мне нужно рисовать спрайт, который не вшит в сам объект, и его анимацию нужно будет контролировать (выключать, если она кончится, например). В таком случае нужно будет создавать скорость image_index'а для этого спрайта отдельной переменной и прибавлять по команде. Вопрос: по какой формуле тогда просчитывать эту скорость, чтобы она была идентична той, что указана на самом спрайте?
Аноним 08/09/20 Втр 15:17:05 69773839
>>697689
Нихуя не понял, дай пример.
Аноним 08/09/20 Втр 19:41:52 69779240
>>697738
Ну например, в draw event пишу:
if draw
{
draw_sprite(sprite_name,spd,x,y)
}

В то же время в step event:

if !draw
{
draw = true
spd += 0.1
}

if spd >= 10
{
draw = false
spd = 0
}

Как в данном случае рассчитать всё таким образом, чтобы прибавка к spd хотя бы приблизительно была равна нужной скорости, которая указывается на спрайтах (10 fps, 15 fps)?
Аноним 09/09/20 Срд 00:03:49 69781141
>>697689
Ну смотри, у тебя есть room speed, которая 60 по умолчанию, у тебя есть спрайт допустим 15 фпс, 60/15=4. Соотвественно чтобы он работал с нормальной скоростью, тебе нужно показывать инкрементировать image_index раз в четыре степа, то есть в примере ниже будет у тебя что-то вроде spd+=0.25, только напрямую это сделать не выйдет, draw_sprite только целые значения принимает.

А вообще проще было бы сделать спрайт отдельным объектом.
Аноним 11/09/20 Птн 17:32:38 69823542
Почему гамункер 1.4 иногда проигрывает не те звуки, которые я прошу? Ассет кеш сбрасывал уже 2 раза
Аноним 11/09/20 Птн 18:43:11 69825243
>>697811
Draw_sprite прекрасно принимает не целые значения. Он просто отбрасывает не целую часть, как floor().
Аноним 12/09/20 Суб 01:05:44 69832544
Во сколько обойдется системник для комфортной работы в гамаке? Чтоб без тормозов, фризов и т.д. Ниче понтового в плане графики и механик делать не собираюсь, что то на уровне hotline miami.
Аноним 12/09/20 Суб 10:41:17 69835745
>>698325
System Requirements

OS: Microsoft 64bit Windows 7.
Processor: 64bit Intel compatible Dual Core CPU.
Memory: 2 GB RAM.
Graphics: OpenGL 4-compliant onboard graphics.
DirectX: Version 11.
Storage: 3 GB available space.
Аноним 12/09/20 Суб 14:54:30 69838746
>>698325
На б/у Thinkpad за 10к рублей будет летать.
Аноним 03/10/20 Суб 14:08:05 70197447
По урокам и гайдам можно без зания кода создать бродилку со стрельбой типа подземного человека? Музыка и рисование не проблема
Аноним 03/10/20 Суб 18:13:07 70199348
Аноним 04/10/20 Вск 20:01:13 70208749
>>701993
на драг н дропе можно или в любом случае нужно смотреть на код других?
Аноним 04/10/20 Вск 20:23:13 70208850
Сап двощ. Делаю подобие платформера, пытаюсь заставить героя стрелять. Все работает, но он стреляет по прямой, хотя хотелось бы чтобы со временем пуля снижала свою высоту. Как это реализовать? Вот код который я пока использую для создания пули в коде персонажа
if keyboard_check_pressed(ord("F"))
{
b = instance_create(x, y, obj_projectile)
if (image_xscale = 1) b.direction = 180;
else b.direction = 0;
b.speed = bulletspeed;
}
Аноним 04/10/20 Вск 21:20:31 70209351
>>702087
Драг н дроп - это отсталая тема, что-то типа базового кодинга для самых маленьких. Симулятор ходьбы в сайдскроллере в нём может и удастся сделать, но для случая, если тебе нужен будет больший функционал, лучше сразу начинать кодить на ГМЛ.
>в любом случае нужно смотреть на код других?
Ну если ты говоришь, что у тебя нет знаний кода вообще, то да, нужно смотреть на то, как делают другие, и курить мануалы гамака, в которых говорится, какая функция что делает. Потом уже поймёшь, как и что работает, и будешь сам делать.
Аноним 05/10/20 Пнд 02:47:09 70211852
>>702088
В смысле, чтобы она у тебя по баллиcтической кривой двигалась?
Пишешь в step пули что-то вроде
speed-=0.01
y-=0.001
и радуешься.
Кстати, F -- это не самый лучший выбор для кнопки стрельбы, ctrl или z были бы удобнее.
Аноним 05/10/20 Пнд 09:06:55 70213253
>>702093
Ну епт, обидно. Я послушал этого Спелдинга, и ладно на ангельском говорит, более менее понятные слова, но как же он тараторит, какой то акцент непонятный + дефект речи. одним словом программист
Аноним 05/10/20 Пнд 16:42:29 70228354
>>702118
Спасибо конечно за совет, но это нихуя не сработало. Пули все еще летят строго горизонтально.
Аноним 05/10/20 Пнд 16:58:15 70229855
>>702283
Ну он тебе предложил у изменять на 1/1000. Изменяй у на 10 и посмотри на разницу.
Подгоняй цифры в соответствии со своими размерами и скоростями.
Аноним 06/10/20 Втр 11:46:58 70238856
>>686540 (OP)
>адекватный
>>686540 (OP)
> Десктоп версия 1600р
>>686540 (OP)
>платный
Да я на такие деньжищи джва месяца жить буду!
мимо среднестатистический геймдевелопер
Аноним 06/10/20 Втр 12:27:08 70240057
>>698235
Это может происходить когда игра обращается к конкретному айди ресурса, если стоящие перед ним звуки добавлялись/удалялись игра по этому айди находит другой ресурс. Если в этом дело, попробуй к звукам обращаться через ассет_гет_индекс и вводи там стринг с названием ресурса.
Аноним 06/10/20 Втр 16:40:31 70246958
image.png 4Кб, 311x315
311x315
>>702118
>>702298
Изменения цифр помогли, но траектория все еще не та, видимо я объяснил через жопу. Короче вот, красным показано как они летят сейчас, а зеленым - желаемый результат
Аноним 06/10/20 Втр 19:07:36 70249059
>>702469
Графики функции в школе проходили? Напиши функцию, которая рисует линию №3.
Аноним 06/10/20 Втр 19:33:10 70249760
Аноним 07/10/20 Срд 03:50:28 70254661
>>702469
А, там у меня небольшой проеб в коде, забыл как в гамаке координаты работают, нужно к y прибавлять, а не отнимать.
попробуй так:

if (speed>1){
speed-=0.1
}
y++;


Будет падать, не прилетая обратно.
А если хочешь реальную арку, чтобы сначала еще и поднималась, то тогда нужно ввести понятие вертикальной скорости, которую ты прибавляешь ко все тому же y:

y+=vspeed
vspeed+=0.1;

и про которую в create пишешь
vspeed=-3; (ну или какое число тебе подходит)

Или можешь усадить пулю на path в относительных координатах https://docs2.yoyogames.com/source/_build/2_interface/1_editors/paths.html
Аноним 07/10/20 Срд 15:43:17 70261362
>>702388
Возьми да спирать на распродаже, они обычно до косаря скидывают.
Аноним 08/10/20 Чтв 00:14:51 70268963
>>686540 (OP)
Собираюсь с нуля сделать успешную игру за год в одно рыло. Какие подводные?
Аноним 08/10/20 Чтв 00:51:06 70269464
>>702689
Сроки нереалистичные.
Аноним 08/10/20 Чтв 11:54:18 70273065
>>702689
> Какие подводные?
Надоест через неделю и дропнешь. Но дропнешь не сразу. Ещё месяц будешь манямечтать о сеттинге, как там замок злого устроен, какие домики в лесу эльфов, как устроена иерархия разбойников. А потом еще через месяц придёт понимание, что тебе вообще нахуй не интересно этим заниматься.
Аноним 08/10/20 Чтв 18:52:22 70279266
>>702694
Ну смотри:
2 недели - освоение основных возможностей движка, которые мне нужны.
2 недели - создание тестового уровня для отработки механник
Какое-то время на освоение анимаций. Прокачивнаие скилла в процессе
Далее покупка моделек и прочего, ибо я не художник
Все, можно собирать и пилить игру
>>702730
Ух, опасно. Взял пока пробную версию. Если через месяц не надоест, то приду сюда с результатами
Аноним 14/10/20 Срд 15:47:57 70400767
image.png 46Кб, 206x525
206x525
>>686540 (OP)
При запуске дебагера вот эта хуйня на пике не появляется. Как-то раз закрыл ее и все. Как фиксить?
Аноним 14/10/20 Срд 20:32:30 70410868
>>704007
Сделай reset layour. Где-то есть такой пунктик в меню window.
Аноним 15/10/20 Чтв 23:21:57 70437669
Аноним 17/10/20 Суб 17:32:47 70467770
image.png 4Кб, 241x121
241x121
Help. Настроил камеру, чтобы следовала за персонажем. И теперь он размывается в движении. Кручу настройки с пика - результаты рандомные, но не не, которые нужны. Если оставить камеру статичной, то все ок. Как фиксить?
Аноним 17/10/20 Суб 18:48:26 70468371
>>704677
Пофиксил нормальным кодом
Аноним 20/10/20 Втр 07:41:45 70516472
Аноним 23/10/20 Птн 19:55:53 70603173
>>705164
Что значит "осваивать"? Что там осваивать?
Аноним 23/10/20 Птн 19:58:17 70603374
>>706031
Конструктор, ёпт.
Аноним 24/10/20 Суб 11:57:34 70608875
Раньше использовал view_Xview и т.д. Сейчас камеру в гмс2 получается перетаскивать только так:
viewx=camera_get_view_x(view_camera[0])
camera_set_view_pos(view_camera[0],viewx,camera_get_view_y(view_camera[0]))

Использование camera_set_view_speed(view_camera[0],tihohodi,0) ничего не дает

Есть ли внятный туториал по камере? а то находил только со слежением за объектом
Аноним 24/10/20 Суб 11:59:11 70608976
Аноним 29/10/20 Чтв 18:16:00 70694777
Анон, имеете ли дело с физикой в гамаке? Интересно узнать, может ли у конкретного инстанса слететь взаимодействие с другим объектами?

Вводная такова: я создаю три стены циклом и меняю их размер, как мне надо:
for ...
{
var _wall = instance_create_layer(..., "Instances", obj_wall);
with {_wall}
{
image_xscale = ...
image_yscale = ...
image_angle = ...
}
}
Потом включаю физику у всех:
with (obj_wall)
{
box_fixture = physics_fixture_create();
physics_fixture_set_density(box_fixture, 0);
physics_fixture_set_awake(box_fixture, true);
physics_fixture_set_box_shape(box_fixture, sprite_width/2, sprite_height/2);
my_fix = physics_fixture_bind_ext(box_fixture, id, -(sprite_width / 2), -(sprite_height / 2));
physics_fixture_delete(box_fixture);
}

Изначально у obj_wall галочки стоят на Visible и Solid (то есть их нет на Persistent и Uses Physics), а в физике стоит галочка на Start Awake;
В итоге, как и планировалось, я получаю 3 длинных стены, которые пересекаются своими концами. Сама проблема вот в чём: 1 или 2 стены обычно настоящие, а остальные (стало быть 2 или 1) рисуются, у них отображается fixture (или так: "flag = phy_debug_render_aabb | phy_debug_render_collision_pairs | phy_debug_render_obb;" только collision shape отображается?), но персонаж сквозь них легко проходит.

Может ли дело быть в том, что слетает физика? Или в чём? (обоснуя за объекты вместо тайлов не будет, сорян)
Аноним 29/10/20 Чтв 18:17:32 70694878
>>706947
быстрофикс естественно \t в начале строк у меня нет, двощи такие сложные
Аноним 30/10/20 Птн 15:49:09 70708179
>>706947
UPD: Видимо, проблема том, что fixture фигово накладываются для тех стен, у которых image_xscale и image_yscale задавался отрицательным. Хотя рисуются такие стены хорошо и правильно. Как и их fixture. И это странно. Баг гамака или я что-то упускаю?
Аноним 30/10/20 Птн 18:50:09 70710480
>>706947
Если у объектов в настоящее время нет импульса, то вместо использования фикстур для создания колизии можно вполне создавать на месте старого новый объект)
Аноним 30/10/20 Птн 18:59:23 70710581
>>707104
Зачем так делать?

Энивей, проблема разрешилась: при накладывании fixture на объект с отрицательным image scale происходит ничего. Вроде. Всё исправил. Спасибо за внимание.
Аноним 05/11/20 Чтв 13:23:04 70784982
Можно ли двигать фон кодом? собираюсь сделать параллакс, но могу только объектами
Аноним 05/11/20 Чтв 22:18:46 70794883
Аноним 06/11/20 Птн 01:10:53 70797084
Аноним 09/11/20 Пнд 23:58:40 70879785
>>707970
Ну в последнее время да, по крайней мере базовый функционал игры. Вообще судя по вопросу ты только вкатываешься в гейдев, так что тут особой разницы нет, главное - понять, как что работает, а дальше сможешь сам хуячить с нуля почти всё, так что тут он подойдёт, ну и ещё какой-нибудь PixelatedPope.
Аноним 10/11/20 Втр 00:23:11 70880186
Как скочять ваше говно? Платить чтобы попробовать я конечно не собираюсь.
Аноним 10/11/20 Втр 00:35:35 70880487
>>708797
Да, я тока вкотился, для меня это все в новинку. Спасибо, антош.
Аноним 10/11/20 Втр 01:31:37 70880688
>>708804
Не за что. У Шона советую глянуть последнюю серию по созданию экшон-рпг, где он показывает, как с нуля сделать небольшую игру с камерой, ходьбой и прочим.
Аноним 10/11/20 Втр 13:35:51 70885889
>>708801
> Платить чтобы попробовать я конечно не собираюсь.
Там триал месяц. Не толсти.
Аноним 10/11/20 Втр 14:28:34 70887290
>>708858
Где скочять чтобы бесплатно пробовать без ограничений по времени?
Аноним 10/11/20 Втр 16:47:56 70890291
>>708872
Нигде.
Если "попробовать" можегь поискать Game Maker 8 - у него вроде есть пиратки.
Аноним 10/11/20 Втр 17:14:33 70890792
>>708902
> Нигде.
Почему ещё не взломан?
Аноним 10/11/20 Втр 17:26:11 70890893
>>708872
А чем тебе месяц не время?
В сторону опен сорс альтернатив не смотрел?
Аноним 24/11/20 Втр 12:43:24 71126294
Аноним 24/11/20 Втр 16:30:13 71129695
Аноним 24/11/20 Втр 18:54:25 71132696
>>711296
Дело в том, что вот сделал я так, чтобы шар отскакивал, да. Но вот проблема - если в самом начале шар попадает в верхнюю стенку, то он начинает скакать вверх-вниз и в результате застревает
Аноним 24/11/20 Втр 19:55:05 71133197
>>711326
Тред и диалог не читал, но такая проблема может быть.
Тебе надо проверять находится ли шар/точка за стенкой + направление его вектора. Например, если условные pos.y > wallheight && dir.y > 0, то dir.y = -dir.y. То есть даже если шар телепортнётся за уровень, то рано или поздно он вернётся в свою зону.
Конечно, в нормальных играх, наверное, таких проблем не должно быть, так как скорость поменяется раз и за ним же положение объекта. Твой вариант может случиться, наверное, если ты 2 раза вызываешь одинаковый код, где не надо или ещё что.
Аноним 24/11/20 Втр 21:50:05 71135398
>>711331
Спасибо от души, с меня чай
Аноним 25/11/20 Срд 21:54:02 71147399
>>686540 (OP)
Значит, возник вопрос в гейммейкере классическом (не studio). В общем, как сделать так, чтобы объект делал reverse при соприкосновении с другим объектом только если он идет вниз?
Аноним 26/11/20 Чтв 22:44:44 711674100
>>686540 (OP)
значит гейм-мейкер 8.1, вот. как правильно заставить проигрывать анимацию разрушения объекта при колижне, чтобы не было лупов и объект одновременно и уничтожался, и проигрывал анимацию?
Аноним 28/11/20 Суб 14:21:17 711880101
>>711674
Хуй знает что там в легаси версиях.

Проверяй if image_index >= image_number-1 или используй animation end event
Аноним 06/12/20 Вск 23:42:55 713502102
А есть годные текстовые туториалы? Ненавижу видеоуроки.
Аноним 07/12/20 Пнд 11:10:42 713542103
Аноним 10/12/20 Чтв 16:21:34 714189104
Вообще не могу понять отладку в гмс2, мне нужно чтобы я мог видеть какой конкретно код выполняется в данную секунду
Аноним 12/12/20 Суб 20:17:55 714650105
А ещё непонятно как организовать повтор игры
Аноним 14/12/20 Пнд 12:18:48 714926106
Аноним 17/12/20 Чтв 13:32:32 715371107
Какими способами можно организовать тень на задний фон?
Аноним 17/12/20 Чтв 15:46:02 715381108
>>715371
>Какими способами можно добраться от точки А до точки Б?
По дороге? Через лес? Через горы? Может точка Б в космосе?
Опиши, блеат, что ты хочешь сделать. Со скриншотами.
Аноним 17/12/20 Чтв 16:56:55 715395109
>>715381
на маркетплейсе нашёл прекрасный пример, спасибо, вопрос отпадает
Аноним 17/12/20 Чтв 18:17:55 715407110
>>715381
нет, пример оказался для квадратных объектов, я помню популярный был пример наэкранного управления для tds , там бонусом как-то тень простенько была реализована
Аноним 20/12/20 Вск 23:40:31 715961111
>>708902
>можешь поискать Game Maker 8 - у него вроде есть пиратки.
У первого ГМ студио точно есть
Аноним 22/12/20 Втр 11:35:47 716175112
>>698325
желательно сисиди, чтобы по полгода не сохранял бекапы больших проектов
Аноним 22/12/20 Втр 11:38:00 716177113
>>702792
Ну что, не надоело в итоге?
Аноним 29/12/20 Втр 12:40:29 717313114
>>686540 (OP)
В гамаке можно лабать на плюсах?
Аноним 02/01/21 Суб 14:16:59 717997115
Сап гамач, подскажите, я 0 в программировании, делаю прототип игры на кастрате при помощи "визуального скриптинга" - но Констракт оказался совсем уебжичным под мои задачи. Делаю вроде как достаточно примитивный платформер-сайдскроллер. Скажите, в гамак смогу вкатиться быстро и делать игру в нем? На констракте где то 2 года торчал, + давно в старых версиях первого гамака. Там сейчас обязательно gml юзать? Или можно ивентами также? GML освоить насколько трудно если 0 в программировании и математике?
Аноним 02/01/21 Суб 15:23:17 718001116
Desktop лицензия которая продается в стиме, позволяет публиковать и продавать игры в том же стиме?
Аноним 02/01/21 Суб 15:29:10 718002117
В стиме пишут про вылеты, краши, про то что проект не восстанавливается, но в основном отзывы с 2018. Сейчас в стим версии есть такое или ок работает все?
Аноним 02/01/21 Суб 18:11:27 718015118
>>718001
Да.

>>718002
У меня за 4 года было несколько крашей, после которых проект не восстанавливался автоматически. Восстановить удавалось руками тем не менее.
В любом случае бэкапы надо всё время делать.

>>717997
>Скажите, в гамак смогу вкатиться быстро и делать игру в нем?
Я лично вкатился в гамак очень быстро. Сносно работающий платформер я запилил через 2 месяца.

>визуального скриптинга
Не занимайся этим говном. Сразу в катывайся в нормальный код.

>Там сейчас обязательно gml юзать
Без языка ничего толкового не сделаешь.

>Или можно ивентами также
Ивенты в гамаке это последовательность выполнения кода в игровом цикле.

> GML освоить насколько трудно если 0 в программировании и математике?
А что вообще может быть сложного в освоении?
if else while repeat знаешь? Плюс минус равно умножить разделить знаешь? Тогда ты знаешь в принципе почти всё. Остальное в туториалах прочитаешь.
Аноним 02/01/21 Суб 20:01:21 718033119
>>718015
>Я лично вкатился в гамак очень быстро. Сносно работающий платформер я запилил через 2 месяца

А с чем возникали проблемы? На что ушло больше всего времени, чтобы запилить сносно, из этих 2х месяцев?
Аноним 02/01/21 Суб 21:07:17 718045120
>>718033
Примерно могу путь описать.

1) Освоение движка по туториалам. Туториал Астероиды.
2) Туториал платформер
3) Свой платформер по туториалу.
4) Понадобились тайловые коллизии разной формы. Сделал по туториалу.
5) Сделал стейт машину игрока и врагов. Опять же по туториалу.

На этом в принципе примитивный платформер был готов. Два месяца освоения.

Дальше захотелось, чтобы враги научились искать путь, перепрыгивать через пропасти, приследовать игрока и т.д. Здесь уже на 3 месяца глубоко забурился в дебри, но на выходе я уже представлял как сделать всё что угодно.
Дальше пошли эксперименты со светом, с партиклами, делал динамичные интерфейсы, разнообразные механики и т.д.
На всё, конечно, нужно время. Но решающим для меня был именно период ёбли с пасфайдингом. Именно тогда я научился программировать.
Аноним 06/01/21 Срд 05:28:25 718757121
Есть ли смысл брать версию 2, если есть 1? Первой не пользовался, но она у меня есть.
Аноним 07/01/21 Чтв 15:05:12 719063122
Не могу понять от чего лаги в игре(для телефона), игра не сказал бы что СЛИШКОМ тяжёлая. Первая игра была сложнее в плане механики, но не лагала, может ли это быть связано с новым runtime?
Аноним 08/01/21 Птн 16:30:07 719335123
>>719063
Проверяй через дебаггер, на каких моментах у тебя просадки.
Аноним 09/01/21 Суб 06:24:26 719475124
>>719335
мб поможет кому-то в будущем, убрал ассинхронные события синхолнизации излишней с гуглсервисами
Аноним 09/01/21 Суб 16:16:48 719530125
Какие значения по умолчанию у вас стоят в значении alias password?
Аноним 09/01/21 Суб 16:57:17 719552126
Аноним 11/01/21 Пнд 01:05:34 719879127
Пацантре я сначала качнул триал гмс 2. Зарегил йойо аккаунт. Потом удалил гмс. Приобрел в стиме десктоп версию - и когда захожу с стим версии, у меня висит напоминание о конце триал версии через х дней. Что делать?
Аноним 11/01/21 Пнд 01:11:24 719881128
>>719879

все, сделал линк акков, ми сори
Аноним 13/01/21 Срд 00:47:47 720389129
Есть в гамаке переменная которая возвращает значение текущего кадра анимации спрайта? Типа current frame. У меня проигрывается анимация ходьбы гг например, и когда я перестал двигаться - чтобы анимация устанавливалась не на какой-то кадр, а на последний кадр который был в цикле анимации во время ходьбы
Аноним 13/01/21 Срд 00:56:33 720392130
>>720389

Пока пришел к такому решению:

if move!=0
{
image_speed=1;
}
else
{
image_speed=1;
)
В принципе как надо работает
Аноним 13/01/21 Срд 00:56:58 720393131
>>720392

Блеан, image_speed=0 в 2 случае конечно
Аноним 13/01/21 Срд 15:43:31 720499132
>>720389
Падажжи, ёбана. Разве в гамаке фрейм сам по себе не остаётся на последнем кадре если остановить анимацию, раз в конце цикла ходьбы даже приходится её скидывать на нулевой фрейм кодом?
Аноним 13/01/21 Срд 21:56:54 720596133
16030590953250.gif 4288Кб, 640x618
640x618
Если я вызываю скрипт и в нём меняю Х и У напрямую, то эти самые Х и У берутся у объекта, в котором я вызвал этот самый скрипт? Я же правильно понимаю работу новых скриптов в гамаке?
ньюфаг
Аноним 13/01/21 Срд 23:40:16 720604134
>>720596
Да. И это не только в новых скриптах, так всегда было. Если нужно сменить переменные у других объектов, то сначала ставишь перед ней имя объекта, типа "obj_player.x".
Аноним 14/01/21 Чтв 09:29:25 720633135
Аноним 14/01/21 Чтв 12:59:41 720663136
Аноним 14/01/21 Чтв 13:53:43 720668137
>>720663
так же есть глобальные переменные (скорее всего ты знаешь, но мало ли), которые игра помнит всегда, к ним обращаются через global.zalupa
но ещё глобалки можно заранее объявлять (например в самом начале игры) через команду типа globalvar zalupa; и тогда к ней можно будет обращаться просто zalupa, без приставки 'global.'

а так же есть локальные переменные, они работают только в конкретном куске кода где ты его пишешь, либо в скрипте, а потом уничтожаются, очень удобная штука, объявляется в начале куска кода, например через var zovno, zhopa=false, piska='mo4a';
либо через var zovno; vart zhopa=false; var piska='mo4a';
обрати внимание на true/false, в ГМЛ это не булеановая переменная, а просто 1 и 0 соответственно, считаются за числовые переменные и их можно в мат рассчетах использовать, например hp=10+5*(global.hard)
Локальные переменные удобны чтобы не воротить говна в коде и вместо этого жопожуйства:
draw_sprite(asset_get_index('spr_' + choose(zhazha, lazha, kazha) + string(irandom(3))), image_index, x + 60 + sprite_width(sprite_index), y - 20/5 + sprite_height(sprite_index)/4);
можно сделать что-то типа такого:
var _spr=asset_get_index('spr_' + choose('zhazha', 'lazha', 'kazha') + string(irandom(3)));
var _x=x + 60 + sprite_width(sprite_index);
var _y=y - 20/5 + sprite_height(sprite_index)/4;
draw_sprite(_spr, image_index, _x, _y)
Аноним 14/01/21 Чтв 15:10:43 720677138
>>720499
> Разве в гамаке фрейм сам по себе не остаётся на последнем кадре если остановить анимацию

А как остановить анимацию?

>>720633
>image_index

Как я понял, код:

image_index='номеркадра'

Установит текущий кадр анимации на тот который я объявлю

А мне нужно установить на тот которого объект достиг пока выполнялся код

НУ типа

if player_stop()
{
image_index=last_frame
}
else
{
код анимации
}

Ну и как мне получать вот этот last_frame? Помогите плиз
Аноним 14/01/21 Чтв 15:19:41 720680139
Как сбросить триал?
Аноним 14/01/21 Чтв 22:10:13 720771140
walk.png 129Кб, 1275x672
1275x672
>>720677
В ютубе миллиард вариантов передвижения объекта показывают.
У каждого ютубера по гамаку плюс-минус свои варианты передвижения и столкновений. Приветливый космонавт даже систему одежды для перса покажет и расскажет.
Выбери один видос и перепиши код прямо с экрана, нахера ты велосипеды городишь?
Аноним 15/01/21 Птн 19:33:39 721064141
>>720677
image_index почти никогда не принимает целочисленных значений. Это real, floor которого определяет текущий кадр.
Так что если ты хочешь поймать третий кадр анимации делай так:

if floor(image_index) == 2
(кадры считаются с нуля. Третий кадр убедт иметь Image_index от 2 до 2.99999999)

или

if image_index >= 2 && image_index<3

Если ты хочешь остановить анимацию на последнем кадре:

if image_index >= image_number -1
{
image_speed = 0;
}

Аноним 16/01/21 Суб 00:20:55 721168142
А гейммейкеру нужно что-то платить, когда выкатываешь свое говно на продажу (не у них на маркетплейсе, а вообще, в стиме например)? Или купил лицензию и доволен?
Аноним 16/01/21 Суб 00:37:21 721189143
>>721168
>А гейммейкеру нужно что-то платить, когда выкатываешь свое говно на продажу
Нет.
Аноним 20/01/21 Срд 12:21:23 722610144
"Windows не удаётся получить доступ к указанному устройству, пути или файлу."
У одного тестера такая беда на десятке, у других на десятке и семёрках такого нет. Гугл говорит, что проблема в правах. Никак не фиксится с моей стороны и проблема в его винде?
Аноним 20/01/21 Срд 14:44:09 722637145
Аноним 20/01/21 Срд 23:18:17 722715146
Аноним 21/01/21 Чтв 06:36:43 722741147
windows-ne-udae[...].jpg 38Кб, 755x411
755x411
>>722637
Адекватный гамак тред встречает вот так, пассивно-агрессивно? Что такое "неадекватный" тред я даже представить боюсь.
Ошибка при запуске файла. Всё.
Аноним 21/01/21 Чтв 14:32:19 722816148
>>722741
>Адекватный гамак тред встречает вот так, пассивно-агрессивно?
Да, всё верно. Ты даже не удосужился копипастнуть код ошибки сюда, почему ты думаешь, что кто-то должен его гуглить по ключевым словам и пытаться найти что-то, что косвенно соответствует твоему случаю? Ошибок такого типа до ебени матери, всех цветов и размеров.
>Ошибка при запуске файла. Всё.
Ну хз, лично первое, что лично мне пришло на ум - запустить от имени администратора. В гайдах, которые ты и сам мог найти по коду ошибки, написано то же самое.
https://techarks.ru/windows/files/windows-ne-mozhet-poluchit-dostup-k-ukazannomu-ustrojstvu-puti-ili-soobshheniyu-ob-oshibke-fajla/
Дальше сам.
Аноним 24/01/21 Вск 02:53:18 723424149
Зачем существуют юзер эвенты? Я так понимаю, это очередная паста спагетти кода типа алярмов и прочей поеботины?
Аноним 30/01/21 Суб 00:15:30 724403150
>>723424
Не совсем.

Ты можешь записать туда код и использовать их вместо скриптов.

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

Аноним 30/01/21 Суб 10:24:10 724420151
Хочу сделать jRPG, но не в классическом виде, а с добавлением экшен незначительного элемента - вроде как в Paper Mario где надо было по таймингу нажимать на кнопки во время фазы боя, чтобы нанести больше урона.

Идиотский вопрос, но насколько сложно будет? С какими сложностями предстоит столкнуться? По туторам на гамаке уже делал платформер и top-down стрелялку. Давно когда то делал раннер со случайной генерацией препятствий через массив. Может есть какие то материалы по поводу того как в jrpg баланс настраивают
Аноним 30/01/21 Суб 11:51:55 724423152
https://heartbeast-gamedev-school.teachable.com/p/make-a-turn-based-rpg-in-gamemaker-studio

Как считаете, такие курсы стоящие или? В принципе, у меня нет проблем с самообучением, то есть, платформер и тдс я спокойно реализовал - не без затыков конечно. Но в самообучении у меня 2 проблемы, что до gml я не сталкивался с кодингом, и что отсутствует структурносить - то есть в конечном прототипе все как бы работает, но вероятно код кривой и костыльный, то есть если для прототипа где надо просто посмотреть как играется это еще нормально, но для реального продукта - нет
Аноним 30/01/21 Суб 23:28:34 724499153
>>724423
Когда я только-только начинал, ролики хартбиста для меня были очень полезны.
Сейчас (уже 4 года прошло) я считаю это малополезным шлаком.

150$ отдавать за это... если для тебя это незначительная мелочь - то смело бери. Для новичков это очень хорошо подойдёт.
Я бы даже когда новичком был, брать не стал. Самообучение для меня проще и быстрее.

Аноним 31/01/21 Вск 19:39:56 724669154
Купил в стиме deskop версию, и пошел 30ти дневный отсчет пробного периода. Как я понимаю я преобрел ее на месяц? А потом что, нужно еще раз казну пополнять?
Аноним 31/01/21 Вск 19:55:12 724675155
>>724669
В блядских обсуждениях блядского стима какждое второе блядское сообщение по этому вопросу. Как вы, блять, игры собрались делать не умея читать?
Аноним 31/01/21 Вск 20:51:08 724688156
>>724675
Ладно, ладно, не урчи. Хотя бы наводку дал насчет обсуждения сообщества, спасиибо. Сто харчей тебе в ебыч за агрессию.
Аноним 01/02/21 Пнд 00:59:52 724769157
>>724688
Но он тащемта прав. Не умеешь гуглить - вон из профессии.
Аноним 02/02/21 Втр 11:41:54 725400158
>>724403
Так, а как ты этот юзер ивент вызываешь?
Аноним 03/02/21 Срд 11:22:57 725651159
>>724403
with obj_jukebox
{
event_perform(ev_user0,1)
}
Аноним 05/02/21 Птн 09:10:39 726008160
>>725651
> ev_user0
Нумерованная числовая константа? Стронг!
Аноним 06/02/21 Суб 14:52:23 726145161
А на вашем движке можно сделать изометрическую игру типа первого фоллаута?
06/02/21 Суб 15:55:33 726154162
>>726145
разверну вопрос, есть ли ассет для системы трпг/српг с клеточками? на юнете есть пошаговая инструкция, но это пиздец оверкил, хочу сделать что-то уровня инто зэ брич, только с людьми и ЕЩЁ проще
Аноним 06/02/21 Суб 16:29:13 726159163
Аноним 07/02/21 Вск 14:18:31 726418164
Здраствуйте работяги геймдевелоперы, хочу вкатиться в этот движок для создания своей игры, вопрос такой, если разницы между стимовской и интернет версией? А также если пользоваться стимовской то придётся каждый 12 месяцев оформлять подписку?
Аноним 07/02/21 Вск 14:34:03 726419165
>>726418
Побуду добреньким.
Во-первых, в стиме ты покупаешь ключ для yo-yo-games аккаунта, к которому привязываешь свой стим-аккаунт. Только тогда это будет не триальной версией. Во-вторых, китайцы купили оперу, а опера купила гейм-мейкер, так что хз что будет с движком в ближайшее время.
Аноним 07/02/21 Вск 15:04:48 726428166
Аноним 07/02/21 Вск 16:58:46 726456167
>>726419
Китайцы купили Cocos Studio, он превратился в стандартный китайский движок, неотличимый от других.
Аноним 07/02/21 Вск 17:30:25 726463168
>>726456
Он же опенсорс вроде, разве есть другие китайские опенсорс движки?
Аноним 07/02/21 Вск 17:33:21 726464169
Аноним 07/02/21 Вск 17:36:10 726466170
>>726464
А, точно, слышал один раз название но забыл
Аноним 07/02/21 Вск 17:40:23 726468171
Аноним 07/02/21 Вск 17:52:51 726474172
>>726468
Я знаю, я имею в виду, что гейм мейкер тоже превратится в джаваскриптовый движок для создания типично китайских игр, в лучшем случае. В худшем его просто закроют.
Аноним 07/02/21 Вск 18:24:06 726478173
>>726474
>В худшем его просто закроют.
Как и зачем? И да, хуже той хуйни с драгндропом и прочей ебалы для кодинга без кодинга они уже в любом случае не добавят.
Аноним 09/02/21 Втр 03:10:22 726887174
Снимок экрана ([...].png 64Кб, 1087x611
1087x611
Ради христа помогите начинающему затупку, почему аргументы не действую в скрипте?
Аноним 09/02/21 Втр 04:47:25 726892175
>>726887
Синтаксис проверь
Аноним 09/02/21 Втр 09:35:36 726897176
>>726887
Ты наверное хотел написать tilemap_GET_at_pixel
Аноним 16/02/21 Втр 23:05:46 728112177
image.png 648Кб, 640x480
640x480
Рубрику "How did they code it" объявляю открытой. И на повестке дня Тоха, ну и буллет хелл как сущность. Правильно ли я понимаю, что каждая пулька - это объект, который обновляется 30/60 раз в секунду. Учитывая количество таких пулек, как это безобразие не тормозит? Это ж сколько памяти надо выделить для такой ебаной тучи экземпляров класса, скажем, Bullet, покрасить их и перемещать по экрану.
Аноним 16/02/21 Втр 23:09:41 728113178
>>728112
В тохе хардкап всего на 2000 пулек на экране.
Аноним 16/02/21 Втр 23:11:58 728114179
1555126581043.png 38Кб, 609x198
609x198
Аноним 16/02/21 Втр 23:14:40 728115180
>>728113
>>728114
Типа при достижении капа те пули, что вышли за пределы экрана (а при достижении капа они скорее всего уже за пределами экрана), просто изнечтожаются?
Аноним 16/02/21 Втр 23:24:53 728116181
>>728115
Да, скорее всего исчезают самые старые. Вообще, он мог посчитать - например, если у него 100 пуль в волне, то можно пустить только 20 волн.
Вообще обычно используются пулы объектов - объекты не удаляются, просто делаются невидимыми, и им выдаются новые координаты и возможно спрайты. Кроме того, пули в волне не движутся независимыми - там можно какие то оптимизации сделать, например если они летят "елочкой", то сразу двинуть каждую третью влево вниз, другие вправо вниз, оставшиеся ровно вниз. Аналогично круги, там не нужно всем хранить их вектор, можно менять вектору x и y по синусоиде в цикле.
Аноним 17/02/21 Срд 08:20:40 728142182
image.png 1341Кб, 1000x823
1000x823
Аноним 20/02/21 Суб 10:28:48 728826183
>>728112
достаточно скомпилировать через yyc
Аноним 20/02/21 Суб 21:20:29 728984184
540196757494300[...].png 22Кб, 115x128
115x128
Сап, аноны. Поделитесь советом, плиз. Хочу чисто для себя попытаться сделать игру в стиле Contra Hard Corps. Гамак буду изучать с нуля. Игра в жанре run and gun, но хочу добавить элементы из рпг. Лайтовую прокачку и абилки, вместо выбора оружия как в Контре. Т.е. дефолтная стрельба и абилки в виде разной магии, которая накладывает статусные эффекты на врагов, хилит гг и т.п.
Вопросы следующие:
1) Есть гайды (видео или текст - безразлично) по созданию чего-нибудь приближенного к олдовой Контре?
2) Гайды по созданию статусных эффектов? К примеру: кровотечение, поджигание и т.п., с последующим постепенным уменьшением хп противника за определённый промежуток времени.
3) Не знаю как описать, опишу как могу. С боссами хочу добиться того же самого, как в той же Контре Хард Корпс. Хотя бы чего-нибудь приближенного. Нужно, чтобы у спрайта босса уязвимыми были определённые места, и чтобы некоторые функциональные части после вливания нужного дамага отваливались. Есть гайды по реализации подобного?
Заранее всех благодарю за ответ и любую помощь.
Аноним 20/02/21 Суб 22:02:57 728991185
Аноним 20/02/21 Суб 23:41:52 729011186
>>728984

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

Придумываешь все необходимые тебе типы коллизий. Прямая платформа, наклон 45 градусов, наклон 30 градусов, плаформа сквозь которую можно спрыгнуть/запрыгнуть и т.д.

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

Создаёшь собственного персонажа - машину состояний. Он будет перемещаться по твоему полю коллизий так, как тебе нужно. Разгоняться с ускорением, тормозить со скольжением, делать прыжок, двойной прыжок, отложенный прыжок, прыжок от стены, прыжок сквозь платформу и т.д. - вот это всё


По второму пункту:

Если по уму...

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

Туда воткнёшь переменные отвечающие за механику кровотечения. Типа.
can_bleed = true;
is_bleeding = false;
bleeding_timer = 0;
bleeding_time = 0;
bleeding_tick_time = 0;
bleeding_damage_per_tick = 0;

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

var _target = sc_определить_id_объекта_с_которым_столкнулась_пуля
//бла-бла, всякий код
sc_enemy_start_bleeding(target,bleeding_time,bleeding_tick_time,bleeding_damage_per_tick)

А в скрипте будет
///@param0 target
///@param1 bleeding_time
///@param2 bleeding_tick_time
///@param3 bleeding_damage_per_tick

var _target = argument0
if _target.can_bleed //если цель может кровоточить
{
_target.is_bleeding = true
_target.bleeding_time = argument1
_target.bleeding_tick_time = argument2
_target.bleeding_damage_per_tick = argument3
if _target.bleeding_timer > argument2 _target.bleeding_timer = 0 //Условие, благодаря которому последующие пули сбрасывают таймер кровотечения, не мешая таймеру кровотечения наносить урон
}


Т.е. скрипт просто будет передавать параметры кровотечения цели.
А цель, соответственно, будет руководствоваться этими параметрами и исполнять алгоритм кровотечения.
Просто опять же упакуешь его в скрипт sc_perform_bleeding() и будешь выполнять его каждый шаг.

В скрипт запишешь что-то типа
if is_bleeding{
bleeding_timer ++
if bleeding_timer >0 && (bleeding_timer mod bleeding_tick_time) == 0 //Если таймер кровотечение делится на время одного тика без остатка и при этом не равен нулю.
{
hp -= bleeding_damage_per_tick //получить урон от кровтечения
sc_сreate_bleeding_effect() //Выполнить скрипт, который создаст разлетающиеся капли крови, например
}

if bleeding_timer >= bleeding_time //условие прекращения кровотечения
{
is_bleeding = false;
bleeding_timer = 0
}

}

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


По третьему пункту.
Да тоже ничего такого экстраординарного. Склеишь босса из нескольких врагов без поведения. Неуязвимые части сделаешь из неуязвимых врагов, уязвимые - из уязвимых. Уязвимые враги полученный урон будут транслировать контроллеру босса.
Сделаешь контроллер босса, который этих "врагов" будет нужным образом перумещать и уничтожать когда "часть отвалилась"

Аноним 22/02/21 Пнд 09:39:56 729218187
>>686540 (OP)
А эта хуйня на рутрекере есть?
Аноним 22/02/21 Пнд 11:11:57 729224188
>>728991
>>729011
Спасибо, анoнчики! Тогда скоро приступлю к изучению. Я находил на русском справку только по 8-й версии, я так понимаю она и для второй студии актуальна? За исключением того, что в студии некоторые команды иначе пишутся, как я понял. Если есть справка на русском по студии 2, то был бы вдвойне благодарен.
Аноним 22/02/21 Пнд 11:25:49 729226189
>>729218
на рутрекере хз, но ломаная версия есть, сам пользовался пока нищуком был, а сейчас есть месяц триала
Аноним 22/02/21 Пнд 16:57:11 729275190
Аноним 23/02/21 Втр 23:29:28 729499191
Аноны, есть два экземпляра объекта obj_knopka
У объекта obj_knopka есть переменная id

У первой id = 0, у второй id = 1

Как сделать так, чтобы действие выполнялось по нажатии ТОЛЬКО мышкой на кнопку у которой id = 0?

СЛедующий код

with (obj_knopka) {
switch knopka_id {
case 0:
if mouse_check_button_pressed (mb_left) {
if collision_point (mouse_x, mouse_y, obj_knopka, false, false) {
//действие

}
}
}
}

Приводит к тому что действие происходит только с первой кнопкой, но тригеррится при нажатии на любую а не только первую
Аноним 23/02/21 Втр 23:36:15 729501192
Или проще говоря - как будет сделать

есть переменная active у объекта knopka

Чтобы действие происходило когда я нажимаю на кнопку у которой active = true (при условии что значение этого acrive разным кнопкам я раздать уже смогу)
Аноним 24/02/21 Срд 08:57:02 729532193
>>729499
break воткни после действия, а то код пикает твой кейс, а потом смотрит куда бы ещё это действие воткнуть, иша по всем условиям, надо это всегда брейком обрывать, если нудны определённые кейсы
Аноним 24/02/21 Срд 10:39:41 729539194
>>729532
А лол. Я вроде ставил. Либо забыл либо код скопипастил без него. Ладно, посмотрю код, проверю
Аноним 25/02/21 Чтв 02:10:46 729663195
А почему в гамаке draw_text выдает -4 если значение переменной = "noone"?

Create event; test_var = noone;
Draw GUI event; draw_text (x, y, noone);

Текст на экране: "-4"
Аноним 25/02/21 Чтв 02:12:16 729664196
Блядь... DRAW GUI: draw_text (x, y, test_var);
Аноним 25/02/21 Чтв 09:34:17 729676197
>>729663
Потому что константа noone имеет значение -4.
Аноним 25/02/21 Чтв 22:59:10 729913198
>>729676
>значение

О как. Спасибо!
Аноним 07/03/21 Вск 06:19:07 731639199
image.png 104Кб, 1692x514
1692x514
image.png 34Кб, 1571x215
1571x215
Аноны, решил запустить проект, который делал в ноябре 2020, на свежей версии студии и тут при запуске вот такой пикрил вылез. Как-то не очень информативно, может кто сталкивался?
Ошибок синтаксиса\компиляции - нет
Аноним 07/03/21 Вск 11:26:52 731654200
>>731639
С тех пор вышла версия 2.3, в которой очень много поменялось.
Мне не удалось как следует переконвертировать под неё свой проект, остался на 2.2
Аноним 07/03/21 Вск 11:27:40 731655201
>>731639
Можешь попробовать стереть папку Options в проекте. Запустится. Но проверяй все скрипты и все ресурсы. У меня часть звуков тупо потерялась.
Аноним 07/03/21 Вск 16:05:56 731676202
>>731654
Ну это немного пиздец.
>>731655
Спасибо, попробую.

Ещё странный момент - создал новый проект с нуля, попробовал запустить и получил такую же ошибку.
Может это виртуалка винды виновата.
Аноним 07/03/21 Вск 18:19:19 731690203
>>731655
> Можешь попробовать стереть папку Options в проекте
Не помогло.
> Но проверяй все скрипты и все ресурсы.
На первый взгляд все на своем месте. Потыкался по скриптам и спрайтам.
Аноним 07/03/21 Вск 20:51:36 731720204
>>731639
Почисть проект через ctrl+f7 (иконка щёточки), проскролль выше по коду запуска, стопудов есть ошибка в коде, которая нормально не высветилась в компайл иррорс.
Аноним 08/03/21 Пнд 02:02:47 731759205
image.png 82Кб, 2234x337
2234x337
image.png 93Кб, 2219x460
2219x460
>>731720
> Почисть проект через ctrl+f7
Тоже ошибка
> проскролль выше по коду запуска, стопудов есть ошибка в коде, которая нормально не высветилась в компайл иррорс.
Ты о моих скриптах? Там все норм с кодом и синтаксисом.
Аноним 08/03/21 Пнд 02:29:11 731765206
>>731759
Запустил проект в офф мейкере и все сразу заработало. А до этого юзал крякнутый.
Всем спасибо.
Аноним 08/03/21 Пнд 18:05:30 731891207
>>731765
видимо у тебя с рантаймом проблема была, там и рантайм и гм крякать надо, а если что-то не стакается то такая фигня выходит
Аноним 08/03/21 Пнд 23:06:11 731960208
>>731891
Возможно. Напрягает неинформативность ошибки, очень сильно.
После питона особенно.
Аноним 13/03/21 Суб 01:44:23 732820209
Гамак отрисовывает спрайты далеко за пределами экрана или игнорирует?
Мне это надо в плане - нужно ли свой механизм отсечения писать или он сам справится?
Аноним 13/03/21 Суб 08:16:06 732834210
>>732820
Не, рисует всё, тут надо велосипеды писать в этом плане, чтобы оптимизация была.
Аноним 13/03/21 Суб 15:13:09 732935211
>>732834
Опа, не знал.

Протестировал, поставив 4000 спрайтов друг на друга в одном месте в комнате.
Действительно ФПС не меняется от того, есть они на экране или нет.
Аноним 14/03/21 Вск 13:54:34 733134212
Trying to draw non-existing sprite.
at gml_Object_gc_DrawEvent_2 (line 4) - draw_sprite(gilza_s,0,10,10);

Спрайт gilza_s существует.
Ассет кеш чистил
Аноним 14/03/21 Вск 16:45:46 733175213
Покажи код. Если gliza_s - это переменная, значит ты на неё не назначил спрайт.
Аноним 14/03/21 Вск 16:49:23 733178214
Аноним 14/03/21 Вск 16:55:14 733180215
>>733175
>>733178
Не переменная, название спрайта. Я его и так и сяк пробовал, менял название спрайта с gilza_spr (и на спрайте и в коде), удалял и создавал по новой
Все остальне спрайты этот-же объект рисует
Аноним 14/03/21 Вск 17:59:08 733191216
>>733180
Открой дебагером, посмотри значение переменной gilza_s
Добавь строчку var dbg = gilza_spr
Сравни значения.

Яйца в кукурузе, ты?
Аноним 14/03/21 Вск 18:03:45 733193217
>>733191
>Яйца в кукурузе, ты?
Что......?
Аноним 17/03/21 Срд 19:25:34 733767218
изображение.png 1401Кб, 1000x562
1000x562
аноны, подскажите, я лоу-скиллс лох, знаю про тригеры,переменные, языки програмирования, профайлер и отладку, писал скрипты..
Коплю деньги на лицензию GM на 12 месяцев.
Хочу сделать пиксельную рпг-шку на винду.
GM подойдет для этих целей?
Пример - пикрил
Аноним 17/03/21 Срд 19:43:31 733771219
>>733767
> пикрил
А хелсбар то из спуки хауса спизжен (а может и они его откуда-то купили до этого).
Аноним 17/03/21 Срд 19:45:26 733772220
>>733771
пикрил спизжен с поисковика, я чисто пример привел как это в теории должно выглядеть,меня волнует GM сможет это сделать так чтоб оно было оптимизированно и не жрало по 3 гига RAM'а?
Аноним 17/03/21 Срд 19:49:55 733774221
>>733772
Любой популярный конструктор (см. Юнити, Годо, Гамак) сможет если руки не из жопы. Если напишешь адского говна, то и в 2д рпг может ООМ произойти, но это надо, блять, очень постараться.
Аноним 17/03/21 Срд 19:53:07 733777222
>>733774
>Любой популярный конструктор (см. Юнити, Годо, Гамак)
Я ж в начале написал что я рукожоп.Не, это не значит что хочу чтоб все было легко...хочу найти движок с маленьким временем вхождения... а то пока в юнити войдешь постареешь.
Я просто слышал что GM для этого подходит хорошо т.к. тут все для старта есть, для таких рукожопов как я + тонна гайдов и инструкций.
Аноним 17/03/21 Срд 20:00:46 733778223
>>733777
Ну тут язык попроще выучить чем в юньке.
Хотя C# для меня не был сильно сложным (возможно это ошибка выжившего, т.к. до это уже был опыт программирования) и туторов в юньке больше.
А в Годоте вообще Питоноподбный язык, но гайдов на русском практически нема, поэтому если английского не знаешь, то туда не суйся.
Хотя английский очень полезно выучить в любом случае, в программировании это всегда нужно.

Не знаю короч стоит ли эта разница в сложности денег за гамак. В любом случае есть триал, можешь попробовать, если тебе норм покупай, если нет - смотри в сторону других конструкторов.
Аноним 17/03/21 Срд 20:05:43 733780224
>>733778
А, ну и да, основы геймдева типа стейт-машин тебе на любом движке придется изучать, тут разницы вообще нет.
Аноним 17/03/21 Срд 21:30:32 733799225
>>733767
>Коплю деньги на лицензию GM на 12 месяцев.
Ты осбрался под мобилки девелопить что ли?
Но ты не знаешь самую базу даже?
Возьми десктоп версию за копейки в стиме для начала. Лицензию временную на мобилки будешь покупать когда тебе нужно будет на телефонах тестировать.

>Хочу сделать пиксельную рпг-шку на винду.
На винду же собрался. Нафиг тебе мобилки?

Да, подойдёт идеально.
Аноним 29/03/21 Пнд 23:40:56 735969226
>>686540 (OP)
Напомните, была то ли альтернативная IDE то ли прям полная альтернатива GM.
Это было еще во времена 7 8 версий.
Аноним 30/03/21 Втр 13:17:10 736055227
>>735969
Не знаю, что было во времена 7 и 8 версий, но во времена GMS1 был альтернативный редактор Parakeet IDE, на основе которого был сделан GMS2.

Также есть альтернативный редактор кода GM Edit от украинского разработчика Yellow Afterlife.

Есть недоделанный проект Game Creator
https://github.com/joshwyant/game-creator который задумывался как полная альтернатива ГМ, обратно совместимая с файлами проектов.

Есть Enigma Lateral GM https://enigma-dev.org/download.htm тоже должен быть обратно совместимый с проектами GMS.

Несовместимые альтернативы Гейм Мейкеру тоже существуют, например 001 Game Creator, GDevelop, Superpowers и т. д.
Аноним 04/04/21 Вск 11:41:00 737241228
Пара вопросов знатокам.
1. Могу ли я установить одну и ту же лицензию standalone на комп и на ноут (работать поочёредно, не одновременно) или только через стим будет работать?
2. С каких пор официальная справка гамака существует на русеке? Вроде в прошлом месяце только англюсик был еще.
Аноним 04/04/21 Вск 13:52:40 737267229
>>737241
1) Да. С трёх машин одновременно можно, вроде.
2) Хз. Недавно выкатили официальный русик для 2.3
Аноним 04/04/21 Вск 14:15:19 737272230
5440.png 3Кб, 306x84
306x84
>>737267
Спасибо. Вагон пива тебе.
Аноним 05/04/21 Пнд 21:41:13 737465231
>>737272 если любишь самогон - нарисуй ещё вагон
Аноним 06/04/21 Втр 14:57:54 737537232
Как сделать гипертекст, что то не понимаю

Систему, когда выводится определенное сообщение, и после клика на слово или фразу переводило на другое сообщение, или другую руму с событиями и т.п.
Аноним 06/04/21 Втр 15:11:09 737542233
>>737537
Придумай специальные метки. Можешь прямо как в html сделать даже.
Вставляй их в текст.
Добавь в свой контроллер текста функцию, которая будет читать эти метки, стирать их из строки, выводить текст, и, руководствуясь этими метками, делать часть строки активной.
Следи за мышкой, реагируй на клик по активной зоне, исполняй нужное действие.
Аноним 06/04/21 Втр 17:09:14 737564234
>>737542
>Добавь в свой контроллер текста функцию, которая будет читать эти метки, стирать их из строки, выводить текст, и, руководствуясь этими метками, делать часть строки активной

Если я правильно понял, в код прописывать поиск всем тексте определенной строчки, удаление этой строчки. А как сделать часть строки активной? Какие метки имеются в виду?
Аноним 06/04/21 Втр 18:09:27 737569235
>>737542
>>737542

Как это "как в HTML"? Какие специальные метки имеешь в виду, можешь распаковать как то?
Аноним 06/04/21 Втр 21:35:57 737593236
>>737569
Ну я например вставляю в текст метки типа $p3 или $s1.
Мой контроллер вывода текста ловит символ "$", затем читает следующую букву и цифру.
$ означает что началась команда
p означает что нужно сделать паузу
3 показывает продолжительность паузы.

или
s означает что нужно изменить скорость вывода текста
1 указывает значение скорости.

Далее обработчик выбрасывает $p3 из строки, останавливает вывод на нужно время, затем продолжает.

Ты мог бы поставить такие же метки.

Типа "Вы можете <g rm_forest>отправиться в лес</g>, но на это уйдёт весь день."

Твой обработчик ловил следил бы за появлением симвла <
Появление этого символа сообщило бы обработчику, что началась команда, и выводить её не надо. А надо прочитать её.
Дальше он искал бы следующую букву. При виде буквы g понимал, что это команда на переход в другую комнату.
Далее он пропускал бы все пробелы и искал первую значащую букву. Ей была бы "r".
Потом записывал её и все последующие за ней, пока не наткнётся на пробел или на >
Потом по полученной строке "rm_forest" определял бы, в какую комнату предстоит перейти при нажатии на текст. Например при помощи функции asset_get_index("rm_forest")

Потом встречал > и понимал, что ввод команды закончен. Весь следующие текст ему нужно сделать активным.
Если текст выводится в одну строку, я бы запомнил верхнюю-правую координату буквы для этого.
Затем вывод текста другим цветом, пока не встретится </g>
Потом запоминание правой нижней координаты буквы и обычный вывод остального текста.

А дальше следить за point_in_rectangle координат курсора и полученных координат текста. И если игрок на него мышкой клац - ты знаешь в какую комнату идти.
Аноним 06/04/21 Втр 22:03:26 737601237
>>737593
>Твой обработчик ловил следил бы за появлением симвла <
>Появление этого символа сообщило бы обработчику, что началась команда, и выводить её не надо. А надо прочитать её.
>Дальше он искал бы следующую букву. При виде буквы g понимал, что это команда на переход в другую комнату.
>Далее он пропускал бы все пробелы и искал первую значащую букву. Ей была бы "r".
>Потом записывал её и все последующие за ней, пока не наткнётся на пробел или на >

Какие функции гамака для этого можно использовать?
Аноним 06/04/21 Втр 22:20:49 737602238
1.jpg 22Кб, 929x221
929x221
2.jpg 27Кб, 821x477
821x477
>>737601
string_char_at() в основном.

Я тексты записываю прямо как скрипты в гамак. (пик 1)
Помимо собственно текста передаю контроллеру текста всякую информацию типа портрета. анимации, эффектов, выборов и т.д.

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

Считает её длину в пикселях string_width() и разбивает так, чтобы поместилась в 4 строки моего диалогового окна без переносов слов.
Затем по одной буковке выводит текст со стандартной скоростью, но если натыкается на $ вместо вывода следующей буквы читает всю команду и исполняет её.

Например на пик2 скрипт добавляет в буффер по одной букве из строки пока не наткнётся на пробел, перенос строк я использую для этого символ |, или на конец текста.
Аноним 06/04/21 Втр 22:30:00 737605239
Попробуй для начала написать скрипт, который найдёт в тексте симол < и выведет текст без него.

Что-то типа
var _string = argument0
var max_i = string_length(_string)
var _text_buffer = ""
var _char_buffer = ""
for (var i=0; i< max_i; i++)
{
_char_buffer = string_char_at(_string,i)
if _char_buffer!= "<" _text_buffer += _char_buffer
}
draw_text(x,y,_text_buffer)
Аноним 06/04/21 Втр 22:31:04 737608240
3.jpg 12Кб, 402x160
402x160
Аноним 07/04/21 Срд 00:34:11 737652241
Аноним 08/04/21 Чтв 23:19:17 737915242
aa.png 9Кб, 481x248
481x248
Что это? У меня при запуске дебага игра крашится и не сворачивается
Аноним 08/04/21 Чтв 23:32:45 737917243
>>737915
А ты читать уже не умеешь?
file-->preferences-->runtime feed
Выбирай рантайм соответсвующий твоей версии.

Пиратку небось юзаешь. Ну тогда сосамба.
Аноним 08/04/21 Чтв 23:44:34 737920244
>>737917
>Выбирай рантайм соответсвующий твоей версии.

Я хз что такое IDE.

>>737917
>Пиратку небось юзаешь. Ну тогда сосамба.

Пиздобол, лицуху я юзаю. Короче обновил гамак проблема исчезла
Аноним 11/04/21 Вск 22:28:41 738333245
>>686540 (OP)
На рутрекере со скидкой можно купить?
Аноним 14/04/21 Срд 21:13:33 738723246
>>738333
Не советую, настрадался с пираткой и решил купить этот блядский движок
Настройки X
Ответить в тред X
15000
Макс объем: 40Mб, макс кол-во файлов: 4
Кликни/брось файл/ctrl-v
Стикеры X
Избранное / Топ тредов