Разработчик платформера VVVVVV открыл доступ к исходному коду игры Статьи редакции
Терри Кавана выложил на GitHub как мобильную, так и ПК-версию — в честь десятилетия своей работы.
VVVVVV — платформер, который рассказывает о космическом корабле, потерпевшем бедствие. Из-за него команда оказывается запертой в разных отсеках, а на их спасение отправляется капитан судна, Виридиан.
Критики высоко оценили VVVVVV — рейтинг ПК-версии на Metacritic составил 81 балл. До 2017 года игру портировали на мобильные платформы, а также на Nintendo 3DS, Switch, PS4 и PS Vita.
Как отметил Терри Кавана, в исходном коде VVVVVV можно увидеть, какие ошибки и просчёты он допустил, когда только начинал разрабатывать игры, а также понять, как сказалось портирование платформера с Flash на C++.
Так, при использовании Flash возникали трудности с доступом к внешним данным, из-за чего все уровни VVVVVV экспортируются в игру через редактор карт. Кавана добавил на GitHub код этого редактора, однако для его запуска требуются компиляторы Allegro и Mingw, поэтому разработчик создал альтернативный инструмент для экспорта уровней.
В честь десятилетия VVVVVV разработчик Серхио Корнага предложил поклонникам игры создать для неё новые уровни — все желающие могут использовать для этого бесплатный редактор Make and Play, который Терри Кавана выпустил в 2014 году.
Терри Кавана выпустил помимо VVVVVV ещё две игры — в 2012 году разработчик представил минималистичный экшен Super Hexagon, а в 2019 году — «рогалик» Dicey Dungeons.
У него там свитч на 4к кейсов
('._.)
Ну да, ну да, можно ведь иначе.
Хз, имхо, конечно, но даже в таком стиле будет лучше: там любое исправление может сломать что-нибудь в самом неожиданном месте.
Спорно, потому что в случае с кодом который щас его хотя бы понять легче, а с кодом в "ООП" стиле порог входа до небес поднимается и там черт ногу сломит.
А если не использовать мемасики как аргумент? У ООП свои плюсы и фабрики не на пустом месте возникли. Вот элементарно: найти как связаны состояния в таком коде то ещё удовольствие, даже если ты один это программируешь. А если несколько человек? Кто-то где-то воткнул state+=10, и удачи выяснять почему у тебя при телепортации персонажа внезапно взрывается корабль.
Дискуссия скучной станет, а так хоть и над мемами покекать, и обсудить интересное.
По твоей теме, опять же: даже если правильно использовать, то порог входа все равно появляется.
Лично я некоторые паттерны так и не умею правильно юзать, потому стараюсь избегать пока не пойму (а ведь есть те, кто не осознают что они не вполне осознают смысл паттернов и юзают их).
Ну в сложном ООП коде виноват не подход, а программисты, которые копируют прочитанные книги целиком себе в мозг и применяют вычитанные там "офигенные практики" этот самый мозг не используя.
Интерфейсы, стремление к SOLID (не забывая о KISS) и модульность это минимальный мастхев, который очень тяжело оспорить.
Разве что, в случаи с вот такими платформерами, наверное, можно забить. Иногда. Но лучше не забивать, а то потом при малейшей модификации будет каскадный эффект из багов и дерьма на голову, который будет в разы сложнее закрыть без нормальной архитектуры.
Разделение сложной задачи на мелкие тестируемые части это тру, а стрельба по воробьям из БФГ нет, это разумеется.
Тут соглашусь, даже в CSS верстке соблюдается модульность (БЭМ, OOCSS), так что это мастхэв в любой системе крупной.
Это рекомендации, а не правила. Программирование не заканчивается на ООП. Ничто не мешает писать на современных языках в процедурном стиле, да и большая часть проблем там на самом деле надумана.
Я хотел выразить мнение что код лютое говно, но побоялся что заминусят и начнётся "сперва добейся".
Ну чувак в очень удачное время с парой игр выскочил, выехав на волне инди-хайпа - считай что в лотерею миллиард выиграл, такой фокус он и сам уже не повторит...
Его Дарси денжен пару дней назад на главной Стима была
и он не просто попал он своим vvvvv создал инди хайп
Причем тут инди-хайп и везение, он просто талантливый гейм-дизайнер. VVVVVV - один из лучших платформеров своего времени. У него отличные флеш-игры были на Kongregate, тот же Don't Look Back - игра абсолютно потрясающая.
Ну да, говнокод, но кому какое дело? VVVVVV сначала писался на флеше - может так было удобнее портировать с флеша.
Тот случай, когда можно не бояться, что украдут даже имея на руках исходники
Поменьше, на самом деле, но да - god function как она есть. Впрочем там и остальное в схожем стиле.
Вы шарите в программировании? Свич хорош с точки зрения оптимизации?
Оффтоп: С точки зрения оптимизации надо смотреть как часто будет вызываться эта функция, чтобы оптимизация вообще имела смысл: если, допустим, функция общёта физики, которая вызывается десятки тысяч раз в секунду требует тщательной оптимизации, то машина состояний (которая приведена в примере), которая отрабатывает в лучшем случае десятки раз в секунду, мягко говоря не требовательна к оптимизации, там вполне можно ставить в приоритет читаемость и поддерживаемость.
Онтопик: Конкретные конструкции языка очень слабо влияют на производительность, поэтому без разницы что именно будет использовать if или switch-case.
Песос.
SHIIIIIIIIIIIIIIIIIIIIIIIIT
может что-то автогенеренное
Это код уровней))
ну там же редактор уровней есть, как я понял?) Вот эта портянка и есть наверное output этого редактора, которая потом подается как input в саму игру. Вряд ли он руками эти простыни писал)
Редактор уровня был написан отдельно, чтобы портировать уровни из Flash.
Мне очень сложно поверить, что он эти простыни писал и отлаживал руками, но если это так, то это очень сильная грусть
Вы мой комментарий читали?
https://github.com/TerryCavanagh/VVVVVV/blob/master/mobile_version/src/gameclass.as
Вообще класс
функцию немного раздуло, подумаешь
Комментарий недоступен
Тебя не смущает время?
Комментарий недоступен
Хз, я думал в милом котике. То что время пошло назад - ломает всю шутку.
Что кот отправился в прошлое?
...что прошло больше 12 часов (а судя по окну - больше 24)?
Комментарий недоступен
Кто помнит светящуюся пилюлю отгороженную одним квадратиком и ебучий тоннель с шипами к ней на несколько экранов - ставьте плюс.
Помню как от балды купил за 3 копейки и очнулся уже пройдя. Странно аддиктивная игра.
А музон какой зачётный...
Купил только из-за саундтрека.
Десять лет. Как вчера играл.
Ты вчера и играл. Поменьше делореаном пользуйся.
Получил игру в первых хамбл бандлах, в своё время понравилась.
Очень крутые игрушки делает, попробуйте поиграть в super hexagon
Комментарий недоступен
Классика! Почему-то я примерно этого и ожидал.
Комментарий недоступен
Играю в кубики сейчас. Очень неплохо
Комментарий недоступен