Gamedev

Ответить в тред Ответить в тред
Добро пожаловать в гамакотред - адекватный тред Аноним 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
Настройки X
Ответить в тред X
15000
Макс объем: 40Mб, макс кол-во файлов: 4
Кликни/брось файл/ctrl-v
Стикеры X
Избранное / Топ тредов