Rooftop
Rooftop Суть:
Геймплей:
Как видно, это самый обычный клон, клон игры Banished, отчасти Settlers, только вид сбоку. ffinder назвал игру "дварф фортресс в 100 раз проще и сбоку", может быть это и так. Не играл. По атмосфере хочу добиться какой-то смеси работ Гигера и С.Т.А.Л.К.Е.Р.-а. По части контента буду срезать углы как умею - твёрдые формы в SketchUp-е, мясо - в Sculptris-е, развёртка без души, автоматами, текстуры по возможности стыренные. Многие штуки будут подвержены маленькому скрипту, который будет мять сетку нойзом, так хоть графен приедаться будет не так сильно. Многие части построек будут собираться из простых элементов, как то: двутавровая балка, лист с текстурой металла, одноцилиндровый движок, электромотор. А потом запекаться в единый меш. Штуки, которые я точно зафейлю:
Штуки, которые я буду пилить после конкурса:
Ознакомиться с более-менее актуальной версией геймдизайна и актуальным прогрессом можно здесь. Зелёное - сделано Синее - нуждается в тесте Жёлтое - в процессе Красное - отложено-заморожено |
Ответ: Rooftop
Вложений: 1
Состояние на четверг, 3 апреля 2014:
В наличии 65 килобайт "тёмного" кода. "Тёмного" - это значит, что этот код не запускался ещё ни разу. Совсем. Сейчас я как раз занят написанием оверрайдов под .ToString() для дебага этого кошмара и установкой того, что называется testbed - условий для тестирования функционала. Что же в этих 65 килобайтах?
В общем, код геймплея готов где-то на 75%. Дальше код ввода игрока и UI. Ещё написал двустороннюю конверсию между boo-шным Hash (это как Dictionary, но с implicit определением типа ключа и значения, причём значения не обязательно гомогенны) и JSON-строкой. Пока не поддерживаются разве что списки внутри списков и таблицы внутри списков при конверсии Hash -> JSON (обратно работает). Написал потому что было скучно :D Вообще, я так прикинул, в будущем я сюда ещё мультиплеер впилю. Да и парсер JSON лишним в хозяйстве не будет. Ещё написал маленькую надстройку над инспектором Unity, облегчает мне жизнь в вопросе настройки баланса: Арт пока показывать тут не буду, закину в игру - там уже можно будет, наверное. Из готового: Болванки под металл, пластик, резину, бетон, один меш под электронику, один меш под агрегаты (потом из него выпилю ещё 3 маленьких). Ну вот наверное и всё пока что. |
Ответ: Rooftop
Вложений: 1
Всем привет :)
Состояние на утро субботы, 5 апреля 2014: Размер скриптов раздулся до 82 килобайт, из которых порядка 6 - .ToString() методы для дебага :-D Остальное - фиксы, доработки, методы для установки тестовых условий ииии...
Собственно, всё. Пятница ушла на то, чтобы отдебажить мой "тёмный" код, который почти весь перешёл на светлую сторону силы. Оставшиеся ситхи прячутся в коде присоединения к семье/покидания семьи и выбора задания поселенцем. Задания кстати генерятся нормально, проверил :) Ну а ночь, переходящая в утро субботы, ушла на то, чтобы придумать хитрый поиск пути и набросать генератор зданий. Поиск пути выродился в почти классический поиск кратчайшего маршрута по графу. Тут есть маленькая хитрость в том, что я пошёл на допущение: в пределах одного этажа никаких перегородок и препятствий нет. Там персонажи будут ходить по прямой до следующей точки в их маршруте. Другая хитрость заключается в том, что я разбиваю здания не просто на этажи, а на группы этажей. Если что-то сломало лестницу между этажами - группа разбивается на две; если игрок построил лестницу между этажами, которые принадлежали разным группам - они сливаются в одну. Причём разделение группы, при всей неоптимальности алгоритма, стоит всего-то O(n), где n < 100 (максимум этажей пока что). По-хорошему надо со списков переписать в массивы, тогда вообще почти бесплатным будет. Следующий шаг в оптимизации (ещё ни разу не тестировавшегося на скорость решения) - просчёт таблицы кратчайших путей между мостиками, принадлежащими чанку. Тогда поиск пути от произвольной точки на одном этаже до произвольной точки на другом выродится в поиск кратчайшего пути по чанкам + поиск пути внутри начального и конечного чанков. Середина маршрута будет просто собираться как из конструктора. И я так прикинул, пересчитывать маршруты каждый раз при модификации чанка будет дешевле, чем считать путь каждый раз, когда кому-то пришла в голову идея "погулять". В заключение, по традиции, маленькая няшка - эмбрион генератора зданий. Просто для оценки масштабов в игре: |
Ответ: Rooftop
Вложений: 1
Парам :)
Состояние на понедельник, 7 апреля 2014: Поиск пути внутри чанка работает. Вроде быстро, но надо будет ещё замерить и установить лимит. Поиск пути по нескольким чанкам - тут пока решаю, как лучше будет. Или просто прикинуть, исходя из соединённости/несоединённости чанков, какой путь был бы логичным и по этим чанкам уже строить реальный путь, или делать честно и перебирать много-много данных... Наверное первый вариант, всё равно никто не заметит) Да, кстати, я много чего перевёл со списков на массивы, должно быть быстрее. Ну и запилил кэширование путей между точками входа/выхода чанка. Обновление происходит по команде с общего контроллера, поэтому можно будет ограничить нагрузку в пределах одного цикла :) Может даже динамически, например "чтоб не больше 5 мс вот на это всё!". Чего там ещё... А, лестницы! Я научил генератор генерить лестничные колодцы внутри зданий! Они даже ЛОГИЧНЫ! Следующий шаг в этом направлении - поломать парочку лестниц из сгенерированных :D Набросал каркас для общего контроллера ("крыша", она же Rooftop.boo, рулит поселением, общий контроллер - декорациями) и обёртки над вводом игрока. В качестве скриншота принёс демонстрацию колодцев и поиска пути: |
Ответ: Rooftop
Вложений: 1
Давно не было от меня отчётов о прогрессе, да? Исправляю.
Состояние на воскресенье, 13 апреля 2014:
Каких-то мелких штук особо и не делал, разве что написал метод для дебага чанков этажей. Вот, полюбуйтесь: Следующие на очереди - приказы на подбор ресурсов, наверное всё-таки рефакторинг, который я планировал делать после конкурса, и выполнение работниками работы. После этого уже можно будет отлаживать полный цикл геймплея и даже делать какой-то баланс. |
Ответ: Rooftop
После длительного перерыва (порядка 10 дней, занятость, все дела...) вернулся к проекту :-D
В общем, мой слив почти гарантирован, но я всё равно буду стараться. Состояние на пятницу, 25 апреля 2014: Путенах в данный момент: И знаете, сколько времени потребовалось, чтобы найти этот путь 100 раз? 100мс. Отсюда вывод: кэшируйте, посоны! (кэшируется не полный путь, а кусочки внутри чанков внутри зданий, ну да об этом выше написано) Чего там ещё работает уже...
Из больших геймплейных элементов у меня всё ещё нет:
Чувствую, в этот лудум я буду делать не лудум... |
Часовой пояс GMT +4, время: 05:12. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot