Ingolf - путь в GameDev
74 subscribers
24 photos
25 videos
7 links
Рассказываю о своём прогрессе в создании игр и о своем пути к получению работы в геймдеве
Download Telegram
Мои игры часть 2️⃣
1 часть

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

💀🧙‍♀️Начну с игры на первом видео. Игру я назвал 2D-Knight-Adventure, а по итогу получился не рыцарь, а ведьмочка🧙‍♀️, которая под жёсткий музон разносит скелетов.
Это игра планировалась как маленький 2D rpg-квест. Из интересного: в этой игре я научился делать искусственный интеллект мобов и плотно поработал с паттерном "машина состояний", также попрактиковался собирать локации из тайлов и научился делать хитбоксы оружия для атак.
Одна из причин, по которым этот проект был заброшен - код, который было тяжело поддерживать.
Прежде чем добавлять сюда новую механику, весь этот код нужно тщательно отрефакторить, а если этого не сделать, то после пары новых механик начнут появляться баги и костыли, что приведёт к сложности дальнейшей разработки😵‍💫

🎁👆Игра на втором видео называется Gingerbread-Clicker - это idle кликер, по типу куки кликера.
Его я начал делать, чтобы понять основы того как делать кликеры.
Как только я закончил все то, что есть на видео, весь код был переписан с нуля, и игра стала платформой для практики и тестирования паттерна "MVP"
Планировалось добавить в игру звуки, больше анимаций, сохранения, а также углубить механику. Тем самым довести игру до минимального игрального состояния. Причиной, по которой этот проект был заброшен, стало то, что я начал делать игру со следующего видео.

🏰👻Игра на третьем видео называется idle-first-prototype - это такой же idle кликер как и прошлая ира, но его я писал как прототип игры, которую мы разрабатывали в команде из шести человек. Нас было три программиста, и каждый из нас разрабатывал свой idle прототип, это была тренировка перед созданием общего idle проекта.
Спойлер: мы так и не закончили разрабатывать эти прототипы, забросили идею разработки idle игры. Я в итоге от них ушел так как у меня на тот момент совсем не было времени что бы работать в команде. Сейчас они собрали новых людей и вроде как работают над вампайр-лайком.
По механикам это почти так же игра что и прошлая, по мимо прокачки силы клика, тут добавлена механика апгрейдив, что пассивно генерируют валюту. Ну а самое интересное что игру я стилизовал в стиле Dark Souls III с помощью её же ассетов. Мне это прям дико нравится.

🪦☠️ Игра на последнем, четвертом видео называется Sinful-legacy. Это должен был быть роуглайк-платформер. Он должен был быть коротенький и демонстрационный, потому что я хотел переписать его на несколько игровых движков. Мне до сих пор хочется попробовать другие движки, помимо Unity.
Там должна была быть одна локация и босс в конце неё. После победы над ним, с него выпадал бы ключ, для перехода на новую локацию и после перехода на неё игра бы закончилась.
Проект был заброшен по двум причинам, я не смог разобраться как сделать нормальный параллакс фон. И не смог сделать так чтобы персонаж нормально поднимался и спускался по наклонным поверхностям. В целом этот проект прожил меньше всех, меньше недели где-то

На всех этих проектах, несмотря на то, что я их забросил, я научился много чему и много какие навыки закрепил🤓

Следующим постом будет опрос, в котором спрошу у вас, какую игру мне стоит довести до играбельного состояния и выложить куда нибудь📋
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥311
Какую игру из прошлого поста стоит довести до играбельного состояния и выложить?
Anonymous Poll
50%
💀🧙‍♀️ 2D-Knight-Adventure
10%
🎁👆Gingerbread-Clicker
25%
🏰👻idle-first-prototype
15%
🪦☠️Sinful-legacy
Media is too big
VIEW IN TELEGRAM
Итоги пятого модуля курса по архитектуре5️⃣

Этот модуль был про добавление врагов в игру и о компонентном подходе к архитектуре.

В этом модуле я поработал с деревьями смешиваний(Blend Tre). Более глубоко изучил аниматор и настроил анимации для двух противников - лича💀 и лучника🏹

Так же поработал с Навигационной сеткой (NavMesh). Противники могут перемещаться по всей локации огибая препятствия и находить путь к игроку🗺

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

Из новых фич, что были реализованы:
1️⃣Реализована зона агра у противников;
1️⃣Реализован противник преследующий игрока;
2️⃣ Реализован противник стоящий неподвижно и поворачивающийся в сторону игрока.

Пишите что думаете по поводу этих приколов что я тут наковырял, ну и ставьте реакции😋
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3⚡21
This media is not supported in your browser
VIEW IN TELEGRAM
Итоги шестого модуля курса по архитектуре6⃣

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

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

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

Визуальный дебаг отображается в виде красной снежинки после атаки противника

Пишите что думаете.
Ставьте🥴 если вы пон
Ставьте🤔 если вы не пон
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡3👍3🔥2🤔11
Media is too big
VIEW IN TELEGRAM
Итоги седьмого модуля курса по архитектуре7️⃣

Этот модуль был про визуальные эффекты и боевую систему, а именно про атаку игрока и противника. Как у игрока так и у противника появилась возможность наносить урон друг другу и умирать когда здоровье заканчивается🤕⚰️

Так же теперь здоровье противника и игрока отображается на экране💊

В этом модуле я не узнал для себя что-то новое, но плотнее поработал с компонентным подходом. Были реализованы компоненты атаки, смерти и здоровья🎮

Система сохранений теперь содержит базовые характеристики атаки и здоровья игрока. Умеет их сохранять и загружать💾

Так же был доработан интерфейс. Была добавлена кнопка атаки. У игрока и противников появились шкалы здоровья. У игрока сфера здоровья, на манер Diablo, а у противников обычные полоски над головой.

Были добавлены визуальные эффекты появляющиеся при смерти игрока и противника

Лучник пока что никак не изменился, над ним еще ведётся работа⌛
Игра потихоньку начинает становиться играбельной🎮

Пишите что думаете, прожимайте реакции😌
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5👍33❤‍🔥22
Media is too big
VIEW IN TELEGRAM
Итоги восьмого8️⃣ и девятого9️⃣ модуля курса по архитектуре

Восьмой модуль был про создание спавнеров для противников и их визуальное отображение на экране. А так же про создание полезных инструментов разработки в Editor🔧

Девятый модуль был про конфиги игры, про то какой способ их хранить лучше и как его использовать. Так был добавлен новый противник👾

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

Визуальное отображение спавнера в редакторе было создано через расширение редактора Unity
(красные сферы на видео🔴)

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

Для хранения статических данных на выбор есть JSON и ScriptableObject от Unity.
В моём случае был выбран последний.

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

Благодаря этому добавление нового противника стало относительно легче. Нужно лишь добавить новый конфиг с данными, добавить модельку в prefab variant противника и настроить аниматор.
Таким образом был добавлен голем, по поведению такой же как лич, но с более сильными статами👾

Лучник был временно убран со сцены, потому что ему нужно дописывать логику поведения, а я хотел уже сделать пост⌛

Немного пересобрал сцену, добавил спавнеров и точек сохранения🤓

P.S. Постов не было так долго потому что я уже вторую неделю в Питере и у меня маловато времени что бы плотно сесть покодить
P.S.S. Текста вышло полотно конечно, я думал контента меньше будет, поэтому объединил два модуля.

Пишите что думаете, прожимайте реакции😜
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥5⚡3❤2
Media is too big
VIEW IN TELEGRAM
Итоги десятого 1️⃣0️⃣ модуля курса по архитектуре

Этот модуль был про лут выпадающий из противников📦

Были реализованные следующие фичи:
1️⃣ Отображение значений здоровья у противника и игрока
2️⃣ Механика выпадения и подбора лута  с противников
3️⃣ Отображение количества собранного лута на экране
4️⃣ Сохранение и загрузка собранного лута
5️⃣ Сохранение и загрузка несобранного лута на сцене

Из интересного:
*️⃣ Визуально выпадающий лут сделал похожим на лут из диабло, получилось довольно прикольно и похоже.
*️⃣ Есть идея сделать что бы из противников визуально падала не одна лутовина, а несколько штук которые так же давали бы случайное кол-во лута🤔
*️⃣Реализация сохранения лута на сцене была довольно интересной задачкой. Больше всего я провозился с исправлением бага заключавшегося в том, что id у всех лутовин был одинаков при сохранении, хотя на сцене у префабов он был разный🤬

Пишите что думаете, ставьте реакции🍉
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7⚡33
Итоги тринадцатого1️⃣3️⃣ модуля курса по архитектуре

Этот и предыдущий модуль был про UI, а именно про окно магазина🤑

Позапрошлый одиннадцатый 1️⃣1️⃣ модуль был про переработку спавнеров. Теперь спавнеры создаются на сцене из размещенных на ней SpawnPointов. Благодаря отделению логики спавнера от его данных можно чётко контролировать порядок его инициализации на сцене (рисунок 3)🤔

Были реализованные следующие фичи:
1️⃣Сверстано адаптивное окно магазина (рисунок 2)
2️⃣Окно умеет открываться и закрываться🤔
3️⃣ Обновление  кол-ва валюты в магазине при обновлении валюты у игрока

Из интересного:
*️⃣ Был создан сервис окон позволяющий удобно открывать окна по их windowId 😊
*️⃣Была создана отдельная фабрика окон, помимо игровой фабрики, для удобного создания окон😮
*️⃣Благодаря последним двум приколам добавление нового окна очень быстрый, а главное контролируемый по инициализации процесс😎

Пишите как вам UI UX окна магазина, ставьте реакции😎
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥543
Пока полноценные посты готовятся решил разбавить канал постами с интересной инфой, которую я собираю время от времени💻

Этот пост будет про то, как правильно использовать ИИ для ускорения обучения, но не быть от него зависимым🫠

‼️ ИИ это в первую очередь наш ментор и помощник. Но мы не должны делать свою работу его руками.

Далее будут рассмотрены два случая использования ИИ 🤔

✏️ Первый случай - написание кода

1️⃣ Никогда не копируем ответ от ИИ себе в код, вообще никогда, нужно забыть об этой возможности.
2️⃣ Если мы застряли в решении проблемы и не знаем куда двигаться, можно попросить ответа у ИИ? когда он выдаст ответ появятся два варианта действий:
*️⃣ Если мы понимаем что за кусок кода он написал, то мы закрываем ИИ, идём и пишем этот код руками самостоятельно, осознанно.
*️⃣ Если прочитав ответ ничего непонятно, мы спрашиваем у ИИ что это за код, разбираем каждую непонятную строчку, просим объяснить как это работает, спрашиваем, а почему это так, а зачем это так. После того как разобрались в работе кода, опять же закрываем ИИ и идём писать код руками самостоятельно.
3️⃣ Мы не должны пытаться копировать и вставлять код, потому что это не наш код. Мы не сможем его поддерживать, он не оказал на нас никакого влияния как на программиста, мы с этого кода ничему не научились.
4️⃣ Только код который мы написали сами, пусть и с подсказками от ИИ, отложится у нас в голове и чему-то научит.
5️⃣Последний и самый важный пункт. Мы должны не просто в тупую переписать код, мы должны осмыслено понимать что делает каждая строчка. Тогда это будет даже не переписывание, а самостоятельное написание. ИИ просто помог нам осмыслить и понять информацию.

✏️ Второй случай - поиск ошибок

1️⃣ ИИ можно использовать для поиска источника проблемы в коде, если сами мы уже искали, но не смогли найти.
*️⃣Нужно написать такой промт: "Предложи мне 10 причин почему 'проблема нейм' происходит".
*️⃣Где то 3 причины будут те которые ты уже пробовал. 3 будут совсем абсурдные и очевидные. 1 сомнительная. Остальные будут те о которых мы реально не догадывались
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔4👍32👎1
This media is not supported in your browser
VIEW IN TELEGRAM
Итоги четырнадцатого1️⃣4️⃣ модуля курса по архитектуре

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

Из фичей было реализовано:
1️⃣Создан сервис показа рекламы
2️⃣ Добавлено начисление награды за просмотр рекламы в магазине
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥511
Сегодня будет финальный пост по архитектуре, ждите😎
Please open Telegram to view this post
VIEW IN TELEGRAM
5🏆22
Media is too big
VIEW IN TELEGRAM
Итоги шестнадцатого финального1️⃣6️⃣ модуля курса по архитектуре

Этот модуль был про добавление внутриигровых покупок за реальную валюту🪙

Из фичей было реализовано:
1️⃣Создан сервис внутриигровых покупок🛒
2️⃣ Добавлено отображение товаров для покупки в магазине и начисление награды за покупку💰
3️⃣ Отображение количества награды за просмотр рекламы в магазине🪙

Из интересного:
*️⃣Прямой интеграции с GooglePlay не было, потому что нужно регать dev аккаунт, заводить тестовый билд и так далее. Всё это осложнено тем, что мы в России👁
*️⃣ Слава Юнитистам, их сервис покупок позволяет эмулировать покупку без добавления её в стор, поэтому вы и не видите окна оплаты💛
*️⃣Получившийся сервис покупок не фейковый, что бы он заработал полноценно ему нужно лишь дать реальную цену товара из стора😎

Итоги:
1️⃣На этом курс завершается, но немного постов еще будет в рамках создания или допила тех вещей которые я хотел сделать вне курса🤔
2️⃣Курс мне очень понравился, я многому научился и много чего узнал. Наконец понял из чего состоит архитектура в которой добавление новой фичи не вызывает геморроя💃
3️⃣Мне еще предстоит закрепить изученное на других проектах.
4️⃣Получившаяся техно демка пойдёт в портфолио, ждите поста об моих играх на itchio

Ну и по традиции, жмите на понь😏 и пишите комы
Please open Telegram to view this post
VIEW IN TELEGRAM
🏆532⚡1👍1🔥1
⚡️Мои игры наконец на itch.io

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

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

Ну а если совсем расщедритесь, то составе комментарий на страничке с игрой😌

Собственно ссылки:
*️⃣Knight Adventure - Prototype
*️⃣Asteroids
*️⃣Knife Game
*️⃣Snake Game

Теперь я смогу удобно шарить людям свои игры, а не скидывать им ссылки на билды из гита😁

P.S. ич к сожалению заблокировали в России. Теперь то бы зайти на него нужно врубать три буквы😣
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡3🏆3💯2