среда, 11 мая 2022 г.

Планирование и отчетность

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

Создание, написание отчетов, как мне кажется, менее важное занятие. При правильном планировании, отчет почти полностью вытекает из плана, не требуя переделывания или переписывания. И во многих случаях сводится к перетаскиванию таска из столбца To-do в столбец Completed системы управления проектами. Я приветствую подробные отчеты о выполненных заданиях, особенно, когда последние имеют специфическую природу, а их решения потребовали значительные промежутки времени. В то же время, написание отчета не должно выполняться из-под палки и демотивировать разработчика. Также не должно быть написание отчета ради написания отчета, другими словами, должна быть реальная оценка труда разработчика, а не размера написанного им отчета. Приятно оформленный, хорошо написанный отчет может помочь самому разработчику, его написавшему, через несколько недель/месяцев вернувшегося к этому блоку кода/задаче для изменения/модификации или в решении подобной задачи в будущем.

GameDev в одиночку

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

Многообразие контента — есть сложность создание премиальных игр. Время, ресурсы, группа людей. Но проблема здесь в том, что хотя команда объединена одной целью, цели у ее участников могут быть различны и лежать далеко от создания превосходной видеоигры. Мерзкая ситуация случается, когда процессом разработки руководит человек, не понимающий ни в играх, ни в управлении. Или в чем-то одном из этого. Что, тем не менее, картину не исправляет. Разработка становится неуправляемой и уже процессом созидания называться не может. Бесполезные споры, повторяющиеся раз за разом, и, продолжающиеся не для того, чтобы сделать игру лучше. Разработка больших игр — командная работа.

Разработка игр в одиночку? Уже не кажется такой безумной идеей.

понедельник, 18 апреля 2022 г.

 Over the Rainbow - 2009

Юрий "yurembo" Язев

21 сентября 2009-го года, в понедельник в ДК им. Солдатова, что в г. Перми, состоялся потрясающий концерт группы Over the Rainbow. Следовательно, как, уважающий себя и свою любимую музыку металлист, я не мог пропустить это грандиозное событие, поэтому участвовал в этом мероприятии!

Вообще, группа Over the Rainbow была организована 21 июня 2008 года бывшими участниками группы Rainbow, игравшими когда-либо. Однако место соло-гитариста занимает новый участник – сын Ричи Блэкмора – Югдан Блэкмор. Напомню, Ричи организовал группу Rainbow в 1975-ом.

По поводу переименования группы я имею следующие размышления. Во-первых, без Ричи уже не Rainbow, поэтому участники не захотели идти против него, и возможно, против закона – авторских прав Блэкмора старшего, о которых он бы обязательно вспомнил. И вторая мысль имеет противоречие самой себе и заключается в следующем. Младший Блэкмор не хотел повторять лейбл группы своего отца. Это утверждение имеет такое противоречие: как же так, если новая группа играет хиты Rainbow. Отсюда следует, что первое утверждение, скорее всего, правильно.

У микрофонной стойки на месте вокалистом во вновь образованной группе в  настоящее время находится Джо Линн Тёрнер. И о концерте.

Как обычно бывает на подобных концертах, зал был полон. У меня было место в первом ряду амфитеатра, то есть, это получается приблизительно 11-ый ряд в общем числе. При этом билет далеко не самый дешевый. Ну, да ладно, всё равно под конец концерта все вылезли на сцену! И, как обычно на концертах таких групп, зрительский контингент состоял в основном из взрослых людей, то и лучше!

Я точно не помню на сколько задержалось начало концерта, было не до этого! Кроме того, перед началом концерта я купил две мега-футболки с символикой группы. Концерт начался с песни Tarot Woman, которая была на альбоме Rainbow Rising, вышедшем в 1976-ом. После этого было исполнено много великолепных вещей Rainbow, в числе которых: Death Alley Driver, Power, Stone Cold, Can’t Happen Here, Since You’ve Been Gone и даже чудесная Stargazer! Первую половину концерта люди - зрители спокойно сидели на своих местах, и похоже я один прыгал рядом со своим местом, всё это очень не нравилось людям, сидящим сзади меня, на что я ответил: «Да, чёрт возьми, это же рок – концерт!» После чего, ко мне уже никто не приставал! Вторую половину концерта, точнее, последнюю четверть, как я уже говорил, все вылезли на сцену! Ну, это образно говоря, так как охрана никого на сцену не пускала, к тому же около сцены всё было отгорожено, и попасть на нее можно было только по двум подмосткам, находящимся возле нее. И самые отчаянные фанаты, в числе которых был автор этой статьи, обступили их. Собственно, народ окончательно сошёл с ума во время исполнения «Long Live Rock’n’Roll», и все, подпевая «long live rock’n’roll» бросились на сцену! В этом безумстве мне удалось пожать руку Джо Тёрнеру (вокалисту) и получить медиатор от самого Блэкмора, пускай и младшего, но великолепно играющего на гитаре! Теперь, когда у меня есть медиатор, чтобы научиться играть на гитаре осталось то совсем ничего – купить саму гитару! Чтобы получить медиатор, надо было вынести страшную давку, массу народа, толпу людей, и после его получения, остаться в живых под человеческой массой! И мне повезло! Вот, я живой вернулся домой и печатаю этот текст!  В очередной раз, когда Джо подошёл к озверевшей публике, он опустил в нее микрофон, и, парень, стоящий возле меня поймал его и начал орать в микрофон: «Long Live Rock’n’Roll!».  Мне микрофон не достался, Джо поспешил забрать его обратно :) !

После Long Live Rock’n’Roll было исполнено ещё пара песен, но я уже не помню, что это были за песни, все вокруг что-то орали…! Опомнился я тогда, когда вместе со всеми орал: «I wanna touch you all night long, I wanna feel you all night long» - слова из песни «All Night Long».

Всё замечательное когда-нибудь заканчивается, и это была последняя песня этого великолепного концерта! Правильно сказал Ронни Дио в 1978 (когда был вокалистом Rainbow) в своей песне: “Long Live Rock’n’Roll!”



среда, 13 апреля 2022 г.

 Ассемблерная заметка №3

О разрядности процессоров


Процессор считается «N-битным», главным образом, по размеру его шины данных и значительной части его сущностей (внутренней архитектуры): регистров, аккумуляторов, арифметико-логических единиц (ALU), набора инструкций и т. д.

Например: Старый добрый процессор Motorola 6800 (или Intel 8050) - это 8-битный процессор. Он имеет 8-битную шину данных, 8-битную внутреннюю архитектуру и 16-разрядную адресную шину.

суббота, 9 апреля 2022 г.

Ассемблерная заметка №2

Об инструкции CMP


Furthermore, with the CMP instruction, the destination operand doesn't change. Just the flags.

Let me illustrate. Let's say EAX = 00000005 and EBX = 00000005. If we do this arithmetic operation:

CMP EAX, EBX

What's happening, is in effect this:

EAX - EBX ----> 00000005 - 00000005

Since the result would be 0, but we don't change the destination operand in a CMP instruction, the zero flag is set to 1 (since it's true).

So, as we saw, depending on the result of the previous arithmetic operation, flags can be set accordingly:


enter image description here

пятница, 8 апреля 2022 г.

Ассемблерная заметка №1

Об инструкции TEST


Some x86 instructions are designed to leave the content of the operands (registers) as they are and just set/unset specific internal CPU flags like the zero-flag (ZF). You can think at the ZF as a true/false boolean flag that resides inside the CPU.

in this particular case, TEST instruction performs a bitwise logical AND, discards the actual result and sets/unsets the ZF according to the result of the logical and: if the result is zero it sets ZF = 1, otherwise it sets ZF = 0.

Conditional jump instructions like JE are designed to look at the ZF for jumping/notjumping so using TEST and JE together is equivalent to perform a conditional jump based on the value of a specific register:

example:


TEST EAX,EAX
JE some_address


the CPU will jump to "some_address" if and only if ZF = 1, in other words if and only if AND(EAX,EAX) = 0 which in turn it can occur if and only if EAX == 0

the equivalent C code is:


if(eax == 0)
{
    goto some_address
}

понедельник, 17 января 2022 г.

Убийца Eve Online

История о том, чем я занимался на протяжении прошлого года

Юрий «yurembo» Язев

     

В конце 2020-го мне позвонил незнакомый челик, предложил присоединиться к его команде в качестве лида, дабы разрабатывать космическую MMORPG на движке UE4. Я тут же словил фэйс палм, припомнив события 12 лет давности, положившие начало Геному. Узнав, что в команде 5 разработчиков, я снова словил фэйс палм. Разработка к тому времени длилась уже полгода.

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

Свою мотивацию к созданию игры шеф объяснил так: «Всю жизнь играю в компьютерные игры, последние годы в Eve Online, Star Conflict, решил собрать команду, сделать свою игру». Деньги на разработку, по его словам, у него водились, благодаря своему бизнесу. Для меня это в первую очередь значило, что мы будем свободны от наездов различных инвесторов, которые хотят, чтобы игра «была готова завтра». Посему стало весьма интересно. 

Контора расположилась в Перми. Крайне мерзкий город. Замечу, мой родной город нисколько не лучше, но он родной. Поэтому я заключил: «В Пермь я переезжать не буду, только удаленно». ОК. Обсудили некоторые детали, на том и порешили.

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

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

К моему приходу сцена космоса уже имелась, космические кораблики летали. Первые месяцы сетевую игру тестировали на моем компе. Потом, для проведения тестов с игроками, мы арендовали сервер у хостера. Я сбилдил игровой сервер под Linux, поскольку аренда виртуального Linux-сервера выходит дешевле, чем Windows-сервера. Но суть не в этом.

Если программная часть по игре постепенно развивалась, то арт часть остановилась. Над ней, как я говорил выше, работали 1 художник, 1 моделлер и это для MMORPG! Из чего строить сотни часов геймплея?! Думая над этим в течение года, я плакал. О расширении команды в сторону арт творцов шеф не хотел слушать. Он планировал и до сих пор планирует выпустить игру осенью 2022 года. 5 разработчиков, MMORPG – сотни часов геймплея. По его словам: «В космосе ведь ничего нет, несколько звездолетов будет достаточно, остальное – потом добавим».

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

Я понял, нас 7 человек, но у нас нет никакой дисциплины. Как быть с командой в 50, 100, 200 человек? Я в январе завел доску для отметки выполненных и планируемых заданий, за 10 месяцев мне удалось приучить к ней только Макса (клиентского программиста). Каждую неделю, на каждом созвоне я повторял, что мне важно видеть, кто, чем занимается, у кого, какие планы, чтобы, например, даже планировать свои задачи в соответствии с тем, что разрабатывают веб-программисты, но нет. Просил шефа вмешаться в ситуацию, он сказал: "Будет сделано", но ничего сделано не было. Моделлер Паша вообще на созвон не выходил. Какие космолеты были готовы, те и то без конца переделывались. 

Наконец, разработка игры подошла к тому моменту, когда можно добавлять БД. У меня довольно обширный опыт работы с реляционными СУБД не только в игровой индустрии. Сколько со мной спорили вебщики, все равно сделали по-своему. 

А, самое интересное, в октябре у шефа кончились деньги. Он сказал: «Потерпите пару месяцев, потом все будет. Можете пока проектом не заниматься, а где-то пофрилансить, но команду я терять не хочу». На самом деле это означало: «Работайте в 2 раза усерднее сейчас без зарплаты, а потом когда-нибудь пренепременно за хорошие бонусы».

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

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

В итоге, я так понял, что никто не стремится к результату. Даже для Кирилла (который шеф) результат нечто непонятное, что получить гораздо проще, чем на самом деле, еще максимум год, и убийца Eve Online будет готов.

В ноябре 2021-года на очередном созвоне, во время спора о какой-то незначительной детали я высказал шефу: «Ты изначально взял слишком высокую планку, но за прошедший год не хотел ни развиваться, ни меняться; коллеги не стремятся работать на результат, им достаточно их 8 часов 5 дней в неделю. Я не могу работать не на результат. Последние 4 месяца разработка вообще встала. Программная часть намного опережает арт часть. По арту совсем ничего не делается. Ты не знаешь игры, зачем в них лезешь? Тем более в MMORPG? Почитал бы книжки, поразвивался. Взял бы что-нибудь попроще для начала. Я присоединился к твоей команде, предполагая, что у тебя хоть деньги есть, тогда бы с моими знаниями могло бы что-нибудь получиться. Но у тебя не только нету достаточно денег, ты не хотел слушать мои советы».

После этого мы распрощались. Ну, не люблю я ругаться, вынуждают сволочи.

Все-таки я возлагал надежды, что, наконец, в этой студии под моим руководством мы выпустим игру. Но убедившись в том, что в играх коллеги не далеки, развиваться они не хотят (самый важный момент), игровая индустрия для них “по барабану”, в течение года гейм дизайнер не произвел ни строчки видения игры, о чем игра, как она будет развиваться, о каком ее будущем может быть речь?

Сайт игры