vladimirkhil / si Goto Github PK
View Code? Open in Web Editor NEWSIGame and related products
License: MIT License
SIGame and related products
License: MIT License
Первый раунд игры "Угадай мелодию" может быть проведён уже сейчас. Он почти ничем не отличается от SIGame. Насчёт минусов только не помню. Возможно, нужно поддержать блокировку кнопки на несколько вопросов при неправильном ответе.
Для второго раунда нужно поддержать:
Для третьего раунда нужно поддержать:
Коммуникация должна стать более производительной.
Во время отыгрыша вопроса серверу нужно понимать, когда закончилось мультимедиа и нужно двигаться дальше (показывать следующий фрагмент или предлагать нажимать на кнопку). Сервер не знает длительности мудьтимедиа-файла (если только при создании пакета для фрагмента не указали его длительность). Поэтому он полагается на сообщения от клиентов.
Этот метод ненадёжен: работа сервера не должна нарушаться в случае использования багованных версий клиентов.
Варианта решения пока нет. Но, возможно, на сервере нужно использовать какую-то библиотеку для работы с мультимедиа-файлами и с её помощью определять корректную длительность файла.
На данный момент клиент получает вопрос и его медиа-данные в реальном времени в момент выбора игроком вопроса.
Данный способ вызывает проблемы с отображениям медиа-данных у разных игроков (в зависимости от нагрузки серверов СИ, расположения игроков, а также канала до серверов СИ), что ведет либо к преимуществу одних игроков над другими, либо к невозможности отыграть пак с картинками, музыкой итд
В идеале клиент своей игры должен получать весь пак перед игрой, по следующей схеме:
В целом схема подойдет и для браузерной версии игры (можно использовать локальное хранилище для хранения бинарных данных)
Позволит проще открывать пакеты в веб-клиенте.
Но сейчас огромное количество пакетов уже создано в XML.
Так что если и браться за это, то будет длительный (несколько лет) переходный период, в течение которого пакеты будут содержать контент в двух форматах. И всё равно останется проблема старых непереконвертированных пакетов.
С другой стороны, XML в веб-клиенте можно спокойно читать.
Так что, возможно, переход не имеет смысла.
Обсуждаемо.
При старте игры в онлайн-режиме. Возникает периодически.
Для некоторых пакетов это можно решить пересохранением в новый файл через редактор вопросов. Но не для всех.
https://pp.vk.me/c836530/v836530035/ef29/PeRi0g5LyWQ.jpg
Контакты
https://vk.com/id201585254
При помощи XAML Islands.
Существующий медиапроигрыватель имеет два недостатка:
Но надо понимать, что новый MediaElement будет работать только с определённой версии Windows 10 и не будет работать на Windows 7.
У сайта http://vladimirkhil.com/ проблемы с установлением связи с SQL сервером.
Пример страницы, где вызывается ошибка: https://vladimirkhil.com/si/game
До исправления данной проблемы необходимо где-либо на видном месте разместить прямые ссылки на скачивание SIGame и SIQuester (например закрепить в группе ВКонтакте).
SIGame (SIGame.Setup.exe): http://vladimirkhil.com/content/redist/si/game/SIGame.Setup.exe
SIQuester (SIQuester.Setup.exe): http://vladimirkhil.com/content/redist/si/siquester/SIQuester.Setup.exe
Скачать не возможно
Добрый день!
Есть ли возможность собрать клиент SIGame под Linux?
Позволит использовать, в частности, nullable reference types.
Когда число активных игр становится более 1000, получение информации о них начинает подтормаживать.
Следует разбить этот запрос на два: получение минимальной информации о списке игр (Id, название, тип и наличие пароля - последние два свойства нужны для фильтрации) и получение полной информации о конкретной игре по Id.
Возможность пересаживания участника между местами ведущего, игрока и зрителя.
Как воспроизводится:
Что происходит:
У людей, играющих в десктоп-версии музыка прерывается, а в веб-версии не останавливатся.
Как правило, такая ошибка приводит к рассинхрону игрового времени, из-за чего у отвечающего человека может резко прерваться время ответа на вопрос, и начинается стадия выбора следующего вопроса. И эта стадия обычно "сломанная", и вопрос выбрать обычно никто, даже ведущий, не может.
Порой рассинхрон может привести и к более необычным последствиям.
Решение ни по чему не принято, это просто варианты.
Табло:
Спецвопросы:
Для пакетов с дополнительными возможностями фиксируется версия. Софт, который их открывает, проверяет их версию, и предлагает обновиться, если он соответствующую версию не поддерживает.
При старте игры ей проставляется версия пакета. При подключении к такой игре появляется требование обновить клиент.
В текущей реализации древовидного редактора всё построено на TextBox'ах. Это неэффективно.
Можно попробовать построить редактор на TextBlock'ах. А TextBox для редактирования создавать динамически при клике по области редактора.
Дополнительно заменить TreeView на набор вложенных шаблонов. TreeView здесь не очень нужно, так как глубина иерархии фиксирована.
При старте игры отправлять запрос на localhost по заданному порту и проверять, что вызывается обработчик кнопок. Если тест не проходит, выводить сообщение об этом.
Добавить кнопку для запуска повторного теста.
В настоящий момент при игре без фальстартов сервер отдаёт клиентам ссылку на медиафайл. Когда кто-то нажимает на кнопку, клиенты прекращают воспроизведение файла. Но ссылка на файл доступна, и недобросовестный игрок может загрузить файл по ссылке и прослушать его полностью.
Данная проблема усложняет создание игр наподобие "Угадай мелодию".
Одно из решений проблемы - создание broadcast-сервера, который бы раздавал игрокам контент одновременно и прекращал бы это делать при паузе или нажатии кем-то на кнопку.
Одновременная раздача контента гарантировала бы, что ни один из участников не успел бы загрузить контент большей длительности, чем остальные.
Задача выглядит сложной и пока не в приоритете.
См. https://vk.com/si_game?w=wall-135725718_2%2Fall
Предлагается вернуть старый добрый Media Player, как вариант.
Лицензии используемых компонентов должны быть включены в состав продукта.
Десктопный клиент. Исходники сервера в настоящий моент выкладывать не планируется.
Для этого необходимо выполнить #47.
Доработать правую панель плиточного редактора, чтобы с её помощью можно было редактировать произвольные поля элементов пакета (в режиме самого подробного представления).
Windows 10 x64 с Anniversary Update.
Версия СИ 6.2.8
Когда начинает играть мультимедиа (звук или видео), делаю звук тише в микшере Windows, затем при следующем проигрывании мультимедиа звук СИ сбрасывается снова на максимум.
Происходит это в игре онлайн, по сети и локалке не проверял. Так же данный баг повторяется на Windows 7 x86 и x64
Контакты
ВКонтакте: Дмитрий Дарко
Перейти с .NET Framework 4.6.1 на .NET Core 3.1. Интересное упражнение. Плюс должна повыситься производительность IO-операций.
Перевести проект на .NET Standard 2.0. Для этого придётся решить ряд дополнительных подзадач.
Сейчас основной TabControl не использует привязку к данным. Вкладки создаются программно.
Чтобы обеспечить автогенерацию вкладок, нужно обеспечить корректный возврат положений курсора и прокрутки при возврате к документу.
Подходит для стримов.
Приоритет невысокий.
Добавить в древовидный редактор два дополнительных режима редактирования, которые уже присутствуют в плиточном редакторе.
Возможность менять порядок вкладок в редакторе и вытаскивать их в новое окно.
Возникают задержки при онлайн- и сетевой режимах игры.
Контакты:
ВКонтакте: Руслан Кичибеков
Для защиты сервера от переполнения пакетами и аватарами нужно поддержать квоты по Uploady: на более 200 Мб за 2 часа на один IP-адрес.
Для этого необходимо:
Возможность сохранить произвольный документ как шаблон под некоторым именем. При создании нового документа можно выбрать в качестве начального документа как любой из 4-х предустановленных шаблонов, так и любой из собственных.
Документ сохраняется как есть, со всеми вопросами и авторами. Пользователь сам несёт ответственность за формирование шаблона.
Добавить возможность удаления кастомных шаблонов прямо из диалога создания нового документа.
Преобразовать встроенные шаблоны в единый формат хранения шаблонов (сложности могут быть только с параметризуемым шаблоном).
Задел под реализацию аккаунтов и работы с защищённых сессиях. Дополнительно защищает API сервера от сторонних атак.
Необходимо:
Новая версия клиента в работе.
Возможность задавать собственную музыку.
Важнейшая функциональность.
Позволит пользователям:
Дополнительно нужно подумать, не подпадает ли данная функциональность под закон о персональных данных. Сейчас сервер находится во Франции.
Сейчас текстовый импорт использует устаревшую версию. Новая версия использует другой синтаксис языка.
Вместо сложного задания пользователем шаблонов предоставить пользователю интерфейс для выделения нужных ему элементов в тексте.
Ссылка на страницу:
https://github.com/VladimirKhil/SI/wiki/%D0%9F%D1%80%D0%BE%D1%82%D0%BE%D0%BA%D0%BE%D0%BB-%D0%B8%D0%B3%D1%80%D1%8B-SIGame
В разделе Сообщение:
Text: основное содержимое сообщение.
заменить на
Text: основное содержимое сообщения.
Реальная стоимость вопроса:
По какой то причине, обновление игры до 7.4.1 не происходит. При попытку обновления, диспетчер обновления просто закрывается.
Очень серьёзная проблема.
Варианты решения:
Сохранение персональной статистики по игроку и по серверу. Возможность увидеть в интерфейсе клиенте прошедшие игры (и итоги), общее их количество, количество пакетов, другую статистическую информацию.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.