- PVSM.RU - https://www.pvsm.ru -
Сегодня — десятилетняя годовщина релиза VVVVVV!
Хотя, возможно, и завтра — строго говоря, впервые игра стала доступной 3 часа утра по GMT 11 января 2010 года, спустя очень долгий день устранения каждого найденного мной бага, создания сборок последней минуты [1] и попыток медленно закачать всё на сервер по чрезвычайно ненадёжному Интернет-соединению, которое постоянно разрывалось. Но я всегда живу девизом "завтра не настало, пока ты не проснулся", поэтому считаю настоящей датой релиза 10 января <3
Боже мой, десять лет.
VVVVVV была такой важной для меня игрой, что я даже не знаю, с чего начать. Мне хотелось отметить эту дату как-то по-особенному, поэтому сегодня я раскрываю исходный код игры!
[Исходный код VVVVVV на github] [2]
В репозитории содержится две версии — десктопная, в 2011 году портированная Саймоном Ротом на C++ [3], и более поздняя, которую обновлял и поддерживал Итан Ли [4], а также мобильная версия, написанная на Actionscript для Adobe AIR, основанная на первоначальной флеш-версии игры v1.0.
Хочу сказать огромное спасибо Итану Ли [5], сильно мне помогавшему, в том числе в подготовке репозитория для сообщества и организации объявления об этом на AGDQ (привет, спидраннеры!)! Спасибо, Итан!
Здесь логично будет задать вопрос: “Что вообще интересного в исходном коде VVVVVV?”.
Думаю, даже мельком взглянув на исходный код, можно быстро понять, что технически игра VVVVVV не так сложна! Даже по стандартам инди-разработчиков-самоучек, код довольно хаотичен.
Потенциально интересные заметки/объяснения того, почему всё выглядит именно так, как есть:
Не знаю, что мне сказать по этому поводу? Я был молод, и мне было интереснее создать что-нибудь на экране, чем реализовать это правильно. Вероятно, самое лучшее в исходном коде VVVVVV — он стал доказательством того, что можно слепить что-нибудь самостоятельно, даже если вы не очень хороший программист.
Оглядываясь назад спустя все эти годы, я нахожу очень забавным то, что по большей мере всё это было многократным копипастингом одних и тех же частей с изменёнными значениями. Из-за этого спустя десять лет код практически невозможно поддерживать, но в то время, когда я был в самой его гуще, мне удавалось выполнять очень быстрые итерации и добавление новых элементов. За прошедшее десятилетие я наработал привычки получше, и совершенно точно сильно вырос как программист, но теперь кажется, что работаю я из-за этого медленнее.
Пока я готовился к публикации статьи, Серхио Корнага [11] объявил о проведении геймджема в честь десятилетия VVVVVV!
VVVVVV’s 10th birthday eVVVVVVent! [12]
Я так рад этому, ха-ха, и я люблю сайт glorious trainwrecks, проводивший регулярные джемы Klik of the Month, в которых я постоянно участвовал примерно во время разработки VVVVVV. Кажется, он идеально подходит для этого джема!
Мне очень не терпится увидеть после завершения джема, что придумают люди, и я напишу в своём блоге большой пост с подведением итогов в стиле старых постов про пользовательские уровни VVVVVV [13], которые я когда-то писал <3
Ещё до того, как я зарелизил исходный код игры, я открыл бесплатный доступ к инструментам для создания и прохождения уровней VVVVVV в версии Make and Play [14] 2014 года! Её можно скачать отсюда! [14] Если вам интересно было бы создавать уровни в редакторе VVVVVV, то можете начать с этого топика [15]! Удачи!
Я и раньше говорил о том, какие чувства вызывает во мне VVVVVV — незадолго до первой годовщины я писал, что я испытывал, когда игра вышла, и о том, как её успех изменил мою жизнь [16]. На пятую годовщину я писал о том, что VVVVVV казался мне проектом, который бывает только один раз за всю жизнь [17], и что ни до, ни после ничто к нему даже не приблизилось.
Спустя десять лет я по-прежнему чувствую то же самое. Я невероятно горд VVVVVV и благодарен за всё. Хочу поблагодарить всех, кто помогал мне на моём пути — Магнуса за его невероятный саундтрек, Итана и Саймона за всю их работу, сделавшую игру доступной широкой публике, Беннетта за названия комнат, Стивена за помощь в создании в сборке для Mac в день выпуска. Эта игра для меня особенная, спасибо всем, кто играл в неё и поддерживал меня на протяжении десяти лет. Это многое для меня значит. <3
Автор: PatientZero
Источник [18]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/open-source/342824
Ссылки в тексте:
[1] создания сборок последней минуты: http://distractionware.com/blog/2010/01/conundrum/
[2] [Исходный код VVVVVV на github]: https://github.com/TerryCavanagh/vvvvvv
[3] в 2011 году портированная Саймоном Ротом на C++: http://distractionware.com/blog/2011/07/vvvvvv-version-2-0-launches-in-the-new-humble-indie-bundle/
[4] которую обновлял и поддерживал Итан Ли: http://distractionware.com/blog/2014/03/wanted-coder-for-vvvvvv-maintenance/
[5] Итану Ли: http://www.flibitijibibo.com/
[6] объявление временных переменных наподобие i, j и k как членов каждого класса: https://github.com/TerryCavanagh/VVVVVV/blob/master/desktop_version/src/Map.h#L95
[7] внутреннего скриптинга: http://distractionware.com/forum/index.php?topic=1089.0
[8] сюда: https://pastebin.com/9wqvBGuD
[9] Game::updatestate: https://github.com/TerryCavanagh/VVVVVV/blob/f7c0321b715ceed8e87eba2ca507ad2dc28a428d/desktop_version/src/Game.cpp#L612
[10] потрясающего спидрана игры за 50,2 секунды в категории any%: https://www.youtube.com/watch?v=qUA7i2fkGt8
[11] Серхио Корнага: https://twitter.com/corneaga
[12] VVVVVV’s 10th birthday eVVVVVVent!: https://www.glorioustrainwrecks.com/node/11759
[13] постов про пользовательские уровни VVVVVV: http://distractionware.com/blog/category/vvvvvv-levels/
[14] Make and Play: http://distractionware.com/blog/2014/06/outer-space/
[15] с этого топика: http://distractionware.com/forum/index.php?topic=322.0
[16] как её успех изменил мою жизнь: http://distractionware.com/blog/2011/01/stop-and-reflect/
[17] что VVVVVV казался мне проектом, который бывает только один раз за всю жизнь: http://distractionware.com/blog/2015/01/forgot-and-never-brought-to-mind/
[18] Источник: https://habr.com/ru/post/483518/?utm_campaign=483518&utm_source=habrahabr&utm_medium=rss
Нажмите здесь для печати.