понедельник, 10 марта 2014 г.

Игра моей мечты

Когда-то давно мне пришла идея одной игры, где игрок будет строить дом, выращивать огороды и подобное. При том что майнкрафтов и ферм тогда еще не существовало. Я думаю, это одна из тех нескольких идей, которые направили меня на путь программиста, потому что тогда я конечно же не обладал нужными знаниями чтобы эту идею воплотить. Первоначально я хотел воплотить эту идею в игре жанра roguelike. Но как-то не сложилось. Вообщем идея  пылится на полке уже многие годы. О, как раз и перечислю эти идеи игр, которые бы я хотел создать, но пока нет нужных талантов:
- эмулятор настольного варгейма. Делаю сейчас - битвы fantasy. Но медленно:(
- реалтаймовая стратегия в стиле warcraft. Вообщем не очень игра мечты, но может когда-нибудь соберусь воскрешать Dark War
- игру в стиле Might and Magic 6. Данный блог кстати начинался именно ради этого:)
- и вообще симулятор жизни героев, где герои могут жить в мире - то есть строить дома, воевать, заниматься ремеслами. Ну это конечная игра мечты, и ее я не возмусь делать еще  ближайшие десять лет:)

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

Нет, я посмотрел в другую сторону - в сторону dwarf fortress. Я пытался освоить это чудо. Благо есть русский перевод и кое-какие тайлы. Но корявое управление отбивает всякую охоту играть. У меня уже мозги не те, чтобы запоминать все эти комбинации клавиш, а играть вечно глядя в мануал скучно и долго. Плюс у меня широкоформатный монитор, и глаза устают вглядываться в эти мелкие буковки/тайлы
Но мое не очень большое знакомство с ним, и чтение тематической вики привели меня к мысли, что вообще-то там нет ничего сложного в техническом исполнении.

Идея витала очень давно. И только вчера она сформировалась во что-то осознанное. А именно взять графу майнкрафта (не обязательно конечно пиксельность, можно и с красивыми текстурами) и смешать ее с механикой дварфов. Точнее вчера мне пришла мысль, как сделать управление чтобы все это было играбельно.

Так что вот. Буду потихоньку пилить. Потихоньку, потому что работа, движок, удаленный проект и битвы fantasy... А еще аниме, так что времени остается мало:)
По этой же причине проект решил начать делать на unity3d. Мне вполне хватит его возможностей.

Немного распишу текущих подробностей:

Гномы (дварфы точнее)
Да, я тоже буду делать про дварфов. Просто это реально интересная раса. Люди? Градостроительных игр и так много. Эльфы? Скучно. Гоблины? И что они там строят?

Случайность
- никакого процедурного бесконечного мира (по крайней мере сразу). Я уже выше написал - я считаю генерированные миры унылыми и скучными. Ну вот знаете вы что в майнкрафте мир почти бесконечен и что? Играете ведь в маленькой локации, а если даже решите куда-то перемещать свою базу, это будет равносильно новой игре. Так на кой черт нужен бесконечный мир? Поэтому как минимум первое время локация будет четко сформированной и не большой.
- тем не менее случайная генерация будет. Но в виде сбора из шаблонов. такие генераторы например в дьябле (или в скайриме с обливионом) были. То есть есть заготовки локации. Локация составляется комбинаниями этих заготовок. так как заготовки создаются в ручную, они могут быть достаточно интересными.

Сеттинг
Решение выше потребовало специального сеттинга, иначе сложно объяснить почему игрок загнан в рамки локации. так вот. Гномы живущие в одном из миров решили начать строить свои крепости в межпространстве. С помощью людских (эльфийских?) магов они открыли портал и послали в демиплан группу гномов которые и должны теперь строить новую крепость. Зачем? Конечно же ради ресурсов, которые гномы будут отправлять через портал обратно на свою родину.
- демиплан, это такой остров плавающий в эфире (пример, аллоды). То есть кусок земли в бесконечном пространстве. При этом порталы открывают на большие куски земли размером с континенты, так что гномам будет где строить цивилизацию. Со всех сторон демиплан закрыт оболочкой которая мешает жителям вываливаться из мира:)
- портал. Маги не просто пуляют гномов на остров, они создают специальный двухсторонний портал. Собственно вся ваша цивилизация будет строиться вокруг этого портала, потому что только через него вы сможете покупать недостающие ресурсы и продавать добытые излишки ресурсов, ну и конечно получать новых гномов-эмигрантов. Но есть проблема - портал держать открытым достаточно сложно и дорого. Поэтому портал можно открыть только через год после предыдущего открытия (да, первый раз вы сможете открыть портал только через год после основания своей крепости), и он будет открыт в течение одной недели. Также за открытие вы должны будете заплатить немалую сумму денег/ресурсов. Но этого вполне достаточно, и как раз сможет создать драматические события:)
- враги. Да, тут уже будет сложно их впилить. Но возможно. Так как это демиплан, то тут вполне могут жить всякие ктулху и демоны. Плюс никто ведь не мешает некроманту решить пограбить и поубивать беззащитных гномов ради сотен нефти, а возможность открыть портал у него тоже есть. Так что время от времени какой-нибудь темный властелин будет запускать свои орды на вашу крепость. Иногда это будут долгие осады, а иногда быстрые наскоки. Вы сможете либо выдержать осаду, пока у властелина не изчезнут силы держать портал или ему не надоест, либо самостоятельно уничтожить портал. Ну и еще время от времени будут появляться группы приключенцев иноходцев, но их роль я придумаю когда будет надо.

Непрямое управление
Как и в df. Вы отдаете приказы. Гномы их выполняют если имеют соответствующие работы, и тогда когда это возможно для них.

Ну вот как-то так. Вчера возился с рендером:



Это если что, на паузе, а не в ручную кубики расставлены:). Здесь общее число кубов - 50х10х50. Сделал все из стекла, чтобы протестировать прозрачность и возможную ситуацию когда весь мир прозрачен. Так то все нормально, бьется на чанки, сектора, геометрия формируется по видимости. FPS нормальное.

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