Game
Undertale: New Hope

20 days ago

Dev-log (25 October 2025)


EN:


Undertale: New Hope –  devlog of October 2025

Work on all currently planned buttons for the battle interface has been completed. The list may be expanded as we introduce new weapons and abilities into the game.

0.gif

Work has begun on mini-games specific to each weapon in combat, which, when successfully completed, will inflict damage on the monster. Let's take a closer look at them.

Stick. To deal maximum damage, you need to hit the arrow pointer as close to the center of the green zone on the scale as possible. But this is not as easy as it seems at first glance, because the stick is heavy and has momentum and inertia, which can prevent you from hitting the target with perfect accuracy.

2.gif

Toy knife. It was decided to use a version close to the classic one, but with the addition of the possibility that the target indicators would appear from different sides.

3.gif

Gloves. The mechanics of quickly pressing the Z key after an attack have been reworked into a separate mini-game, where you must fill the damage bar quickly (very quickly) by pressing the button that appears on the screen within the given time.

4.gif

Notebook. Solve three randomly generated math problems of increasing difficulty before the bell rings to maximize your DMG.

5.gif

Gun. Aim at the center of the target, then zoom in as much as possible to hit it and deal maximum damage. And remember that the bullet may not fly straight to the center, but will land within the zoom circle, so the smaller it is, the more accurate the shot will be. Hurry up, because you don't have much time to aim!

6.gif

Chara and Asriel's knives. They also kept the original mechanics, even though they got a bit complicated with a bunch of patterns, but they got a unique color scheme that's different from the other attacks.

7.gif
8.gif

Now, before saving a screenshot taken with the built-in screenshot tool to the device's memory, the game will ask the player to confirm the screenshot with a preview.

1.gif

Extended support for surface transformations based on projection matrices has been developed and implemented. This update allows you to work with surfaces in the same way as with sprites, namely to transform them (scale and rotate) relative to an arbitrarily selected point. Previously, developers had to convert the surface into a dynamic sprite, which significantly consumed system resources and had low compatibility with mobile operating systems (as demonstrated by the infamous third attack of the Knight in our team's port of Deltarune). The code for the draw_surface_offset_ext() function is provided to assist future developers and, thanks to the correct naming of the input arguments, does not require additional documentation:

var _surface_index = argument0;

var _surface_xoffset = argument1;

var _surface_yoffset = argument2;

var _x = argument3;

var _y = argument4;

var _image_xscale = argument5;

var _image_yscale = argument6;

var _image_angle = argument7;

var _image_blend = argument8;

var _image_alpha = argument9;

var _matrix_translate_neg = matrix_build(-_surface_xoffset, -_surface_yoffset, 0, 0, 0, 0, 1, 1, 1);

var _matrix_scale = matrix_build(0, 0, 0, 0, 0, 0, _image_xscale, _image_yscale, 1);

var _matrix_rotate = matrix_build(0, 0, 0, 0, 0, _image_angle, 1, 1, 1);

var _matrix_scale_rotate = matrix_multiply(_matrix_scale, _matrix_rotate);

var _matrix_translate_pos = matrix_build(_x, _y, 0, 0, 0, 0, 1, 1, 1);

var _matrix_final = matrix_multiply(_matrix_translate_neg, _matrix_scale_rotate);

_matrix_final = matrix_multiply(_matrix_final, _matrix_translate_pos);

var _matrix = matrix_get(matrix_projection);

matrix_set(matrix_projection, _matrix_final);

draw_surface_ext(_surface_index, 0, 0, 1, 1, 0, _image_blend, _image_alpha);

matrix_set(matrix_projection, _matrix);

When visiting a new location for the first time, the player will be shown a video clip presenting it. The version of Game Maker used to develop Undertale: New Hope does not natively support video files, so it was decided to integrate an extension into the mod that uses its own proprietary video file format, GMLVideo, developed by Taylor Dale. Unfortunately, this extension was based on an imperfect code base, and before it could be released into production, all of these flaws had to be fixed, namely:

restore the standard video conversion mode (due to missing native libraries, the original converter only worked in “fast” mode with limited video compression capabilities);

restore the ability to rewind the video to the desired moment, which was stated in the documentation but for some reason was missing in the final product;

add options for estimating the length of the video sequence, the current playback position, the video status, the current volume, and some other parameters;

add protection against video memory buffer loss by duplicating the last frame in RAM (a critical fix that helps prevent graphic artifacts when switching from windowed mode to full screen or back during video playback);

fix many other minor bugs.

 

All of the above corrections have been published in the public domain and are available at the following link: https://github.com/GFOXSH/FreeGMLVideo

 

Anti-piracy protection has been updated. A system based on encrypted audio groups has now been introduced into the mod, which is already actively used in Deltarune. This has improved the game's performance and reduced its RAM consumption. I would also like to make a remark for those who do not understand the purpose of this protection. It is not needed to protect the mod from piracy (since it will be distributed completely free of charge), but to prevent it from being fully playable if you do not have a license for the original Undertale. Without a verified license, you will only be able to play the mod until the end of the Ruins, as in the original Undertale demo, and only remixes will be available in the game, without the original soundtracks.

 

In September, a method for objectively evaluating the performance of each member of the Hopes&Dreams team was developed and launched in pilot mode. It has proven itself as a means of increasing the overall productivity of the team by creating an additional incentive to work in the form of healthy competition for the title of best employee in the department and allows for a more even distribution of responsibilities among team members to avoid emotional burnout. At the moment, the methodology has been implemented in the sprite and code departments.

According to early results, productivity in the sprites department was:

   W. D. Matvey - 67%

   Nightdale - 58%

   Iccing - 54%

   Cute Fenya - 21%

   Thus, the department's productivity was 50%.

image.png

GFOXSH stood out in the code department with a performance of 75%. The average performance of the department before was only 40%.

image.png

RU:


Undertale: New Hope – девлог от октября 2025

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

0.gif

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

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

2.gif

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

3.gif

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

4.gif

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

5.gif

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

6.gif

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

7.gif
8.gif

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

1.gif

Разработана и внедрена расширенная поддержка трансформаций поверхностей на основе матриц проекции. Это обновление позволяет работать с поверхностями также, как со спрайтами - а именно трансформировать их (масштабировать и вращать) относительно произвольно выбранной точки. Раньше разработчикам для этого поверхность преобразовывалась в динамический спрайт, что значительно расходовало расход системных ресурсов и имело низкую совместимость с мобильными ОС (установлено на примере печально известной третьей атаки Рыцаря в порте Deltarune от нашей команды). Код функции draw_surface_offset_ext() в помощь будущим разработчика прилагается и благодаря корректному именованию входных аргументов в дополнительном документировании не нуждается:

var _surface_index = argument0;

var _surface_xoffset = argument1;

var _surface_yoffset = argument2;

var _x = argument3;

var _y = argument4;

var _image_xscale = argument5;

var _image_yscale = argument6;

var _image_angle = argument7;

var _image_blend = argument8;

var _image_alpha = argument9;

var _matrix_translate_neg = matrix_build(-_surface_xoffset, -_surface_yoffset, 0, 0, 0, 0, 1, 1, 1);

var _matrix_scale = matrix_build(0, 0, 0, 0, 0, 0, _image_xscale, _image_yscale, 1);

var _matrix_rotate = matrix_build(0, 0, 0, 0, 0, _image_angle, 1, 1, 1);

var _matrix_scale_rotate = matrix_multiply(_matrix_scale, _matrix_rotate);

var _matrix_translate_pos = matrix_build(_x, _y, 0, 0, 0, 0, 1, 1, 1);

var _matrix_final = matrix_multiply(_matrix_translate_neg, _matrix_scale_rotate);

_matrix_final = matrix_multiply(_matrix_final, _matrix_translate_pos);

var _matrix = matrix_get(matrix_projection);

matrix_set(matrix_projection, _matrix_final);

draw_surface_ext(_surface_index, 0, 0, 1, 1, 0, _image_blend, _image_alpha);

matrix_set(matrix_projection, _matrix);

 

При первом посещении новой локации игроку будет показываться презентующая ее видеовставка. Версия Game Maker, на которой разрабатывается Undertale: New Hope не имеет нативной поддержки видеофайлов, в связи с чем было принято решение интегрировать в мод расширение, использующее свой собственный проприетарный формат видеофайла GMLVideo, разработанного Тейлором Дейлом. К сожалению, данное расширение имело в своей основе несовершенную кодовую базу и, прежде чем пускать его в продакшн, пришлось исправить все эти недочеты, а именно:

восстановить стандартный режим конвертирования видео (оригинальный конвертер из-за недостающих нативных библиотек работал только в «быстром» режиме с ограниченными возможностями сжатия видеоряда);

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

добавить опции для оценки длины видеоряда, текущего положения воспроизведения, состояния видео, текущей громкости и некоторых других параметров;

добавить защиту от потери буффера видеопамяти через дублирование последнего кадра в оперативной памяти (критическое исправление, которое помогает предотвратить графические артефакты при переходе из оконного режима в полноэкранный или обратно во время воспроизведения видео);

исправить множество других мелких недочетов.

Все перечисленные исправления были опубликованы в открытом доступе и доступны по ссылке: https://github.com/GFOXSH/FreeGMLVideo

 

Получила обновление антипиратская защита. Теперь в мод была введена система на основе зашифрованных аудиогрупп, которая на данный момент уже активно применяется в Deltarune. Это повысило производительность игры и снизило потребление ею оперативной памяти. Хочется также сделать ремарку для тех, кто не понял, для чего нужна эта защита. Она нужна не для того, чтобы защитить мод от пиратства (т. к. он будет распространяться на полностью безвозмездной основе), а чтобы в него нельзя было полноценно сыграть, если у Вас нет лицензии оригинального Undertale. При отсутствии подтвержденной лицензии Вы сможете пройти мод только до конца Руин, как было в оригинальной демо Undertale, при этом в игре будут доступны только ремиксы, без оригинальных саундтреков.

 

В сентябре месяце была разработана и запущена в пилотном режиме методика объективного оценивания производительности каждого члена команды Hopes&Dreams. Она хорошо зарекомендовала себя как средство повышения общей производительности команды за счет создания дополнительного стимула к работе в виде здоровой конкуренции за звание лучшего сотрудника в отделе и позволяет более равномерно распределять обязанности между членами команды во избежания эмоционального выгорания. На данный момент методика внедрена в отделы спрайтов и кода.

По предварительным результатам производительность в отделе спрайтов составила:

W. D. Matvey - 67%

Nightdale - 58%

Iccing - 54%

Cute Fenya - 21%

Таким образом производительность отдела составила 50%.

image.png

В отделе кода особенно отличился GFOXSH с производительностью 75%. Средняя же производительность отдела составила 40%.

image.png

Hope - forever!



15 comments

Loading...

Next up

Dev-log (13 july 2025)

Dev-log (23 August 2025)

Dev-log (25 September 2025)

🍒Did you like the game? A demo is available for free on Steam.

✌️ Thanks for playing IndieGameiacs!

⚙️ Free Demo: http://bit.ly/UniDuni

📺 Full Video: https://youtu.be/5qEbVXg7GaQ

#steam #uniduni #clops #screenshotsaturday

Runestones: from concept to in-game model🗿

I was bored, so... ManutKat.

One of the most critical update for Sunblaze demo. Now you are able to pet a cat! Finally!

Horror WIP A track that will be featured in a future horror game soundtrack! Stay tuned!

Likes appreciated ✌️

#gamedev #composer #horrorgame #indiegame #IndieGameDev #soundtrack

Shuiro Haname. #Commission

Commission for @ShuHaname

An infected room from the second part of Cybel ! Are you up for some cleansing?