Онлайн игра Менеджер, или Монополия по Русски
Четверг, 9 мая 2013 г.
Просмотров: 19322
Настроение: Нормальное
В колонках звучит: Не ниче не играет)))
Подписаться на комментарии по RSS
Давно нужно было написать этот пост, но пишу вот сейчас.
Мы частенько с друзьями собираемся у кого нибудь дома и играем в различные настольные игры, в том числе и в игру менеджер, отсюда у меня и возникла идея о написании этой игры в электронной версии, да непросто электронной, а онлайн, для того чтобы можно было поиграть в нее с кем угодно в свободное время когда мы не вместе.
Конечно перед началом каких либо действий я решил поискать в интернете, а вдруг она уже есть и писать ее не имеет смысла. К моему счастью ее в электронной версии не оказалось, но я находил онлайн игры монополии, знаю что она прародитель менеджера, но правил ее я до сих пор не изучил, и даже не поинтересовался этим))), ну только глянул на одну из монополий онлайн, да похожа, но не играл, закрыл и забыл, и приступил к написанию своей игры.
Поискав еще в интернете немного информации по игре менеджер, я нашел отсканированные карточки и игровое поле, подрисовал немного и восстановил некоторые части от поля, так как оно было немного ненадлежащего вида.
Когда искал старался найти самую первую из версий менеджера, классическую - 90х годов, просто у меня была когда то такая, захотел сделать ее копию, в новых версиях изменен стиль оформления игрового поля и только.
Еще пока я искал онлайн менеджер, я наткнулся на официальный сайт игры, там вроде как ищут инвесторов на написание онлайн версии менеджера и уже давно, но меня это не волнует, еще посмотрел в контактах на сайте указаны 2 патента, первый из них закончил свое действие в 2003 если не ошибаюсь, а второй 4 июня 2013, но последний могли продлить, хотя и это тоже меня не остановило, так как патент на коробочную версию игры из картона, а патент записан как для промышленного образца забавно даже.
Вообщем вдохновившись идеей о написании онлайн игры, я подумал что если игра обретет хоть какой то успех, то я сделаю версию для десктопа, т.е для windows, но тоже онлайн - по задумке неважно в какую версию ты играешь, все игроки будут связаны одной партией игры, еще думаю сделать версию для вконтакте - методом переделки web версии.
Серверную часть как всегда выполняю на php, браузерную соответственно html, javascript с библиотекой jquery - ее я почему то всегда старался избегать и писал что мне нужно было на чистом js, кстати что мне не понравилось в онлайн играх монополии, это то что они написаны полностью на flash, а яже хочу на нем сделать только аудиочат на 5 игроков.
Раньше я никогда не составлял план работы, но здесь я решил хотя бы написать что я хочу видеть в онлайн игре, и что нужно для комфортной игры. Составив план я некоторое время не мог придумать как синхронизировать поля игроков, так как всю информацию нужно хранить в бд, а поле обновлять нужно часто - это могло бы создать серьезную нагрузку на сервер mysql.
Решение было найдено на просторах интернета, на каком то форуме пользователи обсуждали как рас методы хранения всех данных на сервере и рекомендовали хранить данные которые часто обновляются и считываются в файлах, в логах.
Подумав подумав я пришел к выводу что каждый раз обновлять все поле не нужно, а только ту часть которая подлежит изменениям, для этого идеально подходит запись логов игры и чтению последних изменений, и для этого я написал 2 функции: 1 - это структурированная запись логов со своим API, а 2 - соответственно их чтение из файлов.
Смысл в структуре таков, что записывается время выполнения какой либо операции и структурированная строка с данными которые были обновлены, считывающий скрипт проверяет текущее время и считывает все данные которые были изменены после последнего обновления поля - все просто, но для того чтобы не считывать лог файл целиком, мне пришлось поэкспериментировать и придумать метод чтения со смещением данных.
Когда я только начал составлять инсталляционный файл для базы данных, я сделал хранение всех данных о карточках полей их стоимости и карточках сюрпризы и извещения в ней самой, но в ходе разработки игры я понял, что в этом нет никакого смысла, так как данных не так уж и много, а считывать их бывает приходится по нескольку раз за операцию, я вынес их обработку в отдельные функции, скрипт стал выполняться раза в 3 быстрее, хотя он и так не медленно выполнялся))), а по потреблению памяти он просто смешон.
Самым страшным для меня казалось это написание обработки всех сюрпризов и извещений, но на практике же все вышло очень просто, гораздо сложнее писать правильную последовательность хода игры, здесь нужно учитывать множество нюансов, о которых на "старте" я даже и не думал, к примеру такая ситуация: у игрока закончились деньги, но остались карточки на земли, по первоначальным условиям было что если баланс игрока уходит в минус он проигрывает, но в реале, он ведь может их продать в банк, или выставить на аукцион. Я сделал функцию авто-продажи филиалов и карточек на землю, но ее нужно применять в крайнем случае, если игрок сам не совершает никаких действий - не выбирает какие филиалы, или карточки ему продать, или выставить на аукцион. Этот момент еще остается не до конца разработан, но я решение придумал кажется))).
В ходе разработки я стремлюсь делать игру максимально похожую на картонную))), но без своих нюансов не обойтись. В обычной игре если игрок долго не совершает свой ход, другие участники дадут ему пошее за это, или сходят за него:-D, в онлайн же игре, я сделал фиксированным время на совершение хода, а за выход за пределы своего времени игрок получает штрафные санкции(балы), по достижению определенного количества он автоматически покидает игру. Ну на самом деле я и этот момент еще не доделал))), пока еще нету штрафных санкций, но отсчет времени есть. Возможность совершать копупку земли, или постройку филиала дается игроку уже после того как он кинул кубики, в течении 1 минуты, далее ход передается другому игроку.
Вообще я переделал немного правила игры, важными изменениями является то, что игрок может строить филиал, или предприятие только тогда, когда находится на своем поле, и строить он их может независимо от того, есть ли у него все 3 карточки одного цвета, или нет. Все 3 карточки одного цвета дают игроку только удвоение стоимости за аренду. И еще на старте игрок получает всего 20000, вместо 200000.
- Все эти изменения в правилах мы практикуем на обычной картонной игре, в онлайн игре я сделаю по возможности настройку множества параметров, к примеру финализировать игру можно будет не обанкрочиванием всех игроков, а достижением определенной суммы денег, которая заранее задается перед стартом игры. Были еще какие то идеи, но пока я их не реализовал и щас не могу вспомнить:-D.
Я пишу игру один, но я надеюсь что мне поможет мой друг написать простой аудиочат на флеше для всех участников игры, и недавно еще один друг захотел почувствовать в разработке игры, он не программист, а веб дизайнер, я бы очень хотел чтобы он хотя бы немного помог с оформлением сайта игры, и может доработкой самого игрового поля.
Недавно я тестировал преальфа версию)))) игровой процесс не доработан до конца, но базовые моменты уже готовы. В ходе тестирования я выяснил что недостаточно информативности и действиях других игроков и о том кто сейчас ходит, хотя все эти данные отображаются на странице, и по этому поводу я придумал решение, в ближайшее время буду делать.
Пока я не сильно распространяюсь с информацией о написании онлайн
менеджера, но если ты читатель прочитал мой пост, я могу выслушать от
тебя всякие идеи по поводу доработки игры.
Комментариев: 9
Можете сообщить по эл. почте pavel-32024@yandex.ru когда выйдет игра.
Как стать бета-тестером?
Будет ли в игре игра на "реал"?
Павел, хорошо я отпишу когда выйдет рабочая версия)), на самом деле в нее и сейчас играть можно, но она не имеет нормальной финализации, пока времени нет доделывать ее, и еще такой функционал как аукцион тоже не доделан до конца, а для общения между игроками я вообще пока ничего не делал.
Для тестирования у меня есть несколько человек, когда нужно было проверить играбельность, мы проверяли и выявляли недочеты, а так когда я сделаю уже до конца рабочую версию, все кто в нее будет играть, по сути и будут бета тестерами))). Ты один из первых узнаешь о запуске игры ))
Про реал я думал, но хотел его делать только в том случае если игра будет востребованна.
В бета версию еще не возможно поиграть?
Максим, пока нет возможности предоставить всем подряд доступ к игре, как только я пущу игру в паблик, я обязательно сообщу здесь в комментариях.
когда ожидается релиз?
Все зависит от моего желания поскорее доделать игру, я надеюсь что к началу августа, а может быть и раньше я разрешу регистрацию и официально объявлю о запуске игры.
прекрасная игра всем советую
pavel-32024@yandex.ru
Ну и где игра?))
Игру делал в свое удовольствие, а щас пока нет возможности посидеть и покодить спокойно(((. Надеюсь что вскоре будет такая возможность.