Добавил систему порчи еды и отравления в свою игру
Привет, Pikabu! Продолжаю пилить свою игру в жанре сурвайвал. Решил, что бесконечно таскать в кармане еду это читерство, поэтому добавил систему свежести продуктов.
Что нового появилось:
Срок годности: У скоропортящейся еды теперь есть таймер. Если не успел съесть вовремя еда превращается в тухлятину прямо в инвентаре.
Холодильник: Продлевает срок годности продуктов в два раза. Поэтому еду все еще придется контролировать, но холодильник позволяет хранить скоропортящиеся продукты значительно дольше.
Отравление и рвота: Если от безысходности (или невнимательности) съесть испорченный продукт, персонаж ловит дебафы, теряет здоровье/жажду и наглядно опустошает желудок (с соответствующей анимацией и звуком).
Как вам реализация? Не слишком ли душит такая механика в сурвайвалах, или хардкорный менеджмент ресурсов это база?
Boosty: https://boosty.to/benzejigames
Last Convoy. Результат 3 месяцев активной работы. Готов к раннему доступу
На игру у меня ушло 3 месяца активной работы. Сейчас она на уровне полноценного раннего доступа, т.е. в ней есть все механики и контент которые будут в полноценной игре, остался по сути баланс и полировка. Это тоже большая работа, но в игру можно уже сейчас полноценно играть, пройти её и получать удовольствие.
Все механики рабочие, есть сюжетная кампания, 4 вражеские фракции, метапетля с прокачкой базы и строительством форпостов. 30 типов врагов, которые отличаются не только иконками, но и механиками. Враги атакуют врукопашную, стреляют, плюются, поджигают местность, взрываются, цепляются за вагоны, гарпунят состав, вырубают его эми пушками, баффают друг друга, бегают, летают и подкапываются и т.п. Можно захватить всю карту. Чтобы не было скучно между заездами добавлена сюжетная кампания, которая раскрывается через лор. Есть сохранения, озвучка и локализация на 6 языках.
Глобальная карта на которой мы выбираем какие гексы захватываем и где строим форпосты из-за избытка ресурсов. Чем ближе подбираетесь к точке вторжения, тем тяжелее заезды.
Рейдеры тоже любят ездить на байках и багги, а также гарпунить нас и закидывать коктейлями молотова.
Инопланетный улей любит летать и прыгать на наш автопоезд, а также плевать и создавать кислотные лужи
Я ушёл от прямой прокачки и добавил вариативности. Теперь при прокачке гаража, открываются слоты для локомотивов. В итоге игрок сам решает на чём ему ездить в следующем забеге. Какое оружие и доп вагоны ему доступны.
Для строительства и прокачки зданий кроме ресурсов нужны и специалисты, которых мы должны спасать. Они редкость, но если слушать эфир и выполнять квесты, то можно их найти.
На глобальной карте есть гексы с иконками специалистов. Если пройти эти забеги, то можно спасти персонажей.
Мы слышим только сообщения в ближайших клетках, но если построить радиовышку, то радиус увеличивается и доступно больше квестов.
Если у вас есть стимдек, то очень советую, т.к. затачивал игру под него.
Открыт плейтест и демо версия. Но это по сути одно и тоже.
Осталось самое сложное - маркетинг. Моя основная надежда на осенний стимфест.
А сейчас очень интересуют отзывы живых игроков. Что нравится, что нет. Пожелания и замечания. Ну и конечно вишлисты.
Инкапсуляция || C#
Сегодня поговорим об одной из известных фишек ООП.
Что такое инкапсуляция и зачем она нужна?
Инкапсуляция - это правило, при котором присваивание и изменение данных ограничено, что защищает их от случайных или неосознанных изменений. Её легко использовать в коде и она не занимает много строчек кода.
Проблема, которую мы сегодня разберём


Класс MyClass и его использование
У нас есть класс MyClass с полем Value типа int. С этим полем мы можем сделать всё, что захотим: присваивать как угодно, когда угодно и менять на что угодно.
Давайте представим, что этот класс может хранит только отрицательное значение Value.
Я вам сегодня покажу два решения данной проблемы и ещё один кейс с более продвинутым решением.
Способ 1: Через свойства
Данный подход делает код более красивым, но имеет свои оговорочки, потом расскажу.
Какие изменения я внёс:
Теперь Value не поле, а свойство, возвращающее приватное поле value. Здесь инкапсуляцией выступает сеттер (set {...}):
В сеттере мы обрабатываем поступающее значение: если оно меньше нуля, то мы приватному полю value оно присваивается, а иначе вызывается ошибка.
Использовать свойства на самом деле хороший минималистичный способ инкапсуляции, но его главный минус -- это отсутствие параметров: можно только присвоить новое значение, а задать другие параметры, например множитель, нельзя.
Способ 2: Через методы
Данный подход является самым часто-используемым и универсальным в ООП.


Изменённый класс MyClass
Какие изменения я внёс:
Я удалил свойство Value, заменив его методом. Теперь я могу добавить любой параметр в метод, например, множитель, но в данном кейсе это не нуждается. Использование класса я тоже изменил.
Теперь разберём второй кейс:
Допустим у нас есть тот же класс MyClass и у него есть экземпляр класса MyClassData. Этот класс хранит в себе переменные Name (имя) и Age (возраст).
Но у нас есть проблема: мы можем изменять всё, что захотим и когда захотим. Тогда нам на помощь приходит инкапсуляция:
Какие изменения я внёс:
Сначала я сделал MyClassData структурой, ведь он просто хранит данные, а не проводит над ними операции. В класса MyClass я сделал экземпляр приватным, а его данные передаются через свойства только для чтения. На самом деле можно и сразу структуру передавать, или если данных слишком много, а передавать надо только некоторые, можно создать новую структуру, заполнять нужными данными и так передавать.
Инкапсуляция при работе с массивами и листами
Массивы и листы являются ссылочными типами, сейчас я вам докажу:


Класс с массивом и его использование
Новый кейс: у нас есть класс MyClass с массивом myArray, защищённым от присваивания, но вот в чём проблема: мы как бы не можем присвоить, но мы можем изменить, ведь это ссылочный тип. А если дело доходит до листов (List<T>), то вообще можно всё менять методами.
Сейчас я вам покажу, как исправить такую ситуацию:
Теперь наше свойство превращается в приватное поле, а получать доступ дял чтения мы будем через метод GetElement(int index), где index обозначает... ну вы поняли.
А давайте теперь добавим возможность "инвертировать значения":
Я добавил метод Reverse, который по индексу будет переворачивать нужное значение. На этом примере хорошо прослеживается инкапсуляция.
Что когда использовать?
Используй свойства там, где нуждается простое присваивание переменной value-типа, присваивание некоторых полей экземпляров ссылочного типа. Просто присвоить что-то.
Используй методы там, где определённую переменную можно изменять разными способами (например, изменение на 1 и вычитание на 2). Также методы можно использовать, чтобы изменять переменную с помощью нескольких аргументов, особенно при работе с массивами и листами.
Я учил Unity и 3D два года… а потом пришел ИИ. Моя история
Я решил записать видео и поделиться своей честной историей пути в геймдев с нуля в 28 лет. Рассказываю, как закрыл прошлый бизнес, с головой ушел в 3D-моделирование и программирование, создал и выпустил свою первую игру, заработал на ней первые копейки и... столкнулся с эпохой ИИ.
Заменит ли ИИ программистов, 3D-моделлеров и геймдизайнеров в 2026 году?
Почему без крепкой базы C# и Blender ты просто будешь тыкаться в вслепую?
Надеюсь это видео вернет мотивацию учиться и делать игры!
Как начать делать игры? Пошаговый план для каждого
Я не буду продавать вам «успешный успех», а дам вам пошаговый и абсолютно рабочий гид: как именно вам, с вашими текущими навыками, войти в геймдев, сделать свою первую игру или найти классную команду.
Мы разобьем этот путь на два простых шага:
Сначала мы поймем, в чем ваша суперсила - даже если вы думаете, что её нет. Потом подберем под неё идеальный игровой движок, который сбережет ваши нервы.
К каждому шагу я дам рекомендации с ютуб каналами и другими источниками супер ценной информации которые помогут вам как когда-то помогли мне!
Всем привет! Меня зовут Егор, я инди разработчик и 3d художник. Последние пару лет я изучал геймдев со всех сторон и сейчас работаю в небольшой инди студи.
Итак, погнали!
Шаг первый - все мы что-то умеем у всех есть склонность к чему-то.
Нам надо определиться со своими базовыми скилами. Не нужно пытаться выучить всё и сразу. Поймите, что вам ближе в данный момент. Тут есть несколько сценариев:
Первый - творческий:
Вы умеете и любите рисовать. Если у вас за плечами художка или вы просто любите рисовать скетчи на планшете - поздравляю, вы уже на 30% в геймдеве! Начните развиваться именно в этом русле. Изучайте создание двухмерных спрайтов, персонажей, концепт-арта или игрового интерфейса. В этом случае ваша кисть - это ваш главный инструмент!
Если вас тянет к объему и 3D-графике. Возможно вы хорошо чертили в школе, хорошо ориентируетесь в 3d пространстве. Тогда ваш путь лежит через Blender.
Попробуйте себя в создании простых пропсов: бочек, сундуков, оружия. Потом начинайте делать чуть более сложные модели, персонажей, техники. Затем постепенно переходите к текстурированию (сначала самому простому, атласному).
Пока не зацикливайтесь сильно на анимациях, риге, uv развёртках .
3D-моделлеры невероятно востребованы в любой инди-команде, ведь красивый визуал - это то, что продает игру в первую очередь.



Так как я сам начинал с создания 3D моделей ниже список каналов благодаря которым я узнал очень много полезной информации!
Сценарий второй - технический: вы уже программист или у вас математический склад ума.
Если вы умеете писать код на любом из существующих языков, но никогда не делали игры - вам будет проще всего. Вам нужно будет адаптировать свои знания под нужный язык в зависимости от выбранного движка. Вам нужно будет освоить синтаксис языка соответствующий выбранному движку например, C# для Unity или C++ для Unreal Engine. Если у вас нет навыков программирования в UE есть встроенная система блупринтов - это визуальное программирование, то есть логику игры можно будет реализовывать с помощью таких под (узлов). В Unity тоже есть специальные платины для создания игр с помощью визуального программирования.
Я проходил курс у Ильи Яковлева по Unity и мои рекомендации будут немного предвзяты и касаться именно Unity и C#.
Сценарий третий, самый частый: вы не умеете кодить, не умеете рисовать, но у вас куча идей.
Данный вариант на первый взгляд покажется самым простым и буквально каждый кто наиграл сотни часов в разные игры подумает, «Я же видел столько разных игра, без проблем смогу придумать свою» На самом деле людей читающими себя геймдизайнерами очень много, а настоящих мало.
Тут нужно снять розовые очки. Если вы придете в любое геймдев-сообщество со словами: «У меня есть гениальная идея игры, мне нужны программисты и 3D-моделлеры на энтузиазме» — вас просто проигнорируют.
Чаще всего считается что идеи в геймдеве не стоят ничего в отличии от их реализация.
Геймдизайнер - это не просто сказочник. Это человек, который упаковывает идею в строгий документ ГДД (Game Design Document), где расписана каждая кнопка, каждый параметр. Это человек, который собирает прототип уровня из обычных серых кубов, чтобы проверить, весело ли вообще прыгать и стрелять. Если выбирать путь геймдизайнер нужно учится собирать прототипы и считать баланс в Google-таблицах, а не просто рассуждать о будущем шедевре.
Навыки которыми должен владеть геймдизайнер включают в себя очень широкий спектр разных знаний, но чтобы вообще понять что к чему я порекомендую некоторые каналы и конкретные видео:
Теперь нужно понять что в каждом из этих направлений есть ещё множество разных ответвлений.
3D художники бывают специальными по технике, по персонажам, по окружению, некоторые занимаются в основном ригом и анимациями, а кто-то концептингом. Художники тоже совершенно разные, кто-то рисует концепты, кто-то пиксель арт, кто-то специализируется на UI (интерфейсах) навыки анимации тоже есть далеко не у всех. Есть отдельные VFX художники, которые создают спец-эффекты в играх. Программисты соответственно специализируются на разных движках, работают с разными фреймворками и так далее…
В области геймдизайна целое море разных специальностей, левел дизайн, технический дизайн, UX-дизайнер, балансировщики, нарративные дизайнеры и так далее….
Но чаще всего, особенно в инди сегменте начиная развиваться в одном из трёх направлений приходится изучать ещё много разных смежных навыков. Так как в команде бывает один 3D моделлер на котором будет создание и текстурирование всех моделей. Один геймдизайнер который будет как системы с балансом прописывать так и создавать левел дизайн. Поэтому надо готовиться к очень большому обьёму самой разной информации.
Далее определившись с направлением нужно приступить к осваивали навыков. Я по началу проходил туториал одним за другим и попал в давольно таки опасную ловушку - в петлю туториалов.
Вы смотрите видео на Ютубе, послушно копируете за автором, у вас всё работает. Вам кажется: «Ура, всё супер!». Но стоит вам закрыть видео и открыть чистый проект - в голове белый шум. Вы не помните или не понимаете с чего начинать.
Чтобы этого избежать, нужно всегда делать немного по другому используйте «Правило плюс один».
Например, посмотрели урок, как сделать передвижение персонажа, отлично, теперь нужно добавить то чего в туториале не было! Добавьте звук при ходьбе или сделайте двойной прыжок. Мозг начинает учиться только тогда, когда вы делаете шаг в сторону от туториала. Ломайте чужой код, экспериментируйте, только так вы начнете понимать логику, а не просто копировать.
Создаёте 3D модель, загляните сразу в конец видео чтобы понять к чему придёте и найдите похожий референс но немного другой модели, в результате по этому же туториала в финале вы получите гораздо больше!
И еще один чит-код, о котором почему-то многие молчат. Учите Английский язык. Во всех программах и проектах в Unity, Blender все интерфесы должны быть на английском. Да, сначала будет больно. Но 99% ответов на ваши будущие вопросы о багах, ошибках и вылетах движка написаны на английском языке на зарубежных форумах. Если вы гуглите ошибку на русском - вы сильно сужаете свои шансы найти решение.
Итак, с ролью определились. Приступаем ко второму шагу! Выбор игрового движка.
И тут мы уже будем отталкиваться от вашей суперсилы.
Первый движок - Construct 3.
Если вы 2D художник или геймдизайнер без навыков программирования, это ваш идеальный старт. Это движок конструктор, который работает прямо в браузере.
Вы просто загружаете туда свои нарисованные спрайты, а все механики настраиваете визуально - буквально перетаскиванием блоков и назначением простых условий например: «Если пуля касается врага - у врага отнимается 10 единиц здоровья ».
Это позволит вам сосредоточится на вашем главном навыке (над созданим арта) и за пару вечеров собрать рабочий прототип игры. После этого вы поверите в свои силы и получите заряд дофамина стимулирующий вас продолжать в том же духе!
Следующая тройка движков - Unity, Unreal Engine, Godot
Если вы склоняетесь к 3D, обратите внимание на эти три движка. Да, там сложный язык программирования и по началу будет очень больно в нём разбираться, но например в Unreal есть гениальная вещь - Blueprints, система визуального программирования. Вы соединяете функциональные блоки цветными ниточками прямо на экране. И таким образом создаёте логику игры без написания кода и изучения синтаксиса языка.
Если вы хотите быть универсальным солдатом, программировать самостоятельно или делать мобильные и веб-игры, ваш выбор - это Unity.
Unity - это «золотая середина» геймдева. Именно на нем я собирал свои первые прототипы. Да, здесь придется учить язык C#. Но поверьте, это один из самых красивых, логичных языков в мире. К тому же у Unity гигантское сообщество в котором вам всегда помогут. На любой ваш вопрос на YouTube уже есть сотня подробных видео уроков.
+ у этих движков есть огромные библиотеки как платны так и бесплатных ассетов с уже готовыми шаблонами игр, 3d и 2d графикой, музыкой.
Хорошо, движок выбран, базовый навык качается. Шаг третий - как начать делать игры и найти команду.
Первое и самое главное правило - забудьте про масштабные проекты. Ваша первая игра должна играться ровно 3 или 4 минуты, а на её создание должно уйти не больше двух недель. Не надо делать свою ГТА7. Сделайте клон АngryBirds, но добавьте туда какую нибудь свою фишку (например пусть свиньи восстанавливают свою базу если игрок долго думает). Доведите эту микро-игру до конца, выложите её на itch.io или Яндекс Игры. Тот, кто довел до релиза одну маленькую кривую игру, ценится в индустрии выше, чем тот, кто три года пишет дизайн-документ для своей «игры мечты», которую никто никогда не увидит. Наберите в своё портфолио несколько таких пет проектов.
А дальше - ищите команду. В одиночку делать игры очень сложно физически и морально. Заходите на форумы, например, в раздел «Ищу команду» на DTF, в тематические Telegram-чаты и Discord-каналы.
Участвуйте в геймджемах - это такие мероприятия, где люди за отведённое время делают игру на заданную тему, там часто можно попасть в случайную команду. Это лучший способ найти друзей, крутых напарников и за пару дней получить готовый проект в портфолио!
И вот здесь мы подходим к финальной теме это AI.
Мне кажется в 2026 году войти в геймдев проще, чем когда-либо в истории, благодаря искусственному интеллекту. Вам больше не нужно неделями искать ответ на форумах, почему что-то не работает. Вы просто копируете ошибку из движка, отправьте её в ChatGPT или Claude - и нейросеть за секунду объяснит вам в чём заключается ваша ошибка и предложит несколько вариантов исправления.
Вы можете делегировать ИИ написание простого кода, пробовать разгонять с ней идеи для механик, написание диалогов для персонажей и создание концепт-артов и заглушек для интерфейса. ИИ - это ваш бесплатный консультант, который готов отвечать на любые вопросы 24 на 7.
Я считаю дверь в геймдев сейчас открыта как никогда широко. Неважно, сколько вам лет, гуманитарий вы или технарь, умеете ли вы рисовать. В современной игровой индустрии важна не корочка диплома, а ваше желание делать и доводить проекты до конца. Начните с малого. Сделайте один шаг сегодня: скачайте Blender, Construct или Unity. Попробуйте покрутить кубики. Напишите свой первый код. Поверьте, чувство, когда объект на экране начинает двигаться по вашему нажатию - это чистая магия, которая окупает все трудности.
Напишите в комментариях, какую игру вы мечтаете создать? А также кем вы себя видите: программистом, художником или гейм дизайнером?
Моя игра теперь в стим
ReMasterOfGame тут ссылка
Я уже долго разрабатываю игру и наконец этап с созданием страницы пройден. Это конечно все очень волнительно. Но теперь можно официально начинать собирать вишлисты 😄
Я делаю ее одна и не так много людей знает об этом. Но теперь появилась официально страничка и тут уже ощущение "О боже, я правда ее делаю и мне придется ее показывать".
Опыт работы с созданием баннеров, лого у меня был оч небольшой, поэтому как я сделала для себя мне не прям нравится. Но зато я сделала. Решила мыслить "потом всегда можно поменять". А чтоб страницу одобрили надо соблюсти требования и сделать этих баннеров хренову тучу разных форматов.
А еще я описания на странице перевела на все языки которые стим предложил. Ну как я .. ии. Надеюсь там на китайском по-человечески написано)
Мне пришлось пересмотреть кучу трейлеров к играм чтоб понять что вообще там может быть. Потому что как выяснилось, я всегда видео пролистывала моментально и только картинки смотрела и насмотренности ноль.
Короче, ура у меня есть страница в стим....
Закончил инвентарь в своей игре
Наконец-то закончил систему инвентаря для своей игры.
Теперь можно нормально собирать, хранить и использовать предметы. На видео показал, как это выглядит в игре.
Для меня это довольно большой этап разработки, потому что инвентарь одна из тех систем, которые кажутся простыми, пока не начинаешь их делать.
Буду постепенно двигаться дальше и добавлять новые игровые механики.
Что думаете о текущем виде инвентаря?
Boosty: https://boosty.to/benzejigames




















