Pull to refresh

Comments 31

От первого Крэша у меня очень противоречивые ощущения (поскольку играл в него совсем недавно, а не в те годы, ностальгических очков нет), за что уже успел отхватить критики от зрителей моей передачи… Но прочитав эту статью, я немного пересмотрел своё мнение. Если игра пишется и оптимизируется шаманскими методами, разработчикам уже не до тонкостей! Да и будь они менее удачливыми, выходит, игра могла не выйти вообще.
Повторю здесь то, что писал в опросе: Crash 1 — шедевр прежде всего программирования (тот же Mario 64 вышедший на 2 месяца раньше, по графике и рядом не стоял, хотя N64 более продвинутая по железу), а вот геймплей они допилили уже во второй версии, в нее и третью нужно играть. Мемуары разработчиков очень интересны: all-things-andy-gavin.com/2011/02/02/making-crash-bandicoot-part-1
Я плюсую комментарий и ссылку обязательно почитаю. Шедеврален он (возможно шедеврален...) по результату, но судя по статье — не с точки зрения программированию. Когда ты от отчаянья и без системы начинаешь подменять одни команды другими, надеясь, что в этот раз оптимизатор всё упакует как надо, когда методом проб и ошибок что-то меняешь на уровне, что бы поменять что-то в другой части уровня… Можно ли называть Это шедевром программирования, когда программист практически не управляет своим детищем, а надеется, что оно заработает? Вопрос философский…

Ну и сравнивать эти игры довольно странно. Разный геймплей (огромные уровни с исследованием и узенькие уровни-кишки из одного угла карты в другой… красота нечеловеческая, угу). Эта почти идеальная физика и управляемость Mario 64 и никакое управление в полёте Crash'а… И это при том, блин, что я не мариобой, но графику выше геймплея я не поставлю.

И последнее. Crash — игрушка вышедшая на 2м году жизни консоли, когда понимание её возможностей уже более менее оформилось (но не авторами игры, судя по посту… ;-). Super Mario 64 — вышла одновременно с консолью, когда потенциал её до конца раскрыт не был. Так что сравнение некорректное. Плюс в марио полигонов маловато, тут соглашусь, но что смотрится она хуже — это вопрос предпочтений и вкусов. Я смотрю на игры сейчас и Марио мне менее красивой не кажется.

Но это всё дикий оффтоп, так что чую, сейчас по мою душу опять придут фанаты...
Crash — игрушка вышедшая на 2м году жизни консоли, когда понимание её возможностей уже более менее оформилось (но не авторами игры, судя по посту… ;-).
Именно так: было понятно, что удел PS1 — убогое и ограниченное 3D с «треугольными» обьектами и «музычкой с CD» (Wipeout — наше всё), а что-то круче — стоит ждать от PS2. Crash Bandicoot выкинул всё это «знание» и перевернул представление людей о том, как должна выглядеть игра для PlayStation.

Когда ты от отчаянья и без системы начинаешь подменять одни команды другими, надеясь, что в этот раз оптимизатор всё упакует как надо, когда методом проб и ошибок что-то меняешь на уровне, что бы поменять что-то в другой части уровня…
… то это значит, что ты выжимаешь из железа всё, на что оно способно. А когда у вас у игрушки с графикой SNES системные требования — как DOOM3, то… наоборот.

Причём это не значит, что Crash Bandicoot — это шедевр, а Undertale — отстой. Просто они… немного о разном.

И это при том, блин, что я не мариобой, но графику выше геймплея я не поставлю.
А вот многие игроки — поставят. И именно они «вытащили» PlayStation и «утопили» N64. Crash Bandicoot был примерно так же популярен тогда, как какой-нибудь Call of Duty сегодня — и по похожим причинам…
А я понимаю разработчиков. На данный момент работаю над проектом на c#. Требования жесткие, программа должна запускаться на машинах с XP (а это .net 3.5), в качестве каркаса используем Prism (wpf). Бд MS SQLServer. И вот что бы это чудо работало и на «Калькуляторах» реально приходиться плясать с бубном — это и жесткая оптимизация ресурсов WPF и всевозможное кэширование данных, что бы лишний раз не делать обращения к мс серверу. Ах да «Калькуляторы» обладают одной не приятной особенностью — наличием памяти, точнее отсутствием необходимого объема.
Речь идет больше о WPF на фреймворке, а вот тут отличия значительные, мыло в тексте, отсутствие «Кэшированная композиция», мега баг с RadioButton.IsChecked и привязкой… Со всем этим можно жить, можно и на заборе спать. Вот только очень много неудобств, допилов и
некоторого количества шаманств прикручивается
и это все в место того что бы заниматься высокоуровневой архитектурой ( которая мне куда интересней чем технологическое шаманство, от которого к сожалению ни куда не деться )
Настоящие проблемы у тех, кто хочет строить действительно интересные интерфейсы (то есть приложения для потребителе)

К сожаление потребитель на которого мы работаем (а это тысячи клиентов) часто не намерены обновлять железо ради покупки инструмента, но при этом все хотят красивый интерфей да еще удобный да еще и что бы летал. Бизнес диктует правила из за которых приходится плясать с бубном.
WinForms намного менее требователен к железу, а скорость разработки не сильно ниже (да, там нет MVVM, но и MVP не плох). Ну и Qt+qml как вариант (красиво и без тормозов)
Мда, «калькуляторы» с windows xp и .NET… У меня был опыт оптимизации приложения под слабое железо (raspberry pi и сложное ресуркоемкое мультимедийное приложение), но это ни что, по сравнению с неделями впихивания нужного функционала в МК с 512 байт ОЗУ
>>МК с 512 байт ОЗУ
Это еще хорошо. ATTiny2313 с 2к flash/128b RAM, или Tiny13 c 2k/64b, вот это было интересно, да.
Впрочем в МК почему-то чаще приходилось оптимизировать чтобы вписаться по времени, а память наоборот свободная оставалась.
Кто первый вспомнит Atari 2600 с 128 БАЙТАМИ оперативки и 0 байтов видео-памяти?)
UFO just landed and posted this here
Богатство оформления этой игры поражало.
UFO just landed and posted this here
А у меня эта игра, а точнее ее 3 часть связана с болью и страданиями.
Так получилось что на втором этаже она висла, при попытке зайти в открытые ворота.
Но у меня был Action Replay не PRO а обычный.
Не знаю, что меня подтолкнуло, но я тупо перебирал в нем ячейки памяти и писал в них единичку, так продолжалось месяц за месяцем.

Запуск соньки, вход в Action Replay ввод нового кода, запуск игры… Зависон. Запуск соньки, вход в Action Replay ввод нового кода, запуск игры… Зависон. Запуск соньки, вход в Action Replay ввод нового кода, запуск игры… Зависон. Запуск соньки, вход в Action Replay ввод нового кода, запуск игры… Зависон. Запуск соньки, вход в Action Replay ввод нового кода, запуск игры… Зависон. Запуск соньки, вход в Action Replay ввод нового кода, запуск игры…

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


повезло Вам, что флаг открытия ворот был не в последнем бите. А то бы указатели легли в 0x...000
На самом деле мне ЖУТКО повезло, так как я был ни сном ни духом про формат кодов для Acrion Replay.
А там ведь были и команды сравнения ячейки в памяти, и записи в ячейку, и команды копирования.
А уж каких артефактов я навидался в процессе этого поиска.

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

Ностальгия, обожал эту серию, особенно третью часть, потом еще гоночки были, CTR вроде.
UFO just landed and posted this here
Читаю этот текст как — «Невероятные приключения программистов в прошлом веке»! Крутяк :)
Мне кажется, или программируя в таких узких рамках железа, программисты более, кхм, скилловые? Это наверное тот ещё челендж.
Смотря что назвать скиллом, «впихнуть невпихнуемое» это конечно круто, но все это не от хорошей жизни, а от недостатка, недостатка ресурсов, памяти, мощности… Шаманство катострофически снижает читаемость и понимаемость кода, а значит и сопровождение. Но к сожалению часто приходиться брать в руки бубен и надеяться, что этот код ни кто ни когда не увидет и уж тем более не станет побывать исправлять.
Sign up to leave a comment.

Articles