Сегодня 28 марта 2024
18+
MWC 2018 2018 Computex IFA 2018
реклама
Игры

О Colobot'е, игровой индустрии и программировании

Автор: Сергей Хорев
Конкурсный обзор
Хочу сразу сказать, что не являюсь геймером в современном понимании этого слова: не просиживаю ночами в клубах за Counter-Strike (вообще в них не бываю), да и за компьютером ночую редко. Я - профессиональный программист и это накладывает определенный отпечаток на мои вкусы. Люблю иногда поиграть во что-нибудь такое интересное. Раньше это были стандартные для большинства молодых людей Doom, Quake, суперхит Half-Life, DeusEx, перемежаемые периодами Starcraft и Heroes of Might and Magic.

И всегда в большей или меньшей степени возникало возмущение, недоумение и даже раздражение по поводу действий искусственного интеллекта. Если в "стрелялках" враги (даже слабые) тупо перли на тебя или описывали стандартные траектории несмотря на очевидную уязвимость, то в стратегиях реального времени выводил из себя дружественный интеллект. Хотя нет, не только: в Half-Life взятый с собой охранник (что было революцией само по себе) тоже мог запросто тебя пристрелить, окажись ты на линии огня, когда он увидел монстра. Вообще, про Half-Life не будем говорить: я рискую оказаться сильно пристрастным - до сих пор ее люблю, несмотря на (ее) возраст и графику.

Наверное, все игравшие в Starcraft ругались на то, как юниты находят пути, но все-таки рано или поздно они, как правило, разрешали все deadlock'и, но почему юнитам можно сказать "патрулировать", "стоять на месте", "атаковать", но нельзя скомандовать: "охранять, если напали - отстреливаться, но не лезть дальше этого предела". Господи, сколько я потерял таким образом Mutalisk'ов (люблю играть за Зергов), пасшихся на окраинах моих территорий и увязавшихся за дурацким Dropship'ом! Конечно, когда играют "папики", у них все юниты идут куда надо и делают тоже только то, что надо, но мы не говорим про хардкорных геймеров (если честно, я склонен это считать какой-то аномалией).

В принципе, у любого есть шанс улучшить свою любимую игру: выпускаются всевозможные редакторы и SDK, но, как правило, надо очень хорошо изучить движок и все равно дело ограничивается более или менее большим набором скриптов - "рецептов на все случаи жизни". А хочется чего-нибудь гибкого (шланг просьба не предлагать) и удобного.

И вот появился ОН - Colobot. Единственный виденный мной русскоязычный обзор на AG отозвался о нем не очень лестно и, по-моему, зря. Вот я и постараюсь восполнить этот пробел. Кстати, как-то встретилась мне русификация от "Фаргуса", значит, есть и другие оценившие люди.

Создала ее практически неизвестная компания Epsitec. Как я понял из credits и информации на сайте, в ней работают французы и наши братья-славяне - чехи.

Итак, что же это такое - Colobot? Расшифровка - Colonize with Bots - ничего не говорит. В общем, это стратегия реального времени с введением в программирование. Ну как вам? Звучит обескураживающе и интригующе, не правда ли? Если с первой частью все понятно - еще одна RTS (не скажешь, что эта часть уж очень хороша, она там только для интриги), то со второй надо бы подразобраться. Здесь имеется возможность ПРОГРАММИРОВАТЬ ЮНИТЫ. Теперь если твой подопечный себя плохо ведет, то вину за это можно возложить исключительно на себя. Язык программирования довольно прост, но в то же время далеко не примитивен. Больше всего напоминает С++. А, может, Java. Такая же объектно-ориентированность, доведенная до абсурда, то же отсутствие "опасных" операций с указателями и памятью. Это, кстати, практически все, что я знаю про Java.

Задача игры проста: тебя высаживают с некоторым запасом ресурсов на планету, которую нужно освоить. На ней обитают разнообразные насекомые несколько крупнее наших - пауки, муравьи, осы; все они настроены далеко не дружелюбно. Универсальным сырьем является Titanium, его надо обрабатывать, строить сооружения, создавать роботов. Роботы бывают всякие: просто транспортеры на колесах, на гусеницах, летающие. Есть и "военные" юниты, но всех их объединяет одно - им нужны батареи, которые имеют подлую манеру быстро истощаться. К сожалению, давать групповые команды нельзя: каждый бот требует индивидуального подхода. Но есть возможность писать программы почти на естественном языке, названном CBOT, и даже их отлаживать! А уж здесь открывается необъятный простор для творчества, вплоть до программирования общения между юнитами. Должен похвалить авторов: они не стали использовать синтаксис недо-языков типа *Basic, они делают из своих пользователей настоящих программистов. Действительно, такой свободы, как в конструкциях С++, нет ни в Паскале (при всем моем уважении к нему), ни в каком другом распространенном языке. Другой вопрос, конечно, стоит ли начинать обучение именно с C++? Не знаю... Может и не стоит, особенно если обучать прикладному программированию.

Возвращаясь к основной теме, приведу текст простой программы. Она написана для летающего и стреляющего робота, чтобы он отыскивал муравьев, подлетал к ним на боевое расстояние, прицеливался и уничтожал:

extern void object::Ant()
{
	object    item;
	aim(-20);
	while (true)
	{
		hile (radar(AlienAnt, 0, 360, 0, 20) == null)
		{
			item = radar(AlienAnt);
			turn(direction(item.position));
			motor(1,1);
			jet(0);
			
			if (position.z-topo(position) < 6)
			{
				jet(1);
			}
			if (position.z-topo(position) > 9)
			{
				jet(-1);
			}
			wait(0.2);
		}
		fire(1);
	}
	
}
Как видите, все очевидно.

Должен сказать, что разработчики очень облегчили себе задачу - все объекты, управляемые компьютером, "живут" по программам на CBOT и можно даже попробовать их поменять - они лежат в открытом виде. Естественно, у пользователя есть возможность сначала потренироваться - для этого предназначен немалый набор миссий, где постепенно, от простого к сложному, научат управлять ботами "вручную" (что довольно-таки скучно) и программно.

Если честно, я бы не смог долго играть в эту игру, если бы не мой 2.5-летний ребенок: ему что-то так запало в душу (может, мои размышления вслух, может, еще чего), что пришлось доставлять ему радость. Получалось почти как в анекдоте: приходишь домой напрограммировавшийся, хочешь отдохнуть-отвлечься, а дома тот же C++.

Ну что ж, пришла пора поговорить о графике. Впечатление она оставляет двойственное. С одной стороны, игра хочет DirectX 8.0 и якобы использует многие его фичи вплоть до Hardware T&L (нормально для RTS, да?), а с другой - не очень-то она и отличается изысканностью: вы только посмотрите на эти, с позволения сказать, модели. По-моему, использование Direct3D "по максимуму" является большим плюсом , причем не в плане красоты эффектов. Значит, разработчики не тратили время на бестолковое создание красивостей минимумом средств (типа "трехмерной" графики в Starcraft или Diablo, основанной на самом деле на спрайтах). Поэтому большая часть их усилий пошла на совершенствование игрового и языкового движка. Ну и, конечно, все-таки интересно посмотреть на круги, идущие по воде, огонь, туман, искры, взрывы, молнии. Единственная огорчительная деталь - это отсутствие вида сверху, что объясняется, видимо, тем, что игрок действует не как абстрактное сверх-существо, а как конкретный астронавт, которого, кстати, могут и убить. Зато есть вид от первого лица: можно даже смотреть на мир "глазами" конкретного робота, что может оказать полезным при необходимости сложного маневрирования (мир-то, кстати, трехмерный, соответственно, летающие роботы могут летать, эдакое эхо легендарного Descent'а).

Кстати, говоря о качестве: вроде чехи - недавние собратья по соцлагерю, но ведь выпускают нормальные игры (или вспомним хорватского Serious Sam). А наши что? Из самых последних разочарований хотелось бы вспомнить Venom: Codename Outbreak. Взял у друга на один вечер, очень понравилось, купил... Но, Господи, почему столько глюков? Даже оперативно выпущенные патчи не исправляют всех проблем. Чего стоит заботливый MessageBox при настройке: "на Windows 2000 кнопки мыши могут залипать". Разработчики пишут, что это баг в DirectInput. Может быть, но почему он больше НИ В КАКОЙ игре не встречается? Значит, это можно все-таки обойти? Про ни разу не перечитанный авторами после составления черновика readme лучше вообще молчать. Или про диски с трещинами (к чести компании "Русобит-М", диски они меняют). Я уж не говорю, про откровенно убогий и глючный графический движок. Хорошо, что хоть честно написано Copyright 1998-1999 Roman Lut. От возраста движка и все его беды. Видимо, денег жалко, или это болезнь всех программистов "все сделаю сам" не позволила приобрести нормальный? До некоторого момента абсолютно уникальный геймплей все это компенсировал, но только до некоторого момента. В конференции iXBT один гражданин заявил, что идея игры взята из Daikatana. Конечно, он заблуждается, но кое в чем он все-таки прав: действительно, одна вещь эти игры объединяет - глючность, плавно переходящая в абсолютную неиграбельность. Ну ладно, хватит отрицательных эмоций, вернемся к нашим ботам.

Приведу несколько картинок.



Figure 1. Это одна из моделей ботов, смело шагающая по воде


Figure 2. А это астронавт в тумане. Ближе к нему лучше не подходить - выглядит не очень.


Figure 3. Процесс конверсии Titanium'а, на заднем плане стреляющий бот на гусеницах.


Figure 4. Батальная сцена с участием оборонительных сооружений, ботов, пауков и муравьев. Ох, не выжить базе без толкового программиста.


Figure 5. Сцена воздушного боя.


Figure 6. Окно редактирования программы (заметьте, есть синтаксическая подсветка).

Мне кажется, что Colobot добавил еще одну нишу на восточном базаре компьютерных игр. Очень надеюсь, что этот жанр будет развиваться и дальше. По крайней мере, наборы скриптов и миссий для Colobot уже появились.

В заключение хотелось бы упомянуть еще одну деталь: помимо лицензий на копию, на сайте производителя предлагается вариант site license для образовательных учреждений, что еще раз говорит, что мы имеем дело не с простой игрушкой.



 
 
Если Вы заметили ошибку — выделите ее мышью и нажмите CTRL+ENTER.
Вечерний 3DNews
Каждый будний вечер мы рассылаем сводку новостей без белиберды и рекламы. Две минуты на чтение — и вы в курсе главных событий.

window-new
Soft
Hard
Тренды 🔥
Громкие анонсы «без рекламы и лишней болтовни»: ведущие инди-разработчики устроят собственную игровую презентацию The Triple-i Initiative 53 мин.
Databricks представила открытую LLM DBRX, превосходящую GPT-3.5 Turbo 2 ч.
«Всегда обидно, когда хейтеры оказываются правы»: Earthblade от авторов Celeste не выйдет и в 2024 году 3 ч.
США запретили властям использовать ИИ, который ущемляет американцев 3 ч.
Экшен-платформер Nine Sols от создателей Devotion наконец получил дату выхода — это смесь Hollow Knight и Sekiro: Shadows Die Twice в стиле даопанка 4 ч.
Разработчики Homeworld 3 раскрыли, как улучшат игру после критики фанатов 5 ч.
Экс-глава EA Russia Тони Уоткинс сделает Astrum Entertainment «компанией №1» на российском рынке видеоигр 8 ч.
Магазин чат-ботов ChatGPT провалился, но им пользуются ученики школ и университетов 8 ч.
Diablo IV добавили в Game Pass, но для игры на ПК всё равно нужен Battle.net 8 ч.
Canonical увеличила срок поддержки LTS-релизов Ubuntu до 12 лет 9 ч.
Apple представит обновлённые планшеты iPad Pro и iPad Air в начале мая, если слухи верны 52 мин.
Глобальное потепление замедлило вращение Земли, и в этом уже нашли плюсы 3 ч.
Nautilus запустила линейку инфраструктурных решений EcoCore для модульных ЦОД 3 ч.
Китай нарастил закупки нидерландского оборудования для выпуска чипов в несколько раз, несмотря на санкции 3 ч.
Оптика для HBM: стартап Celestial AI получил ещё $175 млн инвестиций, в том числе от AMD и Samsung 3 ч.
Logitech представила беспроводную низкопрофильную клавиатуру Signature Slim K950 3 ч.
Под давлением пользователей Google преодолела аппаратные ограничения для внедрения ИИ в Pixel 8 5 ч.
В апреле Meta добавит искусственный интеллект в умные очки Ray-Ban Meta 5 ч.
Thermaltake представила корпус S250 TG ARGB с поддержкой больших радиаторов СЖО 5 ч.
Опубликовано фото машины Apple Presto для обновления iPhone без вскрытия упаковки 6 ч.