TGViewer
Channel Public Channel
Ingolf - путь в GameDev

Ingolf - путь в GameDev

@ingolfgames

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

Showing posts older than #66 · Back to latest

Older Posts 12 shown
Post #63 220
⛏ Написал мод для Minecraft

Идея написать мод для маенкрафта появилась у меня довольно давно, но я все никак не мог выделить время что бы этим заняться. А тут как раз пока ментор проверял домашку время нашлось😁

Я как раз недавно завайбился видосами про beta minecraft и пошёл играть в beta 1.7.3 c культовым модом Aether. Я еще очень удивился что он вышел аж в далёком 2011. Немного поиграв, мне стало интересно как вообще тогда писали моды на старых версиях, еще до выхода Forge😎

Оказывается в те далёкие времена моды писались в паре с MCP (Minecraft Coder Pack) и (ML) ModLoader.
MCP - позволял выполнять декомпиляцию и деобфускацию кода сервера и клиента игры, а также обратные им действия.
ML - предоставлял базовые инструменты для добавления и расширения функционала игры без необходимости непосредственного редактирования исходников игры.

Собрав все это чудо под java 1.6 и запустив в IntelliJ IDEA, начал писать мод под версию 2012 года 1.2.5.

Реализовал следующие фичи:
1️⃣ Медная руда, слиток и блок.
2️⃣ Набор медных инструментов: меч, кирка, топор, лопата, мотыга.
3️⃣ Комплект медной брони.
4️⃣ Крафт брони, инструментов и медного блока.
5️⃣ Генерация руды в мире и её плавка в слитки.
6️⃣ Внутриигровые достижения о создании каждого предмета из мода.

Это был интересный опыт для меня, может быть я даже еще что ни будь напишу, уже покрупее🤓
  • 🔥 7
  • 👍 1
Post #62 258
👀Снова пропал на две недели, где я был и что делал?

*Подпищеки группы в вк с рисунками, которые не видят постов по месяцу и более такие: умом умом 🤔☕️*

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

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

Суть тестового задания создать небольшой прототип где:
1️⃣Игрок управляет персонажем от первого лица с возможностью стрелять во врагов.
2️⃣Враги имеют показатель здоровья и базовый искусственный интеллект.
3️⃣Игрок имеет 3 улучшаемые характеристики - здоровье, скорость, урон.
4️⃣ За каждого убитого врага игрок получает 1 очко улучшения за которые он
может улучшить характеристики.
5️⃣ Улучшения сказываются на игроке (быстрее бегает,
больше здоровья, урона).

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

В итоге ментор посмотрел тестовое и дал правки которые мне еще нужно будет внести🎨

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

Ну и по традиции пишите и жмите на пони😏
  • 🦄 7
  • 🔥 4
  • 🕊 2
  • 🫡 1
Post #61 231
Механика контроллера персонажа от первого лица🚶‍♀️

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

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

😎Ведь как говорил Илья Яковлев:
Геймплей это часть отдельной игры которую тоже надо прорабатывать и уметь делать. Если ты умеешь делать отдельные геймплейные механики, это еще не значит что ты сможешь довести целую игру до конца. Но в то же время ты не сможешь сделать игру не умея делать отдельные геймплейные механики.


🤓 Реализацию выполнил используя компонентный подход.
Вместо единого PlayerController раздел логику на три компонента PlayerCameraLook, PlayerJump, PlayerMovement, каждый из которых может использоваться независимо друг от друга, что позволяет на лету отключать какой-то функционал или легко расширять существующий.

❗️Из интересного:
*️⃣Когда я показал механику другу, он заметил интересный баг при котором персонаж мгновенного падал с платформы любой высоты, а при прыжке падание было плавным.
*️⃣Оказалось баг заключался в том что гравитация постепенно накапливалась когда персонаж стоял на земле и при сходе с платформы из-за огромной накопленной прижимной силы он мгновенно оказывался на земле. А при прыжке накопленная гравитация сбрасывалась и всё было нормально.
  • 🔥 4
  • 😱 1
Post #60 226
🤖Моя первая игра на Godot

Я давно хотел сделать клон Knife Hit, а тут как раз вспомнил про курс Фронтенд Паштета🗡

Что успел реализовать:
1️⃣ Механика стрельбы ножами;
2️⃣ Вращающаяся мишень;
3️⃣ Втыкание ножей в мишень;
4️⃣ Яблоки.

C движком я познакомился год назад, когда мой друг захотел сделать игру мечты. Я посоветовал ему Godot, как лёгкий в изучении движок с полноценным программированием. С тех пор я периодически помогаю ему как с кодом так и с движком. Так что опыт у меня имеется, но игру на Godot я так до сих пор и не сделал😣

Я посчитал это отличной возможностью не только поближе ознакомится с движком, но закрыть сразу несколько целей:
1️⃣ Сделать игру на новом для себя движке, которую к тому же давно хотел повторить
2️⃣ Как закончу, перенести на Unity и расширить функционал
3️⃣ Выложить на Яндекс игры
4️⃣ Применить знания архитектуры на законченном проекте и добавить в портфолио

Как обычно, ставьте реакции, пишите что думаете😎
  • 🔥 1
Post #59 195
Этот пост будет про Архитектуру
⌛️
Время чтения 2 минуты

После завершения проекта решил применить полученные знания по архитектуре на практике. Взял видосик про 3 частых ошибки в архитектуре и не просто повторил, а доработал и зарефакторил с учётом полученных знаний.

Что было доработано:
1️⃣ Появился класс GameRunner, который позволяет запускать игру с любой сцены.
Это решает проблему, когда игра работала только со строго заданной сцены.

2️⃣ Добавлена специальная Initial сцена, которая запускается самой первой.
Она отвечает только за загрузку архитектуры (GameRunner, Bootstrap), а уже потом грузится основная сцена.

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

4️⃣ Логика инициализации геймплея переехала из Bootstrap в отдельный класс Game.
Теперь Bootstrap это загрузчик систем, а Game это уже сама игровая логика. Так архитектура становится чище и модульнее.

Список советов из видео:
1️⃣Контроль над игрой через Bootstrap 🎮
Раньше Awake у игрока и врагов вызывался в случайном порядке. Враги могли появиться раньше и не найдя игрока кинуть NullRef.
Теперь есть главный класс Bootstrap - единая точка входа. Он гарантирует порядок инициализации, сначала создается игрок, потом враги. Это даёт контроль над инициализацией.

2️⃣ Применение асинхронности с пользой⌛
Раньше корутины использовались в основном для создания задержки.
Теперь корутины используется для создания экрана загрузки. Показываем его, далее асинхронно грузим сцену/ресурсы, скрываем когда всё готово.

3️⃣Избавляемся от лишнего, выносим конфиги 🧹
Раньше спавнеры были MonoBehaviour, хотя им не нужны были его методы, а настройки были захардкожены в скриптах.
Теперь спавнеры это обычные C# классы. Логика была отделена от движка.
Настройки (префабы, координаты) были вынесены в конфиги в виде ScriptableObject.
  • ❤ 1
  • 🤔 1
  • 🤯 1
Post #55 160
Жесть, я две недели не постил в тг😩
Это не значит что я ничего не делал всё это время, за это время я успел многое, и мне есть что показать. Так что будет несколько постов.

Если вы читали закреп канала, то знаете что я планировал показывать свой путь к получению работы в gamedev, собственно об этом ниже🤓

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

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

Пишите что думаете, прожимайте реакции🕺
  • 🔥 4
  • 🏆 3
  • 🎉 2
  • ❤ 1
  • 🤔 1
Post #49 255
⚡️Мои игры наконец на itch.io

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

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

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

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

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

P.S. ич к сожалению заблокировали в России. Теперь то бы зайти на него нужно врубать три буквы😣
  • ⚡ 3
  • 🏆 3
  • 💯 2
Post #47 215
Итоги шестнадцатого финального1️⃣6️⃣ модуля курса по архитектуре

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

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

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

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

Ну и по традиции, жмите на понь😏 и пишите комы
  • 🏆 5
  • ⚡ 1
  • 👍 1
  • 🔥 1
Post #46 163
Сегодня будет финальный пост по архитектуре, ждите😎
  • 🏆 2
Post #45 210
Итоги четырнадцатого1️⃣4️⃣ модуля курса по архитектуре

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

Из фичей было реализовано:
1️⃣Создан сервис показа рекламы
2️⃣ Добавлено начисление награды за просмотр рекламы в магазине
  • 🔥 5
Post #42 189
Пока полноценные посты готовятся решил разбавить канал постами с интересной инфой, которую я собираю время от времени💻

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

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

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

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

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

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

1️⃣ ИИ можно использовать для поиска источника проблемы в коде, если сами мы уже искали, но не смогли найти.
*️⃣Нужно написать такой промт: "Предложи мне 10 причин почему 'проблема нейм' происходит".
*️⃣Где то 3 причины будут те которые ты уже пробовал. 3 будут совсем абсурдные и очевидные. 1 сомнительная. Остальные будут те о которых мы реально не догадывались
  • 🤔 4
  • 👍 3
  • 👎 1
Post #39 170
Итоги тринадцатого1️⃣3️⃣ модуля курса по архитектуре

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

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

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

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

Пишите как вам UI UX окна магазина, ставьте реакции😎
  • 🔥 5
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 →