windows
Новая демка Atrium
Скачиваем новую демку с тенями:
Для Windows (2,36 МБ)
Для Linux (3,89 МБ)
Под Windows запускайте с параметром --enableShadows=1, либо используйте прилагающийся bat-файл, в котором этот параметр уже указан.
Репозиторий Atrium на GitHub также будет обновлен в ближайшее время.
Spider-Man: The Ultimate Fighter
В раздел «Игры» добавлен еще один раритет: моя игра 2006 года «Spider-Man: The Ultimate Fighter», 2D-файтинг с Человеком-пауком в главной роли. Есть три уровня с возрастающей сложностью — вы должны победить зомби, Скорпиона и Росомаху. Относительно мощный (для игры на Game Maker) искусственный интеллект: с некоторыми врагами одержать победу с первого раза будет непросто.Управление: стрелки влево/вправо — перемещение, стрелка вверх — прыжок, пробел — удар, пробел + влево/вправо — выстрел паутиной, Escape — пауза, F6 — пропустить уровень. Есть также поддержка джойстика (вместо пробела — кнопка 1).
В архив, как обычно, включены все исходные материалы (под Public Domain).
Обновление Atrium
- В игру интегрирован физический движок dmech в его актуальном состоянии
- Проект теперь использует графический движок DGL
- Готова модель гравитационного излучателя с эффектом электрического разряда
- Добавлен HUD, который отображается на дисплее внутри шлема. Забрало шлема можно открывать и закрывать (планируется сделать локации в вакууме, проходить которые можно только с закрытым забралом)
- Идет работа над первой игровой локацией.
Скачать:
atrium-demo-03122014-windows.zip
atrium-demo-03122014-linux.tar.gz
Кинематика персонажа
Доступна новая демонстрация работы dmech — на этот раз, на примере игровой кинематики (Character Controller) для игры от третьего лица. Персонаж умеет двигаться и прыгать, взаимодействуя со всеми физическими объектами и тримешем уровня.
Управление:
Стрелки — поворот вправо-влево и движение вперед-назад;
Пробел — прыжок.
Исходники вскоре будут доступны в рамках проекта Atrium.
Составные тела в dmech
В физическом движке dmech реализованы составные тела (поддержка нескольких геометрий на тело). Корректировка позиции теперь основана на псевдоскоростях. Кроме того, устранен артефакт дрожания (jittering), возникающий в некоторых ситуациях.Также dmech теперь использует последнюю версию dlib.
Сборка для Windows
Сборка для Linux
Исходники
Репозиторий на GitHub будет обновлен в ближайшее время.
Как я стал D-шником
Моим первым языком программирования был BASIC. Если быть точным, его надмножество Blitz BASIC – это, в сущности, была целая среда для создания простых приложений и игр. Тогда меня поразил сам факт того, что программа для компьютера – это не что иное, как набор инструкций, человекочитаемый текст на специальном языке! Впрочем, человекочитаемость иных текстов на BASIC можно поставить под сомнение – особенно помня слова Эдсгера Дейкстры: «Студентов, ранее изучавших Бейсик, практически невозможно обучить хорошему программированию. Как потенциальные программисты они подверглись необратимой умственной деградации…» И, тем не менее, эта ни с чем не сравнимая магия переменных, циклов, функций – равно как и желтых букв на синем фоне – сделала свое дело. Не говоря уже о трехмерной графике на основе DirectX 7, которая была встроена в язык – стоит ли говорить, насколько поражала воображение возможность вот так, запросто, безо всяких специальных знаний нарисовать на экране вращающийся кубик?..
GML завоевал мое внимание на долгие пять лет. За это время я изучил Game Maker, что называется, вдоль и поперек, написал множество разнообразных 2D-демок (большинство из которых, увы, не сохранилось) и несколько полноценных игр – вы, кстати, можете ознакомиться с некоторыми тогдашними творениями на странице «Игры и демки». Меня разочаровывало только одно: отсутствие в программе приличных инструментов для рисования трехмерной графики. Был простенький 3D-режим на основе Direct3D – очень медленный, без доступа к программируемому конвейеру и другим современным «наворотам». Хотя, справедливости ради стоит отметить, что и на нем можно было делать неплохие вещи.
К этому времени появились специализированные 3D-движки, специально написанные для GM. В их числе был враппер популярной Delphi-библиотеки GLScene – Xtreme3D, поддерживавший практически все возможности оной: большое количество поддерживаемых форматов моделей и текстур, анимация, различные спецэффекты вроде динамической воды и системы частиц, менеджер управления ресурсами, встроенная проверка столкновений и даже физика на основе движка ODE. Я заинтересовался, изучил этот движок и даже открыл по нему сайт – http://xtreme3d.narod.ru(впрочем, после переезда на Ucoz он переживает не лучшие времена).
Так совпало, что именно в это время я познакомился с движением СПО (свободного программного обеспечения), и это навсегда изменило мое отношение к компьютерам. В какой-то момент моими привычными инструментами стали исключительно свободные программы – GIMP, Blender, OpenOffice.org и т.д. Я понял, что свобода изучения, изменения и распространения программ важнее их качества – хотя это, на первый взгляд, кажется абсурдным. Так утверждает Ричард Столлман – великий человек, основатель проекта GNU, автор лицензии GPL и создатель таких программ, как компилятор GCC и текстовый редактор Emacs. Над его словами часто иронизируют – но в итоге он всегда оказывается прав.
Дело шло неплохо – пока я в один прекрасный день не установил Linux. Это прямого отношения к моему программерскому хобби не имело, но в силу обстоятельств оказало на него сильное влияние. Несколько лет я большую часть времени проводил в Linux – и, естественно, писал под него программки, изучал линуксовые инструменты для разработчиков. К Game Maker уже практически не прикасался. В какой-то момент я понял, что нет больше смысла привязывать себя к Windows – и с тех пор мой движок существует как отдельный самодостаточный проект. Правда, он до сих пор не принял устоявшейся формы. Нет ни релизов, ни версий, ни постоянного репозитория, ни даже конкретного названия – это просто движок. Периодически я выпускаю какие-то демки и мини-игры, основанные на нем. Но окончательной версии, готовой к использованию сторонними лицами, пока нет.
Мое представление о D изначально было весьма смутным: мне казалось, что это какое-то расширение С++ – наподобие того, как сам C++ является расширением C. Ознакомившись со статьей на Википедии, я почувствовал, что это именно то, что мне нужно: компиляция в машинный код, как у C++, и автоматическое управление памятью, как в Java (но надо сказать, что с Java мне на тот момент еще не приходилось работать, поэтому сравнивал я, естественно, с C++). И это не считая многочисленных полезных мелочей, которые D унаследовал от своих многочисленных предшественников – C#, Python, Haskell и др. Обрадовало то, что компилятор D компактен и легок в установке: распаковал архив в любой каталог и работай. В одном архиве – версии для Windows, Linux и FreeBSD, плюс подробная документация по языку и стандартной библиотеке.
Я пишу на D уже несколько лет и очень доволен языком. С каждым релизом он становится все лучше. Не берусь рекомендовать его тем, кто вынужден тянуть вагон legacy-кода на C++ (все-таки, полной бинарной совместимости с C++ у D нет), а также тем, кто такого багажа не имеет, но планирует на полном серьезе трудоустраиваться куда-нибудь в качестве программиста (там тоже будет legacy). Но тот, кто свободен от этого балласта – хакер, любитель, инди-разработчик – обязательно оценит язык по достоинству. Даже если у вас есть некоторое количество кода на «плюсах», без которого вы не можете жить, ничто не мешает потратить пару вечеров и портировать его на D. Сам я так и сделал – некоторые компоненты моей библиотеки dlib были портированы с C++.
Arrow
Arrow — мини-игра наподобие «Тетриса», которую я от нечего делать написал за ту неделю, когда у меня не было доступа в Интернет. Это, фактически, клон java-игры GuruGuru, предустановленной на мой телефон (Pantech PG-1500). Она отличается от классического «Тетриса» оригинальной механикой: вместо простых блоков здесь блоки-стрелки. Вы должны выстраивать линии из стрелок, указывающих в одном направлении. Есть четыре однонаправленные стрелки (вверх, вниз, вправо, влево), две двунаправленные (горзонтальная и вертикальная) и одна четырехнаправленная. Как только выстроена линия в 3 и больше стрелок, она исчезает, а все соседние с ней стрелки поворачиваются на 90 градусов. Есть также «бетонный» блок без направления, который исчезает только вследствие исчезновения его соседа.
В игре пока нет уровней, системы подсчета очков или каких-либо иных целей — просто бесконечный игровой процесс. Если экран заполнится блоками доверху, игра заканчивается. В оригинальной GuruGuru был интересный режим «битвы» с искусственным интеллектом — побеждал тот, кто дольше продержится, не заполнив свой экран. Не исключено, что когда-нибудь нечто подобное будет реализовано и в Arrow.
Игра написана на D, с использованием моего «традиционного» инструментария: OpenGL, SDL, FreeType, Derelict, dlib.
Сборка для Windows (0,93 МБ)
Исходники доступны на GitHub: https://github.com/gecko0307/arrow
Обновление демки
Небольшое обновление демки физического движка: добавлены цвета для тел, убраны лишние пункты меню, изменена фоновая картинка меню, проделаны другие косметические изменения.
Сборка для Windows (1,87 МБ)
Исходники (3,48 МБ)
Цилиндры и MPR
В физическом движке реализован новый алгоритм проверки столкновений — Minkowski Portal Refinement (MPR), который позволяет ввести поддержку таких тел, как цилиндр, конус, пирамида, призма, капсула, октаэдр и т.д. Этот же алгоритм работает и для привычных сфер с боксами — самое замечательное в том, что список поддерживаемых тел можно расширить вообще любым выпуклым объектом, для которого определена функция экстремальной точки в заданном направлении (иными словами, геометрия должна знать, какая ее точка является «самой далекой» от центра в каждом направлении).
Сборка для Windows (1,62 МБ)
Сборка для Linux (2,48 МБ)
Исходники (3,11 МБ)




