среда, ноября 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 коммент.:

Unknown комментирует...

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

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

fuwaneko комментирует...

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

Nik комментирует...

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

Andrey Karpov комментирует...

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

Unknown комментирует...

джва года ждал

Валико комментирует...

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

Comkina комментирует...

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