Mariya Mariya

Всем привет!
Начали работу над мебелью в домик Сырны, и первым сделали чайный столик с чайным сервизом. А так же продолжаем работу над анимациями.

Wings' might Wings' might

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

alexprey alexprey

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

Dreaman Dreaman

Всем привет!
Для проекта "Mental State" разработано новое устройство, которое уже полностью функционирует внутри игрового мира. Оно носит название "Репульсивер". Совместно с очередными большими воротами это устройство образует новую головоломку...

...
Mariya Mariya

Всем привет!
На этой неделе мы научили Сырну летать!

Tartal Tartal

alexprey, кастомизации - создание внешности персонажа? Я всегда любил это, но не думаю, что это будет к месту в мясном шутере)
EfimovMax, да, есть немного)

Tartal Tartal

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

alexprey alexprey

Первая тема крутая очень!

EfimovMax EfimovMax

MyPixel Games, напиши мне в Вк https://vk.com/efimovmax
Я работал с вокселями, смогу помочь.

alexprey alexprey

MyPixel Games, где есть скрын с видом сетки? По идее же легко конвертится в простой меш группировкой + генерацией текстурной карты без фильтрации

MyPixel Games MyPixel Games

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

alexprey alexprey

MyPixel Games, хм, такие простые модельки, странно, что это приносит проблемы с производительность

MyPixel Games MyPixel Games

Jusper, антураж + проще в производстве. Конечно, с оптимизацией все не так хорошо. Точнее, совсем не хорошо.

Tartal Tartal

Как раз то, что нужно. Большое спасибо за собранную информацию)

Jusper Jusper

EfimovMax, точно, воксели :)

EfimovMax EfimovMax

Jusper, под лоуполи+пиксели ты имеешь ввиду воксели?)

Jusper Jusper

У меня возник вопрос)
Почему вы выбрали именно такой (лоуполи + пиксели) визуальный стиль?

EfimovMax EfimovMax

Tartal, второй на обезьяну похож, а третий на михалыча с завода :)
Мне нравится первый вариант

Логотип проекта Game Maker

Ещё 10 советов и трюков GameMaker Studio2. Часть 2

Ещё 10 советов и трюков GameMaker Studio2. Часть 2

Добро пожаловать в продолжение списка трюков и советов по GameMaker Studio 2. Независимо от того, знакомы ли вы уже с этим движком или только начали его изучать, можно узнать что-то новое.

Ссылка на первую часть

#11 Подключите Твиттер!

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

///tweet_score();       
var tweet = "I scored " + string(score) + " points in this game!";      
url_open_ext("https://twitter.com/intent/tweet?text=" + string(tweet), "_blank");    

Для получения дополнительной информации посетите этот сайт
А так же не забудьте сначала сделать специальный URL. Больше информации

#12 Как разделить тысячные в числе

Пример, как вставить запятые в числа для разделения тысячных (например, 1234567 -> 1,234,567):

/// @function add_commas(integer, separation);      
/// @description Insert commas in a number, from right to left, every separation spaces      
/// @param {real} The input value      
/// @param {real} Number of digits grouped between commas      
     
var str = string(argument0);     
var sep = argument1;     
for (var i = string_length(str) - (sep - 1); i > 1; i -= sep) {     
  str = string_insert(",", str, i);     
}     
return str;  

#13 Используйте инверсию логических переменных

Это уменьшает количество кода, и действительно очень удобно!

if (keyboard_check_pressed(ord("S")))     
  sndEnabled = !sndEnabled;    

В приведенном выше примере переменная sndEnabled переключается между истиной и ложью при каждом нажатии клавиши S.

#14 Автоматическое форматирование кода

Просто вставьте свой код по ссылке ниже, и он автоматически красиво оформится!
http://jsbeautifier.org
Отлично работает для GML, не взирая что он предназначен для JavaScript.

#15 Камера как в Nuclear Throne

Пример камеры, которая напоминает ту, что была в игре Nuclear Throne. Этот фрагмент кода центрирует камеру, между obj_player и курсором мыши.

var cam = view_camera[0];     
var xpos = (obj_player.x + ((mouse_x - obj_player.x) / 2)) - camera_get_view_width(cam) / 2;     
var ypos = (obj_player.y + ((mouse_x - obj_player.y) / 2)) - camera_get_view_height(cam) / 2;     
camera_set_view_pos(cam, xpos, ypos);  

#16 Ремапинг диапазонов чисел

Переназначение числа arg0 из одного диапазона (arg1,2) в другой (arg3,4).

/*      
value = 110;      
m = Map(value, 0, 100, -20, -10);      
// m = -9      
*/     
///Map(val, min1, max1, min2, max2)      
return argument3 + (argument4 - argument3) * ((argument0 - argument1) / (argument2 - argument1));    

#17 Инкрементное вращение на 45 градусов

Код для поворота спрайта к направлению мыши, с шагом в 45 градусов, для 8-сторонней ориентации.

var dir = point_direction(x, y, mouse_x, mouse_y);     
image_angle = round(dir / 45) * 45;    

#18 Шестнадцатеричный цвет в GMS

Вначале изучения GameMaker, у многих возникают сложности с понятием в нём кода цвета. GameMaker хранит цвета в формате "little endian". Из-за этого цветам назначается $BBGGRR вместо шестнадцатеричного #RRGGBB:
Желтый в HEX: #FFFF00
Желтый в GMS: $00FFFF

#19 Точность чисел

Как бы это ни звучало странно, не всегда операция 0.5 + 0.5 выдаст результат 1 для переменных с плавающей точкой, а на самом деле что-то вроде 1.000000000001.
Чтобы обойти это, вы используйте функции floor() или round() для фиксации целого значения.

#20 Выражения и функции GameMaker оцениваются по-разному при использовании компилятора YoYo

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

val = max(num, ++num, num++);  

Ссылка на оригинал



В 12 подсказке, что то не так с кодом... Толи название переменной не то где то используется, толи логика
В 13 код и текст немного разнятся, не критично, но может путать)
В 16 можно подробнее о чем речь? Это получается что то вроде перевода единицы измерения аля цельсий - > кельвин?
На счёт 19. А что если сравнивать два флоата? В GMS есть такая же проблема как и в других языках?

Summon EfimovMax

alexprey,
12 - Опечатка (set -> sep), фиксед
13 - Фиксед)
14 - Это скрипт для изменения числа в определённом ранге (на определённое число из заданного ранга)
19 - Здесь я что-то конкретного не скажу, кроме что в GMS нельзя задать тип переменной, из-за этого может произойти штука, описанная в пункте. Можно просто запомнить, что если число точно Int, то стараться его сразу округлять floor'ом

EfimovMax, спасибо за фиксы :3
Да, тяжело в GMS с дробными числами...