Добрый день, начинающие и продолжающие любители игр!
Я продолжаю рассказ о том, как я начинал писать (и пишу до сих пор) свой политический симулятор.
Предыдущая часть, где я рассказываю, откуда взялась идея и что имелось на начало создания:
Как я начал писать свою браузерку
В прошлый раз я остановился на том, что у меня были:
- Желание создать что-то своё, лучше чем уже есть (именно на первом месте, без желания - никуда!);
- Высшее образование в нужном направлении и какие-никакие практические знания;
- Набор чужих ошибок и проблем, по которым я постарался сделать выводы;
- Список идей для реализации.
В этом посте, как и просил @Arktika55 , я постараюсь добавить побольше картинок, ссылок и информации, потому что все любят не только читать, но и "трогать", другими словами - ПРУФЫ :)
Вернёмся к моменту, когда я особо WEBом не интересовался, но пришлось - в ВУЗе. Одним из заданий на семестровую оказалось написание небольшого сайта на заданную тематику. Помнится, мне попался магазин спорттоваров...
Не могу сказать, что я был хорошим студентом, но в случае с ВЕБом мне повезло - в итоге мне попалась инструкция, что называется, "для блондинок". Она начиналась с совсем азов - как установить Python, Django, как работает Интернет. Впрочем, вам лучше самим увидеть:
https://tutorial.djangogirls.org/ru/
Да, моя игра начиналась с гайда "для блондинок" как сделать бложик :)
После некоторых манипуляций со стилями, первая страница игры стала выглядеть так:
(скриншоты из оф. группы игры (ссылка: https://vk.com/wild_politics), за неимением других)
Внешне игра была в этот момент ещё была ничем не примечательна. Внутри же кипела работа над игровыми "моделями" - то есть тем, что будет создаваться, изменяться и удаляться в ходе игры.
Изначальная концепция предполагала наличие АЖ трёх персонажей на аккаунт:
Если вы сейчас словили лютый флешбек, поздравляю - вы, скорее всего, игрок EVE Online :)
Идея трех "чаров" на аккаунт именно оттуда. Ещё она должна была решить проблему людей, которые любят "мультоводить" - создавать дополнительных персонажей для заработка и шпионажа. Как говорится, не можешь победить - возглавь, поэтому я дал возможность делать сразу трех персонажей (впоследствии, от этого пришлось отказаться).
Как можно было догадаться, к моменту последнего скриншота со стороны сервера уже существовали модели:
- Пользователя (любезно предоставленная Django модель User);
- Персонажа (Player, от нуля до трех на одного Пользователя);
... а также активно велись работы над созданием модели Партии. Партия должна была стать чем-то вроде аналога кланов в других играх, поэтому они должны были спокойно создаваться-удаляться, игроки должны были вольны покидать их в любой момент. Следовательно, нужно было "шлифовать" различные моменты в этих действиях, со стороны сервера. К примеру, была проблема, при которой, если удалить партию, игроки исчезали вместе с ней.
Оглядываясь назад, могу сказать, что это была тривиальнейшая проблемка - свойство CASCADE (когда при удалении объекта удаляются и все связанные) нужно было заменить на SET_NULL. То есть если партия удалялась - игрок становился беспартийным:
После создания в игре модели партии, самыми насущными проблемами были авторизация через соц. сети и карта игры.
Как я писал выше, в любых играх есть категория людей, желающие взять "числом" - создать несколько аккаунтов и обогатиться за счёт них. Авторизация через соцсети должна была поумерить пыл таких любителей "войн клонов" за счёт того, что страницы ВК при создании требуют номер телефона, а их у среднего человека - ограниченое количество.
Ярче всего труды над реализацией авторизации через соц. сети иллюстрирует этот скриншот:
Карта - отдельная тема для страданий. Сама по себе представляла файл векторной графики SVG, на которым были нарисованы границы территорий. Предстояло обучить игру:
- Связывать рисунок определенной территории с записью в игре об этой территории;
- Перемещать игроков по карте посредством "Перелётов";
- Сделать удобную карту, с возможностью масштабирования
...и многие другие мелочи, которые всплывали позже, вроде динамической заливки территории цветом для обозначения принадлежности к государству.
Поначалу на карту одной только РФ были масштабные планы, и она была "прикручена" целиком. Заодно можете оценить, как с момента предыдущего скриншота продвинулась работа - есть уже какие-никакие валюты, аватар игрока, некоторые функциональые вкладки и кнопки:
Позже, здравый смысл возобладал над амбициями, и число регионов было уменьшено - так было проще поддерживать их работу, а также увеличивало конкурецию.
Карта после такого решения резко "похудела", до размеров центральной России:
Сейчас же карта - ещё меньше. Сделано это по всё тем же соображениям - для поддержания конкуренции в игровом мире за территории. Это не мешает найти на ней своё место коллективам со всей РФ, а также Польши, Украины, и нескольким игрокам из Италии, Испании и Турции:
По мере надобности, я добавляю территории, руководствуясь соображениями среднего онлайна. Последний раз карта менялась после отметки в 35 человек среднесуточного онлайна.
Не обошлось на ранних стадиях и без проблем. Одно из них стали разные браузеры (я до сих пор, в силу своей криворукости в плане вёрстки рекомендую игрокам Хром). Так, к примеру, выглядела игра в Firefox:
Карта, по идее, должна была растянуться до самого низа страницы, а окошко справа - содержать информацию о выбранном регионе, при нажатии на него. Но, как мы видим, Лиса завредничала и свернула карту в трубочку :)
Пародирование древесины на последнем скриншоте - не случайно. Первая концепция дизайна предполагала, что "игра" будет вестись как бы за рабочим столом политика, откуда будут приниматься решения, осуществляться руководство партией, связь с "коллегами" и другими государствами.
Вот так примерно в то же время выглядел профиль игрока:
Серые окошки с белой окантовкой - элементы класса, который я назвал Polaroid. Они должны были содержать в себе информацию, которая нужна игрокам, и напоминать документы на столе.
К сожалению, со времнем, они стали выглядеть всё менее уместно, и я постепенно от их избавился, почти везде.
К этому моменту игра, развёрнутая в "облаке", уже получила своих первых игроков, и работа пошла веселее. Игроки до сих пор мотивируют меня, а за их взаимоотношениями в игре интересно наблюдать. Также, наблюдение позволяет делать полезные выводы, в плане игрового баланса и порядка реализации будущих патчей.
К примеру, после появления в игре авторизации через Гугл, профили игроков, которые залогинились через него, лишились ссылки на соцсеть. Связаться с ними стало невозможно. Для решеия этой проблемы пришлось реализовать игровую почту, отложив остальные планы.
Но это история совсем недавнего прошлого, а мне ещё есть что вам рассказать!
Спасибо за прочтение очередного длиннопоста. С разрешения модератора в комментариях в предыдущем посте, я оставляю ссылку на игру, оф. группу и меня. Свяжитесь, если хотите попасть в общий чатик игроков ВК.
До следующего поста!
http://wildpolitics.online/
-
https://vk.com/wild_politics
-
https://vk.com/m4troskun