Двач.hk не отвечает.
Вы видите копию треда, сохраненную 11 ноября 2020 года.

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Newspost.png.png258 Кб, 1120x640
Gamemaker Thread 439561 В конец треда | Веб
Почему бы не создать ламповый гм-тредик?
Обсуждаем, обмениваемся опытом, задаем вопросы.

Относительно недавно вышла вторая версия: GameMaker Studio 2, пиратки которой еще нет.
Стало НАМНОГО удобнее работать с тайлами, слои тоже помогают.

Так-то 1.4 может все то же, что и двойка, поэтому если жалко бабла, можно писать на старой версии. Но двойку будут развивать и она будет становиться только лучше.
2 439595
>>439561 (OP)
Двойка - недоделанная параша. Лагающая, забагованная и неудобная.
А 1.4 я купил с кучей индюшатины на хамбл бандле за 15 бачей и не жалею.
3 439598
>>439595

> Лагающая


Обнови пеку для учебы

>забагованная


Список багов в студию

>неудобная


Хз. я после 1.4 просто кайфую от скорости своей работы.
4 439620

>Обнови пеку для учебы


У меня на десятилетнем ПК летает.

>Список багов в студию


А вот один баг я лично отрепортил. Функция keyboard_key_press в step event при 60 fps вызывала утечку памяти, крашила игру через некоторое время и не позволяла запуститься дебагеру - крашила его сходу. Понять в чём причина было очень тяжело.

>Хз. я после 1.4 просто кайфую от скорости своей работы.


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

Так что шлём этого >>439595 нахуй уже вдвоём.
5 439624
>>439620
Чем тебе конкретно воркспейсы не угодили? Мне больше нравится, нежели каша из окон в 1.4
6 439634
>>439624
В основном тем, что из-за боковых окон на воркспейсе места мало. Соответственно и окошки очень маленькие. Постоянно возникает горизонтальная полоса прокрутки. Чтобы нажать на неё нужно либо вырубать нижнюю панель (которая всё равно влезает назад после каждого запуска игры) либо таскать окно. И боковая панель всё время вылезает, если у тебя где-то в таба комната открыта.
Ну и без правой панели всё равно не обойтись, ибо навигироваться по воркспейсу невозможно. С выкрученным зумом невозможно разобрать, что там в окошках. При основном масштабе нужно тянуть несколько экранов, чтобы найти нужный обхект с открытыми ивентами.
Даже на домашнем 40ка дюймовом монике постоянно такая проблема. На мелком рабочем мониторе - просто невозможно пользоваться.
Такие дела.
7 439637
>>439634
Странно, у меня 24 дюйма моник и мне нормально. Причем кода у меня достаточно и прыгаю по объектам бывает часто. Короче, мне зашло больше, чем в 1.4
8 439715
>>439561 (OP)
Зачем обсуждать гамак здесь? Если есть какие-то вопросы - на них ответят на форуме yoyo.
Если просто потрындеть - нас здесь полтора игродела.

Разве что перекличку провести.
9 439722
>>439715
Да пусть будет, жалко что ли.
10 439740
Обновились тут малость
http://gms.yoyogames.com/ReleaseNotes.html
11 439745
>>439740
О, круто! Новый дебагер - это то, что мне нужно, т.к. я сегодня взялся ещё раз переделать систему пасфадинга и перемещения своих квадратов.
12 439843
>>439745
Ага, круто. Ну и где блеать теперь узнать значения переменных?
13 440002
Процесс компиляции во второй отличается от первой? Пока сам работаю на первой, есть ли смысл финальную сборку проводить во второй? Добавили ли туда какие-нибудь магические оптимизации и прочее или в конечном итоге не будет разницы независимо от версии на которой игра компилировалась?
14 440003
>>440002
Пока не так много отличий на самом деле кроме удобства. А так я бы не стал переносить старый большой проект в двойку потому что импорт насоздает кучу скриптов совместимости. Нахуй надо.
15 440866
Как вытащить переменную из комнаты, в которой ты находишься в данный момент?

Допустим у меня есть две комнаты room_01 и room_02

В create event первой комнаты записано: shadow_level = 0
В create event второй: shadow_level = 1

Как объекту фонарик, находящемуся внутри комнаты добраться до этих значений?

Если я пишу фонарику в create event:
shadow_level = room.shadow_level - нихера не работает

если я пишу
shadow_level = room_01.shadow_level - получаю 1, как и положено. Но мне нужен shadow_level не строго заданной комнаты, а текущей!
16 441000
>>440866
Используй глобальную переменную global.shadow_level
17 441078
>>441000
Я спрашиваю не про пути обхода, а про способ получения доступа к переменным текущей комнаты.
18 441079
>>441078
их нет
19 441224
Дебагер после апдейта стал просто шикарным.
Теперь можно посмотреть значения переменных прямо в окне с кодом, можно залезть внутрь ds структуры. Можно менять значения переменных во время дебаганья.

Круто.
20 441336
>>440866
Не пиши ничего в коде инициализации комнаты, исполтщуй для этого объекты.
21 441338
>>441336
Почему не использовать код инициализации комнаты для инициализиции комнаты при переходе из комнаты в комнату?

Пока что я остановился на том, что пишу там
with obj_game {}
и задаю все нужные параметры.
Это лучше, что иметь в obj_game begin_step_event, следящий за сменой комнаты.
22 441339
>>441338

> следящий за сменой комнаты


Используй room_start и room_end эвенты, юный падаван.
23 441344
>>441339

>room_start и room_end эвенты



Опа нихуя. Я о них даже и не знал.

Сначала идут create ивенты объектов, потом create event комнаты, потом начинаются begin_step ивенты.

А когда выполняется ивент room_start?
24 441347
>>441344
Ладно, ты ж не гугл. Можешь не отвечать.

https://files.64digits.com/tahnok100/Order_Of_Events_In_Game_Maker_Rev.1_Tahnok100_.pdf
25 441348
>>441347
Ну это для гм6.1 актуально, в гмс:2 может быть по-другому.
27 443345
Аноны, туплю. Вообщем реализовал такую камеру. Когда нажимаю мышкой могу "тащить" вид. Т.е. тоже самое когда в стандартном windows просмотрщике фото приближаешь фото и перемещаешься по нему. Сделал все, но один нюанс работает немного криво. Ограничил вид с помощью clamp и по координатам. Но когда я упираюсь в край карты с большим ускорением происходит кратковременный лаг.
Как правильно ограничить вид чтобы он не выходит за пределы комнаты? Чтобы он как влитой останавливался у края комнаты а не резко "пружинил"
28 443346
>>443345
покажи свой код и сними на видео этот эффект
29 443347
31 443351
>>439561 (OP)
Единственное серьезное слабое место в 1.4 это редактор комнат. Ну и редактор кода можно подтянуть. Остальное можно вообще выпилить, только мешает. По мне так гамаку гуй вообще не нужен, особенно гуй объектов.
32 443424
Купил сегодня вторую версию, заодно появилась возможность поставить легальную 1.4. Вот не знаю какую юзать. Импортнул проект из 1.4, приятно удивило то, что все нормально заработало из коробки. В 1.4 не нравился редактор комнат и дебаг (а именно невозможность добавлять вотчи). В двойке не понравилось, что отошли от интерфейса, к которому я привык ещё со времен версии GM5, но думаю привыкну. Есть ещё какие подводные камни?
33 443425
>>443348
у тебя сначала идет clamp, а потом движение камеры
clamp должен быть в конце после всего кода
34 443427
>>443424
Юзай вторую. К интерфейсу привыкнешь.
35 443483
>>443425
Спасибо, помогло!
36 443531
Подскажите туториалов по камере и интерфейсам в GMS2
38 443547
>>443533
Вот ты серьёзно думаешь, что я не смог в гугле вбить gms2 camera tutorial?
39 443548
>>443547
А чем тебя эти не устроили? Сполдинг норм рассказывает же.
40 443549
>>443548
Сполдинг норм, я с него и начинал. Но все его туториалы максимум поверхностные, для самых ньюфагов. Уже давно не интересно.

Но у меня уже появились идеи, почему у меня интерфейс колбасится при движении. Буду пробовать.
41 443550
>>443548
Ну и как тебе туториал сполдинга по one way platform? Норм что ли?
42 443552
>>443550
Не смотрел, я только самые основы посмотрел, дальше сам уже.

>>443549
Дак ты б код вбросил.
43 443556
>>443548
А ещё он коллизии объектами делает.
44 443557
>>443556
А надо чем?
45 443558
>>443557
Тайлами.
46 443560
>>443558
Ну это если у тебя вся игра сделана под квадраты/прямоугольники, то мб и да.
47 443561
>>443560
Любой формы, которая описывается мат. формулой очень легко.

Ознакомься:
https://forum.yoyogames.com/index.php?threads/on-slopes-and-grids-subpixel-perfect-topdown-movement-and-collision-line-without-objects.4073/

И дальше модифицируешь под свои нужды - объекты разного размера, тайлы разной формы.
.jpg122 Кб, 900x580
48 443562
>>443561
У меня проще система. Объект коллизий, который я просто поверх тайлов стретчу.
1.jpg97 Кб, 1920x552
49 443594
Пошёл по туториалу спалдинга.

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

global.camera = camera_create();

var view_matrix = matrix_build_lookat(x,y,-10,x,y,0,0,1,0);
//var projection_matrix = matrix_build_projection_ortho(1280,768,1,10000);
var projection_matrix = matrix_build_projection_ortho(1920,1080,0,10000);

camera_set_view_mat(global.camera,view_matrix);
camera_set_proj_mat(global.camera,projection_matrix);

view_camera[0] = global.camera;

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

//Enable the use of views
view_enabled = true;
//Make view 0 visible
view_set_visible(0,true);
50 443598
>>443594
это фуллскрин?
51 443601
>>443598
Это окно.
52 443602
>>443601
а значения x и у какие?
53 443604
>>443602
Где в комнате поставил, такие и значения.

У него походу viewport через интерфейс настроен.

Добавил:

view_hport[0]= 1080;
view_wport[0] = 1920;

//Enable the use of views
view_enabled = true;
//Make view 0 visible
view_set_visible(0,true);

window_set_rectangle((display_get_width() - view_wport[0])0.5,(display_get_height() - view_hport[0])0.5,view_wport[0], view_hport[0]);
surface_resize(application_surface,view_wport[0],view_hport[0]);

заработало.
54 443750
>>443604
Хоспади, вчера за 2 часа, сидя с температурой 38 градусов, не имея никаких знаний, кроме кривого гайда, я сделал камеру лучше, чем у этих уёбков из One dog story.
Да, у меня бомбит от них.
55 443753
>>443750
Небось они по тому же гайду от Сполдинга и делали. У него так же тошнотворно кобасит камеру после остановки движения (но не так сильно, как в собаке, у них делитель скорости выше)
56 444191
Какой примерный алгоритм чтобы сделать gui. Допустим у меня есть спрайт 16x16 с рамкой окна. Но т.к. окна могут быть разного размера этот спрайт надо как-то разбивать на куски. Т.е. берем угол потом скейлим (или просто кучу 1х1 рисуем) вернюю плашку на заданный размер х. Потом опять уголок. Верхушка готова. Нашел функции draw_part, как я понимаю надо использовать ее?

На ютубе примеры что я нашел рисовали окошки с помощью draw_rectangle или вообще draw_line, что мне не очень подхожит. Нужно чтобы окно создавалось именно из кусков спрайта.
57 444197
>>444191
нихуя не понял
58 444198
Cап, мейкеры. Решил вкатиться в гейммейкер и сделать что-то для души. Решил погуглить гайдов, но они или легкие, по вещам, которые знает любой за первые курсы обучения, или по очень узко направленным вещам. С чего начать? Есть ли по gml'ю учебник? Гугл не помог, хотя и искать мог хуёво. Всякие ютуб канальчики, гайдики, которые разжуют сложное, а лёгкое опустят до гиперссылок на другие их ролики. Или тексты. С меня как обычно.
60 444200
>>444198
Если по английски понимаешь, то рекомендую оффициальный мануал читать. Он у них лучше любого учебника написан. Я такое редко встречал, обычно мануалы больше для продвинутой аудитории подходят.
61 444216
>>444197
Ну во многих играх окно ui рисуется ж собираясь по кусочкам из спрайта а не с помощью функций движка..
62 444217
>>444216
Теоретически ты можешь на GUI слой пилить свои элементы и они будут скейлиться вместе с размером GUI и не надо будет нарезать.
63 444231
>>444199
>>444200
Спасибо, анончики
64 444235
>>444198
На Hellroom есть "Школа GML Архив". Но если не абсолютный новичок, то вперед реализовывать проект параллельно читая справку. Справка у гамака как уже сказал >>444200 , хороша. Что-то более специфическое спрашивают на форуме yoyo, на русских сайтах бесполезно. Уже почти все умерли.
image.png16 Кб, 233x248
65 444242
>>444216
Бери пикчу рамки (допустим, 9696), руби на мелкие(типа 3232), делай функцию, которая будет рисовать тебе рамки любого размера по кусочкам из твоего стрипа. На пикче чёрно-жёлтое говно - твоя рамка, красные перпендикулярные и прозрачные штуки - линии разреза.
66 444267
>>444242
Так и сделал. Спасибо за совет.
67 444272
На всякий случай отпишу и в эту тему тоже.

Требуется сделать прототип игры на Game Maker Studio 2. Ничего сверхъестественного - список фич, которые требуется реализовать скину. В основном это ходьба, менюшки и т.д. Ничего сложного.

Контакты - f=H.orgmANUSlisH5GtPUNCTUMrqKxu

Работа оплачивается
Runner 2017-09-22 18-24-36-46.webm3,4 Мб, webm,
1024x768, 0:14
68 444444
69 444680
>>444444
бля, ещё 1 гет просрали
70 444717
>>444680
А по-моему это шин и суть /gd/
Runner 2017-09-22 21-21-10-72.webm6,8 Мб, webm,
1024x768, 0:22
71 444725
>>444680
Ничего себе просрали. Гет в ГД взяли игрой. Это ли не вин?
Я сделал это за один день.
72 445035
>>443427

>>443424-кун репортинг ин.
Да, GMS2 божественна. Наконец всё для людей, Yoyogames молодцы, что не побоялись всё так радикально переделать. 1.4 теперь воспринимается как идеологически устаревшее, глюченное нагромождение костылей. Ни капли не жалею потраченных 1500 рублей.
73 445039
>>445035
Рад за тебя, пили годноту.
74 445040
>>445035
Вот только на десктоп пилить никакого интереса нет.. по крайней мере у меня. А мобильные и хтмл5 модули стоят дорого.... очень дорого даже учитывая региональные цены в стиме. Учитывая что под боком юнити который во всем лучше.
75 445259
В 1.4 раздражает гуй. Сделали бы гм фрейморком и все настройки проекта в json. Удобнее было чем эти лагающие Delphi окошки с мерцающим дефолтным скином... Я с этого реально охуел еще в 2010. Мерцающие епта окошки... В дорогущем софте. Гуй не приспособлен совершенно для работы без мышки, что тоже очень неудобно.
76 445262
>>445259
Купи двойку
77 445290
Внимание! Внимание!

В гамаке недостаточно просто уничтожить data structure (например ds_grid) функцией ds_grid_destroy(name)

Необходимо также очистить указатель на неё
name = noone;

Иначе если какой-либо ещё объект создаст новую data structure, твоя переменная name может снова стать указателем на data structure, только уже другого объекта.

Этот долбаный баг преследовал меня месяц. Наконец я понял в чём дело. Может ещё кому-то пригодится.
78 445333
>>445259

>Сделали бы гм фрейморком и все настройки проекта в json.


В 1.4 так всё и есть, только проект хранится в xml.
Скачай сторонний редактор (их два, один хреновый, а второй тормозной и платный), или напиши свой.

В 2.0 вроде тоже хранится в xml, но формат другой.
79 446076
80 446082
>>446076
Нихуя не понял, как участвовать.
81 446087
>>446082
К началу приходи, там все напишут.
82 446592
Бамп треду. Аноны, кто-нибудь знает: дэсктоп-версия за 1,5 в стиме полноценная? Она чем-то отличается от версии на оф. сайте?
83 446593
>>446592
Полноценная. Ничем не отличается.
84 446597
>>446593
Стоит ли брать, если ты не умеешь кодить, но хочешь сделать игру?
85 446600
>>446597
Из всех 2д движков гамак наверн самый простой в освоении.
Главное не лениться и освоить его внутренний скриптовый язык, а не костылить конструктором.
Туториалов дохуя.
86 446601
>>446592
Ничем. Более того ты сможешь и на офф. сайте скачать не стимовскую.
87 446602
>>446600

>Туториалов дохуя.


На GMS 2 почти нихуя не нашёл. В основном кидало на туторы по первому.
89 446605
>>446604
А у них там детально расписано? Можно при помощи этого гайда узнать, как, например, создать систему инвентаря в игре?
Извиняюсь, если слишком много лишних вопросов.
91 446609
>>446607
Спасибо, посмотрю.
92 446613
>>446605
Создание инвентаря - это общий алгоритм. Зная как создавать инвентарь в целом ты сможешь это реализовать на любом движке.
93 446661
>>445040
А я пилю некоммерческий инди-аутизм
как и большинство здесь
Так что похуй.
No-Cups-in-Ovechkins-House.jpg43 Кб, 594x402
94 447408
b5522377c1158b7f8da490d09aa734c00ab333c7194e9fa4b71145b65e9[...].jpg129 Кб, 625x937
95 447409
96 454978
Дано прямоугольный треугольник

783,145/|
/ |
/ |
/ |
/ |
/ ______|783,159
769,159

Для провеки коллизии с треугольником в точках 769,159 и 783,159 используем функцию point_in_triangle
point_in_triangle(769,159,783,145,783,159,769,159) - результат true
point_in_triangle(783,159,783,145,783,159,769,159) - результат false

Охуеть не встать. Нахуя вообще такие функции нужны?
s.png2 Кб, 640x400
97 454980
>>439561 (OP)
Спрошу еще и тут, может знает кто.

Как масштабировать в гейммейкере в целое число раз в полноэкранном режиме. Если разрешение экрана не делится на цело на заданное то нужно, увеличить рабочую область максимально насколько возможно, а вокруг оставить черную рамку.
98 454984
>>454980
Сам спросил - сам ответил.

Да.
99 454990
>>454984
Я не знаю как это сделать.
100 455018
>>454990
В любой ситуации с пропорциями экрана юзай виды. В твоём случае можно просто создать и увеличивать вид в целое число раз, пока он не будет по ширине или высоте больше самого экрана.
101 455122
>>455018
Виды не помогают. Если я в оконном режиме задам view_wport и view_hport, то да, гамак установит соответствующие размеры и у окна. Но в полноэкранном режиме он растягивает все на весь экран, а я могу только выбирать, сохранять пропорции или нет.
102 455333
>>455122
В полноэкранном тебе надо менять размер application surface
103 455347
>>455333
Я ковырялся с этим, ничего не получилось, и я забил. У игры разрешение 640x360, что идеально масштабируется на популярное разрешение 1080p, а для остальных добавлю возможность поиграть в окошке.
104 455697
Код кинетического скролла нужен кому-нибудь?
105 456019
Сап, пачаны. Есть вопрос - как лучше всего сделать в гамаке настройки звука в игре? У меня есть на руках готовое решение, но у него есть свои косяки и неприятные стороны так сказать. Может, Анончик знает что получше
106 456049
>>456019
конкретнее вопрос задай
107 456125
>>456049
куда уж конкретнее. Хочу в экран настроек игры кроме локализации, которую уже запилил, ползунки громкости звука, а если быть еще конкретнее, то музыки игровой. В готовой решении могу сделать три ползунка: мастер, музыка, эффекты, и убрать два последних, но мне по сути нужен только второй, а из-за чудесного кода плугина это сделать не получится. Либо мириться и оставлять два ползунка, либо что-то еще придумать
108 456248
>>455347
https://forum.yoyogames.com/index.php?threads/how-to-properly-scale-your-game.995/

Я примерно так делаю.
Скопипастил тебе код из своего проекта.
https://pastebin.com/LfBif95f
Возможно, не оптимальный - несколько раз перекраивал, но работает и я не трогаю.

>>456125
Способ "в лоб" - юзать audio_sound_gain() для каждого звука с коэффициентом, устанавливаемым в настройках. Че-то типа:

bgm_sound_inst = audio_play_sound(bgm_level_1, 0, true)
audio_sound_gain(bgm_sound_inst, global.master_volume global.bgm_volume, 0)

sfx_jump_inst = audio_play_sound(sfx_jump, 0, false)
audio_sound_gain(sfx_jump_inst, global.master_volume
global.sfx_volume, 0)

Придется так писать после каждого вызова audio_play_sound, но другого способа я пока не вижу.
109 456249
>>456248
Полетела разметка кода про звук из-за звездочек, которые макаба воспринимает как курсив.
https://pastebin.com/8KWrigJk
110 456254
>>456248
спасибо за ответ, но да, тут все-таки нагромождение, сам понимаешь. Буду думать дальше. И так стараюсь во второй игре избежать всех ошибок первой
111 456263
>>456254
Можно эту штуку обернуть в скрипт и вызывать вместо audio_play_sound(). Будет не громоздко, как по мне.
112 456393
>>456248

>https://forum.yoyogames.com/index.php?threads/how-to-properly-scale-your-game.995/


Я эту статью читал. Но у меня не рисуется application_surface. Пишет: Trying to use non-existing surface. Не понимаю, почему так, вроде application_surface должна всегда существовать.
113 456401
>>456393
Нет, все-таки рисуется. Это я невнимательный, использовал application_surface_enable() вместо application_surface_draw_enable(). А в твоем коде мне две вещи остались не ясны.
1. Зачем ты в событии Step изменяешь размер окна при переходе в полноэкранный режим? Это же вроде ни на что не влияет уже.
2. Почему рисуешь application_surface в PreDraw? Ведь все остальное отрисовывается после, а мы увидим предыдущий кадр таким образом, правильно?
sage 114 456404
На 8.1 сижу, пофиг на эти 1.4, 2
115 456410
>>456404
Да всем похуй на тебя, дедуль.
116 456421
>>456401
1. Индусский код-анахронизм, оставшийся от предыдущих вариантов реализации. Сам убрал, когда перечитал его в очищенном от кучи закомменченного мусора виде. Уже после отправки на двач, лол.
2. Почему-то в свое время решил, что так надо. Сейчас прочитал вот этот док http://docs.yoyogames.com/source/dadiospice/002_reference/surfaces/the application surface.html и увидел, что действительно логичнее рисовать application surface в post-draw.

В общем, и для меня это дело оказалось полезным.
Пересмотрел свежим взглядом на код, который накостылил по наитию и боялся менять.

>>456404
4.3 была самая ламповая. Жаль, что игоры, сделанные в ней, нормально не идут на современные пеки.
117 456732
Анон, выручай еще раз, я с тупым вопросом. Решился чего-то вдруг запилить боссфайт в игру и все сделал, кроме одной детали - гг лупит оружием ближнего боя (копья и мечи), и получается так, что при ударе по боссу, он за секунду соприкосновения с оружием выхватывает каждый тик указанный дамаг и умирает сразу. Подскажи, как сделать после получения дамага кулдаун в пару секунд, а то голова не варит уже. Спасибо
118 456733
>>456732
таки реализовал. По своему, но работает. Все равно не откажусь почитать ваши варианты, если кто чего отпишет
119 456806
>>456732
Реально тупой вопрос. Как у тебя вообще дамагание реализовано?

У меня при мили ударе возникает объект, который существует до тех пор, пока проигрывается ударная анимация. Любой объект семейства enemy, столкнувшийся с этим объектом получает урон, но получает его только 1 раз.

Для этого в create event создаю список
targets = ds_list_create();

В евенте "столкновение с объектом enemy" пишу:

if ds_list_find_index(targets,other) = -1
{
нанести урон
}
ds_list_add(targets, other);

и не забываю уничтожить этот список в destroy event
ds_list_destroy(targets);
120 456807
>>456806
Если тебе нужен КД в пару секунд - очищай список целей каждые пару секунд.
121 456821
>>456806
Да оно у меня очень просто реализовано. Есть родительский объект врага и родительский объект оружия. Плюс есть объект, который хранит данные о здоровье босса. В итоге я просто подвязал уже имеющийся скрипт и при столкновении этих двух объектов запускается внутренний таймер с миганием спрайта того, кто словил дамаг
122 456887
>>456806
точно также делал, когда пилил игру типа нинджа гайдена
123 456888
>>456401
Таки пришлось вернуть этот код.
Почему-то если игра стартует в полноэкранном режиме, то если из него выйти, размер окна становится иногда неадекватно мелким. Почему-то этот баг не проявляет себя, если менять полноэкранный режим через Window_set_fullscreen() - только через alt+enter.

>>456421-кун
124 457018
>>456888
Хотел протестировать, но у меня на комбинацию alt+enter нет реакции.
125 457059
>>439561 (OP)
Если я хочу писать бровзерные игори, то надо платить 149 бачей?
126 457079
>>439561 (OP)
Я правильно понимаю, что gamemaker не дает сохранять файлы в папку с игрой, а только в общую папку <LOCALAPPDATA>/<GameName>? И теоретически, если на компе другая игра с тем же именем будет писать в тот же файл, то она всю сохраненку похерит. Как с этим бороться и нужно ли?
127 457162
>>457079
ты сам можешь выбрать, куда твоя игра будет сохранять данные
Аноним 128 457169
Давно искал тред по вопросам по GM. Ялично юзаю юнити (и там тоже есть 3D, но хочетчя создавать реальные 2D игоры. И так, как создать ландшафт, как создать героя, можно ли в бесплатной версии Game Maker создать норм игору без гличей и багов? Да и вообще можно ли?
Никогда не юзал ГМ
129 457189
>>457169
GDevelop попробуй.
130 457455
Я смотрю вы тут по хардкору с камерой разбираетесь.

Подскажите мне, как правильно переносить камеру из комнаты в комнату? У меня при переходе из комнаты в комнату странным образом растягивается. Пока что я решил, что буду убивать камеру в room_end event и создавать новую камеру в room_start event. Но правильное ли это решение?
image.png21 Кб, 1204x158
131 457498
что это блять за хуйня? я планировал первые игры на мобилки делать, ибо игры того типа, что я делаю, в стиме доебали вкрай. Ммало того, что на виндовс 39 бачейгодовая, сука, так сука на андроиды 400. Четыре сотни СУКА. Спасибо, продолжу сношаться с юнити, хотя гм:с первая очень нравилась
132 457507
>>457498
Monogame :3
133 457512
Ответь, анон, как Gamemaker экспортирует в html5?
Лучше, чем Unity? Как производительность относительно phaser?
134 457515
>>457507
Ты бы ещё libgdx предложил.
135 457517
>>457498
В стиме 6400 рубасов, что чуть больше 100 баксов.
136 457533
>>457517
этот чувак поди и 39 баксов жмет, какие там 6400 рубасов
137 457539
>>457533
ну это пиздец конечно. Любая хуевая игра отобьет эти шесть тысяч с головой, а тут жлобство какое-то
138 457546
>>457539
Сомнительно, конечно, что отобьет. В Play market over 9000000 проектов с 5-10 установками...
139 457550
>>457546
А, если геймаркет, то да. А ежели стим, то все ок
140 457559
>>457515

> libgdx


Параша/10. На нем нету ни одной годной игры в отличие от моногейма.
141 457951
Нуб в треде. Можно ли в гм2 один объект (например, персонажа) "собирать" из нескольких разных спрайтов (например, два спрайт рук, два спрайта ног, спрайт туловища и спрайт головы, итого 6 отдельных спрайтов)? Или для этого нужно создавать соответствующее количество объектоа (6 в случае приведенного примера), и уже к ним привязывать спрайты?
Заодно может подскажете, из вашего опыта или вычитанных где-нибудь мудростей, каким количеством объектов на комнату следует ограничиваться?
142 457953
Нуб в треде. Можно ли в гм2 один объект (например, персонажа) "собирать" из нескольких разных спрайтов (например, два спрайт рук, два спрайта ног, спрайт туловища и спрайт головы, итого 6 отдельных спрайтов)? Или для этого нужно создавать соответствующее количество объектоа (6 в случае приведенного примера), и уже к ним привязывать спрайты?
Заодно может подскажете, из вашего опыта или вычитанных где-нибудь мудростей, каким количеством объектов на комнату следует ограничиваться?
143 457954
>>457953
Можно собирать из спрайтов посредством эвента draw, но это тот еще гемор.
Лучше писать контроллер, который бы собирал персонажа из объектов, проще манажить будет.
144 458077
Аноны, там сейчас в стиме распродажа, поэтому решил купить дэсктоп версию. Что означает галочка In-App Purchases? Меня не наебут, заставив платить за что-либо ещё?
145 458106
>>458077
Не наебут
146 458111
>>439561 (OP)
покажите САМЫЕ КРАСИВЫЕ игры на геймейкере
147 458114
>>458111
hyperlight drifter норм
149 458160
>>458114
>>458159
красиво. а сколько человек сколько месяцев их делали?
150 458162
>>458160
возьми и напиши им
151 458250
>>457512
Неебу как относительно Phaser, но производительность неплохая. Правда пришлось править сгенеренный html код ручками т.к. какого-то хуя канвас сглаживался по-умолчанию что пиксельной игре не нужно.
152 458327
Пацаны, а если я буду учиться по 1.4 (мануалов больше), то потом смогу с полученными знаниями перекатиться в двойку?
153 458328
>>458327
Да, там практически идентично все в плане кода (с небольшими исключениями).
Двойка просто сильно удобнее сама по себе.
154 458343
>>458328
Спасибо, друг.
966C8HzRC8.jpg104 Кб, 1280x720
155 458517
>>439561 (OP)
Вопрос к специалистам. Как реализовать редактор уровней в gms?
156 458522
>>439561 (OP)

>2


Язык-то добавили или так на ЖМЛ и сидите?
157 458663
Жмл более чем достаточно для создания игр.
158 458708
>>458522
Так-то ГМЛ норм на самом деле, хотя и не хватает нормального ООП конечно. Частично это компенсируется системой эвентов. Но приходится писать скрипты вне объектов, чтобы имитировать методы.
Итого жить можно, но можно и лучше.
159 459023
Помогите пожалуйста с одной проблемой. Делаю простенький платформер и пытаюсь сделать выстрелы вроде все нормально, но сука я не знаю как сделать так чтобы когда персонаж смотрит влево стреляет влево когда смотрю вправо стреляет вправо.
Вот код:
x = obj_hero.x+11;
y = obj_hero.y+6;
x2=0;
if (obj_hero.sprite_index == spr_hero_idle_right or spr_hero_right)
{
x2 = x+1;
}
else if (obj_hero.sprite_index == spr_hero_idle_left or spr_hero_left)
{
x2 = x-1;
}

image_angle = point_direction(x,y,x2,y);
firingdelay = firingdelay - 1;
if (keyboard_check(vk_space)) and (firingdelay < 0)
{
firingdelay = 5;
with (instance_create_layer(x,y,"Bullets",obj_bullet))
{
speed = 10;
direction = other.image_angle;
image_angle = direction;

}
}
159 459023
Помогите пожалуйста с одной проблемой. Делаю простенький платформер и пытаюсь сделать выстрелы вроде все нормально, но сука я не знаю как сделать так чтобы когда персонаж смотрит влево стреляет влево когда смотрю вправо стреляет вправо.
Вот код:
x = obj_hero.x+11;
y = obj_hero.y+6;
x2=0;
if (obj_hero.sprite_index == spr_hero_idle_right or spr_hero_right)
{
x2 = x+1;
}
else if (obj_hero.sprite_index == spr_hero_idle_left or spr_hero_left)
{
x2 = x-1;
}

image_angle = point_direction(x,y,x2,y);
firingdelay = firingdelay - 1;
if (keyboard_check(vk_space)) and (firingdelay < 0)
{
firingdelay = 5;
with (instance_create_layer(x,y,"Bullets",obj_bullet))
{
speed = 10;
direction = other.image_angle;
image_angle = direction;

}
}
160 459070
>>459023
1) Направление взгляда вынеси в отдельную переменную +1/-1, тогда просто будешь умножать на него и не нужно будет дублировать кучу кода.

2) Вместо A == B or C должно быть (A == B) or (A == C)
161 459541
>>459070
Спасибо за ответ, но я уже разобрался. И опять застрял, но теперь нет идеи.:(
162 460214
>>457559
Первый That Level Again на libgdx сделан. Что еще расскажешь ыксперд?
>>457498
На первый такая же цена. Мне он правда по акции достался за 25$ весь комплект. Проф-версия, андроид и все-все-все, кроме iOS. Правда без интеграции со стимом, но через год дали и её. Надо просто подождать распродажи.
163 460215
>>457539

> Любая хуевая игра отобьет эти шесть тысяч с головой


BLASTER COP
164 460241
>>460215
почаще издавайтесь у дагов
165 460243
>>460241
ну нас остальные бы опустили так, что мы б в обнимочку повесились с горя
166 460250
>>460243
как же вы заебали уже. Сами бы издались и профит был в несколько раз выше гарантированно. Хотя, если ты ленивое хуйло и тебе настолько похуй,что ты слил игру дагам, то может быть и нет.
167 460251
>>460250
бля, теперь и поныть на моих двачах не дают, ну надо же! ладно, ладно, понел.
168 460252
>>460251
То-то же. По поводу заработка, если ты вдруг не веришь - загугли nikita ghost rus. Есть такой говнодел в стиме, который клепает говно со скоростью света и издается сам. Вряд ли бы он стал делать то, что не окупается рака яиц ему
169 460256
>>460252
видел этого хуесоса. но с габендиректом он скорее всего обнищает такие суммы вливать.
170 460355
>>460256
да нихуя подобного, он через директ залил все, что через грин не пролезло и не думает останавливаться судя по всему
171 460641

> That Level Again


То еще говнецо.

> Первый на libgdx сделан.


1/3. Автор понял какое это говно и съебал на другой движок
172 460642
173 460808
Анончики, нужна помощь. Когда-то давно установил GM 1.4, забросил. Позже пытался работать на Construct, но ограничения разочаровали. Короче, снова взялся за GM, даже успел запилить игрульку. И тут встал вопрос, а откуда я её качал? Может ли быть 1.4 у меня бесплатным и лицензионным? И смогу ли я выложить в плэй маркет эту игру?
174 460971
Создаю игру в которой главный герой бегает за мышкой. Делаю через ДнД и указываю направление движения и скорость, но когда гг доходит до мышки дико дергается. Как сделать чтобы он под мышкой останавливался или есть команда которая указывает путь а не направление?
175 460974
>>460641
Говнецо не говнецо, а слушать будешь стоя а ЕМНИП больше 5кк скачиваний. Так что рассуждения о качестве продукта, имеющего такую оценку аудитории бессмысленно.
К тому же да, 2 и 3 были сделаны на Unity и, как следствие, оптимизированы гораздо хуже. Багов в них полно, в то время как в 1 части их не было вообще. Тут он скорее перескочил из-за удобства и скорости разработки, чем из-за чего-то еще.
176 460975
>>460971
Дык выставь условие, чтоб он за 2-3 пикселя до мыши останавливался. Координаты того и того у тебя есть, если векторную математику не прогуливал на первом курсе, то проблем не будет, а если прогуливал, то загугли.
Просто весь скрипт движения подпихни под условие.
177 460976
>>460808
Если сможешь сделать билд под андроид, то да. Но вряд ли ты сможешь, если он не лицензионный.
178 460977
>>460975
А как взять Икс Игрик центра объекта?
179 460980
>>460977
Во-первых забудь про DnD. Сделать что-то на этом говне на порядок сложнее, чем через нормальный код.

Во-вторых координата объекта выставляется в спрайте этого объекта. По умолчанию x,y объекта это x,y верхнего левого угла спрайта. Если ты хочешь координаты центра этого спрайта, тогда пиши:
x_center = object.x + object.sprite_width/2;
y_center = object.y + object.sprite_height/2;

Или, если у тебя пиксель-пёрфект движение (что разумней):
x_center = object.x + ceil(object.sprite_width/2);
y_center = object.y + ceil(object.sprite_height/2);
180 460982
>>460980
Ну или можешь в спрайте выставить центр на центр спрайта и тогда x,y объекта у тебя будет его центром.
181 460987
>>460980
>>460982
Рили не понял нах эта лишняя дрочь, когда в настройках спрайта есть центрирование.
>>460977
Центрируешь спрайт. Центром будет object_name.x и object_name.y
182 460989
>>460987
Поймёшь, когда тебе понадобится что-то кроме центра спрайта.
183 461344
Как в ГМС2 сделать так, чтобы при переключении в полноэкранный не картинка растягивалась, а поле зрения камеры увеличивалось.

Ну и соответственно при ресайзе окна было то же самое - растягиваешь окно, а у тебя не изображение растягивалось, а просто больший кусок игрового поля показывался.
184 461373
>>461344
Играйся к с камерой и application surface
185 461375
>>461373
Точно с камерой? Может надо как-то алгоритм стрельбы персонажа поменять?
186 461439
Аноны, помогите со стрельбой в гмс2. Я столкнулся с проблемой, что пули не летят, когда в комнате включена физика, но без нее ничего не двигается. Как быть?
187 461440
>>461439
так это самое. Если мне не изменяет память, в первом гамаке точно так же. Либо ты делаешь все на встроенной физике и пилишь все под нее, либо пишешь свою физику, либо пользуешься чужой
188 461441
>>461440
2й день юзаю гейм мейкер. Как так изъебнуться, чтобы объект летел в заданном направлении на встроенной физике?
189 461442
>>461441
хуй знает, этим говном не пользовался никогда, всегда либо сам, либо подсматривал у кого. Почитай документацию, мб там поймешь чего
190 461443
>>461442
Из документации я понял чуть больше чем нихуя... Где можно найти чью-ту физику? Форумы там какие
192 461449
>>461448
Там еще хуже чем на дваче. Мне предъявили, что я хуйню пощу и вежливо нахуй послали
193 461450
>>461449
так ты не пости, а просто поиском пользуйся, там да, как на дваче. В идеале как можешь делать - гугли на маркете гамака ассет под нужный тебе жанр игры (платформер, шмап и тд) , качаешь и разбираешь его по косточкам, там и найдешь самописные решения. Либо смотри туториалы пиксельпопа, heartbeast'a и шона сполдинга
194 461485
>>461449
Тебе там ясно сказали: либо используешь встроенный физический движок, либо передвигаешь объекты вручную - и даже дали ссылку.
195 461487
>>461485
Тщ майор, можете залогиниться
196 461491
>>461441
ты юзаешь movedir_x и movedir_y?
если да, то изменению параметров x и y на физоне делается не через x += и y+=, а через phy_position_x += и phy_position_y +=, параметры в твоем случае равнозначные
197 461494
>>461491
Ну я phy_poisition и юзаю всегда...
image.png386 Кб, 699x629
198 461496
>>461491
Ну только пули работают в моем понимании при отключенной физики в комнате, а phy_position не работает без физики
199 461498
>>461496
если пули физический объект, то без включенной физики в комнате они работать как надо НЕ будут
если не физический, то ты прописываешь координаты x += и y+=
200 461500
>>461498
я юзал move_towards_point, оно двигает в сторону курсора, но при x += не будет же лететь в указанном направлении
201 461501
>>461496
Для платформера вообще не нужна физика, начнём с этого. Если что-то перемещается, это не значит, что надо использовать физ. движок.

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

Правильное решение: убери физику с персонажа и двигай его так же, как и пулю - изменением координат.
202 461502
>>461501

>Правильное решение: убери физику с персонажа и двигай его так же, как и пулю - изменением координат


А оно разве не будет как слайд шоу?
203 461506
>>461500
хуевый выбор, чую, если сдвинешь курсор, то пули тоже изменят направление
лучше высчитывай направление один раз исходя, например, из угла отрисовку спрайта оружия, если оно поворачивается, и используй lengthdir
>>461502
не будет, движение просчитывается каждый кадр, никакой разницы между физикой и её отсутствием тут нет
204 461511
>>461506
С пулями все норм, они меняют направление, если прописать mp_potential_step
205 461512
>>461511
в любом случае физон тут лишний, если вызывает такие проблемы
206 461513
>>461501
А как тогда возвращать гг на землю при прыжке без физики?
207 461515
>>461513
умножаешь вертикальную скорость на число меньше 1, где-то 0.3 или 0.25
только gravity его не называй, это уже вшитое
208 461516
>>461515
ой, бля, зачеркните
прибавляешь, не умножаешь
209 461517
>>461516
тогда каждый фрейм скорость будет уменьшаться на 0.3, типа, стартовая -8, следующий кадр -7.7, -7.4 и так далее
210 461541
Аноны, кто сейчас делает игры могу предложить свою помощь. Сам овощ нихуя рифма, ничего не могу сам сделать за не имением идей. Если у вас есть идея готов помочь реализовать. Связаться можно по почте lolqwerw.Qt569ANUSgmaiKZClPUNCTUMcoqtRm
211 461544
>>461541
Если согласен помогать 3м школьникам с охуительными амбициями и хуевыми знания гейм мейкера, за нихуя, ради призрачного профита ввиде стартапа на патреоне и последующей выгрузки игры в стим, то велком
/Чел, разосравшийся в этом треде с физикой
212 461546
>>461544
Как связаться? Есть тим спик дискорд
213 461547
>>461546
Кстати живу на Камчатке и имею часовой пояс + 12 У ДС + 3 если что
214 461549
>>461547
Ля, ну если +12, то дискорд нн прокатит, давай я тебе на почту напишу лучше
215 461550
>>461549
А что не так? Сейчас зайти могу
216 461611
>>461501
Блять у меня теперь вообще гг распидарасило. Он ебашит без остановки во все стороны и ему абсолютно поебать на все преграды и он пролетает сквозь все объекты
217 461614
В написании своей физики, кстати, нет ничего сложного. Там буквально десяток строчек и все будет работать заебись. Главное пару принципов использовать и будет красота.
sage 218 461624
>>461611
Почитай мануал, пройди несколько туториалов, скачай пример платформера и разбери - потом начинай делать своё.
219 461873
Всё не даёт покоя этот калечный редактор изображений. Как работать с ним? У него же ограниченное число пикселей на изображение, как я понял. Есть способ работать через другую программу, чтобы делать анимацию по кадрам? Интересует именно функция onion layers.
sage 220 461875
>>461873
Не используй совсем. Или жди, пока допилят.
221 461901
>>461875
Ну бля, работают же как-то люди. Вопрос в том, как.
222 462083
Есть где скачать для пиратобояр вторую версию? А то когда последний раз смотрел (давно) не было ещё.
223 462117
>>462083
Там анальный дрм
224 462125
>>462117
Мб есть добрые люди на каких-нибудь сайтах, кто общедоступную версию выложил?
225 462157
Собирал кто пустой проект в apk на андроид? Какой размер пустого выходит?
226 462193
>>462157
Во второй хз, в первой если онли ARMV7 + x86 то 2мб
227 462232
>>462125
Ты блять тупой? Дрм там не просто так для галочки
228 462262
>>462232
Хуя ты восторженный даун. В этом мире существуют тысячи игр и прочего контента с дрм, но это не мешает пиратам такую защиту снимать.
мимо
229 462368
>>462232
Ты блять в послание вникни, я блять написал про общедоступный аккаунт. Такая хуйня есть с играми на яблоки
230 462547
>>462262
в первом тоже была защита. просто второй никому не нужен, первого и так хватает
231 462874
Бамп-антивайп.
232 463156
Ньюфаг в треде. Раскидал по комнате тайлы, поместил туда же обЪект с игроком и запустил для проверки. Игрока почему-то не видно. Что не так?
233 463424
>>463156
Мы экстрасенсы?
234 463469
>>463424
Да я уже и сам разобрался.
Ещё такой момент: с чем может быть связанно отталкивание игрока от стенки, если напирать на неё? Если медленно пододвинуть объект к стене и затем двинуть его, игрока вообще вытолкнет за стену.
235 463602
Делаю платформер, на данный момент коллизии сделаны с помощью объекта стены. Хочу переделать коллизию на тайлы.
У меня есть движущиеся платформы, которые не представляю, как сделать тайлами.
В связи с этим два вопроса.
1) Будет ли прирост производительности, если статические стены (коих 90%) заменить тайлами, а движущиеся оставить объектами?
Тогда, получается, мне нужно будет в коде проверять коллизию дважды - на тайлах и на объектах. Но ведь объектов-стен теперь будет на порядок меньше. Стоит ли пытаться?
2) Можно ли сделать движущиеся платформы тайлами?
236 463603
>>463602
1) будет
2) нельзя. Оставь движущуюся платформу объектом - остальное тайлами.
Бамп треду. 237 472064
Как я свет в гамаке анимировал.
238 472088
>>472064
заебись
239 472109
>>472080
Как я вилкой чистить буду?
Расскажи, что имеешь ввиду, а ещё лучше дай туториал на то, как это сделать в.
240 472709
Как сделать чтобы герой был поверх верхних стен, но под нижними стенами, как на пикриле?
241 472713
>>472709
Простейший шейдер. Можешь навелосипедить с draw_sprite_part(), но будет совсем не гибко.
242 472725
>>472709
Блин, у тебя же туториал открыт. Смотри как сделано.

>>472713
draw_sprite_part() и шейдер. Всё так.
243 472726
>>472725
Вон в том же туториале, который ты смотришь, написано, что лучше шейдер использовать.
// a simple shader would be better/faster than setting the fog for each sprite drawn.
gpu_set_fog(true,i.silhouette_colour,1.0,1.0);
draw_sprite_ext( i.sprite_index, i.image_index, i.x,i.y, 1,1,0,i.silhouette_colour,1);

Но они там делают какое-то извращение, имхо.
244 472727
>>472725
Я шото прихуел с того, что там есть, поэтому тут и спросил
245 472744
>>472727
Знаешь, я сейчас открыл их туториал и тоже прихуел. Но это не значит, что не надо изучать как там что сделано - у них есть решения, охуенно экономящие фпс. Я этот гайд ковырял когда освещением занимался. В конце концов сделал всё на порядок проще, но их приёмы с растягиваием и блуром сурфейса я запомнил.

Можно гораздо проще всё сделать.
Держи охуенный гайд по шейдерам ля начинающих гамакеров:
http://xorshaders.weebly.com/

Ну и как спрайт кусками рисовать - сам разберёшься.
246 472790
Как работает ds_list_create? У меня он строку как то неправильно распознает, если количество значений поменялось.
247 472795
>>472790
Ты нормально вопрос задай.
248 472797
>>472795
Я решил сделать импорт старых сохранений, все по порядку разобрал, но в некоторых случаях ds_list_find_value получает не те значени, какие надо
249 472843
>>472797
Так, уже речь не про ds_list_create, значит?

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

Смотрю урок Make an RPG, там проблему бесконечного проигрывания анимации после начала движения решают через

if (!key_right and !key_left) {
image speed = 0
}

Я же хочу включать idle анимацию. Понятно, что надо просто прописать sprite_index = spr_player_idle; но у мня их две штуки, чтобы игрок оставался в левой idle анимации после того, как шел влево и в провой idle анимации после того, как шел вправо. Как это сделать?
251 473091
>>473062
if image_xscale > 0 {
sprite_index = idle_right
} else {
sprite_index = idle_left

Это если ты его разворачиваешь через скейл
252 473099
>>473062

Не бойся изобретать. Не бойся вводить новые переменные.

Зафигачь себе

if (!key_right and !key_left) {
sprite_index = spr_idle; //меняй спрайт с анимацией idle
image_speed = 0;
}
else{
sprite_index = spr_run; //меняй спрайт на спрайт бега
image_speed = 1;
}
253 473100
>>473099
тьфу ты.

if (!key_right and !key_left) {
sprite_index = spr_idle; //меняй спрайт на анимацией idle
image_speed = 1;
}
else{
sprite_index = spr_run; //меняй спрайт на спрайт бега
image_speed = 1;
}
254 473104
>>473091
Нет, не через скеил. У меня просто прописано

if (key_right) {
sprite_index = spr_player_run_right;
}

if (key_left) {
sprite_index = spr_player_run_left;
}

и соответственно загружено две разные анимации.

>>473099
>>473100
Я Game Maker Studio только этим утром установил. И не совсем понимаю твой код.

Алсо сейчас досмотрел этот урок https://youtu.be/72SWn4xr-0Q и вопрос по анимациям остался, т.к. он там удары не стал анимировать. С анимацией ходьбы/бега все понятно: нажимаешь вправо - проигрывается анимация вправо, нажимаешь влево - проигрывается анимация влево, а вот с ударами как? Как сделать, чтобы при нажатии одной и той же кнопки удара игра понимала, какую именно из анимаций проигрывать? Короче мне надо еще уроков по гейм мейкеру, в этой серии он многих вещей не касается.
255 473154
Подскажите пожалуйста. Вот я покупаю гейммейкер 2 за 1500 рубасов в стиме и могу проддавать эти игры? Меня не нагнут за это?
256 473198
>>473154
за что тебя нагибать?
257 473200
>>473198
Всякая фигня с лицензиями
258 473208
>>473154
да. Проблем нет, брат жив
259 473291
>>473104

>не совсем понимаю твой код.



В гамаке есть keyword- sprite_index - указывает на спрайт объекта. При помощи него ты можешь менять спрайт объекта когда захочешь, а не только при создании объекта.
260 473348
Посоветуйте туториалы по созданию игры типа Lone Survivor, т.е. перемещение по одной оси, стрельба, взаимодействие с объектами, инвентарь, диалоги и т.д.
В сети достаточно подробных туториалов для нубов, по которым даже человек абсолютно без опыта программирования может повторить шаг за шагом процесс создания игры в гамаке, но те что я видел, обычно для платформеров, изометрических рпг или топ-даун шутеров.
261 473353
>>473348
Бери туториал для платформера и не делай прыжки. В чём проблема?
262 473547
>>473353
https://youtu.be/G90wXOwPPVE?t=6m6s
Нахуя он создает вериабл b = -1; ?

Получается он дальше пишет
if (image_xscale = 1)
-1.direction = 0;
} else {
-1.direction = 180;
}
что блядь это вообще должно означать?
263 473554
>>473547
Резервирует контейнер для пули.

Для того, чтобы не использовать b в каком-то другом месте.
Во-вторых, если вдруг ему нужно будет обратиться к пуле b в каком-то другом месте,он сможет сделать проверку
if instance_exists(b)
{
блаблабла
}

Если b задано не будет - получится критическая ошибка. Если же b будет иметь значение -1, то это соответствует ключевому слову noone в гамаке. Проверка будет пройдена.

Вообще, когда я создаю всякие пули, я задаю временную переменную.

var b = instance_create...
b.spd = ...
b.dirx = ...
b.dmg = ...

Но если бы мне понадобилось, например, управлять пулей используя для управления объект игрока, я бы в криэйт ивенте написал
b = noone;
И ты лучше пиши не
b = -1;
а
b = noone или b = false
В смысле не используй цифру -1 там, где должно быть ключевое слово. Не потому, что работать не будет, а потому что в последствии, вернувшись к своему коду через пару месяцев, тебе будет легче в нём разобраться.
264 473558
>>473547

>Получается он дальше пишет



Ты не понял что он делает.
Сначала у него была b = -1
Потом он написал
b = instance_create.. и b поменяла значение.
Фунция instance_create возвращает id созданного объекта.
Теперь b содержит ссылку на созданный им инстанс. (Ключевое слово гамака id)

Поэтому, когда ты дальше пишешь

b.direction = 0

Ты изменяешь параметр direction этого объекта на 0.

И тут важно, обрати внимание и запомни:
Когда создаётся объект при помощи instance_create
сразу же начинает выполняться его криэейт ивент. СРАЗУ ЖЕ.

Поэтому, когда ты следующей строкой пишешь
b.direction = 0
помни, что криэей ивент УЖЕ произошёл.
Ну и, соответственно, ты не можешь использовать в криэйт ивенте этого инстанcа данные от создателя. Если тебе нужно вычислить для пули скорость в зависимоти от направления, либо вычисляй её после instance_create и предавай объекту, либо у объекта делай "дополнительный приэйт ивент".

Но это уже другая история, этим ты будешь заниматься потом. Пока кури туториалы.
265 473571
>>473558
Ну и раз уж ты такие вопросы задаёшь:

переменная в гамаке - штука умная и универсальная.

Во-первых она сама определяет свой тип, когда ты используешь =

Если b = 1 то она - int
Если b = 1/3 то она сразу real
Если b = "hello wrold" То она string

Но это тебе не очень инересно.

А вот если

b = spr_player
и при этом spr_player - это название твоего спратйа игрока, то b становится ссылкой на это спрайт.

И ты можешь использовать её для анимации. Например

create event:
sprite_walk_right = spr_zombie_walk_right
sprite_walk_left = spr_zombie_walk_left

if dirx = 1{
sprite_index = sprite_walk_right
}
else{
wprite_index = sprite_walk_left
}

Зачем так делать? Да затем, что когда ты будешь создавать много врагов, ты сможешь использовать для них одни и те же скрипты, меняя лишь значение sprite_walk_right в create event. Ты просто child objects будешь создавать, у которых только криэйты разные. Удобно же!

b = room_index

И теперь b это ссылка на твою комнату.
И так далее.
265 473571
>>473558
Ну и раз уж ты такие вопросы задаёшь:

переменная в гамаке - штука умная и универсальная.

Во-первых она сама определяет свой тип, когда ты используешь =

Если b = 1 то она - int
Если b = 1/3 то она сразу real
Если b = "hello wrold" То она string

Но это тебе не очень инересно.

А вот если

b = spr_player
и при этом spr_player - это название твоего спратйа игрока, то b становится ссылкой на это спрайт.

И ты можешь использовать её для анимации. Например

create event:
sprite_walk_right = spr_zombie_walk_right
sprite_walk_left = spr_zombie_walk_left

if dirx = 1{
sprite_index = sprite_walk_right
}
else{
wprite_index = sprite_walk_left
}

Зачем так делать? Да затем, что когда ты будешь создавать много врагов, ты сможешь использовать для них одни и те же скрипты, меняя лишь значение sprite_walk_right в create event. Ты просто child objects будешь создавать, у которых только криэйты разные. Удобно же!

b = room_index

И теперь b это ссылка на твою комнату.
И так далее.
266 473806
>>473571
Спасибо. Я едва ли что-то из этого понял вчера когда прочитал, но сейчас немного разобрался, когда делал удар врага по игроку.
Переменную можно привязать к объекту и это удобно тем, что можно создавать этот объект с уже заданными параметрами в коде его создателя.
var enhit = 0;
//enemy attack
if (alarm[0] <= 0) {
enhit = instance_create (x,y+30,obj_enemy_hit);
enhit.image_xscale = image_xscale;
alarm[0] = 60;
}
можно придать заданное направление (например для удара), скорость (для пули) и т.д.
267 473814
>>473806
Послушай совет:
Никогда. Не. Используй. Алармы.

Во-первых их всего 12.
А если у твоего игрока куча разных механик? Тебе не хватит.

Во-вторых порядок исполнения кода. Ты знаешь когда они выполняются? В тот самый момент, когда оттикал таймер. А когда тикает этот таймер? В начале шага, в конце, в самом шаге? А в какой последовательности у разных объектов он тикает? А если твой игрок неуязвим, а на тебе ДоТ, который сделан на аларме, а аларм тикает у врага? НАХУЙ! Это самое главное.

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

В криэйт ивент пишеш:
enemy_hit_timer = 0;
enemy_hit_time = 60

В степ ивенте меняешь аларм на:

enemy_hit_timer ++
if enemy_hit_timer > enemy_hit_time{
enemy_hit_timer = 0;
enhit = ...
бла бла бла }

И не думаешь через месяц "а за что у меня отвечает alarm[8]?" и не вспоминаешь "а я этот же аларм использовал для кулдауна регенерации здоровья, надо поменять." У тебя всё в криэйт ивенте хранится.

Нахрена тебе эта ересь?
267 473814
>>473806
Послушай совет:
Никогда. Не. Используй. Алармы.

Во-первых их всего 12.
А если у твоего игрока куча разных механик? Тебе не хватит.

Во-вторых порядок исполнения кода. Ты знаешь когда они выполняются? В тот самый момент, когда оттикал таймер. А когда тикает этот таймер? В начале шага, в конце, в самом шаге? А в какой последовательности у разных объектов он тикает? А если твой игрок неуязвим, а на тебе ДоТ, который сделан на аларме, а аларм тикает у врага? НАХУЙ! Это самое главное.

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

В криэйт ивент пишеш:
enemy_hit_timer = 0;
enemy_hit_time = 60

В степ ивенте меняешь аларм на:

enemy_hit_timer ++
if enemy_hit_timer > enemy_hit_time{
enemy_hit_timer = 0;
enhit = ...
бла бла бла }

И не думаешь через месяц "а за что у меня отвечает alarm[8]?" и не вспоминаешь "а я этот же аларм использовал для кулдауна регенерации здоровья, надо поменять." У тебя всё в криэйт ивенте хранится.

Нахрена тебе эта ересь?
268 473854
>>473814
За совет спасибо. Про timer я вообще не знал, про алармы узнал из туториалов в связи с этим и использовал. В принципе конкретно в этом случае с врагом у меня это временная мера, пока враг представляет собой красный прямоугольник который бьет меня оранжевым прямоугольников. В будущем планирую привязать obj_enemy_hit к кадру анимации, в которой враг будет бить, так что этот аларм можно будет спокойно вырезать.

Но на всякий пожарный уточню, алармов всего 12 ведь не на всю игру, а на конкретный объект? То-есть alarm[0] прописанный для obj_player не имеет никакого отношения к alarm[0] прописанного для obj_enemy, гейммейкер путать их не будет и они прекрасно живут своей жизнью независимо друг от друга?
269 473880
>>473854
На объект.

>о-есть alarm[0] прописанный для obj_player не имеет никакого отношения к alarm[0] прописанного для obj_enemy,



И даже alarm на одном obj_enemy не имеет отношения к alarm На другом obj_enemy.
Это просто встроенный неудобный таймер гейммейкера. лучше таймеры делать самостоятельно.
270 474263
Хм... создал сейчас вторую комнату и перемещение между ними через дверь, все работает, но на душе как-то неспокойно. Я решил чтобы не засирать лишними эвентами obj_player создать коллижн ивен внутри самой двери
if (instance_exists(obj_player)) and (key_use) {
room_goto(rm_f1_garage);
obj_player.x = 180;
}
Только после того, как все опробовал и убедился, что плеер перемещается и хп у него остается ровно тоже количество что и было в предыдущей комнате, задумался а почему оно вообще работает. Ведь этот коллижн ивент запускается из самой двери, почему room_goto перемещает именно плеера в другую комнату, а например не саму дверь? Такой код вообще нормальный или я потом с ним наебусь?
271 474287
>>474263
Потому что это не объект игрок перемещается куда-то, а исчезает одна комната и на её месте появляется другая.

Если на каком-то объекте стоит галочка persistent, этот объект остаётся на своём месте.
Остальные обхекты исполняю свой room_end event и исчезают.
Затем появляются объекты новой комнаты.

Строкой obj_player.x = 180; ты меняешь ккординату x игрока. Камера перемещается за ним. Она у тебя сейчас автоматическая, от гейммейкера, и ты её должным образом не контролируешь. Но и комната у тебя, скорее всего, в один экран, поэтому странного поведения камеры ты не видишь.
272 474289
>>474287

>Ведь этот коллижн ивент запускается из самой двери



Читай мануал:
Note that calling this function does not instantly change rooms, and the room will not change until the end of the current game frame (meaning that any code after this function will still be run, as will some events). This function will also trigger the Room End event.

Команда room_goto поднимает флаг перехода в другую комнату.
Но переход этот происходит только после окончания текущего фрейма.
Также эта команда выполняет room_end event всех объектов.

Порядок выполнения кода такой:
В step event у тебя где-то срабатывает команда room_goto. После этой команды всё продолжается как обычно.
Выполняются step event всех объектов, потом их draw event на самом деле ивентов больше. но сейчас это не важно

После исполнения draw event начинается, собственно, переход в другую комнату.

Сначала выполняется room_end event комнаты вот с ивентами комнаты могу ошибаться
Затем для каждого объекта исполняется room_end event, после чего объект, если он не persistent, уничтожается.

Потом выполняется room_start event новой комнаты. Затем create event всех объектов в новой комнате, затем room_start event всеъ объектов в новой комнате, затем create event новой комнаты, затем room_start event новой комнаты.

Я надеюсь ты понял мысль.
273 474293
>>474263

>Такой код вообще нормальный или я потом с ним наебусь?



Вот это хорошо:
if (instance_exists(obj_player))

Если сразу привыкнешь это писать при обращении к объекту, потом будет легче.
274 474301
>>474287

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


>Если на каком-то объекте стоит галочка persistent, этот Теперь все понятно, на obj_player у меня как раз стоит persistent. Makes total sence.


>>474289
Из этого поста пока мало что понял, но не буду рашить. У меня еще много базовых вещей впереди на освоение. Вернусь к этому чуть позже.
275 476840
Аноны, помогите сделать движение рук. Нужно, чтобы пока нажата ЛКМ, при передвижении курсора справа от игрока его руки целились в сторону курсора, а когда курсор переходит в левую часть экрана, спрайт менялся на противоположный
276 476885
>>476840
Step Event:

if (mouse_check_button(mb_left)) {
if (mouse_x < x) {
image_yscale = -1;
} else {
image_yscale = 1;
}

image_angle = point_direction(x, y, mouse_x, mouse_y);
}
277 477110
>>476885
Может еще подскажешь, как сделать спрайт рук отдельно от основного
278 477115
>>476885
И еще при нажатии спрайт выворачивается, но я юзал похожую функцию для поворотов. Если нажать в левую часть, то после нажатия кнопок вправо и влево используется противоположное направление
279 477167
>>477110
Рисуй в draw event два спрайта.

Основной объект рисуй как
draw_self();
Дополнительный рисуй как
draw_sprite_ext(....) - и вводи для него отдельные переменные
sprite_hands_sprite_index =
sprite_hands_image_number =
sprite_hands_rotation =
sprite_hands_image_xscale =
и так далее. В мануале всё написано.

>>477115
Разжёвывать никто тебе не будет. Ты задаёшь ЭЛЕМЕНТАРНЫЕ вопросы, ответ на них есть в мануале.
Тебе показали способ как это сделать,и подсказали, про что читать. Иди и читай мануал.
пункт draw_sprite_ext
280 480204
Вопрос мёртвому треду: что там по turn-based rpg? Есть гайды о том, как реализовывать битву с действиями и т. д.?
мимонуфак
281 480248
>>480204
Сам пиши, ничего в этом сложного нет
282 480276
>>480204
Хотел побыть хорошим полицейским и по-доброму ответить на твой вопрос. Но просто не могу.

Ты написал хамский, потребительский пост, который даже не содержит в себе вопроса.

Попробуй задать вопрос ещё раз, при этом опиши то, что ты хочешь сделать, что именно у тебя не получается, опиши свои варианты подхода к проблеме и почему они не сработали.
283 480312
>>480248
Не знаю ни одного ЯП, в гамак вкатился из-за рекомендаций, мол, очень хорош для новичков.
>>480276
Меня интересует система битв в целом: инициация боя, организация ходов, использование скиллов и предметов из инвентаря, накладывание эффектов, вот это вот всё. Не знаю ничего.
284 480331
>>480312
И ты ожидаешь, что я тебе тут книгу напишу про то, как это делать, или дам ссылку на гайд "как сделать заебись"?

При том, что ты даже сам не можешь написать, что ты хочешь сделать.

> Не знаю ничего.


Тогда запускай самые первые туториалы по гамаку от Спалдинга и делай астероиды.
285 480335
>>480331

>И ты ожидаешь, что я тебе тут книгу напишу про то, как это делать, или дам ссылку на гайд "как сделать заебись"?


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

>При том, что ты даже сам не можешь написать, что ты хочешь сделать.


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

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


Зачем мне аркадные механики в турн бэйсед рпг, объяснишь мне? Все эти коллизии и прочую хуйню я и так освоил, меня интересуют углублённые знания.
286 480344

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



Видимо не освоил, иначе знал бы, как работать с объектами.

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



Может не харкачеры искажают, а у тебя не получается вопрос задать?
Попробуй поставить себя на место собеседника. Допустим тебя спрашивают:
"Посоветуйте гайды по созданию мобильных приложений."
или
"Посоветуйте гайды по созданию головоломок."

Что ты ответишь?

А представь себе, если тебя спросят:
"как мне сделать так, чтобы мой враг в игре выполнял какое-то действие только тогда, когда я нажимаю на кнопку "конец хода"?"

Тогда тебе ответят:

Воткни в начало степ ивента объекта obj_enemy такую конструкцию:

if !turn_is_over
{turn_is_over = false;}
else
{exit;}
Дальше пиши код как обычно.

Потом создай кнопку, после нажатия на которую она будет выполнять следующий код
with obj_enemy
{turn_is_over=true}

Теперь после нажатия на эту кнопку у всех твоих врагов флаг turn_is_over станет true. Они выполнят step event один раз и снова установят у себя флаг turn_is_over = false.

>Я бы описал концепт, если бы беседовал с кем-нибудь индивидуально


Ты /gd с /b попутал. Тут всего 15 человек сидит. В общей сложности.

Я всё ещё добрый полицейский. Но это в последний раз.
286 480344

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



Видимо не освоил, иначе знал бы, как работать с объектами.

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



Может не харкачеры искажают, а у тебя не получается вопрос задать?
Попробуй поставить себя на место собеседника. Допустим тебя спрашивают:
"Посоветуйте гайды по созданию мобильных приложений."
или
"Посоветуйте гайды по созданию головоломок."

Что ты ответишь?

А представь себе, если тебя спросят:
"как мне сделать так, чтобы мой враг в игре выполнял какое-то действие только тогда, когда я нажимаю на кнопку "конец хода"?"

Тогда тебе ответят:

Воткни в начало степ ивента объекта obj_enemy такую конструкцию:

if !turn_is_over
{turn_is_over = false;}
else
{exit;}
Дальше пиши код как обычно.

Потом создай кнопку, после нажатия на которую она будет выполнять следующий код
with obj_enemy
{turn_is_over=true}

Теперь после нажатия на эту кнопку у всех твоих врагов флаг turn_is_over станет true. Они выполнят step event один раз и снова установят у себя флаг turn_is_over = false.

>Я бы описал концепт, если бы беседовал с кем-нибудь индивидуально


Ты /gd с /b попутал. Тут всего 15 человек сидит. В общей сложности.

Я всё ещё добрый полицейский. Но это в последний раз.
287 480347
>>480344
Ну, в таком случае мне нужен анон, с которым я смогу работать индивидуально. Тогда я уже смогу задавать ему конкретные вопросы, но один хуй никто не захочет этим заниматься.
288 480351
>>480347
Здесь нет никого, кроме меня. Захочу ли я тебе что-то объяснять зависит только от тебя.
289 480352
>>480351
И что же мне нужно делать, чтобы добиться твоего одобрения?
290 480353
>>480352
Задавать правильные вопросы вот по этой инструкции >>480276
291 480354
>>480353
Мог бы, но не хочу палить концепт. Могли бы обменяться мылами и поговорить наедине.
292 480367
>>480354

>Мог бы, но не хочу палить концепт.


Смирись с тем, что твой концепт не интересен никому.

>Могли бы обменяться мылами и поговорить наедине.


Я сижу на анонимном форуме не потому, что хочу меняться мылами и говорить с кем-то наедине.
293 480394
>>480354

>Мог бы, но не хочу палить концепт.


Ну бля, ну так хотелось спиздить у тебя идею очередной рпгшки, ну чо вы опять обламываете(9(
294 480398
>>480394
скоро будет ажиотаж вокруг рпг, успей вкатиться
295 480401
>>480398
Ага, скоро ведь девяностые, рпг на пике своей популярности
296 480407
>>480394
Я просто не хочу шкварить своё говноподелие об двач, тем более /gd.
297 480409
>>480407
Но у тебя нет никакого поделия. И не бует.
298 480416
>>480409
Ну раз ты так сказал.
299 480762
Подскажите как реализовать стрельбу в платформере. Меня интересует даже не столь техническая, как практическая сторона. Вот у меня есть персонаж, и он может стрелять во все стороны. Как лучше сделать повороты рук, чтобы это не выглядело будто у гг суставы вращаются во все стороны? Может есть примеры там в каких-то играх или видео какие-нибудь
300 480777
>>480762
Ты определись, тебе стрельбу нужно реализовывать или повороты рук?

У тебя 2д или 3д? Вектор? Руки - отдельный объект? С вот этим всем определись.

А лучше всего - нарисовать каждый кадр положения рук и тела для стрельбы, иначе будет выглядеть как говно.
301 480813
>>480777
Повороты рук во время стрельбы. Рисовать каждый кадр смысла нету, потому что тогда нельзя будет поворачиваться и стрелять одновременно
302 480819
>>480813

>>потому что тогда нельзя будет поворачиваться и стрелять одновременно



Чтоблять?

Ты сначала объясни, что ты хочешь, картинки запости. Понять что-то из твоего лепета невозможно.
303 480892
>>480819
Да хуле непонятно-то? Мне надо чтобы при стрельбе можно было вертеть руками во все стороны и это не выглядело по-уебански. Я пытался сделать это отдельным спрайтом рук и получилась хуйня. Вот я и спрашиваю другие способы сделать это
304 480895
>>480892
Делай 3д хуле. Как ещё можно сделать не рисуя отдельные кадры для каждого положения, еблан?
305 480897
>>480895
У тебя 2d вид сбоку? Или 3d? Или изометрия? Ты не способен видео залить на двач? Иди учись.

Если 2d вид сбоку - рисуй.

Ты из автомата стреляешь или из пистолета?

Где ты видел, чтобы кто-то за спину себе стрелял? Как ты вообще себе это представляешь?

Посмотри как в ghost 1.0 сделано. Она наклоняется вперёд и назад туловищем, сгибает руки, отставляет назад ногу, опускает и поднимает голову и стреляет только в передней полусфере. Если надо стрелять назад - разворачивается.
Она векторная, состоит из кусков, но каждый кадр стрельбы отрисован. Каждые 10 градусов поза чуть-чуть меняется, а в пределах 10 градусов ходят только руки.

Если ты хочешь тупо вращать неанимированный спрайт рук - у тебя и получится тупо. Чтобы было хорошо нужно много работать.
306 480920
>>480897

>Каждые 10 градусов поза чуть-чуть меняется


Ну и это будет выглядеть дёргано и будет ощущение, что пуля летит не из дула

>Где ты видел, чтобы кто-то за спину себе стрелял? Как ты вообще себе это представляешь?


Ну так за спиной у меня спрайт меняется на противоположный
307 480926
>>480920

>Ну и это будет выглядеть дёргано и будет ощущение, что пуля летит не из дула



Ты жопой читаешь? Поза меняется каждые 10 градусов. В пределах этих 1- градусов перемещаются руки. Открой ghost 1.0 да посмотри как там сделано.

Чтобы это повторить мне, например, нужно недели две рисовать. У меня уже опыт некоторый есть со спайном. Тебе - два месяца понадобится. Готов? Вперёд!
image.png284 Кб, 850x531
308 482212
309 482213
>>482212
ЙАРРРРРРРРРР
310 482222
>>482212
Хотел посидеть на раздаче, но самому не скачать.
311 482231
>>482222
Я сидел на раздаче, но у меня она перестала идти
312 482232
>>482222
Да че ты врежч, скорость около 1мб
313 482241
>>482212
посижу на раздаче с недельки две, если дадите докачать до фулла
Screenshot20180303-1934131.jpg19 Кб, 417x388
314 482368
315 482376
щитпостинг
316 482378
Соре, я просто даунич немного. Кстати, я раздаю. Качайте, сейчас скорость норм должна быть
317 482800
Кто-нибудь знает, как в GMS2 под windows сохранить файлы где-то кроме "User\AppData\Local\project_name"? Разумеется, без вызова диалога. Нашёл для обхода этого "сэндбокса" несколько расширений от пользователей, но они все на гейммейкер версии 1.4. Буду очень признателен, если кто подскажет что-нибудь.
318 486329
>>482212
Всё скачалось (скорость 1мб), сижу на раздаче.
319 486508
>>472725

>Блин, у тебя же туториал открыт


Это не туториал, а пример.
320 487982
Анон, почему, когда я иду в вертикальную коллизию и пытаюсь подвигать вправо-влево, я не двигаюсь до тех пор, пока не перестану идти в стену, но если я делаю аналогично с вертикальной коллизией, то такого не происходит. Что за хуйня?

Код:
obj_player

create

w_spd = 2;
n_spd = 3;
r_spd = 6;
spd = 3;

draw

draw_self();

step

//UPDATE INPUT
input_left = keyboard_check(vk_left);
input_right = keyboard_check(vk_right);
input_up = keyboard_check(vk_up);
input_down = keyboard_check(vk_down);
input_walk = keyboard_check(vk_control);
input_run = keyboard_check(vk_shift);

//ALTER SPEED
if(input_walk or input_run) {
spd = abs((input_walkw_spd) - (input_runr_spd));
} else {
spd = n_spd;
}

//RESET MOVE VARIABLES
moveX = 0;
moveY = 0;

//INTENDED MOVEMENT
moveY = (input_down - input_up) spd;
if(moveY == 0){ moveX = (input_right - input_left)
spd; }

//COLLISION CHECK
//Horizontal
if(moveX != 0){
if(place_meeting(x+moveX, y, obj_collision)){
repeat (abs(moveX)){
if(!place_meeting(x+sign(moveX), y, obj_collision)){ x += sign(moveX);}
else { break; }
}
moveX = 0;
}
}

//Vertical
if(moveY != 0){
if(place_meeting(x, y+moveY, obj_collision)){
repeat (abs(moveY)){
if(!place_meeting(x, y+sign(moveY), obj_collision)){ y += sign(moveY);}
else { break; }
}
moveY = 0;
}
}

//APPLY MOVEMENT
x += moveX;
y += moveY;
320 487982
Анон, почему, когда я иду в вертикальную коллизию и пытаюсь подвигать вправо-влево, я не двигаюсь до тех пор, пока не перестану идти в стену, но если я делаю аналогично с вертикальной коллизией, то такого не происходит. Что за хуйня?

Код:
obj_player

create

w_spd = 2;
n_spd = 3;
r_spd = 6;
spd = 3;

draw

draw_self();

step

//UPDATE INPUT
input_left = keyboard_check(vk_left);
input_right = keyboard_check(vk_right);
input_up = keyboard_check(vk_up);
input_down = keyboard_check(vk_down);
input_walk = keyboard_check(vk_control);
input_run = keyboard_check(vk_shift);

//ALTER SPEED
if(input_walk or input_run) {
spd = abs((input_walkw_spd) - (input_runr_spd));
} else {
spd = n_spd;
}

//RESET MOVE VARIABLES
moveX = 0;
moveY = 0;

//INTENDED MOVEMENT
moveY = (input_down - input_up) spd;
if(moveY == 0){ moveX = (input_right - input_left)
spd; }

//COLLISION CHECK
//Horizontal
if(moveX != 0){
if(place_meeting(x+moveX, y, obj_collision)){
repeat (abs(moveX)){
if(!place_meeting(x+sign(moveX), y, obj_collision)){ x += sign(moveX);}
else { break; }
}
moveX = 0;
}
}

//Vertical
if(moveY != 0){
if(place_meeting(x, y+moveY, obj_collision)){
repeat (abs(moveY)){
if(!place_meeting(x, y+sign(moveY), obj_collision)){ y += sign(moveY);}
else { break; }
}
moveY = 0;
}
}

//APPLY MOVEMENT
x += moveX;
y += moveY;
321 487983
>>487982
Ёбаный курсив. Там в двух местах есть звёздочки, если что.
322 487995
И что тебе не нравится? Ты же сам пишешь, что у тебя движение по х возможно только если нет движения по у.

if(moveY == 0){ moveX = (input_right - input_left) spd; }

Вообще это пиздец - то что ты написал. Надеюсь ты первый день просто как кодить учишься.
323 488007
>>487995

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


Бля, точно. Спасибо, не заметил.

>Вообще это пиздец - то что ты написал. Надеюсь ты первый день просто как кодить учишься.


Учусь по гайдам.
Артик.png560 Кб, 700x700
324 488012
>>439561 (OP)
Гд, родимый, помоги пожалуйста забороть ошибку:

############################################################################################
FATAL ERROR in
action number 1
of Step Eventunit1
for object obj_unit_effector:

Variable <unknown_object>.<unknown variable>(100007, -2147483648) not set before reading it.
at gml_Object_obj_unit_effector_Collision_2de17de7_8960_48b4_917c_ea87cd83c070 (line 5) - if (creator.allie_status != other.allie_status)
############################################################################################
--------------------------------------------------------------------------------------------
stack frame is
gml_Object_obj_unit_effector_Collision_2de17de7_8960_48b4_917c_ea87cd83c070 (line 5)

Бьюсь уже кучу времени с ней. Соль в том, что описываю юнит для стратежки, у юнита раз в кол-во кадров (число задается параметром кулдаун) при подходе на расстояние для атаки создается инстанс (обджект эффектор), который считает колижн с недружественным объектом и отнимает у него хп. Собственно при попытке скомпайлить вылезает эта сранина. Скажите, какие куски кода нужно скинуть, чтобы разобраться, ток помогите.

Рандомпик
325 488018
>>488012
Скорее всего ты не проверяешь существуют ли инстансы перед тем как ими манипулировать. Или не назначаешь или неправильно назначаешь переменную creator. Или у другого объекта просто нет такой переменной как allie status. Или ты случайно назначил юнит родителем эффектора или еще какие-нибудь проблемы с наследованием.
В общем показывай весь код и общий вид объекта эффектора и заодно скрипт который его создает.
326 488020
>>488018
Вот. Только не пугайся кода, я в гмс всего два дня сижу.
327 488022
>>488020
Ну вот смотри, насколько я вижу создаешь ты эффектор однозначно, но создателя ему назначаешь ситуативно, а потом переменную хозяина спрашиваешь однозначно, при этом создаешь эффектор там где гарантированно срабатывает Collision. Creator в таком случае получается инициализированной, но пустой переменной.
Перенеси создание эффектора под скобки боевого статуса и посмотри станет ли лучше.
328 488023
>>488022
Да, я так как раз делал, когда пытался сам баг выловить, в таком случае ошибка все равно вылетает, но позже. Сейчас сделаю и покажу.
image.png283 Кб, 2779x1190
329 488024
>>488022
В этот раз игра хотя бы открылась, хоть и не надолго.

(Алсо, можешь поподробнее объяснить, почему получается, что я ситуативно назначаю, но однозначно спрашиваю? Или какой-нибудь урок/статью может посоветуешь, чтобы разобраться)
330 488026
>>488024

>можешь поподробнее объяснить


Что там объяснять, получается так потому что ты не назначаешь создателя сразу же при создании (и не проверяешь назначен ли он перед тем как запросить статус, но это в данном случае было бы необязательно). То есть effector.creator=id дожно быть на следующей строчке после instance_create(effector), а не по разную сторону фигурных скобок двух-трех разных if else, у которых вся суть в том что код срабатывает только в зависмости от ситуации.

Да и вообще делать это в step не самая лучшая идея, ты создаешь допустим 60 объектов в секунду, а нужен из них только один, только когда срабатывает alarm, соотвественно лучше и перенести в аларм.
331 488029
>>488026
Вау, сейчас сделал как ты сказал, и все заработало. Спасибо тебе огромное, родина не забудет твоего подвига!
Untitled.png2 Кб, 500x500
332 488100
Анон, у меня проблема. Делаю анимации, которые разложены в чарлисте, с которого берутся необходимые куски.
Есть объект игрока, который имеет спрайт 200x200 в виде белого квадрата, но с коллизией и центровкой персонажа. В коде:

obj_player

create

x_frame = 0;
y_frame = 0;

draw

var anim_length = 10;
var frame_size = 200;
var anim_speed = 3;

draw_sprite_part(charlist,0,floor(x_frame)звёздочкаframe_size,y_frame,frame_size,frame_size,x,y);

if (x_frame < anim_length -1) {
x_frame += anim_speed/60;
} else {
x_frame = 0;
}

В итоге получается хуйня, как на пикриле: посередине квадрат, за которым в углу находится персонаж. Жёлтое - коллизия. В чём подвох?
333 488106
>>488100
UPD: отключил родителя, который отвечал за глубину объектов, и квадрат исчез, но персонаж всё ещё в углу.
334 488118
>>488100

>В чём подвох?


>NOTE: When drawing with this function, the sprite x offset and y offset are ignored and the sprite part will be drawn with the top left corner at the specified x / y position in the room.


Отнимай соответствующие оффсеты из координатов x и y в draw_sprite_part.
335 488121
>>488118
Объясни, пожалуйста, про какой именно оффсет идёт речь. Первый кадр анимации расположен в левом верхнем углу.
336 488123
>>488118
>>488121
Падажжи, оффсета - это центровка? Тот маленький крестик? Теперь понятно. Спасибо, запомнб на будущее.
337 488591
Где-то читал, что для gms2 будет поддержка Нинтендо Сыча. Но ведь Nintendo не дают левым разработчикам выкладываться? Или как?
338 488600
>>488591

> Где-то читал, что для gms2 будет поддержка Нинтендо Сыча. Но ведь Nintendo не дают левым разработчикам выкладываться? Или как?



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

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

После чего с полученным разрешением идешь на форум юнити в закрытый от простого быдла раздел где по ссылке качаешь закрытые компоненты юньки для свитча (нужна версия про, если что).
339 488601
>>488600

>если соне одобрит



Нинтенда, т.е.
340 488603
>>488600

Ну и да, в данном варианте, не забывай что нинтенда по-факту становится твоим издателем и ты будешь обязан выполнять все её пожелания, зарубать по её прихоти свои безумные идеи, реализовывать одно охуительнее другого пожелания нинтенды оптимизировать код и.т.д.
341 488606
>>488603
Форма заявления на анальное рабство здесь:

https://developer.nintendo.com/register/create
342 488722
>>488606
>>488600
>>488603

Йеп. Спасибо огромное.

Стало быть какой-то отдельный Nintendo SDK не нужен и я смогу из "родной среды", в случае чего, портировать под свич?
343 488763
>>488603
Одно из этих пожеланий будет нон стопом ебашить марио
344 488784
>>488763
@
А ТЫ И НЕ ПРОТИВ

Кстати, парни, в GML можно как-то объявлять свои функции? Хочу, например апдейт состояния персонажа вынести в отдельный блок и вызывать его при определённых обстоятельствах (внутри step ивента, но не каждый раз)
345 488786
>>488784
Переформулирую вопрос, ибо я даун. Я наю, что скрипт вызывается как функция. А как работает передача туда значений? Нужно ли это вообще?
346 488834
>>488786

>А как работает передача туда значений?


Слегка через жопу. При вызове скрипта стандартно -- пишешь аргументы в скобках через запятую. А в самом скрипте будет что-то вроде
var xyz=argument0
var qwe=argument1
и так далее.

>Нужно ли это вообще?


Естественно, и возвращать из них значения тоже нужно.
347 488839
>>488834
всё, на самом деле я и сам разобрался. Не привык я к тому, что в документации действительно ВСЁ написано. Я такое наверное только к РенПаю видел, и то там пользовательские вики, а не официалка.

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

Идея была проста:
два массива, в одном символы допустимые для данной сложности, во втором символы нагенерированные для уровня.
После генерации спавнятся блоки на которые наносятся эти символы по порядку.

Но я э... Видимо, где-то что-то проебал по фактике и мне пришлось перезагружать компьютер, потому что он чуть не загорелся, так и не запустив окошко. Но он так и не выдал ошибки. Я боюсь открывать этот проект у себя :(
чё делать?
349 492937
>>492927

> мне пришлось перезагружать компьютер, потому что он чуть не загорелся


> если бы волшебники были погромистами


Проиграл чет с этого.
350 492942
Анон, объясни, как ебануть простейший спрайт с анимацией. Есть меню. В Draw GUI пытался прикрепить анимированный фон, но нихуя не понимаю, что использовать: draw_sprite_ext не работает, вроде. Можешь помочь?
351 492947
>>492942

>draw_sprite_ext не работает, вроде


такого быть не может
352 492952
>>492947
Тогда как делать то, что я описал, через него? Объясни, пожалуйста.
353 492955
>>492952
братан, причин множество. кривой 3д-режим, который не справляется с переходами из него, depth объекта выше задника, прочее говно с view, alpha в 0, крч тонны их. я не смогу угадать. это как если бы ты спросил "почему у меня моделька в юнети не импортируется".
354 492956
>>492955
Альфа на единичке. Всё что могу сказать.
Если в subimg выставить -1, то спрайт тупо начнёт быстро пролистываться, хотя у меня скорость анимации на единице.
Можешь хотя бы объяснить, как это проворачивать с нуля?
355 492957
>>492956

>Можешь хотя бы объяснить, как это проворачивать с нуля?


берешь и без задней мысли отрисовываешь.
draw_sprite(x,y, sprite_index, image_index); и всё.
в том то и проблема что инфы от тебя мало вата
356 493012
>>492957
Хорошо, распишу подробнее.
Нужно, чтобы фон растягивался по всей комнате. То есть наверное нужно брать начало в 0,0, плюс высоту-ширину обоев, плюс скейлить. Но как ебануть нормальную анимацию с нужной скоростью?
sage 357 493045
>>492927
Ты словил бесконечный цикл.
Запускай игру в режиме дебага, можешь даже без брекпоинтов. Когда начнёт адски тормозить дави, переключайся в окно дебагера и дави на паузу.

Вуаля. Далее жамкай f9 пока не поймёшь, где же ошибка.
358 493047
>>492942
draw_sprite_ext прекрасно работает.

create event:
animation_timer = 0;
animation_speed = 0.08;

bg_sprite_ = spr_background
bg_max_frame = sprite_get_number(bg_sprite) - 1;
bg_alpha = 0.5;
bg_xscale, bg_yscale = вычисляешь сам

draw_event
var frame = animation_timer хпишу Х вместо звёздочки animation_speed;
if frame > bg_max_frame {animation_time = 0; frame = 0;}
draw_sprite_ext(bg_sprite, frame, x, y, bg_xscale, 0, c_white, bg_alpha)

Вот тебе счастье
359 493048
>>493047

>draw_sprite_ext(bg_sprite, frame, x, y, bg_xscale, bg_yscale, 0, c_white, bg_alpha)

360 493051
>>493047
draw_event
var frame = animation_timer хпишу Х вместо звёздочки animation_speed;
animation_timer ++; пропустил строчку
if frame > bg_max_frame {animation_time = 0; frame = 0;}
draw_sprite_ext(bg_sprite, frame, x, y, bg_xscale, 0, c_white, bg_alpha)
361 493267
>>493047
>>493048
>>493051
Анон, всё работает. Добра!
Олсо, ещё заметил, что нужно офсету вычитать, ну или крепить её в центр, но всё равно спасибо.
2018.03.30-20.12.mp41,8 Мб, mp4,
1600x900, 0:19
362 493292
>>439561 (OP)
Здарова, игроделы. Хуй знает, может кто сталкивался с проблемой. Когда объект движется по диагонали, то камера начинает дергаться. В чем проблема то может быть.
363 493544
Анон, где можно посмотреть различные команды для дебаффа? Вот, например, мне нужно, чтобы у меня выводились офсеты объектов с их координатами по y. Как это сделать?
364 493578
>>493292
Подкрути в настройках камеры границы с 200 до 198 и посмотри стало ли лучше. Подгони там же аспект порта под аспект камеры, пусть будет 800х800 например.
365 493579
>>493544
В draw_event объекта пиши draw_text(x+30,y-30,переменная).
sage 366 493584
>>493292
А я тебе лучше совет дам, чтем этот >>493578

Не используй встроенную гамаковскую камеру. Делай свою.

В этом треде есть всё, что нужно:
https://forum.yoyogames.com/index.php?threads/guide-meet-the-new-camera-system.12269/
sage 367 493588
>>493544
Вот здесь.

https://docs2.yoyogames.com/index.html?page=source/_build/2_interface/2_extras/debugging.html

А вообще пиши сам, как этот >>493579 советует. Будет удобней.
368 493639
>>493584
Благодарю. Но я вообще нихуя не шарю пока что в этом. Так что будет сложновато в коде разобраться.
369 493641
>>439561 (OP)
Алсо вопрос. Запарно ли сделать так, чтобы спрайт врага изменялся в зависимости от положения? Например у меня 8 сторон движения и соответственно 8 спрайтов. Какая вообще должны быть логика изменения спрайтов? Мол if direction = значение градуса {
sprite_index = spr_move_top;
}
или что то вроде такого.
370 493646
>>493641

Всё будет так, как захочешь лично ты. Нет такой логики, которая "должна" быть.

Я бы сделал так:
Ввёл бы врагу две переменных dirx и diry.

Сделал бы 3 вот таких переключателя:

if dirx == 1
{
switch diry
{
case -1: sprite_index = sprite_walk_right_top; break;
case 0: sprite_index = sprite_walk_right; break;
case 1: sprite_index = sprite_walk_right_bot; break;
}
}

if dirx == 0
{
switch diry
{
case -1: sprite_index = sprite_walk_top; break;
case 1: sprite_index = sprite_walk_bot; break;
}
}

if dirx == -1
{
switch diry
{
case -1: sprite_index = sprite_walk_left_top; break;
case 0: sprite_index = sprite_walk_left; break;
case 1: sprite_index = sprite_walk_left_bot; break;
}
}

Можно даже свитч из свитчей, но так код, имхо, более читаемый.
370 493646
>>493641

Всё будет так, как захочешь лично ты. Нет такой логики, которая "должна" быть.

Я бы сделал так:
Ввёл бы врагу две переменных dirx и diry.

Сделал бы 3 вот таких переключателя:

if dirx == 1
{
switch diry
{
case -1: sprite_index = sprite_walk_right_top; break;
case 0: sprite_index = sprite_walk_right; break;
case 1: sprite_index = sprite_walk_right_bot; break;
}
}

if dirx == 0
{
switch diry
{
case -1: sprite_index = sprite_walk_top; break;
case 1: sprite_index = sprite_walk_bot; break;
}
}

if dirx == -1
{
switch diry
{
case -1: sprite_index = sprite_walk_left_top; break;
case 0: sprite_index = sprite_walk_left; break;
case 1: sprite_index = sprite_walk_left_bot; break;
}
}

Можно даже свитч из свитчей, но так код, имхо, более читаемый.
371 494790
Допустим, мне нужен рандомное число от 0 до 60, но мне нужно исключить отрезок от 20 до 40. Как это сделать через irandom_range? Это вообще возможно?
372 494793
>>494790
не уверен в синтаксисе, давно на GML не писал

while true {
var num = irandom_range(0, 60);
if (num < 20 || num > 40) break;
}
373 494796
>>494790
if(irandom(1))
num = irandom(20);
else
num = irandom_range(40, 60);

>>494793
Чет оподливился с этого кода.
374 494815
>>439561 (OP)
Господа, я тут недавно начал осваивать сурфейсы. Собсна вопрос, как на сурфейсе отрисовывать анимированный спрайт?
375 494817
>>494815
Отбой, уже сам разобрался
Безымянный.png9 Кб, 600x600
376 494970
>>494796
Не работает нихуя.
У меня есть хуйня, при помощи которой можно выкидывать предметы из инвентаря. Выкидываются они по окружности, как на рисунке, но в красные области по бокам выкидывать нельзя, потому что предмет там застревает с нихуя и его нельзя подобрать. Следовательно мне нужно исключить области от 330 до 30 и от 150 до 210 градусов. Если я пишу
var itemdir;
if(irandom(30)){
itemdir = irandom(150);
} else {
itemdir = irandom_range(210, 330);
}

, то нихуя не работает.
377 494971
>>494970
Ёбаный высер Абу не может нормально показывать табы. Вот лучше:
var itemdir;
if(irandom(30)){
itemdir = irandom(150);
} else {
itemdir = irandom_range(210, 330);
}
378 494987
>>494971
Конечно не работает, ты же хуйню написал, а я не знал куда оно тебе нужно и сделал для твоего примера.

Для нового примера сойдет такой код:
rand = irandom_range(30, 270);
if(rand >= 150)
rand += 60;
379 494991
>>494970

>if(irandom(30))


Ты вообще задумываешься перед тем, как код копипастить?
380 494992
>>494970

>предмет там застревает с нихуя


Значит у тебя баг в коде, ищи его.
19289794.jpg57 Кб, 456x566
381 495006
>>494992
Уже нашёл, спасибо.
382 495519
Как убрать определённую составляющую из энумератора? Допустим, у меня код типа такого:
enum item {
item1 = 1,
item2 = 2,
...
item100 = 100,
}

Как мне в irandom_range(1, 100) убрать, скажем, тридцатый номер?
383 495522
>>495519
Можно сделать

var item = choose(irandom_range(1,29),irandom_range(31,100))

или просто
item = choose(item.item1,item.item2,item.item5)
если веще мало.
384 495708
Если у меня платформер с большим количеством разных состояний персонажа, которые перекрывают базовые механики (например, скиллы, которые блокируют любые другие кнопки во время своего исполнения, кроме определенных "окон", когда можно нажать что-то определенное и зависящее от скилла), то наверное это лучше делать не в одном степе, а каждое состояние перенести на свой скрипт, активирующийся по выполнению определенных условий во время степа, я прав? Не будет ли это нагрузочно для системы (постоянные вызовы скриптов по идее должны отнимать ресурсов)? Просто я пытаюсь как-то весь код степа разбить на состояния и понимаю, что я там очень быстро запутаюсь, отдельные скрипты очень сильно помогут в этом плане.
GameMakerStudio 2018-04-14 02-12-40-09.webm3,7 Мб, webm,
1920x1012, 0:43
385 495709
>>495708
Ты не о том паришься.
Разбивай на скрипты и регионы смело.
Я тоже долго парился о такой фигне.
386 495711
>>495709
Да я все время блять не о том парюсь из-за своего ебаного перфекцеонизма. Тем более я еще даже на стадии прототипирования, где по идее велосипедить и костылить вполне норма, но нет блять, мне нужно сразу все в финальной архитектуре и с минимальной нагрузкой на железо. Но в принципе так, как ты скинул, я себе все это дело и представлял. Мде, работа прогером явно не для меня.
387 495719
>>495711
Вот нашел чем удивить. Когда я только начинал, точно так же пытался всё сделать максимально эффективно. Например по мтнимуму вводил новые переменные, они же память занимают! Лучше я одну и ту же переменную буду использовать как таймер для всех фаз и всех состояний. Но это же полная хуйня.

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

И всё равно, когда требуется написать что-то не требующее оптимизаций (инвентарь например, или эффект в паузе) просто кайфую. Писать получается в три раза быстрее, а код, по сути, такой же точно выходит.
388 496394
Аноны, у меня в Степе при определенном действии вызывается определенный скрипт. Скрипт должен двигать объект с определенным таймингом, по сути мелкими дискретными шагами. Но ведь вызывается он один раз. Как заставить скрипт выполняться несколько раз? Или надо переписывать логику, чтобы он нужное количество раз просто из Степа вызывался?
389 496503
>>496394

>Как заставить скрипт выполняться несколько раз?


https://docs.yoyogames.com/source/dadiospice/002_reference/001_gml language overview/401_11_for.html
390 496531
>>496503
Ну то есть 2 вариант. Жаль. Было бы прикольно, если бы была команда по типу "повторить" выполнение скрипта и писать ее в самом скрипте.
no.png3 Кб, 322x101
391 496533
>>496531

>если бы была команда по типу "повторить" выполнение скрипта


так у тебя степ каждый кадр это делает
392 496535
>>496533
Но мне это нужно не в степе, а внутри самого скрипта, пока степ "спит". А кстати, можно ли вызвать скрипт в теле его самого?
393 496543
>>496535

>внутри самого скрипта


а почему бы и нет?

>To execute a script from an object or a time line you can use the Execute Script action , but you can also call it in a code box using the actual script name as if it were a function or even by using the GML function script_execute.


script_execute(scr, arg0, arg1, arg2, ...);
394 496559
>>496543
Да, я уже проверил, правда оказалось, что это не совсем то, что нужно, потому что без степа теперь скрипт не будет учитывать столкновения, которые могут возникнуть во время движения в скрипте. Так что буду все же вызывать скрипт степом несколько раз.
395 496767
>>458250
Кинешь игру заценить?
396 496772
>>457512

>как Gamemaker экспортирует в html5


Очень хорошо, он из GML генерирует аналогичные функции на js и потом обфусцирует их. Правда, некоторые функции иногда могут не работать.
397 496773
>>457951
Можно использовать скелетные анимации.
398 496839
>>457512
Он это делает весьма непредсказуемо. В моей игре он например отрубил партиклы к хуям. Плюс почему-то добавился статтеринг и хуй ты пойми откуда.
Было играбельно, но как-то вот не радовало.
Переписал на фазере и стало заебись.
399 497356
>>439561 (OP)
Анон, выручай.
Проснулся из глубокого сна, лол.
В 2011 баловался с GM 8.0., в 2012 купил в стиме game maker stuido за даллары, но так нихуя и не сделал, но потом узнал, что моя лицензия походу стала бесплатной.
Что там сейчас в 1.4? Можно ли на ней делать и релизить бесплатные игры в том же стиме? Можно ли монетизировать рекламой внутри игры?(да, влажные фантазии, просто не смог найти адекватной лицензии). В том же юнити все просто, получаешь больше 100к $ - покупай лицензию.
Или для все этого нужно покупать анальную 2.0 студию?
400 497536
Нахуя нужно Draw_self;
Смотрю гайди, часто пишут. По логике нарисовать объект, но он и так сука есть. Зачем нужно это?
401 497541
>>497536
Потому что draw_self изначально есть у всех объектов, но создав даже пустой скрипт в событии draw, оно продает и тебе необходимо указать его явно, не сделав этого и запустив игру у тебя просто не будет рисоваться тот спрайт который ты указал в настройках объекта
402 497542
>>497541
пропадает*
403 497544
>>497541
Благодарю
hHeDFtX.png11 Кб, 610x70
404 497907
Эт чё такое? Я всё понимаю, я абсолютно нормально отношусь к тому, что из бесплатной версии нельзя собрать проекты ни под одну из платформ и ничего против не имею, но вроде же говорили, что всё остальное, кроме материалов стора доступно.

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

Есть ещё какие-то варианты? Или, мб, ломаная версия (только на период разработки. Как только я начну собирать проект я обязательно куплю лицензию)
405 497920
>>497907

>Тратить тонну бабла особо не охота


Берешь коммерческий продукт для разработки. Говоришь что тратить бабла не охота. Логика?

>Есть ещё какие-то варианты?


Дохрена. От взять старую ломаную пиратку гамака до фришных инструментов типа с++. Выбирай на вкус.
406 497964
>>497920

>взять старую ломаную пиратку гамака до фришных инструментов типа с++


и через какой отрезок времени будет готов прототип на гмл и через какой на цпп?
ну конечно если это не match3 :3
407 497970
>>497920

>тратить бабла не охота


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

Потом я, в любом случае, купил бы лицензию чтоб собрать проект
408 498624
>>497356
Бамп вопросу.
Тредик, не умирай!
image.png1,2 Мб, 1920x1080
409 499215
Матерые кодеры, если таковые имеются, я никогда не работал кодером, но свою игру делаю сам, расскажите, когда кодер понимает, что его код вполне хорошо выглядит, и в целом надежен, понятен (читай переполнен комментариями) и его можно пускать в свет?

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

Пока что сам себя обнадеживаю, что это прототип, так что над качеством кода можно не париться. Но когда дело дойдет до "чистовика", как подойти к этому вопросу? Нет у меня особо глубокого понимания, чем принципиально отличается "релизный" код от препродакшенового, и когда я смогу сказать себе "вот так и оставь". Хотя мб это во мне перфекционизм играет (он мне в сосничестве всю жизнь поломал, сейчас каждый день живу, сражаясь с ним), я хз.

В общем, тл;др - через что чаще всего должен пройти прототипный код, чтобы стать релизным? А то боюсь пока дальше новые механики писать, боюсь, что будет такая каша, что потом либо все переписывать придется, либо будет неоптимизированная параша.
410 499216
>>499215

> расскажите, когда кодер понимает, что его код


как только он написан. тут, понимаешь, без реальных образцов разного кода не обойтись. лаконичность (DRY, KISS) очень растяжимое понятие. кто-то жарит красивые однострочники, чтобы вместо 500 строчек было 100, а кому-то надо 100 строк без извратов с синтаксисом, третий напишет 1500 строчек с очень продуманным api и максимально высокой отчуждаемостью, а четвертый жахнет в 20 строк, но с миллионом тормозных зависимостей и "небольшим" сайд-эффектом. и автор каждого решения будет считать свой код правильным и хорошим. важно иметь опыт в каждом из этих подходов - тогда код становится инструментом. чем длиннее инструкция к молотку (комментов к коду) - тем больше он говно. и еще важно пройти этап тяжелых задач (кодеры постоянно комплексуют из-за тривиальных задач). чтобы желание "все переписать" отбилось, чтобы не плодить лишние классы... чтобы не было оверинжиниринга, чтобы у написание кода была прозрачная цель. и вот когда оба этих "важно" пройдены - только тогда ты можешь смастерить честный молоток, а не ходить по галочкам "меньше строчек" и "полное покрытие тестами". хороший код пишется медленно (пусть и быстрее из раза в раз), плохой быстро. сила в том, чтобы стараться везде засунуть говнокод, но угадывать места, где этого делать не стоит.

> через что чаще всего должен пройти прототипный код, чтобы стать релизным


через зеленую кнопочку "релиз" в админке стима, например.
done-better-than-perfect.jpg22 Кб, 800x600
411 499229
>>499215
с опытом
например я елси посмотрю свой код год назад у меня рукалицо, и я уверен что через год у меня будет такое же чувство если я буду смотреть на свой код в текущий момент
но вообще не еби мозги, прототип всегда может быть таким, если работает то заебись, потом отрефакторишь, когда общая картина появится
412 499230
в чем разница межу обычной компиляцией и YYС? Внутри APK не нашел ничего особо отличающегося
Поясните за компиляцию?
413 499243
>>499216
>>499229
Окей, спасибо, попробую дальше говнокодить, мб понимание придет
414 499244
>>499230
в гугле есть инфа
415 499245
>>499244
я тупой и сычующий дегенерат, который найти разницу вообще в гуглах не смог
416 499246
>>499245
https://www.youtube.com/watch?v=BPJ4hCfTZEM

Лично у меня в игре где мало объектов и сложной логики разницы нет, но собираю в yyc
417 499282
Как же я заебался с анимациями и коллизиями. Если спрайты разных анимаций разной высоты - считай уже себе гемора прибавил, это говно обязательно застрянет в полу и перестанет двигаться и прыгать. Если маска коллизий не строго зеркальна по центральной вертикали, то возле стен при смене направления движения так же ебаные застревания.

И это я только две анимации впихнул. Хуль так сложно? Как белые люди это делают, что у них ничего не застревает? А я еще наивный дебил хотел хитбоксами все захуярить, я ж ебанусь это вручную хуярить все.
Runner 2018-05-14 12-02-40-951.mp412,7 Мб, mp4,
1392x868, 0:16
418 499296
>>499282
Неправильный подход.

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

Я задал своему персонажу width и height и считаю коллизии по ним. Они не меняются вообще никогда. По колижн маскам считаю только столкновения с другими объектами.
единственный момент, когда рамка в стену уходит - залезание на препядствия. Для этого костыли стоят.
0.jpg122 Кб, 900x900
419 499305
Какая формула расчета скорости, если известны hspeed и vspeed.
Школу прогуливал.
420 499307
>>499305
теорема Пифагора

А вообще зачем тебе рассчитывать ее, если ты задаешь hspeed и vspeed, и объект автоматически движется?
421 499308
>>499305
Сложение двух ортогональных векторов.
Вычисляй модуль скорости по теореме Пифагора.
1.jpg75 Кб, 960x951
422 499316
>>499307

>зачем тебе рассчитывать ее, если ты задаешь hspeed и vspeed, и объект автоматически движется?


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

А вообще сейчас хорошенько прогулялся по городу и понял что скорость можно найти по принципу point_distance(x, y, x+hspeed, y+vspeed).
Надеюсь подводных камней в таком методе нету.
423 499319
>>499316
Ты действительно поехавший.
424 499344
>>499296
У меня маска была в самой сердцевине персонажа, иногда игнорировала голову и конечности и пр. Думал, что при обволакивании будут слишком большие зазоры между препятствиями и персонажем. Окей, спасибо, попробую обволакивать. Прямоугольник, кстати - отдельный объект или в дро отрисовываешь?
425 499347
>>499344
Я просто его в draw event нарисовал, для наглядности.
426 499894
Анон, как правильно вращать?
У меня есть энное количество отдельных спрайтов, которые должны быть соединены друг с другом и вращаться как-то так, чтобы красиво было. Как автомат с магазином и лежащими на нем руками.
Но как только я начинаю эту ебалу вращать, она расплывается по всему экрану. Я понимаю, что для этого надо смещать все добро через тригонометрические функции, плюс появилась идея учитывать оффсеты спрайтов, но я не могу обволочь эти мысли в какую-то понятную для всех, для гейммейкера и для себя самого форму.
Есть ли где-то видеоуроки или хотя бы текст об этом? Во всех туториалах на ютубе пилят очередную говноспрайтовую РПГ, а у меня система анимации ближе к флешевой, многокадровые спрайты мне не подходят никак.
427 499899
>>499894
spine или dragon bone + Skeletal Animations гейммейкера.

Гугли.
428 500481
Анон, выручай.
Пытаюсь сделать параллакс скроллинг в GMS2.
Все бы ничего, но во время движения с краю экрана появляется вот такая полоска, а когда персонаж останавливается, бэкграунд резко дергается на ширину этой самой полоски. Объект, на котором висит код параллакса загружается самым первым, код находится в Step Event, пробовал пихать его в End Step и Begin Step, но ноль эффекта
429 500489
>>439561 (OP)
1. Если я верно понял, триалка не ограничена по времени и можно хоть до усрачки изучать триал, и даже полноценно пилить в нём своего игоря?

2. Что там с физикой, есть хоть какие-нибудь зачатки?
430 500523
>>500481
У тебя какого размера БГ? Сдаётся мне, что ширина у него с твой экран. Поэтому если ты его сдвигаешь, то остаётся неочищенный участок старого application_surface.

Ты попробуй галочку поставить в свой бэкграунд Horizontal Tile. Что изменится?
431 500525
>>500489
Триал не полноценный.
Я полную версию купил, когда обнаружил, что в триале нельзя создать больше одного тайлсета. Знаю что какие-то функции path в триале ограничены, какие-то gpu.
432 500526
>>500489
Что там с физикой - без понятия. Она там есть. Я использую свою.
433 500528
>>500525
>>500523
Спасибо, качну пока 1.4 на освоение.
434 500547
>>500523
Ничего не меняется. Попробовал использовать в два раза более широкое изображение — то же самое.
435 500559
>>500547
Скинь проект в дропбокс, посмотрю что ты делаешь.
436 500564
>>439561 (OP)
Скачал, посмотрел, некоторые вещи осваиваются интуитивно, это очень хорошо.
Вопрос такой. Есть объект, который постоянно должен "падать", ибо гравитация. Как это реализовать? Порылся в ивентах, не нашёл "пустого" события, которое должно выполняться всегда, без условий.
Ну или ткните в ссыль с такими вот базовыми туториалами.
437 500565
438 500607
>>500564
Бегом смотреть Shaun Spalding
439 500612
>>500565
Спасибо, нашёл, разобрался.
>>500607
Смотрю уже.
Да, неплохое двигло, мне нравится, ещё бы умел на андройды выгружать, и не по лицухе за 130 баксов.
440 500617
>>439561 (OP)
А инди-песочницу гамак2 осилит? Пример - Stardew Valley.
441 500624
>>500612
Подозреваю, что этот экспортер делает некислую прибыль, так что вряд ли забесплатно сделают. Но если они выкатывают при этом такой продукт, то не жалко.
442 500625
>>500617
По-моему, легче спросить, что он НЕ осилит. В 2д, разумеется.
443 500645
>>500617
Осилит. Но мне в гамаке сложновато работать с большими проектами.
444 500681
>>500564
В GMS2 (и в более ранних версиях роде тоже) есть встроенный туториал в духе "шаг за шагом делаем первую примитивную игру". Там делов на полчаса, и практически все базовые вещи научишься делать. Это гораздо лучше, чем видосы-туториалы, где бородатый хер два часа чавкает в микрофон, объясняя 2 строки кода смотреть.
445 500683
>>500559
Не могу этого сделать по ряду причин, но проблему я более-менее решил.

Я пришел к выводу, что переменная, которая получается из команды camera_get_view_x(view_camera[0]) все время отстает на один фрейм от настоящего положения камеры. Тогда я поставил условие, что бэкграунд двигается только при условии, что скорость персонажа не равна нулю. Это, конечно, как-то костыльно, и вылезла еще пара проблем, но их оказалось легко решить, и все работает. Наверное, есть какой-то более изящный путь, если найду, то поменяю систему, конечно.
446 504034
Бамп.
447 504807
448 510367
Вопрос от Фонаря:
Хочу запилить Монополию, но никак не могу придумать - как лучше реализовать улицы? Делать как отдельные объекты или как?
449 510387
>>510367
Тайлмапами делай.
450 510389
>>510387
А как тогда отслеживать их переменные?
451 510403
>>510389
Вариантов куча. Первое, что приходит в голову - завести массив / словарь / список, и в процедуре генерации карты заводить в него нужные данные с тем же индексом, что у тайла в тайлмапе. Обращение к тайлам организовать через геттер, в котором эти данные будут доставаться.
452 510405
>>510403
А разве не подходит вариант сделать 40 объектов для каждого поля, и у каждого объекта - свои переменные?
453 510407
>>510405
Вполне подходит. Одобряю.
454 510408
>>510407
Просто мне такой способ кажется очевидным, но при этом - костыльным. Не может же все быть настолько просто. Или может? И нет смысла изъебываться, если можно все сделать просто?
455 510410
>>510408
Да забей. Главное, чтоб работало.
456 510415
>>510410
И то верно. Спасибо, анон.
457 510700
Гамак не видит подключенный геймпад (gamepad_is_connected();) пока игра свернута. Подключал четвертый дуалшок.
Проблема в гамаке, в геймпаде или во мне?
Аноним 458 510976
Бамп.
459 511032
>>510700
Безотносительно: зачем игре видеть геймпад когда она свёрнута?
Она клавиатуру-то не видит, когда ты табнулся в другое окно. И это правильно.
460 511126
>>511032
Просто таким образом можно было бы намеренно или случайно вызвать ошибку, свернув игру в определенный момент, но уже вроде нашел, как это исправить.
461 511672
Сап аноны. Я очень нью, но может вы поможете мне с одним вопросом. Решил попробовать сделать первую лёгкую игрушку про самолетик, который стреляет говном (стандарт из стандартов). Самолет должен стрелять в сторону, в которую направлена мышка, с промежутком а 310-50 градусов. Но вот беда.
Для поворота модельки я сделал вот:
var mouse_angle = point_direction(x, y, mouse_x, mouse_y);
if (mouse_angle > 310 || mouse_angle < 50)
image_angle = mouse_angle;
Как сделать подобное ограничение для пуль, которые вылетают. Пробовал часа три и нихуя не придумал, собсна. Вот мои самые удачные идеи (пикрилы)
462 511673
>>511672

> с промежутком В 310-50 градусов


самофикс
463 511790
>>511672
Есть функция clamp, которая позволит сделать все то же самое, но в одну строчку.
И я не понял, в чем твоя проблема. Все должно работать. Скорость пули можно записать через speed ее экземпляра, направление через direction, которое ограничить через clamp.
464 511791
>>511790
>>511672
Черт, я болван слепошарый, там все так и сделано. Прошу прощения.
Но тогда я по-прежнему не понимаю, в чем твоя проблема.
465 511793
>>511791
Я пробовал делать через clamp, но это не даёт никакого эффекта. Хотя может быть просто я криворукий (что более вероятно) и попробую ещё, как приду домой, спасибо. Если не получится, спрошу ещё раз, надеюсь на помощь :3
466 511797
>>511793
А да. Не дало эффекта, это значит, что она просто не работала, и камы-пули продолжали лететь из очка вертолета, будто ограничения и вовсе нет. Но скорее всего я просто жиденько обосрался и попробую еще раз переписать.
467 511866
>>511790
Попробовал вот так:
direction = clamp(point_direction(x,y,mouse_x,mouse_y),310,50) + random_range(-4,4);
Не работает ниже 0, пробовал через -50, пробовал через кламп 310,0 + кламп 0,50 — ни в какую.
468 511879
>>511866
var куда_стрелять = point_direction(x, y, mouse_x, mouse_y);
if ((куда_стрелять < 180) {
куда_стрелять = clamp(куда_стрелять, 0, 50);
} else {
куда_стрелять = clamp(куда_стрелять, 310, 360);
}
image.png128 Кб, 1187x712
469 511890
>>511879
Не выходит, получается аналогично моему варианту.
470 511892
>>511879
>>511890
А, все, понял, где я обосрался. Вместо 0 поставил 360 как у тебя и все ахуенно заработало. Спасибо, анон!
471 511897
Гамаконы, есть вопрос. Во второй студии есть адекватная реализация коллекций вместо отвратительной "ds_ " ? И что там вообще по ООП, есть какие то подвижки?
472 511902
>>511897
Не держись за гамак. Если чувствуешь, что тебе тесно в игровом конструкторе - переходи на полноценный движок. Базарю, чем позже перейдешь, тем больше пожалеешь о потраченном на все эти гамаки времени впоследствии.
473 511949
>>511897
Сложные вопросы задаёшь.

В GMS2 есть возможность подключать какие-то явовские списки. Я сильно не вникал, т.к. меня ds полностью устраивают.

По ООП фигово, только самому имитировать скриптами. Функции нормально строятся.
474 511953
>>511902
Странные вещи говоришь.

Я лично я в гамаке совершенно не вижу игрового конструктора. Да, в нём можно включить физику "искаропки", заставить объекты перемещаться по путям и делать прочие примитивные вещи.

Но это только верхушка айсберга. На самом деле с гамаком можно сделать намного больше. Абсолютно всё, что может понадобиться для хорошей 2д игры.
475 513550
>>482212
Там ак нужно регать, меня по опи не вычислют?
476 513691
Можно ни на гамаке написать аналог косморейнджеров, симуляцию жизни и т.п?
Насколько юнити сложнее чем гамак, что лучше изучать: гамак или юнити?
477 513693
>>513691
Программирование изучай, даун.
478 513695
>>513691
Можно.

Для 2д гамак.
Для 3д - юнити.
479 513698
>>513695

>Для 2д Анриал.


>Для 3д - Анриал.

480 513707
>>513691
Гамак легче чем Юнити. 2D в Юнити это особая форма извращенства, когда есть гейммейкер (есть ещё Годот, но зочем).
1531510578.png757 Кб, 1024x631
481 513715
>>513707

>Годот, но зочем


Кубики в дырку кидать.
482 516548
Тред, не умерай.
483 516855
>>516548
Обнаружил в ГМС2 серьёзный баг с утечкой памяти.

Жду исправления от йойошников.
484 516880
>>516855
Исправление будет в ГМС3, можете оформить предзаказ за $80 уже сейчас.
485 517385
Какой же уебищный интерфейс у гмс2 по сравнению с гмс1 и гм4-8, пиздец.
486 518178
>>517385
Ты про удобство или про внешний вид?
487 518477
>>513698

>Для 2д Анриал.


Больной ублюдок.
488 518515
>>518178
Про удобство. Внешний вид - ну да, типо современно
2018-08-0917-29-17.png111 Кб, 1435x856
489 521812
Парни, есть трабл, поможите. Юзаю гмс2, десктопная лицуха.

Вкратце вопрос звучит так - как сделать чтобы импортируемые спрайты не выглядели как дерьмо на фулскрине с 1920х1080?

Развернуто - импортирую спрайты для своего платформера, и они выглядят как параша, даже в оконном режиме на 640х320.
Притом что в комнате при редактировании они выглядят хорошо? Что я делаю не так? Дрочился с настройками в опциях к платформе (в данном случае шиндовс) - нехуя не помогло.

Нагуглил посты на форме гмс и хелруме, часть из них помогла решить проблема с бекграундами (хуярил слишком большие картинки) но вот с обычными объектами я хз че делать. Пробовал уменьшать через image_xscale - не работает.
Натыкался на https://forum.yoyogames.com/index.php?threads/scaling-resolution-and-aspect-ratio-management-for-gms1-gms2.7106/ но по его уроку нехера не вышло, даже с учетом адаптации кода под текущую версию гамака.

Вообще я так понял есть магические surface которые как-то это все должны хендлить, но мои вялые попытки написать чето используя данную функцию не дали ровным счетом нехуя. Шо делать
490 521814
>>521812

> они выглядят как параша


Что конкретно не устраивает?
2018-08-0917-47-13.png27 Кб, 610x412
491 521816
>>521814
Почему качество спрайта так убивается, еще даже не в полноэкранном режиме?
492 521817
>>521816
Разрешение вьюпорта в первой загружаемой комнате (или самой комнаты, если вьюпорты отключеры) задают разрешение всей игры. Разрешение остальных комнат масштабируется под него. Может в этом проблема?
493 521818
>>521817
Снимай штаны, буду сосать. Именно в этом была трабла, писос я дебич.
494 521820
>>521817
скинь кошелек какой, скину сотку на пивко
495 521821
>>521820
да не надо
496 521833
подходит ли сей движок для геймджемов?
имею ввиду,что можно ли за 48 часов на нем что-то сносное склепать,если есть желание и идеи
497 521836
image.png137 Кб, 350x289
498 522685
Я немного выпал из трендов разработки, но есть ли смысл нынче париться о нескольких разрешениях для своей игры, особенно пиксельной? Я вот думаю сделать разрешение 540р (с дальнейшим апскейлом х2 на 1080р). И типа есть ли вообще смысл париться о том, что у каких-то бомжей не будет монитора 16:9 (хотя на 4:3 мониторе там просто полосы будут, что в принципе терпимо) или мониторов с поддержкой 1080р (такие есть еще?)?
goodbad.png51 Кб, 1100x550
499 522694
>>522685
Есть смысл париться, если в крупнопиксельной игре разрешение монитора не делится нацело на разрешение игры. Тогда появятся некрасивые деформации пикселей.
500 522701
>>522694
Эх, ну да, беспокоясь о бомжах на старых пеках, я и забыл, что уже есть челики с разрешениями больше 1080р, но меньше 2160р. Сука, у меня в игре дохуя геометрии даже в банальных игровых действиях, вот чего мне блять для полного штанов счастья не хватало, так это рескейлить игру под другие разрешения.

Как это вообще делают? Новый комплект ассетов рисуют или что? Это ж ебануться можно. Лучше уж тогда в рамку нахуярить. Или просто каждый ассет вручную растягивают до нужных пропорций и потом ретушируют?
501 522731
>>522701
Дешевый и сердитый вариант, который в гамаке легко реализуется, это если у игрока нестандартный монитор, то дать ему возможность либо играть в полноэкранном режиме и наблюдать пиксельные деформации, либо запустить игру в окне с подходящим разрешением. К тому же, чем больше разрешение, тем меньше эти деформации заметны. Самое плохое - это когда скейлить надо в 1.5 раза. Еще была идея рисовать все на текстуре 2160p, а потом уменьшать ее до нужного разрешения со сглаживанием. В графическом редакторе результат нормальный, а в гамаке не пробовал, удобно ли это делать.
502 522741
как в gms 3d подключить?
503 522752
>>522731
Я вот думаю насчет варианта либо полноэкран с деформациями, либо полноэкран нормальный, если человек настраивает разрешение у себя или у него оно само по себе подходящее, либо сделать полноэкран с рамочками, обрамленными каким-нибудь артом. Это, кстати, в гамаке можно сделать как-то? Я видел это у некоторых игр, и смотрелось вполне неплохо.
504 522775
>>522752
Галочки "сделать полноэкран с рамкой" в настройках гамака нет, можно только черные полоски. Хотя странно, почему они такую фичу не добавили, вроде эта идея сама собой напрашивается. Наверно, это можно сделать с помощью своих костылей.
505 522780
>>522775
Ну я и не думал, что в гамаке есть для этого галочка, конечно костылями.
Fail.gif1,1 Мб, 761x536
506 522904
Господа, помогите разобраться в проблеме.

Есть платформа, которая движется вертикально вверх

create
vdist=6;
direction=90;
vspeed = 6
alarm[0]=1;

alarm0
direction=90;
alarm[0]=vdist*vspeed;


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

Есть две проблемы:

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

2. Есть код который описывает врезание в потолок игрока (в степе игрока)

if (place_meeting(x,y-1,oParSolid) and (v >=0))
{
hp = 0
}

Поэтому при прыжках по вертикально движущейся платформе, когда он застревает в платформе, его хп становится равным 0, игра рестартуется. Я понимаю что наговнокодил, но как сделать иначе - хз.
Fail.gif1,1 Мб, 761x536
506 522904
Господа, помогите разобраться в проблеме.

Есть платформа, которая движется вертикально вверх

create
vdist=6;
direction=90;
vspeed = 6
alarm[0]=1;

alarm0
direction=90;
alarm[0]=vdist*vspeed;


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

Есть две проблемы:

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

2. Есть код который описывает врезание в потолок игрока (в степе игрока)

if (place_meeting(x,y-1,oParSolid) and (v >=0))
{
hp = 0
}

Поэтому при прыжках по вертикально движущейся платформе, когда он застревает в платформе, его хп становится равным 0, игра рестартуется. Я понимаю что наговнокодил, но как сделать иначе - хз.
Скриншот 2018-08-16 15.47.44.png411 Кб, 1600x900
507 522924
>>522904

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

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

Это раз.

Два. Про платформы.

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

Про врезание в потолок.

Во ты нахуевертил. Place meeting это во-первых ресурсозатратная функция, во-вторых в её работе есть много нюансов. Использовать её следует только в самых простых случаях.

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

Например как делаю я:

У меня есть функция "gridcol_line", которая проверяет: если провести линию из точки А в точку Б, будет ли коллизия на этой линии.

Чтобы понять, есть ли земля под ногами, мне достаточно сделать

var ground_check = gridcol_line(x-width/2,y+height/2+1,x_width/2,y+height/2+1)

На самом деле для этого у меня просто функция ground_check() и использую я её типа "if !ground_check() , это я тебе для примера расписал.

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

мои скорости vx и vy
Если в точке x+vx и y+vy place_meeting даёт false - перемещаюсь в точку x+vx и y+vy
Иначе начинаю перемещаться по одному пикселю по x пока не встречу препятствие, затем по одному пикселю по y.

Вообще корень зла у тебя, видимо, в коде перемещения (А он у тебя есть вообще? Ты походу vspeed hspeed используешь - а это тоже искаропки). Гугли на ютубе game maker pixel perfect movement. И одновременно изучай вот это невероятно полезный туториал : https://forum.yoyogames.com/index.php?threads/on-slopes-and-grids-subpixel-perfect-topdown-movement-and-collision-line-without-objects.4073/

В первую очередь ты должен научиться делать ТОЧНЫЕ до пикселя коллизии и перемещения.
А ты в курсе, что если у тебя препятствие с координатами левой стороны 0 и правой стороны 10, а твой игрок это. например, точка размером 1*1 пиксель, то для твоего игрока

var check_left = place_meeting(0,0, obj_collision) даст true
а
var check_right = place_meeting(10,0, obj_collision) даст false

и то же самое с низом и верхом.
Скриншот 2018-08-16 15.47.44.png411 Кб, 1600x900
507 522924
>>522904

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

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

Это раз.

Два. Про платформы.

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

Про врезание в потолок.

Во ты нахуевертил. Place meeting это во-первых ресурсозатратная функция, во-вторых в её работе есть много нюансов. Использовать её следует только в самых простых случаях.

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

Например как делаю я:

У меня есть функция "gridcol_line", которая проверяет: если провести линию из точки А в точку Б, будет ли коллизия на этой линии.

Чтобы понять, есть ли земля под ногами, мне достаточно сделать

var ground_check = gridcol_line(x-width/2,y+height/2+1,x_width/2,y+height/2+1)

На самом деле для этого у меня просто функция ground_check() и использую я её типа "if !ground_check() , это я тебе для примера расписал.

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

мои скорости vx и vy
Если в точке x+vx и y+vy place_meeting даёт false - перемещаюсь в точку x+vx и y+vy
Иначе начинаю перемещаться по одному пикселю по x пока не встречу препятствие, затем по одному пикселю по y.

Вообще корень зла у тебя, видимо, в коде перемещения (А он у тебя есть вообще? Ты походу vspeed hspeed используешь - а это тоже искаропки). Гугли на ютубе game maker pixel perfect movement. И одновременно изучай вот это невероятно полезный туториал : https://forum.yoyogames.com/index.php?threads/on-slopes-and-grids-subpixel-perfect-topdown-movement-and-collision-line-without-objects.4073/

В первую очередь ты должен научиться делать ТОЧНЫЕ до пикселя коллизии и перемещения.
А ты в курсе, что если у тебя препятствие с координатами левой стороны 0 и правой стороны 10, а твой игрок это. например, точка размером 1*1 пиксель, то для твоего игрока

var check_left = place_meeting(0,0, obj_collision) даст true
а
var check_right = place_meeting(10,0, obj_collision) даст false

и то же самое с низом и верхом.
508 522925
>>522924
Это мой первый проект, я стараюсь чето учить + использовать это.

Про алармы не совсем понял - я читал документацию и кажется понимаю. Там же все подвязано на скорости комнаты, утрировано.

Про гайды спасибо, обмажусь.

Еще вопрос, чем плох vspeed hspeed?
509 522928
>>522925

>Про алармы не совсем понял - я читал документацию и кажется понимаю.


Тогда скажи, в какой момент тикает таймер аларма? Что произойдёт раньше, room_end event или тик аларма? Или аларм тикает в начале фрейма а не в конце? Я вот, например, не в курсе. Если погуглить, то наверняка найду. Но в любом случае, таймер, который тикает вне твоего кода - это очень, очень плохо. Может привести к тяжёлым последствиям.

>Еще вопрос, чем плох vspeed hspeed?



То же самое. Когда происходит это перемещение? Твои платформы тоже перемещаются при помощи vspeed hspeed? Значит ты не контролируешь того момента, когда перемещается игрок, а когда платформа.

Допустим платформа создана раньше игрока. Тогда, возможно, сначала гамак будет двигать платформу, а потом игрока.

Тогда, если игрок стоит на платформе, которая едет вверх что будет?
Платформе же пофигу на коллизии с игроком? Она просто двинется вверх.

Потом начнёт своё движение игрок. А у него вертикальная скорость меньше, чем у платформы или нулевая. И он окажется внутри платформы.

Потом будет степ ивент. Если платформа создана раньше, и именно платформа перемещает игрока, то она его передвинет куда надо и игрок ничего не заметит.

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

Это раз.

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

Приведу пример из моей практики - когда я делал лазерный прицел, который мог светить под произвольным углом и должен был прерываться на препятствиях, я заметил, что в некоторых редких случаях луч начинает светить сквозь препятствие. Разбирался долго пока не открыл для себя, что есть такая штука, как точность вычислений. И если сравнивать float который должен быть 0 с настоёщим int 0, то float 0 может оказаться больше или меньше, а может быть и равен. Поэтому иногда коллизия просто не засчитывалась.

Поэтому всегда лучше использовать для координат int.
509 522928
>>522925

>Про алармы не совсем понял - я читал документацию и кажется понимаю.


Тогда скажи, в какой момент тикает таймер аларма? Что произойдёт раньше, room_end event или тик аларма? Или аларм тикает в начале фрейма а не в конце? Я вот, например, не в курсе. Если погуглить, то наверняка найду. Но в любом случае, таймер, который тикает вне твоего кода - это очень, очень плохо. Может привести к тяжёлым последствиям.

>Еще вопрос, чем плох vspeed hspeed?



То же самое. Когда происходит это перемещение? Твои платформы тоже перемещаются при помощи vspeed hspeed? Значит ты не контролируешь того момента, когда перемещается игрок, а когда платформа.

Допустим платформа создана раньше игрока. Тогда, возможно, сначала гамак будет двигать платформу, а потом игрока.

Тогда, если игрок стоит на платформе, которая едет вверх что будет?
Платформе же пофигу на коллизии с игроком? Она просто двинется вверх.

Потом начнёт своё движение игрок. А у него вертикальная скорость меньше, чем у платформы или нулевая. И он окажется внутри платформы.

Потом будет степ ивент. Если платформа создана раньше, и именно платформа перемещает игрока, то она его передвинет куда надо и игрок ничего не заметит.

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

Это раз.

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

Приведу пример из моей практики - когда я делал лазерный прицел, который мог светить под произвольным углом и должен был прерываться на препятствиях, я заметил, что в некоторых редких случаях луч начинает светить сквозь препятствие. Разбирался долго пока не открыл для себя, что есть такая штука, как точность вычислений. И если сравнивать float который должен быть 0 с настоёщим int 0, то float 0 может оказаться больше или меньше, а может быть и равен. Поэтому иногда коллизия просто не засчитывалась.

Поэтому всегда лучше использовать для координат int.
510 522930
>>522928
Не подумал о проблеме с этой стороны, спасибо, так стало в разы понятнее.

Пойду думать как переписать все это дерьмо, чтобы работало в одной вселенной.
1.webm4,9 Мб, webm,
1024x768, 0:11
511 522931
А вот, например, что бывает, если платформа передаёт игроку ускорение. Платформа создана позже игрока и её код выполняется позже.

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

Проблема решилась переносом кода платформы в begin step event
512 522953
>>522924

>Place meeting это во-первых ресурсозатратная функция


С чего это проверка пересечения прямоугольников стало ресурсозатратным?
513 522955
>>522953
С того, что во-первых это далеко не всегда пересечение прямоугольников. Гамак поддерживает precise per frame collisions.
А во-вторых объектов коллизий может быть много, а проверка коллизий может происходить много раз за фрейм.

Коллизии это то, что стоит держать в узде.
514 522961
>>522955
А твоя gridcol_line как работает, проверяет пересечение линии только с тайлами? А с движущимися объектами как проверяешь столкновения, если не place_meeting?
515 522986
>>522961
Моя движущаяся платформа это совершенно отдельный от коллизий объект.

Моя игра не плаформер и движущиеся платформы и препятствия не являются в ней основой геймплея. Поэтому я сделал принципиально другую механику.

Если в комнате есть плаформа, в скрипте ground_check() включается дополнительная проверка, которая работает только при движении вниз. Она проверяет две точки в основании ног игрока на столкновение с плаформой.

if(instance_exists(obj_platform) && (position_meeting(x-sprite_width/2,y+sprite_height/2,obj_platform) || position_meeting(x+sprite_width/2-1,y+sprite_height/2,obj_platform)))
{
return 1;
}

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

Сама платформа перемещается в begin step. Если на платформе горит флаг "на мне игрок". то она передаёт игроку на сколько пикселей она переместилась по горизонтали и вертикали в начале шага.

В свою очередь игрок в середине шага, обладая знаниями о том, на сколько пикселей переместилась платформа под ним при помощи скрипта gridcol_move перемещает себя на столько же пикселей. И только после этого при помощи того же скрипта gridcol_move перемещает себя в соответствии со своими скоростями vx и vy.

>>522685
Я очень долго ломал над этим голову, аноне.

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

Соответственно у мониторов с большим разрешением видно большее пространство игрового поля. Поэтому даже на Ultra wide пониторе смотрится отлично.

На мониторах с разрешением меньше 720р в мою игру уже будет нипаиграть. Можно для них сделать костыль, чтобы убрать увеличение пикселя в 2 раза. Но зачем? Разве остались в мире ещё такие мониторы?

Чтобы было понятней вот:
https://2ch.hk/gd/res/476891.html#496629 (М)
Здесь меню в 1080р и в 720р.

Вот инитиализация моей камеры в room_start ивенте

global.camera = camera_create();

width = round(display_get_width()/2);
height = round(display_get_height()/2);

var view_matrix = matrix_build_lookat(x,y,-10,x,y,0,0,1,0);
var projection_matrix = matrix_build_projection_ortho(width,height,0,10000);
view_camera[0] = global.camera;
view_hport[0] = height;
view_wport[0] = width;

camera_set_view_mat(global.camera,view_matrix);
camera_set_proj_mat(global.camera,projection_matrix);

//Enable the use of views
view_enabled = true;
//Make view 0 visible
view_set_visible(0,true);
//Resize and center
//we are fullscreen
surface_resize(application_surface,view_wport[0],view_hport[0]);

if (follow != noone)
{
x_to = follow.x;
y_to = follow.y;
}

x = x_to;
y = y_to;

border_x = view_wport[0]/2;
border_y = view_hport[0]/2;
515 522986
>>522961
Моя движущаяся платформа это совершенно отдельный от коллизий объект.

Моя игра не плаформер и движущиеся платформы и препятствия не являются в ней основой геймплея. Поэтому я сделал принципиально другую механику.

Если в комнате есть плаформа, в скрипте ground_check() включается дополнительная проверка, которая работает только при движении вниз. Она проверяет две точки в основании ног игрока на столкновение с плаформой.

if(instance_exists(obj_platform) && (position_meeting(x-sprite_width/2,y+sprite_height/2,obj_platform) || position_meeting(x+sprite_width/2-1,y+sprite_height/2,obj_platform)))
{
return 1;
}

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

Сама платформа перемещается в begin step. Если на платформе горит флаг "на мне игрок". то она передаёт игроку на сколько пикселей она переместилась по горизонтали и вертикали в начале шага.

В свою очередь игрок в середине шага, обладая знаниями о том, на сколько пикселей переместилась платформа под ним при помощи скрипта gridcol_move перемещает себя на столько же пикселей. И только после этого при помощи того же скрипта gridcol_move перемещает себя в соответствии со своими скоростями vx и vy.

>>522685
Я очень долго ломал над этим голову, аноне.

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

Соответственно у мониторов с большим разрешением видно большее пространство игрового поля. Поэтому даже на Ultra wide пониторе смотрится отлично.

На мониторах с разрешением меньше 720р в мою игру уже будет нипаиграть. Можно для них сделать костыль, чтобы убрать увеличение пикселя в 2 раза. Но зачем? Разве остались в мире ещё такие мониторы?

Чтобы было понятней вот:
https://2ch.hk/gd/res/476891.html#496629 (М)
Здесь меню в 1080р и в 720р.

Вот инитиализация моей камеры в room_start ивенте

global.camera = camera_create();

width = round(display_get_width()/2);
height = round(display_get_height()/2);

var view_matrix = matrix_build_lookat(x,y,-10,x,y,0,0,1,0);
var projection_matrix = matrix_build_projection_ortho(width,height,0,10000);
view_camera[0] = global.camera;
view_hport[0] = height;
view_wport[0] = width;

camera_set_view_mat(global.camera,view_matrix);
camera_set_proj_mat(global.camera,projection_matrix);

//Enable the use of views
view_enabled = true;
//Make view 0 visible
view_set_visible(0,true);
//Resize and center
//we are fullscreen
surface_resize(application_surface,view_wport[0],view_hport[0]);

if (follow != noone)
{
x_to = follow.x;
y_to = follow.y;
}

x = x_to;
y = y_to;

border_x = view_wport[0]/2;
border_y = view_hport[0]/2;
516 522987
>>522986
Что-то пошло не так. Вот правильная ссылка на пост.
https://2ch.hk/gd/res/476891.html#499433 (М)
517 523250
При попытке загрузить на андроид вылетает такая ошибка:
FAILURE: Build failed with an exception.

* What went wrong:
Could not determine java version from '10.0.2'.

ЧЯДНТ?
SDK и NDK в порядке, версия GM 1.4
игра улица.png10 Кб, 357x223
518 523428
Что-то пиксельарт тред глубоко внизу, поэтому спрошу тут: аноны, как импортировать пиксели из паинта в игру? Я в первый раз участвую в разработке игоря чукча не Кирилл, чукча хуйдожник, и не знаю об этом ничего, объясните подробно, плиз, как дауненку.

Еще есть такой вопрос - в паинте я рисую пиксели обычного размера, т.е. рисунок получается очень маленьким, если не приближать его. Вопрос такой - можно ли его будет потом четко, без размытия увеличить для игры? Или лучше сразу делать в нужном размере? Или это вообще не так происходит?
519 523431
>>523428

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



Нажимаешь alt+s для создания спрайта.
Там увидишь кнопочку импорт, жамкаешь на неё и импортируешь.

Хочешь перетащить спрайт в комнату? Создай в комнате assets layer и таскай спрайты мышкой из ресурсов в комнату на этот слой.

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


Можно. Для этого тебе придётся научиться работать с камерой.

>Или лучше сразу делать в нужном размере?


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

Зато всега присутствует скейлинг всего. Насколько я понимаю скейлить менее затратно, чем рисовать сурфейс во весь экран.
520 523452
>>523428
Пиксельные спрайты отлично масштабируются в графических редакторах. Выбираешь изменение размеров без сглаживания и всё.

Это нужно делать именно в редакторе, чтобы движок не тратил ресурсы на лишнее масштабирование, хотя зависит от того как много текстур ты собираешься использовать, если минимализм, то большой просадки не будет, но если куча объектов на сцене, то тормоза гарантированы, хотя они будут и без текстур, так как сегодня тонкое горлышко всех игроделов это слабые процессоры, которые почти перестали увеличивать производительность где-то с 2013 года.
игра комната.png6 Кб, 221x223
521 523477
>>523452
>>523431
Спасибо, аноны.
522 523480
>>523452
Так не надо масштабировать каждый спрайт движком, это действительно затормозит игру.

Достаточно растянуть финальный сурфейс на весь экран подкрутив настройки камеры.

Собственно сами jojo games в своих туториалах рекомендуют растягивать сурфейсы вместо создания сразу больших сурфейсов. Это экономичнее.
523 523481
>>523428
В первую очередь, убери нахуй пейнт и возьми редакторы нормального человека по типу aseprite или pro motion ng (первый очень простой и интуитивный и в целом покрывает все нужды в пикселях, второй более профессионален и поначалу ты будешь в нем плавать, но зато потом ты сэкономишь себе тучу времени)
524 523506
>>523480
Разница будет только в занимаемом месте на диске, при этом памяти будет сжирать всё равно столько же, но минус твоего способа в том, что если это java или c# машина или браузер, то предложенный тобой способ хуже так как сборщик очистит кэш и после снова придётся подгружать изображение и проводить масштабирование, тогда как в случае с заранее отрисованными текстурами просто будет подгрузка в кэш без лишних действий.

Разница заметна на слабых мобильных устройствах, где использование масштабирования считается крайне плохим тоном и практически нигде не используется, по крайней мере в 2D играх.
525 524150
Не тоже самое что и двойка, в двойке кроме ide очень много исправлений компилятора, стандартных функций и даже теперь визуальные кнопки превращаются отныне в годный код.
Казалось бы косметика, но изменений больше чем кажется.
526 524151
Забыл также упомянуть что html5 экспортером занимается теперь хороший человек наш соотечественник. Погуглите блог yellowafterlife он фактически герой гм*/гмс/гмс2
ktoprocheltot-loh.PNG14 Кб, 1247x181
527 524441
Добрый день, господа!

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

Т.к. выпускать с пиратской версии не особо то законно (скорее всего), но покупать за 20 с лихуем лицензию для того, чтобы получиться возможность заработать на детище - бред.
Есть ли законные (или может даже не очень) выходы из этой ситуации
528 524467
>>524441

>но покупать за 20 с лихуем лицензию для того, чтобы получиться возможность заработать на детище - бред.


Действительно, такая бредятина - вкладывать средства в свой бизнес, кто этим вообще занимается?
529 524468
>>524441
Да, есть. Нужно брать бесплатные проги, если ты нищебродина и боишься сгухи. Есть годот и юнити, а ты сука сухари суши, или денюжку плоти.
530 524483
Или можешь посмотреть стоимость лицухи в стиме, и вроде как я слышал что на гоге бывают распродажи с низким прайсом на лицухи.
531 524580
>>524467
Давай начнем с того, что бизнеса как такового (именно в гамак-геййдеве) быть и не может без покупки лицензии (исключая обходные пути)
Я и не говорил о том, что вкладывать деньги в бизнес - это бред.

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

>>524468

>>Нужно брать бесплатные проги, если ты нищебродина



Вот тут ты и обосрался молодой человек. Твои слова как-раз таки и выдают в тебе нищука, который сразу потратит свои сбережения на иллюзорный вклад в будущее, который еще не факт что хоть как-то окупиться, и как я написал выше проверить это ты увы не сможешь.
532 524581
>>524580

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


Какой вклад, ослина, я на бесплатных прогах сижу.
533 524584
>>524441
Пока будешь делать игру, как раз отложишь со школьных обедов нужную сумму.

>>524581
Успешный господин в треде.
534 524589
>>524584

>> со школьных обедов нужную сумму



ипотечную ставку понизил уже?
535 524642
Есть тут шейдероебы? Нужно зделоть искривление картинки на мониторе, к примеру, какой-нибудь банальный фишай, чтобы я просто смог понять принцип этого дерьма и сделать, что хотел. Из вариантов пока придумал только ставить какой-то 3д объект и смотреть через него преломление.
536 524795
>>524642
Похоже что таких нет. Была какая-то софтина в которой можно было лепить примитивные шейдеры для гамака, но есть подозрение что фишай там не сделоть.
537 524796
>>524795
Я такие вопросы в glsl треде задавал, мне отвечали.

Сам я только самые примитивные шейдеры умею делать.
538 524797
>>524796
Тьфу. в Opengl треде.
539 524844
Пустота в тайле считывается при коллизиях или считывается только непустота?
540 524856
>>524844
Пустота в тайле это 0.
541 524866
>>524856
То есть похуй, что эта пустота в границе тайла?
542 524912
>>524866
Ты вопрос задай как следует, тогда и получишь нормальный ответ.

Если ты не ставишь тайл в клетку, то tilemap_get(tilemap_id,cx,cy) в этой клетке вернёт 0.

Если ты сканируешь tilemap_get_at_pixel() то если у тебя размер тайла 16, то например tilemap_get_at_pixel(tilemap_id,0,0) вернёт значение первого тайла, а tilemap_get_at_pixel(tilemap_id,16,0) уже значение второго.
543 525624
Господа, столкнулся с проблемой.

Дано два состояния объекта - скольжение и бег.
Для бега коллизии считываются по отдельно заданному спрайту.
Я решил сделать отдельную маску для скольжения (потому как при выполнении анимации объект становится меньше по вертикали) и тут возникло несколько проблем. Я пробовал mask index и object set mask.

mask index делает все как нужно с точки зрения столкновений, но при этом объект начинает проваливаться в твердые объекты при выполнении анимации скольжения.

Обернуто это вот так:
есть скрипт где задана переменная отвечающая за нажатие клавиши

в степе объекта

if (kSlide ) //&& onGround ) - закоментил переменную чекающую коллизии с твердым объектом, для теста, иначе анимация проигрывается 2 раза с разрывом, это тоже проблема.
{

h=maxH;
hp -= 1 / room_speed
state = SLIDE

if (colRight) colRight - это переменная чекающая коллизия справа
{
oPlayer_t.hp = 0
}

}


ниже в стейт машине, тоже в степе:

switch (state) {
// тут перечисление всех состояний - бег, айдл

case SLIDE:
image_speed = 1.0
mask_index = sPlayerMaskSlide

if kSlideRelease это отпущенная клавиша скольжения
{
mask_index= sPlayerMaskSlide
}

sprite_index = sPlayerSlide
break


Куда стоит копать для решения проблемы? Есть идеи?
543 525624
Господа, столкнулся с проблемой.

Дано два состояния объекта - скольжение и бег.
Для бега коллизии считываются по отдельно заданному спрайту.
Я решил сделать отдельную маску для скольжения (потому как при выполнении анимации объект становится меньше по вертикали) и тут возникло несколько проблем. Я пробовал mask index и object set mask.

mask index делает все как нужно с точки зрения столкновений, но при этом объект начинает проваливаться в твердые объекты при выполнении анимации скольжения.

Обернуто это вот так:
есть скрипт где задана переменная отвечающая за нажатие клавиши

в степе объекта

if (kSlide ) //&& onGround ) - закоментил переменную чекающую коллизии с твердым объектом, для теста, иначе анимация проигрывается 2 раза с разрывом, это тоже проблема.
{

h=maxH;
hp -= 1 / room_speed
state = SLIDE

if (colRight) colRight - это переменная чекающая коллизия справа
{
oPlayer_t.hp = 0
}

}


ниже в стейт машине, тоже в степе:

switch (state) {
// тут перечисление всех состояний - бег, айдл

case SLIDE:
image_speed = 1.0
mask_index = sPlayerMaskSlide

if kSlideRelease это отпущенная клавиша скольжения
{
mask_index= sPlayerMaskSlide
}

sprite_index = sPlayerSlide
break


Куда стоит копать для решения проблемы? Есть идеи?
544 525652
>>525624

Честно пытался помочь тебе, и даже понял примерно что и для чего тебе это нужно.

Даже есть несколько предположений, в первую очередь связанных с тем, что у тебя центровка спрайтов разная. Ещё я бы обратил внимание на то, что ты СНАЧАЛА меняешь маску, а ПОТОМ меняешь спрайт.

mask_index= sPlayerMaskSlide

sprite_index = sPlayerSlide

Должно быть наоборот.
545 525656
>>525652
О предложенных решениях уже думал, но они не решают проблему, хех. Буду дальше ковырять.

Нужно это для того чтобы успешно проезжать под препятствиями.
546 525661
>>525656
А чего думать? Напиши дебагескую тулзу, которая будет рисовать тебе маску спрайта каждый шаг и смотри что происходит по шаг за шагом.
runprblm.jpg23 Кб, 958x481
547 525672
>>525661
Так и сделал. Это помогло понять и пофиксить некоторые мелочи, и основную проблему я решаю костылем - поставил у второй маски центр по верхнему краю и добавил мини прыжок после после перехода из состояния скольжения в бег - по какой-то причине маска застревает после этого перехода. Показал на картинке.
548 525681
>>525672
А теперь я бы порекомендовал тебе всё же разобраться, в какой момент твой персонаж съезжает на пиксель вниз и пофиксить это.

Коллизии - это основа основ и это очень просто. Костыли в коллизиях повлекут за собой непредвиденные проблемы, когда ты будешь добавлять разнообразные механики.
549 525769
Выйдет ли че-то хорошее из пиздинга разных нужных кусков кода и объединения всех их в эдакого франкенштейна для создания игры?
550 525771
>>524441
Купи через стим, там гораааздо дешевле
551 525806
>>525769
скорее нет чем да.
552 525807
>>525681
Так и сделал тащемта.
553 526082
>>439561 (OP)
УРА НАКОНЕЦ-ТО ВЫПУСТИЛИ КРЯК БЕЗ ПОДКЛЮЧЕНИЯ К ИНТЕРНЕТУ
ТЕПЕРЬ БЕЗ ПЕРДОЛЛИНГА ПРИ КАЖДОМ ЗАПУСКЕ
554 526136
Ребята, подскажите, будет ли тут просто собрать 2Д симулятор ходьбы с парочкой мини-игр?

Нужно:
1. Несколько ветвлений сценария.
2. Мини-игра «затарься в супермаркете». Ходишь по магазу, собираешь дешевую продуктовую корзину, от ее содержимого зависят некоторые ветвления «сюжета».
3. Ходьба, поездки на метро/ автобусе, диалоги.
4. Чтобы он смог выдержать толпу идущих прохожих без лагов. Ну, штук 20 хотя бы

И каков гамак в сравнении с юнити?
555 526158
>>526136
Не знаю что ты имеешь ввиду под "собирать", но то что ты описал сделать весьма просто.

Лаги зависят в основном не от движка а от того, как ты всё реализуешь. Можно и один объект написать так, что игра не запустится, можно и 1000 обхектов двигать без всяких лагов.

Гамак гораздо проще юнити и заточен под 2д. Юнити сложнее, мощнее, в нём больше ассетов и специализован на 3д.
556 526190
>>526158
Короче, я глянул туториалы и решил, что гамак мне идеально подходит.

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

Кстати. У вас нет своей ламповой конфочки в телеге?
557 526193
>>526190

>Кстати. У вас нет своей ламповой конфочки в телеге?


Не стоит вскрывать эту тему.
558 526197
Что-то подтупливаю над элементарной задачей.
При погибании персонажа, комната перезагружается, соответственно перезагружаются и враги, и игрок и все остальное. А как сделать, чтоб, например, уже собранные бонусы не перезагружались, чтобы игрок раз за разом халявные патроны не находил, например? Или без перезагрузки комнаты придется пердолиться с каждым отдельным врагом?
559 526198
>>526197
Глобальные переменные?
560 526199
>>526198
Вот не знаю, как через них сделать. Потому что, например, лежат на уровне две идентичных коробки с говном (один и тот же объект), одну игрок подобрал, вторую — нет. глобальная переменная же не различит, какую коробку он взял.
561 526200
>>526199
Идентификаторы для кого придумали?
562 526202
>>526199
Я делаю следующим образом:

У меня есть obj_game
permanent объект, в котором хранится самая важная информация.

В нём я создал ds_grid со списком всех вещей, которые есть в игре.

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

Все коробки в игре одинаковы. различаются только дополнительным room_create_event, который идёт после create_event объекта. кликни на предмет в комнате два раза и выбери create_event - это оно.

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

В step event коробки я пишу.

if !init
{
init = true;
if ds_grid_game(obj_game.items, item, уникальная) == true
{
if ds_grid_game(obj_game.items, item, игрок уже подобрал меня) == false exit
else
{
instance_destroy();
exit;
}
}
}

Таким образом коробка самоуничтожается, если в ней уникальный предмет, который игрок уже подобрал.
562 526202
>>526199
Я делаю следующим образом:

У меня есть obj_game
permanent объект, в котором хранится самая важная информация.

В нём я создал ds_grid со списком всех вещей, которые есть в игре.

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

Все коробки в игре одинаковы. различаются только дополнительным room_create_event, который идёт после create_event объекта. кликни на предмет в комнате два раза и выбери create_event - это оно.

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

В step event коробки я пишу.

if !init
{
init = true;
if ds_grid_game(obj_game.items, item, уникальная) == true
{
if ds_grid_game(obj_game.items, item, игрок уже подобрал меня) == false exit
else
{
instance_destroy();
exit;
}
}
}

Таким образом коробка самоуничтожается, если в ней уникальный предмет, который игрок уже подобрал.
563 526256
Господи, как тут все удобно-то. Юнити действительно под 2Д плохо катит. Я балдею от гейммейкера.

пускает слюни
564 526273
>>526256

>Юнити действительно под 2Д плохо катит


Потамушта пиксельные игры это прошлый век и нахуй они нужны когда есть ахуенный графон почти как в жизни вон посмотри на нового асасина
565 526380
Почему если я юзаю room_restart объекты, в ходе взаимодействия с которыми я вписал instance_destroy() не восстанавливаются?

Простой пример - есть объект игрока, есть аптека. В скрипте отвечающим за смерть есть room_restart и после смерти игрока комната перезагружается но аптек нет. В гамаке так и задумано? Как это обойти? Записывать айди всех аптек в комнате и ресать их? Или например сделать видимость 0 после того как их взяли? Вернуться к ним у игрока в рамках комнаты возможности не будет.
566 526381
>>526380
Проверь, не перманентные ли у тебя объекты не восстанавливаются.
567 526382
>>526381
Речь про Persistent? Нет, они не пермаментные.
568 526383
А, кажется понял. У меня руум рестарт не фунциклирует.
569 526385
>>526382
Я, честно говоря, не пользовался никогда room_restart
В мануале написано, что работает так, как будто ты только что зашёл в комнату.
Т.е. должны создаваться все не persistent объекты по новой, выполняться все create events и room create events.

А сама комната не persistent?
570 526386
>>526385
Да, она была persistent, помогло, спасибо.
571 526405
Поясните мне за два вопроса. Я правильно понимаю, что КАМЕРА рисует на ВЬЮ ПОРТЕ? И зачем нужно несколько вью портов/ камер? Чтобы, допустим, держать в одной комнате несколько мини-комнат и переключаться между ними, используя разные вью порты?
572 526422
>>526405
Ну, например, чтобы сплит скрин сделать.

Один анон в ньюфаготреде сделал миникарту, повесив вторую камеру, которая показывала полностью всю комнату в уменьшенном виде. Но я не рекомендую такой способ.
573 526423
>>526405
И камера ничего не рисует. Она показывает.
574 526424
>>526423
Отрисовка в гамаке по умолчанию происходит на application_surface

https://docs.yoyogames.com/source/dadiospice/002_reference/surfaces/the application surface.html
Runner 2018-05-18 17-45-15-839.mp46,8 Мб, mp4,
1600x900, 0:21
575 526427
>>526424
Вот как я задаю камеру в своей игре:

Создаётся камера, определяются view и projection матрицы.
global.camera = camera_create();

width = round(display_get_width()/2);
height = round(display_get_height()/2);

var view_matrix = matrix_build_lookat(x,y,-10,x,y,0,0,1,0);
var projection_matrix = matrix_build_projection_ortho(width,height,0,10000);

Задётся, что view_camera[0] транслируются в созданную мной камеру
view_camera[0] = global.camera;
Его размеры подгоняются под размеры projection матрицы камеры.
view_hport[0] = height;
view_wport[0] = width;

Затем устанавливаем view и projection матрицы в камеру
camera_set_view_mat(global.camera,view_matrix);
camera_set_proj_mat(global.camera,projection_matrix);

Включаем view
//Enable the use of views
view_enabled = true;
//Make view 0 visible
view_set_visible(0,true);

А потом подгоняем размеры application surface под размеры view 0
surface_resize(application_surface,view_wport[0],view_hport[0]);

Ты можешь заметить, что размеры этого view у меня 1/2 от размеров дисплея. А выводится он на весь экран. Таким образом получаем пиксель с зумом х2.

В webm мы можешь увидеть, как я копирую aplication surface на отдельный surface, снимая скриншот, потом рисую интерфейс и рисую этот скриншот в нужном мне месте с нужным мне скейлом.
Runner 2018-05-18 17-45-15-839.mp46,8 Мб, mp4,
1600x900, 0:21
575 526427
>>526424
Вот как я задаю камеру в своей игре:

Создаётся камера, определяются view и projection матрицы.
global.camera = camera_create();

width = round(display_get_width()/2);
height = round(display_get_height()/2);

var view_matrix = matrix_build_lookat(x,y,-10,x,y,0,0,1,0);
var projection_matrix = matrix_build_projection_ortho(width,height,0,10000);

Задётся, что view_camera[0] транслируются в созданную мной камеру
view_camera[0] = global.camera;
Его размеры подгоняются под размеры projection матрицы камеры.
view_hport[0] = height;
view_wport[0] = width;

Затем устанавливаем view и projection матрицы в камеру
camera_set_view_mat(global.camera,view_matrix);
camera_set_proj_mat(global.camera,projection_matrix);

Включаем view
//Enable the use of views
view_enabled = true;
//Make view 0 visible
view_set_visible(0,true);

А потом подгоняем размеры application surface под размеры view 0
surface_resize(application_surface,view_wport[0],view_hport[0]);

Ты можешь заметить, что размеры этого view у меня 1/2 от размеров дисплея. А выводится он на весь экран. Таким образом получаем пиксель с зумом х2.

В webm мы можешь увидеть, как я копирую aplication surface на отдельный surface, снимая скриншот, потом рисую интерфейс и рисую этот скриншот в нужном мне месте с нужным мне скейлом.
576 526428
>>439561 (OP)
Так, вопросик. Планирую вкатиться в ГМ. Помимо встроенного языка GML можно использовать какие-либо языки программирования? Или онли GML?
577 526429
>>526428
GLSL еще есть для шейдеров
578 526431
>>526427
Но в принципе ты мог бы использовать для того же эффекта несколько view, нарисовав интерфейс в одном месте и выводя его на экран, сначала камеру, которая смотрит на интерфейс, а потом камеру. которая смотрит на уровень. Изменяя вторую камеру ты мог бы добиться того же самого.
579 526432
>>526429
Благодарю
580 526436
>>526432
Тэкс, посмотрел синтаксис, очень похоже на js с различными костылями.
581 526439
Что скажете за гибкость DnD?
582 526458
>>526439
Лучше кодь сразу. Потом себе спасибо скажешь.
583 526459
>>526458
Я уже глянул на тот пиздец с DnD. Да, проще кодить.
584 526631
>>439561 (OP)
The ​depth​​property is necessary. This property can be any real integer value. It controls
which objects are drawn in front of other objects. Lower values are brought to the front
and higher values are pushed to the back. If you have a tree object that you want to be
in the background (behind the player), you might give it a depth value of ­5 and your
player a depth value of ­10. This would draw the player object in front of the tree object
because ­10 is lower​than ­5

Хуита какая-то. В том же вебе слои движутся в сторону пользователя, т.е. Если персонажу задать depth z-index 10, а дереву depth 5, то на переднем плане будет персонаж. А тут наоборот.
585 526632
>>526631
А, ну да, само название depth означает глубину, то есть, насколько глубоко от пользователя находится слой. Мде
586 526633
>>526631
Всё равно ты будешь работать со слоями.
В room_start event записывай id слоёв в переменные а потом работай с ними. Иначе запутаешься.
image.png418 Кб, 631x901
587 526658
588 526669
>>526658
Блять. Я уж обосрался, что на 2 гамак скидка 80%, и меня неплохо наебали со скидкой по факту владения 1 версией.
589 526697
>>526669
А уж как я обосрался купил в воскресенье.
590 526766
>>526658
В чём отличие двойки от 1.4, помимо той хуйни с тайлами и соплеразмазки ресурсов по экрану?
591 526767
>>526658
чет - покупать вторую студию
нечет - перекатываться в юнити
592 526768
>>526767
всего доброго
593 526773
https://www.youtube.com/watch?v=UTyRXdk_Jro
Пиздец, как они такое делают на гамаке?
594 526775
>>526773
Шо тебя смущает? Гамак же 3д поддерживает с палеозоя
595 526776
>>526775
Ну прост я привык в качестве "3д на гамаке" видеть говние уровня бластеркопа. А тут что-то интересное и даже по своему красивое.
596 526780
>>526776
Потому что у тебя, как и у большинства посетителей гдача, неправильное понимание движков: ты считаешь (и наверняка готов это отстаивать), что графон в игре обеспечивает движок. Но нет, графон обеспечивает разработчик, а движок обеспечивает среду для создания игор и более ничего.
Я как-то весной заикнулся об этом, так на меня целая толпа нубья слетелась, с пеной у рта доказывать мне, как я неправ.
Напомню, речь шла о том, что крупная студия при желании может сделать ААА-игру на любом из известных движков. Нубы усирались, доказывая, что нет, ты што, только на топовых движках, тычё!
И ещё.
Это твоё забуждение основано на тех образцах и примерах, что поставляются с движками. Есть ряд движков (не будем конкретизировать), которые поставляются с уёбищными и/или неоптимизированно-тормозящими демками. У людей, далёких от геймдева, складывается впечатление, что это предел возможностей движка. На самом деле демки - это предел творческих возможностей их создателей, не более.
597 526781
>>526780
Ты прав.
598 526783
>>526780
слечусь пожалуй на тебя.

>графон в игре обеспечивает движок


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

>крупная студия при желании может сделать ААА-игру на любом из известных движков


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

>На самом деле демки - это предел творческих возможностей их создателей, не более.


в юнети нет SSS и индирект лайт скаттеринга. точнее есть, но фейковые и от васянов с сопутствующим пакетом всякой вич-инфекции. почему ты считаешь что топовые студии могут обходиться без этих новомодных приблуд?
599 526784
>>526783

>нет костной анимации


https://www.youtube.com/watch?v=C1SCb9ajsXM
600 526785
>>526783

>можно усраться, но даже готику первую на нем не сделать — нет костной анимации


https://www.youtube.com/watch?v=_IC1OnTrkpE
601 526786
>>526784
>>526785
хорошо, вы победили. готику сделать можно.
602 526799
А вот Теккен не сделать!
603 526800
604 526804
>>526799
Да как нехуй!
Но вот лично мне лень ебаться с ебучими фреймами и прочим файтеровским говном)
c02fd66966[1].jpg44 Кб, 714x524
605 526865
>>439561 (OP)
Первый день в гмс, как очистить нахуй вот эту хуйню, оставшуюся от передвижения персонажа? Олсо, ответьте, куда лучше подобную хуйню задавать: в gm тред или помощь ньюфагам? Так как я предполагаю, что ближайшие пару месяцев буду часто хуйню спрашивать.
606 526868
>>526865
Здесь пиши. Я всегда отвечаю на адекватные вопросы. В ньюфаготред почти не хочу.

Твой вопрос не особо адекватен - что за хуйню ты вообще сделал?

Ты рисуешь не на application surface? Тогда делай каждый шаг в begin_draw_event surface_clear_alpha своему сурфейсу.
607 526870
>>526868
Первый день в гм, анон. Я вообще нихуя не знаю.

>application surface


Не ебу, что это. Как понял - отрисовка на отдельном слое

Сделал новую комнату, создал несколько слоев. В одном слое - инстансы объектов, другой - тайлсет.
Белая хренота по центру - персонаж, управляемый пользователем, коллизии обрабатываются таким образом(пикрил 2)
Кроме этого события ничего не писал.
Проблема в том, что при передвижении остаются предыдущие полупрозрачные отрисовки персонажа.

Как я понял, я должен чистить буфер после каждой отрисовки, как ты говоришь. Вот только я не знаю, как это сделать.
608 526871
>>526870
Тогда у тебя просто фона нет, либо он у тебя прозрачный.

Сделай полностью непрозрачный фон.
609 526872
>>526871
Благодарю.

Отсюда вытекает другой вопрос: Получается, все предыдущие draw сохранены и очищения не происходит?
610 526873
>>526872
Когда ты рисует по умолчанию - ты рисуешь на application_surface

По умолчанию она не очищается, так что всё нарисованное остаётся на ней.

Когда ты включаешь фон, то в начале каждого шага на твоём application_surface рисуется фон в режиме gpu_set_blendmode(normal). Если фон непрозрачный, он соответсвенно заменяет собой каждый пиксель твоего application_surface, таким образом происходит его очищение. Потом, поверх этого фона, рисуется всё остальное.
611 526874
>>526873
Спасибо
612 526988
Посоны, я интернет-инвалид, где найти русификатор на гамак?
613 527031
>>526988
Себе же хуже делаешь, запутаешься в меню, сверяя их с английскими эквивалентами. Даже если язык не знаешь, лучше англюсик ставить.
614 527078
>>527074
Вроде пермач
615 527080
>>527074

>перманентная


Постоянная. Как же заебали косить под пиндосов
616 527087
>>527080
Я больше охуеваю, как в геймдеве - области, где все от и до сделано пиндосами, есть люди, которые от них отбрыикваются. Вы блять им ноги целовать должны. Хотя это вообще практически на все ойти распространяется.
617 527089
>>527087

>Вы блять им ноги целовать должны


Не передергивай
618 527090
>>527087

>Вы блять им ноги целовать должны


За то что они спиздили технологии немцев и русских?)) А ты знал что идея интернета сначала в ссср появилась?))

https://youtu.be/R3fw5y9VoQo
619 527095
>>527089
Отвечаю передергиванием на передергивание, если человек такими категориями размышляет, хули нет. Употреблять англицизмы - это закос под клятых пиндосов, ага.
620 527106
>>527090

>спездели!1!11!


Ну да, это такая уникальная разработка, да. То, что совок не смог реализовать интернет для общего доступа это значит, что он и не разработал его вообще. Я тоже могу сделать сотни прототипов уникальной игры, но это не значит, что это законченный продукт.
621 527107
>>527090
Я придумал в своей голове некстген игру и даже знаю как ее реализовать, теперь когда такую игру игру сделают, это значит, что у меня спиздили!!!!!
ебать ты ебнулся
622 527109
>>527106
>>527107
С чего вы взяли что ничего не было реализовано? Прототип наверняка тестировался. Пиндосы просто его спиздили и завербовали правительство СССР, которые свернули свои разработки. Так же и развалили СССР
623 527112
>>527109
Ты реально думаешь, что на такую жирноту кто-то поведется? инбифайв азаза ты же ответил значит повелся
624 527312
Кстати, в маркетлейсе йойо отдают Geon FX с небольшой скидкой
625 527324
>>526873
Новый вопрос. По поводу объектов. Вот, допустим, есть у меня объект персонаж. и есть стена. Я могу эту стену сделать в виде простого тайла читай, нарисовать на отдельном слое, а могу сделать в виде объекта со спрайтом. Как лучше сделать эту стену, чтобы потом обработать коллизии персонажа и стены.

Олсо, насколько я понял, в physics не рекомендуется создание большого количества объектов. Тогда, получается, придется пилить свою физику. Но не будет ли это костыльной хуетой, ведь можно использовать уже готовую физику. Также интересует, какое именно количество объектов в physics является критичным для средней системы.
626 527405
>>527324
Проще всего объектом.
Производительнее - тайлом.

По тайловым коллизиям рекомендую гайд - https://forum.yoyogames.com/index.php?threads/on-slopes-and-grids-subpixel-perfect-topdown-movement-and-collision-line-without-objects.4073/ - если разберёшься - многое поймёшь о коллизиях и перемещениях.

Как там physics работает - вообще без понятия. Гравитацию и соударения я сам сделал. Пользоваться чем-то, что я не знаю как работает и в каком месте поставит мне подножку не было желания изначально.

Сколько объектов потянет? Ну накидай в комнату объектов да посмотри на fps_real.
627 527419
>>527087

> где все от и до сделано пиндосами


Шизик и не лечишься.
Напомнил мне какую-то либерашку или какла верефицированного в твиттере, который на полном серьезе рассуждал о том, что латиница - "пиндосское изобретение".
628 527432
>>527419
хочешь сказать русское?
629 527443
>>527432
И не русское. И не пиндосское. А латинское, как ни удивительно.
630 527496
>>527443
Покажи мне на карте такую страну как Латиния))) только чур не украину)
631 527519
>>527496
Только после того, как ты мне покажешь "швейцарский" язык Швейцарии)) Раз у тебя все страны говорят на одноимённом языке)
632 527520
>>527496
А хотя, вот тебе из гугла:

>Лаций (лат. Latium) — регион в античной Италии, прародина современных романских языков. Здесь же зародились римляне. Его территория в настоящее время входит в состав более крупного административно-территориального образования современной Италии — Лацио.

14761226428300.png81 Кб, 333x112
633 527545
>>527520

>Италия


Ну ясно же, что пендосы проклятые. И кто теперь обосрался, м?
634 527546
Кто о чём, а пидорашки
о покланении хозяину. >>527087
Мочера в тред!
635 527557
>>527545
Пиндосы - греки.
Обосрался - ты (или тот, за кого ты отвечаешь).
636 527562
>>527087

>Вы блять им ноги целовать должны.


А ты целуешь или облизываешь? Про Пентковского и прочих слышал что или в школе не проходили?
637 527581
Покупать?
638 527746
Как рисовать партиклы у движущихся объектов?

Есть объект игрок и в определенном состоянии
должны вызываться эффекты искры.

В общем и целом они вызываются,и так получается что за объектом дорожка из зачаточного состояния эффекта (пучок искр) вместо одного длинного снопа. ЧЯДНТ?

create
//Spark on slide //----------------------------------------//-------------------------------------------//
//Creating Particle Types
//sparks
global.pt_sparks = part_type_create();
part_type_shape(global.pt_sparks, pt_shape_explosion);
part_type_size(global.pt_sparks, 0.50, 1, 0, 0);
part_type_scale(global.pt_sparks, 0.20, 0.03);
part_type_orientation(global.pt_sparks, 157, 189, 0, 0, 0);
part_type_color3(global.pt_sparks, 13828095, 4320254, 3132923);
part_type_alpha3(global.pt_sparks, 1, 0.81, 0.69);
part_type_blend(global.pt_sparks, 0);
part_type_life(global.pt_sparks, 10, 50);
part_type_speed(global.pt_sparks, 2, 5, 0, 0);
part_type_direction(global.pt_sparks, 170, 185, 0, 0);
part_type_gravity(global.pt_sparks, 0.09, 180);

//Creating Emitters
global.pe_sparks = part_emitter_create(SLIDE_PART);

var xp, yp;
xp = x;
yp = y;
//part_emitter_region(SLIDE_PART, global.pe_sparks, xp-2, xp+2, yp-2, yp+2, ps_shape_rectangle, ps_distr_gaussian);
part_emitter_stream(SLIDE_PART, global.pe_sparks, global.pt_sparks, 3);


step

if (проверка нажатия клавиши) //тут пробовал проверять по состоянию нажатия клавиши или "состоянию" объекта
{

part_particles_create(SLIDE_PART,x, y, global.pt_sparks, 1);

if (проверка того что клавиша отжата)

part_particles_clear(SLIDE_PART)
638 527746
Как рисовать партиклы у движущихся объектов?

Есть объект игрок и в определенном состоянии
должны вызываться эффекты искры.

В общем и целом они вызываются,и так получается что за объектом дорожка из зачаточного состояния эффекта (пучок искр) вместо одного длинного снопа. ЧЯДНТ?

create
//Spark on slide //----------------------------------------//-------------------------------------------//
//Creating Particle Types
//sparks
global.pt_sparks = part_type_create();
part_type_shape(global.pt_sparks, pt_shape_explosion);
part_type_size(global.pt_sparks, 0.50, 1, 0, 0);
part_type_scale(global.pt_sparks, 0.20, 0.03);
part_type_orientation(global.pt_sparks, 157, 189, 0, 0, 0);
part_type_color3(global.pt_sparks, 13828095, 4320254, 3132923);
part_type_alpha3(global.pt_sparks, 1, 0.81, 0.69);
part_type_blend(global.pt_sparks, 0);
part_type_life(global.pt_sparks, 10, 50);
part_type_speed(global.pt_sparks, 2, 5, 0, 0);
part_type_direction(global.pt_sparks, 170, 185, 0, 0);
part_type_gravity(global.pt_sparks, 0.09, 180);

//Creating Emitters
global.pe_sparks = part_emitter_create(SLIDE_PART);

var xp, yp;
xp = x;
yp = y;
//part_emitter_region(SLIDE_PART, global.pe_sparks, xp-2, xp+2, yp-2, yp+2, ps_shape_rectangle, ps_distr_gaussian);
part_emitter_stream(SLIDE_PART, global.pe_sparks, global.pt_sparks, 3);


step

if (проверка нажатия клавиши) //тут пробовал проверять по состоянию нажатия клавиши или "состоянию" объекта
{

part_particles_create(SLIDE_PART,x, y, global.pt_sparks, 1);

if (проверка того что клавиша отжата)

part_particles_clear(SLIDE_PART)
639 527747
>>527746

>\t


это артефакт в копировании
640 527792
>>527746
Во-первых опиши что ты хочешь и что у тебя есть. Со скриншотами и рисунками. Я тебе телепат, угадывать что там у тебя в голове?

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

В step event изменяй параметры part_emitter_region
641 527840
>>527792
Ну и вот это в каждом шаге part_particles_clear не даёт твоим партиклам "развиться". Что ты хотел-то?
sparks.gif1,7 Мб, 552x343
642 527917
>>527840
Хотел нечто подобное запилить, типа молнии при скольжении. Вчера как раз emitter_region подвигал и добился вот такого эффекта, но чет есть подозрение что я все равно не так это делаю лол

part_emitter_clear в степе чистит эмитер если объект не в нужном состоянии.
fx.gif360 Кб, 1026x628
644 527925
>>527922

>


>https://marketplace.yoyogames.com/assets/4574/geon-fx-particle-editor



Ты не поверишь, но купил на недавней распродаже

Так то спасибо, хех.
645 527928
Всем привет. Аноны, подскажите, можно ли на гейммэйкере сваять онлайн игру с динамично изменяющейся картой и большим числом игроков на сервере?
646 527931
>>527928
Можно.
647 527937
>>527931
Есть примеры таких игр? Можешь посоветовать какой-нибудь курс уроков по созданию многопользовательской ио игры на гейммейкере?
649 527953
>>527928

> онлайн игру с динамично изменяющейся картой и большим числом игроков на сервере?


Но нахуя?
650 527954
>>527953
Хочу сделать игру, похожую на starve.io
651 527955
>>527953
Под его определение попадают мультиплеерные крестики-нолики с динамично изменяющимся полем.
652 527958
>>527955
Динамично изменяющаяся карта - наверно, таким образом я описал возможность строить и сносить здания, сажать и рубить деревья, вот это всё.
653 527963
>>527958

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


Очередной выживач с 0 онлайна чтоле?
Это можно сделать на чем угодно, но с твоими познаниями максимум что ты сделаешь - нечто, запускающееся только на суперкомпьютерах.
654 527964
>>527963

>Очередной выживач с 0 онлайна чтоле?


Да, типа того.
А почему моя поделка заработает только на суперкомпьютерах? Подобные игры очень требовательны к чистоте коде и вычислительным ресурсам?
655 527967
>>527964

> А почему моя поделка заработает только на суперкомпьютерах?


Потому что тебе нужно будет писать код не только как рубить деревья и перемещать персонажа, а с оглядкой на то, чтобы у тебя весь твой огромный мир работал одновременно и не засорял память лишними вычислениями.
656 529289
Есть у кого проблема с интерфейсом GMS2? Когда приближаешь, кажется, что даже текст растровый, все мылиться, и потом при отдалении это мыло остается. Очень глаз режет, помогите пожалуйста.
657 529562
>>529289
Бамп вопросу, а то потонет.
Upd: настройка dpi ничего не дала
658 529574
>>529289
Да, есть такое. Пофиксить не получится, насколько я знаю. Но в настройках можно задать размер шрифта, если тебя не устраивает дефолтный и тебе приходится сильно приближать окно для работы.
659 529647
>>529574
Да с кодом я решил проблему настройкой его открытия в новом окне. А вот все остальное просто раздражает.
660 529664
Как лучше отрисовать карту - полностью нарисовать всю карту (все дорожки,тропинки,цветочки и прочие статические прелести)в редакторе или разделить все части карты на тайлы и расставить их вручную?
661 529665
>>529664
Когда карту достаёшь из колоду, на ней уже всё нарисовано.
Учись правильно задавать вопросы.
662 529668
>>529664
Удобнее работать с тайтлами. Появляется возможность нормального переиспользования, если карта большая - лучше оптимизация
663 529688
>>529562

>gd


>потонет


)))
664 530552
Внимание! Не рекомендую ставить сегодняшний апдейт GMS2

Там пиздец какие баги.
665 532691
Ёбаный-карёбаный, вы ещё не сдохли?
666 532768
667 533080
>>439561 (OP)
Ананас, хочу вкатиться в GMS ибо самому с нуля каждый раз писать дико удручает и выматывает, а тут будет как мне кажется несколько проще.
С чего начать? Опыта в программировании достаточно.
668 533081
>>533080

>Опыта в программировании достаточно.



Тогда с диздока.
669 533082
>>533081
Если ты про "изучить интерфейс" и "как создавать объекты и размещать их в комнате" то начинай с
https://www.youtube.com/channel/UCn7FE3Tx391g1tWPv-1tv7Q
670 533083
>>533081
Нихера себе.
671 533545
Как рисовать партиклы на экране, чтобы они были в статике? Я так понимаю все партиклы рисуются от объекта, но если объект двигается то эффект от них размывается по поверхности. Надо их как-то от вида рисовать или че?

Допустим у меня есть гуи с хп, и я заебенил клевый эффект мерцания при определенных обстоятельствах (подбор апетеки) но т.к. сейчас я рисую его в объекте игрока эффект как будто растекается по поверхности за игроком (считай скорость появления спрайтов в партикле х еденица времени).
Можно их как-то рисовать относительно вида? Или сделать объект который будет рисоваться относительно вида, или камеры?
672 533582
>>533545
Для начала сформулируй вопрос так, чтобы его поняли другие.

Что значит фраза "партиклы рисуются от объекта"? Ты упоротый?

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

"рисовать относительно вида" чё блять? но я примерно понимаю, что ты имеешь ввиду.

Отключи автоматическую отрисовку партиклов
part_system_automatic_draw(ind, automatic);

Затем создай какой-нибудь объект-контроллер частиц, который будет заниматься их рисованием.
И через его draw_event работай с ними используя функци. part_system_drawit(ind)

Установи своему эмиттеру фиксированные координаты. Создай сурфейс так, чтобы координаты были в его центре. Потом
surface_set_target(surf)
part_system_drawit()
surfcae_reset_target()

А можешь камеру двигать, прежде чем частицы отрисовать, а потом возвращать назад.
matrix_set( matrix_world, matrix_build( -30, -30, 0, 0, 0, 0, 1, 1, 1 ) );
part_system_drawit()
matrix_set( matrix_world, matrix_build_identity() );
673 533601
>>533582
>>533582

>Что значит фраза "партиклы рисуются от объекта"? Ты упоротый?


Я имел в виду что координаты для имитера мы задаем в объекте.

>"рисовать относительно вида" чё блять? но я примерно понимаю, что ты имеешь ввиду.


Как еще объяснить что они постоянно должны быть на экране но их не разносило от скорости движения камеры дядь?

За советы спасибо, попробую накатить.
674 533605
>>533601
Модешь ещё попробовать в ивенте draw_gui рисовать свой интерфейс и в этом же ивенте использовать функцию
part_system_drawit()

Не знаю, что получится. Но по-идее должно быть именно то, что тебе нужно.

draw_gui это такой ивент, когда все координаты считаются не относительно верхнего левого угла комнаты, а относительно верхнего левого угла экрана.
675 533624
>>533605
Вроде запилил, учитывая что я до этого на сурфейсы вообще не смотрел. Сейчас хоть разобрался что да как
14695650804830.jpeg131 Кб, 858x600
676 533685
ПОМОГИТЕ АНАНАСЫ!
Во второй версии геймейкера присутствует такая функция: instance_create_depth, которой нет в версии 1.4, на которой я работаю.
Мне нужно написать что-то типа этого

if (keyboard_check_pressed(ord("")))
instance_create_depth(x, y, 0, object);


через функции 1.4, подскажите как
677 533688
>>533685
Ничего не перепутал?
Вроде в 1.4 нету layer зато есть depth. А в 2 есть и то и другое.

И в чём проблема-то? Ну заменяешь depth на layer, содаёшь instance_layer на нужной тебе глубине и создаёшь инстанс в него.
678 535521
Может кто-нить в курсе
поставил объекту вертикальную скорость hspd = sign(obj_player,y-y)* spd
но при достижении одного уровня высоты его начинает немного трясти
проверки уровня высоты и ограничения скорости не помогают, что я делаю не так?
679 535528
>>535521

Начнём с того, что ты скажешь, как ты хочешь чтобы было?

Хочешь чтобы объект занял один эшелон с игроком? Делай так:

diry = sign(obj_player.y-y)
if diry = 0 diry = 1 всегда ставлю такое условие, чтобы не проебаться с анимацией

if abs(obj_player.y-y) > abs(vy) если объект ещё не достаточно приблизился к игроку
{
vy = diry *spd
}
else
{
vy = 0;
y = obj_player.y
}
Screenshot2.png307 Кб, 1589x707
680 535714
>>439561 (OP)
Вчера прошел свежевышедший сиквел Ундертале, и так вдохновился заебенить что-нибудь эдакое (благо идея есть), что начал гуглить, в чем игру делали. Оказалось - Гейммейкер.
Скажите, если я пиратку поюзаю, а потом нет-нет да и решу серьезно заняться проектом для выкатывания его на всеобщий суд, мне же придется покупать лицуху или как? Там типа строго с этим, от каждого юзера требуют какой-нибудь лицензионный код в качестве пруфа или что?
И главное: можно же будет потом все свои недоделки с пиратки на лицуху перекинуть? Читать-то двиглу в теории один хуй те же самые файлы.
681 535715
>>535714

>все свои недоделки с пиратки на лицуху перекинуть? Читать-то двиглу в теории один хуй те же самые файлы.


перекинуть - да, остальное хз
682 535717
>>535714
Берёшь бесплатную триалку и делаешь.

К тому моментку, как ты хорошенько освоишься с гамаком, вопрос покупать/не покупать у тебя отпадёт.
683 535718
>>535717
И в чем особенность триалки? Вырезано 95% функционала лицухи?
684 535720
>>535718

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

Но можно загрузить в триалке проект, в котором уже несколько тайловых слоёв создано и работать с ним. Например туториальный проект.
685 535723
>>535720
Вроде же еще какие-то функции не работают?
687 535737
>>535714
Много таких по весне оттаяло.
688 535742
>>535737
Можно только порадоваться, что ещё кто-то решил взяться за дело. Зачем сразу пугать?
689 535745
>>535742
Потому что даже горящие геймдевом долгое время люди приходят и обсираются. А тут ребенок, который жил себе не тужил, вдруг поиграл в очередное оверхайпнутое говно для детей и решил в геймдевелопера поиграть, ну так, в перерыве между каточками в фортнайте. Какой багаж базовых знаний ему нужен, ребенок, конечно же, не удосужился узнать, думая, что двигло сделает все за него по нажатию кнопки "зделоть пиздато", да и местые шизики ведь уверяют, что "нада тока начать и будет крута атвичаю!", ну точно все заебись должно быть! В чем же заключается цепляемость того же ундерсраля, у ребенка есть только призрачные (и те неверные) представления, но у него уже есть "идея" своей слезодавильной говноистории, которая, конечно же, взорвет весь игропром (нет). При получении все большего и большего количества помощи и сурсов для чтения по движку у ребенка начнут затухать его горящие глаза творца, пока окончательно не потухнут и он не пойдет дальше брать топ-1 в своем фортнайте. Проходили уже.

А еще этот ребенок выкладывает свой пост в гамако-треде, хотя замени в нем гамак на любое другое двигло - и ему место только в ньюфаготреде, а здесь должны быть обсуждения по конкретным фичам конкретного движка и решения вопросов по коду и прочим непонятным штукам, а подобные посты лишь разбавляют концентрацию полезных постов своей бесмыссленностью.
690 535750
>>535745
Мне это ты зачем объясняешь?
А ты в курсе, что самые фанатичные и упорные как раз таки тоже дети? В определённом возрасте ребёнок может определить для себя интерес на всю жизнь. Нужно только поддержать.

И по поводу поддержания треда в чистоте ты не совсем прав. Этот тред по большей части бессмыслен. Уровень вопросов от неофитов тут вот такой: >>535521
Какая ещё концентрация полезных постов? Её даже на yoyo форуме нет.
691 535789
>>535745
Ебать тут обиженке сракотан половой жопы разворотило, аж стену высрал, проецируя свои боли и обиды на взрослого и успешного человека.
692 535799
>>535789

>обиженке сракотан половой жопы разворотило


>взрослый и успешный человек



Что-то не сходится.
693 536079
Скажите, а у всех в процессе загрузки компонентов при первом запуске GM насоздавал хуеву гору системных дисков, а потом их поочередно поудалял? Я вообще не понял юмора.
694 536081
>>536079
у меня во время использования он их создает
695 536082
>>536081
Он ебанутый? Че он с ними делает?
696 536095
>>536079
Есть такая хуйня.
Он делает 3 виртуальных диск, в каждом из которых содержимое гамакерской AppData.

Зачем - ни малейшего представления. Но если у него вдруг не получится это сделать - приложение не запустится.
697 536359
>>439561 (OP)
Посмотрел вот это:
https://www.youtube.com/watch?v=izNXbMdu348
Если до конца все было понятно, то с прыжка я охуел.
Почему vertical speed была выставлена на -7? Почему минус 7? Ось координат поменяла свои значения? Вроде вверх — это плюс.
Но что я точно не понимаю — это каким хуем вообще здесь работает прыжок. Почему спрайт прыгает вверх, замирает, а потом падает вниз? Чем это вообще обусловлено? Почему прыжок плавный? Судя по коду, после нажатия пробела спрайт должен телепортироваться на 7 пикселей вверх и вроде бы даже замереть в воздухе. Почему он, сука, падает?
Почему я такой тупой?
698 536366
>>536359
Он присваивает -7 вертикальной скорости, которая потом увеличивается из-за гравитации, и получается плавный прыжок.
И там ниже он делает y=y+vsp, что ставит вертикальную координату.
699 536367
>>536359
Потому что начало координат обычно считается от верхнего левого угла поля и ось Y направлена вниз.
Привыкнуть не легко.

После нажатия прыжка спрайт подпрыгивает вверх на 7 пикселей 60 раз в секунду (или 30 раз, смотря какой фреймрейт выставлен).
Плюс идёт работа гравитации, которая плавно обнуляет скорость прыжка а потом разворачивает её в другую сторону. Почему ты этого не заметил?

v=at

Это, вроде, пятый класс.
700 536368
>>536359

>Почему минус 7?


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

>Почему спрайт прыгает вверх, замирает, а потом падает вниз?


Действует гравитация. Тело движется с ускорением. Смотри внимательнее.

>vsp = vsp + grv;


vsp сохраняет свое значение каждый кадр, и его немного изменяет grv.
701 536379
>>536366
>>536367
>>536368
Спасибо за попытку объяснить, но я все равно нихуя не понял.
Попробую сам все это повторить ручками, может, допетрю.
702 536381
>>536379
Код в step event выполняется циклично, 60 раз в секунду.
703 536396
>>536381
Это я понял. Я даже примерно могу представить, что высота прыжка именно в vsp = -7 и устанавливается. Я не понимаю, где в коде указано, что спрайт должен падать при достижении этой отметки.
704 536399
>>536396
Вот здесь:

vsp = vsp + grv;

Каждый шаг к скорости прибовляется 0.1
В момент нажатия кнопки "прыжок" скорость мгновенно становится -7 и персонаж летит вверх.
Затем в течении 70 шагов скорость увеличивается до 0, и персонаж останавливается. Это высшая точка прыжка. Потом скорость продолжает увеличиваться по 0.1, скорость становится положительной и персонаж с ускорением летит вниз.
705 536402
>>536396
0.1 это ускорение, начальная скорость в -7 каждый фрейм "увеличивается" на 0.1, т.е. за 60 фреймов скорость станет -1, за 120 фреймов станет 5, т.е. объект в обратную сторону по игреку двигаться начнёт.
На 70 фрейме скорость будет 0 - это и есть та точка, где спрайт зависнет в воздухе, а на 71 фрейме начнёт падать из-за скорости в 0.1
706 536405
>>536399
>>536402
Бляха-муха, я понял. Нет, правда.
Спасибо от души.
707 536503
Таки получил первый заказ на игру сделанную в гм2 и заработал свои первые 100к лол.
708 536504
>>536503
Поздравляю. Пили кулстори как поднять бабла
709 536506
>>536504
Да внезапно чел постучался и грит, мол другнейм говорит, ты можешь игори делать, а мне как раз нужна небольшая перда.
В итоге сделал ему его раннер и получил баблеца.
710 536507
>>536506
Хорошие у тебя друзья. Итог покажешь, или это сорт оф НДА?
711 536508
>>536507
Покажу как он релизнет ее, если не забуду. Пока просил не светить.
712 536510
>>536508
дил
713 536511
Алсо, как же заебал GML, сил моих нет уже. Так устал костылить со скриптами это словами не описать. Хоть на юнити перекатывайся к нормальному ООП блжад.
15348576671581.gif1,2 Мб, 540x417
714 536537
>>536506
Прикольно, а что, всю разработку, включая арт и музыку, ты сам ебашил?
Как к цене такой пришли, с самого начала договорились, или ты почасовую озвучил, или в конце просто сказал: дай стописят штукарей, а заказчик такой: "Че ахуел?))) вот те сто и радуйся епта"?
715 536552
Товарищи, а как сделать так, чтобы я нажал кнопку один раз, и анимация вращения проигралась целиком, но при этом у меня нет раскадровки, а только image_angle += 10?
И так, и сяк ебался, лупы тут просто не работают, потому что луп покадровый и так запущен.
Анимация проигрывается нормально только для зажатой клавиши.
716 536565
>>536552

Create Event:
rotating = false;
rotating_counter= 36;

Step Event:
if (!rotating && keyboard_check_pressed(vk_space)) {
rotating = true;
}

if (rotating) {
image_angle += 10;
rotating_counter -= 1;
if (rotating_counter == ) {
rotating = false;
rotating_counter = 36;
}
}
717 536602
Сап двач, у меня к тебе разговор.
Я старпёр 30+ который уже отработал на разных работках. Несколько лет назад меня это задобало, и я решил уйти в геймдев, благо накопил нехило денег пока работал. Пообщался с разными людьми, прокачал свои скиллы (рисование/анимация, в код не могу, ибо окологуманитарий), поработал за еду в котрке которая пилила мобилки что бы понять как это работает изнутри, и в итоге открыл свою компанию. Естеественно начал пилить игру мечты, и вполне закономерно провалились, потеряв попутно почти всё что заработал за 10 лет.

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

Короче говоря, ищю партнёра на новый проект. Особенно если у тебя уже есть опыт в игрострое (дополнително, если ты погромист будем более менее друг друга дополнять). Хотелось бы вовлечёного человека (то есть с долями в компании), ну и желательно не моложе 25и и с достаточном количеством свободного времени. Так как бюджет есть, то будет скорее всего и зарплата. Короче всё обсудимо.

Понимаю что не лучшее место для такого поиска, но я пробую все варианты, если интересно пиши на фейко мэйл: serapNx2isANUSyr&TahooPUNCTUMco#G9m
718 536610
>>536602
Я готов, но непонятно, что за проект, 2д говно на гамаке?
719 536616
>>536602
И потому ты зашёл на двач. Уж тут-то ты найдёшь адекватных сотрудников.

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

Сдаётся мне, ты очередной шизик.

У нас в последнее время просто наплыв директоров. Школа бизнес молодости где-то протекла?
720 536634
>>536565
Дополнительная переменная, которую нужно понижать до нуля с каждым поворотом. Ну конечно!
Грасиас, синьор.
721 536644
>>536610
Есть различные наработки, хотелысь бы вместе выбрать.
>>536616
Ты дебик или на русском читать не умеешь? Ссылки не будет посколько нихрена ничего не было сделанно. А насчёт энтузиазма, прямо же написанно что раз есть бюджет будет и зарплата...
722 536646
>>536602
На почту-то будешь отвечать?
723 536675
>>536644

>Есть различные наработки, хотелысь бы вместе выбрать.


Я в констракте профи, гамак даже не открывал ни разу.
724 536700
>>536602

> Нашёл с горем пополам инвестора


Чот кринжанул.
Инвесторы на 2д перделки сделанные на гамаке.

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

Не помню ни единого завершенного проекта, который бы начинался так. А вся инди годнота вообще была сделана на коленке одним-двумя людьми, которые просто проверяли свои силы в игрострое.
725 536701
>>536700

>которые просто проверяли свои силы в игрострое.


>а потом подняв бабла в полную силу пилили ИГРУ и получалось только говно и моча

726 536702
>>536700

>кринжанул

727 536704
>>536701
Именно так.

>>536702
О, одноклассники протекли :)
Долбоеб, блять, гондон.jpeg50 Кб, 604x402
728 536707
>>536704

>О, одноклассники протекли :)


Ыыы, бля
729 536718
>>536700
Блэать, только что дошло что изначально запостил не в тот тред. Гамак или негамак не похер одходило бы только к игре.

>Не помню ни единого завершенного проекта, который бы начинался так


Stardust Valley, Armello, World of Goo, Minecraft...Нет не слышал про такое.
730 536719
>>536718
Ну что, ты нашел "партнера"?
731 536728
>>536718

>Stardust Valley


Stardew Valley
Создан одним человеком, который и рисовал, и кодил, и писал музыку. Начал делать игру спонтанно, пытался лишь воссоздать более старую игру Harvest Moon, как проверку своих сил после обучения программированию.

> World of Goo


Создан двумя друзьями в свободное время от основной работы в EA.

> Minecraft


Создан одним человеком. Спонтанно, как попытка возродить более древнюю и уже дохлую на тот момент игру Infiniminer.

Я вижу у тебя познания на уровне.
732 536729
>>536728
Hollow Knight тебе в ебало.
sage 733 536792
>>536700

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


Инди-годнота типично сделана адовыми профи с десятком лет за плечами увидевшими что издатели уходят из рыночной ниши малых и средних игр.
734 537105
Здарова, гамакеры.

Вопрос теоретического порядка. Есть игра на ведра https://www.youtube.com/watch?v=5G7Xb5gFa80
Как наиболее оптимально реализовать похожую механику поведения пловцов?
Рассчитывать шаг исходя из того что в игре все клетки одного размера и добавлять условия при встрече с бортами? Как вообще реализуют такого рода игры с хождением по клетке? вот еще пример ходьбы по клеткам https://youtu.be/ptYwMwxP7ho
735 537139
>>537105
А в чём вообще проблема заключается?
Сам-то подход пытался придумать?

Я бы сделал ds_grid, задающую координатную сетку.
В каждую ячейку поместил бы массив, описвающий её содержимое.
Тип клетки, соответсвующий спрайт, всякие дополнительные параметры типа "рассыпанные камни" или "в зоне действия водоворота". И естественно ссылки на объекты, которые в ней находятся.

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

Затем в конце каждого хода выключал бы контроллер игрока, и двигал объекты в соответствии с ds queue, проигрывая анимацию движения.
736 537144
>>537139
Понел, пойду читать документацию потому как до этого касался ds_grid только теоретически.
737 537145
>>537139

>ds_grid


Да, вопрос в подходе. В этом проекте хочется попробовать не говнокодить со старта а сделать нормальную базу.
738 537146
>>537145
Можешь ещё всунуть в каждую ячейку ds_grid ссылку на ds_map вместо массива.

И для каждой клетки свой ds_map вести.
739 537537
Ананасы, мож кто знает как импортнуть видео для катсцены в гмс 2?
Нужно сильно шо пиздец
740 537945
>>537537
Видел на итче какую-то тему связанную с импортом видео в гамак, погугли. Не знаю правда поможет или нет.
741 538075
>>537537
Вроде как на маркете есть ассет, который это делает. Но он вроде как платный.
742 539833
Через полтора года юзания гма начал потихоньку перекатываться на юнити.
743 539907
>>539833
Почему?
744 539919
>>539907
Потому что не знал про божественный CopperCube!
745 539983
>>539907
У гамака есть огромная проблема. При мало-мальском усложнении проекта вся структура кода идет по пизде из-за того, что ГМЛ очень и очень слаб.
То есть вместо того, чтобы писать человеческие классы с нужными методами, ты постоянно плодишь скрипты, которые лежат хуй знает где и ты начинаешь охуевать от говнокода.

Плюс отсутствие нормальных человеческих структур данных вымораживает. ds_list, ds_map - это ебаный ад и израиль.

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

Люблю гамак всей душой, но я его перерос.
746 539987
>>539983
Добавлю что из скрипта можно, например, вернуть только одну переменную, когда хотелось бы, например, вектор.

Но перекатываться всё же пока не планирую.
747 539990
>>539987
Из скрипта можно вернуть массив (или дс лист) с нужным кол-вом переменных. Но это треш все равно.
748 540265
Скачал я тут значит ваш гамакер. Хочу забахать игру типо хотлайн майами чтобы продалась в миллион копий. С чего начать?
749 540269
>>540265
С туториалов Спалдинга.
750 540513
Ребят, решил вкатится и имею проблему.

Пилю крч платформер со случайно генерируемыми платформами по которым надо прыгать. И фишка в том что при соприкосновении с платформой снизу или сбоку объект игрока прилипает к ней. И соответственно платформа начинает двигаться с игроком. Как фиксить? От чего может быть? Вот говнокод в столкновении с игроком

if (vspeed > 0 && !place_free(x,y+vspeed))
{
move_contact(270);
vspeed = 0;
jumpCount = jumpCountAspect;
}

if (vspeed < 0 && !place_free(x,y-vspeed))
{
move_contact(0);
vspeed = 0;
}

if !place_free(x+30,y)
{
move_contact(360);
vspeed = 20;

// x = x+(global.levelSpeed+10)
}

пытался запилить костыль hspeed = o_platform.hspeed; в последней проверке чтобы объект игрока принимал скорость платформы и она не сдвигалась но все равно. Платформа спавнится с hspeed=(0-global.levelSpeed)
В create у контролера global.levelSpeed = 6
750 540513
Ребят, решил вкатится и имею проблему.

Пилю крч платформер со случайно генерируемыми платформами по которым надо прыгать. И фишка в том что при соприкосновении с платформой снизу или сбоку объект игрока прилипает к ней. И соответственно платформа начинает двигаться с игроком. Как фиксить? От чего может быть? Вот говнокод в столкновении с игроком

if (vspeed > 0 && !place_free(x,y+vspeed))
{
move_contact(270);
vspeed = 0;
jumpCount = jumpCountAspect;
}

if (vspeed < 0 && !place_free(x,y-vspeed))
{
move_contact(0);
vspeed = 0;
}

if !place_free(x+30,y)
{
move_contact(360);
vspeed = 20;

// x = x+(global.levelSpeed+10)
}

пытался запилить костыль hspeed = o_platform.hspeed; в последней проверке чтобы объект игрока принимал скорость платформы и она не сдвигалась но все равно. Платформа спавнится с hspeed=(0-global.levelSpeed)
В create у контролера global.levelSpeed = 6
751 540520
>>540513

У тебя ещё гравитация работает? Направление vspeed учитываешь?
Скорее всего у тебя вот это (vspeed < 0 && !place_free(x,y-vspeed)) в правду превращается, когда vspeed обнуляется, а потом срабатывает гравитация. Хуй знает короче.

Запускаешь игру в режиме дебага, когда объект прилип к платформе табаешься в ide и ставишь брекпоинт в step event объекта. И шаг за шагом смотришь, что у тебя срабатывает.

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

Безотносительно твоего вопроса - не рекомендовал бы использовать вот эту шнягу искаропки: move_contact, place_free и т.д. Особенно если пишешь платформер. Напиши свои функции, о работе которых ты будешь знать всё. А то тебя ждут весёлые провливания сквозь пол, застревания, прилипания. Вот это всё.
752 540521
>>540513
Ну и ещё по движущимся платформам совет.

Обрабатывай движения игрока в step а движения платформ в end_step или begin_step.

Нехорошо когда объекты двигают друг друга в произвольном порядке.
753 540530
>>540520
Спасибо анон, поковыряю.
Добра
754 540567
Хз, было или нет, но вот вам Гамак Студия 2

https:// rut racker. org/forum/viewtopic.php?t=5603189
755 540568
А у меня вопрос, как сделать анимацию броска кубика (6-8-10-20 граней, способ, наверное, универсальный должен быть). В смысле, ну, не рисовать же анимацию перекатывания от каждого числа к каждому числу, верно?
756 540569
>>540568
А как ты хочешь, чтобы она выглядела? Можешь 3д кубик нарисовать и бросать.

Можешь нарисовать каждую грань отдельным спрайтом а потом на едином шаблоне рисовать отдельные спрайты.
757 540570
>>540567
Тебе 6 лет? Пшел в садик!
758 540856
>>540569
нет ли каких-то демо проектов с чем-то похожим? Чтоб посмотреть?

На самом деле мне не принципиально, каким именно образом
759 540882
>>540856

>На самом деле мне не принципиально, каким именно образом



Ну вот тебе 2d кубик на 4.

https://drive.google.com/open?id=1hwj8sHL90HCjP7OVacbJTZGzzKjBXuLp
760 540893
761 541343
>>539833
Перекат в процессе, заодно хапнул заказик, чтобы училось лучше.
Юнька-таки гораздо удобнее конечно, если в ней разобраться. На гме у меня правда все делалось в 1.5 - 2 раза быстрее, но чем дальше в проект, тем больше пизда рулю в плане организации кода.
Человеческое ООП решает все-таки.
762 541931
>>541343
2d заказики есть на юньке?
763 542013
>>539987
>>539990

>можно, например, вернуть только одну переменную


>можно вернуть массив (или дс лист) с нужным кол-вом переменных



А что с этим не так? Деды возвращали из функций всегда по одной переменной, и ты так делай. Чем отдельные скрипты принципиально отличаются в этом плане? Нужно много данных вернуть - заворачиваешь их в объект/структуру/массив/небо.
764 542038
765 542386
Сап двач. При создании комнаты возникает вот такая проблема, хотя у объекта текстбокса слой выше(глубина равна 0)

Причем после переходов через комнаты все становится норм.

В чем косяк? Сталкивался кто? ибо я упорно не понимаю чому слои не работают как надо
image.png257 Кб, 1600x900
766 542389
>>542386
слои
767 542433
>>542386
дебажь глубину в степ эвентах всех объектов и смотри, чо за хуйня

show_debug_message(depth);
768 542435
>>542386
Возможно в какой-то из комнат слои в другом порядке идут.
769 542457
>>542435
прочекал, везде одинаково

>>542433
попробую сейчас
image.png364 Кб, 1600x900
770 542461
>>542433
чому то глубина одинакавая выставлялась.
Выставил для каждого объекта отдельно - пофиксилось

Спасибо геймдевач-помогач
771 542509
7oR01oTtc-4.jpg29 Кб, 482x480
772 542602
>>439561 (OP)
Вопрос №1: Можно ли на нём пилить RTS, 3d/2d масштабом в 25-50 юнитов на экране?

Вопрос №2: Можно ли на нём пилить (TBS), 3d/2d масштабом в 50-100 юнитов на экране?

Вопрос N3: Возможно ли на нём прописать аи противника?

я кончил.
773 542617
774 542620
>>542602
3д в гамаке хуевый, не стоит даже пробовать.
В 2д в принципе можно делать что угодно, но если у тебя планируется ложная логика проекта, то быстро упрешься в ограничения GML/
775 542624
>>542620
Что ты там воду льёшь?
Вопрос: можно ли сделать то то и то то.
Ответ: можно.
Всё.
776 542830
>>542461
Где ты уроки находишь, или сам разбираешься в проге?
Runner 2018-12-09 00-20-18-93.webm23,1 Мб, webm,
1048x1050, 0:40
778 542844
>>542602

Здесь:
Пасфайдинг.
Система классов: маг/вор/воин
Система квестов
Система принятия решений.
Система нанесения урона.

Сдлано за два вечера.
779 543647
Моя геймдев-карьера: установил украденную версию 1.4, не смог запустить.
780 543650
>>543647
В том числе 1.4.9999.
По результатам гугла моя ошибка описана здесь, только у меня ХР:
https://gcup.ru/forum/36-29024-1

>Установочник запускается,установка успешно проходит,а вот сама прога не катит! sad



>Все просто и сложно одновременно. Была такая же проблема. В Appdata есть файлик trace там ошибка твоего запуска. У меня ругался на framework. Исправил версию в файле .config и все распаковалось. Поправил версию framework в распакованном studio и все заработало.



Но у меня папка проги в appdata пуста. Что написать в конфиге?
781 543651
Да и ладно, запустил 8.1.
782 543662
Как вы ориентируетесь во встроенных функциях и переменных? В мануале они приводятся по ходу дела и в разных местах, а в меню скриптов только списки без описания.
783 543710
>>543662
А в чем проблема? Тебе ж не надо сходу их все помнить.
784 543783
>>543710
Уже ни в чем, я ебси в глаза и не мог найти раздел Game play в главе GML в справке.
785 543892
Анчоусы, как по уму хранить большие объемы текста в игре?

Раньше просто записывал все в переменную, но теперь когда делаю игру с охуеть каким колличеством текста понимаю что на локализации ебнусь даже с двумя языками. У меня всякие диалоги, реплики, прочая срань.
786 543906
>>543892
Храни в ini файлах, один файл на свой язык.
media.ioScreen Recording (06.01.2019 8-04-42).webm1,4 Мб, webm,
640x508, 0:10
787 543988
Хелло ворлд, сделал коника.
Понял, что зря у меня весь код в степ ивенте, наверно не так надо было начинать.
А вы настраиваете один ивент и в нем пишете все основное или делаете по скрипту на фичу? Есть рекомендации как лучше их организовать?
788 543995
>>543988
Всё что можно - в скрипты.
Всё разбиваю на регионы.
Для каждой фичи - свой объект. За параллакс фонов отвечает obj_bg, за свет obj_light, за интерфейс obj_gui
789 544013
6к деревянных (и та за не мультиплатформу) - непосильная ноша, имхо.
Есть ли какие обходные пути, или, например, пиратские версии.
Ясен хуй, на стим/прочее не выложишь с взломанной версии, но в любом случае, есть ли какие обходные пути.

Или возможно ли без последствий, сделать проект на взломанной версии, а потом, когда уже готовый проект пихнуть в купленную версию? Возникают ли какие-нибудь несоответствия или артефакты/ошибки?
790 544014
>>544013
upd://
где-то читал, что тут платишь и всё, ты вроде как разработчику ничего не должен, и если смотреть в перспективе - с отчислений разработчику отдашь намного больше, чем эти 6к.

Меня интересует безпроблемный перенос со взломанной версии на купленную
791 544016
>>544013
Пили на юнити
792 544137
>>499282

Тоже запарился, но у меня не с анимации, а движение на 360. Есть два объекта - снаряд и препятствие. При расчете столкновения по х, у снаряда его маска вообще игнорируется, хоть так >>499296 хоть точно по спрайту, а происходит столкновение центра снаряда с границей препятствия. Хотя все настройки у обоих объектов одинаковые.
793 544139
Я уже даже габариты снаряда в отдельные переменные считал и сталкивал - в половине случаев работает как надо, но застревает при движении возле препятствия и на некоторых углах лол.
794 544144
>>544137
Из такого описания не понять, в чём твоя проблема.

Код в студию.

Может ты вместо place_meeting instance_position используешь.
Или prec false поставил.
Или у тебя снаряд прыжками двигается по 20 пикселей за кадр.
795 544325
>>544144

>place_meeting



Спасибо за подсказку, маска заработала. Я использовал collision_point ставя prec=true, почему-то в этом случае он все равно считает маску центральной точкой.

Пока это увидел, перебрал имитации маски через collision_circle и collision_rectangle. Решил, что в этом случае столкновения вообще лишние, сделаю снаряду превентивный круиз-контроль.
796 544346
Как определить направление до объекта или от точки до точки в градусах?
797 544348
>>544346
Mathf.Atan2(p2.y-p1.y, p2.x-p1.x)*180 / Mathf.PI;
798 544351
>>544348
Пасиб. Бля, восьмой класс(
799 544356
>>544346
point_direction(x1,y1,x2,y2) возвращает направление в градусах. 0 справа, против часовой стрелки.
800 545561
>>544013
Работаю на первой же скаченной с рутрекера версии, проблем вообще никаких. ГМ 2, да, если что. Не знаю, как вы находите проблемы с этой прогой.
003.jpg52 Кб, 900x900
801 547330
Поясните по дельта-тайм.
Хули оно такое неточное?
Даже у васянов с ютуба при расчетах всегда неточные числа получаются, а они на это реагируют мол: "Да неточно и хуй с ним чо)) результат на пару десятых отличается каждый раз, да и пох)))) лойс подписка))"

При длинных расчетах вообще же вся физика по пизде идет.
Должен же быть какой-то метод чтобы игра не была фиксированная на 60фпс и при этом выполняла точные расчеты вплоть до пикселя.
802 547333
>>547330

> Хули оно такое неточное?


точное, никогда таких проблем не было
803 547335
>>547333
Ну вот, держи, первое же видео с гугла.
https://www.youtube.com/watch?v=NVfrAPos88k
8:35 неточный расчет и реакция на это васяна.
804 547338
>>547335
Падажжи, дельта тайм и не должен быть одинаковым. Он всегда разный, хоть убейся. Поэтому его и юзают для того, чтобы на него множить условную скорость и получать опять уже условно константную скорость перемещения объекта вне зависимости от фреймрейта.

Если нужны равные промежутки, то велкам в юнити, там есть FixedUpdate
805 547339
>>547338
Так это в видео отображается и не дельта тайм, а результат на основании перемножения дельтатайма на другие переменные.
При использовании дельта тайм у тебя объект одно и то же расстояние преодолевает каждый раз за разное количество времени. Каждый раз разница в ноль-целых-хуй-десятых и автор видео говорит что подобная мелочь в общем-то хуйня и случилась она просто из-за перепада фпс.

На деле же эта крошечная единичка запускает у тебя в коде цепную реакцию и провидит к полному пиздецу в физике, стоит твоей игре просто хотя бы дропнуть пару фпс в каком-нибудь моменте.
806 547341
>>547339
Дак оно и будет случаться из-за перепадов фреймрейта.
807 547343
>>547341
И в чем смысл тогда этого дельта-тайма, если из-за перепадов фпс и неточности расчета у тебя, к примеру, персонаж начинает прыгать на пару пикселей ниже положенного, в то время как у тебя код написан чтобы персонаж прыгал вверх исключительно на N игровых блоков, да аж с точностью до пикселя.
808 547344
>>547343
Ты путаешь назначение дельта тайма просто. Он никогда не служил инструментом для того, чтобы что-то делать через разные промежутки времени.

Ты там чет загнался совсем с

>в то время как у тебя код написан чтобы персонаж прыгал вверх исключительно на N игровых блоков, да аж с точностью до пикселя.



Посмотри тутор сполдинга, он рассказывает о том, как это все реализовать.
809 548025
Вот пишу я шейдер.
Спрайт - вертикальная линия.

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

varying vec2 v_vTexcoord;
varying vec4 v_vColour;

uniform float PixelW;

vec2 Coord = v_vTexcoord;

void main()
{
vec2 Coord = v_vTexcoord + PixelW20.0vec2(v_vTexcoord.y, 0.0);

gl_FragColor = v_vColour * texture2D( gm_BaseTexture, Coord);
}

Но получаю я вертикальную прямую линию, каждый пиксель которой сдвинут на 5 пикселей влево.

Чому? Разве v_vTexcoord.y не должно варьироваться от 0.0 до 1.0 ?
810 548032
>>548025
Ну как всегда, сам спросил, сам ответил.
v_vTexcoord.y - видимо изменяется от 0 до 1 не при прохождению по спрайту. а при прохождении по той texture_page на которой нарисован спрайт.

Тогда я беру uvs координаты низа спрайта, верха спрайта и передаю их в шейдер.
var tex = sprite_get_uvs(sprite_index,image_index);
zero_level = tex[3];

Сдвигаю х координату так:
vec2 Coord = v_vTexcoord + PixelWFrevec2((Zero_Level-v_vTexcoord.y)/(Zero_Level-One_Level) , 0.0);

То, что нужно. Бля, пол дня голову ломал, пока буквами не написал.
811 549124
>>542509
Правда? Если да то благодарствую)
Планирую выпустить где-то в начале весны, если все сложится.
812 549126
>>542830
Где то сам. Какие то функции по описанию/справочникам изучаю. Если совсем не могу додуматься то гайды ищу схожие по теме.
image.png7 Кб, 458x153
813 549483
Этот код определяет ближайшего противника и заставляет объект идти к нему. Как заставить этот объект определять не один тип противника, а несколько?
Например есть объект o_enemy1 и o_enemy2, но объект будет двигаться к тому, который ближе.
814 549493
>>549483
Назначь своим o_enemy_number родителя o_enemy и определяй расстояние до него.
815 549494
>>549493
Вот тут и начинаются проблемы. У всех этих объектов уже есть родительский объект.
816 549496
>>549494
Вставь между ними ещё один родительский объект.
Функция будет находить объекты ниже по иерархии данные ей.

Например у меня есть родитель obj_living у него child obj_enemy у него child obj_rat

Могу обращаться ко всем живым, обращаясь к obj_living или ко всем врагам obj_enemy
817 549497
>>549496
Работает, спасибо.
818 549739
Ябучоя физика, чем дальше копаю, тем больше костылей и тем больше убеждаюсь, что руками прописать гравитацию там и прочее было бы практичнее
819 549742
>>549739
Ты ещё и коллизии с объектами используешь. Никто тебе не виноват что ты кривой.
820 550818
Запускаю игру в обычном режиме появляются просадки в фпс на 1-2 секунды во время игры. Когда запускаю в дебаг моде их нету. Такое возможно? и почему так можешь происходить? на сцене кроме персонажа ничего нету.
821 550834
>>550818
Ошибка из за камеры которая таскает за собой вид. Все равно не понятно почему лагает, раньше не лагало
822 550839
>>550834
Погоди, сейчас придут телепаты и расскажу тебе, как оно у тебя было раньше и что изменилось.
image.png14 Кб, 778x272
823 552975
в чем тут проблема?
var lerp_amt = (time - keu_previous/number_of_key_times)* number_of_key_times;
/////////////////
color_mix= [lerp (color[key_previous,0],color[key_next,0],lerp_amt),
lerp (color[key_previous,1],color[key_next,1],lerp_amt),
lerp (color[key_previous,2],color[key_next,2],lerp_amt)];
824 555549
Что быстрее, distance_to_object or distance_to_point? Или point_distance?
825 555550
>>555549
Сделай цикл миллион раз посчитай и узнаешь.
826 555551
>>555550
Вдруг до меня кто-то так делал
827 555554
>>555551
Конечно, делали, ну ищи.
828 559817
Бамп вопросом. Как сделать так, чтобы фулскрин шейдер не задевал интерфейс?
829 559919
>>559817
Отключай шейдер до того, как начинаешь рисовать интерфейс.
830 571219
Блядь, в наше время еще делают нормальные, НЕВИДЕО-туториалы по сабжу? Я ебал в рот, всюду один ютуб, я так воспринимать инфу не умею.
831 571230
Похуй, буду читать документацию
sdk.png15 Кб, 617x482
832 571255
Начал пилить игруху на аднроид, запилил пару комнат, в гамаке и в ЕХЕшнике всё работает как по маслу. Скомпилировал апк потестить на мобиле, запустил, а там всё распидорасило, какие-то кракозябры, все спрайты повылезали которые вообще не должны быть видны в начале игры, вью отображаются половинчатыми, полный пиздец. В чём может быть проблема? Гамак 1.4.1567, с бухты качал.
833 571256
>>571255
Надо было юньку брать, долбоеб. Страдай, хуль.
834 571260
>>571256
Может ты и прав, глянул щас, там нужно YоYо 400 долларов отдать, чтобы получить право размещать своё поделие в апсторе.
835 571263
>>571260
Уж сколько раз твердили миру - берите юньку, дауны;
но только все не впрок,
И снова ныть в гд приходит гамакодолбоеб.
836 571267
>>571260
Бери годот. Размещение в апсторе бесплатно.
837 571269
>>571267
Попробую. Сильно отличается процесс верстания?
838 571270
>>571267

>Размещение в апсторе $99 долларами за iOS Developer Program


Бвстрофикс. Но это от Хуана уже не зависит.
839 571271
>>571269
Все гайды и туториалы есть. Нет смысла пересказывать их ИТТ. Если английского не знаешь, то у пети сканера на ютубе есть подробный туториал по сборке приложения под андроид, с иосом примерно так же, не ебу. Не фанат эппла.
840 571272
>>571271
Ну ок, спс. Инглиш знаю.
841 571274
>>571272
Не за что. Убедительная просьба к тебе. Если что-то получится, и даже если что-то не получится - отпишись о результатах в годотред.
842 572537
>>571263
Юнька для 2Д избыточна. А в гамаке еще и охуенная заточенность под работу с тайлами.
843 573355
У меня тут НЕСЧАСТЬЕ приключилось.
Делал себе игру, но буквально на неделю где-то пришлось сделать перерыв. Все работало нормально.

А сейчас открыл Гейм Мейкер, он обновился, я запустил Run и происходит какой-то пиздец: половина слоев не рендерится, половина мелькает и моргает, и полная жопа. Я ничего не изменял в коде. Почему такое могло произойти?
image.png69 Кб, 224x225
844 573356
>>573355
Потому что не взял юнити, а ведь тебя предупреждали
845 573357
>>573355
Ради эксперимента тупо сделал пустую комнату и пихнул туда какой-то ничего не делающий, но видимый объект: он вообще не рендерится.
846 573360
>>573355
Ложная тревога: дело оказалось в том, что я нечаянно забил жесткий диск до отказа за эту неделю, что и привело к таким результатам. Освободил место и все стало нормально.
Следите за своим жестким диском друзья, а юнитипидорам перо под ребро и хуй в сраку
847 577712
Ебать у вас тред мертвый.
848 577728
>>577712
Так потому что гамак говно
уже2годанаэтомдерьме
849 577749
>>577712
я на юнити съебнул и перестал читать этот тред
оп
850 577853
>>577728
Да с хуев? На чем еще пилить 2д сайд-скроллеры?
851 577881
Анон, помоги с вопросом
Поясню за суть.
Моим дипломным проектом является игра. пишу аркадку на с++ в UE4, и до меня доебался куратор по димпломке с вопросом, А зачем А нахуя твоя игра и дипломка?
Лично я делаю для опыта и интереса, она хочет чтобы я раскрыл сокральный смысл моей работы, чтобы она спасла детей в африке, но я не ебу как это описать для чего работа
852 577889
>>577881
Тредом промахнулся?
Именно сакральный смысл его интересует, практический не устроит?
853 577915
>>577881
Глянь что пишут других дипломах на похожую тему, в чем проблема вообще?
15561315367070.jpg12 Кб, 259x250
854 577961
>>577881
Был научным руководителем у выпускника, мы с ним на юнити сделали игру ака вотч догс 2д про мамкиного хакера, взламывающего здание.
Приплели как анализ инф. безопасности систем. Когда игрока ловили охранники итд итп показывалась статья с описанием. По мере прохождения ГГ говорил о том, почему текущая организация плохо защищена.
Студент учился по этой специальности, сдал на 4(хотя мог изи на 5 сдать,он сам начал запинаться во время выступления).

Как вариант советую тебе взять какой-то процесс из жизни по твоей специальности и воспроизвести его с использованием твоего же УЕ4. А аркада абсолютно не связанная с твоей специальностью да, нахуй не вперлась никому. Пожумай сам своей головой,в комиссии будут сидеть 40+ дяди и тети, которым твои игрушки не интересны, им интересно, чтобы ты с умными щами заливал про важность предварительного анализа и моделирования hueta.Name , и именно твоя убогая программа позволяет это сделать.

Если будут еще вопросы, пиши.
855 577966
>>577961
Читаю это все и понимаю, какая же рашкинское образование галимая фикция и натужная попытка создавать видимость работы. Неудивительно, что все в стране по такому же подобию функционирует (если вообще функционирует).
856 577967
>>577881

>А зачем А нахуя твоя игра и дипломка?


Чтобы выпуститься наконец-то из вашего говновузика, Будто бы, блядь, дипломные работы вообще должны что-то решать, а не быть просто бумажкой для подтирания.
Я бы ответил как-то так.
857 577968
>>577853
Забей, они сами не знают чего хотят, поэтому им лучше более универсальный двиг. А если знаешь, что двадэ, то гамак наиболее удобный в плане отсутствия всяких "прелюдий" для начала работы. Берешь и рисуешь/кодишь. Изи.
image.png328 Кб, 902x977
858 577971
>>577966
Да не переживай, это не только в рашке.
Во всяких стэнфордах и берклях та же самая хуета с ещё большим попилом грантов.
https://www.youtube.com/watch?v=LVsqIjAeeXw
859 577973
>>577961
Вспомнил, когда учился в институте, нам физик сказал - напишите программу, которая моделировала бы наглядно какое-нибудь явление, поставлю зачёт. Я (как удивительно) - угорал по играм, написал на паскале простенькую программку, которая рисовала луч, отражающийся и преломляющийся от поверхности. Нарисовал (в пиксельном редакторе) транспортир, красивую поверхность, сделал управление кнопками, чтобы углом полосочки-луча управлять и по кнопке чтобы транспортир это вылетал и прикладывался к лучу, лол.
Получил зачёт автоматом.
860 577980
>>577971
По крайней мере если ты хочешь делать игры - там ты идешь тупо в институт, который, блять, охуеть!, учит делать игры, а не дрочишь 4-5 лет бесполезную хуету, чтобы иметь возможность как-то уцепиться по одной из профильных тематик и сделать игру как диплом, и то не факт что проканает, а без диплома тебя развернут.
861 577982
>>577980
Зато нет факультетов журналистики и полно факультетов богословия.
862 578003
>>577968

>А если знаешь, что двадэ, то гамак наиболее удобный


>гамак


У тебя пять ошибок в слове "годот".
863 578019
>>577973
Я второкурсникам когда преподавал структуры данных, сказал им самим выбирать тему курсовой, подготовил около 10 тем по играм от крестиков ноликов до тетрисов(они на тот момент по программе только консольные писали).
Почти все принесли игры и им понравилось, месяца полтора я их консультировал, каждому помог составить план разработки. Ну, как план, помог каждому разбить на этапы и каждую неделю приносить и показывать результат.
Они были очень благодарны, хэх.
А потом я дропнул преподавание, когда меня хотели заставить снова читать хуйню по информационной безопасности, в которой я не работаю. Ибо нахуй плодить необразованность.
864 578024
>>578019
Ты - хороший человек, добра тебе.
865 578032
>>577980
Опять прилетаешь РАШКУ? В Казани например на базе КФУ (в одном из его зданий) есть факультет, в котором учат твоему любимому гейдеву, на вторых курсах или позже начинается целенаправленное изучение сисярпа с Юнити. В Штатах тоже не на каждом углу учат игры делать, но да, факультетов там немного больше.
Понапаступают в сельские шараги, а потом удивляются.
Да и например PyGame в школах с 11 класса по профильной программе изучают, в Яндекс Лицеях с 8-9 классах могут.
sage 866 578157
>>578032
макаронить говнокод - последнее, что нужно в геймдеве
геймдизайну учат полтора человека на всю страну, и я не про наёбку от вышкопидоров
изображение.png95 Кб, 264x191
867 578983
Два раза пытался в юнити, не осилил. Решил попробовать в гамак.
Прочитал весь этот тред, и хочу сказать, что тут сидит один из самых адекватных и помогательных анонов на этой борде.
Если ты ещё сюда заходишь - добра тебе и удачи (если не заходишь - то всё равно удачи и добра). Смотрел, скольким ты тут помог и диву давался. Респект и уважуха.
просто-решил-высказать-своё-очень-важное-мнение-кун
868 578984
>>578983

>Два раза пытался в юнити, не осилил. Решил попробовать в гамак.


Тебе все равно придется его осилить, лучше не трать время зря.
15018731974260.jpg43 Кб, 498x500
869 579045
GM2 или GODOT?
Вот реально хотел бы выслушать плюсы и минусы, что выбрать вкатывающемуся в 2д-игростроение.
870 579052
>>555549
Давай порассуждаем.
distance_to_object будет искать ближайшее расстояние от объекта до объекта
distance_to_point будет искать ближайшее расстояние от объекта до точки
point_distance ищет показывает между двумя точками и ничего не ищет
Значит, оно быстрее всего
871 579054
>>542386
Даю добрый совет - если много текста, используй бесплатное дополнение, которое есть на маркете. Работает с текстом просто на ура, используя кучу сложных скриптов. HappyTearParacoopa
872 579058
>>579045
С гамака все уходят, он бесперспективный, не развивается, содержит фатальные дизайнерские ошибки, которые не дадут тебе сделать сколь-нибудь крупную игру.

Из годота может что-то хорошее и выйдет. А может и нет.

А юнити уже сейчас готовый продукт, стабильный, популярный и продолжающий активно развиваться.
873 579610
>>579058
Пошел нахуй. Гамак УДОБНЫЙ, в отличие от юнити, и использовать проще
874 579625
>>579610
А что там собственно проще? Юнити не сложнее гамака.
875 579728
>>579640
Аниме хорошее, а ты хуйню написал, инфу брал с треда про юнити?

мимо
876 579761
>>579625
не знаю, я просто так написал, я юнити не пользовался
877 579762
>>579625
ну там же наверняка нет окошечек, где прописан код отдельно на create, отдельно на step, отдельно на collision и т.д.

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

наверняка на юнити нельзя делать анимированные спрайты прямо во вкладке sprites
878 579821
>>579762
ты толстишь что-ли?

create -> Start
step -> Update
collision -> OnCollisionEnter
комнта -> сцена

редактора спрайтов в юнити нет, но есть вкладка редактора анимаций
879 580019
>>579821
возможно,я перейду на юнити в будущем, но это не точно
880 580020
>>580019
тем более гейммейкер не на языке С, который похож на джаву, которая мне не нравится
881 580492
>>580020
У тебя с головушкой все впорядке?
882 580516
>>580492
Двачую.
>>580020
Вообще-то шарп похож на кресты, и джава похожа на кресты. А знаешь почему? Потому что они оба из семейства си-подобных языков!!
883 581135
>>580492
>>580516
меня бесит слово override, которое там есть. Что оно значит, я не знаю, но мне страшно и поэтому нахуй язык c++
884 581404
Сызнова решил вкатиться в (вечную) разработку рогаликов и иже с ними, есть GMS 1.4 Professional лицуха, но хочется ВОРКСПЕЙСА и свистелок с перделками. За полторы тыщи брать новый гамак не хотел, но сейчас на хамблобандле за 500 отдают. Купить или ну его нахуй?
885 581411
>>581404
В новом гамаке только косметические изменения. Лучше сразу на другой движок переходи.
image.png92 Кб, 394x312
886 581418
>>581404
1500 стоит возможность экспорта на мак линух и шинду. Там за 500р продается только экспорт на шиндовс.
скидка 20% оч много конечно.
887 581595
>>581135

>меня бесит слово override, которое там есть. Что оно значит, я не знаю


Ты странный. Оно позволяет перезаписывать одну и ту же функцию, как угодно, в рамках наследуемого класса.
888 581613
>>581595
Спасибо, понял
889 581638
>>581411

>Лучше сразу на другой движок переходи.


Здравствуйте! Я бы хотел предложить вам молодой, развивающийся движок ПЩВЩЕ. Опенсорсный!
890 581987
>>581418

>только экспорт на шиндовс


Как что-то плохое. Аудитория на маках и линухах стремится к нулю, а те кому очень нужно могут под вайном запустить.
15054360006150.png801 Кб, 794x798
891 582579
>>579640

>не иметь 64битную винду


>не пиратить

892 582942
Антоши, давно ничё не писал на гамаке, в последний раз пользовался версией 8.1, а гмс1.2 на то время не понравился т.к. интерфейс стал выглядеть уёбищно и игры компилились долговато.

Так вот, как со всем этим сейчас дела обстоят? Правильно понимаю что уже имеются компиляторы под пс4,хуящ,свитч? Как с пиратством?

В принципе восьмёрка еще пашет, но, бля, это всё же говно мамонта и пора обновиться.
893 583018
>>582942
не знаю, есть пиратская версия для компиляции под десктоп. Но если найдешь под андроид или html пиратку, буду благодарен и скину денежку
894 583024
>>583018
Нашёл только такую, не ебу какие компиляторы работают.
https://thepiratebay.org/torrent/23041242/Game_Maker_Studio_2.1.4.285
895 583144
>>583024
актуальный кряк практически всегда можно найти тут в обсуждении(на нынешнюю кста там тоже есть),сам пользовался пока не купил (ведройд аштимель и шиндовс робочие проверял сам)
https://gmsc-97507.firebaseapp.com/
896 583793
>>583144
спасибо, анон. Под андроид же потом нужно будет всякие sdk устанавливать, лааадно
897 583899
>>583793
ну разок поеаться с сдк придется ,но достаточно прочитать оф гайд на сайте йойо ,там все написано, только на пендоском , но даж по картинкам удет понятно
898 583999
Какая же блять убогая система слоев в гмс2...
899 584017
>>583999
какая есть, но и без слоев можно обойтись, глубина все так же работает ,как раньше
900 584130
>>583999
Зато таймер одной строчкой, лол.
901 588086
Тред умер?

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

Так вот, вопрос заключается в следующем:
Для каждой комнаты должен иметься список персонажей и их параметров (координаты, текущий спрайт и прочее подобное), триггеров катсцен и всего того, что может появляться и удаляться через прогресс истории.

Как и где их лучше хранить? Я предполагаю пока, что для этого хорошо подойдет json. Если через json делать, то для этого нужно использовать ds_map()? Как быстро гамак работает с ним вообще? Есть ли способы быстрее/оптимальнее?
902 588108
>>588086
Да, все стрктуры данных в гамаке делаются через ds_list, ds_map, что пиздец как неудобно.
903 588128
>>588108
Ну, выбора особо и нет, а изобретать велосипед вряд ли выйдет производительно. Буду работать с тем, что дают.
904 588334
>>588086
да хоть в ини файле можешь хранить все это ,как тебе удобнее
905 588357
>>588334
мимо анон, храню в ини файле все что есть, тому что проще. А массивы нахуй нахуй
906 588567
ГМ лучше Годота?
907 588568
>>588567
Две хуйни
908 588570
>>588568
А на чем делать 2д сайдскроллер типа Лизы?
909 588572
>>588570
Юнити, если новичок констракт. Ну можно и на гамаке, но он говно бесперспективное.
910 588584
>>588567
Лучше.

Отлично задокументирован, куча отличных туториалов.

>>588570
Для 2д бери гамак. Годотошизика >>588572 шли на хуй.
изображение.png83 Кб, 1246x895
911 588604
>>588584

>Годотошизика >>588572 шли на хуй.


Там юнитишизик ващет.
А этот ваш гамак может похвастаться опенсорсностью?
мимо-гододик-шизик-годаун
sage 912 588623
>>588604

>похвастаться опенсорсностью?


>похвастаться


Это всё равно, что хвастаться инвалидностью.
913 588625
>>588570
На том же, на чем делалась Лиза — RPG Maker.
914 588635
>>588623
Хммм, ну вот смотри, меня интересуют платформы: десктоп, мобилы, хтмл5 - на годоте я смогу создавать свои поделия бесплатно. Чтобы аналогичное сделать на гамаке, мне потребуется 99+149+199 = 400 баксов.
Итак, что такого крутого мне сможет предложить гамак, чего у меня нет в годоте?
915 588646
>>588635
А где игры-то на годоте? Почему их не видно?
916 588651
>>588646
Сходи в годотред, там тебя покормят ссылками на игры прямо из шапки и ты сможешь в 100500й раз сказать что "игры по ссылкам не игры, дайте игры на эртэ".
917 588652
>>588635
Бля, ну вот серьёзно. Ну хватит уже эти движкосрачи. Лучший движок тот, который лично ты лучше знаешь.
Если анон не знает ни одного - для него лучше будет тот, что проще изучить.
А с учётом того, что ему нужно 2D - стрелка указывает на два варианта: Construct2 или GameMaker.

>я смогу создавать свои поделия бесплатно


Не бесплатно. Ты не учитываешь своё время. Если ты вложил полгода (1000 часов примерно), то ты потратил минимум 1000*10=10000 долларов. 400 долларов - это 0,4 от всей суммы затрат. Или 40 часов.
Насколько дольше ты будешь разбираться в годоте/юнити/дельфи/уече и насколько быстрее(медленнее) ты тоже самое сделаешь в гамаке? Ответь на эти вопросы и ты поймёшь, что дешевле - годот или гамак.
Но это, опять же, будут твоя личная стоимость.
918 588653
>>588651

>игры по ссылкам не игры


Тетрис и марио можно и без движков запилить и бегать верещать - ВОТ ИГРЫ ВООООТ, ДВИЖКИ НЕ НУЖНЫЫЫ!
Нужно уже отдельный термин вводить "годотовская игра" как символ кала, высранного школьником на какай-нибудь конкурс школьников - высри хуйню за 48 часов!
919 588654
>>588652

>Бля, ну вот серьёзно. Ну хватит уже эти движкосрачи.


Щас пну в последний раз залётного додика и всё.
>>588653
Говноигры не продаются в стиме, сразу тонут на дне рейтингов. А игры на годоте успешно продаются в стиме. Обтекай.
920 588655
>>588654
Спасибо.
image.png746 Кб, 1096x664
921 588657
>>588604

>опенсорсность бесплатнасть


Это значит, что один аргентинский велосипедист, лежа на пляже в перерывах между написанием чиптюновой музычки и поревом жены будет делать фичи к движку очень долго с огромным количеством багов, не доводя ни одну до конца. Донатят им 10500 долларов в месяц на двоих.
922 588659
>>588657

>Донатят им 10500 долларов в месяц на двоих.


А тебе - нет. И ты знаешь почему.
Ди Каприо.png46 Кб, 247x250
923 588660
>>588659

>годот полное говно, вот четкие неопровержимые аргументы...


>а вот ты, а ты сам!...

924 588661
>>588660

>годот полное говно, вот четкие неопровержимые аргументы


>>588657

>Донатят им 10500 долларов в месяц на двоих.


Вот бы и мне так же впаривать говно лохам. Но не выйдет. И я знаю почему. И у тебя не выйдет. И ты знаешь, почему.
Себе-то не ври. А двач простит.
925 588685
>>588651
Нахуй мне куда-то идти? Ты не можешь сам расписать?
926 588700
>>588685
Он правильно сказал, не надо портить ламповейший тред вашими срачами. Пожалуйста, проследуйте оба в годо-тред.
927 588701
>>588700
Ты мне еще расскажи что мне делать.
928 589118
ну может гамак и имеет ограничения, однако это с лихвой компенсируется скоростью с которой ты можешь довести проект до финала, ибо сделан для людей
929 589238
>>589118
это пока ты не решишь прикрутить к игре что-нибудь сложнее стреляющего бегающего спрайта
930 589245
>>589238
прикрутил ,не ощутил
931 589246
>>589245
вон у мнфля спроси как тама с торидэ обстоят дела
932 589301
>>589246
А зачем мне 3д? Мне и в юнити кривого 2д хватило, ну нахуй
933 589325
>>589246
нет спасибо я не голодный
934 589328
>>589301

>А зачем мне 3д?


За тем, что все долбоебы думают - 3д сложна, сделаю 2д говно на мобилки! - И теперь на мобилках такой поток хуйни, что никак не пробиться. Следующий этап осознания - на мобилках ловить нечего, сделаю 2д хуйню для стимы... Но там тоже самое...
В итоге придешь к тому, что 3д делать сложно, но конкуренция меньше и деваться некуда.
935 589345
>>589301

>Мне и в юнити кривого 2д хватило


Узнаю гэдэ. Заебавшись с двадэ в тридэдвижке, гдачер идёт в двадэдвижок и ебётся там уже с тридэ.
6756858.jpg51 Кб, 800x480
936 589349
937 589404
>>589345
Так и живу, на гамаке 3д, а если полезу в юнити/анрил, буду в 2д. Иначе не интересно.
938 589442
>>589349
>>589404
А мог бы делать игры, как наш Учитель >>589428
939 589507
Сап двощ. Пытаюсь в sprite stacking. Как можно реализовать поворот всех объектов в комнате? Хочу добиться эффекта как в dont starwe.
Пробовал через lenghtdir_x/y но безуспешно
image.png32 Кб, 494x323
941 589559
>>589551
Не завезли еще.
942 589562
>>589559
Немножко подождать еще!
943 589583
>>589559
Что не завезли? Вращай камеру при помощи view matrix.
944 589584
>>589583
>>589562
https://www.youtube.com/watch?v=NDH_UoQBToI#t=5m
нужно вот такое вращение
image.png15 Кб, 629x640
945 589649
В гамаке как то можно сделать так, чтобы спрайт который крутиться с помощью image_angle был как второй квадрат? мб шейдер какой или можно прям в игре рендерить это? А то если его просто крутить, то будет как третий квадрат, который совсем не пиксель перфект
946 589650
>>589584
тут какое-то хитрое 3д, сел-шейдинг или вроде того. Хотя можно навелосипедить, что уж.
947 589651
>>589650
Вот мне бы хоть узнать как это называется. А там и нагуглить можно
948 589653
>>589651
Cell-shading гугли.
cartest.gif209 Кб, 334x305
949 589661
>>589653
Спасибо анончик.
Все оказалось намного проще. Нужно было просто растянуть сурфейс.
как то пиздец проблематично это все было гуглить. с таким трудном нашел то, что нужно
950 589721
>>589649
попробуй выключить интерполяцию
951 589731
>>589661
Красота. Это несколько спрайтов, которые врашаются и смещены по вертикали друг относительно друга?
test4.gif1,5 Мб, 1244x951
952 589734
>>589731
угу. И делается всего одной строчкой.
Вот тут еще пиксель перфект замутил
953 589737
>>589734
Хорош. Красава.
Я так во флеше изгалялся в своё время.
954 589752
>>588567
ГМ со второй версии в говно скатился. Бери либо Юнити, либо Годот, либо ещё что.
1 (1).gif7,5 Мб, 700x394
955 589774
be576ec821cdd9c027b0affb2eac98f6.jpeg62 Кб, 777x583
956 589780
957 589781
>>589774
Сплайнодрочер детектид.
958 589864
В каких случаях нужно начинать использовать шейдеры?
959 589865
>>589781
что такое сплайн?
960 589866
>>589864
Когда хочешь сделать визуальный эффект, который не получается без них.
961 589882
>>589864
Когда тебе нужно искажать весь экран, либо делать что-то со всей картинкой в каждом кадре на уровне пикселей.
я-с-дивана-не-пинайте
962 589962
>>589752

>ГМ со второй версии в говно скатился


Почему? Я запускал ГМ2 и у меня вообще вопросов не возникло. Все удобно и понятно (с помощью ютуба). Черт, там даже встроенные туториалы есть.
963 589966
>>589962
Потому что годотошкольник срёт в треде. ГМ - отличный движок.
964 590040
>>589962
потому что гм для людей сделан ,чтоб все понятно было
965 590056
>>589962
Интерфейс слили в абсолютное говнище. Вместо нормальных вкладок или окошек, как в прошлой версии, какие-то обоссаные сплайны с воркспейсами. Сами элементы интерфейса увеличились раза в полтора, так что реального полезного пространства стало гораздо меньше чем было.
Сам же гмл порос каким-то говном -- добавили слои, которые на самом деле обёртка глубины (которую убрали, удачи теперь с depth = -y), с конвертацией строк намутили какой-то ёбаный пиздец с тысячей различных поведений вместо простого автокаста числа в строку.

При этом все, кто купил ГМС1, идут нахуй покупать это чудо заново. И ладно, добавили бы какие-то хорошие фичи, так нет же, сговнили интерфейс, глубину и добавили анимированные тайлы.

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

Я писал игорьки на гм порядка шести лет, но после такой хуйни свалил от него подальше - и ни капельки не жалею.
966 590084
>>590056

>Интерфейс слили в абсолютное говнище.


Вкусовщина. Я после интерфейса гмс2 не могу воспринимать интерфейс гмс1 вообще.

>(которую убрали, удачи теперь с depth = -y)


Так и делаю, всё абсолютно нормально. Совмещаю слои и depth. Слои удобны в room editor. Слой это просто ссылка на глубину.

>автокаста числа в строку


О чём ты, я не понимаю?

А вот дебагер в гмс2 сделали просто роскошным. Ещё бы дали возможность зумировать текстуры в предпросмотре и дебагать шейдеры.
967 590089
>>590084

>Так и делаю, всё абсолютно нормально. Совмещаю слои и depth. Слои удобны в room editor. Слой это просто ссылка на глубину.


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

>О чём ты, я не понимаю?


В ГМЛ чтобы в строку пихнуть число, надо делать вот так:
"value: " + string(someValue) + "."
Во всех нормальных языках это давно делается вот так:
"value: " + someValue + "."

Люди просили сделать нормальный автокаст, так эти долбоёбы устроили какую-то джаваскриптовую парашу и впилили наоборот. Теперь строки конверируются в числа. Иногда. А иногда не ковертируются, а вылетают. Например, 1 + "2" выдаст 3, а "1" + 2 - ошибку, нахуй.
Сурс: https://forum.yoyogames.com/index.php?threads/gml-consistency-in-gms2-v2-2-2.59856/
968 590093
>>590089
Я в курсе. И что? Для gui у меня слои вверху, для обхектов на карте набор слоёв ниже. В room_start я забираю минимальное и максимальное значение глубины для объктов (из первого и последнего слоёв, предназначенных для объектов), вычисляю шаг глубины, соответствующий шагу по y и каждому объекту добавляю room_start event с одной строкой
depth = obj_game.zero_depth + obj_game.depth_step*y;

Так на старте комнаты все объекты занимают свою глубину. Очень удобно, т.к. на карте их куча, но все распределены по слоям. Можно выключить все кусты, или все деревья и т.д.
969 590095
>>590089

>В ГМЛ чтобы в строку пихнуть число, надо делать вот так:


>"value: " + string(someValue) + "."



Я вообще не вижу в этом никакой проблемы. Наоборот, это, сука, нормально.

>Люди просили сделать нормальный автокаст



Со временем я начинаю понимать, что автоматическая конвертация переменных - это не очень хорошо. float должен быть float, real должен быть real, int не должен внезапно превращаться в real и т.д. Прибавлять к строке число не правильно.

Вытащить число из строки.. Это иногда может быть полезным.
Но

> 1 + "2"


блять, не надо так.
970 590097
>>590093

>Я в курсе. И что? Для gui у меня слои вверху, для обхектов на карте набор слоёв ниже. В room_start я забираю минимальное и максимальное значение глубины для объктов (из первого и последнего слоёв, предназначенных для объектов), вычисляю шаг глубины, соответствующий шагу по y и каждому объекту добавляю room_start event с одной строкой



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

>>590095

>Со временем я начинаю понимать, что автоматическая конвертация переменных - это не очень хорошо. float должен быть float, real должен быть real, int не должен внезапно превращаться в real и т.д. Прибавлять к строке число не правильно.



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

> Вытащить число из строки.. Это иногда может быть полезным.


Конечно. Только это должно быть выполнено в фиде отдельной функции, а не автокастом, который ещё и работает только в половине случаев.
971 590109
>>590056
Твой пост пропитан синдромом утенка. "Раньшибылалудше, Дуров, верни стену", ага. Каждый твой аргумент — "вот тогда было так, а щас вот так и мне не нра". Все с тобой ясно.
972 590122
чёртова обнова из-за неё все ини-файлы слетели, смена уровней порушена, пришлось игру урезать
973 590138
>>590097

>с ГМ свалил


Надеюсь, на годот свалил?
974 590139
проигрываю с тех челиков, которым новый интерфейс не нравится
975 590140
>>590122
Переходи на годот.
(и на JSON вместо ini;)
976 590156
>>590109
Так дело-то в том, что и у ГМС1 интерфейс был говном. Ужасно дёрганный и глючный. Это реально надо было поменять, но не в ущерб реальному рабочему пространству. Более того, на нотубуке с трекпадом воркспейсы - вообще какой-то пиздец.
Слои же - это классная концепция, которую давно пока было ввести. Но не так убого, как это сделали ЁЁ. Ведь можно же было оставить сортировку по глубине внутри слоя, и всё было бы круто. Даже дело не в том, что оно в принципе поменялось и это хуёво - дело в том, что текущая реализация ставит палки в колёса если хочешь depth = -y. ЁЁ просто поленились сделать по-нормальному, а обычным юзерам теперь это расхлёбывать

>>590138
На твою маму.
977 590157
Собственно, сейчас мне скорее кажется, что ЁЁ решили своей аудиторией сделать всяких художников и прочих неосиляторов (у них и 4к мониторы на пол-стены скорее всего есть, на которые этот интерфейс влезет), а программистам помахали ручкой.
978 590158
>>590157
Программисты на такой хуйне даже за деньги пилить не будут, все правильно разрабы делают.
979 590159
>>590158
Почему же? Видел много программистов, ковыряющих ГМ. Даже сейчас. Под ГМС2 даже нормальный редактор кода запилили, без обоссаных сплайнов и со вкладками.
980 590343
>>590159
так все эти сплайны вырубаются в настроках ,а так да ,сижу на этот самом редакторе
981 590344
>>590159
На стриме у галенкина издатель говорил, что если к нему приходят с годной игрой на гамаке то ее перепиливают на юнити сами потом.
982 590398
>>590344
Жоска, лол.
984 590415
>>590398
А чего жоскаво-то? Все современные движки сделаны по одному шаблону: майнлуп с колбеками и сиподобный синтаксис скрипта.
Тебе один раз нужно сделать образец для переноса игор с движка А на движок Б, в котором будут имитированы нюансы движка А с реализацией на движке Б. Например, встроенные функции-хелперы. В движке А допустим есть функция lerp(vec2 from, vec2 to, float step) и код игры завязан на неё, а в движке Б это метод вектора vec2.lerp(vec2 to, float step). Зная это, ты один раз пишешь примерно такую функцию-обёртку:
lerp(vec2 from, vec2 to, float step) { return from.lerp(to, step); }
И далее исходный код пихаешь без изменений. Ну это самый простой случай. На деле инди разрабы могут дичайшую дичь издателям приносить.
985 590423
>>590415
Жоска гамак обоссали.
986 590425
Как вывести через draw_text знак процента? Пробовал через chr(37) - не отрисовывается.
987 590426
>>590423
Не вижу обсыка. Анон сделал прототип на движке, в котором ему удобно делать прототип. Студия издателя перекинула прототип на профессиональный движок и сделала релиз.
988 590534
>>590425
нпросто в аргумент текста пишешь "%" ,если там квадрат ,то шрифт не поддреживает этот знак ,а можешь вот так string(значение) + "%"
image.png56 Кб, 923x829
989 590616
>>590534
Да, тупанул, действительно в шрифте просто не было символа. Вот все символы есть, а % нету.
990 591244
>>590109

> синдромом утенка.


Школьник детектед.
За гм не скажу, но очень часто бывает, что программы с новыми версиями становятся всё хуже и хуже.
991 591252
>>591244

>За гм не скажу


Тогда нахуй ты варежку свою раззявил?
992 591257
ffffffffff
993 591267
>>591252
Ты не понял, я это не для ёбнутых опущенцев писал, так что проходи мимо.
994 599028
Как сделать игру на гамаке?
995 599030
>>599028
Без задней мысли
996 599218
>>599028
Запускаешь туториалы Спалдинга и фигачишь по ним.
997 599405
>>599218
Каковы шансы, что я освою, если я туповатый? Английский язык знаю.
998 599406
>>599405
откуда мы блять знаем
пиздуй и пробуй мудила
999 599412
>>599406
Чому, кстати, тред мертвый?
1000 599413
>>599412
Вероятнее всего потому, что всем всё понятно.
Но крайней мере тем, кто пилит свои игры на гамаке.

Если что-то не понятно - спрашивай. Но не забудь перед этим прочитать мануал.
1001 599414
>>599406
Токсический петух токсичен.

>>599405
А как можно что-то не освоить? Если ты прикладываешь усилия - будут результаты. Если тебе нужна кнопка "сделать заебись" - её тут нет.

>>599412
Лучше так, чем говнометание двух шизоидов "юнити говно, нет годот говно".
1002 599564
>>599413
>>599414
Ок, спасибо.
1003 599783
Перекатывайтесь на юнити. Все равно рано или поздно упретесь в потолок гма.
1004 599804
>>599783
Тебе платят что ли за это, ебанутый?
1005 603149
Кто-нибудь знает, как за один draw text сделать разные цвета? Есть мб какой-то пример, весь гугл обошёл, везде написано что гамак на такое не способен.
SPOOPY.webm3,2 Мб, webm,
840x524, 0:43
1006 615607
Полгода перерыва, вчера пофиксил мальца свет и тени, запилил блуждающие тени или типа того, которые должны игрока убивать (но смерти пока нет), вроде нормально, хотя конечно стены надо все таки не цельным спрайтом делать, а четырьмя отдельными, а то обратную сторону видно, когда не должно.
Процедурную генерацию на потом отложил, я ее за час сделаю (не выёбуюсь, опыт есть и ворлд генерации и данжей), сейчас enviroinmental dangers, инвентарь, сейв/лоад, такое.
1007 623766
>>439561 (OP)

>Делимся опытом


Пишу на gmEdit, еле-еле нашел работу 10$ в час на удаленке, так вышло что из Unity3D, Cocos Creator'a и Phaser самая доходная работа именно на платформе game maker studio 2.

Остальные gms'ы лучше даже не трогать, они мертвы и не поддерживаются. gmEdit позволяет делает такие вещи как лямбды, даже какие-то корутины и фэйковые типы данных (аж через точку будут показываться, но само собой для такого трюка нужны энамы). Также помогает с аргументами скрипта, больше никаких грязных argument0, argument1,
просто пишешь #args val, foo, bar (а если в конце добавить запятую тогда уже можно работать с argument count для бесконечных аргументов)

Что могу сказать о том что такое game maker и почему он может быть интересен, в нем достаточно развитое сообщество, есть свои звезды программирования которые накодили к нему сторонних инструментов и библиотек, lazyLoad, gmEdit, gmLife, gmsTweens, Scrimblе, HaxeToGML, был еще какой-то для более интерактивной справки
Плюс к этому он позволяет писать логику игры местами даже лучше и быстрее чем на каком-нибудь lua.
Для меня этих плюсов достаточно чтобы покрыть его минусы. Но само собой есть игры, в которых я гмс никогда бы не выбрал (но блин он такой халявный местами, что если честно через скрежет открывал юнити, но что поделать, это жизнь, а я программист, который должен решать задачу)
1008 623767
>>623766
Также хочется добавить к этому сообщению, что я стал ценить свое время. Поэтому не желаю денег на инструменты, чтобы заработать их еще больше. Нет смысла искать пиратские версии, просто даже из-за обновлений и поддержки авторов, которых можно донимать, потому что купил их инструмент)
1009 623768
>>495719
в некоторых случаях и инвентарь требует оптимизации, потому что по итогу в некоторых случаях 180 или больше ячеек инвентаря быстрее работают в объектах, чем в фейковых структурах)
Но быстрее они будут работать только если не будут каждый шаг обновлять свою позицию по центру, а только при открытии например.
Есть кейсы когда важно оптимизировать, а иногда нафиг не нужно.
Обновить тред
Двач.hk не отвечает.
Вы видите копию треда, сохраненную 11 ноября 2020 года.

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

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