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
Скачать не возможно
Перевести проект на .NET Standard 2.0. Для этого придётся решить ряд дополнительных подзадач.
Очень серьёзная проблема.
Варианты решения:
В текущей реализации древовидного редактора всё построено на TextBox'ах. Это неэффективно.
Можно попробовать построить редактор на TextBlock'ах. А TextBox для редактирования создавать динамически при клике по области редактора.
Дополнительно заменить TreeView на набор вложенных шаблонов. TreeView здесь не очень нужно, так как глубина иерархии фиксирована.
В настоящий момент при игре без фальстартов сервер отдаёт клиентам ссылку на медиафайл. Когда кто-то нажимает на кнопку, клиенты прекращают воспроизведение файла. Но ссылка на файл доступна, и недобросовестный игрок может загрузить файл по ссылке и прослушать его полностью.
Данная проблема усложняет создание игр наподобие "Угадай мелодию".
Одно из решений проблемы - создание broadcast-сервера, который бы раздавал игрокам контент одновременно и прекращал бы это делать при паузе или нажатии кем-то на кнопку.
Одновременная раздача контента гарантировала бы, что ни один из участников не успел бы загрузить контент большей длительности, чем остальные.
Задача выглядит сложной и пока не в приоритете.
Задел под реализацию аккаунтов и работы с защищённых сессиях. Дополнительно защищает API сервера от сторонних атак.
Необходимо:
Решение ни по чему не принято, это просто варианты.
Табло:
Спецвопросы:
Для пакетов с дополнительными возможностями фиксируется версия. Софт, который их открывает, проверяет их версию, и предлагает обновиться, если он соответствующую версию не поддерживает.
При старте игры ей проставляется версия пакета. При подключении к такой игре появляется требование обновить клиент.
См. https://vk.com/si_game?w=wall-135725718_2%2Fall
Предлагается вернуть старый добрый Media Player, как вариант.
Когда число активных игр становится более 1000, получение информации о них начинает подтормаживать.
Следует разбить этот запрос на два: получение минимальной информации о списке игр (Id, название, тип и наличие пароля - последние два свойства нужны для фильтрации) и получение полной информации о конкретной игре по Id.
Позволит использовать, в частности, nullable reference types.
Возможность пересаживания участника между местами ведущего, игрока и зрителя.
Добавить в древовидный редактор два дополнительных режима редактирования, которые уже присутствуют в плиточном редакторе.
Как воспроизводится:
Что происходит:
У людей, играющих в десктоп-версии музыка прерывается, а в веб-версии не останавливатся.
Как правило, такая ошибка приводит к рассинхрону игрового времени, из-за чего у отвечающего человека может резко прерваться время ответа на вопрос, и начинается стадия выбора следующего вопроса. И эта стадия обычно "сломанная", и вопрос выбрать обычно никто, даже ведущий, не может.
Порой рассинхрон может привести и к более необычным последствиям.
Доработать правую панель плиточного редактора, чтобы с её помощью можно было редактировать произвольные поля элементов пакета (в режиме самого подробного представления).
Для защиты сервера от переполнения пакетами и аватарами нужно поддержать квоты по Uploady: на более 200 Мб за 2 часа на один IP-адрес.
Для этого необходимо:
Новая версия клиента в работе.
Сейчас основной TabControl не использует привязку к данным. Вкладки создаются программно.
Чтобы обеспечить автогенерацию вкладок, нужно обеспечить корректный возврат положений курсора и прокрутки при возврате к документу.
Лицензии используемых компонентов должны быть включены в состав продукта.
Вместо сложного задания пользователем шаблонов предоставить пользователю интерфейс для выделения нужных ему элементов в тексте.
Ссылка на страницу:
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: основное содержимое сообщения.
Возможность задавать собственную музыку.
При помощи XAML Islands.
Существующий медиапроигрыватель имеет два недостатка:
Но надо понимать, что новый MediaElement будет работать только с определённой версии Windows 10 и не будет работать на Windows 7.
Позволит проще открывать пакеты в веб-клиенте.
Но сейчас огромное количество пакетов уже создано в XML.
Так что если и браться за это, то будет длительный (несколько лет) переходный период, в течение которого пакеты будут содержать контент в двух форматах. И всё равно останется проблема старых непереконвертированных пакетов.
С другой стороны, XML в веб-клиенте можно спокойно читать.
Так что, возможно, переход не имеет смысла.
Обсуждаемо.
Реальная стоимость вопроса:
По какой то причине, обновление игры до 7.4.1 не происходит. При попытку обновления, диспетчер обновления просто закрывается.
Во время отыгрыша вопроса серверу нужно понимать, когда закончилось мультимедиа и нужно двигаться дальше (показывать следующий фрагмент или предлагать нажимать на кнопку). Сервер не знает длительности мудьтимедиа-файла (если только при создании пакета для фрагмента не указали его длительность). Поэтому он полагается на сообщения от клиентов.
Этот метод ненадёжен: работа сервера не должна нарушаться в случае использования багованных версий клиентов.
Варианта решения пока нет. Но, возможно, на сервере нужно использовать какую-то библиотеку для работы с мультимедиа-файлами и с её помощью определять корректную длительность файла.
Возможность менять порядок вкладок в редакторе и вытаскивать их в новое окно.
Первый раунд игры "Угадай мелодию" может быть проведён уже сейчас. Он почти ничем не отличается от SIGame. Насчёт минусов только не помню. Возможно, нужно поддержать блокировку кнопки на несколько вопросов при неправильном ответе.
Для второго раунда нужно поддержать:
Для третьего раунда нужно поддержать:
У сайта 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
Коммуникация должна стать более производительной.
На данный момент клиент получает вопрос и его медиа-данные в реальном времени в момент выбора игроком вопроса.
Данный способ вызывает проблемы с отображениям медиа-данных у разных игроков (в зависимости от нагрузки серверов СИ, расположения игроков, а также канала до серверов СИ), что ведет либо к преимуществу одних игроков над другими, либо к невозможности отыграть пак с картинками, музыкой итд
В идеале клиент своей игры должен получать весь пак перед игрой, по следующей схеме:
В целом схема подойдет и для браузерной версии игры (можно использовать локальное хранилище для хранения бинарных данных)
Возможность сохранить произвольный документ как шаблон под некоторым именем. При создании нового документа можно выбрать в качестве начального документа как любой из 4-х предустановленных шаблонов, так и любой из собственных.
Документ сохраняется как есть, со всеми вопросами и авторами. Пользователь сам несёт ответственность за формирование шаблона.
Добавить возможность удаления кастомных шаблонов прямо из диалога создания нового документа.
Преобразовать встроенные шаблоны в единый формат хранения шаблонов (сложности могут быть только с параметризуемым шаблоном).
При старте игры в онлайн-режиме. Возникает периодически.
Для некоторых пакетов это можно решить пересохранением в новый файл через редактор вопросов. Но не для всех.
https://pp.vk.me/c836530/v836530035/ef29/PeRi0g5LyWQ.jpg
Контакты
https://vk.com/id201585254
При старте игры отправлять запрос на localhost по заданному порту и проверять, что вызывается обработчик кнопок. Если тест не проходит, выводить сообщение об этом.
Добавить кнопку для запуска повторного теста.
Сохранение персональной статистики по игроку и по серверу. Возможность увидеть в интерфейсе клиенте прошедшие игры (и итоги), общее их количество, количество пакетов, другую статистическую информацию.
Подходит для стримов.
Приоритет невысокий.
Возникают задержки при онлайн- и сетевой режимах игры.
Контакты:
ВКонтакте: Руслан Кичибеков
Добрый день!
Есть ли возможность собрать клиент SIGame под Linux?
Перейти с .NET Framework 4.6.1 на .NET Core 3.1. Интересное упражнение. Плюс должна повыситься производительность IO-операций.
Важнейшая функциональность.
Позволит пользователям:
Дополнительно нужно подумать, не подпадает ли данная функциональность под закон о персональных данных. Сейчас сервер находится во Франции.
Windows 10 x64 с Anniversary Update.
Версия СИ 6.2.8
Когда начинает играть мультимедиа (звук или видео), делаю звук тише в микшере Windows, затем при следующем проигрывании мультимедиа звук СИ сбрасывается снова на максимум.
Происходит это в игре онлайн, по сети и локалке не проверял. Так же данный баг повторяется на Windows 7 x86 и x64
Контакты
ВКонтакте: Дмитрий Дарко
Десктопный клиент. Исходники сервера в настоящий моент выкладывать не планируется.
Для этого необходимо выполнить #47.
Сейчас текстовый импорт использует устаревшую версию. Новая версия использует другой синтаксис языка.
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.