Компьютер Вселенной
Oct. 4th, 2010 12:25 pmСреди программистов существует такой вид спорта: написать самую крутую игрушку как можно меньшего размера. Вот, например, Super Mario на 14Кб (написанная на JavaScript кстати), или полноценный 3D-шутер Kkrieger размером всего 96Кб. Принцип, позволяющий добиться такого маленького размера, заключается в том, что все игровые ресурсы — текстуры, модели, геометрия уровня, музыка и звук — генерируются программно с помощью различных алгоритмов. Примерно так родилась наша Вселенная.
Когда я читаю, что физики, исследующие происхождение Вселенной в результате большого взрыва, смогли смоделировать взрыв уже через микро- или наносекунды от его начала, я все время думаю: какие же алгоритмы были заложены в программу развития Мира, если через несколько миллиардов лет мы имеет такую сложность. По сути, у этих алгоритмов есть всего несколько операторов - физических сил, и неисчерпаемое количество памяти - элементарных частиц. Эти элементарные частицы вращаются и с каждым вращением испускают кванты энергии - фотоны, то есть имеют дискретный характер. Мы уже частично освоили механизм моделирования миров с помощью этих инструментов - компьютеры, то есть научились строить матрицу в матрице. Но остается еще много видов операторов и ячеек памяти, которые нам неизвестны. И, собственно, еще нам неизвестно, откуда берется (или взялась) энергия, питающая Компьютер Вселенной, и кто или что все это придумал.
Когда я читаю, что физики, исследующие происхождение Вселенной в результате большого взрыва, смогли смоделировать взрыв уже через микро- или наносекунды от его начала, я все время думаю: какие же алгоритмы были заложены в программу развития Мира, если через несколько миллиардов лет мы имеет такую сложность. По сути, у этих алгоритмов есть всего несколько операторов - физических сил, и неисчерпаемое количество памяти - элементарных частиц. Эти элементарные частицы вращаются и с каждым вращением испускают кванты энергии - фотоны, то есть имеют дискретный характер. Мы уже частично освоили механизм моделирования миров с помощью этих инструментов - компьютеры, то есть научились строить матрицу в матрице. Но остается еще много видов операторов и ячеек памяти, которые нам неизвестны. И, собственно, еще нам неизвестно, откуда берется (или взялась) энергия, питающая Компьютер Вселенной, и кто или что все это придумал.
no subject
Date: 2010-10-04 12:34 pm (UTC)kkrieger - 96KB говоришь? а сколько мегабайт кода из библиотек DirectX и операционной системы он кушает?
14КБ это мало? на JavaScript? а сколько мегабайт кода под этим скриптом во фреймворках лежит, ты не посчитал? таким макаром можно игру в 1 строчку написать: game.run();
если уж интересуешься, почитай на каком процессоре работала Nintendo NES, на которую SuperMario был писан. сколько памяти всего он мог адресовать, и сколько из них конкретно приходилось на ПЗУ в картриджах. после этого тебе 14КБ покажется бескрайними просторами.
no subject
Date: 2010-10-04 12:46 pm (UTC)no subject
Date: 2010-10-04 01:05 pm (UTC)та же самая оригинальная SuperMario ни на что не опирается. более того, генерации на лету там на порядок больше. потому как видеопамяти тоже нет, и сигнал для видеовыхода генерируется в реальном времени.
кстати, и в ккригере, и в марио уровни таки ограниченные и не изменяемые. это скорее не генерация, а очень специфическая разархивация. тогда уж в пример дьяблу приводи, там хотя бы рандомайзер применяется к генерации уровней.
no subject
Date: 2010-10-04 01:15 pm (UTC)