FirstSteel

FirstSteel

На Пикабу
Дата рождения: 06 июня 1995
поставил 6543 плюса и 941 минус
отредактировал 0 постов
проголосовал за 0 редактирований
Награды:
За сборку компьютера За поиск дела всей жизни За победу над кибермошенниками 5 лет на Пикабу
2832 рейтинг 9 подписчиков 37 подписок 33 поста 2 в горячем

...и Печкин, подкидывающий задачи ящиками

Я понял, на что похожа работа программистом в крупной компании - на написание письма родителям из "Простоквашино":

Сначала сидишь, перечитываешь, что там насочиняли до тебя; офигеваешь; иногда глазеешь в окно; иногда приходится бодаться с коровой из постановщиков.

Потом тебя сменяет какой-то Шарик и продолжает делать всё то же самое.

В итоге заказчик получает сочинение, от котрого у него самого начинает сыпаться шерсть и отваливаться хвост :)

...и Печкин, подкидывающий задачи ящиками Программирование, IT, Простоквашино, IT юмор, Программист, Разработка, Гифка

Как я начал писать свою браузерку [ч.2]

Добрый день, начинающие и продолжающие любители игр!

Я продолжаю рассказ о том, как я начинал писать (и пишу до сих пор) свой политический симулятор.


Предыдущая часть, где я рассказываю, откуда взялась идея и что имелось на начало создания:

Как я начал писать свою браузерку


В прошлый раз я остановился на том, что у меня были:

- Желание создать что-то своё, лучше чем уже есть (именно на первом месте, без желания - никуда!);

- Высшее образование в нужном направлении и какие-никакие практические знания;

- Набор чужих ошибок и проблем, по которым я постарался сделать выводы;

- Список идей для реализации.


В этом посте, как и просил @Arktika55 , я постараюсь добавить побольше картинок, ссылок и информации, потому что все любят не только читать, но и "трогать", другими словами - ПРУФЫ :)


Вернёмся к моменту, когда я особо WEBом не интересовался, но пришлось - в ВУЗе. Одним из заданий на семестровую оказалось написание небольшого сайта на заданную тематику. Помнится, мне попался магазин спорттоваров...


Не могу сказать, что я был хорошим студентом, но в случае с ВЕБом мне повезло - в итоге мне попалась инструкция, что называется, "для блондинок". Она начиналась с совсем азов - как установить Python, Django, как работает Интернет. Впрочем, вам лучше самим увидеть:

https://tutorial.djangogirls.org/ru/

Да, моя игра начиналась с гайда "для блондинок" как сделать бложик :)

После некоторых манипуляций со стилями, первая страница игры стала выглядеть так:

(скриншоты из оф. группы игры (ссылка: https://vk.com/wild_politics), за неимением других)

Как я начал писать свою браузерку [ч.2] Игры, Разработка, Веб-разработка, Браузерные игры, Симулятор, Россия, Длиннопост

Внешне игра была в этот момент ещё была ничем не примечательна. Внутри же кипела работа над игровыми "моделями" - то есть тем, что будет создаваться, изменяться и удаляться в ходе игры.


Изначальная концепция предполагала наличие АЖ трёх персонажей на аккаунт:

Как я начал писать свою браузерку [ч.2] Игры, Разработка, Веб-разработка, Браузерные игры, Симулятор, Россия, Длиннопост

Если вы сейчас словили лютый флешбек, поздравляю - вы, скорее всего, игрок EVE Online :)
Идея трех "чаров" на аккаунт именно оттуда. Ещё она должна была решить проблему людей, которые любят "мультоводить" - создавать дополнительных персонажей для заработка и шпионажа. Как говорится, не можешь победить - возглавь, поэтому я дал возможность делать сразу трех персонажей (впоследствии, от этого пришлось отказаться).


Как можно было догадаться, к моменту последнего скриншота со стороны сервера уже существовали модели:

- Пользователя (любезно предоставленная Django модель User);
- Персонажа (Player, от нуля до трех на одного Пользователя);


... а также активно велись работы над созданием модели Партии. Партия должна была стать чем-то вроде аналога кланов в других играх, поэтому они должны были спокойно создаваться-удаляться, игроки должны были вольны покидать их в любой момент. Следовательно, нужно было "шлифовать" различные моменты в этих действиях, со стороны сервера. К примеру, была проблема, при которой, если удалить партию, игроки исчезали вместе с ней.


Оглядываясь назад, могу сказать, что это была тривиальнейшая проблемка - свойство CASCADE (когда при удалении объекта удаляются и все связанные) нужно было заменить на SET_NULL. То есть если партия удалялась - игрок становился беспартийным:

Как я начал писать свою браузерку [ч.2] Игры, Разработка, Веб-разработка, Браузерные игры, Симулятор, Россия, Длиннопост

После создания в игре модели партии, самыми насущными проблемами были авторизация через соц. сети и карта игры.


Как я писал выше, в любых играх есть категория людей, желающие взять "числом" - создать несколько аккаунтов и обогатиться за счёт них. Авторизация через соцсети должна была поумерить пыл таких любителей "войн клонов" за счёт того, что страницы ВК при создании требуют номер телефона, а их у среднего человека - ограниченое количество.


Ярче всего труды над реализацией авторизации через соц. сети иллюстрирует этот скриншот:

Как я начал писать свою браузерку [ч.2] Игры, Разработка, Веб-разработка, Браузерные игры, Симулятор, Россия, Длиннопост

Карта - отдельная тема для страданий. Сама по себе представляла файл векторной графики SVG, на которым были нарисованы границы территорий. Предстояло обучить игру:


- Связывать рисунок определенной территории с записью в игре об этой территории;

- Перемещать игроков по карте посредством "Перелётов";

- Сделать удобную карту, с возможностью масштабирования


...и многие другие мелочи, которые всплывали позже, вроде динамической заливки территории цветом для обозначения принадлежности к государству.


Поначалу на карту одной только РФ были масштабные планы, и она была "прикручена" целиком. Заодно можете оценить, как с момента предыдущего скриншота продвинулась работа - есть уже какие-никакие валюты, аватар игрока, некоторые функциональые вкладки и кнопки:

Как я начал писать свою браузерку [ч.2] Игры, Разработка, Веб-разработка, Браузерные игры, Симулятор, Россия, Длиннопост

Позже, здравый смысл возобладал над амбициями, и число регионов было уменьшено - так было проще поддерживать их работу, а также увеличивало конкурецию.


Карта после такого решения резко "похудела", до размеров центральной России:

Как я начал писать свою браузерку [ч.2] Игры, Разработка, Веб-разработка, Браузерные игры, Симулятор, Россия, Длиннопост

Сейчас же карта - ещё меньше. Сделано это по всё тем же соображениям - для поддержания конкуренции в игровом мире за территории. Это не мешает найти на ней своё место коллективам со всей РФ, а также Польши, Украины, и нескольким игрокам из Италии, Испании и Турции:

Как я начал писать свою браузерку [ч.2] Игры, Разработка, Веб-разработка, Браузерные игры, Симулятор, Россия, Длиннопост

По мере надобности, я добавляю территории, руководствуясь соображениями среднего онлайна. Последний раз карта менялась после отметки в 35 человек среднесуточного онлайна.


Не обошлось на ранних стадиях и без проблем. Одно из них стали разные браузеры (я до сих пор, в силу своей криворукости в плане вёрстки рекомендую игрокам Хром). Так, к примеру, выглядела игра в Firefox:

Как я начал писать свою браузерку [ч.2] Игры, Разработка, Веб-разработка, Браузерные игры, Симулятор, Россия, Длиннопост

Карта, по идее, должна была растянуться до самого низа страницы, а окошко справа - содержать информацию о выбранном регионе, при нажатии на него. Но, как мы видим, Лиса завредничала и свернула карту в трубочку :)


Пародирование древесины на последнем скриншоте - не случайно. Первая концепция дизайна предполагала, что "игра" будет вестись как бы за рабочим столом политика, откуда будут приниматься решения, осуществляться руководство партией, связь с "коллегами" и другими государствами.


Вот так примерно в то же время выглядел профиль игрока:

Как я начал писать свою браузерку [ч.2] Игры, Разработка, Веб-разработка, Браузерные игры, Симулятор, Россия, Длиннопост

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


К сожалению, со времнем, они стали выглядеть всё менее уместно, и я постепенно от их избавился, почти везде.


К этому моменту игра, развёрнутая в "облаке", уже получила своих первых игроков, и работа пошла веселее. Игроки до сих пор мотивируют меня, а за их взаимоотношениями в игре интересно наблюдать. Также, наблюдение позволяет делать полезные выводы, в плане игрового баланса и порядка реализации будущих патчей.


К примеру, после появления в игре авторизации через Гугл, профили игроков, которые залогинились через него, лишились ссылки на соцсеть. Связаться с ними стало невозможно. Для решеия этой проблемы пришлось реализовать игровую почту, отложив остальные планы.

Но это история совсем недавнего прошлого, а мне ещё есть что вам рассказать!

Спасибо за прочтение очередного длиннопоста. С разрешения модератора в комментариях в предыдущем посте, я оставляю ссылку на игру, оф. группу и меня. Свяжитесь, если хотите попасть в общий чатик игроков ВК.
До следующего поста!

http://wildpolitics.online/
-
https://vk.com/wild_politics
-
https://vk.com/m4troskun

Показать полностью 9

Как я начал писать свою браузерку

Добрый день, начинающие и продолжающие любители игр!


Пожалуй, мне стоит начать с того, что какое-то время назад я уже пытался написать на Пикабу о том, что создаю свою игру. В этот раз я постараюсь учесть свои ошибки, и обстоятельно рассказать о том, на что трачу всё своё свободное время последние два года.


Моя разработка началась под девизом - "Хочешь сделать хорошо - сделай это сам". В то время, в "далёком" 2018 году, я играл в браузерную игру - политический симулятор. Суть игры заключалась в том, что игрокам была дана карта всего мира, поделённая на территории.


Игроки объединяются в партии, которые могут участвовать в выборах государства, в котором они эту партию сделали. Если государство их не устраивает, они могут сделать любой его регион независимым, с целью основать в нём своё государство (ни в коем случае не пропагандирую подобное в жизни). Эти государства конкурируют уже между собой за территории и ресурсы в них.


Всё было хорошо, пока я не пришёл к пониманию, что администрация этой игры настолько отдалилась от игроков, что даже самые благоразумные (по моему мнению) идеи ими не воспринимаются. С этого и началась разработка игры, с концепции "Как здесь - только лучше".


Свой проект я назвал "Wild Politics".


Самая первая страница игры выглядела вот так:

Как я начал писать свою браузерку Игры, Разработка, Веб-разработка, Браузерные игры, Длиннопост

На этот момент мною были выделены следующие недостатки в уже существующей игре:


- Гиперинфляция. Игроки оперировали триллионами денег, в бесконечно большом личном кошельке. Чтобы вы понимали масштаб катастрофы, наш коллектив купил Мексику (примерно десяток территорий) за 80 триллионов, передав эту сумму от одного человека к другому напрямую. Забавно, но подобные суммы в бюджетах государств не застаивались.


- Бюджет государства. Это отдельная тема для разговора. Пополнялся либо налогами, либо пожертвованиями игроков напрямую.

Без-воз-врат-но (голосом Совы из советского мультика про Винни-пуха).

Как я начал писать свою браузерку Игры, Разработка, Веб-разработка, Браузерные игры, Длиннопост

Почему это проблема? Потому что бюджеты государств были замкнутой системой, со своей экономикой. Существовал дуализм цен - для игроков и государств. Два отдельных рынка.


- Рыночек. Сам по себе не проблема, так как действовал по принципу оголтелого капитализма - кто предложил цену лучше, у того и скупают. Проблема в том, что предлагать товар можно на обозрение всего игрового мира сразу, и, если ты можешь себе позволить производить дешевле всех в игре - то весь мир будет покупать у тебя. Остальные были не у дел, и, начинающие "торговцы" и "промышленники" ничего с этим поделать не могли.


- К слову, о производстве. Оно было очень банальным - отдай руду, получи танк. Сразу. Без мам, пап и ОСАГО.


Для решения этих проблем была сформирована следующая концепция будущей игры:


1. "Физический" склад, с регионом расположения. Игрок не может таскать с собой в "кармане" тысячу танков, так что они должны иметь место размещения. А ещё игрок не должен иметь возможность торговать через всю планету - по крайней мере, не оплачивая доставку. Если рядом с покупателем окажется продавец с немногим более дорогим товаром, то разница в доставке может сыграть свою роль в выборе.


Картинка для понимания: доставка оплачивается один раз за покупку, и для небольших партий может играть существенную роль в формировании стоимости.

Как я начал писать свою браузерку Игры, Разработка, Веб-разработка, Браузерные игры, Длиннопост

2. Ограничение объёма "Кошелька", то есть количества денег, которые человек способен носить с собой. Остальные деньги можно хранить в специальном разделе Склада, где на них нет ограничения. Так же, деньги со Склада направляются на нужды производства товаров игроком, а деньги же с Кошелька - на траты "здесь и сейчас": билет на самолёт, покупки товаров у других игроков.


Появился излишек денег - сложи их на Склад. Но помни - если регион, в котором он находится, будет захвачен, ты лишишься части ресурсов, товаров, а все деньги - сгорят:

Как я начал писать свою браузерку Игры, Разработка, Веб-разработка, Браузерные игры, Длиннопост

Это - защита от инфляции. Ничего личного. Но, чтобы дать шанс спасти честно нажитое, Склад можно время от времени переносить. Так что игроки, знакомые с текущей повесткой в мире игры, имеют шанс вовремя уйти из-под удара.


3. Производство было запланировано поэтапным. Сначала игрок перерабатывает добытые руду и нефть в Материалы, с затратой времени и денег, потом, опять же заплатив и подождав - в готовый товар.


Недавно для себя открыл тот факт что топ-игрок, накопивший с начала теста полтора миллиона денег (макисмум за десять минут можно было добыть тысячу), уходя, отдал их дружественному коллективу. Они потратили их на производство без остатка! Так что, производство - тоже хороший способ борьбы с инфляцией.


4. Так же, в планах, включить бюджет государств в общую экономику игры, посредством государственных закупок (привет, ФЗ-44). Если вкратце, то это аукцион наоборот - законодатели выставляют потребность в товаре, и бюджет, который они на него готовы потратить. Кто предложит больше всего товара на этот бюджет (получается, по самой маленькой цене) - тот и победил.


Все эти, а также некоторые другие идеи, я складировал у себя в группе по мере их появления, а тем временем определился с тем, что у меня есть для разработки:


- Высшее образование - программист. Не придётся искать человека, который будет создавать игру про "домики деревяные набигают".


- Сервер. Локально, да простят меня веб-разработчики - Windows. Надеюсь, меня спасёт от праведного гнева то, что для некоторых нужд у меня установлена подсистема Linux с Убунтой :)


- Язык программирования - Python. Так получилось, что единственный фреймворк, который я более-менее узнал за время учёбы, был на Питоне. Да и сам язык мне нравится;


- Фреймворк - Django. Да, именно его я узнал в вузе. Получил свой трояк за сайт на нём, но, вернись я сейчас в вуз, смог бы, думаю, написать семестровые за весь поток, хех :)


С этими знаниями и навыками наперевес, а также идеями и диким желанием сделать "Как там, только лучше" я и приступил к работе над своей игрой.


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

Спасибо за внимание и до следующего поста!

Показать полностью 4

Пост о том, как я свою игру пишу

Добрый воскресный вечер, уважаемые жители Пикабу!

Давно я сюда ничего не писал - не было повода. А сейчас, вот, появился.


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


Так вот, я пишу свою браузерную стратегию. Сеттинг - колонизация планеты. Язык сервера - Python, фреймворк Django. Пишу вдвоем с другом - я выпускаю основные патчи, он - автор минорных релизов (добавляет побочный, но приятный игрокам функционал). С недавних пор к нам "добавились" верстальщик и художник, но они ещё не успели внести свой вклад, так что игра выглядит так, как она вышла из-под моих клешней, клац-клац :)


Будет ли вам интересно почитать пост/серию постов о создании игры? Постараюсь иллюстрировать свой рассказ скринами, рассказывать о трудностях и том, как я их решал/обходил. За кармой не гонюсь, важно узнать, интересен ли вам такой материал.


Спасибо за внимание и хорошего начала рабочей недели!


П.с.: добавил пару скринов в комментарии к посту, как меня просили.

Показать полностью

Мир погрузился в черноту скорби

Целый игровой мир погрузился в черноту вслед за Россией.


После того как стало известно о трагедии, русскоязычные игроки проекта Rival Regions перекрасили свои государства в чёрный цвет.


Постепенно, к ним присоединялись всё новые и новые страны, и уже к девяти вечера по Москве это превратилось в акцию поддержки, охватившую весь мир, в масштабах игры.

Мир погрузился в черноту скорби Поддержка, Rival Regions, Кемерово

Знакомств пост

Знакомств пост Комментарии, Знакомства
Показать полностью 1

Помогите найти девушку

Лига Детективов, я в тебя верю!!

У меня от нее только прямая ссылка на фото осталась (

Сколько не пытался искать, не смог сам(

Апд: снес информацию, спасибо за внимание

Подскажите инвайт-код wot

Знаю, что здесь эту тему не любят, но очень прошу (не для себя, кстати). Желательно в личку ВК, если найдутся желающие поделиться.
Добра тебе, Пикабу :з

Отличная работа, все прочитано!