Двач.hk не отвечает.
Вы видите копию треда, сохраненную 2 августа 2023 года.

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
1.jpg3 Кб, 250x142
Добро пожаловать в гамакотред - адекватный тред 686540 В конец треда | Веб
Добро пожаловать в гамакотред - адекватный тред адекватного движка.

Задумал сделать 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)

2 686720
Что хуже для производительности - объявлять глобальную переменную иди постоянно обращаться к переменной объекта, типа player.ammo ?
3 686788
>>686720
Для производительности хуже делать поиск пути каждый шаг и выполнять код в draw_event.

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

Ну а вообще можешь затестить. Сделай цикл с 100000 обращений к obj_player.ammo и global.ammo каждый шаг и сравни фпс.
Потом нам расскажешь.
4 686905
>>686788
Разве код в draw разве хуже для производительности, чем в step? На форумах давно читал, что разницы нет
5 686935
>>686905
Только что проверил с помощью цикла в цикле и всяких операций внутри.
Производительность от выполнения кода в степе не отличается от выполнения того-же самого в драве. Может, если бы там было какое рисование, тогда разница была бы заметна, но у меня в пустом проекте без спрайтов разницы нет.

Производительность при обращении к глобальной переменной выше, чем при обращении к переменной объекта. Полусчилось, что у глобальной ФПС был больше 200, инога падал до 130, не знаю почему. А при обращении к переменной объекта фпс никак вообще не поднимался выше 130
6 686936
>>686935
Какие нибудь замечания, уточнения, коллеги?
7 686947
>>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.

8 686949
>>686947
Факт остаётся фактом. Проверь сам, если не веришь
9 686954
>>686949
В пустом проекте с парочкой draw call у тебя разницы не будет. Но хуле, ты ж лучше шаришь в гамаке, чем его создатели.
Ебашь код в draw, не слушай никого.
1.jpg6 Кб, 443x205
10 692039
Вышла версия 2.3

Ну кто бы сомневался.
11 692064
Ну круто. Откатился назад, теперь даже пустой проект в гамаке не запускается.

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

Не движкосрача для, а предупреждения анончиков ради.
12 692067
>>692064
А я всё равно попробую. Бета нормально работает.
image.png144 Кб, 620x354
13 692077
ахахах сасать
14 692155
>>692077
Ага, приятного аппетита.
Теперь все скрипты переписывать под формат function что ли? Вписывать все аргументы в скобки или даже переименовывать их. Скрипты же теперь глобальными стали и запускаются при запуске же игры.
При этом при конвертации всё работало ровно до тех пор, пока не захотел добавить скриптик новую функцию.
Или я чего-то не понимаю в конвертировании?
пикник-пример.png12 Кб, 508x456
15 692166
Вроде перекатился. Пришлось стереть папку options в проекте, тогда всё заработало.

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

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

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

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

Неприятно.
17 692219
Продолжу.

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

Сравненивая (3.99999523162842 < 4) имеет результатом ложь. Впрочем ничего нового.
18 692220
>>692219

>Сравнивая

19 692279
>>692039
А с хуя ли он принудительно ставит апдейт? Типа логиниться не дадим, переходи на новые костыли. Что за неувожение?
20 692304
>>692279
Нет, никакой принудиловки.
image.png9 Кб, 448x121
21 692319
22 692323
>>692319
Это вроде был drm апдейт специальный. На 2.3 перекатываться не заставляют.
23 692386
>>692166
Радует, что у анона хотя бы нормально работает. У меня же после конвертации при открытии скрипта окошко с кодом осталось точно таким же, никаких изменений в коде, однако рядом же (сверху) появилось другое окно, в котором указано название скрипта, аргументы в каждой отдельной строчке и пара чек боксов внизу. Возможно, это с чего-то включилось DnDшное оформлений функций, хотя само DnD вообще не используется в проекте. Как это проверить? Или що делать?
24 692390
>>692386
Видимо, изначально всё таки это был DnD проект. Хотя и не ясно, почему канпилятор ругается на все функции после "успешной" конвертации.
Как проще всего свичнуться в GML? Можно всё экспорировать или галочку какую нажать?
25 692422
>>692386
У меня при конвертации куча ошибок вылезла. Второй день правлю и хз сколько ещё займёт.

Конечно это лишний повод пробежаться по всем частям игры...
26 692825
Аноны, как искать причины классического "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.
Есть соображения, как искать ошибку?
27 692826
>>692825
UPD: дебаггерый режим просадки в FPS не показывает (вроде... из-за некоторой непредсказуемости момента вылет мог не успеть глянуть), но есть секундного масштаба фриз перед вылетом.
28 692827
>>692825
>>692826
UPD №2: Может дело в изменениях синтаксиса? В релизном посте YYG не нашёл упоминаний о переработке старых команд. Может, дело в том, как работают новые функции? Или работе с arrays (потому что [ , ] не конвертнулось в [][], но продолжает работать, как и array_length/height_1d/2d).
29 692867
>>692422
После того, как обнаружил что у меня ещё и пропали НЕКОТОРЫЕ из прикреплённых файлов и что сломались НЕКОТОРЫЕ из функций сохранения, и перестали проигрываться НЕКОТОРЫЕ звуки, принял решение не перекатываться.

Методы буду осваивать после того, как котёл доделаю.
30 692874
>>692825
Такое бывает, если ты где-то конкретно накосячил.
Создай debug project и закрывай комментами код, с которым ты работал в последнее время и пробуй запускать. Когда сообщение "Runner.exe exited with non-zero status исчезнет поймёшь, где именно искать.
31 692876
>>692825
Размер texture page в опциях не менял?
32 692910
Так, посоны, хочу в триджэ режиме вращать объект по оси направления вгляда камеры через d3d_transform_add_rotation_axis(xa,ya,za,angle), мозги совсем дегроднули от многолетнего просмотра порно, не соображаю как мне этот аксис высчитать, синусы катангенсы в школе очень хуево проходили, а занятия с матрицами по высшей матеше упустил в универе в своё время.
При том мне пока даже хватит оставить z компонент за ноль, камера по вертикали мало двигается. Как из переменной поворота камеры простым кодом высчитать x и y компоненты вектора оси?
Я мог бы конечно наговнокодить лютое говно, которое будет даже работать, но лучше же нормально закодить.
33 693194
>>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 градусов ебенит по другой оси, как-будто я и не поворачивался
34 693239
>>692874
Хорошо, спасибо, попробую. Странно только то, что почти всегда вылетает, между эндстепами предыдущего шага и новыми степами. Draw? Баги 2.3? В 2.2.5-то не было такого (ВРОДЕ)
>>692876
Вроде нет. Может, само? Всё равно сравню. Спасибо, анон.
35 693411
>>693239
Безрезультатно. Зато в 2.2.5 всё збс. Подозреваю, что это баг 2.3.
36 695738
>>692825
Врываюсь в тред! Короче, у тебя где-то дата вытекает лишняя, проверь наследуемость, и ds листы и карты.
Сегодня столкнулся с такой траблой, тоже долго ковырялся.
37 696001
>>695738
Все ds-листы обычно больше десятка строчек не живут (но перепроверю, все ли убиваются), карт и наследуемости нет. Энивей, спасибо за внимание и советики, анон.
.png486 Кб, 736x530
38 697689
Разбужу мёртвый тред.
Предположим, мне нужно рисовать спрайт, который не вшит в сам объект, и его анимацию нужно будет контролировать (выключать, если она кончится, например). В таком случае нужно будет создавать скорость image_index'а для этого спрайта отдельной переменной и прибавлять по команде. Вопрос: по какой формуле тогда просчитывать эту скорость, чтобы она была идентична той, что указана на самом спрайте?
39 697738
>>697689
Нихуя не понял, дай пример.
40 697792
>>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)?
41 697811
>>697689
Ну смотри, у тебя есть room speed, которая 60 по умолчанию, у тебя есть спрайт допустим 15 фпс, 60/15=4. Соотвественно чтобы он работал с нормальной скоростью, тебе нужно показывать инкрементировать image_index раз в четыре степа, то есть в примере ниже будет у тебя что-то вроде spd+=0.25, только напрямую это сделать не выйдет, draw_sprite только целые значения принимает.

А вообще проще было бы сделать спрайт отдельным объектом.
42 698235
Почему гамункер 1.4 иногда проигрывает не те звуки, которые я прошу? Ассет кеш сбрасывал уже 2 раза
43 698252
>>697811
Draw_sprite прекрасно принимает не целые значения. Он просто отбрасывает не целую часть, как floor().
44 698325
Во сколько обойдется системник для комфортной работы в гамаке? Чтоб без тормозов, фризов и т.д. Ниче понтового в плане графики и механик делать не собираюсь, что то на уровне hotline miami.
45 698357
>>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.
46 698387
>>698325
На б/у Thinkpad за 10к рублей будет летать.
47 701974
По урокам и гайдам можно без зания кода создать бродилку со стрельбой типа подземного человека? Музыка и рисование не проблема
48 701993
49 702087
>>701993
на драг н дропе можно или в любом случае нужно смотреть на код других?
50 702088
Сап двощ. Делаю подобие платформера, пытаюсь заставить героя стрелять. Все работает, но он стреляет по прямой, хотя хотелось бы чтобы со временем пуля снижала свою высоту. Как это реализовать? Вот код который я пока использую для создания пули в коде персонажа
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;
}
51 702093
>>702087
Драг н дроп - это отсталая тема, что-то типа базового кодинга для самых маленьких. Симулятор ходьбы в сайдскроллере в нём может и удастся сделать, но для случая, если тебе нужен будет больший функционал, лучше сразу начинать кодить на ГМЛ.

>в любом случае нужно смотреть на код других?


Ну если ты говоришь, что у тебя нет знаний кода вообще, то да, нужно смотреть на то, как делают другие, и курить мануалы гамака, в которых говорится, какая функция что делает. Потом уже поймёшь, как и что работает, и будешь сам делать.
52 702118
>>702088
В смысле, чтобы она у тебя по баллиcтической кривой двигалась?
Пишешь в step пули что-то вроде
speed-=0.01
y-=0.001
и радуешься.
Кстати, F -- это не самый лучший выбор для кнопки стрельбы, ctrl или z были бы удобнее.
53 702132
>>702093
Ну епт, обидно. Я послушал этого Спелдинга, и ладно на ангельском говорит, более менее понятные слова, но как же он тараторит, какой то акцент непонятный + дефект речи. одним словом программист
54 702283
>>702118
Спасибо конечно за совет, но это нихуя не сработало. Пули все еще летят строго горизонтально.
55 702298
>>702283
Ну он тебе предложил у изменять на 1/1000. Изменяй у на 10 и посмотри на разницу.
Подгоняй цифры в соответствии со своими размерами и скоростями.
56 702388
>>686540 (OP)

>адекватный


>>686540 (OP)

> Десктоп версия 1600р


>>686540 (OP)

>платный


Да я на такие деньжищи джва месяца жить буду!
мимо среднестатистический геймдевелопер
57 702400
>>698235
Это может происходить когда игра обращается к конкретному айди ресурса, если стоящие перед ним звуки добавлялись/удалялись игра по этому айди находит другой ресурс. Если в этом дело, попробуй к звукам обращаться через ассет_гет_индекс и вводи там стринг с названием ресурса.
image.png4 Кб, 311x315
58 702469
>>702118
>>702298
Изменения цифр помогли, но траектория все еще не та, видимо я объяснил через жопу. Короче вот, красным показано как они летят сейчас, а зеленым - желаемый результат
59 702490
>>702469
Графики функции в школе проходили? Напиши функцию, которая рисует линию №3.
60 702497
>>702490
Вот, нагуглил за тебя
https://www.eduspb.com/node/1669
61 702546
>>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
62 702613
>>702388
Возьми да спирать на распродаже, они обычно до косаря скидывают.
63 702689
>>686540 (OP)
Собираюсь с нуля сделать успешную игру за год в одно рыло. Какие подводные?
64 702694
>>702689
Сроки нереалистичные.
65 702730
>>702689

> Какие подводные?


Надоест через неделю и дропнешь. Но дропнешь не сразу. Ещё месяц будешь манямечтать о сеттинге, как там замок злого устроен, какие домики в лесу эльфов, как устроена иерархия разбойников. А потом еще через месяц придёт понимание, что тебе вообще нахуй не интересно этим заниматься.
66 702792
>>702694
Ну смотри:
2 недели - освоение основных возможностей движка, которые мне нужны.
2 недели - создание тестового уровня для отработки механник
Какое-то время на освоение анимаций. Прокачивнаие скилла в процессе
Далее покупка моделек и прочего, ибо я не художник
Все, можно собирать и пилить игру
>>702730
Ух, опасно. Взял пока пробную версию. Если через месяц не надоест, то приду сюда с результатами
image.png46 Кб, 206x525
67 704007
>>686540 (OP)
При запуске дебагера вот эта хуйня на пике не появляется. Как-то раз закрыл ее и все. Как фиксить?
68 704108
>>704007
Сделай reset layour. Где-то есть такой пунктик в меню window.
69 704376
>>704108
Спасибо!
image.png4 Кб, 241x121
70 704677
Help. Настроил камеру, чтобы следовала за персонажем. И теперь он размывается в движении. Кручу настройки с пика - результаты рандомные, но не не, которые нужны. Если оставить камеру статичной, то все ок. Как фиксить?
71 704683
>>704677
Пофиксил нормальным кодом
72 705164
>>686540 (OP)
Стоит ли осваивать GML?
73 706031
>>705164
Что значит "осваивать"? Что там осваивать?
74 706033
>>706031
Конструктор, ёпт.
75 706088
Раньше использовал 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) ничего не дает

Есть ли внятный туториал по камере? а то находил только со слежением за объектом
76 706089
>>706088
viewx+=1 быстрофикс
77 706947
Анон, имеете ли дело с физикой в гамаке? Интересно узнать, может ли у конкретного инстанса слететь взаимодействие с другим объектами?

Вводная такова: я создаю три стены циклом и меняю их размер, как мне надо:
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 отображается?), но персонаж сквозь них легко проходит.

Может ли дело быть в том, что слетает физика? Или в чём? (обоснуя за объекты вместо тайлов не будет, сорян)
77 706947
Анон, имеете ли дело с физикой в гамаке? Интересно узнать, может ли у конкретного инстанса слететь взаимодействие с другим объектами?

Вводная такова: я создаю три стены циклом и меняю их размер, как мне надо:
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 отображается?), но персонаж сквозь них легко проходит.

Может ли дело быть в том, что слетает физика? Или в чём? (обоснуя за объекты вместо тайлов не будет, сорян)
78 706948
>>706947
быстрофикс естественно \t в начале строк у меня нет, двощи такие сложные
79 707081
>>706947
UPD: Видимо, проблема том, что fixture фигово накладываются для тех стен, у которых image_xscale и image_yscale задавался отрицательным. Хотя рисуются такие стены хорошо и правильно. Как и их fixture. И это странно. Баг гамака или я что-то упускаю?
80 707104
>>706947
Если у объектов в настоящее время нет импульса, то вместо использования фикстур для создания колизии можно вполне создавать на месте старого новый объект)
81 707105
>>707104
Зачем так делать?

Энивей, проблема разрешилась: при накладывании fixture на объект с отрицательным image scale происходит ничего. Вроде. Всё исправил. Спасибо за внимание.
82 707849
Можно ли двигать фон кодом? собираюсь сделать параллакс, но могу только объектами
83 707948
>>707849
layer_x()
layer_y()
84 707970
Аноны, норм ли организация кода и проекта из этой штуки из шапки?

> https://www.youtube.com/user/999Greyfox/playlists

85 708797
>>707970
Ну в последнее время да, по крайней мере базовый функционал игры. Вообще судя по вопросу ты только вкатываешься в гейдев, так что тут особой разницы нет, главное - понять, как что работает, а дальше сможешь сам хуячить с нуля почти всё, так что тут он подойдёт, ну и ещё какой-нибудь PixelatedPope.
86 708801
Как скочять ваше говно? Платить чтобы попробовать я конечно не собираюсь.
87 708804
>>708797
Да, я тока вкотился, для меня это все в новинку. Спасибо, антош.
88 708806
>>708804
Не за что. У Шона советую глянуть последнюю серию по созданию экшон-рпг, где он показывает, как с нуля сделать небольшую игру с камерой, ходьбой и прочим.
89 708858
>>708801

> Платить чтобы попробовать я конечно не собираюсь.


Там триал месяц. Не толсти.
90 708872
>>708858
Где скочять чтобы бесплатно пробовать без ограничений по времени?
91 708902
>>708872
Нигде.
Если "попробовать" можегь поискать Game Maker 8 - у него вроде есть пиратки.
92 708907
>>708902

> Нигде.


Почему ещё не взломан?
93 711262
>>686540 (OP)
посоветуйте как запилить физику шара для арканоида. мне надо запилить что-то вроде этого https://www.youtube.com/watch?v=AXl7FlgfZvA
94 711296
>>711262
Раскрой вопрос. В чём у тебя вообще проблема встала? В том, что ты физики и математики не знаешь?

https://www.fortu.ru/product/kniga_matematicheskaya_teoriya_yavleniy_bilyardnoy_igryi_koriolis
95 711326
>>711296
Дело в том, что вот сделал я так, чтобы шар отскакивал, да. Но вот проблема - если в самом начале шар попадает в верхнюю стенку, то он начинает скакать вверх-вниз и в результате застревает
96 711331
>>711326
Тред и диалог не читал, но такая проблема может быть.
Тебе надо проверять находится ли шар/точка за стенкой + направление его вектора. Например, если условные pos.y > wallheight && dir.y > 0, то dir.y = -dir.y. То есть даже если шар телепортнётся за уровень, то рано или поздно он вернётся в свою зону.
Конечно, в нормальных играх, наверное, таких проблем не должно быть, так как скорость поменяется раз и за ним же положение объекта. Твой вариант может случиться, наверное, если ты 2 раза вызываешь одинаковый код, где не надо или ещё что.
97 711353
>>711331
Спасибо от души, с меня чай
98 711473
>>686540 (OP)
Значит, возник вопрос в гейммейкере классическом (не studio). В общем, как сделать так, чтобы объект делал reverse при соприкосновении с другим объектом только если он идет вниз?
99 711674
>>686540 (OP)
значит гейм-мейкер 8.1, вот. как правильно заставить проигрывать анимацию разрушения объекта при колижне, чтобы не было лупов и объект одновременно и уничтожался, и проигрывал анимацию?
100 711880
>>711674
Хуй знает что там в легаси версиях.

Проверяй if image_index >= image_number-1 или используй animation end event
101 713502
А есть годные текстовые туториалы? Ненавижу видеоуроки.
102 713542
>>713502
Двачую. Но годных текстовых туториалов довольно мало.
Блог yoyo могу рекомендовать.
https://www.yoyogames.com/blog/56/explaining-blend-modes-part-1
103 714189
Вообще не могу понять отладку в гмс2, мне нужно чтобы я мог видеть какой конкретно код выполняется в данную секунду
104 714650
А ещё непонятно как организовать повтор игры
105 714926
>>714189
Ты про дебагинг? Кури подробные видеогайды, там все рассказано.
https://www.youtube.com/watch?v=iJH_uTq9iOQ
>>714650
game_restart()
106 715371
Какими способами можно организовать тень на задний фон?
107 715381
>>715371

>Какими способами можно добраться от точки А до точки Б?


По дороге? Через лес? Через горы? Может точка Б в космосе?
Опиши, блеат, что ты хочешь сделать. Со скриншотами.
108 715395
>>715381
на маркетплейсе нашёл прекрасный пример, спасибо, вопрос отпадает
109 715407
>>715381
нет, пример оказался для квадратных объектов, я помню популярный был пример наэкранного управления для tds , там бонусом как-то тень простенько была реализована
110 715961
>>708902

>можешь поискать Game Maker 8 - у него вроде есть пиратки.


У первого ГМ студио точно есть
111 716175
>>698325
желательно сисиди, чтобы по полгода не сохранял бекапы больших проектов
112 716177
>>702792
Ну что, не надоело в итоге?
113 717313
>>686540 (OP)
В гамаке можно лабать на плюсах?
114 717997
Сап гамач, подскажите, я 0 в программировании, делаю прототип игры на кастрате при помощи "визуального скриптинга" - но Констракт оказался совсем уебжичным под мои задачи. Делаю вроде как достаточно примитивный платформер-сайдскроллер. Скажите, в гамак смогу вкатиться быстро и делать игру в нем? На констракте где то 2 года торчал, + давно в старых версиях первого гамака. Там сейчас обязательно gml юзать? Или можно ивентами также? GML освоить насколько трудно если 0 в программировании и математике?
115 718001
Desktop лицензия которая продается в стиме, позволяет публиковать и продавать игры в том же стиме?
116 718002
В стиме пишут про вылеты, краши, про то что проект не восстанавливается, но в основном отзывы с 2018. Сейчас в стим версии есть такое или ок работает все?
117 718015
>>718001
Да.

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

>>717997

>Скажите, в гамак смогу вкатиться быстро и делать игру в нем?


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

>визуального скриптинга


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

>Там сейчас обязательно gml юзать


Без языка ничего толкового не сделаешь.

>Или можно ивентами также


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

> GML освоить насколько трудно если 0 в программировании и математике?


А что вообще может быть сложного в освоении?
if else while repeat знаешь? Плюс минус равно умножить разделить знаешь? Тогда ты знаешь в принципе почти всё. Остальное в туториалах прочитаешь.
118 718033
>>718015

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



А с чем возникали проблемы? На что ушло больше всего времени, чтобы запилить сносно, из этих 2х месяцев?
119 718045
>>718033
Примерно могу путь описать.

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

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

Дальше захотелось, чтобы враги научились искать путь, перепрыгивать через пропасти, приследовать игрока и т.д. Здесь уже на 3 месяца глубоко забурился в дебри, но на выходе я уже представлял как сделать всё что угодно.
Дальше пошли эксперименты со светом, с партиклами, делал динамичные интерфейсы, разнообразные механики и т.д.
На всё, конечно, нужно время. Но решающим для меня был именно период ёбли с пасфайдингом. Именно тогда я научился программировать.
120 718757
Есть ли смысл брать версию 2, если есть 1? Первой не пользовался, но она у меня есть.
121 719063
Не могу понять от чего лаги в игре(для телефона), игра не сказал бы что СЛИШКОМ тяжёлая. Первая игра была сложнее в плане механики, но не лагала, может ли это быть связано с новым runtime?
122 719335
>>719063
Проверяй через дебаггер, на каких моментах у тебя просадки.
123 719475
>>719335
мб поможет кому-то в будущем, убрал ассинхронные события синхолнизации излишней с гуглсервисами
124 719530
Какие значения по умолчанию у вас стоят в значении alias password?
125 719552
>>719530
Duncan
126 719879
Пацантре я сначала качнул триал гмс 2. Зарегил йойо аккаунт. Потом удалил гмс. Приобрел в стиме десктоп версию - и когда захожу с стим версии, у меня висит напоминание о конце триал версии через х дней. Что делать?
127 719881
>>719879

все, сделал линк акков, ми сори
128 720389
Есть в гамаке переменная которая возвращает значение текущего кадра анимации спрайта? Типа current frame. У меня проигрывается анимация ходьбы гг например, и когда я перестал двигаться - чтобы анимация устанавливалась не на какой-то кадр, а на последний кадр который был в цикле анимации во время ходьбы
129 720392
>>720389

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

if move!=0
{
image_speed=1;
}
else
{
image_speed=1;
)
В принципе как надо работает
130 720393
>>720392

Блеан, image_speed=0 в 2 случае конечно
131 720499
>>720389
Падажжи, ёбана. Разве в гамаке фрейм сам по себе не остаётся на последнем кадре если остановить анимацию, раз в конце цикла ходьбы даже приходится её скидывать на нулевой фрейм кодом?
16030590953250.gif4,2 Мб, 640x618
132 720596
Если я вызываю скрипт и в нём меняю Х и У напрямую, то эти самые Х и У берутся у объекта, в котором я вызвал этот самый скрипт? Я же правильно понимаю работу новых скриптов в гамаке?
ньюфаг
133 720604
>>720596
Да. И это не только в новых скриптах, так всегда было. Если нужно сменить переменные у других объектов, то сначала ставишь перед ней имя объекта, типа "obj_player.x".
134 720633
>>720389
image_index
135 720663
>>720604
Ахуенно!
136 720668
>>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)
137 720677
>>720499

> Разве в гамаке фрейм сам по себе не остаётся на последнем кадре если остановить анимацию



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

>>720633

>image_index



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

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

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

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

НУ типа

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

Ну и как мне получать вот этот last_frame? Помогите плиз
137 720677
>>720499

> Разве в гамаке фрейм сам по себе не остаётся на последнем кадре если остановить анимацию



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

>>720633

>image_index



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

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

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

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

НУ типа

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

Ну и как мне получать вот этот last_frame? Помогите плиз
138 720680
Как сбросить триал?
walk.png129 Кб, 1275x672
139 720771
>>720677
В ютубе миллиард вариантов передвижения объекта показывают.
У каждого ютубера по гамаку плюс-минус свои варианты передвижения и столкновений. Приветливый космонавт даже систему одежды для перса покажет и расскажет.
Выбери один видос и перепиши код прямо с экрана, нахера ты велосипеды городишь?
140 721064
>>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;
}
141 721168
А гейммейкеру нужно что-то платить, когда выкатываешь свое говно на продажу (не у них на маркетплейсе, а вообще, в стиме например)? Или купил лицензию и доволен?
142 721189
>>721168

>А гейммейкеру нужно что-то платить, когда выкатываешь свое говно на продажу


Нет.
143 722610
"Windows не удаётся получить доступ к указанному устройству, пути или файлу."
У одного тестера такая беда на десятке, у других на десятке и семёрках такого нет. Гугл говорит, что проблема в правах. Никак не фиксится с моей стороны и проблема в его винде?
144 722637
https://www.gamasutra.com/view/news/376373/PlayTech_sells_GameMaker_Studio_maker_YoYo_Games_for_10_million.php
>>722610
К какому устройству, к какому файлу? Телепаты в отпуске, формулируй проблему.
windows-ne-udaetsya-poluchit-dostup-01.jpg38 Кб, 755x411
146 722741
>>722637
Адекватный гамак тред встречает вот так, пассивно-агрессивно? Что такое "неадекватный" тред я даже представить боюсь.
Ошибка при запуске файла. Всё.
147 722816
>>722741

>Адекватный гамак тред встречает вот так, пассивно-агрессивно?


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

>Ошибка при запуске файла. Всё.


Ну хз, лично первое, что лично мне пришло на ум - запустить от имени администратора. В гайдах, которые ты и сам мог найти по коду ошибки, написано то же самое.
https://techarks.ru/windows/files/windows-ne-mozhet-poluchit-dostup-k-ukazannomu-ustrojstvu-puti-ili-soobshheniyu-ob-oshibke-fajla/
Дальше сам.
148 723424
Зачем существуют юзер эвенты? Я так понимаю, это очередная паста спагетти кода типа алярмов и прочей поеботины?
149 724403
>>723424
Не совсем.

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

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

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

Как считаете, такие курсы стоящие или? В принципе, у меня нет проблем с самообучением, то есть, платформер и тдс я спокойно реализовал - не без затыков конечно. Но в самообучении у меня 2 проблемы, что до gml я не сталкивался с кодингом, и что отсутствует структурносить - то есть в конечном прототипе все как бы работает, но вероятно код кривой и костыльный, то есть если для прототипа где надо просто посмотреть как играется это еще нормально, но для реального продукта - нет
152 724499
>>724423
Когда я только-только начинал, ролики хартбиста для меня были очень полезны.
Сейчас (уже 4 года прошло) я считаю это малополезным шлаком.

150$ отдавать за это... если для тебя это незначительная мелочь - то смело бери. Для новичков это очень хорошо подойдёт.
Я бы даже когда новичком был, брать не стал. Самообучение для меня проще и быстрее.
153 724669
Купил в стиме deskop версию, и пошел 30ти дневный отсчет пробного периода. Как я понимаю я преобрел ее на месяц? А потом что, нужно еще раз казну пополнять?
154 724675
>>724669
В блядских обсуждениях блядского стима какждое второе блядское сообщение по этому вопросу. Как вы, блять, игры собрались делать не умея читать?
155 724688
>>724675
Ладно, ладно, не урчи. Хотя бы наводку дал насчет обсуждения сообщества, спасиибо. Сто харчей тебе в ебыч за агрессию.
156 724769
>>724688
Но он тащемта прав. Не умеешь гуглить - вон из профессии.
157 725400
>>724403
Так, а как ты этот юзер ивент вызываешь?
158 725651
>>724403
with obj_jukebox
{
event_perform(ev_user0,1)
}
159 726008
>>725651

> ev_user0


Нумерованная числовая константа? Стронг!
160 726145
А на вашем движке можно сделать изометрическую игру типа первого фоллаута?
sage 161 726154
>>726145
разверну вопрос, есть ли ассет для системы трпг/српг с клеточками? на юнете есть пошаговая инструкция, но это пиздец оверкил, хочу сделать что-то уровня инто зэ брич, только с людьми и ЕЩЁ проще
162 726159
>>726145
>>726154
Можно.
163 726418
Здраствуйте работяги геймдевелоперы, хочу вкатиться в этот движок для создания своей игры, вопрос такой, если разницы между стимовской и интернет версией? А также если пользоваться стимовской то придётся каждый 12 месяцев оформлять подписку?
164 726419
>>726418
Побуду добреньким.
Во-первых, в стиме ты покупаешь ключ для yo-yo-games аккаунта, к которому привязываешь свой стим-аккаунт. Только тогда это будет не триальной версией. Во-вторых, китайцы купили оперу, а опера купила гейм-мейкер, так что хз что будет с движком в ближайшее время.
165 726428
>>726419
Спасибо, Солнце
166 726456
>>726419
Китайцы купили Cocos Studio, он превратился в стандартный китайский движок, неотличимый от других.
167 726464
169 726474
>>726468
Я знаю, я имею в виду, что гейм мейкер тоже превратится в джаваскриптовый движок для создания типично китайских игр, в лучшем случае. В худшем его просто закроют.
170 726478
>>726474

>В худшем его просто закроют.


Как и зачем? И да, хуже той хуйни с драгндропом и прочей ебалы для кодинга без кодинга они уже в любом случае не добавят.
Снимок экрана (10).png64 Кб, 1087x611
171 726887
Ради христа помогите начинающему затупку, почему аргументы не действую в скрипте?
172 726892
>>726887
Синтаксис проверь
173 726897
>>726887
Ты наверное хотел написать tilemap_GET_at_pixel
image.png648 Кб, 640x480
174 728112
Рубрику "How did they code it" объявляю открытой. И на повестке дня Тоха, ну и буллет хелл как сущность. Правильно ли я понимаю, что каждая пулька - это объект, который обновляется 30/60 раз в секунду. Учитывая количество таких пулек, как это безобразие не тормозит? Это ж сколько памяти надо выделить для такой ебаной тучи экземпляров класса, скажем, Bullet, покрасить их и перемещать по экрану.
175 728115
>>728113
>>728114
Типа при достижении капа те пули, что вышли за пределы экрана (а при достижении капа они скорее всего уже за пределами экрана), просто изнечтожаются?
image.png1,3 Мб, 1000x823
176 728142
>>728116
Ясно, спасибо.
177 728826
>>728112
достаточно скомпилировать через yyc
540196757494300672.png22 Кб, 115x128
178 728984
Сап, аноны. Поделитесь советом, плиз. Хочу чисто для себя попытаться сделать игру в стиле Contra Hard Corps. Гамак буду изучать с нуля. Игра в жанре run and gun, но хочу добавить элементы из рпг. Лайтовую прокачку и абилки, вместо выбора оружия как в Контре. Т.е. дефолтная стрельба и абилки в виде разной магии, которая накладывает статусные эффекты на врагов, хилит гг и т.п.
Вопросы следующие:
1) Есть гайды (видео или текст - безразлично) по созданию чего-нибудь приближенного к олдовой Контре?
2) Гайды по созданию статусных эффектов? К примеру: кровотечение, поджигание и т.п., с последующим постепенным уменьшением хп противника за определённый промежуток времени.
3) Не знаю как описать, опишу как могу. С боссами хочу добиться того же самого, как в той же Контре Хард Корпс. Хотя бы чего-нибудь приближенного. Нужно, чтобы у спрайта босса уязвимыми были определённые места, и чтобы некоторые функциональные части после вливания нужного дамага отваливались. Есть гайды по реализации подобного?
Заранее всех благодарю за ответ и любую помощь.
179 728991
>>728984
Начни с классики. Потом добавишь фишки из других туториалов. https://www.youtube.com/watch?v=izNXbMdu348&list=PLPRT_JORnIupqWsjRpJZjG07N01Wsw_GJ
180 729011
>>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
}

}

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

По третьему пункту.
Да тоже ничего такого экстраординарного. Склеишь босса из нескольких врагов без поведения. Неуязвимые части сделаешь из неуязвимых врагов, уязвимые - из уязвимых. Уязвимые враги полученный урон будут транслировать контроллеру босса.
Сделаешь контроллер босса, который этих "врагов" будет нужным образом перумещать и уничтожать когда "часть отвалилась"
180 729011
>>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
}

}

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

По третьему пункту.
Да тоже ничего такого экстраординарного. Склеишь босса из нескольких врагов без поведения. Неуязвимые части сделаешь из неуязвимых врагов, уязвимые - из уязвимых. Уязвимые враги полученный урон будут транслировать контроллеру босса.
Сделаешь контроллер босса, который этих "врагов" будет нужным образом перумещать и уничтожать когда "часть отвалилась"
181 729218
>>686540 (OP)
А эта хуйня на рутрекере есть?
182 729224
>>728991
>>729011
Спасибо, анoнчики! Тогда скоро приступлю к изучению. Я находил на русском справку только по 8-й версии, я так понимаю она и для второй студии актуальна? За исключением того, что в студии некоторые команды иначе пишутся, как я понял. Если есть справка на русском по студии 2, то был бы вдвойне благодарен.
183 729226
>>729218
на рутрекере хз, но ломаная версия есть, сам пользовался пока нищуком был, а сейчас есть месяц триала
184 729275
>>729218
Нет, новой нету.
185 729499
Аноны, есть два экземпляра объекта 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) {
//действие

}
}
}
}

Приводит к тому что действие происходит только с первой кнопкой, но тригеррится при нажатии на любую а не только первую
186 729501
Или проще говоря - как будет сделать

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

Чтобы действие происходило когда я нажимаю на кнопку у которой active = true (при условии что значение этого acrive разным кнопкам я раздать уже смогу)
187 729532
>>729499
break воткни после действия, а то код пикает твой кейс, а потом смотрит куда бы ещё это действие воткнуть, иша по всем условиям, надо это всегда брейком обрывать, если нудны определённые кейсы
188 729539
>>729532
А лол. Я вроде ставил. Либо забыл либо код скопипастил без него. Ладно, посмотрю код, проверю
189 729663
А почему в гамаке draw_text выдает -4 если значение переменной = "noone"?

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

Текст на экране: "-4"
190 729664
Блядь... DRAW GUI: draw_text (x, y, test_var);
191 729676
>>729663
Потому что константа noone имеет значение -4.
192 729913
>>729676

>значение



О как. Спасибо!
193 731639
Аноны, решил запустить проект, который делал в ноябре 2020, на свежей версии студии и тут при запуске вот такой пикрил вылез. Как-то не очень информативно, может кто сталкивался?
Ошибок синтаксиса\компиляции - нет
194 731654
>>731639
С тех пор вышла версия 2.3, в которой очень много поменялось.
Мне не удалось как следует переконвертировать под неё свой проект, остался на 2.2
195 731655
>>731639
Можешь попробовать стереть папку Options в проекте. Запустится. Но проверяй все скрипты и все ресурсы. У меня часть звуков тупо потерялась.
196 731676
>>731654
Ну это немного пиздец.
>>731655
Спасибо, попробую.

Ещё странный момент - создал новый проект с нуля, попробовал запустить и получил такую же ошибку.
Может это виртуалка винды виновата.
197 731690
>>731655

> Можешь попробовать стереть папку Options в проекте


Не помогло.

> Но проверяй все скрипты и все ресурсы.


На первый взгляд все на своем месте. Потыкался по скриптам и спрайтам.
198 731720
>>731639
Почисть проект через ctrl+f7 (иконка щёточки), проскролль выше по коду запуска, стопудов есть ошибка в коде, которая нормально не высветилась в компайл иррорс.
199 731759
>>731720

> Почисть проект через ctrl+f7


Тоже ошибка

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


Ты о моих скриптах? Там все норм с кодом и синтаксисом.
200 731765
>>731759
Запустил проект в офф мейкере и все сразу заработало. А до этого юзал крякнутый.
Всем спасибо.
201 731891
>>731765
видимо у тебя с рантаймом проблема была, там и рантайм и гм крякать надо, а если что-то не стакается то такая фигня выходит
202 731960
>>731891
Возможно. Напрягает неинформативность ошибки, очень сильно.
После питона особенно.
203 732820
Гамак отрисовывает спрайты далеко за пределами экрана или игнорирует?
Мне это надо в плане - нужно ли свой механизм отсечения писать или он сам справится?
204 732834
>>732820
Не, рисует всё, тут надо велосипеды писать в этом плане, чтобы оптимизация была.
205 732935
>>732834
Опа, не знал.

Протестировал, поставив 4000 спрайтов друг на друга в одном месте в комнате.
Действительно ФПС не меняется от того, есть они на экране или нет.
206 733134
Trying to draw non-existing sprite.
at gml_Object_gc_DrawEvent_2 (line 4) - draw_sprite(gilza_s,0,10,10);

Спрайт gilza_s существует.
Ассет кеш чистил
207 733175
Покажи код. Если gliza_s - это переменная, значит ты на неё не назначил спрайт.
208 733178
209 733180
>>733175
>>733178
Не переменная, название спрайта. Я его и так и сяк пробовал, менял название спрайта с gilza_spr (и на спрайте и в коде), удалял и создавал по новой
Все остальне спрайты этот-же объект рисует
210 733191
>>733180
Открой дебагером, посмотри значение переменной gilza_s
Добавь строчку var dbg = gilza_spr
Сравни значения.

Яйца в кукурузе, ты?
211 733193
>>733191

>Яйца в кукурузе, ты?


Что......?
изображение.png1,4 Мб, 1000x562
212 733767
аноны, подскажите, я лоу-скиллс лох, знаю про тригеры,переменные, языки програмирования, профайлер и отладку, писал скрипты..
Коплю деньги на лицензию GM на 12 месяцев.
Хочу сделать пиксельную рпг-шку на винду.
GM подойдет для этих целей?
Пример - пикрил
213 733771
>>733767

> пикрил


А хелсбар то из спуки хауса спизжен (а может и они его откуда-то купили до этого).
214 733772
>>733771
пикрил спизжен с поисковика, я чисто пример привел как это в теории должно выглядеть,меня волнует GM сможет это сделать так чтоб оно было оптимизированно и не жрало по 3 гига RAM'а?
215 733774
>>733772
Любой популярный конструктор (см. Юнити, Годо, Гамак) сможет если руки не из жопы. Если напишешь адского говна, то и в 2д рпг может ООМ произойти, но это надо, блять, очень постараться.
216 733777
>>733774

>Любой популярный конструктор (см. Юнити, Годо, Гамак)


Я ж в начале написал что я рукожоп.Не, это не значит что хочу чтоб все было легко...хочу найти движок с маленьким временем вхождения... а то пока в юнити войдешь постареешь.
Я просто слышал что GM для этого подходит хорошо т.к. тут все для старта есть, для таких рукожопов как я + тонна гайдов и инструкций.
217 733778
>>733777
Ну тут язык попроще выучить чем в юньке.
Хотя C# для меня не был сильно сложным (возможно это ошибка выжившего, т.к. до это уже был опыт программирования) и туторов в юньке больше.
А в Годоте вообще Питоноподбный язык, но гайдов на русском практически нема, поэтому если английского не знаешь, то туда не суйся.
Хотя английский очень полезно выучить в любом случае, в программировании это всегда нужно.

Не знаю короч стоит ли эта разница в сложности денег за гамак. В любом случае есть триал, можешь попробовать, если тебе норм покупай, если нет - смотри в сторону других конструкторов.
218 733780
>>733778
А, ну и да, основы геймдева типа стейт-машин тебе на любом движке придется изучать, тут разницы вообще нет.
219 733799
>>733767

>Коплю деньги на лицензию GM на 12 месяцев.


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

>Хочу сделать пиксельную рпг-шку на винду.


На винду же собрался. Нафиг тебе мобилки?

Да, подойдёт идеально.
220 735969
>>686540 (OP)
Напомните, была то ли альтернативная IDE то ли прям полная альтернатива GM.
Это было еще во времена 7 8 версий.
221 736055
>>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 и т. д.
222 737241
Пара вопросов знатокам.
1. Могу ли я установить одну и ту же лицензию standalone на комп и на ноут (работать поочёредно, не одновременно) или только через стим будет работать?
2. С каких пор официальная справка гамака существует на русеке? Вроде в прошлом месяце только англюсик был еще.
223 737267
>>737241
1) Да. С трёх машин одновременно можно, вроде.
2) Хз. Недавно выкатили официальный русик для 2.3
5440.png3 Кб, 306x84
224 737272
>>737267
Спасибо. Вагон пива тебе.
225 737465
>>737272 если любишь самогон - нарисуй ещё вагон
226 737537
Как сделать гипертекст, что то не понимаю

Систему, когда выводится определенное сообщение, и после клика на слово или фразу переводило на другое сообщение, или другую руму с событиями и т.п.
227 737542
>>737537
Придумай специальные метки. Можешь прямо как в html сделать даже.
Вставляй их в текст.
Добавь в свой контроллер текста функцию, которая будет читать эти метки, стирать их из строки, выводить текст, и, руководствуясь этими метками, делать часть строки активной.
Следи за мышкой, реагируй на клик по активной зоне, исполняй нужное действие.
228 737564
>>737542

>Добавь в свой контроллер текста функцию, которая будет читать эти метки, стирать их из строки, выводить текст, и, руководствуясь этими метками, делать часть строки активной



Если я правильно понял, в код прописывать поиск всем тексте определенной строчки, удаление этой строчки. А как сделать часть строки активной? Какие метки имеются в виду?
229 737569
>>737542
>>737542

Как это "как в HTML"? Какие специальные метки имеешь в виду, можешь распаковать как то?
230 737593
>>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 координат курсора и полученных координат текста. И если игрок на него мышкой клац - ты знаешь в какую комнату идти.
230 737593
>>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 координат курсора и полученных координат текста. И если игрок на него мышкой клац - ты знаешь в какую комнату идти.
231 737601
>>737593

>Твой обработчик ловил следил бы за появлением симвла <


>Появление этого символа сообщило бы обработчику, что началась команда, и выводить её не надо. А надо прочитать её.


>Дальше он искал бы следующую букву. При виде буквы g понимал, что это команда на переход в другую комнату.


>Далее он пропускал бы все пробелы и искал первую значащую букву. Ей была бы "r".


>Потом записывал её и все последующие за ней, пока не наткнётся на пробел или на >



Какие функции гамака для этого можно использовать?
232 737602
>>737601
string_char_at() в основном.

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

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

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

Например на пик2 скрипт добавляет в буффер по одной букве из строки пока не наткнётся на пробел, перенос строк я использую для этого символ |, или на конец текста.
233 737605
Попробуй для начала написать скрипт, который найдёт в тексте симол < и выведет текст без него.

Что-то типа
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)
3.jpg12 Кб, 402x160
234 737608
235 737652
>>737608
>>737605
>>737602
>>737593
>>737542

анонский 100 лет счастья тебе дорогой
aa.png9 Кб, 481x248
236 737915
Что это? У меня при запуске дебага игра крашится и не сворачивается
237 737917
>>737915
А ты читать уже не умеешь?
file-->preferences-->runtime feed
Выбирай рантайм соответсвующий твоей версии.

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

>Выбирай рантайм соответсвующий твоей версии.



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

>>737917

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



Пиздобол, лицуху я юзаю. Короче обновил гамак проблема исчезла
239 738333
>>686540 (OP)
На рутрекере со скидкой можно купить?
240 738723
>>738333
Не советую, настрадался с пираткой и решил купить этот блядский движок
241 739406
Есть ли проверенный для полноценной игры способ имортировать катсцену видеоформата в GMS 2?
242 739407
>>739406

Если нет то какие есть варианты? В любом случае будет снято видео и надо как-то эту в игровую сцену вставить
243 739408
>>739407

Не гифку же делать из него и вставлять, это будет ад в плане производительности. Хотя может кто то из вас гиф использовал?
244 739432
>>739406
натыкался на гитхабе два года назад, h264 играло
если твоя игра для говнокалькуляторов, будет тормозить на катсцене
катсцены надо выжигать
245 739435
>>739432
На что натыкался то
246 739475
>>739435
на код для подгрузки mp4 или ворбис не помню
247 739590
Как начать делать игру? У меня есть идея, но не понимаю, с чего начать. С рисования спрайтов? С расставления квадратов по окрестности и программирования ходьбы квадрата-протагониста?
248 739597
>>739590
Что сделать-то хочешь?
249 739607
>>739597
Игру.
250 739608
>>739607
Начиная с туториала "астероиды" тогда.
https://www.youtube.com/watch?v=7XDcSXVUGsE
251 739626
>>739608
Там первый ГМ, а у меня второй...
252 739632
>>739626
Там разница только в интрфейсах.
253 739640
Сап, двощ. Тема такая: начал делать примитивную игрулю в гамаке, просто дабы научиться делать игоры, код писать и т.д., ибо до того был очень далек от всего этого. Короче, проблема в том, что я хочу сделать управление жестами (под мобилки), но перемещение объекта свайпом работает только если у объекта выключена физика. В то же время мне кровь из носу как важно что бы физика у него была, ибо при столкновении с ним другие объекты должны уничтожаться. Есть такая возможность и это я тупой или прийдется крутить костыли?
254 739645
>>739640
Тебе не нужна физика. Вообще все эти встроенные штуки с осторожностью юзай. Тебе нужен обычный коллижн with (instance_place(x, y, obj(другие объекты)){instance_destroy();} .
255 739708
Ребят, а как язык приложения поменять? Хочу чтобы английский был
256 739741
>>739708
Ууу. Маалыс обкакунькался. Кто у нас тут засирака гуглом не мозет пользоваться есё? Давай подотру. Давай https://docs2.yoyogames.com/source/_build/1_overview/1_getting_started/preferences/prefs_general.html Воотъ.
257 739841
>>686540 (OP)
Делаю ТДС. Есть проблема.
У противника есть поле зрения. Если игрок в поле зрения, то противник должен запомнить координаты игрока и идти к ним.
Я сделал поле зрения противника и движение с обходом препятствий.
Но как сделать это:
Если игрок вышел из поля зрения (Появилась стена), противник должен прийти к месту, где игрок был последний раз в поле зрения. Когда противник окажется там, он должен покрутиться 1-3 раза возможно и начать дальнейший обход
258 739852
>>739841
Твой противник - машина состояний.

У него есть состояние "иду на точку", в котором он перемещается к выбранной точке, а в конце скрипта делает проверку

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

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

Когда точка достигнута противник переходит в состояние "выбор следующего действия".
Если игрок в заданной точке не обнаружен, то принятое решение = "покрутиться" + pokrutitsya_times = choose(1,3).

Приняв решение противник переключается в состояние "порутиться" и покручивается пока pokrutitsya_times не становится равно 0.

После того, как покрутился, снова переходит в состояние "выбор следующего действия", в котором если опять не обнаруживает игрока, принимает решение "начать дальнейший обход"
259 739857
>>739852

>меняешь координаты точки-цели


Хз как сделать
Можно пример?
или может сделать так что игрок раз в три секунды срет невидимымыми точками к при отсутствии игрока бот идет к последней высранной куче
260 739863
>>739857
Ты тупой потому что. Какие точки? Наверное сделал Если вижу - иду.
А надо - если вижу -вношу координату в переменную и иду пока моя координата не станет равной целевой.

>>739852
Не нужно никакое "выбор следующего". Нужно просто "состояние погоня" -"состояние покрутиться"
261 739870
>>739863
>>739863
ты не понял суть вопроса:
мне нужно чтобы бот шел на точку где последний раз был виден игрок, так как он сьебался за стену

Уже весь инет перелопатил, везде тупой тупой

А решений так ну у кого и нет

Ебаный геймейкер
262 739871
>>739870
А как ты движение с обходом препятствий запилил? У тебя куда враг пиздует, когда игрока не видит?
263 739878
>>739870
Как у тебя бот вообще видит?
264 739892
>>739878
Если ты знаешь как помочь хотя бы примерно - то скинь мыло или телегу, если помощь будет существенная - я могу отблагодарить.
265 739897
>>739892
Я даже не понимаю что ты делаешь. Бот у него в гей мейкере. Что за бот? Откуда бот? Видит он там че-то. Охрана за дворцом прячется, эльфы крутяться. Давай вместо XY проблемы ты сам нормально вопрос сформулируешь.
266 739902
>>739892
@doroboarashi
267 739904
>>739902
Но вообще лучше перед тем как стучаться, правильно задай вопрос в треде.

Скопируй свой код в pastebin, сделай скриншоты, максимально подробно опиши, в чём твоя проблема, что именно мешает тебе записать последнюю точку, в которой был виден игрок, и отправлять врага в неё, обновляя её координаты каждый шаг.
268 741122
>>686540 (OP)
Планирую скачать восьмой гамак и сделать на нём игру. Какие подводные камни? На более новые версии переходить не хочу.
269 741185
Все. Опера испортила единственное что было хорошо в гейм-мейкере. Возможность написать в гугле название функции и получит ответ первой ссылкой. Спасибо. Теперь нужно пол-часа искать мануал на сайте йо-йо гейс и ждать по пол-часа пока их штмл-5 приложение соизволит загрузить страницу гоняя огромные загружающие квадраты по экрану. Прямо как и во всех остальных движках.
270 741257
>>741185
Не понял. Причем здесь браузер вообще?
271 741344
>>741122
Бамп вопросу.
272 741354
>>741344
Нет смысла использовать кривую поделку 10-летней давности, зачем?
273 741362
>>741354
Чтобы сделать игру.
274 741448
>>741122
Если ты планируешь выпускаться на Windows никаких критических проблем, но чем не нравится GMS 1? Там производительность выше и возможностей побольше.
275 741451
>>733777
Не такой уж он и низкий, дохера всего придется писать самому или искать кривущие ассеты. Ту же систему камер, инерцию для тача, ui куда же без него и так до бесконечности
276 742064

>local variable playbackSpeed(100008) not set before reading it


Чего блядь? Я понимаю, в чем мой косяк, я пытался прочитать переменную до того, как она задана. Но откуда взялся этот playbackSpeed? У меня ничего с таким названием никогда не было.
277 742071
>>742064
Там обычно в логе пишется и файл в котором вылазит ошибка и строка. Залезь и посмотри.
gms2tiles.png73 Кб, 916x759
278 743521
>>686540 (OP)
Почему некоторые тайлсеты не правильно отображаться?
Не совсем могу объяснить, но покажу скрин.

В окне настроек тайлсета всё верно отображается, а вот в редакторе комнаты такая же ересь, как в нижнем окне autotiling'а

Ощущение, что GMS как-то смещается картинку в некоторых частях
279 743569
>>743521
Что-нибудь с оффсетами или separation накосячил.
280 746623
>>743521

>некоторые



Это которые больше чем 2048 в ширину \ высоту?

Похоже, будто гамак его сжимает принудительно. В настройках билда проверь размер текстур.
281 748874
Сап.

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

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

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

Вероятно, я тупой, но можете хотя бы вкратце пояснить гейм мейкер вообще актуален сейчас? Почему он предпочтительнее, чем годот, например? Для меня пока что главный плюс, что в гамаке язык JS-о подобный.

Заранее благодарен за советы мудрые.
.png119 Кб, 1920x1080
282 748950
>>748874

>Вероятно, я тупой, но можете хотя бы вкратце пояснить гейм мейкер вообще актуален сейчас?


Ну типа да. На 1.4 делалась куча культовых игр: хотлайн майами, гипер лайт дрифтер, нуклеар трон, андыртейл, вальхалла, вот это вот всё. На двушке сейчас тоже парочка неплохих игор вышла.

>Почему он предпочтительнее, чем годот, например?


Хуй знает, годотом не пользовался, но могу сказать, что язык гамака достаточно прост (я не про драг-н-дроп, если что, который совсем хуйня для детей), его буквально может освоить даже дебил вроде меня, который нихуя кроме таблиц в экселле не создавал. Главное - не бояться искать туториалы, штудировать мануал, если что-то не знакомо, и спрашивать советы у людей с опытом (у гамака есть активный сервер в дисе, там 24/7 работают каналы по разруливанию каких-либо технических вопросов).
По сути, самое содержательное пояснение по теме, которое я могу дать тебе. Если хочешь - можешь сам попробовать трайл двушки/угнать на русракере и пощупать, что да как. Из очевидных отличий 1.4 и 2 - лучше интерфейс, производительность и некоторые новые плюшки.
283 748953
>>748950
Спасибо за пояснение!

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

На мысли эти меня натолкнули в целом менее положительные отзывы у гамака относительно того же годота. Вот и интересуюсь, собственно.
284 749029
>>748953
Если ты будешь сравнивать движки по играм, которые на них вышли, то годот в этом плане... Но это уже территория движкосрача.

ХЗ что значит "актуальность". Ты собрался на работу устраиваться и хочешь изучить востребованный движок? Юнити.

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

Для сравнения гамака с годотом можешь хартбисту написать. Он и по гамаку и по годоту уроки даёт. https://www.youtube.com/c/uheartbeast/
285 749066
Может кто помочь, нужно сделать exe-файл, что бы продемонстрировать игру, но у меня только демо версия!

Если можете помочь, отпишите
Тг: leksasasasasasasasasas
286 749067
>>749029
Спасибо за советы! В обчем, скачаю демку гамака, поковыряюсь.
287 749088
Посоны, така беда - делал туториал по джрпг боёвке, оказалось, что японский хуй обзирает 2.3, а у меня 2.2, в котором нету Broadcast Sysyem. Я попытался написать свою систему, но соснул.
Где можно почитать, как она вообще реализуется?
Я сделал глобальную переменную, в которую юниты шлют свои мессаги, а потом другие юниты её читают, и когда все прочитали, она обнуляется. Проблема начинается, когда два юнита в неё пишут разные мессаги.
Как эту броадкас систем по уму сделать?
288 749089
>>748874
В чём проблема поставить интересующие тебя движки и попробовать что-нибудь сделать?
Я вот три раза пытался вкатиться в Unity, безуспешно. Брезгливо попробовал гамак, и просто охуел, насколько там всё по уму и логично сделано если сравнивать с юнити.
Единственный минус - он платный. Но я пирачу.
289 751415
>>749088
Нихуя не понятно, что это за система и что именно ты хочешь. Давай детали.
290 751431
пацаны, фри версия пойдет для сбора своей задумки полностью? и могу ли я потом её же скомпилировать на десктопы и мобилы, уже купив нужные версии?
291 751432
>>751431
Они буквально вчера сказали, что с триал версии убирается временное ограничение.

>пацаны, фри версия пойдет для сбора своей задумки полностью?


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

>и могу ли я потом её же скомпилировать на десктопы и мобилы, уже купив нужные версии?


Если файлы проекта есть, то да. Но там ещё фишка в том - что десктоп, мобила и веб - это всё разные лицухи, которые нужно отдельно покупать.
292 751506
>>751431
даже я активный юзер гамака с лохматых годов и до конца поддержки гмс1 включительно свалил, цены не адекватные, это они мне должны доплачивать за пользование движком где дохуя чего нет.
293 751544
Застревает персонаж (зеленая коллизия) при прыжке влево в крае платформы (красная коллизия). Но выйти влево, вправо и прыжком можно. Как это пофиксить?
294 751581
>>751544

Это происходит когда я прыгаю но проваливаясь уже на 1 пиксель ниже уровня платформы, делаю инпут влево, и меня следующим кадром переносит влево как я понял, при проверке слева показывает что пусто. Может на 1 пиксель по диагонали надо ещё чек сделать?
295 751584
>>751581
Проверяй одновременно икс и игрек.
296 751592
>>751544
Ох этот неофитский код с keyboard_checkами и place_meetingами.

Да ещё и whilы безумные!

Учись дебагать, это самый необходимый тебе навык на этом этапе. Фрейм за фремом смотри, как меняется координата твоего персонажа в какой момент.

Ох ох ох, у тебя там ещё попытка заменить state machine условиями в if.

if death==false - вот это вот.

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

Во-первых:
Прежде чем вводить дополнительные механики разберись с движением.
Рекомендую вот этот туториал.
https://forum.yoyogames.com/index.php?threads/on-slopes-and-grids-subpixel-perfect-topdown-movement-and-collision-line-without-objects.4073/
Он для GMS1.4 написан, но полностью подходит для GMS2.
Сам проект импортируется в GMS2, всё работает практически без изменений. В GMS2.3 можно улучшить при помощи функций.

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

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

Разберись что такое Pixel perfect движение, двигай своего персонажа только на целый пиксель, даже если у тебя дробная скорость.

Твои коллизии в платформере должны быть идеальны от и до! Займись ими вплотную!

Во-вторых: котроллер.
Ты сейчас молодой, шутливый, лепишь повсюду keyboard_check_pressed(vk_up). В тот момент когда ты заходешь перейти на wasd шутки кончатся. А когда захочешь сделать поддержку джойстика... не стоит вскрывать эту тему.
Это скучно, но лучше сразу сделай объект obj_controller, который в begin_step_event будет иметь кода типа
jump_pressed = keyboard_check_pressed(vk_up)

а потом в коде игрока обращайся к контроллеру if obj_controller.jump_pressed вместо keyboard_check_pressed(vk_up)

В-третьих:
Прежде чем вводить переменные death, hit, attack и т.д. почитай (посмотри туториал спалдинга) что такое state mashine. Тебе понравится, всё станет гораздо проще.

В четвёртых: когда прокачаешься достаточно, узнаешь что прямоугольные функции типа place_meeting работают не совсем так, как ты думаешь. Слева и снизу у тебя не будет столкновения тогда, когда координаты объектов "вроде как" совпадают.
У тебя же нет этого бага, когда ты справа к стенке прилипаешь?
296 751592
>>751544
Ох этот неофитский код с keyboard_checkами и place_meetingами.

Да ещё и whilы безумные!

Учись дебагать, это самый необходимый тебе навык на этом этапе. Фрейм за фремом смотри, как меняется координата твоего персонажа в какой момент.

Ох ох ох, у тебя там ещё попытка заменить state machine условиями в if.

if death==false - вот это вот.

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

Во-первых:
Прежде чем вводить дополнительные механики разберись с движением.
Рекомендую вот этот туториал.
https://forum.yoyogames.com/index.php?threads/on-slopes-and-grids-subpixel-perfect-topdown-movement-and-collision-line-without-objects.4073/
Он для GMS1.4 написан, но полностью подходит для GMS2.
Сам проект импортируется в GMS2, всё работает практически без изменений. В GMS2.3 можно улучшить при помощи функций.

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

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

Разберись что такое Pixel perfect движение, двигай своего персонажа только на целый пиксель, даже если у тебя дробная скорость.

Твои коллизии в платформере должны быть идеальны от и до! Займись ими вплотную!

Во-вторых: котроллер.
Ты сейчас молодой, шутливый, лепишь повсюду keyboard_check_pressed(vk_up). В тот момент когда ты заходешь перейти на wasd шутки кончатся. А когда захочешь сделать поддержку джойстика... не стоит вскрывать эту тему.
Это скучно, но лучше сразу сделай объект obj_controller, который в begin_step_event будет иметь кода типа
jump_pressed = keyboard_check_pressed(vk_up)

а потом в коде игрока обращайся к контроллеру if obj_controller.jump_pressed вместо keyboard_check_pressed(vk_up)

В-третьих:
Прежде чем вводить переменные death, hit, attack и т.д. почитай (посмотри туториал спалдинга) что такое state mashine. Тебе понравится, всё станет гораздо проще.

В четвёртых: когда прокачаешься достаточно, узнаешь что прямоугольные функции типа place_meeting работают не совсем так, как ты думаешь. Слева и снизу у тебя не будет столкновения тогда, когда координаты объектов "вроде как" совпадают.
У тебя же нет этого бага, когда ты справа к стенке прилипаешь?
297 751766
>>751592

Спасибо за помощь! К сожалению, я не смог изучить туториал, потому что там картинки на странице не отображаются

Сделал по твоему совету контроллер, для инпута игрока

State machine тоже сделаю по туториалу

Кстати, при помощи дебага я понял, что place_meeting не дает столкновение слева и снизу/справа. А так как я не переделал систему калькуляциии скоростей и коллизий, то проблему я пофиксил, при помощи дикого костыля.
298 751940
рисую спрайт в Draw event функцией:

draw_sprite_ext (sprite_index, image_index, x, y, obj_player_base.draw_xscale, obj_player_base.draw_yscale, image_angle, image_blend, image_alpha);

В Step event есть изменение встроенной image_xscale спрайта на 1 или -1 в зависимости от того куда развернут персонаж

После того как я сделал эту функцию в Draw, у меня больше не отзеркаливает спрайт, хотя функция draw_sprite_ext не затрагивает встроенную переменную image_xscale. Почему так?
299 751941
>>751940

То есть параметр image_xscale меняется на -1, но при этом спрайт всегда рисуется по направлению вправо
300 751946
>>751941

xscaleThe horizontal scaling of the sprite, as a multiplier: 1 = normal scaling, 0.5 is half etc...
yscaleThe vertical scaling of the sprite as a multiplier: 1 = normal scaling, 0.5 is half etc...

Я так понял это и есть image_xscale, то есть мне надо просто отрицательное задавать, умножать на -1 может быть когда спрайт отражен должен быть
301 751952
>>751940
draw_sprite_ext (sprite_index, image_index, x, y, obj_player_base.draw_xscale, obj_player_base.draw_yscale, image_angle, image_blend, image_alpha);

Так ты и не используешь параметр image_xscale здесь. Вот если бы ты писал draw_self() у тебя бы всё работало.

Так что меняй obj_player_base.draw_xscale на -1 при движении влево.

А лучше сделай отдельный спрайт для каждого направления, даже если это просто одинаковые спрайты. Нельзя такие важные объекты как obj_player зеркалить и скейлить. Потому что при отзеркаливании твой спрайт может сместиться на 1 пиксель.
302 751993
>>751952

Да, именно если я пишу draw_self () то офк этот спрайт разворачивается
Но у меня же тогда функция растягивания не будет работать, или спрайт будет рисоваться два раза
Спрайт который растягивается не разворачивается при том что параметр im_xs = -1

Я зеркалю obj_player (скин игрока). obj_player_base я ничего не делаю, он сделан для коллизий и движения
303 752012
привет! я как неосилятор прошелся уже по 3 туториалам, но как дело доходит до своего проекта сразу плыву. насколько реально найти что то типа ментораза копеечку конечно же, что бы не срать тут своими вопросами 24\7?
304 752018
>>752012
Нужно учиться самому решать возникшие проблемы, потому что дальше будет только труднее. Когда начнёшь создавать свою игру постоянно будет возникать сложные и очень сложные задачки.
305 752023
>>751993
Ну пиши тогда либо

draw_sprite_ext (sprite_index, image_index, x, y, image_xscale, obj_player_base.draw_yscale, image_angle, image_blend, image_alpha);

или пиши

draw_sprite_ext (sprite_index, image_index, x, y, obj_player_base.draw_xscale, obj_player_base.draw_yscale, image_angle, image_blend, image_alpha);

Но меняй не image_xscale, а obj_player_base.draw_xscale
306 752024
>>752012
Нафиг кому нужны твои копеечки?

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

В большинстве случаев ты в процессе написания вопроса получишь на него ответ. В остальных случаях получишь быстрый ответ на форуме.

Ну и погуглить не забывай.
307 752046
>>752023

Сделал по другому, просто в зависимости от инпута (лево или право) меняю эту свою переменную на положительное либо отрицательное значение, и все работает
745675467456555.png124 Кб, 1166x840
308 752126
Сап, анонасы. Я ньюфажина.
В некоторых играх (например, Stardew Valley) если персонаж при движении упирается в препятствие достаточно близко к его краю - он не просто встает, а начинает двигаться к этому краю, пока не обойдет препятствие.
Стало интересно, как это реализовать. На ум приходит только создание особых "угловых" объектов коллизий, но это плохой вариант.

Можно ли как-то замутить проверку расстояния от игрока до краев маски объекта, с которым он сталкивается?
Или есть более простой способ заставить персонажа самостоятельно обходить препятствия?
309 752128
>>752126

>Можно ли как-то замутить проверку расстояния от игрока до краев маски объекта, с которым он сталкивается?


По ходу, понял как
1.png20 Кб, 1166x840
310 752150
>>752126
Я так делаю:

При нажатии кнопки движения:
Проверка на линию коллизии шириной с персонажа на 1 пиксель вперёд по направлению движения.
Если коллизия впереди есть, делаю две проверки линии коллизий по бокам персонажа длинной в самого персонажа + 1 пиксель по направлению вперёд.

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

Получается как будто персонаж скользит в нужном направлении.

Вместо скольжения можно просто стартовать движение в бок, с правильной анимации. Но как по мне, "скольжение" лучше.
311 752153
>>752126

>Можно ли как-то замутить проверку расстояния от игрока до краев маски объекта, с которым он сталкивается?



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

Напиши себе скрипт который будет проверять коллизию одной точки, коллизию линии и коллизию прямоугольника.
312 752163
>>752150
>>752153
Спасибо!
313 752965
https://nikles.it/2019/gamemaker-tutorial/how-to-code-a-platformer-engine/

Анон, я сделал по данному туториалу pixel perfect movement/collision, в принципе я все понял

>>751592

>Разберись что такое Pixel perfect движение, двигай своего персонажа только на целый пиксель, даже если у тебя дробная скорость



Вот у меня вопрос: если я делаю round своей координаты в конечном итоге мой спрайт двигается integer'am, а если убираю - то по дробным. Но если я округляю пиксели, то у меня "тряска" спрайта игрока. А если убираю - ее нет, с анимацией все ок. Но получается тогда движение не пиксельперфектное? Могут быть баги? И как нужно делать?
314 752980
>>752965
1) Покажи тряску
2) я делаю round своей координаты - смысл туториала не в этом. По туториалу у тебя есть буферы движения ax и ay(кажется) к которым прибавляется твоё перемещение за шаг. Как только перемещение закончилось, от ax и ay забирается целая часть (ax div 1) и прибавляется к твоей текущей координате, а дробная часть (ax mod 1) Остаётся в буфере для движения в следующем кадре.
3) если я округляю пиксели, то у меня "тряска" спрайта игрока. А ты не округляй, ты делай floor
315 752981
>>752980

Не могу показать свой сейчас, вот https://www.youtube.com/watch?v=SB4C_A0NGCA&feature=emb_logo ПРИМЕРНО как у него танк, то есть двигается только по целым значениям, без субпикселей

https://www.dropbox.com/s/nfytcy8xm9al9o0/MovementSlopesBlog.yyz?dl=0 вот проект тутора самого кстати, можно запустить, попрыгать и станет понятно
316 752983
>>752981

+Видно на гифках на тех же страницах тутора
317 753066
>>752981

> https://www.youtube.com/watch?v=SB4C_A0NGCA&feature=emb_logo


Это как раз примеры НЕ пиксель пёрфектного движения. Этот танк колбасит потому что он по дробным пикселям движется.

>https://www.dropbox.com/s/nfytcy8xm9al9o0/MovementSlopesBlog.yyz?dl=0


Здесь всё абсолютно плавно.
2021-07-11 23-58-25.mp4352 Кб, mp4,
1920x1080, 0:16
318 753119
>>753066

В смысле?..
319 753122
>>753121

Это тутор
320 753124
>>753119
Что не так в проджекте? У тебя тат зум 6х. За каждую единицу перемещения персонаж прыгает на 6 реальных пикселей.
Не делай такого невротебенного зума.
Если хочешь крупный пиксель с плавными движениями - увеличивай свои картинки а не зум камеры.
321 753125
>>753124

>У тебя там зум 6х


Там комната 320х160, которая растягивается на фулскрин. При разрешении 1920х1080 как раз 6х получается, да.
Runner 2021-07-12 00-57-48-45.webm420 Кб, webm,
320x160, 0:10
322 753129
Вот реальный размер твоего изображение и пиксель пёрфектное движение.
323 753130
>>753119
Чел, там precise collision используется тупо для движения.

Ни в коем случае так не делай.
.gif55 Кб, 1280x720
324 753131
Как сглаживать подобную угловатость у вращающихся объектов?
325 753132
>>753131
В современных пиксельарт играх не делают зум.
Вставляют спрайт с уже нарисованным на нём крупным пикселем и спокойно вращают.

Некоторые считают это зашкваром (я тоже). Некоторые не признают за пиксельарт. Но практира такова.

С таким крупным пикселем либо та, либо как у тебя на картинке. Хз что хуже.
326 753133
>>752965
>>752981
У меня была такая хуйня. В итоге, понял, что трясется не спрайт игрока, а камера.
Встроенные штуки, не требующие кода, в гейм мейкере часто работают не как ожидаешь. В частности, настройки камеры и видов в комнате. Создай камеру и вид кодом, и следование за игроком тоже.
327 753134
>>753133
А, прочитал посты дальше. Это другая хуйня.
.mp4212 Кб, mp4,
462x360, 0:03
328 753135
>>753132
По итогу-то что?
Sprite-0002.jpg24 Кб, 1280x720
329 753137
>>753135
По итогу вот.
330 753138
>>753137
Ясно, мы вам перезвоним.
331 753140
>>753133
>>753129
>>753125
>>753124

Все понятно, я сделал все спрайты под 1920х1080, но у меня последний вопрос, если игру запустят на 2560 x 1440 мониторе, то там же будет зум, и из за этого объекты опять будут прыгать > чем на 1 пиксель. И как быть?
332 753141
>>753140

В принципе это то же самое что я сделаю 960/540 и х2 зум на моем HD монике. То есть нормалёк
333 753142
>>753132

>В современных пиксельарт играх не делают зум.



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

У меня до сих пор в голове туториалы где размер окна six-forty by three-sixty. Я думал что без зума делают только дауны...
334 753148
>>753140
Пиксель монитора 2560 x 1440 в 4 раза меньше, чем у монитора 1920х1080 (при одинаковых физических размерах мониторов), так чро физическое расстояние, которое пройдёт объект на экране будет одинаковым и для глаза не будет разницы.
335 753864
Почему когда я меняю Depth слоя, depth других слоев автоматически меняется

Мне надо допустим

Слой1 тайлы Detph0
Слой2 спрайты Depth0
Слой3 инстансы Depth1

Если я ставлю глубину какому то 1 слою, оно автоматически меняет глубину и других слоев на 100 единиц. Хотя у других людей в проектах выставляется глубина слоев
336 753865
>>753864

Пришлось сделать отдельный скрипт, но там если я делаю двум слоям одинаковую Depth, спрайты проникают друг в друга.
337 753886
>>753864
У слоёв же должна быть разная глубина.
image.png1,9 Мб, 1920x1080
338 754052
Пророк
339 754079
>>754052
Не рекомендую использовать код из его туториалов. Этот код - говно.
340 754109
>>754052
Не знал, что Максим Кац делает игры.
341 754121
>>753886

Неа не должна быть

Короче можно сделать. Чтобы гамак не менял глубину нужно убрать замочек на всех слоях - тогда можно ставить любому слою любую глубину
342 754122
>>754079

Почему? Что конкретно?
343 754169
>>754122
Коллизии.
Использование keyboard_checkов прямов в коде.
Наиебанутейший способ сделать 1-way-platforms.
Поехавший инвентарь.
Туториал по камере просто нет слов.

Сами его туториалы, безусловно, очень полезны новичкам. Но Также новичкам нужно знать, что то, что в этих туториалах написано - суперсвехупрощённо и не правильно.
344 754184
>>754169

>Использование keyboard_checkов прямов в коде.


Не смотрел его видосы, Но тут-то что не так? Где еще keyboard_check использовать?
345 754188
>>754184

>>751592

>объект obj_controller, который в begin_step_event будет иметь кода типа


>jump_pressed = keyboard_check_pressed(vk_up)

346 754190
>>754188
Ебать ты кодовый нацист. Ну, в принципе, справедливо.
347 754448
Проблема такая: у меня 60 фпс монитор, и когда скорость комнаты 60 фпс (В настройках Game options Main Game frames per second - 60, как я понял это и есть встроенная переменная room_speed) - идет микрофриз частый, изображение дергается. Никаких For / while / draw нет, просто прыгающий квадрат

Я гуглил англоязычные треды по этой проблеме - Sleep margin менял, не помогает. И везде один ответ был как решение: room_speed сделать 999 - типа тогда исчезает. В итоге я меняю Game frames per second на 120 и перестает подфризивать, но можно ли так делать? Что-то меняется для логики и производительности если 120 фепесов делать?

И второй вопрос, как снижать GPU usage? Пустой проект выдает около 14%, по-моему как то чересчур много
348 754449
>>754169

>Использование keyboard_checkов прямов в коде



Тут соглы

>>754169

>Коллизии



Я такие же юзаю, они работают, мне просто пиксель перфект колижен не нужен, у меня не платформер. Мне кажется их можно использовать
349 754542
И как теперь сделать так, чтобы на мониторе 75 гц у меня игра не ускорялась по сравнению с монитором 60 ГЦ? Потому что выдает 75 фпс / 60 фпс, соответственно все ускоряется
350 754550
>>754542
У тебя там где-то должна быть дельта между фреймами. Ты должен во всех своих формулах движения умножать всё барахло на дельту. Тогда всё движущееся будет двигаться обратно пропорционально скачкам фпс.
мимо
351 754561
Кто баловался с мультиплеером, во второй студии гамака мультиплеер получше пилится, чем в 1.4, или без разницы?
352 754600
>>754550
>>754550

Я тоже прочитал в обсуждениях про дельта тайм, что его надо юзать, только не совсем понял:

У меня стоит 120 room speed

На моём Монике игра выдает 60 кадров, на другом 75 в секунду. Если я буду использовать дельтатайм в скриптах, то что будет с логикой? Она будет работать как 120 шагов в секунду везде, то есть скорости будут одинаковые везде, при разной частоте обновления дисплея? То есть она отвяжется от фпс, если я верно понял?
353 754812
>>754600

> она отвяжется от фпс, если я верно понял?


Да.
354 754958
>>754550
Вообще какой-то не очень правильный ответ на вопрос.

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

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

И то и другое плохо. Игра не должна тормозить.

>И как теперь сделать так, чтобы на мониторе 75 гц у меня игра не ускорялась по сравнению с монитором 60 ГЦ? Потому что выдает 75 фпс / 60 фпс, соответственно все ускоряется



Ты можешь установить скорость игры в микросекундах. Это должно решить проблемы любых ускорений.
game_set_speed(33333, gamespeed_microseconds); // поставит тебе "60 фпс"

Но я как-то мало про это знаю, т.к. никогда не запускал гамаковские игры на мониторе с 75 герц.
355 754960
>>754958

>game_set_speed(33333, gamespeed_microseconds)



Стоп-стоп. Это поставит на 30 fps
356 754962
>>754960
game_set_speed(16666, gamespeed_microseconds) даст 60 fps
357 754967
Сейчас потестировал, если на мониторе пониженый FPS игра будет работать медленнее, как не повышай game_speed. Пусть у тебя ещё куча fps_real в запасе.
image.png113 Кб, 1920x1080
358 755260
Юзаю 2.5Д камеру
Появились полосы на тайлах которые ближе всего по глубине к камере
И игра по прежнему тормозит (фпс стабильный и не проседает). Просто подфризивает при движении изредка, очень заметно. Увеличение room_speed до 999 не помогает
359 755262
Еще и фпс до 55 теперь дропается
360 755263
Окей, убрал полосы этим

In the tileset resource that you use set the texture border width to a higher value
361 755274
>>751415
Типа там один юнит броадкастит "Я ударил!"
Все остальные, когда слышат "Я ударил!" смотрят у себя на флаг "выбран" и если он стоит то отрабатывают получение пиздюлины.
362 762830
>>755274
Ну давай разберём по частям тобой написанное:
Во-первых, непонятно, зачем тебе какие-то глобальные переменные, в которых нужно что-то отсылать.
Во-вторых, я опять же не ебу, что у тебя за код, тащи свою хуйню сюда, телепаты в отпуске.
363 763169
Эту ебалу перевели на модель подписки лол.
Самое время съебнуть на юнити.
https://www.yoyogames.com/en/get
364 763170
>>763169
Да, кстати. Не успел я купить на распродаже базовую версию с поддержкой десктопа и начать изучать, как они переобулись и вскоре стим-версию тоже склоупнут и выебут. Пиздец разочарование, в твиттере тоже вой стоит. Видимо, и правда, придется юньку щупать. Физическое отвращение к любой залупе с подписочной моделью.
365 763183
>>763169
Кстати я вот этого тоже не понял.
Мне сегодня клиент написал чтобы я принял новое лицензионное соглашение. Я принял и продолжил работать, не вникал.

Получается меня на подписку перевели что ли?
1.png14 Кб, 771x197
366 763184
>>763183
Всё нормально. Тем, у кого уже перманентная лицензия, ничего не угрожает.
367 763187
>>763184
Вроде бы не угрожает. В профиле перманентная лицензия вообще отображается как free мерзость какая, по будущим обновлениям сейчас этим мудакам особой веры нет. Где-то эти костыли рано или поздно вылезут.
368 763208
>>763184
>>763187
На форуме пиздят! Ещё как угрожает: если у вас была перманентная лицензия, то взамен выдаётся 12 месяцев бесплатной подписки по тайеру "инди". У меня в профиле 17 месяцев, хз это глюк или они так расщедрились.
sage 369 763217
да ёб твою мать...
1.png9 Кб, 1139x143
370 763224
>>763208
В моём профиле всё ок вроде.
371 763230
>>763224
Зайди в раздел "subscriptions".
Олсо вангую что через год все "вечные" лицензии обнулятся. Или нельзя будет обновится без покупки подписки. Или ГМ загнётся.
372 763250
>>763230
Бля, реально. Походу на 17 месяцев мне подписку сделали...

Пидоры.
373 763262
>>763250
Котёл, тебе придётся переходить на Годот!
374 763263
>>763262
Для безыгорных гамак бесплатен.
375 763285
>>763230

> Или нельзя будет обновится без покупки подписки


Скорее всего это.
376 763291
>>763285
А я всё равно застрял на 2.2 до тех пор, пока не выпущу Котёл.
377 763302
>>763291
Да тут вопрос не в версии, по большому счету, а в хамском отношении к лояльному клиенту, которому в нынешних условиях всё-таки есть куда свалить. Олды вон до сих пор в шестом фотошопе сидят под ХР и им нормально, главное чтоб для задач хватало, но там и пиратка, а не вот это вот всё.
выходи отсюда.mp47,4 Мб, mp4,
1920x1080, 0:06
378 763670
Штош, думал перекатить прожект на 2 студию, но пока придется остаться на 1.4
А там уж либо после продаж попробовать перекатить, либо щупать хуюнити/говнот, а то и удк5 ждать. Вот уж современный мир, когда лучший убийца продукта это этот же самый продукт.
Подписка вроде не дорогая, но всё равно противно. А самое уебанское, это то что уже купленное отбирают.
379 766190
Спрашиваю по поводу звуков, так как ничего об этом не знаю. В гейм мейкере лучше всего для звуковых эффектов использовать какой формат? ogg является лучшим для этого выбором?
380 766237
>>766190
он там вроде автоматом конвертит все во что ему нужно
381 768988
Тред, видимо, теперь уже посвящён оплакиванию перманентной лицензии и перекатыванию куда угодно (Unity точно удобнее GMS2 для разработки 2D игр?). Однако, начатое надо доделывать. Возник вопрос и, надеюсь, в треде ещё остались адекваты.
Есть ли вшитые шрифты, которые умеют показывать китайские (TC и SC), японские и корейские иероглифы? Ну и хинди ещё збс было бы.
Скачал гугловские CJK из Noto Sans и Noto Serif, но как-то с ними проект вырос с 30 Мб до 190 Мб. Не хотеть этого. С другой стороны, Noto по хорошей лицензии распространяется.
Подсобите советиком, аноны, прошу.
382 768989
>>768988

>Тред, видимо, теперь уже посвящён оплакиванию перманентной


Нет, не посвящён.

>Есть ли вшитые шрифты, которые умеют показывать китайские (TC и SC), японские и корейские иероглифы? Ну и хинди ещё збс было бы.


Ну что значит "вшитые"? Либо ты используешь системный шрифт ОС пользователя, либо прикрепляешь свой шрифт к проекту.

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

А ещё у меня для тебя хорошая новость. Корейцы уже 60 лет иероглифами не пользуются.
383 769000
>>768989

>Нет, не посвящён.


Прекрасно.

>Ну что значит "вшитые"? Либо ты используешь системный шрифт ОС пользователя, либо прикрепляешь свой шрифт к проекту.


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

>Шрифт с kaji естественно много весит, так что для японцев и китайцев можешь сделать отдельные версии, чтобы остальных кандзями не напрягать. Или использовать системые шрифты, какие у них там широко распространены, я не знаю.


Прекрасный совет, спасибо. То есть общего шрифта для них нет? У Noto там вроде по 30-40к символов, а наиболее часто у азиатов используется 2-8к. Хотя, такие "выборочные" рофлошрифты, наверное, ещё поискать надо.

>А ещё у меня для тебя хорошая новость. Корейцы уже 60 лет иероглифами не пользуются.


Но и латиницей чё-то не особо пользуются чувствую терминологически подъёб.

>

384 769002
>>769000

>Но и латиницей чё-то не особо пользуются чувствую терминологически подъёб



У них свой корейский алфавит слоговый. Наподобие японской каны.

>30-40к символов


Это слишком дохуя, лутый оверкил. Никто столько не знает. 2к школьных иероглифов + 3к связанных с твоей профессией.

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



Не знаю. Не тестировал никогда. Но по идее так и должно быть, если ты используешь системные шрифты.
385 769004
>>768988
Ты уверен что твое говно нужно кому-то в китае или японии? Попробуй назвать пару инди-игр от китайцев или японцев. Думаешь там кто-то узнает о твоей игре? Ты тратишь время на хуйню.
386 769005
>>769004

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


Это здоровые амбиции, не обращай внимание.
387 769007
>>769002

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


Но у меня в системе иероглифы отображаются. И в самой Studio весь текст корректно отображается. Может быть, проблема с тем, какой фонт задается в коде.
388 769010
>>769007
Ну скинь билд с кандзи.
Запущу у себя просто так, а потом через японскую аплокаль и посмотрю на буквы.
389 769012
>>769010
Я пока не готов её скидывать, однако идея настроить под это виртуалку хороша, спасибо!
390 769215
>>768988
>>768989
>>769002
>>769004
>>769010

Решение проблемы нашлось: к счастью при выборе областей номеров используемых символов при настройке фонтов можно скопировать весь текст и GMS2 сам отберёт только нужные иероглифы и символы.
10/10
Ручаюсь, Юнити3Д так не умеет.
Размер игры снизился со 190 Мб до 35 Мб. Прекрасно. OTFки Фонтов, конечно, сами ещё перед релизом надо будет добавить, но это мелочи.
391 769216
>>769215

>Ручаюсь, Юнити3Д так не умеет


https://docs.unity3d.com/Manual/class-Font.html
Одной галочкой включается. Только отработка ошибок слишком замысловатая.

>When you set the Characters drop-down in the Import Settings to Dynamic, Unity will not pre-generate a texture with all font characters. Instead, it will use the FreeType font rendering engine to create the texture on the fly. This has the advantage that it can save in download size and texture memory, especially when you are using a font which is commonly included in user systems, so you don’t have to include the font data, or when you need to support asian languages or large font sizes

392 769218
>>769216
:-(

Напомните тогда, почему мы пользуемся гамаком?
393 769230
>>769218
Обсуди это здесь: https://2ch.hk/gd/res/618624.html (М)
394 769396
>>686540 (OP)
Добрый вечер.
Сегодня купил движок, десктоп версию.
Поясните за грабли новичку.
395 769400
>>769396
Очищай сурфейсы после создания. На только что созданном сурфейсе может быть нарисовано то, что было нарисовано на уже освобождённом.
396 769412
>>769396

>грабли


Что это? Это какой-то девелоперский сленг?
397 769428
>>769414
О, стоп-тайм на гифке. Тоже рекомендую юзать.
398 769440
>>769230
Местные аноны наверняка знают гамак лучше, чем в движкосраче. Мне просто хочется знать 2-3 главных приемущества гамака и всё. Никаких вопросов, выпадов или какого бы то ни было другого продолжения этого обсуждения с моей стороны не будет.
399 769442
>>769440
Ну каких тебе "главных преимуществ"?

Простой, удобный, для 2d лучше не найти.
Мультиплатформа.
Сделать можно всё что угодно.
Отличная техподдержка от сотрудников yoyo на форуме (не раз с ними общался) и от обычных пользователей.

Что ещё от движка нужно?

Могу припомнить, что несколько раз сталкивался с багами в гамаке, репортил их и их исправляли.
400 769444
>>769442
Спасибо за скорый ответ! Примерно так его и видел.
401 770812
Сегодня столкнулся с какой-то лютой жестью в гамаке.

При загрузке комнаты у большинства объектов стал выполняться clean_up евент ДО create event.

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

Я убрал код из clean up, игра стала загружаться, create выполнился но все инстансы были невидимы. Хотя по дебагеру было видно что в комнате они есть.

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

Я могу только предположить что хуйня была как-то связана с потерей интернет соединения во время работы, из-за чего могла как-то пойти по пизде лицензия yoyo и игра ограничила кол-во объектов, которые можно иметь в проекте.

Если у кого-то было что-то подобное. отпишитесь.
402 770826
>>770812
Объекты не перманентные? Хз что у тебя там, но клинап выполняется при окончании комнаты.
403 771371
Сел разбираться с движком и че за херня? Пишу y += speed; А у меня объект по диагонали уезжает. Какого хуя? В туторах оси под прямыми углами стоят.
404 771413
>>771371
Потому что speed - это одна из встроенных переменных, наряду с direction. Объект движется в сторону, определяемую direction (которая по умолчанию равна 0, это вправо) со скоростью, указанной в speed. Соответственно, если ты к этому сверху привяжешь y += speed, объект будет двигаться по диагонали. Делай кастомные переменные типа spd, тогда будет двигать только вниз.
image.png1,3 Мб, 1280x720
405 772521
Подскажите, имеет ли смысл пилить РПГМ-подобную игру (aka пикрил) на GMS, а не на, собственно, RPGM? А то я чет спонтанно купил гамак, а потом подумал, не проще ли херачить игру на вроде бы специально заточенном под это движке. Хотя Undertale же сделан на нем, значит, препятствий по факту нет.
406 772564
>>772521

>Подскажите, имеет ли смысл пилить РПГМ-подобную игру (aka пикрил) на GMS, а не на, собственно, RPGM?


Нет. Другое дело, что ГМС для более серьёзного и гибкого геймдева, даром, что относительно простой в освоении. РПГМейкер - это больше конструктор с прямыми указаниями типа "один шаг влево" (минус всякие кастомные скрипты, без которых даже размер окна нельзя поменять из коробки).
407 774720
408 775818
Доброго времени суток

Собираюсь приобрести стим версию для декстопа, но не могу выкупить за лицензию, мне дадут 12 месяцев инди варианта подписки или же перманентную лицуху??

Ну и стоит ли оно того вообще или же рассмотреть другие варианты?
409 775820
>>775818

>перманентную лицуху


Это. Один раз покупаешь в стиме и оно закрепляется за акком.

>Ну и стоит ли оно того вообще или же рассмотреть другие варианты?


В плане? Другой движок или что?
410 775821
>>775820

>В плане? Другой движок или что?


Да, в далёком будущем хотелось бы делать какие-нибудь прикольные проектики, что-то по интереснее чем платформеры по гайдам, и выкладывать их на какой-нибудь itch.io или даже стим.

И вот что лучше для этого гамак, unity или какой нибудь unreal с годотом?)
411 775828
>>775821

>Да, в далёком будущем хотелось бы делать какие-нибудь прикольные проектики, что-то по интереснее чем платформеры по гайдам, и выкладывать их на какой-нибудь itch.io или даже стим.


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

>платформеры по гайдам


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

>И вот что лучше для этого гамак, unity или какой нибудь unreal с годотом?)


Ну я как адепт церкви гамака должен тебя склонить к оному, но я хотя бы объясню, почему: хороший движок с понятным интерфейсом, в котором чётко видно, где какой объект/скрипт и как он будет работать/вязаться с другими, багов по минимуму, да и то они фиксятся довольно быстро. Производительность выше по сравнению с тем же юнити да у чего угодно она блять выше, чем у юнити.
Короче, если тебе нужен удобный движок для 2Д игр на самом деле гамак ещё и в 3Д может с минимальным порогом вхождения, то вот, пожалуйста. Сам попробуй что-нибудь потыкать: у гамака есть трайл версия, с которой недавно сняли ограничение по времени, то есть ты в ней только собирать экзэшники не сможешь. Посмотри, что да как, если чего непонятно - обращайся сюда.
412 775852
>>775828
Юнити позволяет создавать крутой визуал благодаря сочетанию 2д и 3д, а что там за 3д в гамаке я хз.
На самом деле юзаю юнити, т.к. просто лучше в нем шарю.

мимо
.png2,3 Мб, 1920x1080
413 775883
>>775852

>а что там за 3д в гамаке я хз


Ну вон выше полноценный тридэ проект на гамаке. Есть игры по типу Titan Souls, которые совмещают в себе 3Д и 2Д в топ-даун перспективе. Челик с этой доски делает арчтавер, правда на 1.4.
414 775886
>>775818

>Собираюсь приобрести


>рассмотреть другие варианты?


Да, рассмотри Godot, он на 100% бесплатный и в 2D может не хуже GMS. Жалко что ли 36 МБ с официального сайта скачать без какой-либо установки? А официальные мануал с туториалами очень хорошо поясняют, как что-то сделать.
415 776017
>>775828

Спасибо, анон, за развёрнутый ответ, буду ждать скидон на лицензию, а пока поковыряю триал версию
416 777287
Я объявляю константы в create event объекта o_Controller
Например

#macro PLAYER_WALK_SPEED 15
#macro PLAYER_JUMP_BUFFER 20

Есть разница, буду я это делать так, либо в Creation Code румы?
417 777905
Посоны, где скачать более-менее свежий гамак с кряком? Интересует преимущественно десктоп.
Нахожу только старые версии.
418 777917
>>777905

>где скачать более-менее свежий гамак


https://www.yoyogames.com/ru

>с кряком


Нигде.

А зачем? Он же практически бесплатный.
419 777921
>>777917

>А зачем?


Чет жаба душит $50 отдавать. Если уж в стим пойду, то куплю, да.
420 777923
>>777921

>Чет жаба душит $50 отдавать



За что ты собрался 50$ отдавать? Ты точно ходил по ссылке? Попробуй ещё раз, может быть ты всё-таки сумеешь найти там кнопку "бесплатно"? (Она там слева внизу)
https://www.yoyogames.com/ru/get

Когда (никогда) понадобится сделать билд на пека заплатишь 82 рубля за месяц лицензии или скинешь свой проект в тред, чтобы тебе билд кто-нибудь сделал.
421 777925
>>777923
Вот блин, спасибо. Я в стиме смотрел. Я так понял запуск проекта бесплатен, а компилятор платный?

>заплатишь 82 рубля


У меня 5 баксов написано.
422 777978
Ребят, в последний раз пользовался версией 8.1. С тех пор большие изменения произошли? Сейчас без проблем вкачусь? Можете вкратце рассказать что изменилось с тех пор?
423 777989
>>777978

>Ребят, в последний раз пользовался версией 8.1. С тех пор большие изменения произошли?


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

>Сейчас без проблем вкачусь?


Да.

>Можете вкратце рассказать что изменилось с тех пор?


Если вкратце, то подтянули интерфейс и производительность, добавили новых фич. Девочка уже совсем большая, теперь это не просто Gamemaker, это GameMaker Studio 2(.3.6).
424 777995
>>777989
А синтаксис поменялся? Функции те же?
425 778107
>>777995

>А синтаксис поменялся? Функции те же?


По большей части всё то же самое, скорее добавили новые функции к уже существующим, чтобы не пердолиться. В любом случае, освоить всё это не так уж трудно.
426 778114
>>772521
Твой пикрил как раз хороший пример того, что можно было бы сделать на любом другом движке кроме RPG Maker'а. Зачем брать движок для РПГ, если ты не пользуешься ни чем кроме системы диалогов?
427 778115
>>777995
Какая разница что поменялось в синтаксисе, если его детали с 99% вероятностью ты уже не помнишь? С выхода гамака 8.1 уже лет 10 прошло и если ты его тогда в последний раз трогал то сейчас все равно переучиваться.
428 778227
>>778107
Понял, спасибо!

>>778115
Все основные функции помню. Достаточно серьезно задрачивал его в те времена.
429 778319
Ребят, не могу понять как создавать файлы и папки в гмс.
Например хочу сделать редактор уровней и хочу сохранять в файл папка_с_игрой/levels.txt
Пишу такой код
file_text_open_write("levels.txt");
или
file_text_open_write(working_directory + "levels.txt");
но нигде не могу найти созданный файл. Ни в папке с проектом (datafiles), ни в временной папке. Что я делаю не так?
430 778322
>>778319
Не пробовал например сделать show_debug_message(working_directory + "levels.txt")

чисто так сказать потыкать везде и проверить где обосрался?
image.png173 Кб, 1920x1080
431 778324
>>778322
Пробовал.

Чет хуйню какую-то сделали в студии. Раньше намного удобнее было.
1.png19 Кб, 531x201
432 778326
>>778319
Файлы, которые ты создаёшь в игре (твои сейвы, текущие конфиги или твой levels.txt создаются в сэндбоксе во временной папке C:\Users\твой юзернейм\AppData\Local\название твоего проекта

Если ты захочешь прикрепить свой файл к проекту, то жми на кнопку, как на пикрил.
Прикреплённый к игре файл нельзя редактировать из игры. Игра не имеет права write к любым файлам на диске пользователя, только к файлам в разрешённой ей временной папке.
433 778327
>>778326
Понял. Спасибо, анон!
434 779142
Дружочки-пирожочки, доброй ночи. Подумываю наговнокодить и, видимо, наговнарисовать суперкрутую игру пушка 10/10. Начал потихоньку пилить прототип и накидывать идеи в блокнотик. Планирую делать тактику в изометрии или около того. Для статичного окружения подумываю использовать спрайт стакинг. Это рабочий вообще вариант? В том плане, удержится ли фпс, если будет сотня другая обьектов рисоваться подобным образом?
435 779535
>>779142
Не проще ли лоуполи модельки ебануть тогда уж?
https://www.youtube.com/watch?v=yU-36CuRxp4
436 779648
>>779535
В гамак? У меня сложилось впечатление, что у меня срака треснет делать там 3д.
.mp43,9 Мб, mp4,
960x540, 0:15
437 779662
>>779142
Если тактика, то вполне. Гамак ещё на 1.4 выдерживал 100+ объектов, которые постоянно двигались туда-сюда. Другой вопрос: дойдёт ли у тебя до этих 100 объектов?
438 779663
>>779662
Охуенно, прямо наглядно видно, как фпс ещё на загрузке провалился ниже плинтуса.
439 779670
Так, Аноны, ситуейшн такая.
Года 4 назад пытался сделать игру, но сдох комп еще на моменте анимаций персонажа. Щас через дохуя времени у меня вновь зачесалась простата желание дрочить гамак.
Коротко - игра 2д-платформер типа КатанаЗеро в стиле Хотлайна.
Что изменилось за последние несколько лет?
440 779677
>>779663
Ну смотри: на прошлом зачищенном уровне у них всё летало, хотя была куча трупов, у которых есть физон при смерте (они отлетают и при смерти), плюс их можно взорвать или воскресить. Ещё там куча стволов, которые можно брать, партиклы, эффекты горящей земли и прочее говно, плюс два персонажа. На следующем уровне овердохуя (500+) противников с разными паттернами поведения, плюс всё вышеназванное. И это ещё на 1.4 с его производительностью. Тебе на двойке хватит твоего пошага на сто объектов с головой.
441 779721
>>779648
Не так сложно, как кажется, но хоть стекинг и проще реализовать, наверное, будет, но думаю по оптимизации модели лучше будут.
442 779722
>>779677
Понял.

Пс. На фпс кто-то другой вонял. Не я.
443 779723
>>779721
Я глянул гамако дискорд, раздел 3д, там чет уныленько на самом деле. И в целом не советуют без опыта лезть. Правда и в стакинге я пока застрял, т.к. планировал манипулировать с depth с помощью косинуса угла камеры до обьекта, а он сука такая только 2 знака после запятой и этого мало((((((( стакинг я выбрал щоб камеру вертеть офк и там депс супер критично настроить.
444 779775
>>686540 (OP)
Проснулся в 3 часа ночи, почистил мандаринку и подумал о том, что мой теоритический метод определения depth если и будет работать, то только с объектами в один тайл размером, чего не хотелось бы. Ебаное программирование игрушка сатаны.
445 779787
Инсайдерские англюсикоблядки, в гамаке в апдейтах вообще запланировано встроенное освещение, по типу слоя эффектов?
2021-12-07 04-12-10 (1).webm9,3 Мб, webm,
1920x1200, 0:17
446 780181
Стоило вдумчиво посидеть вместо прокрастинации и депф даже вроде заработал
447 782778
Такой вопрос. Мне нужно завершить сетевую игру, условием победы является 10 фрагов одного из игроков. Объекты сервера и клиента разнесены по разным комнатам. На сервере, прямо в скрипте передачи пакета от сервера к клиенту, вставил строчку, if player_kill = 10 {network_destroy(server)} и она работает. Из этого скрипты так же могу вытащить переменную имени того, кто набил 10 фрагов. Так вот. Куда мне лучше присвоить эту переменную, чтобы передать всем участникам? Как перекинуть всех в новую комнату завершения игры?
448 783236
Поясните за 2D массивы в юнити.
Почему это не работает?
lightBulb1[0] = [3,2,1,0,1,2,3];
lightBulb1[1] = [3,2,1,0,1,2,3];
lightBulb1[2] = [3,3,2,1,2,3,3];
lightBulb1[3] = [3,3,3,2,3,3,3];
for (var v=0; v<3;v++)
{
for (var h=0; h<6;h++)
{
show_debug_message(string(lightBulb1[v,h]));
}
}
Ошибка:
Push :: Execution Error - Variable Index [0,4] out of range [1,4] - -1.lightBulb1(100012,4)
Когда вот так задаю массив, тоже не работает.
lightBulb1 = [[3,2,1,0,1,2,3],
[3,2,1,0,1,2,3],
[3,3,2,1,2,3,3],
[3,3,3,2,3,3,3],];
Гамак 2.2.5
449 783237
>>783236

>в юнити.


Хуюнити, блядь. Пока мотал /gd в поисках ламповейшего треда, взгляд зацепился за юнитеблядков, сорян.
450 783238
>>783236
Во втором варианте запятую в конце убери
451 783243
>>783236
>>783239
Дело говорит. И в дебаг меседж мне кажется еще стринг залупаться будет, типо для чего он вписан вообще? Я такого синтаксиса не помню на вскидку.
452 783246
>>783238
Убирал, не помогало. С запятой на каком-то форуме увидел.
>>783239
Тоже пробовал, не работает.
>>783243
Дебаг месседж только стринги выводит, чтобы переменную вывести - надо её в стринг сконвертить, для этого и стринг.
Спасибо, посоны, за попытку помочь.
В итоге плюнул и сделал одномерный массив, и вывожу как
lightBulb1[v+h*6].
453 783248
>>783246
Дебаг выводит значение любого типа. Быстрый поиск в мануале функции стринг() выдает ожидаемое ничего. Второй вариант создания массива без запятой в конце является правильным, в мануале он есть.
454 783249
>>783248
Гоню, есть такая функция. С мобилы не нашел, с компа нашел)
455 783250
>>783246
Даже вздрочился с кровати за комп проверил, все работает. Массив создавал как твой второй вариант, только без последней запятой, потому что не может так быть, чтоб у тебя один уровень массива оканчивался запятой, а другой нет. Скопировал твои форы и написал нормально индексы [v][h]. А еще при создании не помню точку с запятой писал или нет в конце. В мануале вроде ее не надо ставить.
456 783251
Насчет первого способа чет вообще хз. Поидее бульб[0] =[] инициализирует массив бульб с одной ячейкой. Т.е. тут нет указания на то, что вложенное в эти скобки тоже является массивом и типо надо инициализировать через [[]]; тогда у меня возникает вопрос, а чем в первом случае является числа через запятую?
457 783307
>>783247
Судя по мануалу она есть, как "массив массивов". Т.е. у тебя одномерный массив одномерных массивов. Что, собственно, и иллюстрирует запись выше.
>>783248

>Дебаг выводит значение любого типа.


Даже при автозаполнении он в подсказке пишет: show_debug_message(str)
...посмотрел в мануале:
"Note that the message can be either a string or a real number, but if you need both then the number will have to be converted to string first using the string function"
Действительно, ты прав. Больше не буду стринги писать.
>>783250
Да как так-то? Вот я написал:
lightBulb3 = [[3,2,1,0,1,2,3],
[3,2,1,0,1,2,3],
[3,3,2,1,2,3,3],
[3,3,3,2,3,3,3]];

Правильно? Как мне теперь к нему обратиться?
content = lightBulb3 [[2],[3]];
show_debug_message(content);

Выдаёт 2 в output, но вылетает с ошибкой:
DoConv :1: illegal array use at gml_Object_main_level_Create_0 (line 39) - content = lightBulb3[[2],[3]];

content = lightBulb3[[2][3]];
Object: main_level Event: Create at line 39 : got '[' expected ',' or ']'
Object: main_level Event: Create at line 39 : malformed assignment statement

content = lightBulb3[2,3];
Тоже выдаёт 2, но вылетает с другой ошибкой:
Push :: Execution Error - Variable Index [2,3] out of range [1,-1] - -1.lightBulb3(100015,64003)
at gml_Object_main_level_Create_0 (line 39) - content = lightBulb3[2,3];

Может в GML2.3 всё работает, а в GML2.2 - нет?
457 783307
>>783247
Судя по мануалу она есть, как "массив массивов". Т.е. у тебя одномерный массив одномерных массивов. Что, собственно, и иллюстрирует запись выше.
>>783248

>Дебаг выводит значение любого типа.


Даже при автозаполнении он в подсказке пишет: show_debug_message(str)
...посмотрел в мануале:
"Note that the message can be either a string or a real number, but if you need both then the number will have to be converted to string first using the string function"
Действительно, ты прав. Больше не буду стринги писать.
>>783250
Да как так-то? Вот я написал:
lightBulb3 = [[3,2,1,0,1,2,3],
[3,2,1,0,1,2,3],
[3,3,2,1,2,3,3],
[3,3,3,2,3,3,3]];

Правильно? Как мне теперь к нему обратиться?
content = lightBulb3 [[2],[3]];
show_debug_message(content);

Выдаёт 2 в output, но вылетает с ошибкой:
DoConv :1: illegal array use at gml_Object_main_level_Create_0 (line 39) - content = lightBulb3[[2],[3]];

content = lightBulb3[[2][3]];
Object: main_level Event: Create at line 39 : got '[' expected ',' or ']'
Object: main_level Event: Create at line 39 : malformed assignment statement

content = lightBulb3[2,3];
Тоже выдаёт 2, но вылетает с другой ошибкой:
Push :: Execution Error - Variable Index [2,3] out of range [1,-1] - -1.lightBulb3(100015,64003)
at gml_Object_main_level_Create_0 (line 39) - content = lightBulb3[2,3];

Может в GML2.3 всё работает, а в GML2.2 - нет?
458 783308
>>783307

>Выдаёт 2 в output


>Тоже выдаёт 2


Прошу прощения, это выдавал другой debug. Т.е. во всех трёх случаях ничего не работает никак.
459 783334
>>783307
Bulb[1][0];. Такая конструкция выдает содержимое. Просто две квадратные скобки без запятых между ними, не вложенные никуда.
460 783356
>>783334
Только не у меня.
lightBulb3 = [[3,2,1,0,1,2,3],
[3,2,1,0,1,2,3],
[3,3,2,1,2,3,3],
[3,3,3,2,3,3,3]];
content = lightBulb3[1][0];

Object: main_level Event: Create at line 38 : Assignment operator expected
Object: main_level Event: Create at line 38 : malformed assignment statement
461 783357
>>783356
а что у тебя на 38 лайне?
462 783361
>>783356
просто скопировал твой код в криейт ивент рандомного объекта. все работает. поселдняя версия стоит гмс2. в предыдущей тоже работало.
463 783470
>>783357

>content = lightBulb3[1][0];


Т.е. что-то он создаёт, а как это прочитать - хз.
к слову, если написать
content = lightBulb3[1];
show_debug_message(content);
То он выдаёт в Output
{ { 3,2,1,0,1,2,3 }, }
>>783361
Для верности, скопировал этот код в новый объект - монопенисуально.
У меня 2.2.5. Чтобы не тратить время добрых людей предлагаю считать, что в мою версию такого хайтека как двумерные массивы тогда ещё не завезли.
464 783474
>>783470

>{ { 3,2,1,0,1,2,3 }, }



[ 3,2,1,0,1,2,3 ] должен быть такой аутпут с content = lightBulb3[1];

>У меня 2.2.5. Чтобы не тратить время добрых людей предлагаю считать, что в мою версию такого хайтека как двумерные массивы тогда ещё не завезли.



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

и мне ошибка в 38лайне не нравится. он не ругается, что ты индексы ячеек кривые задаешь на оутпут, он ругается на оператор присваивания почему-то.
465 783515
>>783474
Спасибо, друг, забей. Слишком много времени отняло уже, проблему обошёл, буду пилить дальше.

>он ругается на оператор присваивания почему-то.


Я думал, что на то что просто "=" а не ":=", но оба варианта, похоже, одинаковы. Ошибка, во всяком случае, остаётся.
Всё. Хуйсним.
466 783679
Есть какое-либо целостное хранилище инструкций как правильно реализовать те или иные функции для игр, которые обычно реализуют неправильно? Как через тот же place_meeting.
Или же какое-то хранилище скриптов, которые можно использовать у себя?
467 783686
>>783679
Не совсем понятно, что именно ты хочешь. Типа как не допускать спагетти говнокода или что?
468 783825
хочу сделать противника который будет идти ко мне сам и не проходить сквозь меня и стены, написал в обьекте монстра скрипт
phy_position_x += sign (obj_player.x - x) speed_enemy;
phy_position_y += sign (obj_player.y - y)
speed_enemy;
То есть, он должен идти ко мне сам, но почему-то мне выдаёт ошибку. Не могу понять почему, обрыл интернет что-бы найти ответ на вопрос.
После запуска игры выдаёт ошибку в консоли

___________________________________________
############################################################################################
ERROR in
action number 1
of Step Event0
for object obj_monster:

DoAdd :2: undefined value
at gml_Object_obj_monster_Step_0 (line 5) - phy_position_x += sign (obj_player.x - x) * speed_enemy;
############################################################################################
gml_Object_obj_monster_Step_0 (line 5)

в чём проблема и как её решить ?
469 783836
>>783825
Real (single precision floating point value, or undefined if the instance is not physics enabled)

DoAdd :2: undefined value
470 783837
>>783825
А у меня такой вопрос еще. А ты уверен, что obj_player.x - что-то тебе передает вообще? Ну типо я конечно подозреваю, что в данном случае он дает х от рандомного обж.плеер и так как он один, то получаем как надо, но все же? У тебя же тут не конкретизируется экземпляр объекта.
471 784742
Ребята, вот у меня есть несколько объектов, например:
enemy1
enemy2
enemy3
Есть несколько инстансов каждого в руме. Мне нужно к ним ко всем применить некое действие (например - убить).
Для одного я пишу цикл:
for (var i = 0; i < instance_number(enemy1); ++i;) {убить};
А можно как-нибудь изящно в одном цикле всех обойти?
Т.е., по сути - получить ссылки на все объекты с маской "enemy*".

Пока писал придумал, что можно каждому в криейт сказать, чтобы записывал свой айдишник в массив all_enemies[], лежащий в том объекте, где осуществляется обработка.

Может есть лучше способ? Потому что в таком случае непонятно, что делать, когда один из объектов убирается.
472 784860
>>784742
Можно создать родительский объект obj_enemy и сделать всех врагов детьми этого объекта.

После чего применять
with obj_enemy
{
hp = 0
painfull_death_flag = true
}
473 784876
>>784860
Оооо!
Спасибо!
Так вот для чего все эти дети-родители нужны.
474 784877
>>784860

>with obj_enemy


А это в цикле юзать или как? Типа цикл, как у меня выше, только вместо enemy1 - тот родительский объект?
475 784878
>>784877
он тебе код уже полностью написал, не надо никаких циклов, если ты даешь команду родительскому объекту, то ее получают все дети.
476 784908
>>784878
Спасибо, хлопцы, всё работает!
477 784909
Что за чертовщина: когд добавляю в сцену больше трёх объектов - перестаёт работать код?! Пофигу, что это за объекты - даже свежесозданные пустышки.
Если их три - всё зашибись, добавляю четвёртый - не работает.
Ошибки нет, просто не делает то, что должен. У меня код ставит и убирает тайлы на разных тайловых слоях - ничего сложного не делает. Освещение тайловое. Т.е. с объектами вообще никак не взаимодействует!
478 784910
>>784909
Не бывает такого.

Включи режим дебага и пройдись строчка за строчкой.
479 784917
>>784910
В общем, проблема в определении размера тайловой карты. Вот этот код работает при 4 объектах, но не работает при 5:
В сцене 4 слоя:
Instances (тут 4 объекта - main, в котором весь код и 3 пустышки.)
Dynamic_light (на момент запуска пустой)
Static_light (содержит тайловую карту статичного освещения)
Room_base (содержит тайловую карту уровня)

Этот код лежит в Create. Больше никакого работающего кода в проекте нет (Step закомменчен).
layBase = layer_get_id("Room_base");
layStaticLight = layer_get_id("Static_light");
mapStaticLightId = layer_tilemap_get_id(layStaticLight);
layDynamicLight = layer_get_id("Dynamic_light");
global.mapDynamicLightId = layer_tilemap_get_id(layDynamicLight);
mapSizeX = tilemap_get_width(layBase);
mapSizeY = tilemap_get_height(layBase);

for (var v=0; v< mapSizeY; v++)
{
for (var h=0; h< mapSizeX; h++)
{
//get
var dataLight = tilemap_get(mapStaticLightId, v, h);
tilemap_set(global.mapDynamicLightId, dataLight, v, h);
}
}
Если в проекте всего 4 объекта, то размер карты mapSizeY и mapSizeX определяется нормально, и всё работает.
Если в проект добавить ещё один объект, то mapSizeY и mapSizeX становятся равны -1, и цикл for игнорируется.
Если вручную задать вместо mapSizeY и mapSizeX какие-нибудь цифры - то снова работает.
Такие дела.
Какой-то пиздец.
479 784917
>>784910
В общем, проблема в определении размера тайловой карты. Вот этот код работает при 4 объектах, но не работает при 5:
В сцене 4 слоя:
Instances (тут 4 объекта - main, в котором весь код и 3 пустышки.)
Dynamic_light (на момент запуска пустой)
Static_light (содержит тайловую карту статичного освещения)
Room_base (содержит тайловую карту уровня)

Этот код лежит в Create. Больше никакого работающего кода в проекте нет (Step закомменчен).
layBase = layer_get_id("Room_base");
layStaticLight = layer_get_id("Static_light");
mapStaticLightId = layer_tilemap_get_id(layStaticLight);
layDynamicLight = layer_get_id("Dynamic_light");
global.mapDynamicLightId = layer_tilemap_get_id(layDynamicLight);
mapSizeX = tilemap_get_width(layBase);
mapSizeY = tilemap_get_height(layBase);

for (var v=0; v< mapSizeY; v++)
{
for (var h=0; h< mapSizeX; h++)
{
//get
var dataLight = tilemap_get(mapStaticLightId, v, h);
tilemap_set(global.mapDynamicLightId, dataLight, v, h);
}
}
Если в проекте всего 4 объекта, то размер карты mapSizeY и mapSizeX определяется нормально, и всё работает.
Если в проект добавить ещё один объект, то mapSizeY и mapSizeX становятся равны -1, и цикл for игнорируется.
Если вручную задать вместо mapSizeY и mapSizeX какие-нибудь цифры - то снова работает.
Такие дела.
Какой-то пиздец.
480 784918
>>784917
Пилять, поставь брекпоинт в том месте, где код не исполняется и скинь проджект на гугл драйв.
481 784919
>>784917

>Если в проекте всего 4 объекта, то размер карты mapSizeY и mapSizeX определяется нормально, и всё работает.


Если в проект добавить ещё один объект, то mapSizeY и mapSizeX становятся равны -1, и цикл for игнорируется.

Значит ты не можешь получить значения ширины и высоты слоя layBase.

Скорее всего ты даже не можешь получить его правильный id выполняя layBase = layer_get_id("Room_base");

Ты всю эту малафью делаешь в create event объектов. Скорее всего у тебя косяк с порядком исполнения кода. Проверь Instance creation order в комнате.
482 784922
>>784918
Всё, я разобрался.
У меня в
tilemap_get_width(layBase);
layBase = layer_get_id("Room_base");
Т.е. ссылка не на карту, а на слой.
Если добавить
mapBaseId = layer_tilemap_get_id(layBase);
И брать размеры с правильной ссылки - всё работает:
tilemap_get_width(mapBaseId );

Странно, почему при количестве объектов <5 работает и layBase... но я рад, что удалось всё починить. Я уже практически настоящий программист, гы.
483 784924
>>784922

>Странно, почему при количестве объектов <5 работает и layBase.


Потому что тебе просто повезло угадать со значением. id слоя это просто число. Оно может меняться.
image.png36 Кб, 1032x633
484 789778
Слева - тайл в самой игре (кривой), справа - тайл на превью в конструкторе комнаты (нормальный). В игре почему-то он с меньшим разрешением. Проблема только на двух слоях с одинаковым тайлсетом. Кто-нибудь знает как фиксить?
И вообще постоянно баги случаются когда меняю что-то в тайлсете и обновляю его.
485 789779
>>789778
Уменьшил размер тайлсета - стало норм. Но в чем суть так и не понял.
image.png80 Кб, 225x225
486 791488
мужчины подскажите. уже 3 месяц ковыряю почти с нуля гамак. с переменным успехом прошел курс на юдеми и френдлиастронавт но сам почти ничего не могу сделать. у всех так или я прост одаренный и стоит бросить это все?
487 791492
>>791488
У всех, ковыряй дальше, и работай над своим ментальным восприятием. Подходи к любому вопросу не с мыслью "А что если не получится?", а с мыслью "А что если получится?", каждая неудача это +100XP, любое действие, даже самое маленькое, например тупо поковыряться в гамаке 5 минут, пытаясь сделать что ты хочешь - это шажочек в сторону твоей цели.
488 791506
>>791488
Как ты объясняешь это для себя? Ведь на курсах чему-то же учили. Есть какие претензии к курсам?
489 791517
>>791506
К курсам никаких претензий, особенно если второй раз смотреть уже с какой то базой. не получается что то сделать нестандартное, что не разбирали в курсе. Условно сделать файтинг, как планировал, даже не могу начать не знаю с какой стороны подступиться, даже Стейт машину не могу составить уже неделю.
Я конечно же не целый день работаю, только вечерами 1-3 часа в день.
490 791564
>>791517
начни хоть с чего-то лол. сделай всратую стейт машину и неправильную. когда упрешься в ее всратость, поймешь что тебе в ней мешает, переделаешь код и т.д. А так скорее всего ты не концентрируешься на задаче и нехуя не делаешь на самом деле. Типа сядешь на свои 1-3 часа из который 2.99 выбираешь музыку для кодинга и кипятишь чай.
image.png604 Кб, 802x554
491 791578
>>791564

>Типа сядешь на свои 1-3 часа из который 2.99 выбираешь музыку для кодинга и кипятишь чай.


Ну ты и мразь. Я как раз сидел пил кофе, курил и слушал музон скролля двачи уже почти три часа когда вдруг напоролся на твой пост.
492 791592
>>791578
fпхапхахпх
493 791593
>>791488
Так а что не получается? Опиши, что ты хочешь сделать, и что именно не выходит.

>курс на юдеми


Ну ты и кек.
494 791598
>>791593
А чо? Я хз где брать описание задач, на Ютубе или слишком одинаковые или какие то всратые. Официальный форум не сильно помогает там каждый второй вопрос "как сделать передвижение, как сделать анимацию"
495 791600
>>791598
А что конкретно ты хочешь сделать? Аркаду, платформер, внку?
496 791602
>>791600
хотел платформер солузлайк, потом понял что как то не вывожу, решил попроще платформер тип контры, но пока осилил только передвижение и то большую часть взял из курсов что уже прошел.
вообще я рисовал раньше, делал демку и один чел с меня взял 15к сделав вообще столько сколько я сделал, после 3 месяцев обучения, за час.
497 791604
>>791602
Ну для начала тебе нужно общее понимание того, как в гамаке работают переменные и скрипты, для этого я бы посоветовал сделать что-то совсем примитивное, типа кликера, или вон посмотреть туториалы по созданию инвентарей (у Сполдинга вон недавно было). У меня примерно так же было, я не мог понять, как и что работает, потом приучился, глядя на чужой код.
498 792590
Сто лет гамаком не пользовался. Когда-то покупал лицуху в стиме, а сейчас гамак перешел на подписку и были некоторые непонятки с тем, как они поступят со старыми покупателями. Сами гамаковцы клялись, что у них все будет вечно работать.
Сейчас зашел в дашборд на сайт, там хер пойми что, Free Permanent, подписка на Creator (12 months free), хуе-мое. Объясните, я уже наебан гамаком?
499 792599
>>792590
Если покупал в стиме, то проблем не должно быть. Что у тебя не так выходит?
500 795254
Йоу!
Кто-нибудь тут пользуется GMEdit? Интересно, есть ли возможность экспорта проекта в .exe, имея компилятор на случай оффлайн разработки :-(
Нашёл плагин buildier и его форк, однако оба ВРОДЕ только позволяют запускать проект, но не экспортировать собранное.
Может надо какие-то аргументы где-то написать, чтобы экзешник создавался?
Авторы пишут, что этот плагин работает с настройками компилятора. Может в GMS2 надо что-то настроить, чтобы всегда создавались экзешники?

Или может есть ещё какие варики? О крякнутой студии думать пока не очень хочется.
501 796085
Тред обмяк? Аноны перекатились куда-то? Где все?

Вопрос актуален: >>795254
Могу только добавить, что купил на торрентах нужные крякнутые версии, но антивирус ругается на приложенные файлы, что неудивительно, но немного пока раздражает и антивирус отрубать пока желания нет.
!! 503 890336
проверка старого трипкода в мертвом треде
Обновить тред
Двач.hk не отвечает.
Вы видите копию треда, сохраненную 2 августа 2023 года.

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
« /gd/В начало тредаВеб-версияНастройки
/a//b//mu//s//vg/Все доски