среда, ноября 23, 2011

Опубликованы исходники Doom 3

Помните, Кармак обещал опубликовать исходники Doom 3 после выхода Rage? Он свое слово держит: Doom 3 GPL source release

/*
===========================================================================

Doom 3 GPL Source Code
Copyright (C) 1999-2011 id Software LLC, a ZeniMax Media company.


Это только исходники, без данных. Данные можно взять из самой игры.

Из-за юридических проблем ему пришлось убрать оттуда кусок кода, известный как Carmack's Reverse.

Должно компиляться под Win32, Linux и MacOS.

Написано на С++, но это скорее похоже на С с классами - голые указатели, сишные массивы.

Как это обычно бывает, не все доведено до идеального состояния.

qglDisableClientState( GL_NORMAL_ARRAY );
qglDisable( GL_FRAGMENT_PROGRAM_ARB );
qglDisable( GL_VERTEX_PROGRAM_ARB );
// Fixme: Hack to get around an apparent bug in ATI drivers. Should remove as soon as it gets fixed.
qglBindProgramARB( GL_VERTEX_PROGRAM_ARB, 0 );


Как видно из кода, для отрисовки используется OpenGL. Почему-то в readme написано, что нужен DirectX. Непонятно. DirectX нужен для DirectInput.

Подменив данные и слегка поменяв код можно написать 3D-шутер своей мечты :-).

7 комментариев:

  1. > Как видно из кода, для отрисовки используется OpenGL. Почему-то в readme написано, что нужен DirectX. Непонятно.

    DirectX только для win32 сборки, вполне возможно что звук или управление.

    ОтветитьУдалить
  2. Звук там OpenAL, так что скорее всего только ввод. Я ещё не смотрел толком, поэтому точно не скажу.

    ОтветитьУдалить
  3. DirectInput используется. Можно посмотреть в neo/sys/win32/win_input.cpp

    ОтветитьУдалить
  4. А мы тут как тут. :)
    PVS-Studio: анализируем код Doom 3: http://habrahabr.ru/blogs/open_source/133360/

    ОтветитьУдалить
  5. Давно искал исходник, моя любимая игра. А на счет исходника столько вопросов, но не знаю кому задать:( Порекомендуйте пожалуйста кто нибудь книгу для написание игр(именно игр типа шутеров) на каком либо языке (желательно Хава или С++). Перерыл весь интернет, нет ничего полезного:(

    ОтветитьУдалить
  6. Кто знает на чем написана марио? на то хочу написать написать его, верней под себя сделать =, финты там разные ... =)

    ОтветитьУдалить