PVS-Studio corporate blog
Open source
C++
Game development
C
Comments 19
+12
if( rng( 2, 7 ) < abs( z ) || rng( 2, 7 ) < abs( z ) )

Это похоже на бросок кубика с реролом реализованный в лоб. Если rng — это генерация случайного числа в указанном диапазоне, то явно так и задумано.
+2
Собственно, да. Да и вообще для любых нечистых функций такое выражение может иметь смысл.
0
Согласен. Хоть проблема была обозначена не та, но тем не менее анализатор выявил такой грубый подход. Что может быть полезно, ибо игра активно разрабатывается с периодической сменой разработчиков.
+1
А так ли плох этот подход? Обязательно нужно городить что-то типа rollMultiple(2, 7, abs(z), 2)?
0
Разумеется, всё зависит от ситуации, а по представленному фрагменту я не могу решить, как лучше. Если там с десяток проверок if-ами, то я бы скорее пошёл по другому пути. Ну а если функция итак компактная, то решение
if( rng( 2, 7 ) < abs( z ) || rng( 2, 7 ) < abs( z ) )
мне бы понравилось больше.
+2
По-хорошему, тут стоило добавить комментарий, что это так и задумано.
0
Интересно, что использовалась эта проверка в создании подуровней, поэтому действительно не совсем ясно, что здесь подразумевалось.
0

Darkest Dungeon считается за Roguelite? Для меня это новость…
А вообще, спасибо за разбор, весомый повод самому поработать над некоторыми задумками :)

+2
Roguelike, roguelite, roguelike-like и т.п. это болезненная холиварная тема для всех причастных.
Кстати, холиварное восприятие быстро проходит после участия в 7drl.
0
В марте завершился очередной джем 7drl 2019, в котором я немного поучавствовал в качестве одного из судей. И среди таких игр появляются оригинальные, но популярными даже среди лучших почти никогда не становятся.
0

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

0
Подобная стратегия в 7drl не имеет смысла по следующим причинам:
1) это не совсем соревнование, как в других джемах, например, на ич.ио. Да, Вы можете занять первое место, но наград никаких не будет;
2) популярность у этого события чрезвычайно низкая. Да, оно у многих на слуху, но реальных загрузок от этого события очень мало. Поэтому если хочется пиара таким способом, то лучше идти в другие джемы — больше закачек получите (хотя похоже многие так и делают, судя по результатам). Среднее количество оценок от жюри — 2-3 штуки (да-да, так мало);
3) оценивать вас будут другие участники, которые зарегистрировались в качестве жюри, поэтому их обмануть будет сложнее.

Разрабатывать короткий рогалик с минимальной графикой очень интересно, но очень больно (как до, так и после).
+1
Ну Dwarf Fortress тоже записали в рогалики, хотя это справедливо только для (не основного) Adventure режима.
0
Ух, блин! Лютая и доставляющая игра. Чего там нового за последние 3-4 года завели? Пилят проект? Если где-то и появится первый AI, который себя осознает сам себя — то наверное в этой игре :)). Очень уж всё детально сделано.
0
Кстати, чисто из интереса: а как картинки с ASCII-единорогами делались? Это какая-то программа автоконвертации, или самодельный арт?
+1
И с помощью онлайн конвертеров и с помощью Notepad++ (например, щупальца у неудачливого единорога :D). Там главное уловить принцип.
0

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


Спасибо PVS-Studio! Вы замечательные!

Only those users with full accounts are able to leave comments. , please.