Crazy Cube World Game. Создание. Часть 1

в 12:19, , рубрики: .net, .net 4.5, game development, rpg, visual studio 2013, xna game studio, Песочница, разработка игр

Crazy Cube World Game. Создание. Часть 1

Здравствуй Хабр! Вот и я решился на написание своего первого поста. И поводов для этого предостаточно. Появилось свободное время, и я решил воплотить свою идею в жизнь. Как уже понятно из названия это игрушка Crazy Cube World Game (Сумасшедший мир кубиков). В первом посте расскажу о самой концепции игры. Я уже давно занимаюсь сборкой серверов Minecraft, копался в исходниках игры, модов. Изучал прочие песочницы и как по мне так всегда чего не хватало. Это все и привело к созданию игры. В целом она будет представлять из себя некую смесь RPG, песочницы с неограниченным открытым миром.


Раз уж заговорили сначала о нем то давайте продолжим и так что из себя представляет мир:

Crazy Cube World Game. Создание. Часть 1

Мир будет разбит на планетарные системы содержащие разнообразные планеты, открытый и документированный API ядра позволит добавлять свои модификации в игру. При сетевой игре в самом начале будет доступна null – система где не будет режима PvP и игроки смогут привыкнуть к игре, подняться в уровне (RPG). Строить и разрушать естественно мы сможем везде и все (от блока на планете до уничтожения планетарной системы). Генерация ландшафта планет будет динамической, привязанной только к Recourse Pack’у данной планеты (описания всего и вся).

Пройдемся теперь по RPG начинке. Подумав было принято решение поступить следующим образом. Первый раз как только мы появляемся в игре мы появляемся в каменном веке в какой ни будь null — планетарной системе на какой ни будь планете пригодной на данном уровне персонажа для жизни. В руках естественно ничего. Сразу оговорюсь весь крафт в игре будет приближен к реальному, по этому как я считаю догадаться что ни будь скрафтить будет не сложно. Первым крафтом например может быть например острый камень, для которого надо найти всего два камня. По мере развития, выполнения квестов, будет развиться и наш мир. Если сначала мы сможем объединить людей (NPC) в общину. То потом сможем объединить в деревни, города, страны (типа гильдии, альянсы). Здесь проявляется первый аспект игры, как только появиться первый крафт оружия (хотя оружием может служить та же подобранная палка) мы сможем нападать на других NPC или же наоборот пытаться с ними наладить мирные отношения (характер у ним будет присутствовать). Нападения, мирные отношения все будет влиять на дальнейший прогресс в мире. К примеру если в округе и персонажа будет репутация завоевателя, то придя в очередную деревню вас наверняка встретят с оружием в руках. Так, а причем у нас вселенная? Все развитие в игре будет происходить в игре постепенно, начиная с каменного века и заканчивая вселенной. Фактически начнем с палкой, камнем в руке и закончим космическими полетами, исследованиями вселенной. Не забываем про песочницу. Не обязательно ввязываться в войны, обустраивать свои города, деревни и т.п. Можно будет просто присоседиться к уже существующим и жить спокойно, или творить беспредел. Т.е. в игре будет мир в котором будет дозволено все что можно себе представить.

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

Поговорим теперь о персонаже, он будет обладать следующими характеристиками:

Интеллект – будет прокачиваться по мере нахождения крафтов, прохождения головоломок в квестах, без него не сможет создавать новые крафты, даже зная их.
Выносливость – будет отвечать за то сколько времени мы сможем работать (т.е. нельзя будет просто подойти и разбить двадцать камней к примеру, персонаж устанет и ему потребуется время отдохнуть)
Сила – будет отвечать за вес который сможет носить персонаж, оружие которое он сможет держать в руках, в боях при малых значениях мы не сможем совершить бросок некоторых соперников.
Страх – примерно будет работать следующим образом, погибнув несколько раз при спуске в пещеру персонаж откажется туда заходить, или встретив не дружелюбного моба, убившего его несколько раз броситься о него подальше.

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

Crazy Cube World Game. Создание. Часть 1

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

В общем об самом игровом процессе можно говорить еще долго. Но, пожалуй, на этом остановлюсь. На данный момент пилиться редактор и движок. Платформой была выбрана .NET 4.5, XNA 4.0, C# Visual Studio 2013. Движок умеет выводить простые чанки. Сейчас в планах следующее:

1. Сделать генератор мира, способный генерировать интересные ландшафты.
2. Моделирование жидкостей.
3. Создание первой игровой эпохи каменного века, выпуск альфа версии, и естественно вики по игре.
4. Публикация проекта на кикстартере.

Если заинтересовало в следующей статье уже рассажу о том, почему все таки XNA, что как строиться в движке + исходный код.

Автор: RuslanCKX

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js