Статистика
Rambler's Top100 Рейтинг блогов

Техническая сторона процесса

Не так давно я рассказал о проведённой игре «Кто хочет стать миллионером?» (виртуальным, разумеется) в обычной московской школе №117. Красивые фотки, конечно же, порадовали читателей сайта 😉 , но сегодня я хочу поведать о том, как этой красоты удалось добиться в техническом плане. Разумеется, буду писать о той части, за которую отвечал сам — софт.

Что мы имели: 1 компьютер и 2 подключённых к нему дисплея в зале, а также ноутбук и подключённый к нему проектор, с которого выводится изображение на здоровенный экран в зале; всё остальное находилось за кадром — об этом расскажу позже. Тот компьютер, что находился в зале (небольшая коробочка, спрятанная под игровым столом), был сервером. Пульт [для управления космическим кораблём] режиссёра — клиент (находился в т.н. аппаратной — небольшой тёмной комнатке в углу зала).

Вся начинка игры — это одно приложение для ОС Windows. При старте программы нужно выбрать режим: режиссёр или игрок/ведущий.

В режиме «игрок-ведущий» появляются две формы, расположенные строго одна рядом с другой (с монитора режиссёра их положением и стилем (есть рамка с заголовком или нет рамки) управлять можно, хотя и бегать туда-сюда, чтобы удостовериться в правильности расположения — проблематично. Для экранов 1024х768 (именно такое разрешение было на использованных мониторах, соотношение сторон — 4:3) всё уже было «вшито» (т.е. запустил и не парься) — одна форма находилась в точке [0,0] — экран ведущего, другая — [1025,0] — экран игрока. Так как я делал скриншоты на широком мониторе, расположение форм здесь наглядно видно.

Режиссёрский компьютер был устроен примерно так же. Первая форма — панель для управления игрой, вторая — зрительский экран — выводилась на проектор (идентичен экрану игроков, только без «денежного дерева»), правда вторая форма находилась за границами экрана (опять же, либо мышкой перетащить, либо нажать пару кнопочек, чтобы применить предустановки).

Подключение осуществлялось по беспроводной локальной сети. Зелёный индикатор с IP-адресом и портом свидетельствует о том, что в данный момент режиссёр подключём к серверу — компьютеру игроков.

Базы игроков загружались из обычных текстовиков (конечно, можно было намудрить такоого… но не было ни времени, ни нужды). Вопросы выбирались из списка. Вопрос задавался либо нажатием на соответствующую кнопочку, либо кликом по области вопроса в рамочке в нижней части экрана (в этом случае музыка играла, не прерываясь). Ответы выводились так же — при помощи клика по соответствующему варианту в нижней части экрана.

Вопрос и варианты при желании можно отредактировать и «на лету» поменять на экранах.

При выборе любой из подсказок появлялось окно для управления той из подсказок, которая была выбрана.

«50 на 50». В текстовиках с вопросами были уже прописаны варианты, которые должны остаться после использования этой подсказки — при её активации эти два варианта предлагаются по умолчанию, однако на всё воля режиссёра.

«Звонок другу». Минимум настроек — включение мелодии дозвона, показ таймера, старт таймера, досрочное его прерывание.

«Помощь аудитории». Ну, во-первых, следует сказать, что для голосования использовались мобильные телефоны. Отправляешь SMS по обычному тарифу на нужный номер — твой голос учитывается. Для этого использовалось специальное приложение под Android.

Голосовали, кстати, по 20-25 человек, правда, некоторые сообщения доходили уже после объявления результатов голосования (в этот момент и был сделан кадр). Ну, и ещё низкий уровень сигнала у каких-то операторов не позволял участвовать в голосовании всем желающим.

Окно для управления подсказкой позволяет вывести номер телефона на экран зрителей, а пока те голосуют — попутно вбивать полученную информацию.

Чтобы не вышло, как на парламентских выборах в декабре 2011 года, при вбивании процентов считается и сумма, но практика показала, что при недоборе или переборе нужно как-то более наглядно информировать об этом того, кто сидит за пультом. 🙂

После нажатия на кнопку «Убрать таблицу с результатами», ведущему автоматически отправляется сообщение с результатами голосования (на его экране есть отдельная область для вывода всяких сообщений, помимо хинтов — подробной информации о вопросе и вариантах ответа).

Чего я хотел добиться при разработке софта? — возможности отката любого действия и возможности исправления случайных нажатий наиболее незаметным образом. Всё это получилось. Правда, очень много действий приходилось делать вручную, хотя часть можно было и автоматизировать (например, впопыхах можно забыть и не вывести хинт, хотя он, по идее, уж после принятия ответа должен выводиться автоматически).

Не исключаю, что программулину выложу в открытый доступ (исходники не просите — у меня очень странный стиль кодинга, не хочу никого пугать), правда, нужен повод, чтобы довести до ума некоторые мелочи — без этого выкладывать такое творение в Сеть как-то не сильно хочется. 🙂

62 комментария к записи “Техническая сторона процесса”

Оставить комментарий