- PVSM.RU - https://www.pvsm.ru -

Исходный код System Shock выложен в открытый доступ под GPL

image

Исключительно хорошая новость: исходный код культовой игры System Shock (в версии для PowerMac) официально выложен под GNU General Public License v3.0 [1]. Игра была выпущена в 1994 году и написана на C.

Как известно, автор оригинальной игры, студия Looking Glass Studios, прекратила свое существование в 2000 году из-за кризиса издателя Eidos Interactive — выходцы из студии в дальнейшем создали новые знаменитые серии Deus Ex и BioShock. Права на серию System Shock выкупила Night Dive Studios, которая в данный момент занимается ремейком оригинала (чья разработка была заморожена месяц назад и релиз был отложен на 2020 год [2], несмотря на успешный Kickstarter, собравший 1,35 миллиона долларов) и полноценным продолжением System Shock 3, в разработке которого принимает участие автор оригинала, Уоррен Спектор, вернувшийся ради этого в игровую индустрию.

Забрать исходный код можно по ссылке на Github [1]. Для успешной компиляции потребуется PowerMac или его эмулятор (например, SheepShaver), Metrowerks CodeWarrior 10 Tools и игровые данные оригинальной игры.

Как обычно, не обошлось без интересных находок — например, уже нашли отсылку к игровому дизайнеру, работавшему в Looking Glass Studios, Симус Блэкли (Seamus Blackley) [3].

//      *******************HACK*HACK*HACK*HACK*****************************+
//      ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// uchar   EDMS_Seamus_is_an_asshole[12000];
//      *******************HACK*HACK*HACK*HACK*****************************+
//      ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Предположительно, здесь происходила «спрятанная» аллокация почти 12KB памяти — на тот случай, если ближе к релизу что-либо пойдет не по плану, и срочно потребуется дополнительная память — ведь гораздо быстрее будет раскомментировать одну строку, чем заниматься оптимизацией.

Далее — ещё несколько забавных комментариев, взятых из исходного кода.

// limit framerate while scrolling to avoid flicker?
// should really do something real about flicker anyway.
#define SCROLL_FRATE 90

// default units per second
// in defiance of Rob, I use the number 13.
#define MAP_SCROLL_SPEED 13

// why!!!! why at the end, why randomly, hate hate hate
// Clear out requests
for (i=open_track; i < MLIMBS_MAX_CHANNELS -1; i++)
   current_request[i].pieceID = 255;        // was -1

В оригинале имеется проблема с переводами строки (системы Mac OS до версии 9 использовали символ CR вместо более привычных нам LF/CR+LF). Читабельный форк с исправлениями доступен по ссылке [4].

Автор: Владимир Маслов

Источник [5]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/open-source/277166

Ссылки в тексте:

[1] официально выложен под GNU General Public License v3.0: https://github.com/NightDiveStudios/shockmac

[2] разработка была заморожена месяц назад и релиз был отложен на 2020 год: http://forum.zoneofgames.ru/topic/47558-razrabotka-perezapuska-system-shock-byla-zamorozhena/

[3] Симус Блэкли (Seamus Blackley): https://en.wikipedia.org/wiki/Seamus_Blackley

[4] по ссылке: https://github.com/ToxicFrog/shockmac

[5] Источник: https://habrahabr.ru/post/352952/?utm_source=habrahabr&utm_medium=rss&utm_campaign=352952