Хочу добавить в свою игру интеграцию с Twitch — с чего начать?
Последнее время я получал вопросы под своими статьями по поводу интеграции Twitch в игру. Постараюсь ответить на примере своей игры TD Worlds, где интеграция вполне себе работает.
Первым делом необходимо решить, какого уровня интеграция вам нужна:
- интеграция при помощи расширения (Twitch Extension), которое отображается в виде панели поверх трансляции. Наверняка вы встречали такие, например для Hearthstone. Игра может передавать в расширение любые нужные данные, а пользователи, в свою очередь, могут взаимодействовать с игрой через панель на трансляции. Является самым трудоемким вариантом интеграции, но, в то же время, даёт много возможностей.
- интеграция при помощи приложения (Twitch App), которое позволяет использовать REST API твича. Его можно использовать, чтобы, например, залогинить пользователя в игру при помощи его twitch аккаунта, чтобы получить необходимые данные для интеграции с его трансляцией. Так же это можно использовать для создания чат-бота игры. Важное уточнение — у твича нет такого понятия как «бот». По сути своей это просто еще один аккаунт пользователя, иногда разработчика, но чаще специально созданного конкретно для того, чтобы быть ботом (сам твич не против этого).
Итак, в своей игре я использовал второй вариант, но в упрощенном виде.
Пример того, как работает интеграция. Зрители могут голосовать в чате за нужный вариант (сверху), который потом применяется в игре.
Дело в том, что твич позволяет подключиться к любому чату не только с помощью реального аккаунта (нужен логин и пароль/токен для входа), но и анонимно.
Для анонимного подключения нужно использовать аккаунт, начинающийся на justinfan и дальше несколько цифр. Например, justinfan12321. А пароль должен быть пустым.
Таким образом мы получаем возможность принимать в игре все сообщения нужного нам чата и реагировать на них так, как нам нужно. Но при этом интеграция работает только в одну сторону, поскольку анонимное подключение к чату не разрешает отправлять в него сообщения. Если для вас важна возможность писать что-то в чат, то вам следует идти по пути создания бота.
Ну а сейчас рассмотрим работу интеграции с использованием анонимного подключения с примерами кода. Код будет на GDScript и довольно обобщенный, но суть должна быть ясна. Для Godot я использовал аддон godot-twicil.
extends Node2D onready var twicil = get_node(‘TwiCIL’) # имя пользователя для входа var nick = «justinfan1234567» # id вашего приложения, созданного на https://dev.twitch.tv/console/apps var client_id = «123456789qwertyuio» # в данном случае пустой пароль # для реального пользователя будет выглядеть примерно как «oauth:jfui3ehr1783he» (токен пользователя для входа) var oauth = «oauth:» # название канала, к чату которого нужно подключиться var channel = «your_channel» var votes = < 1: 0, 2: 0, 3: 0 >var voted_users = [] func _ready(): setup_twitch() func setup_twitch(): twicil.connect_to_twitch_chat() twicil.connect_to_channel(channel, client_id, oauth, nick) # включаем логирование, чтобы увидеть в консоли статус подключения twicil.set_logging(true) twicil.connect(«message_recieved», self, «_on_message_recieved») # ну вот тут и просходит вся магия func _on_message_recieved(user_name: String, text: String, emotes: Array) -> void: if voted_users.has(user_name): return var index = int(text) if index == 1 || index == 2 || index == 3: votes[index] += 1 votedUsers.push_back(user_name)
Собственно основа очень простая: вы подключаетесь к нужному чату нужным пользователем, и дальше решаете сами, что делать с сообщениями зрителей. Можете выводить чат на экран прямо в игре, можете собирать определенные сообщения в качестве голосования и т.д.
Для своего движка вы можете использовать любую библиотеку, позволяющую подключиться к чату твича, либо же написать что-то свое по документации.
Для своей игры я просто проверял сообщение, чтобы оно совпадало с номером варианта для голосования и запрещал голосовать повторно до конца раунда голосования. То, как замерять время голосования, формировать и выводить варианты, сбрасывать результаты перед новым голосованием, остается полностью на вашей совести. Самое главное, сделать достаточно много интересных вариантов взаимодействия с вашей игрой, чтобы как стример, так и зрители получали от этого удовольствие (или ненависть, тут уже как получится).
В принципе, для ознакомления с основами этого хватит, дальше все зависит от ваших желаний и возможностей, но советую начинать с базовых интеграций. По крайней мере, так вы быстро получите что-то работающее, что потом можно будет развить в нечто бóльшее.
Чисто теоретически, механизмы интеграции с любым стриминговым сервисом будут такими же. Главное, чтобы была официальная возможность считывать сообщения чата.
Twitch introduces new “Software & Game Development” streaming category, boosting gamedev content discoverability
Twitch announced that it’s introducing new Software & Game Development streaming category to improve the discoverability of content for devs.
“Over the past year, thousands of Twitch viewers and creators have requested a new streaming category for content related to programming and all aspects of game development,” the streaming platform said.
Twitch noted that while “this new category offers an improved focus on development,” there are some additional stream tags that creators can use to “to classify their content further,” which will allow viewers to narrow their search.
Actually, Twitch had Game Development as a separate category for about two weeks after it was singled out from the previously existing Creative category. At the time, “we were averaging 7.1 new followers per hour under Game Development,” indie developer Pirate Software wrote on Twitter. Game Development, however, was quickly made part of the larger Science & Technology category, severing the former’s discoverability.
Image Credit: Pirate Software
Back in February, the developer lamented that “If you search Game Development on Twitch right now the category doesn’t show up, neither do streams with the tag of Game Development, in fact… nothing shows up.” This compounds the discoverability issue and makes the category even worse for developers,” Pirate Software added. “We need Game Development back. It’s a simple change but it can help build a lot of new communities on Twitch. It can also make more money for indie devs and Twitch at the same time.”
So, in a way, the category has returned, rather than newly arrived. This happened after around 5k devs voted for the separation of Game Development and Programming from Science & Technology. “ Holy hot damn we won. Thank you, Twitch, for making a Game Development category for all of us,” Pirate Software commented. “We pushed so hard and for so long to get this. “
Got a story you’d like to share? Reach us at [email protected]
This is gamedev twitch
/r/Twitch is an unofficial place for discussions surrounding the streaming website Twitch.tv. If you want to provide feedback, ask a question or browse our knowledge base, this is the place for you!
We believe programming and game development are inherently creative acts. In order to create a central place for all forms of creativity on Twitch, we are transitioning the programming and game development directories into Twitch Creative.
This transition allows us to offer dedicated support for broadcasters from programming and game development. The Creative team is actively growing in order to empower these broadcasters through support, partnerships, promotion, and events.
The existing programming and game development directories will redirect to their respective hashtags on Twitch Creative. You can use hashtags on Twitch Creative to label your broadcast, with tags like #programming, #gamedev, for the programming language or software. With the Twitch Creative jumbotron, broadcasters creating in any form of media are selected for promotion in order to increase their discoverability.
Our goal is to create a platform where you can share your software development and find support from a community that is built around your passion. If you have additional questions you can check out the Twitch Creative FAQ or contact us at creativehelp@twitch.tv . We want to make sure we are working together with the broadcasters to make the platform that you want; feel free to reach out to us with ideas, feedback, concerns, or questions.
Happy streaming! Twitch Creative Team
More posts you may like
Related Twitch Gaming Online streamer Amazon Podcasts and Streamers FAANG Online shopping S&P 500 Consumer discretionary sector Marketplace and Deals Marketplace Business Website Finance Business, Economics, and Finance Information & communications technology Technology