Сап, мейлач. Это ВЫЛЕЗАТОРСТВА тред. Мне надоело стоять на месте и деградировать, поэтому я решил НАПИСАТЬ ИГРУ ЗА 300 ДНЕЙ. В этом уютном бложике я буду рассказывать сам себе как проходит работа над игрой. Бампать буду фоточками Лейн.
Опыта игродела у меня по-факту нет. В погроммировании умею всего понемножку ну вы понели. Пишу игорь - мультиплеерную стратегию с доступом через веб инбифо ололо-браузерка
Про 300 дней я не пошутил - это жесткий дедлайн, если проебусь - значит я хуй простой. Перед глазами поставил таймер. Сейчас осталось 297 дней, 4 часа 24 минуты.
>>307012 Поздно начинать с простого, т.к. идею вынашивал слишком долго, и не могу отказаться от неё, даже если проебусь в итоге, буду метить на полноценный проэктзадуманную масштабность можно отдаленно сравнить с ранним Травианом
Сегодня весь день кодил карту маршрутов. Игровой мир поделен на регионы, соединенные между собой. То есть граф. Вершины, ребра. Делал поиск по Дейкстре, расчет зоны досягаемости с лимитом. Регионы поделены сухопутные и водные, значит и поиск пути бывает или только по суше, или по суше+прибрежным водным регионам, или по всем регионам. Устал, слишком много на себя взял за сегодня. Чувствую, что половину потом всё равно придется переделывать, т.к. скорей всего дизайн будет меняться по ходу реализации.
>>307000 (OP) >Сап, мейлач Сап >я решил НАПИСАТЬ ИГРУ ЗА 300 ДНЕЙ Интересно. Обычно народ решает написать игру "Что бы в ней были корованы", или "Что бы вылажить в гринлайт и грести бабло". А тут финальная цель - временной срок. Напиши змейку. Почти наверняка уложишься.
А не, погоди-ка. >Пишу игорь - мультиплеерную стратегию с доступом через веб У тебя же уже проект в общих(Очень общих) чертах есть. Но это уже не выглядит простым. Разве что в каком-нибудь Юнити есть плагин, что бы писать браузерки в 10 строк. А иначе тебя ждут все чудеса рассинхронизации игрового мира. Я бы не назвал эту проблему тривиальной.
Я это к тому, что, возможно, тебе стоит для начала выбрать более простую цель
>>307016 >Поздно начинать с простого, т.к. идею вынашивал слишком долго, и не могу отказаться от неё У всех есть такая идея. И все, в итоге, от неё отказываются. Даже, черт возьми, серьезные люди, вроде Питера Молинье, порой должен отложить свои растущие в реальном времени деревья на полку, что бы проект таки был реализуемым.
>Сегодня весь день кодил карту маршрутов. А к чему ты её делал? Обычно, вроде как, сначала определяются с тем, Что делать, затем как делать, и только в конце уже делают. По-моему ты перескочил пару этапов. Уверен что нигде не сбился и в итоге не окажется, что то, что ты делал, не просто не нужно на половину, а не нужно даже близко?
>>307016 >Перед глазами поставил таймер. Сейчас осталось 297 дней, 4 часа 24 минуты. Хуйня. Быстро забьешь. Лучше пиши список задач на неделю-две вперед. Задачи пиши как можно конкретнее. >скорей всего дизайн будет меняться по ходу реализации. Выдели пару дней на написание концепт-дока, туда выпиши все, что ты думаешь об игре, заодно продумаешь детали, потом не придется переделывать.
Сейчас поясню в чем моя проблема. Концепт-док пишу, в локальной вики, хоть и с трудно пиздец. Описание на уровне "ограбления корованов" есть, а в деталях неизменно натыкаешься на то, что начинаешь тестить в прототипах, и половину в итоге выкидываешь. Потому что не стыкуется замысел и реализация. Сегодня пока писал карту маршрутов три раза переписывал с нуля описание того, что происходит. Так что не получается сидеть и писать тех.док без попутного кодинга.
>>307000 (OP) Странно, что ты без опыта игродела берешься за работу длиною без малого в год. Тем более, что до этого ты только стоял на месте и деградировал.
>>307016 > Поздно начинать с простого Никогда не поздно начинать с правильного. А единственный путь начать с правильного в сложном - начать с простого.
Иначе за стадией бурной слабоструктурированной активности наступит стадия депрессии и обесценивания идеи.
>>307042 Я уже не человек, я зверь нахуй Сам недолюбливаю аватаркоблядей, но делаю исключение для общения в своем треде. >>307104 В обычной ситуации я бы с тобой согласился. Но если достаточно напрячься (а я и занимаюсь этим) то сложное распиливается на простые изолированные части, запиливаемые по отедльности.
Вообще речи о том, что у меня нихера не выйдет и зря я берусь за такой проект - ожидаемы. Но вот такой я упертый, не верю в это, работаю. Так что если можно, давайте больше конкретики.
Итак, 296 дней, 16 часов 28 минут. Есть время немного поработать. Думаю над размещением в коде игровых констант. Наверное их нет смысла размазывать по всему коду, лучше создать отдельный модуль, куда запихнуть.
>>307112 > Но вот такой я упертый, не верю в это, работаю. Ну да, уже целый день мечтаешь о том, как будешь всё запиливать - всё как гейдев-бывалый в блошике учил.
>>307184 >>307190 Зойнимаюсь, зойнимаюсь. С последнего вчерашнего коммита в гит diff --stat 10 files changed, 229 insertions(+), 2 deletions(-) Вики со вчера выросла на жалких 2 килобайта.
296 дней, и 40 минут. Сегодня я дико буксовал. Казалось бы, простая задача - есть набор числовых атрибутов, притом сумма атрибутов всегда должна быть константной, а также есть верхние и нижние границы значения каждого атрибута. Нужно любой набор атрибутов привести к такому виду, чтобы удовлетворял условиям. Да еще надо по максимуму (насколько это возможно) сохранять по пропорции этих величин. Оказалось, нихуя не просто. Сначала думал об скейлинге всех величин до нужной суммы, затем впихивании в границы, и так в цикле пока не устаканиться. Но это ж быдлокод, тысячи итераций с учетом double precision. В итоге сделал без цикла, но простыней на 100 строк. Тесты проходит, и это главное. Нельзя больше тратить на такую мелочь столько времени. В следующий раз буду откладывать в сторону или реализовать дубовый вариант.
>>307303 Согласен, балансить. Я о другом немного. Допустим, напишу я в диз-доке что "можно грабить корованы", завяжу на это половину геймплея. Потом сяду за реализацию водопадная модель разработки? фу блять, фу нахуй, и функция корованов оказывается настолько во всех смыслах сложной в реализации, что ну ее нахуй. Диздок можно выкидывать и писать с нуля. Так что я буду лучше общий план в голове держать, а детализацию описывать и кодить параллельно.
295 дней, 16 часов 30 минут Сегодня нужно много зафиксировать в вики - чет дохера далеко ушел в коде. Также, раз уже готова функция балансировки атрибутов, осталось сделать обвязку в виде классов, работающих с этими атрибутами.
>>307316 > ещё не написал диздок, но уже отлаживает функции, которые пишутся в поздней альфе, а можно и до бетки отложить > функции элементарные, но и они вызывают огромные проблемы > уже 3 дня мечтаю о том как напишу симулятор всего Ой всё.
>>307327 Быдлокодю в офисе пятидневку, в рабочие дни трачу на проЭкт 2-3 часа, в выходные побольше.
За сегодня почти закончил дописывать класс Связку-параметров. Изъебнулся, но сделал объекты иммутабельными. Также подключил автогенерацию html-документации на основе комментариев из кода, так что появилась еще одна метрика: Files: 14 Classes: 15 ( 9 undocumented) Modules: 7 ( 7 undocumented) Constants: 11 ( 7 undocumented) Attributes: 23 ( 23 undocumented) Methods: 58 ( 54 undocumented) Total: 114 (100 undocumented) 12.28% documented Описано как видно чуть более, чем нихера. До этого пытался документировать прямо в вики, но тут гораздо удобнее оказалось.
В гите за последние сутки немало нового 9 files changed, 294 insertions(+), 32 deletions(-) но отчасти потому что переносил старый код работы со рандомом (с гауссовым распределением для больших выборок).
В целом хуево поработал сегодня, но это потому что конец рабочей недели, надо было как быдлу бухнуть пива... Завтра выходной, так что буду ебошить весь день. Закончу с параметрами, планирую выстроить примерную последовательность игрового хода (да-да, анон, игоря то пошаговая, забыл сказать).
>>307463 Скриншотов чего? Как код проходит юнит-тестирование разве что.
294 дня, 11 часов 50 минут Думаю над последовательностью обсчета игрового хода. Выглядит пока достаточно просто: Входные данные это состояние мира, и список приказов игроков. Обрабатываем, хуяк-хуяк * На выходе получаем новое состояние мира и список произошедших событий.
>>307530 есть маленькая хитрость. можно все команды в виде лога хранить. а потом когда клиент просит статус отсчитать в этом логе команды с момента последнего обновления для этого клиента. и отослать ему.
при том достаточно считать команды а не время. всетаки стратегия же.
так вот. каждая команда это тик - число. когда команда исполняется - число увеличивается. на серваке у каждого клиента прописано число последнего обновления. и клиент запрашивая статус получает только то что изменилось а не все подряд.
>>307546 в бэкенде руби, графоний с помощью Three.js или если попрет, Blend4Web. Соединять каким-нибудь говном c cgi-bin и веб-сокетами >>307551 Тут есть проблема. Тогда солидную часть логики по расчету придется переносить на клиента. Не хотет. Думаю обсчитывать на сервере, пилить статичный объект, и отдавать клиентам нужными кусками по запросу.
294 дня 6 часов 44 минуты Только закругляюсь с документированием связки параметров. Примерную последовательность действий по обсчету игрового хода набросал в тетрадке. Поаутирую вечером над вики, потом начну пилить каркас обсчета хода.
>>307593 количество просчетов на клиента и на сервере зависит только от того что ты хочешь. для шутана можно тик установить в 20мс и все равно работать будет. ну так мне кажется. в любом случае удачи тебе. главное 40 дней продержись а потом биохимия поможет.
294 дня 2 часа 5 минуты Выдохся на сегодня. Начинать новый этап кодинга на ночь не хочу, т.к. не хочу прерываться потом на середине. Главное что получилось в вики изложить в самых общих чертах последовательность действий по обсчету игрового хода. Завтра начну лепить в коде из говна и палок эту последовательность. За сегодня вики выросла на ~3100 байт В гите дохера изменений: 12 files changed, 388 insertions(+), 197 deletions(-) Но треть из этого - документация в виде комментов к уже написанному, а еще треть - массовое изменения имен базовых модулей (сократил до аббревиатур). По документации (RDoc): Classes: 18 (10 undocumented) Modules: 9 ( 8 undocumented) Constants: 11 ( 6 undocumented) Attributes: 24 (20 undocumented) Methods: 61 (52 undocumented)
Total: 123 (96 undocumented) 21.95% documented
Если бы я каждый день так мог работать, может и 300 ДНЕЙ бы не понадобилось.. Посмотрим че как будет, а пока отдых до утра.
>>307611 ОП, я вот тут подумал, а на что ты живешь? Работаешь, учишься или просто на мамкиной шее сидишь? Только поступил на первый курс, а времени практический нихуя, а когда выбивается свободное время, то делать уже вообще ничего не охота. Кармаки, а как вы подобные проблемы решайте? А то я уже заебался, реализовать себя как-то в творчестве охота, но вот или нет времени, либо сил.
>>307612 Если это реально норм техновуз, то на первом курсе лучше подзадрочиться, понять всю систему и получить нормальную базу. Потом уже будешь знать где можно сэкономить время, как распорядиться им полезнее.
>>307530 Ну это, есть же хоть какой-то прототип там, хоть передвижения героя (героев) по локации. Есть же карта маршрутов. Сферический backend в слое юнит-тестов надоест, лучше делать параллельно какую-то примитивную графику, чтобы видеть, как оно в реальности работает.
>>307612 Я ж писал уже, быдлокодю пятидневку в офисе, денег немного есть. > делать уже вообще ничего не охота > но вот или нет времени, либо сил. Жил в этом состоянии много лет. Оно не проходит само по себе. Мне пришлось ставить вопрос ребром: "согласен ли продолжать жить говном без задач". Сейчас пытаюсь выбираться. >>307623 Я планирую уже в ближайшую неделю упарываться выводом состояния мира и событий в соснольку, то есть получить минимально рабочее что-то. Без этого пока тоскливо, согласен.
>>307757 Отставить, я здесь. 293 дня 5 часов 27 минут
Сегодня весь день возился с первым ПРОТОТИПОМ, по сути просто прогоняя случайно изменямую во времени связку параметров. Сразу выплыли тонны косяков и неучтенных багов. Вечером выложу метрику по коду, там пиздец сколько переписано. Да, я поменял отношение к неконсистентным данным. Если раньше при обнаружении факапов сразу бросался экспешн и все крашилось к хуям, то теперь пишется в лог ошибок а дальше программа ПРЕВОЗМОГАЕТ (фикся неконсистентые данные) и работает дальше. Самое большое на сколько ставил тестить прототип - 400к игровых ходов, за это время в лог упало 142 ошибки связанных с проблемами округления double (не сходятся на пару эпсилонов). Кому там скриншотов?
Вообще думал управлюсь за пару часов, а вышел весь день. Надо успеть за вечер еще что-нибудь.
>>307775 > тред игры про пиратов версия 2.0? есть кулстори?
293 дня 1 час 41 минута Помимо прототипа, самым полезным за вечер было то, что наконец в тетрадке решился накидать всю схему взаимодействия программных частей. Вышло в 5 слоев. Вики подросла на 2600 байт.
В гите появилася прототип, дохера новых тестов по кейсам, на которых код фейлит. За сегодня: 9 files changed, 384 insertions(+), 132 deletions(-)
>>307813 >Помимо прототипа, самым полезным за вечер было то, что наконец в тетрадке решился накидать всю схему взаимодействия программных частей. Вышло в 5 слоев. Вот это ты умный. Такого стиля даже у профессоров в вузе не было. По крайней мере, тебе хоть доставляет всё это, ОП? >В гите появилася прототип, дохера новых тестов по кейсам, на которых код фейлит. А можно чтобы гит появился прямо ИТТ? Я б вбросил немного
>>307824 > Ты что, велосипедик? This. Хотя, как и говорил, возможно на клиентской части и будет какой-нибудь комбайн уровня Unity Webplayer и Blend4Web. >>307846 > тебе хоть доставляет всё это а то > А можно Не. ПроЭкт не краудсорсовый. И с учетом сжатых сроков, я очевидно не найду людей, которые мотивированы работать в таком же темпе. Так что пока один.
292 дня 12 часов 47 минут Кажись, началось - сегодня ночью приснилось, как работаю над игрой. С утра еще раз подумал над схемой всех компонентов, зафиксировал в вики. Сегодня наконец сяду за каркас обсчета игрового хода, благо стало чуть более ясно, что именно в нем происходит.
Разбирался с порядком действий при обсчете хода, немного охуевал. В итоге пришел к важному решению - избавиться от иммутабельности объектов в коде. Тут она реально приносит больше проблем чем пользы.
Переписал часть кода, задокумментил карту маршрутов. В гите: 10 files changed, 252 insertions(+), 108 deletions(-) Вики выросла на 1900 байт
Сегодня наименее продуктивный день из выходных - ебанная мигрень всю вторую половину дня мучала, еще и пива ебнул, благо предки угощали. Выписал в тетрадку основные принципы системы расчета боев (точнее, только разбор крайних случаев). Кодирование каркаса обсчета игрового хода всё ближе к реальности, хотя по-прежнему только у меня в голове. Начинаются трудо-выебудни, времени в день на проЭкт будет меньше, но, ЧСХ, более сжатое время я расходую продуктивнее - сначала весь день думаю что сделать, а вечером делаю. Ладно, отбой.
291 день 2 часа 6 минут "Сегодня я кое что понял" (ц) На самом деле, много. Удалось описать последовательность обсчета хода в псевдокоде, описать в общих чертах структуру данных игрового мира. Придумал простой способ работы с настройками игровой сессии. Реогранизовал иерархию кода проекта, добавил подразделение на дополнительные модули оттого в статистике гита дико много изменений (но 80% это рутинная хрень): 38 files changed, 1699 insertions(+), 1646 deletions(-)
Автор, начинание годное, но путь негодный. Объясняю. Чем тебе интереснее, тем работа делается быстрее и лучше. За 200-300 дней твой интерес угаснет и дело твое встанет.
Также ты не продукт пишешь, а аутируешь код. Разница в целях. Цель продукта работать. Цель аутирования бесконечно писать код. Это может быть очень интересно, но продукта не будет.
Третье. Говоришь, вылезаторство? А что это значит? Если успех у игрока + финансовый, то не будет. Успех у игрока это крутая идея, крутая графика, геймплей, да что угодно. Только не аутирование кода. Игрокам похуй на код, вот незадача.
>>308322 >Также ты не продукт пишешь, а аутируешь код Чего бля? Что ты несешь? У ОП-а цель - сделать продукт в сжатые сроки, ясен хуй что он будет много времени тратить на код, он в в нем НЕ АУТИРУЕТ БЛЯ, он просто хочет успеть к дедлайну сделать продукт. Ему может быть это вообще не в кайф, но он поставил себе цель и идет к ней.
И да, под вылезаторством он явно имел ввиду, что чтобы заставить себя хоть что-то делать, перестать быть ленивым хуйлом и делать то, что задумывал на протяжении многих лет. Не думаю что ОП при этом еще пытается достичь финансового успеха Хотя попробовать можно, не удивлюсь если его игра окажется инди года, лол..
>>308371 >под вылезаторством он явно имел ввиду, что чтобы заставить себя хоть что-то делать >Не думаю что ОП при этом еще пытается достичь финансового успеха Лул, "что-то делать" и я могу. Жопу чесать, например. Если не ожидается успех, то нахрен это называть вылезаторством? Тогда оно и есть аутирование в чистом виде.
>>308371 Спасибо, анон, всё грамотно расписал. >>308486 Успех ожидается ну то есть я на него надеюсь. 300 дней - дедлайн до выхода в открытую бету. Чтобы игру попробовало много людей. Планирую пиарнуться на Хабре и ещё на некоторых ресурсах. Про монетизацию думал, но всё зависит от того, как будет воспринята бета, так что не хочу загадывать.
Я стал ближе к запуску каркаса, который толком нихера не делает, но пробегает все этапы выполнения. Запили сериализацию карты маршрутов, в гите много добавлений 8 files changed, 205 insertions(+), 68 deletions(-)
Вики выросла на 3400 байт, но по-большей части я дополнял FAQ, по игровой механике немного.
Чувствую, что иду медленно. Но что поделать. Опыт говорит, что самые дорогие ошибки закладываются на самом раннем этапе.
>>308588 Шанс обосраться есть всегда, но опыт погромирования абстрактного дерьма у меня уже есть.
289 дней 2 часа 14 минут Сегодня был продуктивный день. Я создавал концепцию накладываемых эффектов, переделывал созданную ранее связку параметров чтобы на них можно было прозрачно навешивать модификаторы от эффектов. Еще на один шаг приблизился к запуску полного цикла. В гите: 10 files changed, 239 insertions(+), 91 deletions(-)
Вики раздулась на 5400 байт: я наконец формализовал несколько правил обсчета величин, начал описывать параметры "регионов" игрового мира.
Вчерашние и сегодняшние размышления натолкнули меня на пробелы в игровой механике, которые почти не формализованы и толком не продуманы. Завтра надеюсь заполнить некоторые из них. Также механизм событий пока в подвешенном состоянии. Вопросы банальные - в какой момент создавать, что записывать, и т.п.
>>308764 делай всё. я болею за тебя и поддерживаю. побольше описывай проблемы и то как ты их решаешь, это гораздо интересней большей части того что происходит на доске.
>>308371 >Чего бля? Что ты несешь? Как профессиональный начинатель проектов я вот понимаю разницу между "аутировать в код" и "создавать продукт". А то ты не понимаешь. А Так удачи ОПу, так то конечно хочется, чтобы что-то получилось.
>>307593 >cgi-bin Я конечно не шарю в твоём стэке - но это разве не устаревшая хуита?
>>308807 >>308949 Суеверия. Хотя кому-то может и трудно будет так. Лично я почувствовал себя гораздо лучше, после месяца вялого бултыхания, когда завел себе дедлайн.
>>308768 >>308777 Ладно, только без особых спойлеро. Давайте сегодня поясню за макроархитектуру проЭкта. Сразу скажу, что такая архитектура стала возможна благодаря особенностям в развитии пилимой игры, а именно: 1) пошаговость, притом с долгим ходом, измеряемым в минутах 2) открытое состояние игровой сессии как в шахматах, всем всё известно. Итак глубоко в недрах располагается слой 0 - логическое ядро игры. Его задача - применить правила игры и все накопившиеся за ход приказы игроков к состоянию игровой сессии, получить на выходе измененное состояние сессии, список изменений (событий) и список изменений, которым подвергаются статусы игроков. Ядро это независимая часть, отдельный процесс, который запускается по требованию Планировщика - фиговины из слоя 1. Планировщик является постоянно работающим процессом, хронометром игровой сессии. Он передает в ядро данные в сериализованном (скорей всгео тупо json) виде. А достает он их из БД, которая в слое 2. Реляционная или нет - пока не решил окончательно. Сначала оценим типы данных и запросов. БДшечка будет важным связующим звеном и единственным местом хранения персистентой инфы. Откуда данные в БД? Из слоя 3, где работают два веб-сервиса - один из них статически раздает текущее состояние игровой сессии (в том числе событие, статусы игроков и пр.), а второй, аутентифицирует игроков и принимает от них приказы, и сует в БД. Слой 3 собирается из говна, палок, апача и на веб-сокетах (точнее не скажу, потому что оно только в планах). Ну а в слое 4 сидит игрок и стучится в сервисы, обмазываясь js, вебсокетами и графонием рендеря состояние сессии с помощью Three.js или еще какой ебалы. Сорри за сумбурный рассказ, я тут пива ебнул, охлаждаю голову. Последние 12 дней я занимаюсь только слоем 0, ядром, но выход к слоям 1-2 планирую никак не позже 50-го дня.
Такс,такс,такс, што тут у нас: 288 дней 2 часа 15 минут
Сегодня кодил как сумашедший: 11 files changed, 342 insertions(+), 91 deletions(-) Практически с нуля подняты работающие схемы применения Эффектов к сущностям игрового мира. Также создан единый EventStream, куда падают события, по которым можно будет отслеживать изменения всего и вся. Завтра, пожалуй, попробую рассказать про то как оно сделано. В вики +1800 байт, в основном фиксировал изменения, которые делал в коде
>>308995 >1) пошаговость Ты же вроде делал реалтайм >как в шахматах, всем всё известно Я тоже мечтал об этом. Но сделать интересную игру без фактора неизвестности (например закрытая колода оппонента) или случайности очень, очень сложно. >отдельный процесс По-моему ты что-то делаешь не так. Процессы не бесконечны. У тебя сервак ляжет на 5к онлайна. Сделай пул тредов, каждый из которых будет обрабатывать действия игроков. Впрочем, предварительная оптимизация - корень всех проблем. Главное смотри, чтобы это не вылилось в рефакторинг на полгода. Сколько лет и месяцев тебе платят за программирование? >Он передает в ядро данные в сериализованном (скорей всгео тупо json) Тупо ядро не должно ничего знать о сериализации вообще. >персистентой инфы Ты неправильно использууешь это понятие. Смысл не в постоянности, а в единственности, неповторимости и отсутствии коллизий. >где работают два веб-сервиса Что-то не понял. Сколько у тебя постоянных коннекшенов от клиента, больше одного? >я тут пива ебнул Да ладно, я тут тоже ёбнул сегодня. Только ты не пиши код на пьяную голову.
Ну и вообще, делай в первую очередь вещи, которые можно узреть своим взглядом. Это даёт +10 к мотивации. Не трать на одну задачу больше двух-трёх дней. Так запас воли иссякнет очень быстро. Остаюсь следить за тредом.
>>309012 > реалтайм Не, пошаговая, тут первый раз упомянул >>307461
Фактор неизвестности будет, т.к. будет много случайных событий, на которые игрокам придется реагировать, да и будет много игроков, каждый тянет одеяло на себя непредсказуемым способом. > отдельный процесс Планировщик - один отдельный процесс. И ядро он запускает по расписанию, отдельным процессом, который отработал и закрылся. То есть по обратную сторону от БД максимум 2 процесса на всю игровую сессию. > Тупо ядро не должно ничего знать о сериализации вообще. согласен, у меня путаница имен. Там внутри есть отдельный компонент сериализатор-десериализатор > персистентой инфы Ты расписал за консистентность, а я о том что энергонезависимое место хранения всей инфы будет в БДшечке, то есть холодный старт только по данным в ней.
>>309012 > Сколько у тебя постоянных коннекшенов от клиента, больше одного? Тут есть нюанс, из-за котрого я думаю разделить конекшены. Наблюдать за игровой сессией можно без аутентификации, то есть сервис тупо раздает статичное состояние игры в пределах хода. А второй сервис уже различает кто какой игрок и принимает приказы >>309034 Стандартная ВПСка обойдется долларов в 30 месяц, и, по моим прикидкам сможет держать до пары сотен игроков (цифра с дивана, пока не тесировалось) >>309040 Один на всех. Посмотрим, может и висеть будет. Прост межпроцессное взаимодействие проще будет, лол, - запустил с ключами и получил по stdout статус когда готово. >>309050 Нету её, как говорил, проЭкт не краудсорс, да и стесняюсь я свой быдлокод выкладывать.
287 дней 53 минуты Сегодня запилил сериализацию-десериализацию эффектов. Притом, изящным костылем в базовом классе, заработал механизм и для всех субклассов. Теперь аналогичный механизм делаю для событий. Но там сериализоваться будет весь EventStream, и всё о чем говорится в событиях в том числе эффекты, поэтому их сериализовать надо раньше. Сделал минимальные заделки для сингелтона Chronos (пафосное имя? время считать будет) В гите: 9 files changed, 204 insertions(+), 11 deletions(-) Вики выросла только на 1800 байт, в основном фиксировал то что делал с Событиями и Эффектами
Завтра выходные. А это значит ебошить целыми днями. А я простудился походу. Буду значит спать с перерывами на короткие рабочие промежутки. Хочу скорей запустить полноценное ядро, пусть там реализован 1% от намеченной логики, и попрототипировать другие слои. Мало ли какие ВНЕЗАПНО выскочат особенности.
>>309132 >Тут есть нюанс Тут есть нюанс... У тебя должна быть статика, которую можно закешироватьв Nginx (любые картинки, статичные JSON, любые тексты и тд) и динамика одним коннекшено>>309132 >Хочу скорей запустить полноценное ядро м. Есть это не так, то ты делаешь плохо. >Один на всех. Ну если это работает хорошо, то хорошо. >сингелтона синглтона >Чуть поупарывался в документирование Это изменено или добавлено? >Хочу скорей запустить полноценное ядро Делай то, что видно глазу, иначе мотивация сильно падает. >вечером отвечу дальше Ждёмс...
>>309137 > У тебя должна быть статика Так состояние игровой сессии и есть статика в JSON ну, я так думаю, время жизни измеряется сотнями секунд. Кеширование из БД подумывал вообще на Redis возложить. > Это изменено или добавлено? ни то, ни то. Это прост суммарная статистика по кодовой базе > Ждёмс... На что там еще не ответил? Сколько на дядю работаю? Около 5 лет, и, скажем так, поднадоело немного. Не то, чего я ожидал от своей профессиональной жизни сейчас трудно вспмонить, может раньше и устраивало, а отношение поменялось с недавних пор
Сегодня был день сериализаций. Я дописал сериализацию-десериализацию событий, игровых клеток, параметров, неба, Аллаха... 13 files changed, 409 insertions(+), 116 deletions(-) Прототипчик еще кстати тоже наваял, но он по сути эквивалентен пачке спаянных вместе тестов в цикле и с отображением лога событий. В вики всего 850 байт, ибо день кодинга. Общий объем растет: Classes: 37 ( 25 undocumented) Modules: 18 ( 14 undocumented) Constants: 20 ( 10 undocumented) Attributes: 53 ( 8 undocumented) Methods: 149 (103 undocumented)
Total: 277 (160 undocumented) 42.24% documented
Я в шаге от того чтобы заработала сериализая-десериализация всей игровой сессии. А там и всё ядро в прототипном режиме заработает (пока будет без БД тянуть JSON из файлов и сохранять туда же). Но нужно еще закодить механизм обработки приказов от игроков. Этим займусь завтра.
>>308995 А неплохо, что тут сказать. Забавно, что ты начал с ядра игры. Я начал с другого конца. На мой взгляд так наглядности больше. Но столкнулся с проблемами продумывания интерфейсов модулей. Наверное стоит просто сесть и набросать каждый из них в общих чертах, потом уточнять до тех пор, пока не покажутся не стыковки.
>>309189 Я думал над использованием ORM. Но тот факт что в Руби есть много их вариантов уже настораживает. Не хочу проебаться потом из-за того что либа чего-то не поддерживает. Мне нужна например атомарность некоторых действий: проверил значение в БД, затем в зависимости от результата проверки изменил.
Сегодня был пиздецки трудный день. Во-первых я болею, во-вторых я взялся на невъебенный кусок и грыз его на части - воздействие игрока на игру. Вот что надумал и накодил: - У нас есть приказы от игрока - Приказы бывают разных типов, но пока я выделил один тип: Spell - Спеллы имеют параметры cost, cooldown, а также списки накладываемых эффектов и производимых действий - Каркас эффектов я уже реализовал, так что збс - Действия это однократное и перманентное изменение состояния сесии извне - В большинстве своем, и действия и эффекты имеют цель - Любая игровая сущность, на которую можно наложить эффект и которая может быть целью приказа, имеет методы add_effect(effect) add_action(action) -В обоих методах генерятся и сбрасываются в пайп событий события EffectStarted и ActionPerformed - В случае add_effect эффект добавляется к списку висящих на объекте эффектов, и обрабатывается уже позже - В случае add_action вызывается внутренний метод action.do(target), где в роли target выступает сам объект В данном случае, динамический диспатчинг руби очень играет мне на руку. Я бы ебанулся наверное строить всё это на Жаве. Список всех возможных заклинаний надо где-то хранить, пришлось придумать Spellbook. Его придется подгружать и десериализовывать из БД. И это я еще оставил в стороне тот факт, что заклинания можно будет тюнинговать (или грейдить). Фактическая величина эффекта, длительность и тп зависит от конкретного игрока.
Измотан. Большущий кусок завершен, хотя меня не хватило реализовать самую верхушку - класс Приказов. В гите: 13 files changed, 457 insertions(+), 2 deletions(-) Правда почти половина здесь - тривиальные юнит-тесты, которые ЧСХ, таки вылавливают баги. В вики +2400 байт, притом в основном только фиксировал что добавляю.
Проснулся со стойким ощущением, что нужен общий Реестр Объектов. Объекты разнородные, раскиданы по структуре игровой сесиии, у каждого есть идентифкатор. Нужно чтобы реестр проиндексировал игровую сессию и давал быстрый доступ к любому объекту по его id. Это решает много проблем. В частности, не понадобится добавлять однотипные методы add_effect и add_action. А может вообще возложить генерацию id на сам реестр. Чтобы не придумывать вручную, и сразу избегать коллизий. Сегодня будет снова день безудержного кодинга.
>>309438 А ты придумай каждому объекту имя(У тебя их конечное число? Можешь именовать их до компиляции?) и хэшируй. Потом сохраняй в либо в дерево с бинарным поиском, либо в хэш-таблицу. А поверх прикрути детектор коллизий, который бы в дебаг-моде содержал свою личную таблицу имя-хэш и при каждом новом хэшировании проверял бы коллизии, а в релизе, когда все объекты будут готовы, а имена известны и точно без коллизий, просто отруби детектор, что бы не делать лишних действий.
>>309504 > компиляция > руби Реестр объектов это и есть хеш-таблица. Ключ - ид-объекта, значение - сам объект. Коллизии отлавливаются уже на этапе помещения в реестр. Да, количество объектов не известно, и может меняться в процессе обсчета игровой сессии
284 дня 3 часа 37 минут Устал сегодня пиздец. 23 files changed, 472 insertions(+), 192 deletions(-) Массивнейшая переработка кода с учетом появления реестра объектов. Всё ради того чтобы можно было написать что-то типа SpellBook[spell_code].to_spell(ObjectRegistry[player_id]).cast(ObjectRegistry[target_id])
Рефакторинг штука коварная, он не приближает меня к цели. Но эта реорганизация уже давно напрашивалась. Так или иначе придется иногда останавливаться и укреплять опоры постройки, чтобы меня потом не завалило кхуям велокостылями. В вики 1200 байт, всего лишь фиксация изменений кода. по Rdoc: Classes: 58 ( 43 undocumented) Modules: 21 ( 16 undocumented) Constants: 26 ( 15 undocumented) Attributes: 72 ( 28 undocumented) Methods: 209 (147 undocumented) Total: 386 (249 undocumented) 35.49% documented
Сроки поджимают. Завтра надо двигаться вперед и напролом. А сегодня отдыхать.
>>309507 ладно-ладно. Ты поймал меня. Я код на руби в глаза не видел. Я и слышал то о нем лишь название. А теперь к делу. >SpellBook[spell_code].to_spell(ObjectRegistry[player_id]).cast(ObjectRegistry[target_id]) У тебя target_id это тоже игрок? Если нет, то не кажется ли тебе, что не особо-то логично. Быть может лучше будет сделать что-то типа GetPlayer(Name).id Синтаксис придуман мной только что, но надеюсь идея ясна что бы симулировать как-бы другой реестр, отдельный для игроков, где доступ к игроку получается по имени, а затем соотносится с позицией в основном реестре.
Ах ты сука! Я понял, почему ты выбрал ruby! Он поддерживается на BeOS! Колись, ты именно на эту платформу метишь? Тогда и понятным становится, почему ты себе Лэйн в качестве аватарки взял!
>>309508 target_id это идентификатор цели. Целью может быть что угодно, любой объект. Смысл делать для разных типов объектов разные реестры? Смысл вводить дополнительную идентификацию игроков по Name? У них уже есть уникальный id, как у любых индексируемых объектов (и id кстати будет маппится на id который primary key в таблице бд) >>309512 Да ты упоролся! Респект.
Сегодня был день адового пердолинга в соснольку, завсегдатаи /s/ бы оценили. Апгрейдил версии рубей, для pg гема - дружил на двух рабочих машинах руби с постгресом. Потом настраивал сервер бд аве Докер, писал скрипты для развертки БД, для дампов, ресторов. Создал папку с гордым названием assets и начал заполнять константые данные в spellbook.json, которые потом еще кладутся в БД инициализирующим скриптом. Вообще, рутинно. День бы закончился на депрессивной нотке, НО, внезапно забрезжила надежда. Похоже что я уже могу обозреть в общих чертах ВСЮ схему, по обе стороны от БД, от конечного юзверя до недр ядра. Теперь моей целью является прототип, разумеется, скелет без мяса, но с принципиальным минимумом функционала. Думаю, выйду на него в течение 10-15 дней.
>>309981 Содомит, я теперь не могу развидеть это! 280 дней 13 часов 44 минуты Я вернулся, Мейлач. Успел даже немного покодить в командировке. Но что более важно, у меня созрел ПЛАН. Не позднее чем за 270.00:00:00 дней до дедлайна я должен выйти на ПРОТОТИП-30. Что в нём будет: Веб-клиент, который максимально говнопалочно отображает состояние игровой сессии - граф игровой карты (всего около 3.5 вершин), у каждой клетки видны её параметры (точнее, один). Можно авторизоваться за определенного игрока и отдать приказ - повесить баф параметра на клетку. Для этого на серваке нужны два сервиса - Nginx который раздает статику игровой сессии, и велосипед, на вебсокетах, принимающий приказы. Глубоко в бекенде будет висеть процесс типа cron-а, который будет совершать ходы, периодически вызывая ядро игровой логики. Звучит несложно, однако пока у меня есть только недоядро и 10 с половиной дней чтобы достигнуть задуманного. Больше всего боюсь закопаться в особенностях Nginx, ибо не имел опыта, так что постараюсь сделать всё МАКСИМАЛЬНО просто. Всё равно переделывать чуть менее чем целиком придется в будущем.
>>310149 Слушай, анон. А у тебя есть требования к твоему проекту? Ну там, вроде, максимальное число игроков? Скорость отклика при таких-то условиях? Количество веселья на игрока в минуту?
И еще кое-что. У тебя записанный вариант архитектуры в подробностях? Какой модуль с каким взаимодействует? Какие контракты они друг-другу выставляют?
>>310221 > А у тебя есть требования к твоему проекту? Требую масштабируемость, но более точно сказать пока не смогу.
> У тебя записанный вариант архитектуры в подробностях? Неа, именно в подробностях на бумаге нет. Все компоненты завязаны и взаимодействуют через БД, структура таблиц и их отношения - вот и весь контракт.
280 дней 2 часа 27 минут 16 files changed, 335 insertions(+), 56 deletions(-) День проведенный за еблей с постгрёй. Формировал апи для работы с бд (завертывал типичные кейсы использования БД в функции, покрывал тестами). В ядро добавил два напрямую связанных с БД действия - проверку на доступность приказа от определенного игрока и расход маны на совершение заклинания. Само по себе не сложно, но прежние юнит-тесты конечно пошли по пизде, пришлось переписывать.
Завтра спроектирую и запилю две основных таблицы для хранения информации об и истории состояний игровых сессий. Тогда можно будет проверить цепочку из бд -> десериализация -> ход -> сериализация -> в бд. Как заработает, ядро можно будет оставить в покое до наступления дедлайна по ПРОТОТИПУ-30
>>310385 Да куда угодно. Начиная с "Там на симпозиуме нужно представить наш продукт и во всех красках расписать, какой он замечательный" и заканчивая "Там 10 фур с цементом подъехало. Иди разгружай"
>>310385 На один день. Такое изредка бывает - когда все инженегры уже в командировках, а ждут ещё в одной, то приходится ехать всё устанавливать, настраивать и показывать заказчикам. Кстати, это еще один довод против наемной работы.
279 дней 13 часов 55 минут Вджобываю. Сегодня к вечеру буду выжатим лимоном, но удовлетворенным.
>>310475 Будто что-то плохое. Сидеть задрачивать тех.спефикации для меня значит не успеть к дедлайну с вероятностью 146%. >>310476 Угу, и имя этому мжп ПРОТОТИП-30
279 дней 3 часа 1 минута Плодотворный день, несмотря на то, что я местами не выкладывался на полную. 32 files changed, 477 insertions(+), 76 deletions(-) Добавил скрипты формирования двух таблиц, обмазал их апи, начал писать модуль сопряжения ядра с БД. Работает выгрузка-загрузка списка приказов. Так уж получилось, что я максимально далеко отделил внутреннюю логику от ГУЯ. Так что проблемами индейцев (выводом графония) будет заниматься модуль Artist, получая по крохам инфу об изменениях в игровой сессии от Шерифа-ядра. Поскольку для будущего ПРОТОТИПА-30 работа сводится к выводу графа с разноцветными кружочками, бекенд Артиста уже на 90% готов, лол.
Завтра надо уже добить выгрузку и загрузку всей сессии.
>>310504 >Будто что-то плохое. Сидеть задрачивать тех.спефикации для меня значит не успеть к дедлайну с вероятностью 146%. Не, у тебя By design хуйня какая-то. Например ты хранишь информацию об объектах где-то в памяти, чтобы её Nginx отдавал. Нахрена? Кэширование не для этого придумали. Там должны быть файлы, которые никогда не меняются: картинки, шрифты, часто скачиваемые файлы. Например, как ты оповещаешь клиентов об изменении ситуации?
>>310506 > Например ты хранишь информацию об объектах где-то в памяти, чтобы её Nginx отдавал Только в БД. А для Nginx инфа будет выкладываться в виде структуры файлов и папок, на ССД раздел. Он её будет раздавать. Это статическая инфа в той интерпретации, что для её получения не выполняется никаких динамических вычислений, и время её жизни измеряется сотнями секунд. > Кэширование не для этого придумали. Не факт, что именно кешировать буду. Nginx в принципе быстрее и менее затратно раздает статику чем апач, не только из-за кеша. > Например, как ты оповещаешь клиентов об изменении ситуации? > Пошаговая игра Состояние сессии меняется через заранее известные интервалы времени.
>>310513 А время у нас теперь совсем не дрифтует? Ты бы все же прикрутил что-нибудь, что бы ядро предупреждало модули работы с пользователями о новом ходе.
>>310514 Я так это вижу: Клиент конектится, и ему сразу "сейчас ход 10, следующий ход наступит через 3:48. До этого момента новой инфы о сессии не получишь". И сразу всё на свои места встает. Интервал считает сам клиент, а то слишком жирно будет если сервер всех будет лично оповещать что время пришло. Ход может начаться позже срока, но раньше - никогда.
278 дней 3 часа 1 минута 15 files changed, 225 insertions(+), 11 deletions(-) Не очень плодовитый по метрике день, но ОЧЕ ощутимые результаты получены. Заработало ядро. Запускается одним скриптом, где ключами даешь id_сессии, интервал игрового времени за который надо посчитать изменения, и параметры подключения к бд.
Внутри он выгружает нынешнее состояние сессии и графониевых данных (зовется vision), выгружает накопленные приказы от игроков, применяет всё, затем сохраняет в новую строку таблицы бд измененное состояние сессии, список произошедших событий, список исполненных приказов, и измененный vision. Сделал 25 ходов пока отлаживал. Завтра создам полноценную тестовую сессию (c графчиком хотя бы на 10 элементов), на которой будет показывать свои возможности будущий ПРОТОТИП-30. Сейчас уже уверен на 90%, что успею его в срок.
12 files changed, 293 insertions(+), 10 deletions(-) Трудовыебудни. Сделано меньше, чем хотелось бы. Начал формировать постоянно работающий бекенд модуль-"хронометр". На первых порах у него из задач только запуск ядра когда время хода подходит к концу и реген маны игрокам. Да, запилил константную начальную сессию для будущего прототипа. Отмотал 100 ходов, полет нормальный, ивенты генерятся, приказы исполняются, эффекты висят, спадают. По-хорошему, для формирования начальных значений должен быть отдельный модуль, но пока приходится ручками хардкодить.
За день-два планирую добить бекенд и приступлю к сервисам отображения данных.
>>310826 Если ты используешь вебсокеты, то используй их! Пускай на каждую игру будет только один таймер на сервере. При срабатывании он сообщает клиентам об изменившейся информации. Ну или пускай он говорит о начале хода, а они подтягивают всю нужную инфу. Так будет немного более костыльно, но меньше изменений в коде. О времени на клиенте беспокоиться не стоит. Там только отображение. Ход может начаться (по неизвестным причинам) до конца таймера. А если таймер хода заканчивается, то просто остаётся на нуле.
>>310829 За ходом игры могут следить не только игроки, а вообще все. Но по вебсокетам подключаются только игроки. Игрокобоярам будет приходит отдельное уведомление "ход совершен". А для зрителехолопов - таймер на стороне клиента (на js), по истечении которого - перезапрос страницы.
>>310888 > Скрины Пока был один, сегодня будет второй. > гитхабчик Говорил, пока что это не опенсорс > стримы Думал над стримингом, но решил отказаться - не факт что это будет интересно, а гемора с этим много. Да и внутренний социофоб этому не рад.
>>310937 Я раздумывал над готовыми комбайнами, но не думаю, что это нужно. Готовый игродельный фреймворк это сборище свистоперделок, из которых нужно процентов 10 от силы, остальное оверхед. Может для какого-то другого проекта я бы и сел работать на готовом, но тут специфика такова, что можно из максимально простых компонентов создать своё компактное решение... Короче считайте что велосипедостроитель/10.
276 дней 2 часа 56 минут* 5 files changed, 204 insertions(+), 1 deletion(-) Мало сделано (много пришлось работать), но опять значительные видимые результаты - заработал процесс хронметража. На скрине. Теперь на бекенде прототип игры пашет сам по себе. Оставлю работать на ночь, лол. Халява с простыми задачами заканчивается, дальше будет сложней. Разберусь с основами nginx, запущу его в докере, буду генерить для него структуру директорий с файлами, где хранятся куски данных текущей игровой сессии в json, а потом попробую их оттуда позапрашивать, посмотрю на быстродействие.
Сравнение раздачи небольшой статитики: апач и nginx, 1к запросов одновременно. Мало того что 90% почти в три раза быстрее отдает, так еще и не проябывается на много секунд при забивании очереди запросов. Значит nginx. Будет раздавать статичные json текущей сессии. Вопрос теперь как их подгружать на веб клиенте? Аяксом? Или через jQuery? (Хотя там тотже xmlhttprequest вроде)
>>310984 Двое помимо меня? Тогда это уже успех. >>310985 >>311154 Я нуб в веб фронтенде, читаю только краем глаза про то тот цирк что творится в js. Fetch это значит через хайповые промисы? Где результат запроса асинхронно возвращается в заданную функцию? Вообще, звучит удобно. Попробую.
275 дней 2 часа 44 минуты 12 files changed, 178 insertions(+), 9 deletions(-) Третий день подряд мало сделано, но видные результаты. Заработал nginx, ему дампится состояние текущего хода, он раздает его статично. Урл выглядит так: sessions/%id сессии%/turns/%номер хода%/--набор json'ов-- Еще и каждый ход символьная ссылка latest обновляется и указывает на последний сделанный ход. Осталось написать клиентскую часть, который будет тягать эти json-ы в нужное для клиента время. Фетчами. Но это оставлю напоследок. Завтра приступлю к второму вебсервису, который по вебсокетам принимает от игроков команды. Если вебсокеты не сложнее TCP, то думаю управлюсь за пару дней. Думал, если управлюсь с ПРОТОТИПОМ-30 раньше чем за 30 дней, устрою себе праздник - порефакторю код остаток времени. А вот сейчас уже хз - будет ли это время... Всё-таки отсутствие опыта во фронтенде может дико затормозить... не хотел спутываться с ним, но что поделать. Буду делать всё максимально просто и прямолинейно.
>>311162 >Где результат запроса асинхронно возвращается в заданную функцию? Асинхронно он в и AJAX запросах может возвращаться. В этом плане ты ничего не теряешь если что.
>>311222 По ссылке: >Well good news: the jQuery ajax APIs already return Promises! Чет не вдупляю, тогда в чем разница использования fetch и jQuery.ajax()?
274 дня 2 часа 16 минут Ну это вообще пушка - заработал сервак на вебсокетах. Оказалось несложно, большую часть времени провел разбираясь с основами EventMachine (паттерн Reactor). Что сервер умеет - авторизовывать подключившегося юзверя по логину-паролю либо по токену (по факту, пока пропускает всех), и затем принимает от него приказ на совершение заклинания, кладет в БД. Проверял путем ручного ввода js в дебаггере браузера: var socket = new WebSocket("ws://127.0.0.1:8080") и далее по тексту. Формат сообщений - json.
Стало быть, осталось только клиентскую часть пильнуть. Думал, может на чистом канвасе гуй писать? Ну или что там в Three.js за него... Заморачиваться с нативным html вообще не в кайф.
>>311281 >Чет не вдупляю, тогда в чем разница использования fetch и jQuery.ajax()? Подрузамевается, что fetch - нативная штука для браузера и тебе не нужно никаких сторонних либ. На практике тебе придётся поддерживать старые браузеры, да даже не все новые браузеры могут в fetch. Поэтому тебе нужно будет тащить какую-то стороннюю либу anyway, которая будет реализовывать эти самые промисы, если браузер их не поддерживает.
Принципиальной разницы так то нет, это кому как нравится, хочешь - Jquery, хочешь - что-то ещё. На этом ёбанном джаваскрипте фреймворки каждый месяц выходят и там куча всякой новой хипстерской хуиты. Можно много бугурта в интернете почитать на эту тему.
>>311296 > На практике тебе придётся поддерживать старые браузеры И тащить бесполезный груз в виде жидквери только ради аджакса. А ты не охуел, если можно реализовать нативно? Большинство современных браузеров поддерживают фетч (даже Эдж), остальных можно смело слать нахуй имхо.
Ясно. Только хром. Да опять же, раз поверх XMLHttpRequest'a построили ещё какой-то костыль, это не значит, что он устарел. Просто лишний слой абстракции, который ещё и хуёво поддерживается.
Блджад, вы и сюда свои холиворы притащили. Почитал, что можно вставить проверку на нативную поддержку fetch, и в случае чего юзать полифил (хипстерское слово, узнал смысл вчера). Прост синткаксис у него действительно неплохой, особенно выстраивание цепочек вызовов.
Сегодня весь день вдупливал в Three.js, а заодно и в Blend4Web. Ебаный стыд, как же 3D тормозит в вебе тормозит в вебе! У меня правда видеокарточка днищенская, но всё же. Ладно, мои запросы к 3D небольшие, авось проканает. Читал как накладывать 2D интерфейс (кнопки, поля ввода, таблицы) поверх 3D, пишут юзай сраненький html. Видимо от верстки не сбежать. Сижу пилю хтмл, пердак тлеет.
273 дня 1 час 56 минут Всё еще печет от html. Но понемногу осваиваю. Flexbox-ы попробвал - прикольно. А еще у меня идея одна охуительней другой - а не попробовать ли меня в качестве одного из режимов отображения игровой карты прикрепить ГИС (на leaflet). Нарезать картинок карты - плевое дело, нанести всякую 2d-хрень, и будет как фоллбэк режим вместо 3D (или наоборот, как детализированный режим просмотра карты, пока ВебГЛ тормозной) Пиздец, да?
272 дня 1 час 46 минут Нет, прототип вроде даже готов в какой-то мере... По крайней мере больше не нужно лазить в консоль, работает постановка заклинаний через стандартные inputы и buttonы + js-быдлокод. Но с отображением карты пиздец. Нет, 2D карта даже работает, и на неё уже наношу кружки с координатами клеток, линиями соединяю их, раскрашиваю в зависимости от типа клетки и от наложенных эффектов. Но 3D... Бля уже пока писал уже силы кончились. Надо отдохнуть. Завтра может со свежей головой изложу.
>>311615 У меня цель - достичь понимания того что я делаю. Вот например, текстуры для сферических моделей? Тот же Свиборг. Как я текстуры генерить то буду, вилкой что-ли? Ну то есть, похоже что текстуры для THREE.SphereGeometry должны быть в равнопромежуточной цилиндрической проекции. Курю про UV-преобразование.
>>311615 Он под веб пишет. Плагин никто не юзает, что там webgl добавили? Полюбому тормозящее говно / 10, как всё и всегда. И все молчат про 10000 подводных камней.
>>311650 Да, ходят слухи что Unity под ВебГЛ это херня из-под ногтей и практически не развивается.
271 день 4 часа 9 минут Это были адовые выходные. Мозг всё еще трещит от новой информации. Но я принял историческое решение - использовать большой пласт опенсорсного кода для генерации карт (еще точнее, ландшафтов планет). Оценив время разработки хорошего генератора планетарного масштаба (с тектоникой, движением воздушных масс и пр.) в минимум 30, а скорее, 60 дней, я понял что не вывезу по срокам. Уже начал курить код. Оставим ПРОТОТИП-30 позади, номинально он работает. Новая цель - ПРОТОТИП-40, в котором должны быть достигнуты две вещи: 1) до сих пор несуществующая тулза по генерации начального состояния игры 2) настоящий 3D произношу как ТОРИДЭ режим отображения на веб клиенте. Оба пункты будут выполнены с помощью вкуренного и переработанного генератора.
>>311921 Сорри, анон, забегался, не смог вчера добраться.
269 дней 4 часа 51 минута Последние два дня разбираюсь с фреймворком для генерации планет, и заодно с ТОРИДЭ графикой. Это пздц, анон. Меня это ТОРИДЭ просто заебало уже. Вертексы какие-то, блять. фейсы, дисторт, релаксация нахуй. Рей кастер создадим - пересечение посчитаем... Вообще охуеть. Так вышло, что фреймворк использует древнюю версию Three.js, ну я естественно решил его подружить с текущей версий (Зачем? нахера? Потому что дебил могу). С болью, кое-как, оно запускается и чето рисует. Осталось управление камерой прикрутить вменяемое. И оставлю на какое-то время графоний в покое. Буду получать от фреймворка топологию в сериализованном виде, запихивать в ядро. Пока что идея получить в ПРОТОТИПЕ-40 графониевую карту на клиенте выглядит реалистичной.
>>312014 Ты скрины прототипа-30 запили сначала.А то он уж пошел дальше, а на нас хуй забил мол и текста хватит, сам то на прототип-30 на смотрелся, а нам как бы ничего. Пока код писал и отлаживал наблюдал за прототипом 30, трогал его., а про нас даже и не подумал.Хоть один скриньочучек маленький скинь оп. А то нехорошо как-то.
Ладно, держите скрин. Чуть более чем половина - заглушки, но остальное посчитано и отображено за счет тяжкого труда бекенд сервисов.
268 дней 2 часа 25 минут Доделал таки камеру, сделал нормальный уг на самом деле, но пока пусть так бекграунд, починил выделение клеток. Всё, графоний в сторону. Начал делать передачу топологии, с последующим сохранением в БД. Поймал себя на том что говнокожу со страшной скоростью. Решил выделить для рефакторинга каждый 10ый день оставшегося срока.
>>312251 Сам не играл, но судя по описанию, пересечение процентов на 20, от силы. >>312263 В данном случае "топология" не имеет отношение к бекенду. Я говорю о карте (графе) путей, а также температурной, высотной карте, которая генерится во фреймворке, и которую нужно передать на сервер, чтобы он на основе неё создал начальное состояние игровой сессии
>>312395 >которая генерится во фреймворке, и которую нужно передать на сервер Подожди, а почему ты на клиенте что-то генеришь, сервер ведь по идее должен генерить/изменять "топологию" и отдавать клиенту(ам) тот же анон
>>312470 О, точняк, а я то пытался вспомнить, что же я забываю! Меня тож волнует что я уже дней десять пилю скелет, и не работаю над содержанием. Но что поделать. Проще идти от пустого скелета чем от сферического геймплея в вакууме
>>312478 Хороший вопрос, я бы сам его задал. Суть такова: фреймворк это овер 9000 строк JS кода, который у меня нет сил и желания сейчас тащить на сторону сервера. Да и графический интерфейс для генержки тоже нужен. Поэтому есть клиенсткая "спецстраница", в которой можно поработать с генератором, а потом отправить всё на сервер, создав новую сессию. А обычный клиент загрузит с сервера лишь зерно сессии, и получит при желании все те же данные (пока что сделано так).
Лол, а ведь ты уже месяц как работаешь. Считай уже минимум моего оптимизма по поводу тебя лично ты заработал, у тебя есть весь потенциал на самом деле. Но если все заебет то не шли нахуй геймдев и перспективы в IT, сделай все-таки перерыва на простенькую игрушку за две недели
>Пишу игорь - мультиплеерную стратегию с доступом через веб Это заранее требующий Full-stack навыков. Чуваку с опытом всего понемногу может казаться что это для него, но как раз ему это противопоказано, для фулл-стака надо знать комплекс всякой хуйни и хорошо
>поэтому я решил НАПИСАТЬ ИГРУ ЗА 300 ДНЕЙ Начни с какого-то пихла типа Ren'Py или вообще HTML+JS И делай простые вещи, на недельку работы, на две, на два месяца итд. Можно как чтоб его черти в жопу ебалиАкабур начинать с совсем говноподелий, но как-то идейно связаных и каждую следующую игру на ту-же тему
Ты обретешь какой-то отклик, будешь видеть что делаешь, может даже наберется коммьюнити которое будет тебе на доширак скидываться Делать сразу огромный проект это прямой способ соснуть потому-что ТЫ ДАЖЕ ВРЕМЕНИ ОЦЕНИВАТЬ НЕ УМЕЕШЬ. Серьезно, воообще не умеешь. Этот навык появляется только с опытом, у меня после двух лет опыта работы кодером появился навык оценивать сроки с зазором в два-три раза в любую сторону и это уже хорошо. Ты пока что не можешь отличить проект на 14 дней от проекта на 3 года.
>>312619 >Тред не читай, сразу отвечай У меня есть знания в фуллстэке. Достаточные чтобы их применять и таким образом копить новые знания. По срокам и объемам работ тоже уже перетирали. Любой проект можно пилить, шлифовать, модернизировать, додумывать до бесконечности. Это известная проблема "перфекционистов". Потому дан срок, к которому игорь должен быть готов к употреблению конечным пользователям, пусть на правах беты. Сколько будет реализовано в геймплее от задуманного к дедлайну? 80%? 50%? Увидим.
266 дней 20 минут Сегодня маловато успел. В воскресенье ещё и планы, значит завтрашний день должен быть пиздецки ударным по труду. Заведу будильник часов на 8.
>>312653 А, тогда я протупил. Если 5 лет опыта есть то можно и большой проект делать. Я чет подумал что он студент/школьник который иногда гнумов делал в редакторах и тут вдруг решил заебашить огромный проект
Господи, как же сложно стучать по клавиатуре как макака. Была мысль, о том, что в мое говно никто не будет играть, поэтому я на время прекращаю разработку
>>312650 Просто интересно, как ты себе представляешь демку того же Травиана, допиленного на 10%?
265 дней 3 часа 37 минут 9 files changed, 267 insertions(+), 45 deletions(-)
Это был неплохой по продуктивности день, но, конечно, за три дня я не отработал. Зато, результат есть - утилита по формированию стартового состояния заработала от начала и до конца. Уже стало понятно, что можно будет запилить простенький графический редактор карт. В будущем. ЧСХ, в процессе работы немного изменилась структура и логика заполнения БД, так что еще несколько часов мне придется потратить на то чтобы ядро и хронометраж заработали в новой схеме. А дальше - допиливать клиенсткую часть. Вроде бы, 5 дней должно хватить, но завтра день выпадает, дела. А ну да, технический долг растет со скоростью овер 9000% в день. Как и говорил, 260й день потрачу исключительно на латание костылей.
>>312785 Руби это допиленный и засахаренный питон. Почему выбрал динамический язык - писал выше. >>312787 И как это доставлять без а) хостинга б) раскрытия быдлокода ц) отвлечения от основной разработки? Так что первые месяцы вариант - только скрины. >>312795 Да ничо.
Сегодня съябываю на весь день, вернусь вечером. Хреново, что пропускаю, но случай исключительный, нужно быть.
263 дня 2 часа 27 минут Сегодня неплохо поработал. Доработал напильником ядро, процесс хронометража, вебсокетный вел. Теперь снова работают постоянно, обслуживают сессию ПРОТОТИПА-40. Осталось это отобразить в вебе. Для вебклиента подготовил инфраструктуру - докерный nginx с минимумом настроек. Следующие два дня меня ждет увлекательная (нет) ебля с html+css+js+ajax.
>>313152 Да ну, это нереально пилить краудсорсово, учитывая что 80% концепта пока только в голове лежит.
262 дня 1 час 37 минут Тяжелый день, но хорошая работа. Вовсю пилю вебклиент для прототипа-40. Разобрался с ssi nginx, чтобы тянуть серверное время простым запросом, выкинул flexbox-ы, запилил UI на relative/absolute с translate-ами. Начал формирование клиентского API на js, уже тянется список открытых сессий и состояние выбранной сессии. По факту, из запланированного в ПРОТОТИПЕ-40 осталось реализовать только покраску 3D карты в зависимости от текущего состояния сессии. Ну и вернуть в чуть менее костыльном виде связь по вебсокетам. За завтра мб уложусь, тогда и поскриню.
261 день 1 час 32 минуты День лютой JSной асинхроты. Вроде работает, но как это обкладывать тестами я ХЗ. Вбрасываю скрины. На первом - старт, на втором - работа с сессией. Не всё успел по прототипу, но решил, что пока не нужно - всё равно показывал бы липу. Знаю, что выглядит не особо насыщенным, но под капотом здесь больше, чем снаружи. Подзаебался. Похоже, нахожусь на дне своего биоцикла если он существует, лол, бытовуха сказывается. Ладно, такое состояние долго не длится. Завтра день 0 - (впервые) разбор технических долгов. Очевидно, я не успею решить хоть сколько-нибудь значимую их часть, но хотя бы подсчитаю их все, разложу по приоритетам. А в ближайшие дни намечу новую цель.
>>313426 Например, есть у меня таймер, по окончании которого делается аякс-запрос, результат возвращается в другую функцию, которая этот таймер затем снова стартует. Можешь пояснить, чем конкретно будут лучше Промисы? >>313514 Годная игорь >>313666 Стараюсь не реже одного дня выходить на связь.
260 дней 1 час 46 минут 93 files changed, 266 insertions(+), 308 deletions(-) Несмотря на внушительную метрику, ценность работы КРАЙНЕ МАЛА. Разбирал код, выкидывал старые куски к которым точно не вернусь. Написал 137 TODO-шек, на каждую из которых надо потратить от 10 минут до половины дня. То есть по прикидкам где-то дней 10 на исправления - притом ни в геймплей, ни вообще никуда ничего не добавится, чисто рефакторинг. Короче, нахер такое. Буду исправлять только процентов 20 от силы, между делом, и в 0-ые дни. Новую цель пока не выбрал. Наверное, буду насыщать клетки свойствами, потом добавлю наконец игровые стороны..
По-прежнему, дно биоцикла. Завтра пятница, нет варианта кроме как нажраться. Может удасться прочистить мозги.
Фух, отпустило (вроде бы). Посмотрим как завтра проснусь. Не всё проебано, будем работать.
Сегодня не так много поработал, как хотелось бы, решил напилить наконец обобщенный механизм сериализации, для всех игровых объектов. Начал помимо этого пилить игровые стороны. Всё поинтереснее, чем разгребать косяки.
>>313677 >Написал 137 TODO-шек ОП, не делай так. Это очень сильно демотивирует. Нашёл что-то - сразу исправляй, так вроде явный прогресс есть. Даже если ты что-то и забудешь - потом вспомнишь. А когда перед тобой 10 дней беспросветного геморроя - сразу руки опускаются.
>>313897 С одной стороны да, демотвирует. С другой стороны, иметь список в осязаемом виде лучше чем держать в голове, а если о нем не думать, то косяк от этого не перестанет быть косяком
258 дней 13 часов 43 минуты Проснулся с бодуна, но посвежевший. Силы есть. Кстати подсел тут на подкасты, слушаю пока в транспорте еду в основном. "Как делают игори", сейчас серия 166 "Монетизация". Машинное обучение у них для персонализации предложений. Охуенчик.
Фух, дописал общую сериализацию. Чудеса рекурсии и велосипединга. Но проходит весьма дотошные тесты. Конечно универсальность ограничена, но все нынешние и немного будущих требований она покрывает. Включу фелосафа: одна из основных проблем погромирования - суть проблема курицы и яйца. Ты пишешь яйцо, но ты еще не видел курицы. Ты пишешь курицу, но ты еще не щупал яйца. Месяц назад я бы не смог написать этот сериализатор, просто потому что не смог бы до конца осознавать с какими проблемами он может столкнуться. Я бы дописывал его раз за рзаом, превращая в башню из костылей. А сейчас - он достаточно красивый и стройный.
Да, у меня по жизни СИСТЕМНОЕ погромирование головного мозга. Давно пора уже возвращаться к работе над, собственно, игровой логикой.
Забыл вчера вкинуть метрику. 10 files changed, 449 insertions(+), 61 deletions(-) Достаточно неплохо, учитывая что вчера я много отдыхал, а вечером так вообще бухал пиво и пырился в сериал. Это кстати впервые так проведенный день за последние 40. Вывод - отдых полезен. Я определился со следующей микроцелью. Нужно допилить такой какбе "политический" режим отображения карты (всякие географические режимы уже есть, к ним только переключатель надо отобразить). Для этого сейчас уже есть необходимые данные.
>>314060 Неа. Универсального решения не существует, пока есть как минимум а) циклические ссылки между объектами, и нужно решать, где и до какой глубины сериализовывать, а где обходиться идентификаторами-ссылками (притом определиться откуда их брать вообще ответ: из реестра объектов) б) коллекции полиморфных объектов, где фактический тип отличается от ожидаемого (и это принимая во внимание динамическую типиацию рубей). Хранить в каждом объекте фактическое имя класса - не вариант, это приведет к ненужному на 80% раздуванию сериализованных данных, что в численном выражении будет десятками лишних мегабайт трафика на каждого пользователя в сутки. Ну и не стоит забывать про в) вопрос с аргументами конструкторов классов при десериализации.
257 дней 2 часа 12 минут Вишенкой на торте ебли с сериализацией является проблема со ссылкой на другой объект, который еще не был десериализован (Ибо очередность (де)сериализации очевидно нигде не прописывается). Тут на помощь пришли Прокси-объекты, которые выдают себя за реальные, а сами лениво лазят в реестр объектов, когда к ним обращаешься. 15 files changed, 238 insertions(+), 36 deletions(-) Не шибко большой результат, и не особо внушительное приближение к микроцели - "политической" карте. Вроде и делать не так уж много надо. Решим так, через трое суток она должна быть готова. И ниипет.
256 дней 2 часа 24 минуты 6 files changed, 209 insertions(+), 13 deletions(-) Чет вообще не очень сегодня. Работа и бытовуха съели почти всё время. А осталось всего два дня. Сегодня буду захвачу хотя бы час-два от ночи, чтобы не выбиться из графика.
>>314397 лол, CХОРОНИЛ! >>314393 Понимаю, со стороны всё выглядит не очень убедительно. И играбельного прототипа в силу специфики проЭкта не будет еще долго. Но завтра будет скрин режима "политической" карты, а значит поставленную 4-х дневную цель я выполню >>314440 А кстати интересно, какие игры выходят за 45 дней не фулл-тайм разработки?
12 files changed, 291 insertions(+), 390 deletions(-) 255 дней 3 часа 12 минут Почти всё работает на новой сериализации. Сегодня ночью добью, и останется добавить отображение на фронтенде.
254 дня 1 час 31 минута Фух, Антуан, как же я заебался сегодня. Но цель достигнута. Настоящий режим, отображающий территории захваченные игровой стороной цветом её флага. Ты будешь лоллировать, но я отказался от прокси-объектов. Вчера ночью не мог заснуть, думал о них, и придумал пару кейсов, где они не справляются. Несмотря на то, что всё наследуется от BasicObject и направляется через method_missing, некоторые вызовы, например === всё же невозможно переопределить, а значит абстракция - ^проткнутая^ дырявая. В итоге сделал через накопление лямбд при десериализации с постпроцессингом в самом конце всех вложенных действий. Думать что делать дальше буду завтра. Ща наебнул пива и отдыхаю.
>>314658 >Несмотря на то, что всё наследуется от BasicObject и направляется через method_missing, некоторые вызовы, например === всё же невозможно переопределить Ого, а кто тут говорил что руби это допиленный питон? >В итоге сделал через накопление лямбд при десериализации с постпроцессингом в самом конце всех вложенных действий. А зачем ты вообще заморочился? Сериализовал бы только тупую дату/id объектов как все делают.
>>314676 Она не во всем такая. Бизнес-логика в основном прямолинейна. Но когда пишешь внутрисистемные вещи (программируешь для прикладников по сути), и хочешь чтобы этими вещами было пользоваться просто, то всю сложность приходится концентрировать внутри. >>314688 Не играл, но идея в целом здравая. >>314738 > руби это допиленный питон? Так и есть, прост nobody is perfect. > только тупую дату/id объектов как все делают. Десериализовать как будешь? Допустим, простейший случай, [ {"id" : "peka1", "data" : 42, "ref" : "peka2"}, {"id" : "peka2", "data" : 34, "ref" : "peka1"} ] Две пеки должны ссылаться друг на друга полем ref.
253 дня 1 час 6 минут Сегодня было мало интересного. Наконец решил вернуться к ведению Redmine (забросил его во время спринта к ПРОТОТИПУ-30, ибо времени много отнимал). Запилил два таска, сделал два таска. Запилил еще два на завтра. Сегодня разбирался с БД, делал из одной таблицы - три. По сути, часть бизнес-логики всё же оседает в БД, хотя я этого не особо хотел. 11 files changed, 300 insertions(+), 31 deletions(-) Большая часть из закоммиченного - SQL-запросы и персистентые данные для БД (спеллы, экшны, эффекты)
С одной стороны, работы - непочатый край, и это несколько демотивирует. С другой стороны, инерция движения уже выработана, так что буду пренебрегать, и упрямо вальсировать к цели.
>>314826 >nobody is perfect Я то сам в рубях не рублю. Расскажи как знающий человек, чего там допилили. Меня просто такая херня напрягает: a + b is interpreted as a+b ( Here a is a local variable) a +b is interpreted as a(+b) ( Here a is a method call) Еще говорят что кроме рельсов на руби никто ничего не делает. >Десериализовать как будешь? В два прохода - первым фигачим объекты, вторым разрешаем ссылки.>>314834 >>314834 Давай, не забивай, добра тебе.
>>314826 >Десериализовать как будешь? [ {"id" : "peka1", "data" : 42, "ref_id" : "peka2"}, {"id" : "peka2", "data" : 34, "ref_id" : "peka1"} ] Вот так? Да, на момент создания peka1 объект peka2 не существует, но ты ссылаешься на него не прямо, а на его айди. И на момент вызова он уже будет существовать. Единственно, в конце десериализации надо проверить валидность всех айди, на которые ссылаются. Ну, и при желании, как сказал >>314878 анон можешь ссылки по айди превратить в прямые.
>>314878 ты пишешь a + b, по сути ты вызываешь a.+(b) То есть ты вызываешь у объекта "а" метод с именем "+" и аргументом "b" В языке, ВСЁ есть объект и всё есть выражение. Скобки опциональны - это вообще пушка. Язык выразительный пиздец - все эти unless, работающие как if not, наличие у массивов и size и length (используешь либо либо, что по смыслу больше подходит). Рефлексия 10/10. Блоки (анонимки), которыми удобно и приятно пользоваться. Да что я рассказываю. Ruby way - это надо самому прочувствовать. По большому счету да, рельсы это бОльшая часть коммерческого использования рубей. Переучиваться с питона на руби, если не идешь в веб, не особо разумно. Но если стоит вопрос учить с нуля что-то одно, то я бы порекомендовал именно руби. >>314878 >>314908 То есть предложения очевидных два: - Хранить в ref id объекта а не настоящую (адресный поинтер) ссылку на него: убого, костыль, программировать с такими объектами сложнее, уже не напишешь чейн my_peka.ref.data.sort.map { |e| e.nebo.allah } - Делать второй проход: так я и делаю это. Только не второй проход по всем данным, а в первый проход точечно сохраняю в виде лямбд операции над конкретно теми объекты и теми полями которые надо будет заменить по окончании. Учитывая неограниченную вложенность данных друг в друга, код получается сложный. Ну че поделать.
252 дня 1 час 18 минут Пятница, не упустил случая побухать, в итоге вечером, походу, не поработаю. Днём усердно пилил SQLки, но всё равно вышло мало. Не успеваю пиздец. В выходные буду заниматься исключительно проЭктом.
>>314936 >по сути ты вызываешь a.+(b) >В языке, ВСЁ есть объект и всё есть выражение. Ну и в питоне так же вроде. >Скобки опциональны - это вообще пушка >наличие у массивов и size и length Для чего нужно?
>а в первый проход точечно сохраняю в виде лямбд операции над конкретно теми объекты и теми полями которые надо будет заменить по окончании А в этих лямбдах сохраняешь другие лямды, если там тоже надо что то разрешить? Или просто сохраняешь по лямбде на объект? Т.е. аналогично просто сохраненить список объектов с референсами а потом просто пройти по нему и порезолвить все референсы?
>>314996 Питону третий десяток лет, в нём много проблем накопилось. Я около года его юзал пока не ушел в руби. Нужно для выразительности. Да, да, можно сделать аналогичное решение без лямбд. Можно лабиринт без рекурсии проходить. Можно без функций обходиться - прыгать по goto и аргументы на стеке держать. Всё можно, это же программирование. Сорри, мне сейчас меньше всего хочется кому-то что-то доказывать в интернете.
Двухдневный марафон уже начался, ибо близок конец 50-го дня, а с ним и спринт к ПРОТОТИПУ-60
>>315011 >Да, да, можно сделать аналогичное решение без лямбд. Можно лабиринт без рекурсии проходить. Можно без функций обходиться - прыгать по goto и аргументы на стеке держать. Всё можно, это же программирование. >Сорри, мне сейчас меньше всего хочется кому-то что-то доказывать в интернете.
Да ладно, не пригорай. Просто, ты ведь сам писал выше >Массивнейшая переработка кода с учетом появления реестра объектов. Всё ради того чтобы можно было написать что-то типа >SpellBook[spell_code].to_spell(ObjectRegistry[player_id]).cast(ObjectRegistry[target_id]) Поэтому предложить тебе хранить референсы по id было вполне логично. Ну и дополнительный прогон по всем объектам в виде пары строк простого кода лично для меня видится предпочтительнее, чем обработка только тех объектов, которым это надо, но > код получается сложный По крайней мере, пока это не сказывается на производительности. Ты выбрал обратное, и это твое право. Удачи тебе, анон. Слежу за тобой и завидую
>>315011 >Питону третий десяток лет > Python, 1991 > Ruby, 1995
>Нужно для выразительности. Ну вот я и спросил что ты выражешь этим. >Да, да, можно сделать аналогичное решение без лямбд. Можно без функций обходиться - прыгать по goto и аргументы на стеке держать. Всё можно, это же программирование. Чего ты передергиваешь? Я спросил у тебя как человека с опытом, какие профиты от того что лямбды ты применяешь, а ты хуйню какуюто несешь. >Сорри, мне сейчас меньше всего хочется кому-то что-то доказывать в интернете. Не надо ничего доказывать, просто скажи, зачем ТЫ так сделал. Да просто даже честно скажи - "я не думал, просто лямбды это стильно, моджно, молодежно" - даже такой ответ мне более близок чем то что ты пишешь, фу таким быть. >Можно лабиринт без рекурсии проходить. Бэктрэкинг тебе не даст сделать TCO, поэтому да, в общем случае проходить лабиринт лучше без рекурсии. Для рекурсии главное требование - небольшая глубина дерева, иначе можно сорвать стек.
>>315022 Реестр объектов используется только когда нет возможности использовать непосредственные ссылки на объекты (в том числе, при "втором прогоне" десериализации). Код который ты линканул уже устарел, там сейчас: SpellBook[spell_code].to_spell(source, target).cast Без обращения к реестру. Так просто удобнее >>315024 Холиворить туда -> /b/, /pr/
>>315025 >Холиворить туда -> /b/, /pr/ Чини детектор, кто тут холиворит? То что тебе нравятся лямбды/рекурсия это круто (мне тоже нравятся), но ты можешь пояснить за их применение в конкретном примере который ты привел? Нет? Ну и скажи "я не знаю" или ничего не говори, в общем то мне похуй, я уже понял что не дождусь нормального ответа от тебя.
>>315038 Я не очень внимательно прочитал, прост на уме совсем другое. Не хочу доказывать чем руби лучше Питона, подробные сравнения есть в гугле. Касательно примера, того что второй прогон десериализации сокращается только до выполнения замены на нужных местах, вместо обхода всего древа - этого не достаточно? Можно сделать без лямбд? Можно. Только чтобы было удобно хранить вспомогательные данные для замены без использования замыканий, их нужно объединять в какой-нибудь класс, или хотя бы Struct, которые перед этим написать. Можно конечно и хешем обойтись. Я только не понимаю чего тут размусоливать. Нет единственно правильных решений в погромировании.
251 день 3 часа 25 минут 29 files changed, 456 insertions(+), 435 deletions(-) Много бега на месте. Код стал лучше, стал чище, починены тесты. Завтра *0-ый день, тоже потрачу на TODO-шки. Однако есть важный план - расписать, что должно быть достигнуто к ПРОТОТИПУ-60, и, начиная и с 249-го по 240й опять говнокодить на скорость спринтить, добавляя уже непосредственно геймплей.
>>315039 >того что второй прогон десериализации сокращается только до выполнения замены на нужных местах, вместо обхода всего древа - этого не достаточно? Там в любом случае не надо все дерево обходить. Просто сначала десериализуешь все объекты, а потом в каждом объекте разрешаешь все референсы. Данные для замены не надо хранить, тупо все объекты кладешь в dict id->obj (ну или что там в рубях), когда надо разрешить референс, берешь объект из dict. >Я только не понимаю чего тут размусоливать. Нет единственно правильных решений в погромировании. Есть более простые/стандартные. Мне вот и интересно стало чего ты вдруг выбрал именно это решение. Все программирование это череда решений и компромиссов, всегда интересно поговорить с человеком, который выбрал какой либо о причинах его выбора. >Не хочу доказывать чем руби лучше Питона, подробные сравнения есть в гугле. Мне показалось интересным твое мнение, потому что обычно встречаешь как раз обратное то что руби и питон практически одинаковые что по выразительности, что по применимости, только руби чуть более эзотеричный и почему то невзлетел нигде кроме ROR. >добавляя уже непосредственно геймплей Ага, скоро можно будет пошшупать.
>>315039 Хотя не, я понял о чем ты. Ты когда десериализуешь, у тебя объект принимает другие объекты в конструкторе. Выглядит переусложненно, но есть одна чтука - у тебя дерево объектов, т.е. циклов нет, иначе ты бы не смог все объекты создать. А раз дерево, то можно просто сериализовать/десериализовать сначала листовые, потом остальные объекты, тогда все нужные объекты будут уже десериализованы. В общем проще кмк тут можно решить.
>>315044 Далеко не все ссылки передаются в конструкторе. Часть присваивается в процессе работы. Так что циклы есть. Выше же был простейший пример с пеками.
249 дней 23 часа 32 минуты 8 files changed, 266 insertions(+), 109 deletions(-) Сделано мало для выходного дня, но я прикрыл еще несколько костылей и раздавил несколько багов. Опять набухался пива, пора прекращать. Прошел залпом Firewatch - годно, атмосферно, но не 10/10.
Завтра начнется путь к ПРОТОТИПУ-60 Выставлено 6 задач, среди них: добавление новых игровых сущностей, добавление основ взаимодействия сторон (дипломатии), оверлейный графон на карте, эксперименты с наложением текстур на тайл, учет дополнительной гео-информации о тайлах с последующим её отображением. В среднем по 1.5 дня на задачу +1 на проёб. Спринт начинается.
248 дней 23 часа 50 минут 20 files changed, 296 insertions(+), 33 deletions(-) Готова новая игровая сущность (нации). Одна из семи задач решена. (да-да, из семи, я добавил ещё одну без решения которой не обойтись). Кое-где подчищены вызовы измененных модулей. Время работы над проЭктом, похоже сильно сдвигается в сторону ночи - в остальное время просто не поспеваю. Пока получается решать без особого говнокодинга.
248 дней 47 минут Жесткий день. Немного упоротости на скрине. Разбираюсь с текстурами, там пздц. Закончил на том, что вкуривал в UV маппинг, но по-прежнему не могу понять как натянуть квадратную текстуру на треугольник (0,0,0)(20,30,0)(-20,30,0) (почти что равносторонний). Фреймворк хочет от меня faceVertexUvs, я так понимаю, массив из 3-х 2D точек, по одной на каждую из 3D-точек треугольника.. Чет пространственное воображение барахлит.
>>315775 Пояснишь? Потому что те UV координаты которые у меня заработали, это именно координаты на самой текстуре, которые сопоставлены были с вершинам треугольника. Кстати, сюрпризом оказалось, что в UV начало координат оказалось слева-снизу, а не слева-сверху, как во всей индустрии UI >>315655 Да разобрался уже. Искал туториалы по основам UV маппинга, так все найденные материалы это какую блеать кнопочку в Блендере нажимать. По крупицам инфу с SO собирал. Наверное есть хорошие базовые курсы по ТОРИДЭ по аналогии с гарвардским CS50?
>>315655 > ты натягиваешь треугольник, "вырезанный" из текстуры на треугольник, в чем проблема лал, php-пидарас закукарекал
>>315792 > По крупицам инфу с SO собирал. Наверное есть хорошие базовые курсы по ТОРИДЭ Кхм... Кхм... вот ссылка на курс ПО 3D НЕТУ КУРСОВ! ТОЛЬКО МАСШТАБЫ И ВРЕМЯ! СХУЯЛИ ПО ТВОЕМУ 3D-ШНИКИ ТАКИЕ ДОРОГИЕ! СУКА ТЫ ЕБАНАЯ! > что в UV начало координат оказалось слева-снизу Ты даже не представляешь сколько тебя приколов ждет, СКОЛЬКО ЖДЕТ!
>>315792 Какой же ты ебанат. Ну потрать ты неделю жизни и изучи хотябы азы 3d. Threejs - это относительно тонкая прослойка над webgl. Это тебе не юпити, где ты создаешь игровые объекты и движок сам все сделает заебисьна самом деле нет.
>>315800 >>315807 Воу-воу, палехче. 3D-шники дорогие? Прямо дороже погромистов, для которых материала в тырнетах жопой жуй? > ты неделю жизни и изучи хотябы Было б с чего изучать. Приходится обходиться курением референса по three.js и практическим "заменил хуевину в коде - посмотрел что изменилось".
247 дней 30 минут Неплохо поработал сегодня. Есть чувство, что успеваю запланированные задачи выполнить в срок. Закончил эксперименты с текстурированием. Впервые за долгое время начал писать в вики - составлял климатические таблицы, и прочую подобную хрень.
>>315832 Ты объясни по-человечески, что ты хочешь. UV - это не текстура, а её координаты, если ты не умеешь делать анрап, будешь сосать хуи и далее, это блядь даже не то что основа, без этого нет смысла вообще ничего дальше делать.
>>315845 Бротан, за 270 дней ты сделал сферу? Блядь, я считал себя самым конченным не только на этой доске, но и на всей планете, спасибо, настроение поднялось, появились силы идти дальше! Всего доброго и удачи тебе, главное верь в себя!
246 дней 2 часа 13 минут Биомы. Цвета в основном вырвиглазные - я хз как подбирать нормальные. Это и не важно - всё равно заменять на текстуры. Прошло 4 дня спринта, и сделано больше половины задач. Конечно, каждый выполненный таск открывает путь к трём потенциальным новым, так что конца-края чет не видно.
>>316078 Я думал над тем, что можно будет придать объем с помощью отдельныцх 3.5-полигональных моделек - гор, холмов, лесов и прочей лабуды. Делать ландшафт через шумы на поверхности это слишком сильное колдунство будет.
>>316082 Не надо шумы на поверхность, просто выдавливай каждый гекс на рандомную величину, либо группу гексов с одной текстурой на одну величину. Будет и просто и симпатично. Море только не выдавливай.
244 дня 14 часов 24 минуты Вчера не упустил случая побухать, в итоге практически не проработал. Немного фейл. С другой стороны, в расписание я это закладывал. Да и вообще, решено, в эти выходные ПРОТОТИП-60 должен быть доделан.
Оп, я прочитал весь вчера ночью, нихуя не понял. Ты писал писал, писал писал, магия, магия, и планета вращается в космосе? Можешь в кратце описать что было сделано за все время? Спасибо
>>316267 Если ты не понял из прочитанного, я мало чем помогу помочь. Первые 40 дней концентрировался каркасе бекэнда: сервис хронометража, ядро, вебсокет-сервер, nginx, БД. Структуру я гдет уже описывал. Фактически вся эта подготовка проводится, чтобы потом можно было заниматься геймдизайном не отвлекаясь. Сейчас начинаю выход на уровень фронтенда, и, в частности, гуя, поэтому поперли прототипы. Ближе к 100-му дню структура бекенда и фронтенда будет сформирована достаточно, и я нырну в реализацию бизнес-логики уже основательно и надолго.
244 дня 3 часа 51 минута Нормально потрудился. Закончил задачи по гую, в частности режимы отображения биомов, тектоники, политики. Сделал оверлейный режим, когда поверх основного рисуется частично перекрывающий другой. В целом, осталась только одна задача, которая практически не повлияет на геймплей ПРОТОТИПА-60, потому что возможности её использовать чуть менее чем никакой. Но в целом, что я завершу работы раньше срока, это хорошо - останется несколько дней на рефакторинг и на взвешенное осмысление того, куда двигаться дальше.
>>316392 >взвешенное осмысление того, куда двигаться дальше А чего тут думать? Исходи из того что имеется, и того что нужно получить. Делается это так: 1. Пишешь первостепенные задачи, которые нужно решить. 2. Пишешь всевозможные пути решения. 3. Выбираешь самые оптимальные по формуле - цена/качество + время/важность. 4. Делаешь. 5. Если: - получаешь результат в установленные сроки - радуешься и повторяешь всё с пункта 1. - не получаешь результат - пробуешь другой путь.
Помни ОП, что тебе главное сделать так, чтобы всё работало как задумано. Мелочи и полировку оставь на самый конец, иначе никогда не выпустишь свою игру.
Немного подгорает с той хуйни, что ты хоть что-то делаешь , а я нет. Но это такое. Удачи тебе. Как же буду рофлить с челиков, которые пиздели на него, лол
>>316421 Норм план. Ну как-то так и действую >>316443 У меня слишком мало ресурсов, чтобы выбрасывать прототипы. За исключением этого пункта, именно что созданием фич на скорость, минимальными усилиями, чтобы сразу оценить насколько они входят, я занимаюсь 70% времени.
243 дня 3 часа 12 минут 24 files changed, 255 insertions(+), 116 deletions(-) Добил последнюю задачу. Решил поднять и настроить виртуалку, на которой ПРОТОТИП-60 постоянно будет крутиться. Можешь потестить, анон http://127.0.0.1:8080/ только не хакай плес
Итак, начинается очередной новый этап: Междупрототипье. Есть несколько небольших задач, которые попробую запилить на следующей неделе. Кстати, она будет максимально фейловой в отношении проЭкта - выходные выпадают, тк НГ, в пятницу копроратив, еще два дня надо потратить на магазины и прочую хрень. Короче, браться за что-то серьезное вряд ли удастся. Буду исправлять небольшие todo-шки и прочее. Зато на НГ праздниках уж оторвусь в спидкодинге по-полной. Решу, что будет в следующем прототипе прорывного как раз к концу следующей неторопливой недели.
>>316621 Есть немного в локальной вики, но я предпочитаю пока не распространяться. Всё равно многое поменяется. Так что пусть пока это клон травиана и цивы.
242 дня 1 час 22 минуты Сделано за день немного. Исправил найденный баг со временем, который проявлялся только в фуррифоксе. Накидал еще заданий на НГ праздники. Начал работать над докеризацией сервисов, так их будет удобнее деплоить на виртуалку. Поджидал фейл: к Docker Hub-у практически не подрубиться, таймауты одни. А с мобильного инета тянет. Похоже на фейл домашнего провайдера. Завтра будет еще больше беготни и меньше дела.
>>316715 А что конкретно ты заносишь в вики? Сам планирую от хуипинания начать что-то делать, думал пилить модельки + диздок, но не пойму как его организовать поудобнее. Ну знаешь, пинаешь балду, внезапная мысль - записал и тд. Блокнот не хочу.
>>316732 Делаю примерно так: пишу заглавную страницу - обзорное описание игры. Затем часть слов заменяю на ссылки на несуществующие страницы. Потом выбираю одну из интересующих ссылок, прохожу, создается страница, пишу по ней. Потом расставляю ссылки и там, и т.п. Такой гипертекстовый векторный фидонет диздок. > Ну знаешь, пинаешь балду, внезапная мысль - записал и тд Так тоже делаю, главное поддерживать связность между страницами
>>316715 >Начал работать над докеризацией сервисов Чувак, тебе не кажеся, что твой проект развивается кругами, с допиливанием архитектуры? Почему ты не сделал просто монолитный сервис на рубях, который можно было бы просто запустить на локалхосте? И все бы давно уже играли и кидали тебе фидбек, т.е. собственно занимались игрой?
>>316768 Потому что писать игру это что-то новое и ОП, как и любой другой человек ссытся неизвестного. И мозг тут же подсказывает менее стрессовую деятельность (О, можно ж докеризовать! Это я умею и вобщем-то нужно).
>>316621 Попросил то, чего нет (и, вероятно, не будет). Ну сам подумай, какую игру может создать веб-макакен - только ковырять фреймворки и веб-сервисы.
>>316768 и sqlite вместо БД? И WEBrick вместо нормального сервака? А как мультиплеер тестить на таких билдах? Подход имеет право на жизнь, но мне он не по душе. Я хочу создать костяк инфраструктуры. Плюс я не готов пока шарить код. >>316773 Тут мимо. Моя основная работа далека от веба. Но поскольку проЭкт сугубо веб, то приходится изучать. Вчера я с болью и кровью написал свой первый Dockerfile, собрал первый имедж. И nginx настраивал в первый раз в этом проЭкте. Я и рубист без рельсов то, лол.
240 дней 23 часа 52 минуты Тоже не особо продуктивный день. Б-же, сколько же въебыватся денег на НГ. Докеризовал сервис хронометража. Криво, косо, но уже крутится. Потестировал множественную интерполяцию цветов, думаю завтра получится применить её на игровой карте - сделать мягкие цветовые переходы между клетками. Надеюсь, будет выглядеть не вырвиглазно.
Парень, я придумал тебе охуеннейшую мотивацию. Если ты к Старому Новому Году не дашь нам прототип, любой, бессмысленный и беспощадный, хоть тот, который ты у себя на локалхосте поднимал, я с болью в сердце и отвращением к самому себе накрою из коврового гомопедонигросажемёта твой уютный тредик. НАРОД ХОЧЕТ ПРОТОТИП!
>>316926 >Накрывать сможешь не долго, ибо пойти в /d пожаловаться это дело пары минут. Пущай работает, не хочет пока показывать - его дело Ну маааааам =(
Посоны, не ссорьтесь, лучше послушайте про фейл с цветами. Всё свободное время их ковырял, и это пиздец. Получилось какое-то мыло. Неверный разворот градиентов как на скрине я то исправил, но всё равно вырвиглазно. Отчасти это проблема в том, что гексагоны тут сложные, состоят не из 6 фейсов как можно подумать, а из 18 - выделены края гекса чтобы очерчивать можно было. Короче, я решил не тратить силы, так как в продакшне всё равно ожидаются текстурированые тайлы, без градиентов. Зато эксперимент с высотами интересный получается, может сегодня вечером допилю.
240 дней 1 час 28 минут Будто в компенсацию за ПОТРАЧЕНОе время на раскраску, с высотами оче быстро удалось получить результаты. Выглядит имхо клево. Доволен результатами. Завтра вряд ли вообще удастся поработать - копроративы и прочее.
>>316945 Убери нахуй коричневые шестиугольники, такое ощущение что кто-то на планету насрал. Если это ПУСТЫНЯ и я совсем НЕ ШАРЮ, то пустыни насколько я помню желтые.
>>316945 Выходит кал. Я с самого начала был скептически настроен к твоему решению хуярить велосипеды для веба. Нужно было брать юнити, делая мобильную и десктоп версии. Игра на первом месяце уже выглядела бы даже лучше, чем здесь >>316078. Нормальный объем, нормальный свет, вменяемый фпс при охуенном low-poly графоне. Для мультиплеера куча готовых решений, с теми же сокетами.
У тебя же пиздец. Никому нахуй не нужный веб-клиент, приправленный хуевой реализацией из-за ограничений браузера и кучи времени убитого на велосипедописательство. Браво.
>>316949 Попробовал, кстати получше получилось. Может в этом есть смысл. >>316953 Да, да, цвета для биомов выбирал наощупь. Надо будет подкорректировать, но не сейчас. >>317058 > пришел в тред про веб-дев > "делать всё на юнити под мобилы и пека, я скозал!" Ноу комментс.
Включил смену дня и ночи. На первом smooth цвета при большем количестве клеток, на втором скрине легаси-режим отображения биомов. Горизонтальные линии появляются только на скринах.
>>317195 на связи кун, который советовал больше гексагонов запилить.
Чот я проебался с мыслями, но какую роль в игре играют гексагоны? Как в циве, один гексагон - одна клетка для чегото? Если да, то тогда очень сильно проебываются гексагоны на рельефе, и будет ужасно для геймплея. Может тогда как в цифе? Один меш - планета + рельеф, и отдельно гексогональная сетка?
>>317195 Короче второй самый красивый, если брать сетинг обычной земли. Если же подразумевается и другие планеты, то можно сделать их полу пустыми, в таком случае дермовые шестиугольники впишутся. >>316953 - кун
>>316081 Гексагоны лучшая фигура для сферических карт. Есть еще треугольники но это такое себе. Квадраты и круги не подходят. Прямоугольнки, паралепипеды и прочее в том же стиле так-же не птбходят.
>>317212 Не понял. > Как в циве, один гексагон - одна клетка > Может тогда как в цифе? Вообще да, учитывая что гексагонов становится чуть более чем дохуя, имеет смысл объединять их в группы, и этими регионами уже оперировать в геймплее. Но это требует времени. Возможно, в следующем прототипе будет такая цель, а пока рассматриваю предельные случай, когда один гексагон - один регион.
Сегодня, как и планировал, день просрал впустую - не поработал толком. Это будет продолжаться до самого НГ, и только ближе к вечеру 1-го я начну шевелиться в направлении разработки.
Кстати, да. А в вашей программе замощение сферы шестиугольниками геометрически корректно (хоть в каком-нибудь смысле)? И откуда это следует (может это гарантирует используемая библиотека)? И как шестиугольники накладываются на рельеф? Они проецируются с изгибанием и может быть с изломами по отрезкам или как?
>>317472 Спасибо, анон. И тебя с праздником. Упорства, мотивации, куража нам всем. НГ это отличный повод закрыть страницу со старыми фейлами, и попробовать снова. Го.
236 дней 10 часов 31 минута до выхода Альфы Ну что ж, НАЧАЛОСЬ, анон. Начал вести редмайн подробнее, для большей дисциплины. Обозначил главный далёкий майлстоун - ограниченно публичную Альфу. Промежуточные майлстоуны теперь ровно каждую неделью. Расписал 5 задач, которые нужно решить к 8 января, майлстоуну Dev-1.
>>317552 А есть литература по лвлдизайну? Вообще как придумываются уровни к играм. Посмотришь например на дум1, даже там, в 2д-то игре, ни один лвл не похож на другой, все они огромны и запутаны. А сам начинаешь что-то похожее пилить, получается тупой лабиринт
1. Читай книги,смотри фильмы,разглядывай арты. Это твой хлеб в создании локаций. 2. Прежде чем сделать локацию в 3дээээ, берешь карандаш, лист бумаги и делаешь план. Слышишь без плана никуда. А потом еще желательно арт сделать. 3. Наполнение. Самая важная блядь вещь. Меня заебали игори в которых на левл дизайн хуй клали. Любой ааа проект это высер по лвл дизайну. Единственные две игры которые подняли планку по лвл дизайну это deus ex:hr и биошок с темными душами 1 и 3. Вторая высер. Все остальное делалось аутистами которые нажрались тормозной жидкости слитой по лому в -40. Дизайн уровней должен передавать атмосферу. Даже если это 2д пиксельное говно. А это значит тебе нужно не только правильно ставить предметы и эффекты, но и компоновать их так что бы они создавали атмосферу. 4. Не надо гнаться за ахуеть какой оригинальностью. Даже из 3ех стен кирпичных и фонарного столба можно сделать вау эффект. А значит твоя задача продумать размеры, расположение, как все это связанно с сюжетом и атмосферой. Даже сраный doom в 90ых имел качественный лвл диз. Чего только стоят хитровыебанные лабиринты и гитара. При бедном наполнении ввиде пары бочек факелов и деревьев.
5. Тесты. Больше сука тестов. Пока ты не начнешь впадать в припадок с пеной у рта когда открываешь свою карту. Потому что она заебала тебя в край. Твои уровни должны сука быть такими что бы ты сам обосрался от счастья.
235 дней 13 часов 3 минуты 7 files changed, 413 insertions(+), 348 deletions(-) Вчера поработал умеренно неплохо, надо сделать скидку на то, что это было 1-е января. Судя по оценке редмайна, выполнил 19% от Dev-1. Хорошо идти с небольшим опережением, т.к. на этих выходных требуется проявить соц.активность, и в итоге один-два дня выпадет.
Блеать, я всё же простудился. Знал же, что не надо было пить то пойло. И вообще, пора завязывать с выпивкой, >2к17 же. Сегодня объявляю выходной, благо вроде есть возможность по времени. Буду лежать, вообще нихера не делать. Никаких игорей, сериалов, книг, вообще ничего. Устрою информационный голод. Порефлексирую там.
Трюк сработал: промаявшись от безделья до 6 часов, закинулся цитрамоном и даже поработал немного. Несколько шагов вперед всё же гораздо лучше полностью проебанного дня.
>>317878 Он в начале треда писал уже: >"в бэкенде руби, графоний с помощью Three.js или если попрет, Blend4Web. Соединять каким-нибудь говном c cgi-bin и веб-сокетами"
А на счёт того, почему не юнити, насколько я понял, ответ: >"Потому что."
>>317878 >>317883 Не юзал юнити, но все говорят что его "веб плеер" - неподдерживаемое УГ. Так что выбор пал на Three.js как наиболее простой в плане отсутствия нагромождений близкий к нативному webGL-у инструмент. Пока что им не разочарован.
>>317859 Пытаюсь, думаю уже послезавтра приду в норму.
231 день 12 часов 44 минуты Восстановление проходит медленнее, чем я надеялся. Но я уже понемногу работаю. Вчера начал самую сложную задачу Dev-1 - группировка гексагонов в непосредственно игровые регионы. Этот ход напрашивается, так как при выбранном среднем уровне детализации карты, на ней овер 16к гексов, что слишком дохера для игрового поля. Всё это группируется в 300-400 игровых клеток.
Пикрелейтед лучшее что я смог на текущий момент в плане разделения на регионы (суша и вода делятся в отдельные непересекающиеся этапы). Да, существуют микро-регионы (например одинокий одногексовый остров в океане), и мега-регионы (вдвое превышающие средний размер - это жесткий предел). Но больше тратить на это время не буду. Существуют длинные несуразные сосисочные регионы. Вручную можно было бы гораздо годнее раскрасить, как в HOI 2-3-4. Но сейчас пох.
>>318174 альфа-релиз через 230 дней 4 часа 7 минут Закончил с регионами. Солидный вклад в игорь. Нужно переосмыслить некоторые концепции, так как теперь нельзя однозначно говорить о принадлежности региона к какому-то типу биомов (разве что разделение на сушу\воду). Размеры снепшотов сессии сразу упали в 20 раз. Еще новая фишка - уже знаю, чем буду заниматься всю следующую неделю. Планирование наперед, недельными шагами. Крупных промежуточных майлстоунов пока нет, а следовало бы..
>>307000 (OP) Поясни за WebGL. Ну не тормозит он на твоём топовом Пека+Хром, но как эе все остальные, у которых это всё будет лагать как если на дворе 95й а на борту 100MHz процессор бе ускоренной графики. Ведь те у кого есть возможность играть в сочные игры будут шпилиться в них, а не в браузерку. Ты очень продвинуто планируешь, всякие отчёты посекундные. Жаль я даже не смогу запустить твою игру.
>>318301 Я не проводил масштабных тестирований, но ситуация с производительностью (конкретно моего проЭкта) такова: У меня далеко не топовый пека - проц старее i3, видеокарточка radeon HD7800. И идёт вполне хорошо, фпс всё время 60. В фуррифоксе работает чуть медленнее, судя по логам, Three.js факапится на чем-то: Error: WebGL: texImage2D: Incurred CPU pixel conversion, which is very slow. Думаю, это можно будет решить. Также тестировал на Intel HD Graphics 4000 - тоже всё норм. Открывается даже на средних мобильных девайсах, уровня Нехус-5. И даже на них с графоном норм, долго грузится из-за нехватки вычислительной мощности на процах.
229 дней 3 часа 51 минута Смахиваю пот со лба - еженедельная (и первая в этом году) версия Dev-1 готова. Это была тяжелая неделя, учитывая сколько пришлось болеть овощем. Суммарно за неделю: 50 files changed, 1191 insertions(+), 535 deletions(-) Снепшот Dev-1 водружен на постоянно работающую виртуалку, и теперь я могу заходить и немного аутировать на работающую там игровую сессию. Впереди Dev-2, состоящий из 5 тасков суммарно оцененные в 29 часов (но это пессиместичная оценка, надеюсь управиться в 20).
В последние дни у меня прямо приливы мотивации. Летом намечается отпуск на море, буду пилить проЭкт с ноута, прямо там
>>318527 Не раньше чем будет интерактивность, которую можно наблюдать вне консоли браузера (думаю, Dev-5+) 228 дней 15 минут Конечно в первый день на работе сложно в ритм войти. За весь день меньше полутора часов смог потратить на проект. Работаю над созданием новых типов событий (определенные действия в игре генерируют эти "события", помещаемые в соответствующий лог). Успел добавить всего два, притом 60% времени заняло написание тестов. Хочется забросить покрытие, но понимаю что нельзя. Нельзя шатать трубулодку
>>318619 Мало чем. Только по ИТ угораю в целом. Да, обычная пятидневка. На проЭкт стараю выработать следующую норму: по 2 часа в будни, по 5 часов в выхи, итого 20 часов в неделю. >>318622 Я подумаю, хотя сча на вскидку не знаю что бы можно было выложить такого без стыда.
Чет я подзабыл что у меня после болезни еще неделю где-то астения, бодро начал в понедельник, а вчера вечером пришел с работы никакой, сил ни на что не осталось. Ладно хоть с утра полегче стало. За два дня сделано 10% от Dev-2, что крайне мало.
Постепенно прихожу в норму... После болезни иногда упарываю фезам, хз плацебо или нет, но мне помогает. Единственная побочка - раздражительный пиздец становлюсь. Чувствую что придется адово въебывать на выходных, чтобы успеть с Dev-2. Сейчас всего 22% готово, мб добью до 35% сегодня.
Делал сегодня температурную сетку: в тайлах по хитровыебанному алгоритму генерится температура, которая на практике, лежит в пределах от -0.25 до 1.0. Я её переложил в два промежутка через lerp в сетку в цельсиях от -50 до 50 с серединой в 15 градусах. В игоре будет смена времен года, а значит колебания средних температур. Величина девиации будет зависеть от приближенности к экватору. Совсем скоро эту инфу можно будет увидеть на клиенте.
Ох, сегодня я обкодился пиздец: 30 files changed, 539 insertions(+), 294 deletions(-) Вышел неслабо за границы выполняемого таска, добавил фичей работы с климатом и с погодой. Мотивация в порядке, работоспособность овер 9000.
Не могу не поделиться оффтопиком: сегодня мне нахаляву досталось три пиццы! Служба доставки перепутала, сука, ГОРОДА, и курьеру ничего не оставалось делать как оставить их у нас. Это просто знак судьбы, пошел пиво взял, сейчас пью, расслабляюсь.
Это не отменяет что выходные будут дико загруженными, если я хочу успеть всё из Dev-2. Или же одному из тасков там косметические визуальные эффекты на самом деле придется быть перенесенным на более дальний срок (но не хотелось бы нарушать план)
Инбифо вырвиглазные цвета тупо лерп между красным и синим. Температурная карта, теперь изменяющаяся во времени. Отличие между скринами - один игровой ход.
222 дня 23 часа 48 минут После дня усиленной работы как и обычно наступил отходняк. Работа проделана неплохая если бы это был будний день мелкая для небольшого дня. Зато сегодня перед кодингом расписывал концепт одной игромеханики в вики. Узнал умные слова "продуценты" и "редуценты", лол. Походу, проеб Dev-2 по срокам неминуем. Впредь нужно будет сбавить нагрузку планов на неделю. Одну задачу из текущего Dev-2 я перемещу в пул плавающих задач, а остальное буду доделывать до упора. Самое главное, срок сдачи следующего Dev-3 никуда не сдвигается. Идти по графику. Более оптимально расходовать время, особенно в будни.
>>320051 От погоды зависит много чего - от банального состояния местности ГЕНЕРАЛ МОРОЗ, до состояния экосистемы - чего и сколько есть в регионе пожрат.
>>320150 ЯО планируется, но не знаю, успею ли к альфе. Динамические изменения ландшафта допустимы в будущем, но скорей всего не к альфе.
Пикрелейтед минимально функционирующий режим переключаемого smooth-отображения карты. (Выделенные регионы принадлежат игрокам) Я всё-таки добил Dev-2, нечеловеческими усилиями и урезанием объема выполняемых задач. Вот недельные результаты, мерж в master: 48 files changed, 1758 insertions(+), 423 deletions(-) Dev-2 задеплоен на виртуалку. Теперь по всей карте каждый ход идет расчет погоды, возникновения аномалий, жизненного цикла флоры.. Хоть это и стоило мне больших трудов, выполнение плана в общем продолжается без опозданий.
день 32й, выпуск планетарных новостей: "в этот незамечательный день к нам присоединяется пользовотель макаба43, и вы все не особо верьте его заверениям что его способ прохождения ихры будет мирным и честным, ведь судя по нику это бот пользователя макаба42, удачного всем завоевания планеты"
>>307000 (OP) Как OP разрешит неразрешимую проблема БОТОВОДСТВА ? Earth-3-Today: "земли пользователя nasha-russia-45 подверглись атаке альянса ботов пользователя укроп-петрушка-42, помолимся вем богам рандома о его мятежной душе"
>>320723 > разрешит > неразрешимую Если посмотреть на то, как делают в существующих игорях, то можно увидеть несколько вариантов: - Усложнить регистрацию (только чтоб не отпугнуть игроков). Оптимальным вариантом видится регистрация с использованием номера мобилы, притом с подтверждением не смс, а звонком от роботом. Но это доп. расходы на соответствующий сервис. Зато это отсечет большинство ботоводов - Сделать акки платными, как в вов. Как показывает практика, от ботов нихера не спасает, но позволяет с них иметь процент дохода. - Добавить периодически всплывающую на рандомные действия капчу, уровня reCAPTCHA. Как в траве, давать небольшие плюшки за её ввод, чтобы не сильно бугуртили. - Анализ активности, сетевых адресов и прочее - муторно, долго писать, сложно, но прозрачно для игроков.
221 день 1 час Хороший день, даже несмотря на то, что понедельник. Расколол как орешки полторы задачи из Dev-3, небывалая продуктивность. Практически четверть от недельного плана (впрочем, ничего не помешает каким-нибудь косякам всплыть и испортить мне опережение). С большим удовольствием чистил репу от старого кода, рефакторил, сливал два фронтенд сервиса (основной и инкубаторный) в один. Вероятно, дополнительную продуктивность дает физуха вернулся пару дней как к кручению педалей
219 дней 42 минуты Работа над Dev-3 продвигается очень хорошо. При прошедших 30% времени на него отведенного, сделано по прикидкам 50%+. Сегодня для регионов появилось понятие дифференцированной площади. То есть она теперь делится на различные типы: (дикая природа, домики, аграрная зона, пром. инбифо сим сити! и т.п.) До конца недели осталось проработать базовую регистрацию и авторизацию игроков, а также наконец начать выводить информацию о выбранных регионах на фронтенде в удобочитаемом виде. Поскольку времени много, буду делать вдумчиво, с минимум говнокода. Люблю такие задачи, над которыми можно покопаться. Dev-4 скорей всего такого не позволит, там пиздец.
Пароль от клиента на сервер будет передаваться в хешированном виде, на сервере будет солится индвидуальной рандомной сгенеренной солью аккаунта, и в таком виде храниться. При авторизации думаю отдавать токен который можно будет хранить в куках и в течение какого-то времени повторно авторизовываться по нему. Легко ли спиздить куки из браузера без доступа к компу? Как думаешь, >анон, норм? Чего посоветуешь по таким казалось бы тривиальным вопросам?
>>323740 >При авторизации думаю отдавать токен который можно будет хранить в куках и в течение какого-то времени повторно авторизовываться по нему. Легко ли спиздить куки из браузера без доступа к компу? Вот что вспомнил. https://en.wikipedia.org/wiki/Session_fixation
>>323820 Ну, я планирую что это будет не казуальная браузерка, а хардкорная. И всё же 2к17 21 век на дворе, мультиплеер правит.
Регистрация и авторизация - скука смертная. Пишу скрипты для создания таблиц, веб формочки, отправку, прием, бойлерплейт всякий, зеваю. И, главное, задача вообще побочная, хоть и необходимая. Эх, был бы у меня инвестор, хотя бы на небольшую команду по найму...
215 дней 4 часа 133 files changed, 1570 insertions(+), 8867 deletions(-) Dev-3 выкачен. Долгая, долгая неделя. Двигаюсь намеченными темпами, уже начал планировать задачи на Dev-8. Одно только неизвестно - хватит ли усилий в подобном темпе чтобы выпустить альфу к сентябрю... Вот это волнует. В глобальном масштабе оценить сроки не получается. На следующую неделю намечены серьезные эксперименты - впервые будем импортить и расставлять модели по карте.
Опчик, а как ты сервер делаешь? Авторизации, профили, вот это все? Если хочешь, могу помочь с готовым решением, опенсорс, self hosted. ananimas.ligivon@gmail.com
>>325936 А можно выделение территории полупрозрачным сделать, что бы не выглядело блювотно? Если хочешь можешь что то попросить нарисовать лул. (да рисую)
>>326192 > Вас Ну ладно вам, будьте ж вы людьми я здесь один, увы. Есть небольшая вероятность, что мне удастся завлечь двух хороших людей в ближайшие несколько недель. Но вероятность КРАЙНЕ МАЛА. >>326272 >Авторизации, профили, вот это все? With bare hands, бро. SQL-скрипты, развертывающие таблицы, bcrypt генерящий пароли с солями, авторизация на веб-сокет сервере, общение по JSON. Спс, но стараюсь как можно в большем покопаться самостоятельно. >>326342 > полупрозрачным сделать Ну хз, у них сейчас opacity 0.5, возможно на скрине это не очень заметно. Попробую опустить немного, мб и правда лучше будет видно. Насчет рисовать хз. У меня почти нет конкретных идей, разве что UI какой-нить типа иконок абилок, эффектов и прочего. Но тут комплексно надо подходить. Так что ближайшие месяцы на местах арта будут затычки
>>326980 >>326970 Мне лично нравится, но можно переключаться: режим мыла активируется выставлением галочки на интерфейсе. В каком режиме будет открываться по-умолчанию, первый раз, это надо будет решить сбором статистики среди будущих альфа-тестеров. Сразу засчитаю пару голосов за отключенное мыло. 213 дней 2 часа 12 минут Продуктивный день. Научился показывать границы регионов, плит. Регионы контролируемые игроками теперь генерятся как меши (точнее один большой меш) поверх обычной карты, а не просто перекрашиваются цвета тайлов. Когда попытался создать в таком же стиле полупрозрачные меши над тайлами, на которые наложены эффекты, то игра начала заметно тормозить. Разница лишь в том что поскольку у каждого закрашенного тайла своя степень прозрачности (в зависимости от количества наложенных эффектов), для каждого из них создается отдельный меш. То есть +50~ мешей на сцене. И игре это не понравилось. То ли я что-то делаю не так, то ли действительно это так сильно влияет.
>>327576 Юзаю THREE.js, он, насколько я понимаю, минималистичен, отсебятины там нет, работа с 3D канонична. Вот основы за 3 минуты: http://codepen.io/rachsmith/post/beginning-with-3d-webgl-pt-1-the-scene Пока у меня подозрение что при росте количества Mesh, сурово падает производительность сцены. А если, например, объединить 50 мешей в один, то движку сразу станет легче всё это рендерить. Это нормально в 3D?
211 дней 2 часа 41 минута Сегодня закончил внедрение интересного концепта - генератора названий. Решил не изобретать новых языков, поэтому выделил несколько наиболее популярных языковых групп, накидал типичных слогов, и построил слоовобразование. Есть либо полностью рандомное, либо на основе уже существующего названия. Также один из тасков Dev-4 исключил, и заменил на более, как мне кажется, насущный: сделать ядро логики постоянно живущим процессом, чтобы избежать холодного старта - на запуск тратится 5/6 всего времени работы. Ну и конечно, нужно будет работать с пулом процессов, чтобы обслуживать несколько игровых сессий.
>>329609 Жив-жив. Всего то день не отписывался, уже с собаками ищете. Быдлокодю в поте лица, завтра сдавать Dev-4 уже, затем можно выдохнуть, и написать отчет.
Срочный вопрос к 3D-модерам. Есть 3D-сфера радиусом 1 Есть 3D-вектор, нормализованный. Через этот вектор задается любая точка на поверхности сферы. Есть 3D-модель. Ей можно задавать вращение, через 3 координаты X,Y,Z углы Эйлера в радианах. Внимание вопрос подозреваю что платиновый: как блеать посчитать исходя из вектора вращение модели, чтобы она была перпендикулярна поверхности сферы.
Основные задачи над которыми работал: - Генерация названий. Получается многообещающе, но нужно собрать большой словарь, чтобы было красиво - Внутренняя оптимизация кода, новый миксин Targetable, с очевидным функционалом. - Наконец заработали переключаемые границы между регионами и плитами. - Процесс ядра теперь в режиме постоянного выполнения, таким образом, холодный старт больше не тормозит игру. - Поэкспериментировал с импортом моделей из Блендера, всё збс, за исключением того, что надо поработать над вращением. Жопой чую, что нужно матрицу преобразования построить, но пока не понял как именно. https://en.wikipedia.org/wiki/Rotation_matrix
Теперь касательно ощущений. Чувствую, что устроил себе гонку, и подгоняя, наступаю сам себе на пятки. Часто за нехваткой времени скатываюсь в говнокод. С другой стороны, приходит понимание, что если бы я работал над проЭктом в лайт режиме, под хорошее настроение,только когда звезды сойдутся - делал бы в три раза медленнее в итоге. Так что, видимо, работать в постоянном напряжении, в условиях сроков, это единственный мой возможный путь. Ну я ж не гений-спец 300кк в наносекунду. Значит осталось только терпение и трудолюбие.
>>333344 Ты крут, слежу за тобой с декабря, можешь рассказать о себе немного? Алсо если не сможешь в дедлайн, обязательно проект доделаешь? Что будешь делать после дедлайна?
>>333414 Не люблю о себе рассказывать. Робеспьер в не лучшем его проявлении. Ещё из статов лак прокачан выше среднего. > Алсо если не сможешь в дедлайн, обязательно проект доделаешь? Ко мне уже приходит понимание, что даже 50% от глобально намеченного к дедлайну - это утопия. Но это не главное. > Что будешь делать после дедлайна? Дедлайн, это только первый этап. Он у меня даже в трекере назван Alpha-1. После этого начнется открытая Альфа. И, думаю, она, будет тоже длится ТРИСТА дней, лол. Вот такие планы. Теперь уже точно, это мой главный и единственный пет проект на ближайшие годы, самый минимум на 1-2, пока идут этапы Dev, Aplha и Beta. Решение работать над проЭктом во что бы то ни стало, реально повлияло на мою жизнь. В ней как будто больше красок стало.
И да, анончики, я с вами буду НЕ до самого конца. Ближе к выходу, летом, перейду в режим тишины. Вы обо мне услышите потом в сентябре, надеюсь. Не диваноньте лигивоньте плз
>>332521 >Срочный вопрос к 3D-модерам >Проблема движкописателей В юните есть Quaternion.LookRotation для преобразования. и импорт в HTML есть, а он будет как я понял использовать WebGL.
а ты забавный оп, я вот тоже онлаен кое-что пилю на трижс (бабилоне) и пистоне (торнадо аио), но коммерч. не могу раскрывать, буду за тобой следить по мере возможности, говна тебе
>>334235 >>334361 >>334362 Я нихера не понял из того что ты мне сказал но ты достучался до моего сердца. Можно еще раз для тупых? Единственное место на сфере где модель располагается правильно (без поворотов), это x=0, y=1, z=0, то есть на северном полюсе "планеты" Перемещаем на одну из точек на "экваторе", x=0, y=0, z=1. Тут модель перпендикулярна поверхности. По какой оси её нужно вращнуть на 90 градусов чтобы она легла верно? Допустим, поворот модели по оси, параллельной поверхности сферы неважен, пусть остается умолчанию, или, лучше, будет случайный (размещаются домики)
206 дней 1 час 27 минут Второй день вгрызаюсь в крайне сложную механику. Она планировалась с самого начала, и почти 100 дней я не подступался к её реализации. Я говорю о демографии - в игоре будет развитая демография населения подконтрольных игрокам регионов - пол, возраст, раса, вероисповедание и пр. В динамике это работает пиздецки сложно. Но уже получается. В конце Dev-5 население будет дружно рождаться, стареть и умирать.
>>348285 Уфф, это не столько формула, сколько я просто представил в голове и понял из геометрии. Хмм, попробуй так, от Z сначала поворачивай вокруг X, чтобы получить широту, а затем поворачивай вокруг Z, чтобы получить долготу. Таким образом если повернешь сначала на 45 вокруг Х, то окажется на линии окружности 'а', как на рисунке, а затем довернув вокруг Z сможешь попасть в любую точку М на этой окружности. Как-то так.
Наконец, заработал демографический минимум, и даже что-то отображается на клиенте. Начало положено, перспективы для наращивания огромные. Следующей задачей идет минимальное взаимодействие игровых поселений с окружающей средой.
>>348939 оп, видел эту сферу в ролике с какого-то джема, про крейзи лендер игра кажись, ты оттуда все спиздил? в чем суть твоей работы? ты понимаешь что в мультиплеере это не заработает на твоей корявой РЕЛьСЕ и тут нужны котябы СОКЕТЫ
>>353499 Как я говорил, за основу взят буржуйский опенсорсный planet generator под фри лицензией. Уже сейчас переписан чуть менее чем наполовину, и, кажись, будет переписан полностью. >корявой РЕЛьСЕ Никаких сугубо рельсовых библиотек не использую >СОКЕТЫ Вебсокеты? Они есть.
Сегодня добавил источник первого ресурса (древесины) - леса. Визуализация пока только в панели информации. Скоро древесину научаться добывать и делать из них разные ништяки.
Фуф, только закончил сегодняшнюю работу. Устал дико, но доделал полную цепочку действий по добыче древесины. Завтра буду внедрять на тестовый сервак. И после этого останется висеть еще два таска, которые нужно запилить к концу недели. Значит опять выходные в которые кроме кодинга ничего нет...
>>356649 >universim Оче любопытно. Вижу пересечения по многим идеям. Но это в первую очередь сим, притом синглплеерный. Думаю, у нас будет не очень большое пересечение аудиторий.
>>356771 А так и будет, рано или поздно. Вряд ли мной это будет написано конечно
202 дня 34 минуты Закончен еще один таск, про начисление поселениям очков развития. Остался последний, и у меня будет целое воскресенье на него, и на деплой (хотя с ним то как раз проблем стало меньше)
Видно, что я приноровился к темпу, который сам себе задал, и могу долго работать в таком режиме. Но есть одно Но. Меня беспокоит постоянный рост технического долга. Я, кажется, больше стал понимать, каково это вести бизнес в IT. В этой гонке постоянно приходится одергивать внутреннего перфекциониста. В общем, в моём расписании как раз появился Dev-10, и он будет посвящен исключительно разгребанию увы, малой части технических долгов. Боюсь, без подобных фаз, такому большому для одного меня проекту придет пипец.
>>357003 двух слов прочитать не может предурак, у тебя с долгом работает или это критически? объясни может своей мамке разницу между мытым хуем и немытым ок? на премере своего. объяснятель херов
201 день 3 часа 32 минуты Хм, завтра уже 100 дней как работаю. Неплохо. Надо будет подвести промежуточные итоги.
Итак, Dev-5 выкачен. Неделя была посвящена демографии, заложены важные основы. Поселения перестали вращаться в сферическом вакууме, началось взаимодействией с внешней средой. Начался учет очков развития. Долгая возня с ТОРИДЭ закончилась частичным успехом, хотя вопросов еще много. да-да, домики летают в воздухе. Но теперь они хотя бы повернуты как надо
Принято вышеупомянутое решение по Dev-10. Думаю, в итоге я приду вообще к чередованию этапов фичеринга - багфиксов/стабилизации в пропорции 50%/50%.
>>357206 все триоде надо в редакторе выставлять чтоб сразу видеть результаты т.к. объекты трансформируются относительно своих родителей и т.п. а в двигло загружать готовый сет\екшоны\трасформации\сцены етц., храня дополнительные параметры в userData свойстве или запилив свой формат и плагины для расширения интерфейса (вкладка с параметрами формата)
>>357206 не заморачивайся со своими ВАЖНЫМИ ОСНОВАМИ, все-равно глобальная среда будет СИМУЛИРОВАТЬСЯ а не ПРОСЧИТЫВАТЬСЯ
приведу пример: если хакнуть напр. космических реунжеров и набить себе миллиарды денег баланса, то у встречающихся кораблей сразу подмется уровень лута до околосреднего-твоег, т.е. параметры мира подкручиваются под играка для соблюдения баланса, а не честно расчитываются
>>357206 Графон пиздец конечно. Туториал о том, как въебывая 100 дней почти без перерывов получить хуевый результат только потому, что выбрал не те инструменты.
>>360949 Не могу же я заранее в редакторе знать, с каким поворотом модель домика буду ставить? Так-то я загрузил готовую сцену из Блендера, задал ей только позицию, масштаб и ротацию. >>360950 >все-равно глобальная среда будет СИМУЛИРОВАТЬСЯ Изначально делаю игорь где она таки будет просчитываться... Пример про рейнджеров не очень. Хочет игрок с читами быть уберкрутым - ну дай ему таким побыть. Виртуальный мир должен жить по своим законам, а не подстраиваться под игрока Я СКОЗАЛ >>362012 This. Не забываем что это WebGL, не забываем что это Three.js, и что у меня ноль знаний по ТОРИДЭ.
200 дней 1 час 22 минуты Увы, подводить итоги некогда. Сижу, балансирую экосистему. Занятное дело, на самом деле. Спать не уйду пока не получу устойчивую среду хотя бы на протяжении 500 лет.
Задача балансировки занимает горраздо больше времени чем я думал. Буквально полчаса назад удалось добиться стабильной экосистемы, самовосстанавливающейся после умеренного внешнего вмешательства. Но формулами я не доволен. Попахивает СИМУЛИРОВАНИЕМ. Значит и третий завтрашний день на это потрачу.
>>367414 рубиблядь дохуя пиздит а делает мало, никаких экосистем он расчитать не сможет. максимум дешевая симуляция с константными коэфициентами, подбор которых он называет ТЮНИНГОМ МАТМОДЕЛЕЙ
>>368003 я тебе не о НАЕБАЛОВО=СИМУЛЯЦИЯ говорю, а о том что ПРОСЧИТАТЬ АКТИВНОСТЬ КАЖДОГО жителя планеты ты не сможешь, прийдется объединять их в юниты, которые будут в балансе между собой, и если у одного юнита вдруг возникают миллиарды из вакуума, логично что они начинают расползаться по экономике, а так как ты не можешь симулировать ПоКУПКУ ХЛЕБУшкА СЛАДКОгО НА ЗАВТРАК ДЛЯ ПЕХОТЫ то это сомо собой влияет на некие общие множители (инфляция, вброс валютной массы) как ни крути у тебя СИМУЛЯЦИЯ а не ЭМУЛЯЦИЯ и нехуй пиздеть, ок?
>>368843 >РОСЧИТАТЬ АКТИВНОСТЬ КАЖДОГО жителя планеты ты не сможешь >ты не можешь симулировать ПоКУПКУ ХЛЕБУшкА СЛАДКОгО НА ЗАВТРАК ДЛЯ ПЕХОТЫ Ты не можешь думаешь никто не может. Лошара.
198 дней 1 час 53 минуты Не скажу, что я доволен созданной моделью на все сто меня вообще сложно удовлетворить полностью, но соотношение результатов к затратам нормальное, и в таком виде оно войдет в игру. Экосистема из 4 основных компонентов. На графике её состояние на протяжении 1000 лет. Первые 200 лет - без внешних воздействий, дальше через каждые 100 лет применяется аномальное изменение одного из компонентов (симуляция внешнего воздействия). Интересно, что даже в спокойном состоянии, экосистема выстроила себе 35-годичные циклы сам ничего подобного не закладывал, внутри просто система линейных уравнений. В таком виде оно уже крутится на тестовом сервере. Появился режим отображения текущей насыщенности экосистемы белый - минимум, зеленый - максимум
За эти три дня дико устал, наконец можно расслабиться.
>>369156 >сам ничего подобного не закладывал, внутри просто система линейных уравнений Дык ты что-то читал по теме? Или может логикой поделишься? Мне правда интересно, как ты решил задачу, даже если там всё просто.
>>369174 Ничего особо не читал за исключением вики. Логическки схема напоминает перцептрон, только веса и типы операций выбираешь самостоятельно. В начале, на входе - некий коэффициент влияния внешней среды, и основные параметры системы со значениями по умолчанию. Исходя из них высчитываешь слой внутренних параметров системы. Затем исходя из полученного слоя, высчитываешь коэффициенты изменения основных параметров. И так до бесконечности. Наверное, путанно пишу, так что сорян. >>369802 Насыщенность - отношение текущего количества субъектов экосистемы к его теоретическому максимуму по логарифмической шкале. Аномальное воздействие - это изменение параметров системы извне цикла расчетов; делал чтобы посмотреть, есть ли устойчивое равновесие.
>>370218 Сапчик. Запасись мотивацией впрок, и обеспечь себе пути её возобновления. Будет нелегко.
Пикрелейтед состояние вчерашнего мира через ~100 игровых лет.
Сегодня добил докеризацию БД, автоматический старт с заготовленной схемы, контейнеры данных. Начал работу над панелью действий игрока, переделал старые js-ные костыли на Промисы, занятная механика у них, хотя не сказал бы, что прям совсем удобная.
>>370994 сравнивает фреймворки и язык. я когда-то кофе любил, но отказался в пользу ванильного есНекст на котором и пилю, скоро галочка в настройках для него не понадобится. зря, в реакте и редаксе самые современные идеи, все идет к компонентам а полимер не готов, но ты хуярь свою лапшу на чем хочешь, ты же макака, все-равно твой проект не сможет в продакшн, вот увидишь (если там не 10 анонов будет)
>>371023 > не сможет в продакшн, вот увидишь (если там не 10 анонов будет) Чем больше человек в проекте, тем меньше вероятность, что проект будет завершен. Если конечно они у тебя не на зарплате. Лучший способ ничего не сделать это начать собирать команду которая будет работать за бесплатно.
>>371027 Верно подмечено, анон. Несмотря на то, что зарплата - слабый мотиватор сам по себе, без неё вообще не реально. Действительно работать на энтузиазме и не отваливаться через пару-недель\месяцев сможет два-три человека из ста. Притом, из таких людей не занято уже какими-нибудь проектами тоже два-три из ста. Перемножаем вероятности, и становится очевидно, что первые год-два нужно тащить придется в соло.
Воркфлоу/10... Нужна новая команда, идешь в скрипты инициализации БД, вписываешь новые поля в таблицы, потом в API к базе на бекенде пишешь метод работы с полями, потом в websocket-сервере пишешь defferred обращение к этому методу, потом дописываешь парсинг сообщения от клиента, вызывающего этот defferred, на клиенте пишешь метод построения тела этого сообщения, метод отправки, метод анализа ответа, потом еще лепишь формочки, на которые навешиваешь эти методы. После этого обновляешь вики, где описываешь формат команды.
Наверняка, есть новомодные фреймворки, где всё это делается в три клика. Рад за них
>>371304 ОП, можешь расписать все возможности в будущем проекте или хотя бы на что он больше всего будет походить. В плане можно ли будет выбрать форму правления или истребить всю живность, и возможно что какой-то из ресурсов будет полностью исчерпан, та же живность. Мне нужно больше информации.
>>371729 >можешь расписать Неа, не могу. Сказал бы, что секрет, но, по факту, сам еще не знаю. Но будет много >на что он больше всего будет походить Выше упоминал, смесь Травиана\Цивы, но не точно
Из того что ты перечислил, всё планируется. >Мне нужно больше информации. Зойчем?
>>372253 Очко внутреннего параноика сжалось еще больше. Сорри, фап-тред не обещаю.
195 дней 1 час 37 минут Дичайше длинный день. Занимался реализацией управления от игрока. Наконец, механизм освоен, вся цепочка построена, заработали первые команды, которые реально влияют на геймплей сессии. Дальше будет уже проще. Под вечер основательно взбугуртнул от обнаруженной баги, при которой счетчики от разных эффектов синхронизовывались. Отладил, оказывается, опять сериализатор виноват. Не скажу, что сегодня была прямо интересная задача. Но она а) необходима б) важна в) результат виден сразу. Так что усталость, в общем-то, приятная.
>>372770 я говорю что не взлетит если больше 10 человек играть будут, не так просто такую многопользовательскую систему забацать как оп думает, вагую тонны рассинхранизаций и бугуртов
>>373412 В случае с реалтаймом, пришлось бы повозиться основательно но так как тема уже изучена вдоль и поперек, то реализовал бы в соответствие с best practicies. Но игорь пошаговая. Все приказы игроков исполняются скопом, в конце хода, притом на этом же этапе происходит разрешение коллизий. Худшее что может произойти при ВНЕЗАПНОМ наплыве и перенагрузке сети - приказ может попасть в очередь исполнения следующого хода. Но его можно будет вручную отменить, если стал неактуальным.
>>373766 Существует много степеней велосипидорства, и я не радикал, да. Не люблю магию, предпочитаю управляемость, но свои реализации rb-tree или криптографии не пишу. >>373779 Да, как-то так.
Dev-6 Выкачен. Неделя была долгой. За неё, я победил экосистему, встроил механизм миграции, продвинулся в докеризации всех компонентов системы, немного расписал за автоматизацию сборки. Добавил нормальную регистрацию, присоединение к сессии, новые команды. До прототипа, в который принципиально можно уже играть, в обычном понимании этого слова, осталась пара шагов. Пикрелейтед визуализация атмосферы. Медленно плывет куда ей вздумается. Выглядит вроде неплохо, но часто мешает. Видимо, придется сделать отключаемой, как и смену дня\ночи.
На следующей недели таски более лютые. Сегодня еще посижу, попланирую, может перераспределю нагрузку.
193 дня 19 минут Сегодня работал над новой частью ядра - тайлами. Раньше на уровне логики я оперировал более крупными частями карты - регионами, а тайлов примерно в 50 раз больше, и, в будущем, они понадобятся много для чего, а уже сейчас нужны для более точного позиционирования объектов внутри региона. Полная копия игровой сессии в сериализованном виде сразу стала занимать 50 МБ. Хорошо, что далеко не все из этих данных будут отдаваться клиентам.
>>374377 Сделай, чтобы атмосферу было видно по краям шара, но к центру она становилась полностью прозрачной. Т.е. рабочая область чистая, но по краям для красоты было.
>>376250 Хорошая идея! Только не представляю, как это можно делать. Нужно испускать какой-то конус из позиции камеры, и увеличивать прозрачность части меша атмосферы, попавшей в пересечение с ним. Это вообще легально?! Свойство opacity задается материалу целиком...
ну что оп, уже пять стейджев выкатил а сыграть в твою игорю до сих пор нельзя кек? в чем смысл год пизтячить если потом не заработает? тебе было сначала выкатить статичный шар для анона с подгрузкой карты с сервака, у тебя даже этого нет, ты даже не знаешь что тебя ждет в лпане прода, твои фанаты считают что реатк не совместим с 3д, у вас здесь царит макакинг и мрак, ты дерьмо и у тебя ничего не выйдет. ты понимаешь? лучше пивка возьми пока не позжно, ибо этим и закончишь
Сори, что не писал два дня, анон. Бытовуха. Но всё идет по-плану. Внедряю дерево технологий. К сдаче Dev-7 Будет 2.5 исследования, которые можно будет открыть.
>>379367 >твои фанаты считают что реатк не совместим с 3д Ну да, всего-то надо прикручивать ещё один кривой пакет, а потом целый день issue на гитхабе читать, что "вот это неисправлено ещё" и "это нельзя".
>>380915 Что-то мне кажется, что ты после последнего курса только на работу устроился. Ну что ж, удачи, только русский подучи немного, а то сложно тебя понять.
Создание механики технологий идёт тяжело. Я в раздумьях. Будет ли практический смысл создавать отдельные игровые сущности "открытия", "исследования" и "технологии". Или всё слить в одной сущности. За разделение говорит та мысль, что между этапами изобретения и внедрения определенной фичи (например, орудий для вырубки лесов) есть большой разрыв. И что на первом этапе трудятся ученые, а второй - это скорее промышленный массовый процесс. И хотелось бы это отразить. Скажем, что технология будет иметь отдельные параметры, характеризующие сложность "открытия" и сложность "имплементации". Но это же пиздец переусложнение?
>>380981 > прототипирование Это тут каким боком? > рефакторинг Это тут каким боком? > этапы разработки ПО Это тут каким боком? > проектирование Это тут каким боком? Еще скажи водопад использовать. Пиздец, имбецил совковый.
>>380955 Кароч, слушай сюда. Правило номер нуль: проект вседа должен быть рабочим. Колесо, самокат, велосипед и так далее. Да, согласен, что в таком случае кода писать в 3 раз больше, но это поможет оставаться проекту играбельным. Тебе сложно срздать менеджер резурсов и передавать всем юнитам в их действие? Можешь написать фабрику действий и там их генерить. Так же проверяешь нужно ли перескакивать на слдующий этап эволюции и если да, то фабрикуешь новое действие для этого юнина или новый пресет характеристик и скинов. Чего сложного? Будет фабрика эволюций и менеджер, который их применет к юнитам.
>>380988 Тебе надо ты и используй водопад. Суть в том, что должна быть конкретная идея что надо сделать. Есть идея - можно написать прототип, по которому решить годно или говно. Если годно, тогда можно отрефакторить, чтобы был норм код, ну или переписать заново, а когда надо будет добавить фичи, то отрефакторить под новые фичи.
>>380988 ПроЭкт рабочий как минимум каждую неделю, когда я закрываю очередной этап. Ну и еще 3-4 промежуточных шага в течение недели.
Я вроде уже высказывался на тему детального проектирования, но повторить будет не лишним - я начинал разработку практически БЕЗ диздока. И по-прежнему считаю это хорошей идеей, потому что в процессе разработки вскрывается столько, что первоначальным талмудом если бы он существовал, можно было только подтереться. Рабочий процесс выглядит так: - Берешься за механику, о которой известно в самых общих чертах - Не пишеш, ДУМОЕШ - Пишешь, гоняешь - Выбрасываешь, возвращаешься на два шага назад
Это отчасти объясняет, почему я думаю над механикой технологий сейчас, а не три месяца назад.
190 дней 17 минут В процессе реализации технологий, понял что имеющиеся у меня механизмы применения модификаторов параметров игровых объектов пока было только применение модификаторов от эффектов достаточно костыльны, и не могут не выдержать дорабтки. Поэтому имплментировал класс Modifiers, который содержит в себе информацию как о временных модификаторах, получаемых от накладываемых эффектов, так и о постоянных модификаторах, основным источником которых будут открываемые технологии. Конец таска по внедрению механики уже вроде виден на горизонте.
И да, вопрос на чем клепать юзер-интерфейс становится всё острее.
И я действительно присматриваюсь в сторону React, хотя нихера про него пока не знаю. Какие вижу плюсы: - Мейнстримный, а значит быстро не загнется, есть развитие, обсосаны все основные вопросы, которые возникнут у нуба - Только UI-ный как я понял, никаких лишних свисто-перделок не предлагает. Если не найду более интересную кандидатуру, погоняю туториалы и возможно, попробую его.
>>307908 Какую вики используешь? Я что не искал для всех громадный веб сервер приходилось ставить и пердолиться с настройками. Хотелось бы запустить и сразу использовать ее по назначению.
>>381018 выбора два: реакт и вуе. реакт + редакс, вуе сразу искаропки. оба основаны на развивающейся спеке вебкомпонентов но представляют ее в текущих реалиях и каждый по-своему 9вуе ближе всего0
>>381018 оп ты с таким запалом рассказываешт что чтото уже запилил, но будет ли оно работать в измерении времени и будет ли оно играбельно не узнаешь до релиза (300 дней), так что давай говорить что ты только пробуешь выпустить говнокод а не игру за 300 дней пишешь, ибо 200 дней на тестирование и отладку это мало, ты сколько на это отводишь с учетом того что все пять раз переписать прийдется?
>>381020 Очевидная Mediawiki. Мне пердолинг не в тягость был. Если хочешь чтобы просто было, поднимай его докер образ. >>381044 Vue.js? Хмм, interdasting.... Выглядит чуть попроще и легче. Какие подводные? Не загнется? Надо будет по обоим туториалы пройти. >>381045 Что сказать то хотел?
Фух, кажись, я сделал это анон. Я внедрил основы механики технологий. Распишу как это происходит. Есть Technology. У неё есть требования к общему уровня научного развития, наличия уже изученных технологий. В ней опеределена трудоемкость затрат на её изучение. Технологии предоставляют модификаторы к некоторым базовым величинам объектов, к которым они применяются. У технологии может быть как 1 уровень (открыл\не открыл), так и несколько. Трудоемкость и модификаторы высчитываются исходя из уровня. (Задаются коэффициенты полинома вида c1 + c2x + c3x^2 и т.п. где x - уровень исследуемой технологии) Все технологии объединены в иммутабельное древо. А у каждой из сторон есть отслеживающий объект ScienceLevel, который работает с деревом, вычисляет, какие технологии доступны, а какие уже изучены. Ему передается объем затраченных научных усилий, а он определяет, когда происходит открытие технологии. Помимо отладочных, добавил одно настоящее исследование, которое ускорит сбор ресурсов. Запустил на отладочном мире, жду пока откроется.
Не планировал потратить столько времени, но, с другой сторону, вижу что потрачено с пользой, потому что это совершенно необходимая механика. Не знаю, успею ли остальные задачи на этой неделе, правда.
Впрочем, эйфория длилась недолго. Мне до жопы нужно успеть, а остался только завтрашний день. Сегодня перед сном потыкаю в Vue, ибо уже завтра нужно будет полепить кое-какие формочки.
>>381365 предлагаю тебе налепить формочек на скаффолде рельсов, максимум с жиквери каким-то, в компоненты будешь тыкать позже, для их подхода нужен богатый фон и опыт, если ты даже с бекбоном каким-то не знаком то пути кхм, нет типа
187 дней 3 часа 48 минут Устал. Опять словил мигрень, или, возможно, простужаюсь.
Тем не менее, Dev-7, выкачен. Не весь, увы. Я отказался от одного из тасков, показавшихся мне неважным сейчас. Перенес в пул тасков без конкретных сроков. Оглядываясь назад, считаю, что неделя всё же была продуктивной: - Создал модель Tile-ов, то есть начал их учитывать на уровне логики. - Героически подебил возросшее время на сериализацию\десериализацию - Чудовищными ковыряниями запустил механизм изучения технологий, попутно модифицировав демографию, добавив параметр "род деятельности" - Начал ковыряться в Vue, хоть и не особо пока впечатлен им. Добавил чекбокс отображения атмосферы через него. - Подебил баг с зависанием ядра, который сам же ранее внес - иногда в отладку пыталась записать свое значение переменная, которая через ссылки тянула половину состояния сессии, и всё молча падало. - Добавил учет использованных способностей игроками в бд,чтобы потом можно было на основе этих данных "прокачивать" абилки (похоже на экспу).
На вечер осталось еще одно непростое впрочем, оно мне доставляет дело - анализ текущего состояния проекта, планирование следующих заданий. Сейчас Roadmap построен вплоть то Dev-12, и, ЧСХ, чем больше я делаю, тем больше всплывает того, что нужно сделать.
>>381758 Dev это просто играбельное говно что у него сейчас есть, запилил пару фич - собарл все что сломал в кучу, запустил - вот тебе дев, как тег в гите
чсх - го лурк
роадмап - дорожная карта
оп дохуя офисное быдло, вместо еджайла дрочит на досочки и диаграммки с задачами, повернут на дрожащих словах, делает мало а пиздит на 10 страниц о том что якобы СДЕЛАЛ, посути нагенерил параши
>>381758 После НГ разбил работу на недельные этапы, которые назвал Dev-*. Выделяю по 4-5 задач, суммарно на ~20 часов времени. В конце недели деплою на тестовый сервак, чтобы в течение следующей недели немного поигрывать и вообще смотреть что и как происходит. В течение самой недели, если попадается на глаза что-то, пишу в задачу трекер (чаще всего bug или support таски). В конце недели провожу полную рекогносцировку фронта работ, лол. Расписываю какие задачи нужно решить. Поскольку время не резиновое, то заппланировал уже на 5 недель вперед, и тенденция сохраняется. Конечно, всё это не железно - бывает, переставляю задачи, до начала нового этапа. Но в пределах этапа спринта, пусть это не каноничный agile, стараюсь всеми силами выполнить всё намеченное.
186 дней 12 минут Продуктивный день. С места в карьер головой вниз. Заработал простенький web-сервер (нa Thin), который отдает по кускам сериализованные данные игровой сессии, (по REST запросу) вместо загрузки json-а целиком. Должно снизить трафик на 90%. Также окончательно пришел к принципу "одна сессия - один процесс", сделал надстройку ядра чтобы оно автономно шпарило, без процесса-арбитра.
>>382018 Процесс извлечения информации из головы и облечение их в письменную форму - хороший способ вскрыть косяки и противоречия. И да, я показывал нескольким людям свою вики и редмайн - получал рецензии. >>382020 Я думал о дифах. Проблема в том что содержимое меняется крайне значительно, и регулярно каждый ход. Есть { turn: 25, yoba: 0.34342637 } и { turn: 26, yoba: 0.35692348 }. Как диффить будешь? И главное. Размер хода сессии 1 - 10 МБ. Но среднему игроку понадобятся из этих данных процентов 5-10%. Да и то не сразу, не в начале хода. >>382021 Практически все процессы автономны. Есть парочка _однонаправленных_ связей через юникс-сокеты. Но действительным центром взаимодействия выступает постгря. Так что остается писать правильные запросы - с условными роллбэками транзакций, там где возможны конфликты.
Я вроде еще не особо многого долбился, чтобы последовательно меня хейтеить.
>>382072 ОП, а у тебя за всё это время не возникала мысль бросить всё это к чертям, заняться чем-нибудь другим? Когда например плохое настроение было и тд? Извини конечно, но у меня почему-то стойкое мнение, что если человек вот так целенаправленно долгое время занимается чем-то таким без мыслей:"Ай, может ну его нахуй, хуйню какую-то делаю", то он немного аутист.
>>382105 Раз или два в неделю бывает. Перепады настроения, софт БАР, все дела. Но не бросаю ибо: а) процентов 60-70 времени это всё реально доставляет, эндорфины, зависимость есть б) не чувствую себя деградирующим, как если бы сидел за пивцом и сериальчками в) довольно упертый
>>382191 тебе надо делать сразу играбельный прототип, вывод стдоут контейнеров это твой манямирок а не игра, у тебя нихуя нет, ты потерял время, лучше бы это был хардкод на один скилл и одно дедйствие (захват) как в конквейере каком-то, чем то что ты тут городишь уже пол года безрезультатно (пук)
>>382066 я сам юзаю реакт, но ты что не видишь какая тут старопердая публика, есть мнение что оп просто не сможет в реакт по сути, что-то набыдлячить конечно сможет, но тут как микроскоп в руках обехъяны
>>382194 судя по тому как он оттягивает вопросы интерфейса (99% приложения), следует что в фронт-енды он не может как мы с тобой, за реакт и вуе я ему и советовал, просто дал вуе понимая что реакт ему не осилить, всяко лучше жиквери-лапши, согласись (инлайнами жс кода в шаблоны которой ввсе и закончится)
>>382193 >тебе надо Niet, мне не надо. Работа над моим проектом построена исходя из ограничений сверху - серверной архитектуры, ориентированности на мультиплеер, доступа через веб, ограничений WebGL, и пр., пр. Впрочем, холивор восходящего\нисходящего проектирования слишком стар, чтобы его здесь разводить.
184 дня 2 часа 36 минут Не упустил случая побухать, праздник ж. Поработал немного, настраивал взаимодействие между контейнерами. Удивительно, похоже получается микросервисная архитектура - 7 демон-процессов, притом один из них запускается в клонируемом режиме, по количеству активных игровых сессий. Завтра наконец добью намеченные таски по докеризации, упорюсь игромеханикой захвата регионов.
>>382474 >очевидно же Слишком очевидно, чтобы быть правдой. >>382477 Если это реально тебя останавливает, то что-то в твоем отношении к интернетикам is wrong.
183 дня 2 часа 2 минуты Сегодня был какой-то ленивый день. Нет, кое-что успел даже. Теперь у меня есть докер в докере на самом деле нет, всего лишь один контейнер умеет запускать другой контейнер, обращаясь к хостовому докер-демону Сел работать над экспансией. Понял, что задача шире, чем я себе представлял. Нужен будет создавать отряд колонистов. Поработал над базовым классом Unit, добавил миксин Location. Наконец скоро пригодится карта путей, с которой начиналось всё.
>>382612 у него был план 300 дней осталось еще 180+ Рано говорить что-то о получается/не получается. Нормальную игру за пару месяцев на коленке не слепишь, особенно, если параллельно еще и работать приходится.
>>382618 вот объясни шизоид, нахер тебе контейнеры? нахуй ты с этим возишься? ты вообще видел онлайн игру хоть раз, ты понимаешь что такое клиен-сервер, что 50мб пакеты\ход это нереально? тебе на каждого игрока виртуалку подымать чтоли прийдется? ты выкати свой пук чтоб два анона зпустили и все убедились что у тебя маня-говнокод а не игра т.к. играбельной она быть не может априори, а по тому что ты тратишь время на редмайн в одно рыло уже сразу ясен твой диагноз, так сказать
>>382666 это 300 дней маня-фантазий в себе, плавное осознание того что все было неверно, все впереди у афтара, контейнеры он автоматизирует, дебилоид блять
В любом случае, не о чем спорить с человеком, который еще не дошел до оценки вклада технологий контейнеризации в разработке, а особенно, в деплойменте и поддержке проекта крупнее 1 KLOC.
>>382676 я то как-раз уже эту оценку прошел, а у тебя больше одной ноды планируется на запуске? да ты хоть половину ее по тунелю нам покажи с локалхоста своего, чтоб мы вдвоем комманды твоему стдауту послали и посмотрели как оно парралелньно работает, а то пиздишь ты дохуя а выхлопа у тебя на неделю говнокода левым мизинцем с завязаными глазами, где прототип сука, где код? пиздеть 300 дней каждый гаразд
>>382735 Полагаю, на старте будет не больше одной, впрочем, подключить дополнительнмые мощности в сварм будет недолго. Я не планировал в ближайшее время светить какие-либо адреса доступа здесь, тем более что бы что-то доказывать человеку с диагнозом может и ошибаюсь
Вчера добил реализаицию движения для базового класса Unit, потом решил отдохнуть. Взял пива, прогулялся по заснеженному району, вернулся домой и сразу улегся спать. Сейчас проснулся со свежей головой и бодрым настроем. Чувствую, будет долгий и продуктивный день.
>>383373 только почитайте блять, "добил движение базового класса", это что-ли x = x;y = y ты добил, может хоть гист покажешь? чтоб жополизы убедились что ты лишь стелить-то и умеешь
>>383387 Мне сейчас жаль потраченного времени даже на то, чтобы читать что ты пишешь, так что это последнее мое обращение. Движение - это перемещение объекта типа Unit по графу, с предварительным поиском пути, с регистрацией\анрегистрацией в промежуточных точках.
>>383408 передвижение объекта по графу, с регистрацией в точках, ну та это чем-то от {point = point, x, y} или point{} point{contains={x,y}} отличается? я что-то не так сказал, маня? Ж3
кстати, по-поводу полемики выше: я сейчас допиливаю кое-что на three.js и что же я выбрал для интерфейса и интеграции в интерфейс самого 3д? о господи, реакт и редукс, святый боже, технологий лучше этих мир пока не видел, прямо задонатить фейсбук за это хочется, это лучшее изобретение 21 века в мире технологий пока-что. но вы корзины дальше вопите "глюки" "ненужно" "жиквери хватит всем" - оставайтесь в каменном веке, мне от этого только лучше, меньше конкуренции, меньше макак, больше работы, выше ставка.
прошу вас, не используйте реакт, мутируйте данные, высмеивайте функциональщину, великие дела, перемещение типа юнит по божественному графу и поиск пути от моего конца до рта опа, наф сад
181 день 6 часов 40 минут 23 files changed, 437 insertions(+), 44 deletions(-) Это за полдня. Пора сделать перерыв. Цепочка действий от проверки условий экспансии до создания нового поселения почти достроена. Тут я пошел практически по пути Травиана: при наступлении определенных условий, становится доступным создание юнита "колонисты", который способен находить подходящие для заселения регионы. Слотов экспансии неограниченное количество, но каждый следующий требует гораздо больше очков. Разрешение коллизий, когда два колониста одновременно хотят создать поселение в одном регионе делается чуть сложнее, чем в Травиане - там все приказы происходили в реальном времени и имелся однозначный порядок их исполнения. В условиях пошаговости, для Location понадобился специальный хеш, где под отдельными ключами собирались массивы взаимно-исключающих действий-лямбд, и на этапе post_action для каждого ключа выбиралось случайное действие для исполнения, остальные отклонялись. Я надеюсь, что смогу в течение всей разработки сохранять в игре принцип "отсутствия гонки", когда действия игрока в начале хода и в конце хода равноценны при разрешении коллизий.
15 files changed, 295 insertions(+), 30 deletions(-) На сегодня пора заканчивать. Объем работ больше, чем я предполагал. Поскольку я впервые помещаю юнитов в игровую сессию, мне потребовалось место, где их удобно хранить, к ним обращаться, сериализовывать, десериализовывать. Тут надо понимать, что хоть ссылки на юниты есть у многих игровых объектов, при сериализации хеш хранится лишь в одном месте итоговой структуры. До этого у меня были просто соответствующие массивы в объекте верхнего уровня, но сейчас я решил попробовать хранить их в коллекции-синглтоне, чтобы, с одной стороны, обеспечить их более многофункциональным хранилищем, а с другой стороны, иметь возможность обращаться к коллекции из любой части кода. Поразительно, какого объема задачи я запланировал на эту неделю. Если бы не длинные выходные, это был бы срыв планов. Везёт.
>>384119 ну в принципе единый стейт-стор для приложения довольно правильное решение, а синглтон он или медиатор значения не имеет, так или иначе утебя будет какой-то глобальный стейт к которому ты будешь обращаться
>>384160 Просто обычно синглтонами делают логирование или профайлер. То, что можно вырезать при компиляции в релиз. А так хорошо писать атомарно. Или этот массив прям во всей программе нужен аж ппц.
It's alive! Ощутимо длинный этап работы позади. Проверил как работает экспансия. Модель юниту колонистов пока не назначена, так что наблюдал за его созданием, передвиженим и превращением в новое поселение через логи. А новый подконтрольный регион уже виден на карте. Отдохну, и вечером возьмусь за последний таск - организацию централизованного хранилища логов для всех сервисов.
Для затравки, задача, которую нужно было решить в предыдущем таске. Формализую: Есть n корзинок, для каждой определена вероятность p, что подброшенный вверх шар попадет в неё . Сумма всех вероятностей p1 + p2 + .. + pn очевидно равна 1. У нас m бросков шаров. Вычислить, сколько шаров попало в какие корзины, за О(n). Каждый прогон результаты, как и должно быть в эксперименте со случайными событиями, будут различаться.
>>384305 Отношаюсь с тян, выпиваю с друзяшками изредка. Упарываюсь ойти (пытаюсь вкатиться в машинные обучение). И в общем всё. Сейчас всё вертится вокруг разработки игры.
180 дней 4 часа 53 минуты 89 files changed, 2023 insertions(+), 273 deletions(-) Dev-8 выкачен. Оставил на тестовом мире четыре примитивных AI, способных только на экспансию. Посмотрим, как быстро они разрастутся. Кажется, я начинаю повторяться, но эта неделя была пиздецки длинной. Нельзя давать мне четыре выходных от офисной работы... Итак, что было сделано! Заработал веб-сервис, который отдает данные игровой сессии по кускам, только то, что нужно конкретному клиенту, ничего свыше этого. Пока в экспериментальном режиме, думаю, в следующей неделе я подвину расписание и добавлю задачу по его доработке, а, особенно, по изменениям в клиентской части. Процесс обсчета сессии автономизовался, докеризовался, запускается из другого докер-контейнера и живет своей жизнью. Я окончательно ухожу от идеи процесса, который бы обрабатывал несколько игровых сессий в порядке очереди. Одна сессия - один процесс. Экспансия. Она работает. Сколько было вбухано, пцп. Зато теперь почти всё готово для запила новых юнитов. Логгирование. Создал новый data-container, куда сливаются логи с nginx, посгри и остальных сервисов. Иметь всё под рукой удобнее, чем прыгать между контейнерами через docker logs
Остается самое вкусное - попланировать на следующие недели. Займусь этим перед сном.
>>384319 Тут результат не меняется прогона к прогону. Если подкинуть тысячу шаров, в реальности они чуть чаще чем никогда смогут распределиться 500 300 100 100. В реальной задаче, если что, порядок n - сотни, порядок m - миллионы. Но, конечно, можно показывать принцип и на малых размерах данных.
>>384326 > чуть чаще чем никогда Ты ебанат? Теорвер работает на бесконечности, ты же привел конкретный случай, с вероятностями и что они в сумме равны 1. Тоесть в каждой карзине будет пропорционально её вероятности. Пиздец, иди на хуй. Сами пиши.
>>384351 Пожалуйста, не рвись, если тебе не нравятся условия задачи. Подкинь монету тысячу раз. Сколько выпадет орлов? 500 - это лишь мат.ожидание. В реальности, каждый новый эксперимент даст разный результат. Среднее значение по результатам будет стремиться к 500 при количестве экспериментов, стремящемся к бесконечности. Задача смоделировать результат такого одинарного эксперимента, а не просто умножить 1000 на 0.5. Поверь, это несложно.
>>384232 И я, нуб, тоже решил попробовать! Ввели n, ввели для каждого n свою p. И я для каждой корзинки считаю сумму вероятностей p от первой корзинки до этой корзинки. Для первой корзинки, например, эта сумма равна вероятности для этой корзинки. Для последней корзинки, очевидно, сумма равна единице. Дальше рандомлю (худо-бедно средствами ANSI C) дробь от нуля до одного. И прокручиваю найденные суммы, пока одна не превысит мою рандом-дробь. https://ideone.com/bD6WTp Мой убогий вывод пикрил.
>>384414 Повторюсь, сглаживание выключается убиранием галочки на интерфейсе. >хардресные Поясни, плиз. >>384419 Неплохо, это классическое решение, с трудоемкостью O(m*n). Не подходит для больших m. Нужно амортизированное O(n)
>>384462 > Не подходит для больших m Насколько больших? > Нужно амортизированное O(n) Не понимаю. Чем его амортизировать, из каких соображений? Пусть. > порядок n - сотни, порядок m - миллионы. n=400, p=const=0.0025, m=4000000 Чем вывод пикрил плох?
я правильно понял что дебилоид запускает докер в докере (абы было) на каждый клиент, или что?
отдельный докер у него для логов, сессия у него 50 мб, что дальше, кто-то здесь верит в играбельность того что делает оп и в правильности вектора его потуг?
>>383574 Полемика выше да и вообще связана с использованием vue.js вместо православного реакта. Сам его не использовал, но выглядит он компактней реакта. inb4 хипстерское говно
>>384516 >игра не про графон >игра не про идеальную архитектуру >игра не про производительность >РЯЯЯЯЯЯЯЯ Забей. Тебя сейчас обосрут сектанты-бездельники, для которых сфера без графона с гексами за 120 дней, это пиздец достижение.
>>384539 Но ты же лучше не можешь, поэтому нам не с чем сравнить и трудно сделать выводы про производительность. Создай темку, сделай игру, мы порадуемся.
>>384472 > Не понимаю. Про оценку трудоемкости алгоритмов даже не знаю какой линк давать. Полхабра про это. Про амортизированную оценку: https://en.wikipedia.org/wiki/Amortized_analysis#Examples > Чем вывод пикрил плох? Если он на >>384419 этих исходниках, то плох тем, что время на решение задачи линейно (как минимум) возрастает с ростом m. Можно привести аналогию с временем выбора элемента из массива и из связного списка. Каким бы ни был большим твой массив, ты всегда сможешь обратиться к i-му элемент за константное время. Напротив, из списка чтобы выбрать некий случайный элемент, потребуется в среднем size/2 операций. >>384541 Не нужно спорить, он просто хочет побыть мудаком в интернете, это его неотъемлемое право.
>>384629 Докажи что эту задачу можно решить линейно с O(1) памяти без кэширования или предварительной обработки. Доступ к вероятности ты не сделаешь быстрее, чем за O(nlogn), а это кеширование и требует O(N) если нужно будет обновить. И растет с входными данными. И да, у этой задачи нет способа получить индекс корзины за О(1) по результату (float)rand()/(rand)RAND_MAX. Если данные статистические, число корзин не меняется, а меняется только вероятность то да. Иначе нет.
>>384680 Я дам подсказку: Чтобы узнать результат подкидывания тысячи монеток, необязательно тысячу раз вызывать random. Результаты экспериментов подчиняются гауссову распределению. Достаточно один раз получить гауссово-распределенную случайную величину (например через Box-Muller transform), и оперирируя вычисленным мат.ожиданием и стандартным отклонением получить результат. За тысячу бросков или за миллион - без разницы.Там есть один НЮАНС для малых количеств бросков, но не буду в это углубляться
>>384707 Ну ок. Но, я так понял, раз подкидываний n, то сумма со всех корзин равна ровно n. Оценки со стороны ваших теорий веорятности дадут числа double, которые я потом округлю. А для последней корзинки что, складывать все эти округлённые числа и вычитать их из общего числа бросков? Может быть шляпа при малом n.
>>384756 Всё верно, поэтому желательно, чтобы последняя корзинка была бы с самой большой вероятностью попадания, тогда факап отрицательного числа попаданий минимален. Ну и если он всё же наступил, то повторяем заново. Вероятность получить больше чем 3-4 факапа подряд меньше, чем удариться об молнию. Отсюда и амортизированное O(n).
179 дней 6 минут Сегодня начал решать интересную задачу. Суть такова: Сейчас определение цветов тайлов происходит на клиенте, исходя из средних значений, полученных во время генерации карты. Фактически же, цвета с каждым ходом меняются - где-то снегом заваливает, где-то леса повырубали нахрен. Но чтобы точно знать, в какие цвета какой тайл покрасить, нужно иметь под рукой всё состояние текущего хода. Теоретически слепок может занимать до 10 Мб, и, естественно, такие объемы на клиент пересылать будет неэффективно. И я решил, что можно будет формировать массивы цветов на сервере (по массиву на каждый из режимов отображения), и отдавать на клиент по запросу. На среднего размера карте около 9к тайлов. На самой гигантской - 25к тайлов. Можно передавать только RGB составляющие, притом в бинарной строке, тогда достаточно всего 3 байт на тайл, то есть ~27 Кб за ход на один режим отображения на средней карте. К среде планирую добить реализацию и на фронте, и на бэке.
>>384819 сука ебать какой же оп даун, рельсомакака даже не слышала про вмц судя поего постам. я только сейчас понял что сессией он называет весь внутренний стейт и пытается его пересылать на клиента. ну скажите блять ну вот в какой игре пакет данных займет 10 мегабайт, даже если это обновление ВСЕГО БЛЯТЬ МИРА ВСЕЙ КАРТЫ НАХУЙ. ну только подумайте, в какой? включите мозги и раздуплитесь уже какой зеленый неадекват оп и что он здесь проповедует.>>384819 69584
>>384972 да он как бы сразу и написал, что в геймдеве он нуль и пытается вкатиться. Ничего, наделает ошибок, какие-то исправит, какие-то нет, он хоть что-то пытается сделать. Иначе ведь опыт и знания не получишь.
>>385104 Видимо, я недостаточно подробно расписал передачу за данных между сервером и клиентом, отсюда у некоторых возникают разные нездоровые фантазии. Факты: - Сейчас, слепок игровой сессии весит 1.1 Мб - Это вес JSONa. Избычность значительная - в gz виде он весит в 4 раза меньше. - Если понадобится резко сократить объемы передачи - будет идти в сжатом виде (берегу это способ как оружие судного дня) - Большая часть данных внутри - числа с плавающей точкой и символьные ссылки между объектами - Средний размер конечно будет расти, т.к. не запилено и половины от задуманного: ожидаемый финальный размер - 5 Мб, предельный - 10 Мб - Клиент уже давно (в первые месяцы разработки загружал, но не сейчас) НЕ загружает слепок сессии целиком. Когда приходит оповещение о начале хода, идет запрос основных данных сессии, сейчас это около 3 Кб. - В процессе хода, клиент, по действию игрока, может запрашивать дополнительные данные, если хочет получить более подробную информацию по игровому объекту. Запросы данных объемом от 1 до 4 Кб сейчас. - Игроку скорей всего не понадобится более 30 таких кусков данных за ход, так как прочитать и переварить он их всё равно не сможет. - Отдельной статьей затрат трафика является передача визуального состояния мира - 48 Кб для большой карты. Предположительно, игрок переключается между 2-4 режимами визуального отображения состояния. - Сумма средних значений трафика по всем статьям - 200 Кб за ход, на одного клиента. - Ход длится от 5 до 10 минут. - Итого, около 1.2 - 2.5 Мб/час на клиента. Конечно, в каких-нибудь онлайн шутерах расходы трафика могут быть в 10 раз ниже. Но тут игра другая. И да, я не вкатывался сюда как гуру игростроя, так что замечания приветствуются.
>>385248 Когда я выбирал, каким будет протокол обмена между сервером и клиентом, то остановился на JSON по ряду банальных причин, почему его выбирают: простота чтения человеком, простота написания человеком, повсеместная распространненость. Последнее - важный пункт, так как я собираюсь оставить открытое и документированное API, если вдруг что немаловероятно мой клиент кого-то не устроит, и будет желание написать свой. Или запилить клиент под мобилки, или еще подо что. Про протобаф гугловый думал в первую очередь. Бинарные протоколы эффективнее в плане быстродействия, спору нет. Но пока это не станет бутылочным горлышком, с JSON уходить не планирую.
>>385379 Але, msgpack, при чем тут протобаф. Протобаф та еще задница. А msgpack кодер/декодер одной строкой на всех известных языках. Посмотри хоть офсайт. >простота чтения человеком, простота написания человеком >обмена между сервером и клиентом ок. >повсеместная распространненость >Можно передавать только RGB составляющие, притом в бинарной строке ок.
>>385386 >Можно передавать только RGB составляющие, притом в бинарной строке Всего лишь срезаю углы там, где это слишком очевидно.
Одно дело, во время активной фазы разработки, организовывать передачу игрового объекта, у которого сегодня одни поля, завтра передумал, и уже другие, и их иерархия меняется постоянно. Передача его в JSON - это минимализация затрат в разработке. Его легко прочитать в консоли браузера. Его даже можно написать самому в той же консоли в упрощенной форме. И другое дело знать, что тебе нужно передать ровно N*3 байт данных, где N известно достаточно рано, и структура этой посылки меняться не будет с большой вероятностью.
177 дней 1 час 11 минут За последние дни прорывов особых нет. Доделал задуманный механизм передачи визуального состояния карты. Пикрелейтед более няшная и подробная температурная карта на протяжении года.
жсон лучше для разработки. потом можно будет что угодно повер прикрутить, че вы доебались? или лезть декодировать-кодировать каждый пакетик из трейсов чтоб банально лог посмотреть? тут оп прав, а в остальном нет
>>385529 Вообще я доебался после того как оп начал городить свой кастомный бинарный протокол, а еще ктото тут пиздел что json 1-2 байта на символ и типа в вебе никак по другому. Так хоть пусть SQL передает, какая разница.
>>385379 >так как я собираюсь оставить открытое и документированное API Ну и сделала бы REST, один хуй тебе от сервера в течении хода ничего неожиданного не придет.
Надо будет открыть этот тред в сентябре и полюбоваться на очередной дропнутый на полпути ПРОЭКТ/сырую недоделку. ОП ведь не поставил себе критериев что именно считать "игрой".
Один мой знакомый (который раньше тоже сидел здесь) уже года 2 делает одну подобную браузерку и до сих пор её нельзя игрой полноценной назвать.
>>385582 Оно работает при малых m, например 10? Ты предложил хоть какое-то решение. Это лучше чем ничего. >>385703 Игра по ссылке не выглядит, будет над ней работали ежедневно два года. Приходи в сентябре,посмотрим на запуск моей.
>>385717 ты со своей игрой, как и лейн, пережиток прошлого. рудимент ушедшей эпохи. сейчас популярны другие герои и другие игры. ты никому не нужен. смирись. мимоанон
>>385717 >>385717 Работает, но погрешность большая. Вот распределение для m=10, p=0.1 (с левого края - вероятность, что в корзине будет 0 шаров, дальше 1, 2 и так далее), черная линия - честный подсчет (через формулу с факториалами), красная - мое приближение.
>>385737 Яснопонятно. Ну тогда посыплю голову пеплом, и пойду смотреть в рот тем кто сейчас популярен нет
176 дней 2 часа 25 минут Сегодня решал интересную задачу. Цикличное изменение температур на протяжении ходов, вызывает рост и уменьшение полярных ледников. А по льду то в игре можно передвигаться. С точки зрения топологии это несложно, но есть визуальная составляющая - льды имеют ненулевую высоту, в отличии от остальной воды. До этого применение карты высот применялось на карту только в момент генерации, теперь это происходит при смене хода. Льды послушно вздыбаются, когда их температура падает ниже нуля. Карта высот теперь передается с сервера - это задел на будущее, так как вполне вероятно, что определенные события nuclear launch detected могут изменять карту высот на постоянной основе. На пиках кислотные цвета континентов - это последствия экспериментов с реалтайм картой.
>>385759 оп, ты уже экватор а до сих пор про геймплей ниясно нихуя. ты понимаешь что все фантазии это лишь галюцинации и делать надо на пробах и ошибках познавая в сравнении и собирая фидбек. когда можно будет твой шар-то покрутить мышкой вб раузере, а? я уже свой трижс проект доделал и релизить на 8-е марта собираюсь. а ты все за какие-то карты высот трешь, ты хоть понимаешь что у тебя пока игра для одного игрока а не онлаен? давай уже пробовать ИГРАТЬ в твое говно, ну ебаный ты в рот пидор
>>385717 Ну может не ежедневно, но довольно часто после работы чувак правда пилил эту игру. И вот уже два года пилит, там даже на форуме логи разработки где то есть. И посмотри на его итог.
И раз уж она выглядит плоховато, то твоя будет выглядеть просто как говно. Подождём сентября и сравним.
>>385910 проблема даже не в этом, а в том, что мультиплеер-игоры это сириус-бизнес. никто не захочет тратить время на твое говно. а без онлайна твоя игра тем более никому не нужна.
посмотри на пример утерменшей с этой борды с их рогалиями и brain out которые никому не нужны.
даже мастодонты индустрии с ААА-хитами загинаются в онлайне. куда просто кириллу с его БРАУЗЕРКОЙ воняющей бабушкиной кофтой лезть
>>385848 Смотри, у тебя есть срок - 8 марта, ты его придерживаешься. И у меня есть срок, и я его придерживаюсь. Более того, повторюсь - с начала треда, я уже всё перерешал, и сентябрь - это лишь дата фазы открытого альфа-тестирования. Разработка будет продолжаться. Вкинь потом ссыль на свой проЭкт, обещаю, глумиться не буду. >>385924 И тем не менее, примеры ммо, которые начинались как соло проект - есть. Последнее, про что недавно слушал в подкасте: https://vk.com/app1836115_1234
>>385910 >твоя будет выглядеть просто как говно. ОПу просто надо обмазаться модными цветастыми лоуполи.
Серьёзно, ОП, советую тебе глянуть как подбираются палитры и на то, как выглядят лоуполи.
>>385759 Это может лучше выглядеть раза в 2 просто если правильно подобрать эти 4-5 цветов. Ну, я думаю у тебя в ТУ-ДУ где-то в конце есть комменты по поводу внешнего вида.
>>385954 Можешь посоветовать определенные гайды? Согласен, текущие палитры и модели никуда не годятся. Я пока не определил бюджет, но план сделать заказ нормального 2D и 3D ближе к релизу, у меня был с самого начала. Сейчас визуально я оперирую dummy и stub'ами. Это кстати распространенная проблема, когда показывают скриншоты с определенной концепцией, а внимание зрителей отвлекают совершенно иные вещи, к доработке которых даже не подступали. Насколько я знаю, для этого в Valve введен термин "orange maps", когда демонстрируют ранний этап работы над левел-дизайном
Мда, устроили из моего уютного бложика какое-то место для дискуссий. Я скоро буду успевать только читать и писать здесь, вместо того чтоб проЭкт пилить. Итак, выходные. Впереди 2.5 недопиленных таска. Сегодня надо выложиться на полную.
>>386083 рогалия еще и платная лол? ты там точно игры не перепутал?
>>386163 >>386185 а чо не 30? вы забываете, что авторы этих поделий раздают ключи всем подряд лишь бы в их говно играли. буду удивлен, если он продал больше 100 ключей за такую цену
>>386287 >>386209 Знаете, по сравнению с шизиком-ТВОРЦОМ-БОГОМ-ВЫ ВСЕ ГОВНО из соседнего треда, любитель рисовать на модельке земного шара горы и климатические пояса кажется вполне себе адекватным разработчиком. Пусть даже к сентябрю его "поделие" даже альфа-версией с трудом можно будет назвать.
>>386209 > завайпаем Может, когда ты отучишься говорить за всех. >>386287 Ну да, процентов 80-90% до финального релиза. А до альфы - 50%, по определению. >>386300 > соседнего треда Дайте поглядеть на этого уникума.
>>318148 Как, КАК ты сделал генерацию регионов, которые выстраиваются в единые континенты? Ещё и всякие полуострова красиво выступают и обозначены отдельно. Можешь спалить алгоритм?
Добавлю - я давно уже планирую начать делать игру, но всегда запарываюсь на генерации карты. Нужно сделать именно карту из кучи небольших локаций, каждая из которых состоит из стандартных гексов/квадратов. И желательно чтобы эти локации были не просто мешаниной, а примерно отражали географию - то есть, например, полуострова отдельной локацией. >>386363-кун
>>386363 Выше по треду была ссылка на хорошую статью по генерации планеты, с учетом движения литосферных плит и всего такого. Мой алгоритм группирования гексов в регионы крайне туп и прямолинеен. Я давно запланировал его основательно доработать, но сейчас это не первостепенная задача. Отдельных обрабатываются водные и земные тайлы. Ставится набор рандомных точек, из них в случайные стороны расширяются границы региона, до определенного предела. Обычно предел не дает за одну итерацию покрыть всю карту, поэтому повторяется этап простановки набора точек. Размер набора высчитывается исходя из среднего планируемого размера регионов и количества свободных гексов.
>>386387 потому что ты так сказал? перенеси карту на гексы. добавь минимальный размер региона. и просто добавляй регионы заливкой пока свободная область делится как минимум на 2 региона. все. главное поткивать параметры генератора
>>386509 потвикать. алсо, никто не запрещает использовать карту сгенерированную перлином только как базу, и допиливать ее каким-то своим алгоритмом. в любом случае лучше генерацию ты не сделаешь
Всё, анон, я заебался. Казалось бы, чего сложного - у тебя есть четыре параметра тайла: Temperature, Moisture, Elevation и Flora(развитость флоры в диапазоне от 0 до 1). Выдай соответствующий цвет. Но нет, в 95% получается вырвиглаз, особенно учитывая что все параметры кроме Elevation активно меняются в течение года. Удалил 2/3 кода, оставил 6 основных вариантов раскраски. Закрою этот вопрос для себя на длительное время.
>>386581 Оставить несколько цветов, которые соответствуют диапазонам. Всматриваться в соседний тайл, который на 1% светлее не особо информативно anyway.
>>386581 С цветами конечно пиздец, но мне кажется основную роль тут играют детали на земле, фильтры и эффекты. Посмотри как выглядит пустой мир в циве http://www.firaxis.com/?/blog/single/procedural-terrain-generation-in-sid-meiers-civilization-v , почти так же уебищно как твой. Но с добавлением разных слоев местности в сумме это дало ламповую картинку. Или вот, на пикчах у планеты такие же ядовитые цвета, но они разбавлены тенями, эффектами, большим количеством деталей, как объектов, так и самой текстурой.
>>386581 ОП, советую тебе генерировать нормальную лоу-поли няшную планету, а тайлы рисовать оверлеем. Твои тайлы в любом случае буду выглядеть вырвиглазно
>>386593 >>386605 Проблема деталей и прочего мяса одна - WebGL. Он начинает безбожно лагать при любой значительной нагрузке. Посмотрел тестовый Dev-8 мир, там уже модельки домиков у каждого региона. ФПС просел до 21-23. Так путь через детализацию мне не подойдет
173 дня 3 часа 43 минуты 56 files changed, 1518 insertions(+), 277 deletions(-) Dev-9 выкачен. Неделя прошла под девизом "Миша всё хуйня, давай по-новой". Кажется, у меня передоз фронтенда. Зато практически все данные от сервера приходят по запросу, а не скопом. Кое-где внедрил Vue. Понравились его фильтры. От бинарных протоколов передачи никуда не деться, если не хочу оверхед трафика в 5-10 раз. Следующая неделя - Dev-10, а, напомню каждая 10я неделя особая, она проходит без внедрения новых фич и тратится на раздачу тех.долгов (на укрепление костылей бэкенда). В том числе на рефакторинг. И на подробное дальнейшее планирование. Можете возражать, мне похер. Устал, пойду отдохну
>>386705 >Ок. если даже unity > html5 сцена уровня консолей предыдущего поколения летает, то на чистом оптимизированном webgl вообще все летать должно. разница между opengl и webgl минимальна
>>386802 Не, серьёзно. А где твоя игра? В разделе 3-4 бложика, ещё пару человек периодически постят в субшоте. Ещё брейн-аут тред. Судя по всему на доске около 8 человек делают игры. Ну ещё 3 семёна вроде тебя, который вообще хуй знает чем занимаются. Семёны, потому что постят одно и тоже и легко ботами заменяются.
Иди вон в /b/ посиди, дурачок, хули ты в тематике делаешь.
>>386710 >разница между opengl и webgl минимальна Есть замеры производительности? WebGL базируется на OpenGL Embedded Systems - урезанную версию, как я понимаю. Плюс оверхед браузеров ощутимый.
Ответственно заявляю, демки не будет еще долгое время, смиритесь. Мне лень ради парочки хейтеров покупать vpsки с белыми ойпи и выкатываться туда. Всему своё время.
>>386639 Увы, ОП, но это значит что ты обосрался. Начинай всё с начала на другом движке. Потому что иначе у тебя выйдет не клон цивы, а недетализированное разноцветное говно.
>>386895 оп просто конченая макака, у три есть демки с миллионами полигонов, а у него кругляш с двумя домиками ФПС просадил, хули с ним разговаривать, пусть дальше бульйонится в своей моче
>>386870 оп а ты не слышал про динднс разные? дауненок, ты же можешь любой тулзой свой локалхост во внешку засветить, хоть тем же pagekite, да 5 соединений но ничего, тут не больше 5 желающих наберется. я повторюсь, ты живешь в манямире и строишь проект на своих догадках и в пределах локалхоста. ты не понимаешь что нужно собирать фидбек и данные замеров, что твой проект просто не заработает. надо изначально это делать, с пустой сцены и далее наразивая мощности. а не наклепав кучу дерьа И ТОЛЬКО ПОТОМ ПОПРОБОВАВ В ПРОДАКШЕН. нерперывная интеграция, лучшие практики. ведешь редмайн, время хуй пойми на что тратишь а такой мелочи не понимаешь (скорее не хочегшь ибо сам знаешь что обосрамс). да и в тех же ДО оплата только вконце месяца, регнуть виртуалку, поюзать и дропнуть не уплатив ничего не мешает, просто впиши карту без баланса и забей, сами удалят потом.
>>386890 >подметил, что люди говно wat? >>386895 Вполне вероятно, что я допустил определенные нубские ошибки при работе с 3D, поэтому ФПС просел.
Что фактически делается в той сессии: http://www.blendswap.com/blends/view/56205 вот эту модельку я конвертнул из бленда в dae формат, загрузил в виде Scene в Three.js и приатачил её клон овер 500 раз, к разным кускам карты, по количеству регионов. Я делал это просто чтобы проверить, что наложение моделек работает. Наверное это можно все оптимизнуть. Сама планета в среднего размера сессии состоит из 190к фейсов и вертится плавно даже на видеокарточке в планшете за 300$~
>>387105 сцена должна быть одна, когда грузишь сцену из модели (сам так делаю ибо остальное почти что не работает) выдерай из загруженой сцены модели и вставляй с свою, перегрузи метод клонирования мешей (он наследуется от объекта и не знает про материалы и геометрию)
почитай про вбо буфферные объекты в гл, используй везде одну геометрию и одни материалы
очевидно модель дома слишком высокополигональна, убери полигоны ре(забыл модификатор, гугли короче
впредь дляд инамики выбирай низкополигональные модели
используй three json формат, поставь экспортер в блендер
>>387153 ну что еще из очевидного - реже текстуры переключать, перевести все в лоуполи как уже было сказано и контролировать ко-во вершин и полигонов на сцене, подобрать среднее приемлемое для твоего проекта на ориентируемом железе. в браузере должно работать все то же что и на десктопе, приставка веб- никакого отношения к тормознустости не имеет, а на телефонах даже быстрее мелкомягких нетбуков на интел графоние бегает, базарю, сам пилю на трижс под ифоны
171 день 3 часа 29 минут, Dev-10 (раздача тех.долгов) Последние два дня ковыряю БД, добавил новую таблицу, с историей ходов сессии, перераспределил часть данных с других таблиц на неё. Зря сегодня выпил шампанского на работе, в последнее время после него голова мутная. Работа продвигается вяло и неторопливо, похоже на дно биоцикла.
Еще один непримечательный день. Выходной посреди недели. "Праздник".
21 files changed, 160 insertions(+), 238 deletions(-) Работа идет лениво, но есть некоторые продвижения: добавил функцию периодической очистки данных о прошедших ходах. Продолжил группирование функций по работе с БД в едином модуле-прослойке, удалял старый код, дописывал тесты. Настроение по-прежнему не особо рабочее. Завтра еще на работу, пздц.
>>387645 Не, это скорее фасад, скрывающий нюансы работы с БД, и дающий простой API для остального кода. Не в объектном стиле ActiveRecord-а.
Сегодня битый час тупил над функцией, которая должна проводить UPDATE и роллбэчить транзакцию, если после UPDATE значение поля выходит за определенный диапазон. Пытался сначала сделать без PL/SQL, но обломался. Притом, в самом PL/pgSQL тоже нельзя явно управлять коммитом\роллбэком, но можно сделать роллбэк неявно через BEGIN ... EXCEPTION
>>387817 Игра где, блять! Мне похуй на твои БД! Иди ебись с вычислительной геометрией, линейной алгеброй и шейдерами. Мне похуй на твой сервер. Я и сам могу побегать от умных ИИ с машинным обучением и дикой вариативностью. Если это у тебя есть, конечно же.
167 дней 15 часов 25 минут Вечером пятницы перезагрузился пивом и умеренным социоблядством. Настроение отличное, полон сил добить Dev-10. Особенно, под натужные вопли хейтера.
166 дней 15 часов 16 минут Вчера был длиннющий день. Но результатами доволен. Капитально реструктуризовал сериализованный вид сессии, благодаря чему из клиента стало возможно обращаться к любому объекту отдельно rest-подобным запросом. Сегодня осталось добить не так много. Вечером будет большой отчет по Dev-10.
153 files changed, 2333 insertions(+), 2435 deletions(-) Наверное, эту неделю я работал больше чем когда-либо в жизни. Ранее у меня возникали сомнения, могу ли я тратить целую неделю на устранение косяков и укрепление костылей. Сейчас я понимаю, насколько это было необходимо разросшемуся проекту. Обязательно повторю это в Dev-20. Итак: - Полностью удалено 3 устаревших модуля, остаток функционала распределен по оставшимся - Расширил схему таблиц, добавил снепшоты сессий - Поправил накопившиеся косяки по неймспейсам и структуре проекта - Избавился от костылей, которые давали потенциальную возможность работать многопоточно (парадигма теперь - мульти-процессность) - Увеличил покрытие кода тестами - Сделал громадный прыжок в сторону асинхронной подгрузки сессии, rest-подобным запросами с id ентитей. - Выкинул много старого ui-кода, заменяя Vue-шными VMками. Вообще, постепенно в мешанине фронтендо-кода начинает проступать более-менее стройная структура.
Есть и то, что запланировал, но тупо не успел. На очереди стояло профилирование фронтенд-кода, отвечающего за ТОРИДЭ, так как там много неоптимизированного кода.
>>388984 135 дней позади, и 165 дней до открытой альфы впереди. Геймплей пока не завезли пошаговая стратегия. >>389068 Держусь, полет нормальный пока.
Сегодня прям эталонные "Трудовыебудни: Начало". Под вечер еле поковырял задачу добавления нового миксина (в рубях это такие модули, чтобы запиливать подобие множественного наследования) - Actable. Думал он будет просто сигнатурным, но мысль поперла, и пошел метакодинг, рефлексия... Всё, чтобы сделать операцию обсчета хода более декларативно программируемой. Хз, удастся ли, и будет ли удобней, но раз начал, значит завтра добью.
>>389438 Вот не знаю, расчет боев и интерфейс отображения результатов пока даже не в планах. Думаю недель через 5-6 возьмусь за это. Сейчас еще больше фундаментальных механик не сделано.
У меня FIAL, анон. Лежу дома, болею, простужен. Здоровье в этом году чет по-пизде пошло. Возможно, всё из-за стресса. Думаю раньше субботы нормально работать не смогу толком. Наверное Dev-11 будет проебан по срокам.
Первое утро, когда я не чувствую себя разбитым с утра. Dev-11 проебан точно, ну и ладно. Форс-мажоры никто не отменял, на эту неделю у меня официальный больничный. Перенесу все задачи на Dev-12, начну с понедельника.
Да, ОП очевидно не все делает как надо, где-то тупит и пилит велосипеды. Но он же учится. Учится, делает ошибки, застревает, но не останавливается. Плюс ко всему этому он еще и пилит в свободное от работы время, а не полную рабочую неделю за зарплату.
Наверное, какой-нибудь про уже написал бы все что задумал ОП, и даже начал зарабатывать на этом деньги. Вот только что-то мне подсказывает что это не те диванные Кириллы, которые приходят сюда посрать забавы ради.
Я прекрасно понимаю ОПа, сам уже больше полугода разрабатываю игру, тоже занимаюсь этим в свободное время, тоже испытываю спады и подъемы мотивации. Делаю косяки, перепиливаю кое-что, поднимаю свои скилы, но за счет всего этого двигаюсь очень медленно. Но ведь двигаюсь! И это охуенное чувство. Гораздо лучше чем посрать в тредике, атвичаю.
Я не программист и не IT-шник вообще, поддерживаю ОПа в его затее, поскольку он использует наилучший метод достижения цели: составление плана, постановка целей на неделю и конспектирование -- это залог успеха в любом деле. Он своего добьётся, в отличие от тех, кто сидя на диване ждёт вдохновения, подходящей конъюнктуры, остановления экономического спада, мировой революции и прочие отмазки немощных.
>>391330 >>391336 То, что хейтеры пишут в большей степени характеризует их самих, чем объект обсуждения. Человек так неосознанно обнажает свой внутренний мир. Милoнов как пример. >>391341 Главным образом, http://macode.ru/ Но цели, планы, отчеты тоже себе неплохие вспомогательные средства.
158 дней 4 часа 21 минута Сегодня наскреб весь код, сделанный на прошлой неделе, обложил тестами и запустил на тестовом серваке. Тройка багфиксов + рефакторинг - лучше чем ничего. Сегодня вечером займусь интересной задачей из Dev-12: миксинг этносов. Представим, у нас есть N различных этносов, разной численности. Всего комбинаций миксинга N(N-1)/2. Итого после миксинга у нас до N+N(N-1)/2 этносов. Узнать численность каждой группы. Тут пригодится алгоритм распределения шаров по корзинкам.
>>391389 А где МЕХАНИКА, где ГЕЙМПЛЕЙ? Не, это хуйня, опчик. Симулировать миксинги и теребить алгоритмы можно годами, но ты не жаба, тебе за это не донатят да и в дф геймплея достаточно Попробуй лучше игру делать.
>>391457 Ладно, так уж и быть, заведу сейчас в Dev-16 таск "Добавить геймплей". Часа 2 хватит? Не, лучше 3.
Сегодня за каким-то хером взял кофе в ларьке у метро. Через час меня скрутило, и подмучивает еще до сих пор. Но задачу я успел потыкать. Сегодня вряд ли доделаю, но понадкусываю хотя б.
>>391620 сука как меня уже доебал этот щенок, от кофе его скрутило, больной он в кроватке лежит, поди мамка ему еще и супчик подогревает и из ложечки кормит сисей
ОП на связи. Был немного занят по реалу. В основном писал именно код, поэтому показывать пока особо нечего. Но может через пару недель когда код доделаю, начну вам скрины присылать. Или не начну. Может забить на это всё?
>>396128 Настоящий ОП в треде. Те двое были просто мимиками. На самом деле я не болел и не был занят - просто лень матушка накатила. Но вы не волнуйтесь, мотивация вернулась и уже очень скоро я порадую вас новыми скриншотами.
>>397663 Я настоящий ОП, вы че тут развели? Те трое просто троллят, не ведитесь На самом деле я не болел и не был занят, и мне не лень. Просто в запой ушел. Не волнуйтесь, я уже работаю над проектом, голова уже почти не болит после вчерашнего
А все потому что ОП-хуй поставил себе слишком долгий срок. Нельзя быть уверенным в том, что ты почти год сможешь работать беспрерывно над одним проектом, пусть это даже игра мечты. Нужно ставить реальные сроки, например месяц-два максимум.
>>399350 ну вообще странная логика, игры делаются годами, даже когда есть команда, а уж в одно сопло запилить не флэппи бёрд - это не так уж просто. Тут, конечно, вопрос в мотивации, но именно по этой причине пилить какое-то говно ради запила даже пару за месяцев подряд может заебать раньше дэдлайна.
ОП на связи. Был в командировке в Индии, поэтому проект временно заморозился. Планирую продолжить репортинг ин в обычном режиме после праздников, к тому же, я продумал как исправить все мои прошлые проблемы и придумал новые фичи. Так что дела пойдут намного быстрее. Играбельный билд все еще первостепенная цель, выкачу до конца мая 100%.
>>307000 (OP) >Это ВЫЛЕЗАТОРСТВА тред. Мне надоело стоять на месте и деградировать, поэтому я решил НАПИСАТЬ ИГРУ ЗА 300 ДНЕЙ. >@ >Прошло 300 дней >Обосрался и молча свалил обратно под шконку. И ПОСЛУЖИТ СИЙ ТРЕД УРОКОМ! Не вылезете вы никуда, ублюдки.
Итак, ОП вернулся. Работаю над глобальным апдейтом, думаю после майских праздников уже его выкачу. Алсо буду стараться по возможности отписываться в треде как и раньше.
Сначала я подумал, что ого очередной чувак начинает пилить свой мега шыдевр. А потом я посмотрел на дату и понял, что это бля тред 2016 года. Ну что, автор, как тот твой год прошел? Так мельком пролистал этот тред и ниче особо не увидел из результатов. Геймдев, как я понимаю, нагнул тебя раком, а не ты его?
>>534531 Очевидно, что игра вышла настолько охуенной, что ОП решил наслаждаться ей в одиночестве, кайфуя от того факта, что никто кроме него на всей планете не сможет в это великолепие поиграть и это делает его сверхуникальным. По тем же причинам я девственник и никогда не позволю никому прикоснуться к моему члену. Каждый сеанс фапа просто волшебен от осознания такой уникальности.
Стап онон, так этот перец даже не единой демочки, гифочки или даже спрайтика не показал? Сууука ору с того какие красноглазики тууупые. Буду 3 года писать индуский текст и в итоге не получу нихуя. В то время как умные аноны клепают игори в гейммейкере и рпиджи мейкере за месяц и поднимают килотонны бабла в стимах.
>>536328 >умные аноны клепают игори в гейммейкере и рпиджи мейкере за месяц и поднимают килотонны бабла в стимах Там надо уметь в рисование. На ворованных пикчах много не заработаешь.
>>307000 (OP) Анон, я как бы говно клиппер и планирую выпускать 3d клипы по заказанным вселенным, можно в этом разделе вести дневник предстоящего 3д гавноклиппера?
>>307000 (OP) Если я продолжу путь лэйнафага, могу ли я захватить тред и сделать из него свой бложик? Есть идеи и фантазии на этот счёт, что думаете /gd/?
>>573154 Да нахуй ты нужен, такой же пиздаболишко как оп, только еще хуже, потому что даже свой тред не хочешь, лишь бы к другому примазаться, ничтожество.
>>588984 Тот кто чего-то хочет добиться не создает аутотренинговые треды на дваче да и он бы точно пришел повыебываться хоть малейшим успехом на зло всем, как видишь этого не произошло