Вопрос реализации этого самого ремейка мучит меня уже давно. Все проекты по его реализации быстро загнулись, даже не успев начаться. Поразмыслив немного об этом, я решил написать инструкцию по созданию ремейка Спайро. Для разогрева сухая инфа:
Для начала нужно провести весьма нудный, но крайне важный процесс: обдумывание проекта. Очень часто игра не стоит свеч. Если вы приняли решение все-таки ДЕЛАТЬ ремейк, то нужно идти до конца. Иначе ничего не получится. Следующим шагом станет изучение необходимого API. Для графической части (на DirectX) необходим шейдерный язык HLSL и C#. Для ядра понадобится сложный и мощный язык (например, C++). Физическая часть тоже требует своего модуля. Ещё это и объединить нужно будет. Сложно, правда?
Теперь к теории Спайровской:
Единственное, что обычно делают в ремейке - повышают качество всего. Так как сюжет лучше не менять, остаются звук и графика.
Графика:
Тут все проще, чем кажется. Современные шейдерные технологии могут и из двух полигонов приличную картинку сделать (см. Parallax occlusion mapping, Объёмные лучи и др.). Шейдеры делятся на вершинные, пиксельные и (в версиях DirectX выше 10) геометрические. Вершинные шейдеры это:
Quote
Вершинный шейдер оперирует данными, сопоставленными с вершинами многогранников. К таким данным, в частности, относятся координаты вершины в пространстве, текстурные координаты, тангенс-вектор, вектор бинормали, вектор нормали. Вершинный шейдер может быть использован для видового и перспективного преобразования вершин, генерации текстурных координат, расчета освещения и т. д.
Пискельный (фрагментный) шейдер это:
Quote
Фрагментный шейдер работает с фрагментами изображения. Под фрагментом изображения в данном случае понимается пиксель, которому поставлен в соответствие некоторый набор атрибутов, таких как цвет, глубина, текстурные координаты. Фрагментный шейдер используется на последней стадии графического конвейера для формирования фрагмента изображения.
Геометрический шейдер это:
Quote
Геометрический шейдер, в отличие от вершинного, способен обработать не только одну вершину, но и целый примитив. Это может быть отрезок (две вершины) и треугольник (три вершины), а при наличии информации о смежных вершинах (adjacency) может быть обработано до шести вершин для треугольного примитива. Кроме того геометрический шейдер способен генерировать примитивы «на лету», не задействуя при этом центральный процессор. Впервые начал использоваться на видеокартах Nvidia серии 8.
Как правило, обычному человеку все это непонятно и в общем не нужно. Однако, разработчик должен все это знать и разбираться в этом. Коротко скажу главное: для графики нам понадобятся большие текстуры (размером больше 1024х1024px (у оригинала не больше 32х32px)). Над моделями и эффектами будут трудиться шейдеры.
Но есть одна проблема: у большей половины спайрофанов видеокарты поддерживают только DirectX 9. Это, конечно, неплохо тоже, но уже DirectX 12 с новой Windows придет. Поэтому необходима компиляция под DX 9 и DX 10, а это в два раза больше шейдерного кода и багов.
Звук:
Просто как пить дать. Записываем более качественные звуки и запускаем в игру.
И вот когда мы написали графический движок, у нас должно быть уже ядро. Его пишем на мощном языке C++ или подобном ему. Ядро отвечает за взаимодействие всего, управление и прочими немаловажными вещами. На основе всего получившегося создаем SDK, дабы лучше работать и исправлять баги, а также радовать игроков возможностью модификации. Сам я в этом шарю немного, я больше по графике.
И вот когда у нас готов макет, все взаимодействует и более-менее работает, с помощью SDK приступаем к самой смачной и мжвячной части работы: клепание самой игры! Воспроизводим сюжет, локации, фичи и т.д. Не забываем исправлять баги.
После окончания предыдущего пункта наступает время бета-версий, билдов и раскрутки (хотя ее лучше начинать с того момента, как только будет понятно: мы идем до конца).
И наконец... ФИНАЛ! Билдим финальный билд, хорошо его оформляем и запускаем в продажу\свободный полет\что вам заблагорассудится. Если коллектив хорошо ужился, можно попробовать создать компанию и клепать игры уже на проффесиональном уровне. Однако проект у нас небольшой, и главное в данном случае - передать спайровскую атмосферу и неповторимый шарм игры. Для любителей старой графики можно сделать возможность отключения шейдеров, дабы они могли поиграть "как раньше", только уже полностью на ПК, а не на кустарных эмуляторах.
И в заключение скажу: инструкция эта не идеальна и не полна. При разработки ремейка нужно проявлять фантазию и импровизацию. И главное: следовать до конца. Даже если коллектив распадается.
Надеюсь, эта писанина кому-нибудь, да поможет.