- Обзор: Backbone One превращает ваш iPhone в мощную портативную игровую консоль
- дизайн
- Программного обеспечения
- Пишем реализацию MVC для Backbone
- Постановка задачи и реализация базовых методов
- Реализация Application
- Реализация Controller
- Реализация EventBus
- Документация и примеры
- The Backbone One is a stunning controller that turns your iPhone into a more capable gaming device
- Share this story
- Share All sharing options for: The Backbone One is a stunning controller that turns your iPhone into a more capable gaming device
- Our review of BackBone One
- Good Stuff
- Bad Stuff
Обзор: Backbone One превращает ваш iPhone в мощную портативную игровую консоль
Backbone One сочетает в себе тонкий и современный дизайн контроллера со специализированным программным обеспечением для полноценного портативного игрового процесса.
Современные мобильные геймеры, возможно, уже привыкли к сенсорному управлению, но ничто не сравнится с физическим контроллером. Backbone One имеет знакомый форм-фактор с некоторым встроенным программным обеспечением, которое улучшает работу с консолью лучше, чем любой контроллер iOS до него.
Многие компании пытались заняться дизайном контроллера iOS, от установки iPhone в кронштейн над контроллером до простого использования подставки и игры, как если бы iPhone был маленьким телевизором. Даже злополучный Gamevice использовал похожую систему крепления, но Backbone One ее усовершенствовал.
Играя в игры на устройствах Apple, пользователи могут выбрать множество контроллеров — даже контроллеры Playstation или Xbox работают на платформах Apple. Использование традиционных контроллеров на iPhone может оказаться проблематичным или не оптимизированным из-за маленького экрана и отсутствия вариантов установки во время игры.
Контроллер Backbone One решает эти и другие проблемы.
В то время как другие контроллеры, такие как Gamevice, казалось бы, решили эту проблему, контроллеры были громоздкими и ограничивались API-интерфейсами старых контроллеров Apple. Backbone One может в полной мере использовать все преимущества текущих конфигураций контроллера на iOS и добавляет поверх него уникальное программное обеспечение.
дизайн
Backbone One легко устанавливается на ваш iPhone с минимальным дизайном
Backbone One состоит из двух секций контроллера, соединенных «магистралью», которая может регулироваться в соответствии с размером вашего iPhone. После подключения он выглядит как Nintendo Switch или Sony PSP.
Джойстики повторяют стиль Xbox с диагональным сопоставлением, а кнопки кликающие и отзывчивые. Триггеры легко нажимаются и имеют удовлетворительное количество ходов.
Благодаря легкому пластику контроллер легко лежит в руке и не увеличивает вес вашего iPhone. Контроллер громоздкий при подключении, но не такой массивный, как предыдущие контроллеры, такие как Gamevice.
Конструкция задней панели, на которой располагается iPhone, жесткая и скользит, чтобы можно было крепить iPhone большего размера. Контроллер легко расширяется, чтобы соответствовать даже iPhone 12 Pro Max, оставляя место для будущих больших iPhone, хотя вы не можете использовать iPhone в чехле.
Контроллер подключается через порт Lightning, поэтому этот контроллер за 100 долларов — это довольно выгодное вложение для порта, который может полностью исчезнуть через поколение или два. В комплекте есть разъем для наушников и порт Lightning для зарядки во время использования контроллера.
Backbone One подключается через Lightning
Есть дополнительные кнопки, которые соответствуют системным функциям на iPhone. Эти кнопки уникальны для Backbone One и помогают сделать iPhone более специализированным игровым устройством, чем просто контроллером.
Кнопка с многоточием позволяет отключить микрофон в голосовом чате. Квадратная кнопка запускает запись видео при однократном нажатии или делает снимок экрана при удерживании.
Оранжевая кнопка «Backbone» открывает приложение Backbone из любого места, даже если вы находитесь в игре. Наконец, кнопка гамбургера открывает меню параметров игры, например кнопку запуска или паузы на контроллере консоли.
Программного обеспечения
Меню переключения игр — изюминка приложения Backbone.
Приложение Backbone занимает центральное место в том, что заставляет Backbone One превращать iPhone в игровую консоль. Вместо того, чтобы перемещаться по пользовательскому интерфейсу iOS для переключения игр или управления социальными функциями, кнопка Backbone на контроллере запускает приложение для упрощения переключения игр.
После подключения контроллера к iPhone вам будет предложено загрузить приложение Backbone. Приложение требует, чтобы вы использовали Вход через Apple, поэтому пользователи с Apple ID младше 13 лет не смогут использовать приложение Backbone.
Приложение не требуется для работы контроллера, поэтому вы все равно можете запустить игру и начать играть в обычном режиме, если хотите. В противном случае приложение действует как домашний экран для ваших игр, совместимых с контроллером.
Приложение Backbone хочет быть центром взаимодействия, предоставляя пользователям учетную запись в социальной сети для подключения к другим пользователям Backbone.
Это, конечно, ограничивает круг лиц, с которыми вы можете играть при использовании приложения, поскольку оно использует проприетарную учетную запись, а не Game Center или Xbox Live. Даже если друг загрузит приложение, чтобы использовать функции чата, оно не запустится без подключения контроллера Backbone в первый раз.
Вы не можете пройти через этот экран без подключенного Backbone One
Если вы и группа друзей вложите деньги в дорогой контроллер, вы сможете в полной мере воспользоваться всеми преимуществами приложения. Решение заблокировать функции, связанные с физической покупкой, нехорошо и является основным недостатком этого продукта.
Помимо социальных функций, обнесенных стеной, приложение работает как отличная программа для запуска игр и платформа для управления скриншотами и видео. Однако любое видео, записанное с использованием параметра записи экрана, сохраняется только в приложении, и оно не будет отображаться в приложении «Фото» без его экспорта. Снимки экрана отображаются как в приложении «Фото», так и в приложении Backbone.
Приложение содержит «Основные моменты», которые представляют собой части видео, загруженных игроками Backbone. Неизвестно, как выбираются эти видео, но любое видео, сохраненное в разделе «Основные моменты» приложения, становится общедоступным и доступно для просмотра по ссылке.
Я записал это видео «Небо: Дети света», используя функцию Backbone Highlights.
Поделиться основными моментами легко, но без уведомлений о конфиденциальности
Источник
Пишем реализацию MVC для Backbone
Одним пасмурным утром я подумал, что было бы неплохо хорошенько прорефакторить один из моих старых проектов. Это некоммерческое легковесное приложение для кастомизации HUD в одном 3Д шутере. Писал я его 2 года назад, был горяч и неопытен. В результате куча отменного спагетти-кода, который, несмотря на все свои недостатки, делал своё дело. Став мудрее и опытнее, я решил полностью переписать приложение, дать ему новую архитектуру, упростить поддержку и обновление. Как это сделать? Ответ казался простым — использовать MVC, разделить на уровни и связать всё в единое целое. Так я столкнулся с проблемой выбора простого и эффективного фреймворка, который станет прочным фундаментом. После быстрого исследования я выбрал backbone.js. Очень понравился своей простотой и гибкостью. Можно просто открыть исходники и понять, как всё устроено и работает. Единственный нюанс, который не радовал — MV-паттерн. Размазывать логику по многочисленным views очень не хотелось, так родилась идея написать свой велосипед, который предоставит недостающие части головоломки. Плюс, создание чего-то нового — это всегда увлекательно и интересно. Недолго думая, я приступил к реализации контроллеров для backbone.
Постановка задачи и реализация базовых методов
Итак, мне необходима возможность создавать контроллеры, которые свяжут в одно целое все части приложения. Каждый контроллер должен иметь доступ ко всем моделям и коллекциям (как к базовым конструкторам, так и к уже созданным экземплярам). Так же требуется возможность создавать компоненты (views) и иметь возможность слушать их события, чтобы реагировать надлежащим образом.
Скелет контроллера будет выглядеть вот так:
Пока что всё очень просто. Но для сложного приложения нам необходимо иметь несколько контроллеров, желательно, чтобы набор коллекций и моделей был общим для всего приложения. Так нам на помощь приходит Application — базовый конструктор, который объединит контроллеры в единое приложение.
Скелет приложения будет выглядеть так:
Так же было бы полезно сразу же создавать экземпляры всех коллекций в момент старта приложения. А ещё было бы неплохо вызывать callback-функцию у каждого контроллера после того, как приложение стартует. Этот callback нужно вызвать в тот момент, когда все предварительные данные готовы. Таким образом, каждый контроллер будет «знать», что приложение готово к работе. Не долго думая, добавляем методы:
Остаётся только научить контроллеры общаться друг с другом. Для этой цели создаём ещё одну сущность, которая позволит наладить коммуникацию между всеми компонентами приложения.
Теперь, когда базовые объекты определены, можно приступать к конкретной реализации всех частей нашего приложения.
Реализация Application
Начнём с главного конструктора — Application . Базовый класс реализуем тем же способом, как это делает backbone.
Далee, используя _.extend , расширяем прототип:
Для инициализации наших контроллеров, нам понадобится два метода. Application.initializeControllers создаст экземпляры и вычитает наборы коллекций и моделей, чтобы сохранить ссылки непосредственно в самом приложении. А Application.launchControllers пройдётся по уже созданным конроллерам и выполнит Controller.onLaunch callback.
Чтобы обеспечить коммуникацию между контроллерами и дать возможность подписаться на события от конкретных копмонентов, добавим метод Application.addListeners , который делегирует работу в наш EventBus:
Для работы с моделями и коллекциями нам понадобятся функции для получения ссылки на экземпляр, ссылки на конструктор и метод создания новой сущности. Рассмотрим конкретную реализацию на примере моделей, для коллекций функции будут работать аналогично.
Теперь, наш базовый конструктор для приложения готов. Следует упомянуть метод Application.parseClasses . Дело в том, что я решил передавать списки контролеров, моделей, коллекций и вью в виде массива строк. Получая на входе
функция Application.parseClasses превратит этот массив в маппинг
Таким образом я решаю 2 проблемы. Во-первых, все ссылки автоматически будут ассоциированы с уникальным идентификатором, который равен имени конструктора. Это избавит разработчика от необходимости заморачиваться над именами для каждой отдельной сущности. Во вторых, мы можем определить базовые части, не дожидаясь, пока они будут доступны. Это позволит загружать файлы в произвольном порядке. Парсинг имён в ссылки произойдёт только после того, как все скрипты будут загружены.
Реализация Controller
Контроллер получит немного более простой код, так всю работу с моделями и коллекциями мы делегируем на Application . Для начала объявление:
А дальше можно расширять прототип
Добавляем методы для работы с Views:
Работу с моделями и коллекциями мы делегируем на наш Application
И под конец, позволим нашим контроллерам общаться, используя Application.EventBus
Базовый конструктор для контроллера готов! Осталось совсем немного 🙂
Реализация EventBus
Для начала опишем конструктор. Чтобы дать возможность контроллеру слушать события от view, нам необходимо немного расширить базовый прототип Backbone.View . Дело в том, что нам нужен некий селектор, по которому будут отслеживаться события. Для того введём свойство alias , которое автоматически будет присваиваться в момент создания компонента. И добавим метод fireEvent , который вызовет «родной» View.trigger() и нотифицирует EventBus о новом событии.
Теперь можно смело расширять прототип. Используем EventBus.addListeners для подписки на новые события, а EventBus.fireEvent надёт нужный обработчик и выполнит его.
Ура! Теперь все основные части реализованы! Заключительный штрих
Теперь мы можем создавать наследоваться от наших базовых конструкторов, используя функцию extend .
Документация и примеры
Так же я создал простой пример — это классический ToDo с использованием MVC. Исходники и коментарии к реализации можно посмотреть здесь — github.com/namad/Backbone.Application/blob/master/examples/ToDo/js/todos.js
И в качестве бонуса более сложный пример, ради которого я написал весь этот велосипед — visualHUD, редактор HUD для моей любимой игры Quake Live. На данный момент новая версия всё ещё в разработке, необходимо доделать кучу мелочей, но в целом весь функционал работает и его можно пощупать своими руками. Кому интересно, исходинки старой версии на гуглокоде
Источник
The Backbone One is a stunning controller that turns your iPhone into a more capable gaming device
Complete with software features that make it easy to join parties, record, and share video clips
If you buy something from a Verge link, Vox Media may earn a commission. See our ethics statement.
Share this story
Share All sharing options for: The Backbone One is a stunning controller that turns your iPhone into a more capable gaming device
As the high-profile disputes about what content you can play on your iPhone rage on between Apple, Epic Games, Google, and Microsoft, a company called Backbone is focusing instead on making sure you get the most out of the games that are currently available. Like Razer did with its Kishi controller for iOS, and as other companies have with snap-on controllers of their own, Backbone is introducing one for $100 that it calls the Backbone One. You can buy it from Backbone’s site.
With the controller fully extended, it can fit any iPhone running iOS 13 or later, starting with the iPhone 6S and including the new iPhone 12 lineup. It’s great for Apple Arcade games that support controllers. Sky: Children of the Light and Call of Duty: Mobile play wonderfully with the One. And, for popular games like COD: Mobile that don’t have controller support switched on from the start, Backbone curates visual tutorials that appear before it launches to walk you through the steps to turn it on in the game’s settings.
Since the Backbone One launched, it now works with Genshin Impact, the xCloud iOS beta for Xbox Game Pass Ultimate subscribers, and Google Stadia, too. Even playing games like Hades through the Steam Link app (with my PC connected via Wi-Fi) felt surprisingly natural.
The analog stick is sized similarly to the ones built into the Joy-Con for Nintendo Switch.
The triggers are also similar to those on the Joy-Con, yet these have a more satisfying travel.
Unlike most controller accessories made thus far, the Backbone One is a hybrid of tightly integrated hardware and software. If we’re looking at the hardware, it’s arguably the best of its kind yet. Both sides of this controller have rounded edges that fit naturally in my hand. I praised the design of the Razer Kishi, but this has a more subtle look that doesn’t cover up as much of your phone’s edges. Each button has a more responsive, tactile click, and the analog sticks feel roughly the same size as Nintendo’s Joy-Con for the Switch. Speaking of the Joy-Con, the One’s rear triggers actually feel better.
Our review of BackBone One
Good Stuff
- Elegant, comfortable design
- Lightning and 3.5mm charging and audio passthrough
- Clever integration of hardware and software for $100
Bad Stuff
- Not cheap
- No Fortnite hurts its prospects for the moment
The Backbone One features passthrough Lightning charging, with support for Lightning headphones if you have a set. It also has a 3.5mm headphone jack, giving you another way to listen to audio — even if your iPhone doesn’t have the port itself. As for power consumption, Backbone says the One itself demands less power from your iPhone than many wired Lightning earbuds do. I didn’t notice more battery usage during gameplay with the controller attached than I normally would without it.
Miraculously, the One adds a 3.5mm port, so bust out those wired headphones.
The Lightning port supports passthrough charging, as well as audio for Lightning EarPods.
The hardware alone might make it worth the purchase, but the software is what really makes it unique. The One doesn’t require its companion app to work with any iOS game that supports a controller, but using the app turns your iPhone into a game console of sorts.
Pushing the controller’s orange Backbone button while the One is connected to your phone will open up the Backbone app, which looks like an operating system. There, you’ll find all of your installed games cleanly laid out in an almost tvOS-esque interface. The app also shows new games available for download in the App Store that support controllers. To add games to the Backbone interface, just tap the orange button when you first boot up each new game. This app takes advantage of the iPhone’s excellent haptics to buzz when you flip around the menu, and the company made its own satisfyingly subtle vibration effect that you’ll feel while quickly flying through a bunch of tiles in the interface with the L1 and R1 shoulder buttons.
A full look at what you’ll see when you press the orange Backbone button.
Scroll down a little more in the app, and you’ll find photo and video clips you’ve saved and those from friends. This controller has a dedicated button to let you snap a screenshot in-game, or even record a video clip, which are features that should be familiar to anyone who’s used a modern gaming console. Notably here, though, is that you can press and hold that button for a moment to bookmark key moments on the fly. The Backbone button illuminates a red LED while you’re recording, so it’s easy to see at a glance when you’re live. Backbone handles recording and accessing clips much more elegantly than the Xbox One, PS4, PC, or Switch.
After a video clip is saved, you can then trim and share the clip in the Backbone app, as well as via iMessage or any social media apps you use. One special thing to note is that Backbone says it can record 1080p clips at 30 frames per second in the HEVC / H.265 codec (supported on the iPhone 7 and newer), so you’ll have higher-quality video without sacrificing as much storage space as other codecs require.
The Backbone button pulses red to indicate when you’re recording the screen.
Yet another software feature you’ll get with the controller is the ability to create parties and voice chat with friends in the app. These parties operate independently of the game you’re each playing (you don’t even need to be playing a game), so it’s a good way to connect even if you aren’t all into Call of Duty: Mobile, for example. If you’re into recording clips with your friends, the video recording feature will pick up your voice in the mix, along with everyone else’s in the party (indicated by the small orange light near the iPhone’s top bezel in iOS 14). Each participant can choose to mute their mic by double-pressing the left-most button that has three horizontal dots.
You can start or join a party to voice chat through the Backbone app with other users for free.
Snapshots, video recording, and organizing parties for voice chat are just a few ways in which Backbone takes the reins in iOS to create a more interesting experience than Apple itself offers to gamers. It also offers rich presence notifications, chiming in with a notification — whether you’re in the Backbone app or not — to tell you when a friend has logged on, or with an invite that you can click to join a party.
On its face, the Backbone One is just a controller — and a very good one, at that. But with software enhancements that take advantage of iOS in some clever ways, Backbone makes the iPhone feel like a bona fide gaming platform that I want to remain a part of. When the hardware and software are all working together, with the ability to easily join up with friends and record clips, the One feels like a gaming experience that somehow beats Apple to the punch of fleshing out its own gaming ambitions. It is no longer just like a phone strapped into a few pieces of plastic but the start of something very special. And for $100, without monthly charges to use its software and party tools, it’s an appealing price if you do a lot of mobile gaming.
The Backbone One controller supports all the way back to the iPhone 6S.
As well as it works on iOS, the Backbone One seems perhaps better suited to launch on Android, given that Fortnite isn’t available on Apple’s App Store. Though, since the One launched, Google Stadia and Microsoft’s xCloud game streaming services have come to iOS, giving you more content to play than before. Backbone wouldn’t comment when I asked about an Android-specific version of the One. But this iOS controller is already worth the cost of admission if you’re an Apple Arcade subscriber or just enjoy a few one-off games.
Photography by Cameron Faulkner / The Verge
Update April 27th, 10:30AM ET: Backbone confirmed that Genshin Impact is supported by the One. Also, I’ve updated this review to note that Google Stadia and xCloud are both accessible on iOS.
Источник