Мои старые игры

Решил вспомнить былое и централизованно выложить в открытый доступ свои старые игры. Возможно, кого-то они заинтересуют – сейчас мода на ретро =)
Все ресурсы и исходники – под Public Domain, за исключением чужого контента (лицензионные оговорки – в тексте COPYING.txt)


Crematorium
Игра была сделана мной для II конкурса портала GameCreating.ru (сам сайт давно уже прекратил существование, но сообщество еще живо: http://gamecreating.borda.ru). Конкурс проводился в 2005 году. Кому интересно – тред с голосованием.
Представляет собой несложный шутер от первого лица в стиле первых Doom и Quake. Спрайтовые враги и оружие на фоне трехмерных одноэтажных локаций – подземных лабиринтов. В игре всего 5 уровней, (в начале каждого выводится краткий инструктаж с миссией), 3 типа оружия (пистолет, автомат, гранаты), 2 вида врагов + 1 финальный босс.

Скачать (Google Диск) – 8.3 МБ.

City Builder
Симулятор градостроительства. Каждый построенный жилой дом увеличивает население вашего города, которое ежемесячно платит налог в казну. Размер налога зависит от степени развития городской инфраструктуры: количества магазинов, ресторанов, банков, отелей, садово-парковых зон и т.д. Можно строить заводы, которые ухудшают условия жизни в городе, но зато приносят высокий доход, а также сажать деревья, прокладывать асфальт, газон, песок и воду.
Есть возможность сохранять и загружать города, а также выбирать фоновую музыку.
Скачать (Google Диск) – 1.3 МБ. 


Croggler
Простенький платформер из 15 уровней, на каждом из которых вы должны победить черного призрака, летающего под потолком. Ваше единственное оружие – бомбы, которые призрак время от времени скидывает. Если бомбу вовремя не подобрать, она взрывается. На некоторых уровнях есть также второстепенные враги – их уничтожить невозможно, остается только уворачиваться…
Скачать (Google Диск) – 1.4 МБ.









Blender 2.65 test build

Сегодня стала доступна первая тестовая сборка ожидаемого релиза Blender 2.65. В данной версии пакета пользователей ждет значительное число серьезных нововведений:

  •  Наконец-то появилась долгожданная поддержка Open Shading Language (OSL) – нового языка программирования шейдеров от Sony Pictures. Теперь рендер-движок Cycles является полностью программируемым в прямом смысле этого слова: материалы можно описывать не только в виде графа узлов, но и шейдерных программ в духе традиционных GLSL или RSL. К сожалению, OSL-шейдеры пока не компилируются для GPU и работают только в CPU-режиме – однако скорость исполнения байт-кода OSL и без того поражает воображение…
  • Для Cycles также добавлена поддержка анизотропных материалов и размытия при движении (Motion Blur).
  • Подвергся серьезному обновлению симулятор дыма: теперь он “из коробки” поддерживает симуляцию огня. Объект Domain работает на порядок быстрее. Дым теперь можно выпускать с поверхности мешей без использования системы частиц.
  • Новинки в сфере моделирования: улучшенный инструмент “Фаска” (Bevel) и невероятно полезный новый инструмент “Симметризация” (Symmetrize), позволяющий, как ясно из названия, симметризировать топологию относительно координатных осей. Кроме того, был улучшен модификатор Decimate, позволяющий уменьшить количество полигонов в меше – появились новые алгоритмы редуцирования. Также был добавлен новый модификатор Triangulate, “на лету” упрощающий N-гоны до треугольников.

Более подробный обзор новинок ждите в следующем номере журнала “FPS”.
Скачать сборку Blender 2.65 для Windows, Linux и Mac OS X можно здесь.

Журнал “FPS” №21

Вышел 21 номер электронного PDF-журнала “FPS“, посвященного разработке игр, программированию, компьютерной графике и звуку. В этом номере можно отметить следующие материалы:

> Blender: обзор дополнений (выпуск 3)
> Tears of Steel: роботы тоже плачут…
> Эффект “старинного фото” в GIMP
> Журнал GIMP Magazine
> Язык D: новости
> Семь мифов о D
> Сборщик мусора – враг или друг?
> Юникод в OpenGL. Раз и навсегда
> Почему я выбираю Linux?
> Патентные войны

Номер доступен для онлайн-чтения и загрузки на сервисе Issuu.com и Документах Google. Последние новости по проекту вы можете узнать в публичной странице журнала в социальной сети Google+.

Почему я выбираю Linux?

Последние два года часто приходится слышать о том, что Linux на десктопах «не выстрелил». И что место его – в нише серверов, суперкомпьютеров, встраиваемых систем и мобильных устройств (в качестве Android, MeeGo и др). Не хочется сейчас касаться бессмысленных холиваров а ля «под Линукс нету Фотошопа» – я не буду оправдывать систему перед геймерами, домохозяйками, «офисным планктоном» и прочим подобным контингентом, равно как и агитировать кого-либо переходить на нее. Я просто намерен объяснить, что именно в Linux привлекает среднестатистического хакера – компьютерного энтузиаста-«кулибина», которого, как это ни парадоксально, интересует не наличие прикладного софта, а именно его отсутствие – чтобы был стимул написать свой! В моем случае – отсутствие игр (малый ассортимент, если быть точным). Именно этот факт послужил первой причиной выбора Linux в качестве основной целевой платформы разработки.

Под Linux мало игр – следовательно, высока вероятность, что ваш проект будет оценен по достоинству и получит свою долю популярности. Сравните это с рынком Windows, который настолько перенасыщен, что у «новоприбывших» практически нет никаких шансов – конкуренция слишком высока. Это, конечно, не значит что качественные инди-проекты остаются совсем незамеченными (вспомните историю той же Portal), но факт остается фактом: мир Windows диктует свои правила, и не все в нем способны выжить. Кстати, это относится не только к играм…

В то же время, было бы некорректно утверждать, что мир Linux не диктует никаких правил. Диктует, и еще как. Это вселенная OpenSource, и вам придется так или иначе отдать дань сообществу СПО за то, что пользуетесь свободными программами в своей работе. Неважно, каким именно способом – открытием своих исходников, вкладом в другие открытые проекты, материальным пожертвованием и т. д. Разумеется, это правило неписанное, оно не значится в лицензионных соглашениях. Это скорее этический принцип. Всякий, кто приходит в этот мир, впечатлившись идеалами свободы, горит желанием стать частью движения, чтобы выразить свою благодарность сообществу. И, на мой взгляд, создание свободного игрового проекта – один из лучших способов сделать это.
Поскольку Linux создавался «программистами для программистов», в нем все ориентировано, в первую очередь, на разработку новых и совершенствование существующих инструментов. К примеру, почти все дистрибутивы идут в комлекте с компилятором GCC и рантаймом языка Python – пользователь может запросто, сразу после установки, начать программировать. Сравните это с Windows, где для написания даже простейшего «Hello, World» нужно устанавливать навороченные IDE – часто платные и весьма требовательные к ресурсам. Конечно, можно и в Windows обустроить себе уютное linux-like окружение: установить MinGW или другой набор свободных компиляторов, Posix-утилиты, все необходимые библиотеки – многие так и делают, особенно если нужен кроссплатформенный toolchain. Суть в том, что в Linux этот набор инструментов присутствует изначально. Linux дружественен к разработчику: это заметно везде, в любых мелочах. Вплоть до того, что все линуксовые текстовые редакторы, даже самые простые, поддерживают подсветку синтаксиса.

Есть еще один момент: по очевидным причинам, в Linux доступен только один трехмерный API – OpenGL. В среде программистов бытует устойчивое «суеверие», касающееся интерфейсов разработки 3D-приложений: о том, что для игр больше подходит DirectX, а ниша OpenGL – САПР, промышленная визуализация и научно-исследовательское моделирование. Это происходит из-за дилетантской попытки сравнивать OpenGL именно с DirectX, а не Direct3D. Как известно, DirectX – это не только трехмерная и двумерная графика, но и звук, сеть, взаимодействие с устройствами ввода, библиотеки вспомогательных функций и многое другое. Более корректное сравнение выглядит следующим образом: DirectX vs OpenGL+OpenAL+SDL+FreeType. А это уже, согласитесь, внушительный «арсенал». Причем, доступный не только под Windows и Linux, но и ряд других платформ. А кто станет спорить с тем, что кроссплатформеность – это хорошо?OpenGL в наши дни не просто идеально подходит для разработки игр – на мобильных платформах это и вовсе единственный выбор. Хотите поддержки Android или iOS? Можете забыть о Direct3D. OpenGL – ваш лучший друг.

Разумеется, нельзя забывать о том, что на программировании свет клином не сошелся. Нужны еще средства подготовки контента. Здесь опять на ум приходит вопрос «фотошопов» и «3ds max’ов», но, положа руку на сердце, скажите – неужели для создания моделей, текстур и спрайтов вам недостаточно Blender, GIMP, Inkscape и MyPaint? Photoshop всегда был и остается инструментом фотографов и специалистов по печати, а 3ds max – архитекторов и дизайнеров по интерьерам. Использование этих дорогих и тяжеловесных «монстров» для работы с маленькими изображениями и низкополигональными моделями явно неоправдано. Выходит, в миграции на оупенсорс художникам мешает только консерватизм и сила привычки.

Было бы несправедливо обойти стороной объективные недостатки Linux как десктопной игровой платформы. Если отставить в сторону всякие мифы, суеверия, психологические барьеры, тролль-аргументы вроде «1 процента», остается, на мой взгляд, всего два пункта:

1. Пресловутый «зоопарк дистрибутивов». Даже в рамках одного дистрибутива не так-то просто добиться идеальной совместимости бинарных релизов со всеми версиями ОС – что и говорить о десятках (!) разных операционок… Можно, конечно, нацелиться только на один популярный дистрибутив – скажем, на ту же Ubuntu – и говорить, что все остальное официально не поддерживается. Но это не в духе Linux, за такое пользователи вас добрым словом не помянут. Если ваша игра распространяется по свободной лицензии, можно посылать всех самостоятельно компилировать ее из исходников. Есть и третий вариант – как мне кажется, наиболее вменяемый: официально выпускать один универсальный бинарный релиз, собранный для старой версии Glibc (скажем, 2.7) и имеющий минимум зависимостей, а индивидуальные пакеты для всех популярных дистров поддерживать на базе сообщества. Так делают, например, разработчики Blender. И на протяжении 10 лет у них это успешно получается.

2. Ситуация с видеодрайверами. Производители видеокарт все еще ориентируются, в основном, на Windows. Драйверы для всего остального обычно запаздывают с выходом и уступают по качеству. Но поддержка Linuх не так плоха, как могла бы быть. Если у вас видеокарта от NVIDIA или Intel, можно радоваться, но ситуация с AMD значительно хуже…

Как видите, оба пункта отнюдь не смертельны и для большинства линуксоидов совершенно не критичны. Думаю, излишне упоминать о стабильности, надежности и безопасности Linux-систем, и в качестве хост-системы для различных разработок и экспериментов они не имеют равных.