Недельный блог разработки игры. Вторая неделя.

Темой второй недели разработки является программирование a.k.a. «потрать весь день на одну проблему, которая скорее всего решается одним кликом или словом.

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

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

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

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

Но вопреки этому я проделал неплохую работу и вскоре ее покажу.

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

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

В результате на данный момент я сделал все проще – перенес все настройки матча и само лобби непосредственно в саму игру, таким образом облегчив себе боль от геморроя, который бы мне предстоял, делай я все это в оффлайне. 

Кстати, в отличие от первой недели, я потихоньку вспоминаю, как делаются мультиплеерные проекты, конечно же попутно пытаясь понять, что и как вообще я должен сделать.
В результате всплывает все та же старая добрая понятная всем программистам штука. Я что-то пишу, оно не работает и теперь это дерьмо надо фиксить. Знаете как это все решается? Методом переборного тыканья. Нажимай все подряд и пиши тупое говно, там где оно вообще не нужно до тех пор, пока из 50 вариантов не останется самый последний логичный и простой. И на это уходит очень много времени. 

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

Чтобы вам было лучше понятно, что я в этот момент делаю можете прочитать эту статью «Если бы доктора были как программисты». Это прям идеально описывает решение абсолютно любого бага.

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

Сделал кстати геймплейную диаграмму.

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

Попутно зацените концепт того, как выглядит интерфейс игрока, когда идет стадия пиков и банов. Это для тех, кто не видел его ранее в группе.

Все еще не придумал название для игры. Конечно у меня пролетело в голове «Shrines: Card Game», но я не особо доволен им. Хоть оно и прекрасно отражает то, чем является игра, и при этом дает небольшой вайб магический (Шрайнс = святыни (в игре по несуществующему лору вы должны сломать святыню противника)), но мне кажется оно немного не звучит.

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

Не думаю, что осталось еще что-то интересное для этой статьи на этой неделе. Вскоре будет небольшой техно-ролик.

Буду благодарен, если вы подпишитесь на группу в вк, чтобы не пропускать штуки.

Писал много текста и делал мало картинок
Даниил Титнер.

Источник: playground.ru

Поделись с друзьми ;)