TGViewer
Channel Public Channel
Ingolf - путь к работе в GameDev

Ingolf - путь к работе в GameDev

@ingolfgames

Рассказываю о своем пути к получению работы в корпоративном геймдеве
Subscribers
71
Photos
25
Videos
25
Links
7

Showing posts older than #39 · Back to latest

Older Posts 13 shown
Post #38 200
Итоги десятого 1️⃣0️⃣ модуля курса по архитектуре

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

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

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

Пишите что думаете, ставьте реакции🍉
  • 🔥 7
  • ⚡ 3
Post #36 241
Итоги восьмого8️⃣ и девятого9️⃣ модуля курса по архитектуре

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

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

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

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

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

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

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

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

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

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

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

Пишите что думаете, прожимайте реакции😜
  • 👍 5
  • 🔥 5
  • ⚡ 3
  • ❤ 2
Post #35 299
Итоги седьмого модуля курса по архитектуре7️⃣

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

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

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

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

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

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

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

Пишите что думаете, прожимайте реакции😌
  • 🔥 5
  • 👍 3
  • ❤‍🔥 2
Post #34 298
Итоги шестого модуля курса по архитектуре6⃣

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

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

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

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

Пишите что думаете.
Ставьте🥴 если вы пон
Ставьте🤔 если вы не пон
  • ⚡ 3
  • 👍 3
  • 🔥 2
  • 🤔 1
Post #33 269
Итоги пятого модуля курса по архитектуре5️⃣

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

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

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

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

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

Пишите что думаете по поводу этих приколов что я тут наковырял, ну и ставьте реакции😋
  • 🔥 3
  • ⚡ 2
Post #27 231
Мои игры часть 2️⃣
1 часть

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

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

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

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

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

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

Следующим постом будет опрос, в котором спрошу у вас, какую игру мне стоит довести до играбельного состояния и выложить куда нибудь📋
  • 🔥 3
Post #26 220
Итоги четвертого модуля курса по архитектуре4️⃣

Как вы уже наверное поняли во 2️⃣ и 3️⃣ модуле показывать было совершенно нечего. Эти модули были про общий подход к архитектуре, ентри поинт, состояния игры, зависимости, инъекции и контейнеры.
В результате этих модулей была написана большая архитектурная база, аж 28 новых скриптов, направленных на обеспечение дальнейшего удобства в развитии и поддержании будущей игры.
Эта архитектура получилась очень прозрачной, у неё явно видно что откуда идёт и куда приходит.
С такой подготовленной базой для игры будет намного легче реализовывать новые механики✨

Четвёртый4️⃣ модуль был уже интереснее, в нем рассказывалось и показывалось как сделать удобный сервис для сохранения и загрузки прогресса игрока💾
Пока что сохраняется позиция игрока и уровень на котором он находится🚩

Из новых фич были реализованы:
1️⃣Простенький загрузочный экран;
2️⃣Появление игрока в определённой точке на уровне;
3️⃣Сохранение прогресса при проходе через триггер (зелёная коробка на видео).

До этого курса я уже умел писать какую никакую архитектуру в ООП стиле, с SOLID подходом, Точкой входа и паттернами, но с ростом проекта все равно все запутывалось и я снова не понимал кто от кого зависит и что от куда идёт, что создавало хаос и мешало реализовывать новые фичи для игр😵‍💫

Уже по итогу этих четырёх модулей я выписал себе кучу полезных вещей и научился многим крутым шуткам, что помогут мне писать более крупные игры, легко ориентироваться в их коде и поддерживать его🧑‍💻

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

Ставь 🤤 если ты ничего не понял из того что тут написано.
Ставь 😏 если тебе было интересно читать что я тут наворотил.
  • ❤ 1
  • 👍 1
  • 🕊 1
Post #18 232
Мои игры часть 1️⃣
Часть 2

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

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

🗡🛡 Самой первой игрой (первое видео) стала игра про нож, который летит в щиты.
Цель игры: Уничтожать щиты, не давая им пройти за границу экрана и собрать как можно больше очков.
Благодаря этой игре я научился делать многие штуки необходимые в каждой игре, такие как меню, пауза, звуки и музыка, сохранения, счёт очков ну и конечно игровые механики.
Скачать и поиграть можно по ссылке.

🐍🍎Второй игрой (второе видео) стала классическая змейка.
Цель игры: Съесть как можно больше яблок и достичь максимального размера змейки.
В этой игре так же есть сохранения и счёт очков.
Из интересных особенностей можно выделить что, скорость змейки увеличивается с количеством съеденных яблок.
Скачать и поиграть можно по ссылке.

🕹✨Третьей игрой (третье видео) стала реализация геймплейной формулы игры Asteroids от Atari. Игрок управляет космическим кораблем, уничтожая астероиды.
Цель игры: Избегая столкновений уничтожить как можно больше астероидов.
Из интересных особенностей можно выделить что, астероиды появляются не бесконечно, а в определённом количестве и пока игрок не уничтожит несколько астероидов, новые не появятся.
Благодаря этой игре я научился делать меню настроек и сохранения в файл на JSON
Скачать и поиграть можно по ссылке.

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

В следующем посте я расскажу про игры что я начал разрабатывать, но по какой-то причине забросил😭
  • ❤‍🔥 4
Post #15 182
Именно для этого я и стал программистом❗️

Именно это я осознал когда при скачивании очередного курса с шервуда я задолбася чистить каждое имя файла и папки от названия [SW. BAND]😤
Но это еще цветочки, если в курсе 40 папок то в каждой помимо того что файл начинается с этих проклятых строк, будут еще и мусорные файлы😡

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

И тогда мне пришла идея создать прогу, под названием "Prefix Cleaner", которая будет делать этот рутинный процесс за меня.

Обзор Prefix Cleaner🧹

Программа позволяет переименовывать файлы и папки а так же удалять их, если в их названии есть указанная подстрока [Видео гайд прилагается]

Работать с программой очень просто:
1. Выбрать папку откуда нужно вычистить шлак или файл🗂
2. Написать строку от которой нужно избавиться или выбрать из списка📝
3. Нажать на кнопку "Переименовать файлы и папки" или "Удалить файлы и папки" 🗑
4. Наслаждаться результатом🙂

Где скачать и как установить❓
Скачать этой ссылке с моего репозитория в GitHub🔽

Для запуска распаковать разив Prefix-cleaner.rar и запустить Prefix-cleaner.exe

Дополнительно:
Если не на чем проверить программу, скачать и распаковать [SW. BAND] Test.rar и запустить SW.BAND.Test.exe

Запуск SW.BAND.Test.exe создаст в месте распаковки папку "[SW. BAND] Test", на которой можно проверить работу программы.

Если запустить еще раз, создастся новая папка и так до бесконечности.

P.S Купил тг премиум, потому что как я ни пытался сократить этот пост, я не смог, да и это бесило всё дико, теперь хоть можно разгуляться на длину поста😠🫵
  • 🔥 4
  • 🏆 3
  • 😁 2
Post #14 178
Подрубил чат к каналу, теперь новые посты можно комментить, жду коментов💎
  • 💅 2
  • 🏆 1
  • 😈 1
Post #12 180
Итоги первого модуля курса по архитектуре1️⃣

Этот и еще бесчисленное количество постов будет о моём прогрессе в прохождении курса: "Архитектура мобильных игр на UNITY для профессионалов" от K-Syndicate.

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

В первом модуле из главных фич, реализовал:
1. Передвижение персонажа с помощью джойстика на экране или клавиатуры🎮⌨️
2. Добавил анимации ходьбы🚶‍♂️ и афк стоялова🧍‍♀️
3. Реализовал слежение камеры за персонажем📹
4. Разметил это всё на прикольном кладбище🪦

Так как курс заточен на чистоту кода, то фичей что можно пощупать и показать пока маловато, но по идее их тоже будет достаточно.

Я надеюсь с этого выйдет некий диаблоид, ну а если нет, то я всё равно переделаю его под него.

На видосе можете оценить что было сделано.
  • ❤‍🔥 3
  • 👍 2
  • 🏆 2
  • 🔥 1
  • 🤩 1
Post #9 179
Это продолжение предыдущего поста.

Так же прикреплю интересные примеры использования этого в Unity.

Ниже перечислено для чего именно нужны sin и cos разработчику игр:

1. Если нужно заставить объект двигаться по окружности, овалу или любой другой форме;
2. Различные плавные колебания, например покачивания, мерцания, движения платформ вверх-вниз или влево-вправо;
3. Для реализации движения, стрельбы, взгляда под определённым углом;
4. Для задания вращения объекту или реализации плавного поворота камеры;
5. Если нужно смоделировать движение волн, полет птицы, и другие сложные формы;
6. Для создания паттернов движения кодом, без использования аниматоров.

Как видите список довольно обширный и в нем много вещей без которых нельзя представить некоторые жанры игр.
  • 👍 5
  • 💯 2
  • 🔥 1
  • 🏆 1
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →