lankastersky: (Default)
[personal profile] lankastersky
Среди программистов существует такой вид спорта: написать самую крутую игрушку как можно меньшего размера. Вот, например, Super Mario на 14Кб (написанная на JavaScript кстати), или полноценный 3D-шутер Kkrieger размером всего 96Кб. Принцип, позволяющий  добиться такого маленького размера, заключается в том,  что все игровые ресурсы — текстуры, модели, геометрия уровня, музыка и звук — генерируются программно с помощью различных алгоритмов. Примерно так родилась наша Вселенная.

Когда я читаю, что физики, исследующие происхождение Вселенной в результате большого взрыва, смогли смоделировать взрыв уже через микро- или наносекунды от его начала, я все время думаю: какие же алгоритмы были заложены в программу развития Мира, если через несколько миллиардов лет мы имеет такую сложность. По сути, у этих алгоритмов есть всего несколько операторов - физических сил, и неисчерпаемое количество памяти - элементарных частиц. Эти элементарные частицы вращаются и с каждым вращением испускают кванты энергии - фотоны, то есть имеют дискретный характер. Мы уже частично освоили механизм моделирования миров с помощью этих инструментов - компьютеры, то есть научились строить матрицу в матрице. Но остается еще много видов операторов и ячеек памяти, которые нам неизвестны. И, собственно, еще нам неизвестно, откуда берется (или взялась) энергия, питающая Компьютер Вселенной, и кто или что все это придумал.

Date: 2010-10-04 12:34 pm (UTC)
From: [identity profile] an20.livejournal.com
ты упоротый?

kkrieger - 96KB говоришь? а сколько мегабайт кода из библиотек DirectX и операционной системы он кушает?

14КБ это мало? на JavaScript? а сколько мегабайт кода под этим скриптом во фреймворках лежит, ты не посчитал? таким макаром можно игру в 1 строчку написать: game.run();

если уж интересуешься, почитай на каком процессоре работала Nintendo NES, на которую SuperMario был писан. сколько памяти всего он мог адресовать, и сколько из них конкретно приходилось на ПЗУ в картриджах. после этого тебе 14КБ покажется бескрайними просторами.

Date: 2010-10-04 12:46 pm (UTC)
From: [identity profile] lankastersky.livejournal.com
Конечно, эти цифры условные - любая программа всегда опирается на слои операционной системы. Но смысл остается тот же - программная генерация уровней, причем неограниченной длительности и пространства.

Date: 2010-10-04 01:05 pm (UTC)
From: [identity profile] an20.livejournal.com
не любая, и не всегда.

та же самая оригинальная SuperMario ни на что не опирается. более того, генерации на лету там на порядок больше. потому как видеопамяти тоже нет, и сигнал для видеовыхода генерируется в реальном времени.

кстати, и в ккригере, и в марио уровни таки ограниченные и не изменяемые. это скорее не генерация, а очень специфическая разархивация. тогда уж в пример дьяблу приводи, там хотя бы рандомайзер применяется к генерации уровней.

Date: 2010-10-04 01:15 pm (UTC)
From: [identity profile] lankastersky.livejournal.com
Возможно, там генерация определенное число раз происходит. Чтобы не размазывать сюжет. Но она там точно есть. А про Марио и старые приставки - да, оттуда этот спорт и пошел))

Profile

lankastersky: (Default)
lankastersky

January 2021

S M T W T F S
      12
3456789
10111213141516
171819 20212223
24252627282930
31      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Feb. 26th, 2026 08:06 pm
Powered by Dreamwidth Studios