Есть такой сервис: PlayerIO, для создания мультиплеерных флеш-игр. Я как-то разбирал примеры, и, вот, созрел, чтобы попробовать реализовать идею одновременных ходов.
В качестве базовой игры взял шахматы. Каждая сторона двигает всеми фигурами, затем ход обсчитывается на сервере и выдаётся результат. Цель - убить короля.
Чтобы задать направление хода, нажмите мышкой на фигуру и потяните. Когда все приказы будут розданы, нажмите Send Order.
Когда оба игрока отправят приказы, начинается просчёт хода. Каждый ход состоит их 100 тиков. Если фигуре задано идти на n полей, вычисляются числа b = 100/n и a = b/2. На переход с одного поля на соседнее фигура будет тратить случайное число тиков между a и b.
Если фигура встречает на пути свою, то ждёт, пока клетка не освободится. Если чужую - снимает её, при этом переставая дальше двигаться.
Вот сама игра. Давайте попробуем?
http://dl.dropbox.com/u/22620118/SCH.swf
Сейчас программа - просто для теста возможностей сервиса. Код сделан неоптимально, если браться серьёзно, его придётся переписывать, Лобби и чат были в примерах, на них не потрачено ни строчки.
Сам сервис PlayerIO бесплатно разрешает до 500 игроков в онлайне, для использования в более крупных проектах он платный.
//Обновил сервер, поправил баг с прохождением фигур
Последний раз редактировалось General; 22.04.2012 в 22:40.
Создал, буду в онлайне где-то час-полтора.
Вот вам и вылазит главная проблема стандартного мультиплея: "надо ждать игроков". Тогда как в режиме игры типа почтового, e-civ, уже б давно партия была сыграна:
пусть бы для начала даже не было рассылки, что все походили, можно было бы сделать ход и иногда заглядывать: как только увидел, что сервер сделал общий ход и ждет твоего следующего хода - походил.
А вообще уже Реныч, увидев, что никто не берется использовать его прототип, потихоньку клепает сервер:
Не знаю, насколько можно судить по словам (а на деле Реныч уже показал, что что-то умеет и делает), но "транспортный, сеансовый и прикладной уровни" - звучит заманчиво Правда, я так и не разобрался, как сервером Реныча пользоваться, и он не расписывает - но возможно, доведет сервер - напишет.И так, последние известия.
Не дождавшись обещанного тут сервера, было принято решение форсировать процесс, написанием собственного.
Можно сказать у меня получилось. Сервер реализует передачу данных по собственному протоколу, используя транспортный, сеансовый и прикладной уровни.
Сейчас клиент умеет авторизовываться на сервере, посредством связки логин/пароль. Получать список игроков. Для демонстрации работы реализован чат.
Дальнейшее направление работы вижу - реализацию передвижения юнитов в соответствии с концепцией "Одновременного перемещения" в краткосрочной перспективе
и боевой системы в дальнейшем.
Конечно, каждому интересно делать то и так, как ему интересно, но жаль, что все так же параллельно изобретаются велосипеды
Но если ты, Генерал, будешь доводить свое направление, то я бы поучаствовал в тестировании, но боюсь, согласоваться будет сложно. Так что если чуть-чуть не довести твой сервер, не научить его запоминать ходы игроков (или он уже умеет?) - то твоя работа может ну если не пропасть, то затормозиться.
Да-да, я видел И Ренычу показывал. Но я не писал полноценный сервер, это я тестировал решение PlayerIO для многопользовательских игр. Сделать, чтобы комната существовала даже когда все вышли - интересная идея, посмотрю, возможно ли здесь такое.
Кто хочет потестировать новый режим игры и искусственный интеллект - пишите в личку.
Какой-то простенький хэлпик бы не помешал, потому спрошу здесь - отменить выбранный ход нельзя? запомнить позицию?
Что-то фигня получилась: вышел я конем на выгодную вилку "пешка ферзь", правда ферзь прикрыт слоном, эта пешка - этим ферзем. Но игра не дает задать удар ни по ферзю, ни по пешке. Почему?
Чтобы отменить ход, надо нажать на фигуру и чуть-чуть поводить над ней.
Да, про ещё одну особенность забыл сказать - после хода фигура блокируется на 1 ход (к королю это правило не относится). Эта особенность введена потому, что иначе любой шах приводит к 50% шансам выиграть партию.
Сейчас игру можно вести до полного уничтожения, хотя в релизной версии, всё же, сделаю победу после убийства короля.
Я так понимаю, ты потратил кучу времени на разработку ИИ?
Я например шахматы просто не люблю. Что если
1. заменить пешек на дуболомов, слонов на слонов и т.д.; придать им параметры у/з/х, близкие к Циве; разрешить им двигаться как в Циве, т.е. в любом направлении
2. клеткам придать рельеф местности,
3. на последней линии сделать "город", взять который и будет цель игры
4. разрешить входить парами под никами с паролем, запоминать ситуацию;
5. ввести Таблицу рейтингов -
понятно, что я "много захотел" , но может тогда в твою игру повалит толпа игроков?
Ну смотри - ИИ я сделал 18го числа. С тех пор к проекту и не подходил - то встречи с научруком, то конспект лекций надо писать, то ремонт доделывать. Когда образуется следующее "окно", облагорожу интерфейс.
Не, дело не в "благородстве": то, что я предлагаю, резко расширяет возможности, даже измерения игры. И ес-но, если целиться на ИИ - то задача усложняется на порядок. А вот если забить на ИИ (сэкономив кучу усилий?), но сделать возможность поиграть хоть в паре, но в онлайне - игра ж может заиграть новыми красками?
Нет, я просто имею в виду, что по этому проекту у меня ближняя задача - сделать полноценной игрой именно одновременные шахматы. Ну а потом, на их основе - одновременную циву.
Спасибо! Так, наоборот, по-моему, надо проекты доводить до конца. А затем много кода и подходов могут быть использованы и в циве.
Доводить проекты до конца -- это отличное мотто,
но я в данном случае не о том.
Хотя... думаю не имеет смысла продолжать (да и начинать) здесь то,
что является предметом моей личной прокрастинации. ))
Желаю чтобы тебя оно не постигло, и твои слова не расходились с делом.
А если... еще какая толика оптимизма, задачка интересная и нам перепадет... то будет просто отлично.
Для шахмат одновременность неестественна, для реалистичной стратегической игры наоборот - естественна.
Потому вряд ли в одновременные шахматы заиграет достаточно народу, и наоборот: если б это была пусть примитивная, но стратегия - думаю, играли бы.
Потому в доведении шахмат не вижу смысла, и наоборот - в переводе шахмат в реал-стратегию вижу этот смысл.