Что такое кроссплатформа в играх
Нужен ли кроссплей сетевым шутерам (Apex Legends, Black Ops – Cold War и другим)?
В этой статье мы с вами обсудим то, как в сетевых шутерах реализуется кроссплей, нужен ли он шутерам, какие у кроссплея есть плюсы и минусы, а также есть ли какие-то перспективы у кроссплатформы между консолями и ПК, или это просто временный тренд, от которого разработчики в скором времени откажутся?
Для удобства восприятия информации эти два понятия мы разделять не будем и в дальнейшем, говоря о кроссплатформе или кроссплее, я буду иметь в виду возможность одновременной игры с различных платформ.
История кроссплея
Идея объединить игроков с различных игровых устройств не нова, так приставка Sega Dreamcast еще в 1998 году была оснащена модемом, что позволяло ее владельцем играть совместно с пользователями ПК в такие игры, как Maximum Pool, Quake 3 Arena и некоторые другие.
В 2002 году Sony продемонстрировала возможность онлайн-игры между PlayStation 2 и компьютерами в Final Fantasy 11.
А в 2012 году функция кроссплатформенной игры между PlayStation 3 и ПК была убрана из игры Counter-Strike: Global Offensive буквально за несколько месяцев до релиза. Негласной причиной являлось несоответствие серверов Sony стандартам Valve.
Все это говорит о том, что всегда существовали некоторые практические ограничения для кроссплатформы. Главная техническая проблема, с которой сталкивается кроссплатформенная игра на консолях, – это сетевая связь между платформами, которые управляются различными протоколами.
Однако в середине сентября 2017 года данные технические ограничения удалось преодолеть, в результате чего кросспплей на короткое время позволил игрокам на компьютере, PlayStation 4 и Xbox One играть вместе в Fortnite.
Время шло, и уже в 2019 году возможность играть вместе владельцам основных консолей и ПК была предоставлена на постоянной основе все в той же Fortnite. Затем аналогичная функция кроссплея появилась в Rocket League, Minecraft и Call of Duty: Modern Warfare (2019).
Как вы, наверное, успели заметить, 4 последние упомянутые мной игры являются шутерами, т.е. играми, где помимо скила, многое решает AIM (АИМ) или скорость наведения на цель. А как вы сами понимаете, при кроссплаформенной игре лоб в лоб сталкиваются игроки на геймпаде и на клавиатуре с мышкой.
Как играть на Android с помощью геймпада, клавиатуры или мышки. Настройка Panda Pro
Я сейчас не буду говорить, что тот или иной девайс для управления лучше, к этой теме я вернусь чуть позже, а вот вам предлагаю написать в комментариях под этим постом, что же круче, по вашему мнению, клавиатура и мышь или геймпад?
Если с кроссплеем между ПК и основными консолями все более или менее ясно, то с кроссплеем между современными приставками все гораздо сложнее. Так, компания Sony изначально не хотела разрешать кроссплатформенную игру с другими консолями в течение первых пяти лет после выхода PS4. 26 сентября 2018 года Sony объявила, что разрешит кроссплатформенную игру на PlayStation 4 «для избранного стороннего контента» и в тот же заявила, что решение разрешить кроссплатформенную игру между консолями было «серьезным изменением политики компании».
Также руководство Sony отмечало, что кроссплатформенная игра будет пользоваться большим спросом у игроков PlayStation 4. Одними из первых игр с поддержкой кроссплея между приставками от Sony и Microsoft стала PUBG (примерно с октября 19 года), потом подтянулись Black Desert, World of Tanks и еще несколько игр.
Если я, по вашему мнению, что-то упустил, то прошу отметить это в комментариях, а мы едем дальше.
Минусы кроссплея
Первый и самый главный минус – это читеры с ПК.
Да-да-да, вы можете сказать, что это так банально, но это факт. После открытой беты кроссплея Black Ops Cold War западные игроки на форумах, да и отечественные ютуберы и игроки стали активно обсуждать эту проблему.
И тут вы можете сказать: «подожди, Максим, так разве в том же Warzone не было большого количества банов за читы?» Да, были, вы правы, но именно бета Cold War показала, насколько невыносимой может стать игра, когда никто не банит читаков, и это как раз взволновало игроков, особенно консольщиков, которые тут же предложили ограничить кроссплей исключительно между консолями от Microsoft и Sony.
Не то чтобы среди консольщиков нет читеров, они, конечно, есть, как есть и прошитые консоли и все такое прочее, но таких консольщиков по сравнению с читерами на ПК значительно меньше. Потому что если вы читерите на ПК, то рискуете получить бан учетки в какой-то игре стоимостью до 2-3 тысяч рублей, а вот забаненная консоль стоимостью 15-20 тысяч рублей это уже совсем другой разговор.
Таким образом, я думаю, что читеры – это самая главная проблема кроcсплея. И это то, что может погубить кросплей как постоянную функцию в сетевых шутерах.
Второй минус – это консервативность самих игроков.
Согласитесь, что большинство из нас обладает средними навыками игры, включая навыки управления мышью и геймпадом. И только единицы обладают талантом или даром играть как про хоть на геймпаде, хоть на клаве-мыши. Так вот, человек является существом слегка боязливым и не любящим выходить из зоны комфорта, поэтому вряд ли большинство из нас пойдет играть с игроками на противоположной платформе без особой на то нужды.
Как будет рассуждать игрок с ПК: «Ага, да что там эти клоуны со своими джойстиками, на которых не иначе как клешнями играть не получится, я их быстренько всех уделаю под орех.» Врубает такой игрок кросплей, натыкается на ребят с подключенными к консоли клавой и мышью, на тех же читаков или более скиловых игроков на геймпаде, ловит когнитивный диссонанс и. вырубает кроссплей, мол, да ну его, там одни читаки и эмуляторщики, пойду-ка, затащу еще одну каточку в *подставте название игры без кроссплея*.
Конечно, я это говорю не без доли иронии, но вы должны понимать, что такие сценарии вполне себе реалистичны.
И последний минус, даже скорее не минус, давайте назовем это ньюансом кроссплея.
Это некое незначительное преимущество мышки перед геймпадом.
И прежде чем ставить дизлайки этому посту, давайте я вам сейчас все объясню…
Я перешел с ПК на консоли более 5 лет назад и вначале я очень страдал в шутерах от первого лица, геймпад мне казался дико неудобным, но со временем мой АИМ улучшился, я адаптировался, и в некоторых шутерах мой показатель КД даже вырос.
Не согласны? Тогда давайте проведем эксперимент, возьмите лист бумаги формата а4, положите ближе к верхнему краю листа коробок спичек, телефон или там шоколадку и обведите его, а теперь положите уже на противоположную часть листа вашу шоколадку или что вы там взяли.
А затем попробуйте сначала только большим пальцем передвинуть ваш предмет, не отрывая его от листа, четко на обведенную вами область, а затем проделайте то же самое тремя или 4мя пальцами.
Думаю, разница будет очевидна, а моя мысль ясна. Хотите сказать, спорный ньюанс? Согласен, прошу в комментариях изложить свою позицию!
Ну, с минусами закончили, переходим к плюсам.
Плюсы кроссплея
Самый очевидный плюс – это возможность играть вместе с друзьями, у которых нет приставки или компьютера в одну игру. Если вы думаете, что такое редкость, то нет, вполне себе частое явление. Как пример могу привести свою ситуацию: у большинства моих друзей нет PS4 (да и вряд ли им она вообще понадобится), в связи с чем, по сути, единственным способом нам вместе поиграть в тот же Apex Legends является кроссплей.
Вторым несомненным плюсом является объединение комьюнити. Никто из игроков не чувствует себя замкнутым в некой резервации, что позволяет игрокам не только свободно взаимодействовать друг с другом, но и общаться сразу внутри игры, делиться опытом, впечатлениями, находить друзей с различных платформ, т.е. по сути, кроссплей способствует некоему социальному единению геймеров и, возможно, именно благодаря кроссплею мир забудет о всяких консольных войнах.
Третий плюс заключается в том, что большое количество игроков будет способствовать росту популярности отдельных режимов в конкретной игре. Можно вспомнить Battlefield 4, в котором было огромное количество интересных, но при этом мертвых режимов, к примеру, соединение, штурм авианосца и другие.
И последний, но не менее важный плюс, это продление жизни проекту.
Чем больше у игры одновременный онлайн, тем дольше разработчикам будет интересно, а главное, прибыльнее поддерживать их проект.
Я на сто процентов уверен, что если бы Respawn Entertainment по примеру Apex добавила бы возможность кроссплея в Titanfall 2, это моментально оживило бы почти что мертвый мультиплеер данной замечательной игры.
Ну а с плюсами у меня все. Да, вы можете сказать, что вроде их и не очень много, да и все они по большей части сводятся к удобству самих игроков и их объединению. Если вы хотите что-то добавить, прошу вас проследовать в комментарии, где вы сможете поделиться со мной своими мыслями по поводу других положительных сторон кроссплея.
Перспективы
Кроссплей в шутерах входит в активную стадию своего развития. Опыт таких игр, как CoD: MW 19 и Fortnite, показал, что людям с разных платформ нравится играть друг с другом.
Конечно, до проведения киберспортивных мероприятий с использованием кроссплея по шутерам нам еще далеко, но это всего лишь вопрос времени и развития технологий, когда с течением времени способы управления на консоли и на ПК почти перестанут отличаться. А на данный момент тот факт, что именно столь серьезные шутеры внедряют такую функцию, как кроссплей, дает мне все основание полагать, что кроссплей ждет довольно-таки неплохое будущее…
Ну а что думаете вы по этому поводу, напишите в комментариях, что я мог упустить, где вы со мной согласны, а где нет. А также не забывайте подписываться, ставить лайки, ведь впереди нас еще ждет очень много интересного и годного контента.
Всем спасибо, что дочитали до конца! Всем удачи и до новых встреч!
Кроссплатформенные игры и их важность
Представьте мир, в котором гейминг разрушает закостенелые (и часто вредные) границы, разделяющие игроков. Это мечта, за которой следуют современные разработчики игр.
Некоторые считают, что создание такого идеального мира лишено смысла. По их мнению, попытки объединить очень разные платформы могут навредить или даже разрушить комьюнити видеоигр как таковое.
Далеко не все согласны с такой точкой зрения – напротив, большинство пользователей мечтает об игровом опыте без искусственных ограничений.
Очевидно, что игровая индустрия движется именно в этом направлении: кроссплатформенные игры, доступные для консольных и мобильных устройств, выходят на новые уровни. Это сложный путь, который, однако, принесет пользу всем игрокам. Поэтому разработчики игр продолжают стремиться к идеалу кроссплатформенности.
Что такое кроссплатформенность?
Говоря простым языком, кроссплатформенные игры – это приложения, позволяющие одновременно играть на устройствах с разными платформами.
Например, пользователи ПК и Xbox One или PlayStation 4 и PS Vita могут играть на одних и тех же серверах. Таким образом, игровое сообщество становится более разнообразным, и это может серьезно повлиять на развитие индустрии в целом.
Раньше игры были кроссплатформенными только для устройств того же производителя. Например, кроссплей игр Nintendo был доступен только для консолей этой же компании. Это стало поводом для многочисленных шуток, но наконец ситуация начинает меняться.
Косплеер в образе персонажа игры Monster Hunter
Примеров кроссплатформенных игр, доступных для более широкого ряда устройств, пока немного, но их число постепенно растет. Особенно это касается современных консольных игр.
Не удивительно, что кроссплатформенность набирает обороты: по мере развития индустрии на большинстве основных платформ выходит множество ААА-игр. C развитием техники консоли по своей архитектуре становятся всё более похожими на компьютеры, и в будущем связи между всеми платформами будут только укрепляться.
Бытует мнение, что пользователи одних и тех же игр должны состоять в общих онлайн-сетях. Иными словами, у каждого пользователя должна быть возможность играть онлайн игры с друзьями вне зависимости от платформы.
Однако осуществить это не просто.
Препятствия на пути кроссплатформенных игр
Расколотый мир гейминга
Ни для кого не секрет, что между известными платформами идет борьба за популярность. Её часто называют консольной войной, хотя в ней также участвуют ПК.
Вероятно, истоки этого явления стоит искать в спорах между первыми геймерами-школьниками.
В те времена, как и сейчас, у многих юных игроков была лишь одна консоль. Они спорили о том, чья система лучше, однако выбор устройства во многом зависит от личных предпочтений пользователя.
Это соперничество может помешать развитию кроссплатформы, цель которой – объединить игроков. Некоторые пользователи не хотят играть с теми, кто выбрал менее достойные, на их взгляд, платформы.
Технические ограничения
Существует и более практическая точка зрения, никак не связанная с играми или самими пользователями.
Например, мышь с клавиатурой работают не так, как геймпад. Иногда кроссплатформенные игры совмещают эти способы управления.
Онлайн шутеры от первого лица предоставляют больше преимуществ тем, кто выбрал геймпад. Мышь позволяет совершать более точные выстрелы, чем аналоговый стик. Это очень важно, если вы, например, хотите застать врага врасплох. В такой ситуации игроки, выбравшие геймпад, окажутся в невыгодном положении.
Конечно же, есть способы свести это неравенство к минимуму. Например, функция aim assist в шутерах от первого лица облегчает прицеливание. Однако такие методы не помогают полностью решить проблемы кроссплатформенных игр.
Совместный гейминг нового уровня
До появления высокоскоростного интернета в консольных играх широко использовался режим разделения экрана.
Онлайн-гейминг выходит на новые уровни, но многие люди скучают по временам, когда можно было играть, сидя рядом с другом.
Существует множество кооперативных игр, в которые не удается поиграть с друзьями из-за отсутствия кроссплатформы.
Таким образом, лучшие онлайн-игры могут быть недоступны для совместной игры из-за технических ограничений. Однако многие игроки верят, что разработчикам удастся решить эту проблему.
Потребность в кроссплатформе стала особенно актуальной с появлением новых консолей, которые во многом не уступают мощным ПК.
Игровые устройства постепенно станут равноценными, что поспособствует развитию кроссплатформы. Когда пользователи смогут свободно взаимодействовать друг с другом, возможно, стены между ПК, консолями и мобильными устройствами наконец-то рухнут.
Кроссплатформенные игры объединяют людей
К радости пользователей по всему миру, кроссплатформенность становится правилом, а не исключением.
Новые компании-разработчики признают преимущества более крупных игровых сообществ, и это касается не только отдельных игр.
Наличие кроссплатформы влияет на то, насколько долго серия игр будет оставаться актуальной.
В заключение
Современные игры оказали большое влияние на развитие кроссплатформенности. Проекты, которые успешно, разумно и безопасно объединили разные платформы, убедили игровой мир в том, что кроссплатформенные игры могут быстро стать надежным источником дохода.
Кроссплатформенность дает много преимуществ, и это ценят ведущие игровые компании. Разработчикам удается преодолевать технические ограничения, и мир гейминга становится более сбалансированным и гармоничным.
Современные игровые устройства и сами игры уже достигли уровня, который раньше казался невозможным. Игровой мир постоянно меняется, и следующее поколение кроссплатформенных игр станет новым этапом в его развитии.
Что означает кроссплатформенность для игр и других приложений?
Вик Кей / Shutterstock.com
Возможно, вы слышали термины «кроссплатформенность» и «кросс-игра», которые часто используются в игровом сообществе. Они действительно относятся к функциональности, помогающей преодолеть различия между всеми вашими системами: вашими игровыми консолями, компьютерами и мобильными устройствами.
Более чем одна система
Кросс-платформенный — это термин, используемый для обозначения части программного обеспечения, совместимого с более чем одной системой. Например, популярный медиаплеер VLC совместим с тремя основными настольными операционными системами: Microsoft, Mac OS и Linux. Кросс-платформенная поддержка также может распространяться на мобильные устройства, при этом многие приложения доступны как в Apple App Store, так и в Google Play Store.
В зависимости от того, как запрограммировано конкретное программное обеспечение, разработчику может потребоваться полностью перекодировать и переупаковать программное обеспечение. Некоторые фреймворки позволяют разработчикам более плавно включать кроссплатформенную поддержку своего программного обеспечения.
Есть много причин, по которым вы используете кроссплатформенное программное обеспечение. Например, при использовании программного обеспечения одним из наиболее важных факторов является совместимость файлов. Если вы используете формат файла, доступный только в одной операционной системе, вы можете подумать о преобразовании его в формат с помощью средства чтения, которое работает в нескольких системах.
Расцвет кроссплатформенных игр
Когда дело доходит до игр, кросс-совместимость — большая тема. В разгар консольных войн с 1980-х до начала 2010-х кроссплатформенная совместимость была большой проблемой. Основные производители игр, такие как Sony, Microsoft и Nintendo, производили и финансировали игры. Эти игры часто разрабатывались их собственными студиями или игровыми студиями, с которыми у них было стратегическое партнерство.
Поэтому многие игры были «эксклюзивными», их можно было купить и играть только на одном устройстве. Когда потребители решают, какую консоль покупать, они должны учитывать, какие игры доступны для конкретных консолей. Halo всегда будет на Xbox, Uncharted будет на Playstation, а Марио будет на консолях Nintendo.
В то время как Nintendo в основном придерживалась эксклюзивных предложений, Microsoft и Sony начали предлагать более кроссплатформенную поддержку. Из-за роста популярности компьютерных игр в последнее десятилетие многие крупные эксклюзивные игры начали появляться на ПК и консолях. Из-за более высокого потолка производительности на настольных компьютерах разработчики также начали разрабатывать свои игры с учетом потребностей компьютерных геймеров и снижать производительность при переходе на консоли.
Кросс-игра и почему это важно
Эпические игры
Помимо возможности играть в разные игры на одном устройстве, одним из самых важных соображений для тех, кто стремится к совместимости на разных платформах, является кроссплатформенная игра, часто называемая кросс-игрой. Это относится к функции, которая позволяет людям, играющим в одну и ту же игру на разных устройствах, играть вместе в многопользовательских режимах. Например, люди, играющие в Fortnite на Playstation 5, смогут играть против и в тандеме с пользователями-игроками, использующими ПК с Windows.
По мере того, как игры становятся менее эксклюзивными, в последние несколько лет растет популярность кроссплатформенной игры. Несмотря на то, что некоторые противники все еще остаются, например, с Nintendo, большинство производителей и разработчиков игр начали открываться для ее реализации. Люди из одних и тех же групп друзей, которые владеют разными платформами, но все же хотят играть друг с другом, получают большую выгоду от игр с этими функциями.
Кросс-игра также значительно увеличивает доступную базу пользователей конкретной игры, что хорошо как для игроков, так и для разработчиков. Активное большое сообщество сокращает время ожидания, увеличивает диапазон уровней навыков, доступных для игры, и делает более привлекательным для новых игроков начало игры.
Вот некоторые из самых известных игр с поддержкой кросс-игры по состоянию на 2021 год:
Будущее кроссплатформенности и кроссплатформенности
Учитывая, насколько эта функция вошла в игры за последние несколько лет, вы, вероятно, увидите больше игр с кроссплатформенной поддержкой. Игровые студии начали осознавать, насколько кросс-игра полезна для активности игроков. Мы не удивимся, если в большинстве многопользовательских игр в будущем будет поддержка кроссплатформенной игры.
Если вам интересно узнать больше о кроссплатформенных играх, в которые вы можете играть со своими друзьями, вам следует прочитать обзор наши любимые кроссплатформенные игры.
Кроссплатформенность — это круто
Ни для кого не секрет, что сегодня мобильные игры очень популярны. Возможность написать одну из таких игр есть у каждого разработчика, даже начинающего. Часто возникает вопрос с выбором платформы. Конечно, хочется, чтобы игра была сразу везде: на iOS и Android, на WP7 и MeeGo, на десктопе и в браузере. И чтобы все это можно было лекго реализовать с помощью бесплатных инструментов.
В этой статье я расскажу вам, как сделать основную часть кода платформонезависимой, а для остального использовать удобные средства разработки для каждой конкретной платформы.
Цель игры, изображенной на рисунке выше — успеть попасть по яблоку, пока оно летит вниз. Со временем количество яблок увеличивается, и не пропускать их становится все сложнее. Яблоки падают под произвольным углом, вращаясь и реалистично отскакивая от границ благодаря физическому движку Box2D. Игра будет запускаться на Android, платформах с поддержкой Qt (Symbian, Maemo, MeeGo, Windows, Linux, Mac OS X) и в браузере Google Chrome.
Выбор удобных инструментов
Так как основную часть кода я буду писать на чистом С++ (почему, читайте в конце статьи), IDE для этого подойдет любая. Я выберу Qt Creator, хотя ничего не мешает мне использовать Microsoft Visual Studio или Eclipse, например.
Для платформы Android я остановлюсь на библиотеке libgdx. С ее помощью легко можно рисовать текстуры, проигрывать звуки и делать другие необходимые вещи.
В качестве инструмента для разработки игры на десктопе я возьму Qt. Я давно знаком с этой библиотекой, и она не перестает меня радовать. При использовании Qt я также получу приятный бонус в виде поддержки мобильных операционных систем Symbian, Maemo и MeeGo.
Также специально для этой статьи я с помощью HTML5, javascript и Google Native Client сделаю так, чтобы игра запускалась в браузере Google Chrome. Я буду использовать HTML5 Canvas и Audio, и вы увидите, насколько это легко и просто.
Реализация логики не сложная, поэтому я не буду писать о ней (желающие могут взглянуть на код). Вместо этого я сконцентрируюсь на том, как заставить игру работать на всех операционных системах.
Абстрагируемся от конечной платформы
Как я уже говорил, основная часть кода будет общей для всех платформ. Назовем ее «движок». Мне нужно будет решить две задачи. Первая — вызов методов движка на каждой платформе:
Для этого движок предоставит платформам следующий интерфейс:
Вызовы обработчиков рисования и ввода на различных платформах будут вызывать методы из класса Application, например, при использовании Qt это будет выглядеть так:
На Android выйдет немного сложнее, потому что из Java нужно попасть в C++:
После этого в C++ вызываются соответствующие методы:
При использовании Native Client в браузере из javascript нельзя напрямую обращаться к С++, вместо этого надо отправлять сообщения модулю, например, строки:
В С++ сообщения анализируются, и в зависимости от содержания вызывается тот или иной метод:
В итоге движку не важно, из какой платформы был вызов, он абстрагировался от этого. Но он знает, что произошло касание экрана в точке (x, y) или пришло время для обработки физики и вывода изображений на экран.
Обратное взаимодействие
Вторая задача — обратное взаимодействие движка с платформой:
Это нужно для того, чтобы движок командовал, когда выводить изображения и текст на экран, проигрывать звук, вибрировать. Для этого все платформы должны реализовать общий интерфейс. Назовем этот интерфейс Platform:
На уровне движка я не привязываюсь ни к какой конкретной платформе, я не загружаю картинки или аудио файлы, вместо этого я использую числовые идентификаторы. Когда я хочу вывести изображение на экран, или проиграть звук, я делаю следующее:
Таким образом движок абстрагируется от деталей реализации различных операций на каждой платформе. Привожу для наглядности диаграмму классов:
Сложно ли все это сделать? Вы убедитесь в том, что нет. Время, конечно, придется потратить, но в большинстве случаев им можно пренебречь в сравнении со временем, потраченным на программирование логики приложения. Я приведу код для платформ Android, Qt и Native Client для каждой необходимой операции:
Рисование изображения, Android (libgdx):
Рисование изображения, Qt:
Рисование изображения, javascript (HTML5 Canvas):
Рисование текста, Android (libgdx):
Рисование текста, Qt:
Рисование текста, javascript (HTML5 Canvas):
Проигрывание звука, Android (libgdx):
Проигрывание звука, Qt:
Проигрывание звука, javascript (HTML5 Audio):
Вибрация, Android(libgdx):
При реализации для Android придется немного повозиться с вызовом java кода из C++ — один раз получить ID нужных java методов:
и потом вызывать их:
Нетривиальная ситуация и с Native Client — нужно отправлять сообщения из С++ кода в javascript:
И в javascript эти сообщения парсить:
Результат
Эта простая игра называется «Поймай яблочко». Предлагаю запустить и попробовать продержаться пару минут, у меня вначале не получалось:
— Native Client версия (убедитесь, что у вас последняя версия браузера Google Chrome, и Native Client включен в about:plugins и about:flags). Размер исполняемого файла nexe — 4.2Мб для 32-битных систем и 4.9Мб для 64-битных, при медленном соединении придется немного подождать;
— Windows версия — для тех, кто не любит Google Chrome.
Игра прекрасно запускается на Android эмуляторе и моем LG Optimus. Та же ситуация с Qt Simulator (скриншот с Nokia N9 в самом начале темы).
Код можно взять тут, я думаю, он может пригодиться кому-нибудь, особенно участки, которые отвечают за связку Java и C++, javascript и C++ (если по этому поводу у вас возникнут вопросы — задавайте, не стесняйтесь, с удовольствием отвечу).
Зачем все это?
Многие из вас подумают, зачем писать велосипед? Если есть Marmalade или Unity, например. Есть, но они стоят денег, да и зачем такие тяжеловесы для простой 2D игрушки? Некоторые говорят также, что Qt заводится на Android и iOS, но на самом деле на Android не очень так заводится, без звука и OpenGL, а на iOS так вообще, только ролики на YouTube. Мне очень нравится Qt, и я надеюсь, что в недалеком будущем приложения для iOS и Android можно будет писать так же просто, как сейчас для MeeGo, но пока лучше пользоваться другими инструментами для этих платформ.
Преимущества
Используя подход, описанный в этой статье, вы не привязаны к платформе, вы можете использовать те инструменты, которые хотите, а в последующем легко их менять. На десктопе — Qt или GTK, на Android — libgdx или AndEngine, на iOS — cocos2d, выбор за вами. Можете вовсе отказаться от движков, используя API, предоставляемое платформой. Большую часть времени вы можете писать и отлаживать код в вашей любимой IDE на великом и могучем C++.
Недостатки
Недостатки, конечно, тоже есть, например, вы не сможете пользоваться готовыми UI компонентами — вам нужно будет реализовать их на C++. Либо выносить UI часть приложения в каждую платформу. Также вам обязательно придется тесно познакомиться с каждой платформой, но как показывает практика, полностью уйти от этого знакомства никогда не удается.