Игра "Fifteen Match"
Дата публикации: 29/03/2022Несколько месяцев назад я решил участвовать в хакатоне Flutter Puzzle Hack, где нужно было написать вариацию игры Пятнашки на Flutter. В данный момент соревнование завершилось и выложены работы всех претендетов. Моя версия доступна вот по этой ссылке. Ниже я описываю процесс создания игры и особенности реализации игры.
Итак, задача была создать вариацию знаменитой головоломки 15. Как известно, в своей основе она обманчива проста и ее достаточно легко реализовать. Сложность заключается только в проверка решаемости головоломки. Но эта задача математиками уже была решена и есть достаточно простой алгоритм, который позволяет проверить любую позицию на решаемость.
Старые DOS-овские игрушки
Дата публикации: 08/07/2011Иногда хочется запустить какую-нибудь старую досовскую игрушку, несмотря даже на то, что существуют ее аналоги под современные операционные системы. Но аналоги зачастую не всегда полностью повторяют исходную игру и могут отличаться как оформлением, так и особенностями управления. Да и просто ностальгия именно по этой старой игре может вдруг возникнуть. Разумеется, в той же Windows есть режим совместимости, который позволяет запускать старые приложения, но этот режим может не всегда корректно работать. И лучше всего запускать приложения в своей родной среде.
В современных реалиях, родную среду для программы обеспечивают виртуальные машины, а мощности современного процессора вполне достаточно для комфортной работы стареньких программ. Мне нужно было обеспечить работоспособность программы как в Windows, так и в Mac OS X, поэтому я воспользовался свободно распространяемой виртуальной машиной VirtualBox.
Есть такая старенькая игра под названием "Pentix", написанная для чистого DOS и достаточно популярная в свое время, в своих кругах. По крайней мере, я знаю человека, который до сих пор в нее играет. Сама игра это разновидность тетриса, но только фигурки там состоят не из четырех квадратиков, а из пяти или меньше.
Игра "Abc Matches"
Дата публикации: 05/07/2011Написал небольшую детскую игру для iPhone/iPod touch. Собственно говоря, это достаточно известная игра на тренировку памяти, когда требуется открывать парные картинки за минимально возможное время. Только я использовал вместо картинок буквы, которые выбираются случайным образом.
Игру я написал в процессе изучения фреймворка Cocos2D, предназначенного для написания двумерных игр. Фреймворк очень неплох и содержит базовые классы для работы со сценами, спрайтами, текстом, эффектами трансформации, обеспечивают поддержку звука и прочего, что обычно востребовано в играх. Сам фреймворк построен на базе графического языка OpenGL и, кроме уже упомянутых базовых возможностей, включает в себя также и два физических движка, что позволяет писать игрушки класса "Angry Birds" или "Tiki Totems".
По сути, программирование с использованием фреймворка cocos2d кардинально отличается от классического программирования для iPhone с использованием CocoaTouch и, пожалуй, несколько проще. Если у вас есть небольшой опыт программирования на Objective-C, то этого вполне достаточно, чтобы начать писать свои собственные игры. Да, здесь нужно сказать, что сам фреймворк, за исключением физических движков, ориентирован на работу с объектами в стиле CocoaTouch. Использование готового игрового движка позволяет сэкономить массу времени на написании и оптимизации базовых функций, которые на 80% совпадают в большинстве игр. Что, в свою очередь, позволяет сосредоточиться непосредственно на написании самой игры.
Но вот что вам обязательно понадобится, так это хорошая книжка. Я очень рекомендую книгу Pablo Ruiz "Cocos2D for iPhone 0.99", в которой подробно разбираются все возможности фреймворка на примере написания трех типичных игрушек. Кроме этого, Ray Wanderlich поддерживает замечательный блог, посвященный программированию для iPhone/iPad, в том числе и с использованием Cocos2d. Ну и наконец, есть документация непосредственно на официальном сайте cocos2d, хотя ее там, к сожалению, не так много, как хотелось бы.
"Abc Matches" - игра на самом деле простая, но мне такая и была нужна, чтобы разобраться с фреймворком. Другой задачей было довести игру до завершенного состояния и опубликовать в AppStore. Ну и чтобы продукт был законченным, я также создал для этого приложения небольшой сайт поддержки.
World Of Goo
Дата публикации: 26/04/2009В продолжение заметок об интересных играх, использующих законы физики. Если чуть раньше я рассказывал об игре, в которой можно было нарисовать любой объект и он тут же приобретал вес и начинал взаимодействовать с реальностью по законам физики, то сегодня я расскажу об игре, в которой нужно строить конструкции. Точнее сказать, надежные конструкции, наподобие строительных ферм. И здесь мы скорее обращаемся к разделу механики, а сама игра очень забавная.
Она называется "World Of Goo" и в чем-то напоминает старую игрушку "Lemmings", где нужно было провести группу маленьких человечков от входа до выхода, минуя разные страшные препятствия. Но если в леммингах нужно было каждому давать свое определенное задание: одному копать, другому взбираться по стене, третьему никого не пускать, то в "World Of Goo" немножко по-другому. В процессе игры происходит строительство сложной ажурной конструкции - мы как бы превращаем некоторые из Goo в узлы конструкции. Но что еще роднит эту игру с леммингами - это цель: необходимо провести до выхода, точнее до всасывающей трубы, нужное количество этих самых Goo. С каждым уровнем это становится делать все сложнее, но жутко интересно.
Причем эти самые Goo бывают разные. Если на первом уровне они, так скажем, одноразовые - поставил в качестве узла конструкции и все, то потом появляются такие, которые можно передвигать несколько раз. Также есть Goo-воздушные-шарики - они позволяют подвешивать всю конструкцию и тем самым удерживать ее в некоей стабильности. Решение этих небольших головоломок очень захватывает. :)
С точки зрения графического исполнения эта игрушка мне напомнила "Worms" - очень похожий стиль отрисовки и такой же игрушечный мир. Другими словами, внешне все нарисовано очень привлекательно. Так что если есть желание вспомнить физику и немножко поработать мозгами, то добро пожаловать в "Мир Goo". Демо-версия игрушки доступна непосредственно на сайте разработчика. Сама же игра, нужно сказать, получила награду за дизайн и техническое исполнение на фестивале независимых разработчиков игр.
Нарисованная физика
Дата публикации: 04/03/2009На днях наткнулся в журнале на упоминание одной очень забавной игры, которая называется "Сrayon Physics Deluxe". Сегодня я добрался до ее поиска в интернете и скачивания на предмет изучения. Суть игры заключается в решении логических задачек, построенных на том, чтобы доставить один объект к другому, используя законы кинематики... уфф! Немножко непонятно, я знаю, но сейчас попробую все объяснить.
Самое интересное в этой игре заключается в том, что для решения задачи мы самостоятельно рисуем нужные объекты. При этом учитывается их форма, размер и законы физики! Графическое оформление игры очень простое, но как раз то, что нужно для создания атмосферы. Вы можете посмотреть на скриншоты, чтобы увидеть как выглядит интерфейс, а я немного расскажу о процессе игры.
Изначально у вас есть только карандаш, но зато при помощи него можно нарисовать все, что угодно. При этом большой нарисованный булыжник будет тяжелее маленького и оба начнут падать, как только вы закончите их рисовать - согласно земному притяжению, открытому сэром Исааком Ньютоном. При этом в процессе падения нарисованный объект начинает взаимодействовать с другими объектами. И для решения задачи нужно догадаться и нарисовать одну или несколько фигур определенной формы и размера. При этом, кроме плоских фигур, нарисовать можно даже простую линию, которая будет вести себя также как физический объект, правда вопрос веса линии остается при этом открытым :).
Что мне еще понравилось в этой игре, так это помощь, встроенная непосредственно в саму канву игры - на первой же головоломке вам показывают, как нужно нарисовать прямоугольник и что при этом произойдет. Остальные доступные возможности показываются также ненавязчиво и в тот момент, когда мы доходим до нужного уровня.
Возможно, некоторые из вас вспомнят, что во времена DOS была похожая по концепции игра под названием "The Incredible Machine". Ее смысл также заключался в решении похожих задачек, но только у нас был определенный набор объектов типа: блоки, веревки, ножницы, транспортеры, шарики и т.д. И нужно было правильно расставить и соединить эти объекты, чтобы потом нажав кнопку все это запустить. Игра "Сrayon Physics Deluxe" в чем-то похожа на нее, но и в чем-то совсем другая.
К сожалению, в демо-версии игры, которую можно скачать непосредственно с сайта разработчика, доступны только два первых острова, на каждом из которых всего около десятка головоломок. Как и в любой классической головоломке сложность игры растет вместе с увеличением номера уровня. Кроме этого, в демо-версии есть вполне функциональный редактор уровней, так что можно придумывать и рисовать свои собственные головоломки.
В любом случае, игра очень забавная и в нее интересно поиграть, особенно учитывая что на каждом уровне нет какого-то жестко заданного решения. Любую из предложенных задач можно решить несколькими способами, хотя в некоторых случаях и единственное решение найти непросто.