Навигация по сайту
Случайная игра

Вступай!!!
Облако тегов
Infinity Software
(C) InGame Engine

Первую программу я написал в 1995 или 1996 году на домашнем компьютере ZX Spectrum. Это был русификатор-редактор текста. Тогда я был в восторге от Бейсика встроенного в Спектрум. Один мой рнакомый - Алексей - поразил заявлением о намерении писать компьютерные игры, я даже примерно не мог представить как это происходит. Даже элементарные (теперь уже) вещи, вроде перемещения космического корабля на экране - для меня были дремучим лесом. Но знакомый объяснил, что координаты корабля надо задавать не жесткими цифрами, а переменными и даже показал прототип стрелялки на домашнем Синклере, где какой то квадратик дергано перемещался на экране. Это был его первый и последний опыт в игростроении. Чуть позже Алексей купил пиратский диск с названием - "Остров сокровищ", на котором лежали разные версии компиляторов и исходные коды, о да (!), игр. Ему диск не понадобился, а я нашел на нем библиотеку AniVGA с помощью которой можно было писать игры. На самом деле это была очень запутанная библиотека и по исходным кодам я так и не смог понять логику задания анимации персонажа в функциях. Точнее понял, но частично. Да, AniVGA была написана на языке Паскаль и мне конечно же пришлось выучить этот язык.
И я принялся за написание первой своей игры.
Тогда я просто обожал жанр бет'ем-ап, поэтому не удивительно, что мне очень хотелось создать что то именно в этом жанре. Но мое первое творение стало смесью двух любимых мною игр Rick Dangerous 2 (MS DOS) и Freddy Hardest (ZX Spectrum).
В игре была очень красивая графика и просто огромные фигуры главного героя - космического вояки и его врагов - разнообразных инопланетян. Все персонажи были жутко колоритны и оригинальны, на создание каждого из них я потратил уйму времени начиная с набросков на бумаге и последующим переносом их в компьютер, где раскрашивал спрайты в программе Фотостайлер 2 из под Windows 3.0. На тот момент Фотостайлер был существенно удобнее, нежели Photoshop 3.0, но потом он почему то исчез.
Моя слабость в любой игре -это куча секретных мест в которые вы можете попасть особым образом, но про которые знать собственно никогда не должны, бонусов и прочих тайн. Поэтому не удивительно, что в моей игре все это было. Начиналась игра в городе, а далее сюжет мог унести героя и к звездам. Я написал почти целый уровень, когда что то произошло (сейчас уже не вспомнить) и я не смог продолжить разработку. От этой игры следов даже не сохранилось, но я лелею надежду, что когда нибудь, разбирая какие нибудь, свои древние 5 дюймовые дискеты я случайно наткнусь на эти исходники. При моем помешательстве на "ничего из моих дисков не выкидывать" - это может оказаться реальностью.
Пока я писал первую игру, смесь, как уже сказал Rick Dangerous и Freddy Hardest, название которой я так и не дал, задумываясь о "Moon Fighter" и Других вариантах, я постоянно чувствовал, что AniVGA - это не самый удобный и понятный движок для игр.
Разумеется я решил написать свой.
386 процессор урезанный по шине до 16 бит (да-да SX) и жалкие 40 Мгц, что я хотел получить с них?
А я хотел высокоскоростной паралаксный скроллинг. Конечно же я не мог написать ничего такого жутко быстрого без знания ассемблера.
Да, мне пришлось заняться изучением ассемблера!
Я писал свой движок пол-года, а может и целый год. Я подсматривал иногда функции в известном движке, который входил тогда в обучающую энциклопедию игр, что лежала на все том же диске "Остров сокровищ". Это действительно были сокровища на диске!
Пока я разрабатывал свою библиотеку для написания игр я попутно на AniVGA делал платформер. Кстати, это был классный платформер, очень колоритный главный персонаж - сбитенький такой мальчик в футболке и кепке одетой козырьком назад бегал по платформенному миру.
В игре был паралаксный скроллинг! В игре была плавная анимация. Мальчик умел ускоряться, как Соник в играх от компании SEGA и если вы отпускали клавишу он не сразу останавливался, а с замедлением делал еще несколько шагов по инерции. Мальчик умел прыгать. В общем - это было очень круто.
И, да, в игре были высоченные холмы на которых росли пальмы и герой бегал по наклонным поверхностям. Может вы скажите -какая ерунда - "герой бегал по наклонным поверхностям". Но не имея опыта программирования попробуйте спрограммировать так гравитацию объекта и коллизию, чтобы бег по наклонным поверхностям был плавный и естественный. И когда герой бежал вверх скорость его замедлялась, а вниз ускорялась.
Я написал почти целый уровень отличного платформера. И он был восхитителен, как графически, так и в игровом плане. Было и еще одно потрясающее событие. В то время очень сложно было сделать звуковое оформление в играх. Из за несуществующих стандартов программист должен был писать свой звуковой драйвер для любой существующей аудио-карты на свете. Поэтому были игры, которые звучали только на определенных картах. Кроме того во времена ДОС многие фирмы вместо музыки использовали гудение кошмарного PC-спикера. Вряд ли в мире есть что то ужаснее этого. Послушайте какофонию писка и гудения в Benet Still Sky к примеру.
Я планировал написать свой драйвер для воспроизведения музыки и даже начал его писать, но мне случайно попалась библиотека, которая позволяла проигрывать mod-файлы с Commodore Amiga через писи-спикер. При этом это не был ужасный писк, это была настоящая цифровая музыка!!! Шокирующим обстоятельством являлся тот факт, что звуковая карта не была нужна вообще.
В те времена звуковые карты и так были лишь у единиц и иметь библиотеку, используя которую мы можете снабдить игру чудесной музыкой и она будет играть даже на компьютерах без звуковой карты -это было невероятно.
И я прицепил к своему платфор-меру звуковой движок! Описать эмоции от впечатлений при прохождении слегка недоделанного уровня было невозможно!
Но проигрывать чужие mod-файлы - это конечно здорово, но надо писать свои. Мне пришлось овладеть трекерными программами для написания мод-музыки. Это было здорово. Я до сих пор иногда балуюсь этим, но на данный момент все пишу в FL Studio - это суперпрограмма с фантастическими возможностями, но в играх, особенно шарварных все же лучший вариант - легенькие моды.
Но к этому времени первый вариант моего собственного движка был готов. Он был написан на 80 процентов на языке Ассемблер и на 20 процентов - на Паскале.
Он был в 4 раза быстрее, чем известный движок взятый мной в качестве образца для подражания. Да, я сумел задействовать все 32 бита процессора на Паскале, который без ухищрений понимал только 16-битный код. Возможно вам не понять, что в этом сложного было, но тогда небыло интернета, небыло Гугл, вообще небыло никого, у кого бы можно было что то спросить или посоветоваться.
Пока я проводил первые испытания своего движка - а это было все таки нечто, там были жутко быстрые функции скалинга и мне казалось, что круче просто некуда - я начал наконец писать свой первый бет'ем-ап. На все том же AniVGA. Там разумеется тоже была прекрасная графика и от него сохранился скриншот, а впрочем, я почти уверен, что и сам экзешник, который потом перестал работать на новых процессорах. Известная ошибка Турбо Паскаля 7.
Тут встал сложный вопрос, когда вы шли по уровню и к вам подходил противник - он мог пройти как перед вами, так и за вами, обходя покругу. И как это вы представляете себе можно спрограм-мировать.
Разумеется я додумался до кода, где проверялась высота по Y врага и главного героя и в определенных значениях спрайт находящийся перед героем,заменялся спрайтом выводящимся после героя.
Я написал буквально пару экранов и наконец засел писать на своем движке.
Конечно это был бет-ем-ап. Конечно в нем была изумительная графика. К счастью мне не нужно доказывать это - мой первый бет-ем-ап сохранился и даже работает под dosbox. В нем была реализована коллизия ударов, показ определенных фаз анимации и многое другое. Я написал на этом движке буквально 2 скролирующихся экрана игры и...
Это было все, что я на нем написал.
Чуть позже я купил диск, где лежали такие игровые языки, как Dark Basic, Blitz Basic и DiNGS.
Я научился писать на них, но мое сердце безоговорочно было отдано DiNGS.
Почему я выбрал эти языки? Они работали в Windows! Я же на тот момент умел программировать только под DOS. Нет, я конечно пытался писать на Си используя библиотеку wings, которая позже стала зваться DirectX, но это было очень сложно и маразматично -удовольствие превращалось в рутину. Поэтому - да здравствует DiNGS!
Как это не смешно - я начал писать Ping Pong! Я назвал его Ping Pong GOLD.
Я хочу сказать, что это был нереально крутой понг. Вы вероятно такого и не видели никогда.
Посудите сами - в нем был сверхплавный паралаксный скроллинг, скорость в 50 FPS, блендинг, множество бонусов, вроде "автопилот", "заморозка", "Повышение энергии"и тд.
События в Понге озвучивались синтезированным голосом. В игре были телепортеры, лабиринты, ключи, которыми открывались секретные проходы! В игре были Секретные места (Secret Room)!
В игре был сюжет и даже огромные БОССЫ! Вы могли поджечь биту противника. Могли управлять вектором полета мяча и силой удара по нему.
В игре была может не самая лучшая, но очень атмосферная и душевная графика.
В игре была замечательная музыка, написанная мной в мод-формате.
Вне сомнения - это была шикарная игра. Она была написана настолько скрупулезно, что ею можно было восхищаться каждую минуту.
Например мяч не просто летел в пространстве, если приглядеться, то можно было видеть, что летит он над стеклянной поверхностью на которой видно слабое отражение. Более того он слегка скачет, то увеличиваясь, то уменьшаясь. Когда мяч ударялся о биту, то бита от удара слегка отталкивалась к краю экрана, а потом возвращалась на место, словно притянутая на резинке. Разумеется она могла разрушиться. Разумеется вы могли в качестве бонуса получить щит. Я не сказал, что в игре должны были быть магазины между мирами? Мирами? Конечно там были совершенно разные графически миры.
Если первый мир проходил в космосе, на фоне планета, на которой стоял маленький принц смотрящий в телескоп и иногда кому то машущий рукой, волосы его серебрились в отражении мерцающего лунного света (это не метафора), и он улетал в даль постепенно, то второй мир проходил на хрустально прозрачном пруду, где в воде плавали кувшинки, а вода создавая глубину куда то текла.
В целом игра даже походила на квест. Посудите сами. Вы путешествовали в космосе, как вдруг увидели планету с маленьким принцем, после небольшой стычки с ним (4 уровня 1 мира) вы стали виновником того, что принц свалился со своей планеты и стал кружить на орбите. Поняв, что был неправ, Маленький принц попросил принести ему якорь, что он однажды обронил на Земле в глубокий пруд. Вы ему это пообещали. И попав на Землю (4 уровня 2 мира) сперва разбили плотину из за которой не текла вода, а далее... Впрочем я же не собираюсь рассказывать вам всю сюжетную линию, тем более она довольно накручена, не линейна, увлекательна и может как выполняться вами, так и не выполнятся приводя к разным фина лам.
Я писал эту игру уже год, когда столкнулся с техническими ошибками, которыми обладал DiNGS, причем автор этого языка о них тогда просто не знал. Позднее он их исправил, но умудрился закрыть язык выпустив вместо него GLBasic, который мне просто не приглянулся.
На тот момент я написал 32 кб года за 1 год. Может быть это смешной размер, но Ping Pong GOLD была и остается шикарной игрой, шарм и обояние в которой чувствуется с первых секунд. Там не работают некоторые функции, они просто не были дописаны, но то что есть говорит - такого внимания ко всему в играх почти не бывает.
Я мог писать какой то мизерный кусок кода с малюсеньким спрайтом целый день, потому что я скрупулезно рисовал все новые варианты спрайта, пробовал программировать различные его особенности, тестировал разные идеи.
В общем к чему я так долго рассказывал об этой игре.
Спустя какое то время я решил улучшить графику и под названием проекта Ping Pong Remake начал заменять графику на рендер. От этого понг стал выглядеть на порядок лучше (к сожалению, финальные результаты были потеряны и остался только один скриншот, да и то с начальной фазу работы над проектом).
Не так давно я, перебирая диски наткнулся на оригинальную версию Ping Pong GOLD и провел за ней целый час поздней ночью, не в силах оторваться, хотя собирался лечь спать. Я чувствовал, что игра по-прежнему впечатляет, хотя ей на тот момент стукнуло уже б лет. Я решил портировать ее на Game Maker, заменив оригинальную графику и код, на более совершенные. Графика из рисованной, стала смоделированной в ЗD-редакторе, но главное - это бьло желание сохранить атмосферу оригинала, что поверьте, нелегко.
Впрочем, до Ping Pong GOLD я бы занят еще одним проектом на DiNGS. Конечно же бет'ем-ап-ом! На выбор предлагалось несколько бойцов - заключенный, обычный парень и девушка. У каждого были свои приемы. По сюжету они узнали, что банда головорезов похитила ядерную бомбу и им во что н\бы не стало необходимо перехватить ее, иначе произойдет катастрофа. Выбрав главного героя, вы шли по городу, а на вас нападали толпы уличных хулиганов. Стоит ли говорить, что я всеми силами пытался сделать игру похожей на эталон данного жанра - Street of Rage? И это в общем то удавалось, а анимация так и вовсе превосходила прототип, как минимум по плавности. Только вертушку ногой у главного героя (состоящую из 16 спрайтов) я рисовал целый день. В целом я как обычно невероятно скрупулезно относился ко всяких мелочам в игре. В общем то, мелочей там просто небыло, каждый пиксель либо был должен быть именно там, либо нес какую то функцию.
Уровни в городе проходили по обычной схеме - улица, парк, набережная. Битвы перемежались с мини-боссами и вот в одной из битв вы сталкивались с главным злодеем. И честно сражались с ним. Но по секрету, уже можно сказать, вы все равно проигрывали (так было задумано) и на улицу опускался вертолет, куда запрыгивал БОСС. На вертолете вы замечали бомбу, на которой был включен таймер с уменьшающимися цифрами до взрыва. Вертолет взлетал...
И тут происходила вспышка и на экране перед вами возникал человек в сияющем комбинезоне.
Забыл сказать, в игре были диалоги! И пришелец сообщал, что он прибыл из будущего, чтобы помочь предотвратить ядерный взрыв, в результате которого погибнут миллионы людей.
С этого момента вам становился доступен для игры еще один (!) боец с интересными ударами - путешественник во времени.
Воспользовавшись своим устройством он чуть возвращал время назад и вертолет в обратном движении возвращался назад, чтобы вы всей командой могли запрыгнуть на его борт.
Далее начинался уровень, где вы дрались с головорезами на борту летящего вертолета на фоне уменьшающихся цифр.
Самое интересное, что это было только начало сюжета и бомба кстати взрывалась. Следующий уровень проходил в разрушенном после ядерного удара городе. Далее были и перемещения во времени и прочие увлекательные вещи в попытке изменить время и не допустить катастрофу. В той игре я придумал интересный трюк, который сейчас используется во многих играх. Я могу сказать, что это была не копирка чужих идей, на эффект я набрел, когда создавал первый движок на Паскале/ассемблере и по ошибке допущенной мной в функции увидел, что могу регулировать скорость течения игры.
Поэтому в Chaos World (о боже, я не сказал, что игра называлась Chaos World) я использовал этот трюк при проведении суперударов. Кстати у каждого бойца были свои фишки ,но замедлялку имел только «обычный парень».
Это выглядело так, при проведении суперудара, выполняемого комбинацией схожей с головоломными ударами в Mortal Kombat 2-3 (я тогда фанател от этих игр) - вертушки ногой - включалось, как это сейчас принято говорить слоумо. Весь мир замедлялся (включая крики героев, когда они проводили суперудары) и вы видели как медленно парень делает вертушку. Вот нога медленно ударяет по противнику. Вот тот начинает от удара свой полет в пространстве. И вот тут замедление кончалось и все внезапно снова шло на безумной скорости. Тело врага стремительно неслось по экрану и после суперудара разрушало все на своем пути - телефонные будки, ящики, бочки. Эффект сделанный на контрасте скорости и замедления смотрелся шикарно. Так же я интересным, но не оригинальным образом решил проблему, когда отправляли в нокаут моего героя. Вы теряли над ним управление и он замедленно начинал падать поднимая клубы прозрачной пыли. Потом раздавался воинственный крик и герой снова вскакивал на ноги. В Chaos World было меньше секретных мест (намного), но сюжет его скучать точно не давал. Я написал около 3 уровней игры и создал довольно много графики. После чего... Нечаянно стер все, перестанавливая Windows. Правда здорово? Некоторое время я ходил просто в шоке. Немного позже я на одной из дискет таки нашел Chaos World, к сожалению это была практически начальная стадия разработки. Это подвигло на покупку жутко дорогого пишущего CD-ROM для бэкапа исходных кодов.
После DiNGS я написал Windows-движок Infinity (он же InGame) - это был удобный движок (Си + Open GL). Я спрограммиро-вал на нем несколько незавершенных игр - Ice Blocks - шикарная игра, честное слово, Star Fighter, еще несколько космических стрелялок. В соответствии с традициями я не дописал не одной.
О да, я написал пару уровней платформера Rabbit Adventure для Linux! В SVGA графике.
Это был весьма неплохой плат-формер про кролика, особенно в качестве графики, на фоне других представителей этого жанра, что изобилуют в Linux. Но мне очень не понравилась скорость работы движка на SDL. В последующих версиях этой библиотеки она существенно выросла, да и я здорово оптимизировал узкие места кода - это особенно касалось вывода надписей на экран. Запомнились интересные моменты - в частности по экрану периодически пролетали опасные осы, которые могли ужалить, но в определенном месте экрана вы могли подпрыгнуть и попасть на спину насекомому. Траектории полета Ос были запрограммированы так, что аккуратно рассчитав, и тут же прыгнув вперед, вы могли оттолкнуться от следующей осы и так бежать по воздуху. После третьей осы вы находили в облаках приз в виде жизни. Потом, в лесу, где проходил первый уровень игры, встречались скрытые ходы в низ, которые графически чуть отличались и вы могли по ним спускаться в потайные проходы. Широкая река, которую, казалось, нельзя перепрыгнуть (да-да, опять с помощью летящих ос). И таких моментов было достаточно. Я уже говорил, что обожаю такие вещи!
К тому времени я созрел для создания космической стрелялки, которые обожал не меньше, чем бет'ем-апы. Сейчас я вспоминаю, что уже пробовал создать стрелялку на первом движке в MS DOS и написал 2 уровня, но они меня тогда не впечатлили. Названия у той игры просто небыло.
И вот спустя много лет я начал писать новую стрелялку - Star Soldier. Сюжет был изначально задуман шаблоном.
Инопланетные захватчики стре-мяться уничтожить землю и только ты, звездный боец, способен противостоять их натиску. Вспоминаете фильм «Последний звездный боец»?
В игре вы отбивали волны инопланетных кораблей.С начала на фоне Земли, потом Марса. По идее необходимо было изгнать агрессоров за пределы солнечной системы. Это было здорово, так как при однотипном геймплее можно было менять только фоновые картинки планет, да врагов. Я конечно внес несколько интересных бонусов.
В общем я написал начальный мультик, уровень с Землей, уровень с Марсом и немножко стал экспериментировать на диск, задумавшись, как бы мне прикрутить метеориты в стрелялку. Это все вылилось в новый проект.
Я начал писать игру «Аэлита».

Infinity Software
Ping Pong GOLD Remake. Эта попытка все еще на DiNGS.


Снова на Dings. Написав довольно большой кусок за пол года, я вдруг решил перенести игру на Game Maker и на это у меня ушел всего месяц.
Аэлиту можно считать законченным проектом (вы не ослышались).
Сюжет прост - Аэлита, заточе-ная в башне высокого замка на планете Марс отправляет радио-сигналы сквозь мировой эфир с мольбой спасти ее. Лось Мстислав Сергеевич, отправляется на зов. Вам необходимо преодолеть расстояние до планеты Марс и спасти прекрасную Аэлиту из рук коварного Тускуба.
В начале необходимо уворачиваться от астероидов, которых становится больше и летят они все быстрее. Далее появляются жаркие кометы, заброшенные астероиды со следами разрушенных замков и даже звездолеты поколений. Баланс игры подобран настолько скрупулезно, что я вас уверяю, в какой то раз вы можете почти достигнуть Марса, но на последних секундах потерять всю энергию. Я сам, как создатель, могу пройти игру иногда с первого раза, иногда с такой, каким действительно был десятки миллионов лет назад. Может это не настолько важно в фантастической игре, но мне кажется добавляет интереса. Разве вам не интересно увидеть настоящего птеродактеля? Да, я знаю, скриншоты убьют всю изюминку этого абзаца.
БОСС летает используя разнообразные траектории, швыряет в вас яйца и так далее.
Когда я писал данную часть игры - это было жутко интересно. Опыта написания сценария битвы с БОССОМ у меня до этого еще практически небыло (не считать же таковыми PING PONG и Rabbit Adventure - там это было попроще).
Я разделил поведение БОССА на фазы. Изначально я расположил на экране невидимые триггеры к которым в соответствии с номером фазы должен был лететь птеродактиль. Фазы переключались случайным образом и куда в следующую секунду полетит чудище предсказать было нельзя. Тем не менее, как любитель системы, я сделал так, что птеродактиль перемещался до триггеров 4 раза, после чего делал пикирующие налеты, а далее начинал швырять яйца. После чего шел повтор. В общем то получилось здорово. В итоге вы убивали зверюгу с головы которой сваливался Тускуб и уносился в космос, а ваша возлюбленная была спасена. Game Over. Но мне стало обидно, что это конец и я решил показать в виде небольшой стрелялки, как Лось пробирался по пескам Марса к замку отстреливая марсиан из дробовика. Это должно было стать вторым уровнем. Далее - третья фаза в замке - чистый аркадный бет'ем-ап.
Если исходить из начальной концепции, то игра готова. Если из последней - она еще в работе.
Игра Ice Blocks классическая казуалка - отметь три ледяных блока - они разобьются. Но реализация была шикарная. Я сам, тупо зависал в нее, понимая, что мне это нравится. Я конечно же не дописал ее, так как писал - можете посмеяться - совершенно кошмарным методом.
Я отринул все известные мне приемы, которыми бы написал ее максимум за 3 дня и весь код построил на логических конструкциях - даже коллизий небыло. И вот на одном из уровней я понял, что я окончательно запутался и не понимаю, почему вдруг все стало работать неправильно, кубики валяться в неверные позиции и тд. Я просто не смог победить свой бредовый код, целью которого было отточить мои навыки в программировании подобных вещей (это реально мне сильно помогло). Ну а первые уровни, в которых нет глюков - прекрасны. Конечно же в тупой казуалке был сюжет. До вас доходят вести, что где то арктике обнаружили во льдах гигантского доисторического пингвина. Вы разумеется отправляетесь в опасное путешествие. И ваша игра - это как раз и есть уничтожение ледяных блоков, чтобы добраться до доисторического пингвина. В Ice Blocks были интересные призы (иногда вылетали из разрушенных блоков) вроде бомб - так вы могли разрушить непроходимые комбинации блоков. Если же вы действительно застряли, то три раза за всю игру мог появиться метеорит, который с силой ударял по блокам и они рассыпались.
Да, был и еще один проект -Arctic Adventure. Платформер. И я реально даже горжусь им. Он пока в разработке, в частности в нем сильно не хватает графики -многое еще необходимо дорисовать и то, что можно видеть -лишь каркас. Но даже этого хватает, чтобы оценить геймплей и потенциал. Потенциал совершенно невероятен, как и у всех проектов, что выходят под логотипом Infinity Software - это игры сделанные с душой, часть прекрасного хобби. И именно поэтому им всегда не удается добраться до финала, застыв на рубеже нескольких играбельных уровней.

Автор: Infinity
Журнал: Emulators Machine



Вернуться
  • Комментарий: 0
  • Просмотров: 1912

Комментарии:

Оставить комментарий