GoblinCave

GoblinCave

Топовый автор
Записки гоблина который водит игры по своей авторской кампании и делится опытом гейм-мастера. А еще тут мемы сделанные с душой и не стыренные из других пабликов. Подписывайся! DTF: https://dtf.ru/id991292 Telegram: https://t.me/goblincavenri
На Пикабу
в топе авторов на 218 месте
5395 рейтинг 91 подписчик 3 подписки 96 постов 46 в горячем
574

Действительно секта...

Действительно секта...

❗ Забавный факт, в 80-ых вокруг Dungeons & Dragons была настоящая истерия и игру обвиняли в продвижении сатанизма. От части за счет этой шумихи всеми любимая НРИ и обрела популярность.

🔥 Нравится контент про НРИ - подпишись на GoblinCave в Telegram!

Показать полностью
10

Да начнется срач... что легче в освоении и больше подходит для 2D проекта? Unity VS Godot !!!

Да начнется срач... что легче в освоении и больше подходит для 2D проекта? Unity VS Godot !!!

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

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

Когда начинаешь искать альтернативу, вторым по популярности часто выступает Godot. Судя по отзывам, с 2D проектами он работает шустрее чем Unity, хотя из минусов отмечают сравнительно меньшее количество обучающей информации на русском языке.

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

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

P.S. В комментариях оставлю два ответа - Godot и Unity, ставьте плюсик тому который поддерживаете.

Показать полностью
13

Продолжаю экспериментировать в C# - программа для игры в 21 (очко)

Пока в курсе идут простые задания, я экспериментирую и умышленно усложняю себе задачу. Недавно наткнулся в Play Market на интересную игру Void Tyran, боевая механика данного рогалика завязана на игре в "очко".

Для тех кто не знает, 21 или "очко" - это карточная игра. Суть в том, что игроки поочереди берут карты, накапливая очки. Задача - набрать 21 или близкое к нему значение, но никак не больше - иначе проигрыш.

Так же и в Void Tyran, только вместо 21 стоит 12, а колода представляет из себя 24 карты (по 4 карты каждого значения от 1 до 6). Оба участника боя поочередно вытягивают карты из своей колоды накапливая очки, а когда оба решают остановиться - идет сравнение их результатов. Например, вы остановились на 11, а соперник на 8 - разница ровна 3 очкам. Значит, вы наносите по противнику три удара.

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

Void Tyran - геймплей

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

База для игры в "очко"

Однако игра не имела смысла, потому что противник продолжал бросать пока не проиграет. Нужно "научить" его принимать решение, стоит ли останавливать выдачу или нет.

Шанс проиграть появляется в тот момент, когда сумма очков больше шести. Чем выше данный шанс, тем больше становится вероятность, что противник решит остановиться. Таким образом на 7-8 очках, он в большинстве случаев продолжит играть, но на 9-11 очках наверняка остановит свои броски.

Противник поднял лапки и остановился

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

Победа!

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

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

Низкий гоблинский поклон всем кто дочитал до конца статьи! Если вам интересно наблюдать за развитием новичка (или посмеиваться над банальными ошибками) - подписывайтесь на мой блог!

Показать полностью 4
10

Продолжаем изучать С# - даже калькулятор имеет свои нюансы

Классическое задание при изучении языка программирования - написать на нем калькулятор. И вот вроде все просто, сделай переменные для вводимых данных и добавь выбор операции. Реализовать все это можно через if - else или switch. Но есть пара нюансов...

Вариант работающий на switch

Вариант работающий на if - else

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

Вундервафля try - catch

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

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

Если бы оператор continue был человеком...

Но даже если мы ввели корректные числа, математика вновь может нагнуть нас. Напомню, что на ноль делить нельзя, но при этом его можно ввести как одну из переменных. Всего одна молитва Горку и Морку в виде if - else все исправляет...

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

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

Низкий гоблинский поклон всем кто дочитал до конца статьи! Если вам интересно наблюдать за развитием новичка (или посмеиваться над банальными ошибками) - подписывайтесь на мой блог!

Показать полностью 6
3

Когда один мелкий косяк руинит тебе весь код

Когда один мелкий косяк руинит тебе весь код

А если серьезно, если бы не лист ошибок - я бы дальше первых уроков из курса не ушел из-за своей невнимательности. Хвала Горку и Морку, что данная вафля исправно помогает таким новичкам как я!

14

Как там изучение C# продвигается?

День 1

Вводный урок с объяснением возможностей языка и порядком установки Visual Studio. Следуя своей гоблинской натуре побежал вперед паровоза и забыл установить компонент для работы с NET.

Посмотрел на интерфейс, понял что пока ни черта не понимаю, помолился Горку и Морку, крикнул WAAAGH и продолжил изучение. Впитал базу про структуру проекта и типы данных, благо данные понятия уже были известны после JavaScript и Python.

День 2

Подробно разобрали типы данных и их обозначение в языке C#. Это конечно весело и круто что их так много, но похоже в ближайшее время будем использовать только int, string и bool. Поигрался с вводом/выводом гоблинских мудростей в консоль и базовыми математическими операциями.

На самом деле надо, а потому продолжаем...

День 3

Познакомился с типами конвертации, в целом удобно. А вот дальше пошел мимо курса изучать самостоятельно операции с if - else и классом Random. В прошлом посте я рассказывал о боевой системе схожей с дуэлями в Crusader Kings и данные операции нужны мне для ее реализации.

День 4

Опираясь на алгоритм, что до этого был испытан на Python, начал писать боевую систему уже на C#, попутно внося коррективы.

На Python ранения просто изменяли итоговые параметры здоровья и доблести (подобнее о системе в прошлом посте). Однако, по задумке ранения будут оставаться и после боя, каждое имеет свой срок заживления.

Для хранения информации о ранениях я создал три массива:

- Текстовое имя ранения

- Штраф доблести

- Штраф к здоровью

И в этом была моя ключевая ошибка... я создал МАССИВЫ, а в них нельзя добавлять больше элементов, чем заданно изначально. Снова поторопился и накосячил потакая своей гоблинской натуре, что поделать. В итоге узнал, что помимо массивов в C# есть списки и стал изучать класс List.

Заменив все три массива на списки я решил проблему и оно запустилось! ХВАЛА ГОРКУ И МОРКУ, WAAAGH!

Итог

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

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

Если тебе интересно наблюдать за развитием новичка в GameDev (или смеяться) - подписывайся на мой блог Goblin Cave!

Показать полностью 2
9

Первые наброски боевой системы схожей с дуэлями в Crusader Kings

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

Как я уже упоминал в прошлых записях, в моих планах сделать боевую систему схожую с дуэлями в Crusader Kings, но со своими изменениями. На чем же основана данная боевка?

- Есть два ключевых параметра: доблесть и состояние здоровья;

- От разницы между доблестью обоих противников зависит шанс попадания при ударе и тяжесть получаемого ранения;

- Легкие ранения как правило снижают лишь доблесть, в то время как тяжелые вместе с доблестью понижают и здоровье;

- От здоровья зависит шанс получить летальное ранение, вместо легкого или тяжелого;

На данный момент есть 3 типа атаки:

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

Прицельный удар - шанс попадания на 20% ниже, чем у попадания навскидку, однако куда выше вероятность нанести тяжелое ранение. Шанс убить появляется с первого штрафа к здоровью;

Смертельный удар - самый низкий шанс попадания из всех, однако компенсируется бонусом к летальному исходу;

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

Что дальше?

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

1. Нужно оживить противника и союзников, прописав им поведение и атаки зависящие от ситуации;

2. Прописать систему снаряжения, которая влияет на параметр доблести бонусом к навыку бойца;

3. Разделить типы ранения по используемому оружию, по аналогии с Battle Brothers (Режущие оружие / Рубящее оружие / Дробящее оружие);

4. Добавить больше уникальных действий, так или иначе влияющих на ход боя. (пока на ум приходят различные боевые стойки и финты);

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

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

А если хочется и дальше наблюдать за процессом развития проекта - подпишись!

Показать полностью 3

Почему Goblin Cave (Пещера гоблина)?

Да потому что мой подход уж очень близок к зеленокожим. Собрать из дерьма и палок то, что будет худо-бедно работать на моей вере в "WAAAAGH" и криво написанный код. По крайней мере такой подход будет сохраняться, пока я не получу знания близкие к Адептус-Механикус, а это ой как не скоро...

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

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

Если вам интересен подобного рода контент - подписывайтесь!

Почему Goblin Cave (Пещера гоблина)?
Показать полностью 1
Отличная работа, все прочитано!