В прошлый раз я закончил свои измышления на том, что мне показалось, что наиболее впечатляющими играми на ретро-платформах, типа 16-битных приставок, являются 3D FPS игрушки на технологии рейкастинга.
Конечно, многие игры тех лет, когда в начале 1990-ых годов трёхмерные игры такого типа только зарождались и во всю подражали всемирно известному «Wolfenstein 3D», который тогда всех впечатлял своей глубиной. И многими данная игра ошибочно считается первым трёхмерным шутером. Они просто не знают, что это далеко не так, и даже у его разработчиков-издателей (id Software и Apogee Software) были предыдущие игры на такой же технологии.
Мне как-то один знакомый сказал, что все эти рейкастинг игры похожи одна на другую, будто бы это скины игры, как скины персонажей для «Майнкрафта» - http://minecraft-mods.pro/skins/ И я вам скажу, что он во многом прав, но не только относительно рейкастинг шутеров, а вообще относительно всех игр. Большинство игр действительно делаются на одном движке, который юзался ранее для другой игры, только с новыми уровнями, с новой графикой и прочими ресурсами. В этом нет ничего предосудительного и плохого.
Я на SDL на поэтапную реализацию натыкался. Там сперва без текстур показывается пример, затем с оными, затем со спрайтами, ну а в итоге с текстурированием пола/потолка. Эффектно, но у SDL тормозной доступ к видео-памяти, поэтому на первом пеньке 3 кадра в секунду получается, тогда как он без особых усилий справляется с движком «Дюка Нюкема», если в софтваре. Эта статья лежит тут: https://lodev.org/cgtutor/raycasting.html
Ещё есть пример на Турбо-Паскале, но там часть кода на АСМе для скорости. Вот оно уже норм так пашет на пне + есть скайбокс, дырки в потолке. Правда, сорс-код как раз на пне валяется, скинуть не могу.
Но SDL это не то, наверное... Мне сложно будет интерпретировать код под функции СМД. Я просто очень тупой - нет задатков. Вообще не могу понять технологию. Теоритически ясно, что это за кадром просчёт положения точки наблюдения и объектов, их указка размера, отправка данных в VDP и вывод на экран... Но как это делается, понять не могу… - голова взрывается. Дело в том, что обычно люблю копать шаблоны чьи-то, так понимая структуру, но с нуля закладывать движок не могу. По крайней мере того жанра и типа, с которым не приходилось работать.
Надо будет больше опыта получить, покопавшись и поизучав данный вопрос. |