Инди
zeOrb
488

Ravel Board: Week 2 & Week 3

Всем привет!

В закладки
Аудио

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

Ravelburgh

Я поглядел на результаты опроса и сомнения насчет сеттинга отпали: дарк соулсу быть! Нейтральное игровое поле я заменил загадочным городом, тайны которого игроку как раз и предстоит распутывать по ходу игру. Правда, путешествие на другой край так никуда и не делось, и даже получило апгрейд: город у подножия горы, поэтому передаем привет вертикальному геймплею. Мне всегда нравилось в ДС что ты смотришь вдаль и примерно представляешь куда тебя заведет путь, но не совсем... Такое же ощущение мне бы хотелось и передать в своей игре. Насчет лора - город НАСТОЛЬКО таинственный, что даже сказать нечего. Может через пару неделек :)

За полигоны и модельки не судите, плейсхолдеры

Прогресс

Построение игрового поля

Большая часть нововведений как раз таки здесь! Поле у нас теперь теперь трехмерное, а значит нужно добавить поддержку этажей и их строительство. Разница между этажами компенсируется и поле достраивается в аккуратную коробочку.

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

Поиск пути

Так как теперь все декоративные элементы отмечаются флагами, то наступило подходящее время чтобы добавить Path Finding. Недолго думая, я попытался прикрутить старый добрый A*(Очень рекомендую эту статью, если кто-то захочет сам разобраться), и, к моему удивлению, машинка завелась с полупинка и всего за день фигурки научились бегать по полю пользуясь лестницами, не врезаясь в стены и прочие строения.

Player one

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

Внезапно, Готика!

Пока я писал логику к растановке лестниц меж этажами, мне внезапно вспомнилась Gothic II, разработчики которой оригинально подошли к доступу в крупный город Хоринис: помимо "правильного" способа, существовало и много неочевидных, вплоть до банального прыжка с холма на городскую стену или стелс заплывания в порт, где тебя радостно встречали старые друзья, а иногда и кто-то пострашнее... Тут я понял, что именно подобный концепт я и хочу реализовать в игре, чтобы на следующий этаж можно было перейти и неочевидными окольными путями, которые бы создавались случайно, или в результате действий игрока. В качестве грубового примера - у стены может быть лаборатория и если у игрока есть определенные предметы или дайс подыграет - она бомбанет и можно будет пройти наверх по руинам стены.

Scale down

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

Планы и цели

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

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

До встречи через неделю!

Материал опубликован пользователем.
Нажмите кнопку «Написать», чтобы поделиться мнением или рассказать о своём проекте.

Написать
{ "author_name": "zeOrb", "author_type": "self", "tags": ["\u0438\u043d\u0434\u0438\u0434\u0436\u0435\u043c","raveldevlog","gamedev"], "comments": 5, "likes": 26, "favorites": 9, "is_advertisement": false, "subsite_label": "indie", "id": 52436, "is_wide": false, "is_ugc": true, "date": "Thu, 30 May 2019 23:56:31 +0300", "is_special": false }
(function(d, w) { var wrapper = d.getElementById('apost-tsr'), isMobile = w.matchMedia('(max-width: 400px)').matches, isArticle = wrapper.classList.contains('in-article'), gif = d.createElement('img'); gif.onload = function() { wrapper.classList.add('is-loaded'); }; gif.src = (isArticle) ? 'https://leonardo.osnova.io/b2b69d93-806a-d2f2-4697-577683765baa/' : (isMobile) ? 'https://leonardo.osnova.io/82f3c702-be47-2c95-ed12-15741ca2f2e9/' : 'https://leonardo.osnova.io/5121d3f7-d8f5-4cf1-7b61-a184c726c32f/'; }(document, window));
0
{ "id": 52436, "author_id": 31701, "diff_limit": 1000, "urls": {"diff":"\/comments\/52436\/get","add":"\/comments\/52436\/add","edit":"\/comments\/edit","remove":"\/admin\/comments\/remove","pin":"\/admin\/comments\/pin","get4edit":"\/comments\/get4edit","complain":"\/comments\/complain","load_more":"\/comments\/loading\/52436"}, "attach_limit": 2, "max_comment_text_length": 5000, "subsite_id": 64960, "last_count_and_date": null }
5 комментариев
Популярные
По порядку
8

За полигоны и модельки не судите, плейсхолдеры

Знаешь, достаточно стильно для плейсхолдеров.

Ответить
0

Хехе, спасибо :з

Ответить
2

ничо не понял но крацубо выглядит

Ответить
1

Черт, у тебя отличный проект. Я сам участвую в джеме, но мне и правда охота сыграть в твою игру. Продолжай в том же духе, надеюсь у тебя всё получится!

Ответить
1

О, спасибо! Приятно слышать что заинтересовал, надеюсь что получится довести до играбельного состояния. Сам слежу за шаманами с самого начала, жду не дождусь следующего поста! =)

Ответить
[ { "id": 1, "label": "100%×150_Branding_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox_method": "createAdaptive", "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "ezfl" } } }, { "id": 2, "label": "1200х400", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "ezfn" } } }, { "id": 3, "label": "240х200 _ТГБ_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fizc" } } }, { "id": 4, "label": "Article Branding", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "p1": "cfovz", "p2": "glug" } } }, { "id": 5, "label": "300x500_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "ezfk" } } }, { "id": 6, "label": "1180х250_Interpool_баннер над комментариями_Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "clmf", "p2": "ffyh" } } }, { "id": 7, "label": "Article Footer 100%_desktop_mobile", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fjxb" } } }, { "id": 8, "label": "Fullscreen Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fjoh" } } }, { "id": 9, "label": "Fullscreen Mobile", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fjog" } } }, { "id": 10, "disable": true, "label": "Native Partner Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyb" } } }, { "id": 11, "disable": true, "label": "Native Partner Mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyc" } } }, { "id": 12, "label": "Кнопка в шапке", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fdhx" } } }, { "id": 13, "label": "DM InPage Video PartnerCode", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox_method": "createAdaptive", "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "clmf", "p2": "flvn" } } }, { "id": 14, "label": "Yandex context video banner", "provider": "yandex", "yandex": { "block_id": "VI-250597-0", "render_to": "inpage_VI-250597-0-1134314964", "adfox_url": "//ads.adfox.ru/228129/getCode?pp=h&ps=clmf&p2=fpjw&puid1=&puid2=&puid3=&puid4=&puid8=&puid9=&puid10=&puid21=&puid22=&puid31=&puid32=&puid33=&fmt=1&dl={REFERER}&pr=" } }, { "id": 15, "label": "Баннер в ленте на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byudo", "p2": "ftjf" } } }, { "id": 16, "label": "Кнопка в шапке мобайл", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "chvjx", "p2": "ftwx" } } }, { "id": 17, "label": "Stratum Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fzvb" } } }, { "id": 18, "label": "Stratum Mobile", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fzvc" } } }, { "id": 20, "label": "Кнопка в сайдбаре", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "p1": "chfbl", "p2": "gnwc" } } } ]