Всем привет!
С момента релиза нашего бесплатного сборника текстовых игр Non-Linear Text Quests прошло уже довольно много времени, но мы не сидели без дела! На самом деле, новостей очень много: мы осваиваем новый для нас движок Godot и изучаем возможности его применения для создания 3D-игр, а самое главное — совсем скоро у нас выходит новая игра! Ниже я постараюсь рассказать обо всём, по возможности кратко, но подробно.
Движок INSTEAD, который мы использовали для создания наших предыдущих игр, отлично подходит для создания текстовых игр и визуальных новелл, но кое-какие из наших задумок реализовать на нём было очень сложно. Поэтому я стал изучать другие движки, пытаясь выяснить, какой из них лучше всего подойдёт для наших задач. Я хотел, чтобы движок:
- Был бесплатным и с открытым исходным кодом
- Был кроссплатформенным (как минимум, чтобы мог работать на Windows, Mac и Linux)
- Поддерживал работу с 3D
- Поддерживал работу с XBOX-контроллером
- Позволял писать модули расширения на C/C++ или C#, чтобы можно было интегрировать игру со Steam
Движок Godot удовлетворял всем этим требованиям и выглядел весьма перспективным, поэтому мы решили попробовать работать с ним. Сразу после релиза Non-Linear Text Quests я стал изучать документацию, а остальные члены команды — продумывать сюжет и создавать модели для нашей новой игры. Это будет сюжетная 3D-бродилка, в которой главный герой сможет исследовать большую подземную базу, открывая её секреты. В будущем я планирую более подробно рассказать об этой игре, поскольку в разработке 3D-игр с использованием Godot есть много нюансов, которые наверняка будут интересны многим игроделам. Но сейчас мне хочется рассказать о другой игре, более простой, но надеюсь, не менее интересной.
Дело в том, что первая игра оказалась довольно масштабной, и несмотря на то, что большая часть контента уже готова, было очевидно, что закончить её быстро без ущерба для качества не получится. Плюс к тому, на данный момент в движке есть проблемы, о которых мы не знали в начале разработки, и которые могут плохо сказаться на производительности игры на старых машинах.
Идея создания игры-викторины на том же движке родилась, когда мы смотрели очередной выпуск «Своей игры». Ещё ранее мы играли в викторину от DuCats Games, которая вышла примерно в то же время, что и наша предыдущая игра, но почему-то мысль сделать что-то подобное самим пришла не сразу. Теперь же это показалось отличной идеей: это был шанс опробовать движок в боевых условиях, полностью интегрировав его с возможностями Steam, такими как достижения, поддержка списка лидеров, а в идеале даже добавив игру по сети. Достижения мы делали и раньше, но вот всё остальное было совершенно новым опытом. Ну и, к тому же, мы сами являемся любителями различных телевикторин, и сделать что-то подобное было очень интересно. Так и родилась наша викторина «I Know Everything» («Я знаю всё»).
На данный момент в игре есть пять разных тем: Астрономия, Математика, Мировая литература, Русская литература и Кулинария, в каждой из которых около ста вопросов. Во время игры вам нужно ответить на вопрос, выбрав один или несколько правильных вариантов ответа из четырёх. Поддерживаются различные режимы игры: вы можете играть без оппонента и ограничения по времени, спокойно обдумывая вопросы, однако, если захотите пробиться в топы и стать лучшим эрудитом, то придётся попробовать свои силы в игре с компьютерным оппонентом или другими игроками в Steam.
Как и в «Своей игре», в игре против оппонента имеют значение не только ваши знания, но и скорость вашей реакции, так что поиск ответа при помощи Гугла уже не будет таким эффективным. Однако, торопиться тоже не стоит, после пяти ошибочных ответов вы проиграете. Но, быть может, вы знаете какую-то конкретную тему лучше, чем ваш соперник, и это вам поможет?
Ну а если вы сами разработчик компьютерных игр и используете Godot, то наверняка вам будет интересен исходный код игры, который будет опубликован после её релиза под лицензией MIT. Там вы сможете на практике изучить, как можно грамотно сделать локализацию стандартными средствами Godot (текст интерфейса и его перевод находится в отдельном csv-файле, который удобно редактировать как разработчику, так и переводчику), как использовать GDNative-библиотеки, представляющие из себя скомпилированный C++-код, расширяющий возможности движка. В этой игре я использовал две сторонние библиотеки: GDSQLite для поддержки базы данных SQLite и GodotSteam для работы со Steam API, который в том числе использует предоставляемые Steam P2P-функции для реализации сетевой игры. Также, возможно, вам будет интересно увидеть пример создания GUI с использованием предоставляемых Godot элементов интерфейса.
Игру уже можно добавить в список желаемого в Steam, если, конечно, вам нравятся подобные викторины.