Это копия, сохраненная 22 сентября 2020 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Опыта игродела у меня по-факту нет. В погроммировании умею всего понемножку ну вы понели. Пишу игорь - мультиплеерную стратегию с доступом через веб инбифо ололо-браузерка
>>307012
Поздно начинать с простого, т.к. идею вынашивал слишком долго, и не могу отказаться от неё, даже если проебусь в итоге, буду метить на полноценный проэкт задуманную масштабность можно отдаленно сравнить с ранним Травианом
Сегодня весь день кодил карту маршрутов. Игровой мир поделен на регионы, соединенные между собой. То есть граф. Вершины, ребра. Делал поиск по Дейкстре, расчет зоны досягаемости с лимитом. Регионы поделены сухопутные и водные, значит и поиск пути бывает или только по суше, или по суше+прибрежным водным регионам, или по всем регионам.
Устал, слишком много на себя взял за сегодня. Чувствую, что половину потом всё равно придется переделывать, т.к. скорей всего дизайн будет меняться по ходу реализации.
прикол))
>Сап, мейлач
Сап
>я решил НАПИСАТЬ ИГРУ ЗА 300 ДНЕЙ
Интересно. Обычно народ решает написать игру "Что бы в ней были корованы", или "Что бы вылажить в гринлайт и грести бабло". А тут финальная цель - временной срок. Напиши змейку. Почти наверняка уложишься.
А не, погоди-ка.
>Пишу игорь - мультиплеерную стратегию с доступом через веб
У тебя же уже проект в общих(Очень общих) чертах есть. Но это уже не выглядит простым. Разве что в каком-нибудь Юнити есть плагин, что бы писать браузерки в 10 строк. А иначе тебя ждут все чудеса рассинхронизации игрового мира. Я бы не назвал эту проблему тривиальной.
Я это к тому, что, возможно, тебе стоит для начала выбрать более простую цель
>Поздно начинать с простого, т.к. идею вынашивал слишком долго, и не могу отказаться от неё
У всех есть такая идея. И все, в итоге, от неё отказываются. Даже, черт возьми, серьезные люди, вроде Питера Молинье, порой должен отложить свои растущие в реальном времени деревья на полку, что бы проект таки был реализуемым.
>Сегодня весь день кодил карту маршрутов.
А к чему ты её делал? Обычно, вроде как, сначала определяются с тем, Что делать, затем как делать, и только в конце уже делают. По-моему ты перескочил пару этапов. Уверен что нигде не сбился и в итоге не окажется, что то, что ты делал, не просто не нужно на половину, а не нужно даже близко?
>Перед глазами поставил таймер. Сейчас осталось 297 дней, 4 часа 24 минуты.
Хуйня. Быстро забьешь. Лучше пиши список задач на неделю-две вперед. Задачи пиши как можно конкретнее.
>скорей всего дизайн будет меняться по ходу реализации.
Выдели пару дней на написание концепт-дока, туда выпиши все, что ты думаешь об игре, заодно продумаешь детали, потом не придется переделывать.
>>307051
Сейчас поясню в чем моя проблема. Концепт-док пишу, в локальной вики, хоть и с трудно пиздец. Описание на уровне "ограбления корованов" есть, а в деталях неизменно натыкаешься на то, что начинаешь тестить в прототипах, и половину в итоге выкидываешь. Потому что не стыкуется замысел и реализация. Сегодня пока писал карту маршрутов три раза переписывал с нуля описание того, что происходит.
Так что не получается сидеть и писать тех.док без попутного кодинга.
Странно, что ты без опыта игродела берешься за работу длиною без малого в год. Тем более, что до этого ты только стоял на месте и деградировал.
> Поздно начинать с простого
Никогда не поздно начинать с правильного. А единственный путь начать с правильного в сложном - начать с простого.
Иначе за стадией бурной слабоструктурированной активности наступит стадия депрессии и обесценивания идеи.
Так. Делаются. Вещи.
Природу не наебёшь.
Графодрочеры хуже червя-пидора.
Я уже не человек, я зверь нахуй Сам недолюбливаю аватаркоблядей, но делаю исключение для общения в своем треде.
>>307104
В обычной ситуации я бы с тобой согласился. Но если достаточно напрячься (а я и занимаюсь этим) то сложное распиливается на простые изолированные части, запиливаемые по отедльности.
Вообще речи о том, что у меня нихера не выйдет и зря я берусь за такой проект - ожидаемы. Но вот такой я упертый, не верю в это, работаю. Так что если можно, давайте больше конкретики.
Итак, 296 дней, 16 часов 28 минут. Есть время немного поработать. Думаю над размещением в коде игровых констант. Наверное их нет смысла размазывать по всему коду, лучше создать отдельный модуль, куда запихнуть.
Слушай, без обид, но ты так и будешь пиздеть и дни считать, или может хоть чем-то уже займёшься?
> Но вот такой я упертый, не верю в это, работаю.
Ну да, уже целый день мечтаешь о том, как будешь всё запиливать - всё как гейдев-бывалый в блошике учил.
2,5к кода за 9 месяцев-кун
Кто такой, чем знаменит?
>>307184
>>307190
Зойнимаюсь, зойнимаюсь. С последнего вчерашнего коммита в гит diff --stat
10 files changed, 229 insertions(+), 2 deletions(-)
Вики со вчера выросла на жалких 2 килобайта.
296 дней, и 40 минут.
Сегодня я дико буксовал. Казалось бы, простая задача - есть набор числовых атрибутов, притом сумма атрибутов всегда должна быть константной, а также есть верхние и нижние границы значения каждого атрибута. Нужно любой набор атрибутов привести к такому виду, чтобы удовлетворял условиям. Да еще надо по максимуму (насколько это возможно) сохранять по пропорции этих величин. Оказалось, нихуя не просто. Сначала думал об скейлинге всех величин до нужной суммы, затем впихивании в границы, и так в цикле пока не устаканиться. Но это ж быдлокод, тысячи итераций с учетом double precision.
В итоге сделал без цикла, но простыней на 100 строк. Тесты проходит, и это главное.
Нельзя больше тратить на такую мелочь столько времени. В следующий раз буду откладывать в сторону или реализовать дубовый вариант.
Согласен, балансить. Я о другом немного. Допустим, напишу я в диз-доке что "можно грабить корованы", завяжу на это половину геймплея. Потом сяду за реализацию водопадная модель разработки? фу блять, фу нахуй, и функция корованов оказывается настолько во всех смыслах сложной в реализации, что ну ее нахуй. Диздок можно выкидывать и писать с нуля.
Так что я буду лучше общий план в голове держать, а детализацию описывать и кодить параллельно.
295 дней, 16 часов 30 минут
Сегодня нужно много зафиксировать в вики - чет дохера далеко ушел в коде. Также, раз уже готова функция балансировки атрибутов, осталось сделать обвязку в виде классов, работающих с этими атрибутами.
Не по теме вопрос. А сколько времени в день тратишь? Учишься, работаешь?
> ещё не написал диздок, но уже отлаживает функции, которые пишутся в поздней альфе, а можно и до бетки отложить
> функции элементарные, но и они вызывают огромные проблемы
> уже 3 дня мечтаю о том как напишу симулятор всего
Ой всё.
Быдлокодю в офисе пятидневку, в рабочие дни трачу на проЭкт 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(-)
но отчасти потому что переносил старый код работы со рандомом (с гауссовым распределением для больших выборок).
В целом хуево поработал сегодня, но это потому что конец рабочей недели, надо было как быдлу бухнуть пива... Завтра выходной, так что буду ебошить весь день. Закончу с параметрами, планирую выстроить примерную последовательность игрового хода (да-да, анон, игоря то пошаговая, забыл сказать).
Где?
Скриншотов чего? Как код проходит юнит-тестирование разве что.
294 дня, 11 часов 50 минут
Думаю над последовательностью обсчета игрового хода. Выглядит пока достаточно просто:
Входные данные это состояние мира, и список приказов игроков.
Обрабатываем, хуяк-хуяк
* На выходе получаем новое состояние мира и список произошедших событий.
с языком уже определился?
есть маленькая хитрость. можно все команды в виде лога хранить. а потом когда клиент просит статус отсчитать в этом логе команды с момента последнего обновления для этого клиента. и отослать ему.
при том достаточно считать команды а не время. всетаки стратегия же.
так вот. каждая команда это тик - число. когда команда исполняется - число увеличивается. на серваке у каждого клиента прописано число последнего обновления. и клиент запрашивая статус получает только то что изменилось а не все подряд.
это сэкономит тебе пару часов.
в бэкенде руби, графоний с помощью Three.js или если попрет, Blend4Web. Соединять каким-нибудь говном c cgi-bin и веб-сокетами
>>307551
Тут есть проблема. Тогда солидную часть логики по расчету придется переносить на клиента. Не хотет. Думаю обсчитывать на сервере, пилить статичный объект, и отдавать клиентам нужными кусками по запросу.
294 дня 6 часов 44 минуты Только закругляюсь с документированием связки параметров. Примерную последовательность действий по обсчету игрового хода набросал в тетрадке. Поаутирую вечером над вики, потом начну пилить каркас обсчета хода.
количество просчетов на клиента и на сервере зависит только от того что ты хочешь. для шутана можно тик установить в 20мс и все равно работать будет. ну так мне кажется. в любом случае удачи тебе. главное 40 дней продержись а потом биохимия поможет.
Выдохся на сегодня. Начинать новый этап кодинга на ночь не хочу, т.к. не хочу прерываться потом на середине. Главное что получилось в вики изложить в самых общих чертах последовательность действий по обсчету игрового хода. Завтра начну лепить в коде из говна и палок эту последовательность.
За сегодня вики выросла на ~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 ДНЕЙ бы не понадобилось.. Посмотрим че как будет, а пока отдых до утра.
ОП, я вот тут подумал, а на что ты живешь? Работаешь, учишься или просто на мамкиной шее сидишь?
Только поступил на первый курс, а времени практический нихуя, а когда выбивается свободное время, то делать уже вообще ничего не охота. Кармаки, а как вы подобные проблемы решайте? А то я уже заебался, реализовать себя как-то в творчестве охота, но вот или нет времени, либо сил.
Если это реально норм техновуз, то на первом курсе лучше подзадрочиться, понять всю систему и получить нормальную базу.
Потом уже будешь знать где можно сэкономить время, как распорядиться им полезнее.
Ладно, спасибо за совет, похоже пока что нужно ограничиться лишь набросками.
Ну это, есть же хоть какой-то прототип там, хоть передвижения героя (героев) по локации. Есть же карта маршрутов.
Сферический backend в слое юнит-тестов надоест, лучше делать параллельно какую-то примитивную графику, чтобы видеть, как оно в реальности работает.
Я ж писал уже, быдлокодю пятидневку в офисе, денег немного есть.
> делать уже вообще ничего не охота
> но вот или нет времени, либо сил.
Жил в этом состоянии много лет. Оно не проходит само по себе. Мне пришлось ставить вопрос ребром: "согласен ли продолжать жить говном без задач". Сейчас пытаюсь выбираться.
>>307623
Я планирую уже в ближайшую неделю упарываться выводом состояния мира и событий в соснольку, то есть получить минимально рабочее что-то. Без этого пока тоскливо, согласен.
Отставить, я здесь. 293 дня 5 часов 27 минут
Сегодня весь день возился с первым ПРОТОТИПОМ, по сути просто прогоняя случайно изменямую во времени связку параметров. Сразу выплыли тонны косяков и неучтенных багов. Вечером выложу метрику по коду, там пиздец сколько переписано.
Да, я поменял отношение к неконсистентным данным. Если раньше при обнаружении факапов сразу бросался экспешн и все крашилось к хуям, то теперь пишется в лог ошибок а дальше программа ПРЕВОЗМОГАЕТ (фикся неконсистентые данные) и работает дальше. Самое большое на сколько ставил тестить прототип - 400к игровых ходов, за это время в лог упало 142 ошибки связанных с проблемами округления double (не сходятся на пару эпсилонов). Кому там скриншотов?
Вообще думал управлюсь за пару часов, а вышел весь день. Надо успеть за вечер еще что-нибудь.
Только этот оп помрет еще раньше.
> тред игры про пиратов версия 2.0?
есть кулстори?
293 дня 1 час 41 минута
Помимо прототипа, самым полезным за вечер было то, что наконец в тетрадке решился накидать всю схему взаимодействия программных частей. Вышло в 5 слоев.
Вики подросла на 2600 байт.
В гите появилася прототип, дохера новых тестов по кейсам, на которых код фейлит. За сегодня:
9 files changed, 384 insertions(+), 132 deletions(-)
По RDocу:
Classes: 20 ( 12 undocumented)
Modules: 10 ( 9 undocumented)
Constants: 12 ( 7 undocumented)
Attributes: 24 ( 20 undocumented)
Methods: 66 ( 55 undocumented)
Total: 132 (103 undocumented)
21.97% documented
Всё-таки работать целый день изматывает. Надо побольше отдыхать.
Нахуй ты этой малафьёй занимаешься? Ты что, велосипедик? Делай игру на юнити или анриле.
>Помимо прототипа, самым полезным за вечер было то, что наконец в тетрадке решился накидать всю схему взаимодействия программных частей. Вышло в 5 слоев.
Вот это ты умный. Такого стиля даже у профессоров в вузе не было. По крайней мере, тебе хоть доставляет всё это, ОП?
>В гите появилася прототип, дохера новых тестов по кейсам, на которых код фейлит.
А можно чтобы гит появился прямо ИТТ? Я б вбросил немного
> Ты что, велосипедик?
This. Хотя, как и говорил, возможно на клиентской части и будет какой-нибудь комбайн уровня Unity Webplayer и Blend4Web.
>>307846
> тебе хоть доставляет всё это
а то
> А можно
Не. ПроЭкт не краудсорсовый. И с учетом сжатых сроков, я очевидно не найду людей, которые мотивированы работать в таком же темпе. Так что пока один.
292 дня 12 часов 47 минут
Кажись, началось - сегодня ночью приснилось, как работаю над игрой. С утра еще раз подумал над схемой всех компонентов, зафиксировал в вики. Сегодня наконец сяду за каркас обсчета игрового хода, благо стало чуть более ясно, что именно в нем происходит.
Разбирался с порядком действий при обсчете хода, немного охуевал. В итоге пришел к важному решению - избавиться от иммутабельности объектов в коде. Тут она реально приносит больше проблем чем пользы.
Переписал часть кода, задокумментил карту маршрутов. В гите:
10 files changed, 252 insertions(+), 108 deletions(-)
Вики выросла на 1900 байт
По RDoc:
Classes: 21 (13 undocumented)
Modules: 12 (10 undocumented)
Constants: 12 ( 7 undocumented)
Attributes: 27 ( 4 undocumented)
Methods: 71 (48 undocumented)
Total: 143 (82 undocumented)
42.66% documented
Сегодня наименее продуктивный день из выходных - ебанная мигрень всю вторую половину дня мучала, еще и пива ебнул, благо предки угощали. Выписал в тетрадку основные принципы системы расчета боев (точнее, только разбор крайних случаев). Кодирование каркаса обсчета игрового хода всё ближе к реальности, хотя по-прежнему только у меня в голове. Начинаются трудо-выебудни, времени в день на проЭкт будет меньше, но, ЧСХ, более сжатое время я расходую продуктивнее - сначала весь день думаю что сделать, а вечером делаю.
Ладно, отбой.
"Сегодня я кое что понял" (ц) На самом деле, много. Удалось описать последовательность обсчета хода в псевдокоде, описать в общих чертах структуру данных игрового мира. Придумал простой способ работы с настройками игровой сессии. Реогранизовал иерархию кода проекта, добавил подразделение на дополнительные модули оттого в статистике гита дико много изменений (но 80% это рутинная хрень):
38 files changed, 1699 insertions(+), 1646 deletions(-)
По RDocу:
Classes: 23 (15 undocumented)
Modules: 14 (12 undocumented)
Constants: 12 ( 7 undocumented)
Attributes: 34 ( 4 undocumented)
Methods: 76 (53 undocumented)
Total: 159 (91 undocumented)
42.77% documented
Вики выросла на 2100 байт.
Сейчас еще посижу с тетрадкой, более подробно и ясно распишу действия, что происходят во время игрового процессе, от клиента до сервера и обратно.
Также ты не продукт пишешь, а аутируешь код. Разница в целях. Цель продукта работать. Цель аутирования бесконечно писать код. Это может быть очень интересно, но продукта не будет.
Третье. Говоришь, вылезаторство? А что это значит? Если успех у игрока + финансовый, то не будет. Успех у игрока это крутая идея, крутая графика, геймплей, да что угодно. Только не аутирование кода. Игрокам похуй на код, вот незадача.
>Также ты не продукт пишешь, а аутируешь код
Чего бля? Что ты несешь?
У ОП-а цель - сделать продукт в сжатые сроки, ясен хуй что он будет много времени тратить на код, он в в нем НЕ АУТИРУЕТ БЛЯ, он просто хочет успеть к дедлайну сделать продукт. Ему может быть это вообще не в кайф, но он поставил себе цель и идет к ней.
И да, под вылезаторством он явно имел ввиду, что чтобы заставить себя хоть что-то делать, перестать быть ленивым хуйлом и делать то, что задумывал на протяжении многих лет. Не думаю что ОП при этом еще пытается достичь финансового успеха Хотя попробовать можно, не удивлюсь если его игра окажется инди года, лол..
>под вылезаторством он явно имел ввиду, что чтобы заставить себя хоть что-то делать
>Не думаю что ОП при этом еще пытается достичь финансового успеха
Лул, "что-то делать" и я могу. Жопу чесать, например. Если не ожидается успех, то нахрен это называть вылезаторством? Тогда оно и есть аутирование в чистом виде.
Спасибо, анон, всё грамотно расписал.
>>308486
Успех ожидается ну то есть я на него надеюсь. 300 дней - дедлайн до выхода в открытую бету. Чтобы игру попробовало много людей. Планирую пиарнуться на Хабре и ещё на некоторых ресурсах. Про монетизацию думал, но всё зависит от того, как будет воспринята бета, так что не хочу загадывать.
Отчет за сегодня будет позже, вечером
Я стал ближе к запуску каркаса, который толком нихера не делает, но пробегает все этапы выполнения.
Запили сериализацию карты маршрутов, в гите много добавлений
8 files changed, 205 insertions(+), 68 deletions(-)
Вики выросла на 3400 байт, но по-большей части я дополнял FAQ, по игровой механике немного.
Чувствую, что иду медленно. Но что поделать. Опыт говорит, что самые дорогие ошибки закладываются на самом раннем этапе.
Представляю как он обосрется, когда его абстрактное дерьмо не взлетит на реальных задачах.
Лучше бы игры делал.
Шанс обосраться есть всегда, но опыт погромирования абстрактного дерьма у меня уже есть.
289 дней 2 часа 14 минут
Сегодня был продуктивный день. Я создавал концепцию накладываемых эффектов, переделывал созданную ранее связку параметров чтобы на них можно было прозрачно навешивать модификаторы от эффектов. Еще на один шаг приблизился к запуску полного цикла.
В гите:
10 files changed, 239 insertions(+), 91 deletions(-)
Вики раздулась на 5400 байт: я наконец формализовал несколько правил обсчета величин, начал описывать параметры "регионов" игрового мира.
По RDoc-у:
Classes: 33 ( 22 undocumented)
Modules: 17 ( 13 undocumented)
Constants: 12 ( 7 undocumented)
Attributes: 45 ( 9 undocumented)
Methods: 103 ( 79 undocumented)
Total: 210 (130 undocumented)
38.10% documented
Вчерашние и сегодняшние размышления натолкнули меня на пробелы в игровой механике, которые почти не формализованы и толком не продуманы. Завтра надеюсь заполнить некоторые из них. Также механизм событий пока в подвешенном состоянии. Вопросы банальные - в какой момент создавать, что записывать, и т.п.
делай всё. я болею за тебя и поддерживаю.
побольше описывай проблемы и то как ты их решаешь, это гораздо интересней большей части того что происходит на доске.
>Чего бля? Что ты несешь?
Как профессиональный начинатель проектов я вот понимаю разницу между "аутировать в код" и "создавать продукт". А то ты не понимаешь. А Так удачи ОПу, так то конечно хочется, чтобы что-то получилось.
>>307593
>cgi-bin
Я конечно не шарю в твоём стэке - но это разве не устаревшая хуита?
> Перед глазами поставил таймер. Сейчас осталось 297 дней, 4 часа 24 минуты.
И оказал себе медвежью услугу
>>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 байт, в основном фиксировал изменения, которые делал в коде
RDoc:
Classes: 34 ( 24 undocumented)
Modules: 18 ( 15 undocumented)
Constants: 16 ( 11 undocumented)
Attributes: 53 ( 8 undocumented)
Methods: 119 ( 90 undocumented)
Total: 240 (148 undocumented)
38.33% documented
Спасибо анон, что ты со мной. Этот тредик дает мне +1 к боевому духу.
>>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 байт, в основном фиксировал изменения, которые делал в коде
RDoc:
Classes: 34 ( 24 undocumented)
Modules: 18 ( 15 undocumented)
Constants: 16 ( 11 undocumented)
Attributes: 53 ( 8 undocumented)
Methods: 119 ( 90 undocumented)
Total: 240 (148 undocumented)
38.33% documented
Спасибо анон, что ты со мной. Этот тредик дает мне +1 к боевому духу.
>1) пошаговость
Ты же вроде делал реалтайм
>как в шахматах, всем всё известно
Я тоже мечтал об этом. Но сделать интересную игру без фактора неизвестности (например закрытая колода оппонента) или случайности очень, очень сложно.
>отдельный процесс
По-моему ты что-то делаешь не так. Процессы не бесконечны. У тебя сервак ляжет на 5к онлайна. Сделай пул тредов, каждый из которых будет обрабатывать действия игроков.
Впрочем, предварительная оптимизация - корень всех проблем. Главное смотри, чтобы это не вылилось в рефакторинг на полгода.
Сколько лет и месяцев тебе платят за программирование?
>Он передает в ядро данные в сериализованном (скорей всгео тупо json)
Тупо ядро не должно ничего знать о сериализации вообще.
>персистентой инфы
Ты неправильно использууешь это понятие. Смысл не в постоянности, а в единственности, неповторимости и отсутствии коллизий.
>где работают два веб-сервиса
Что-то не понял. Сколько у тебя постоянных коннекшенов от клиента, больше одного?
>я тут пива ебнул
Да ладно, я тут тоже ёбнул сегодня. Только ты не пиши код на пьяную голову.
Ну и вообще, делай в первую очередь вещи, которые можно узреть своим взглядом. Это даёт +10 к мотивации.
Не трать на одну задачу больше двух-трёх дней. Так запас воли иссякнет очень быстро.
Остаюсь следить за тредом.
> реалтайм
Не, пошаговая, тут первый раз упомянул >>307461
Фактор неизвестности будет, т.к. будет много случайных событий, на которые игрокам придется реагировать, да и будет много игроков, каждый тянет одеяло на себя непредсказуемым способом.
> отдельный процесс
Планировщик - один отдельный процесс. И ядро он запускает по расписанию, отдельным процессом, который отработал и закрылся. То есть по обратную сторону от БД максимум 2 процесса на всю игровую сессию.
> Тупо ядро не должно ничего знать о сериализации вообще.
согласен, у меня путаница имен. Там внутри есть отдельный компонент сериализатор-десериализатор
> персистентой инфы
Ты расписал за консистентность, а я о том что энергонезависимое место хранения всей инфы будет в БДшечке, то есть холодный старт только по данным в ней.
Ладно убегаю, вечером отвечу дальше
>который отработал и закрылся
Лучше ему в цикле отработать и за-wait-иться
Один на всех юзеров или на каждого юзера?
> Сколько у тебя постоянных коннекшенов от клиента, больше одного?
Тут есть нюанс, из-за котрого я думаю разделить конекшены. Наблюдать за игровой сессией можно без аутентификации, то есть сервис тупо раздает статичное состояние игры в пределах хода. А второй сервис уже различает кто какой игрок и принимает приказы
>>309034
Стандартная ВПСка обойдется долларов в 30 месяц, и, по моим прикидкам сможет держать до пары сотен игроков (цифра с дивана, пока не тесировалось)
>>309040
Один на всех. Посмотрим, может и висеть будет. Прост межпроцессное взаимодействие проще будет, лол, - запустил с ключами и получил по stdout статус когда готово.
>>309050
Нету её, как говорил, проЭкт не краудсорс, да и стесняюсь я свой быдлокод выкладывать.
287 дней 53 минуты
Сегодня запилил сериализацию-десериализацию эффектов. Притом, изящным костылем в базовом классе, заработал механизм и для всех субклассов. Теперь аналогичный механизм делаю для событий. Но там сериализоваться будет весь EventStream, и всё о чем говорится в событиях в том числе эффекты, поэтому их сериализовать надо раньше. Сделал минимальные заделки для сингелтона Chronos (пафосное имя? время считать будет)
В гите:
9 files changed, 204 insertions(+), 11 deletions(-)
Вики выросла только на 1800 байт, в основном фиксировал то что делал с Событиями и Эффектами
Чуть поупарывался в документирование
Classes: 37 ( 25 undocumented)
Modules: 18 ( 14 undocumented)
Constants: 20 ( 10 undocumented)
Attributes: 53 ( 8 undocumented)
Methods: 129 ( 93 undocumented)
Total: 257 (150 undocumented)
41.63% documented
Завтра выходные. А это значит ебошить целыми днями. А я простудился походу. Буду значит спать с перерывами на короткие рабочие промежутки. Хочу скорей запустить полноценное ядро, пусть там реализован 1% от намеченной логики, и попрототипировать другие слои. Мало ли какие ВНЕЗАПНО выскочат особенности.
> Сколько у тебя постоянных коннекшенов от клиента, больше одного?
Тут есть нюанс, из-за котрого я думаю разделить конекшены. Наблюдать за игровой сессией можно без аутентификации, то есть сервис тупо раздает статичное состояние игры в пределах хода. А второй сервис уже различает кто какой игрок и принимает приказы
>>309034
Стандартная ВПСка обойдется долларов в 30 месяц, и, по моим прикидкам сможет держать до пары сотен игроков (цифра с дивана, пока не тесировалось)
>>309040
Один на всех. Посмотрим, может и висеть будет. Прост межпроцессное взаимодействие проще будет, лол, - запустил с ключами и получил по stdout статус когда готово.
>>309050
Нету её, как говорил, проЭкт не краудсорс, да и стесняюсь я свой быдлокод выкладывать.
287 дней 53 минуты
Сегодня запилил сериализацию-десериализацию эффектов. Притом, изящным костылем в базовом классе, заработал механизм и для всех субклассов. Теперь аналогичный механизм делаю для событий. Но там сериализоваться будет весь EventStream, и всё о чем говорится в событиях в том числе эффекты, поэтому их сериализовать надо раньше. Сделал минимальные заделки для сингелтона Chronos (пафосное имя? время считать будет)
В гите:
9 files changed, 204 insertions(+), 11 deletions(-)
Вики выросла только на 1800 байт, в основном фиксировал то что делал с Событиями и Эффектами
Чуть поупарывался в документирование
Classes: 37 ( 25 undocumented)
Modules: 18 ( 14 undocumented)
Constants: 20 ( 10 undocumented)
Attributes: 53 ( 8 undocumented)
Methods: 129 ( 93 undocumented)
Total: 257 (150 undocumented)
41.63% documented
Завтра выходные. А это значит ебошить целыми днями. А я простудился походу. Буду значит спать с перерывами на короткие рабочие промежутки. Хочу скорей запустить полноценное ядро, пусть там реализован 1% от намеченной логики, и попрототипировать другие слои. Мало ли какие ВНЕЗАПНО выскочат особенности.
>Тут есть нюанс
Тут есть нюанс... У тебя должна быть статика, которую можно закешироватьв Nginx (любые картинки, статичные JSON, любые тексты и тд) и динамика одним коннекшено>>309132
>Хочу скорей запустить полноценное ядро
м. Есть это не так, то ты делаешь плохо.
>Один на всех.
Ну если это работает хорошо, то хорошо.
>сингелтона
синглтона
>Чуть поупарывался в документирование
Это изменено или добавлено?
>Хочу скорей запустить полноценное ядро
Делай то, что видно глазу, иначе мотивация сильно падает.
>вечером отвечу дальше
Ждёмс...
> У тебя должна быть статика
Так состояние игровой сессии и есть статика в JSON ну, я так думаю, время жизни измеряется сотнями секунд. Кеширование из БД подумывал вообще на Redis возложить.
> Это изменено или добавлено?
ни то, ни то. Это прост суммарная статистика по кодовой базе
> Ждёмс...
На что там еще не ответил? Сколько на дядю работаю? Около 5 лет, и, скажем так, поднадоело немного. Не то, чего я ожидал от своей профессиональной жизни сейчас трудно вспмонить, может раньше и устраивало, а отношение поменялось с недавних пор
>Unity Webplayer
Поддержка в самом популярном браузере Chrome давно вырезана к хуям. Забудь.
Сегодня был день сериализаций. Я дописал сериализацию-десериализацию событий, игровых клеток, параметров, неба, Аллаха...
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 из файлов и сохранять туда же). Но нужно еще закодить механизм обработки приказов от игроков. Этим займусь завтра.
А неплохо, что тут сказать. Забавно, что ты начал с ядра игры. Я начал с другого конца. На мой взгляд так наглядности больше. Но столкнулся с проблемами продумывания интерфейсов модулей. Наверное стоит просто сесть и набросать каждый из них в общих чертах, потом уточнять до тех пор, пока не покажутся не стыковки.
>Пафосное имя для менеджера времени
Да что же это такое то! Я то думал хоть тут буду оригинальным!
Я думал над использованием 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 байт, притом в основном только фиксировал что добавляю.
Стата по RDocу
Files: 35
Classes: 54 ( 42 undocumented)
Modules: 22 ( 18 undocumented)
Constants: 25 ( 15 undocumented)
Attributes: 73 ( 27 undocumented)
Methods: 190 (142 undocumented)
Total: 364 (244 undocumented)
32.97% documented
Завтра довершу начатое. Тогда можно будет уже подавать настоящую, не фейковую очередь приказов в ядро для обработки.
А может вообще возложить генерацию id на сам реестр. Чтобы не придумывать вручную, и сразу избегать коллизий.
Сегодня будет снова день безудержного кодинга.
А ты придумай каждому объекту имя(У тебя их конечное число? Можешь именовать их до компиляции?) и хэшируй. Потом сохраняй в либо в дерево с бинарным поиском, либо в хэш-таблицу. А поверх прикрути детектор коллизий, который бы в дебаг-моде содержал свою личную таблицу имя-хэш и при каждом новом хэшировании проверял бы коллизии, а в релизе, когда все объекты будут готовы, а имена известны и точно без коллизий, просто отруби детектор, что бы не делать лишних действий.
> компиляция
> руби
Реестр объектов это и есть хеш-таблица. Ключ - ид-объекта, значение - сам объект. Коллизии отлавливаются уже на этапе помещения в реестр.
Да, количество объектов не известно, и может меняться в процессе обсчета игровой сессии
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
Сроки поджимают. Завтра надо двигаться вперед и напролом. А сегодня отдыхать.
ладно-ладно. Ты поймал меня. Я код на руби в глаза не видел. Я и слышал то о нем лишь название. А теперь к делу.
>SpellBook[spell_code].to_spell(ObjectRegistry[player_id]).cast(ObjectRegistry[target_id])
У тебя target_id это тоже игрок? Если нет, то не кажется ли тебе, что не особо-то логично. Быть может лучше будет сделать что-то типа GetPlayer(Name).id Синтаксис придуман мной только что, но надеюсь идея ясна что бы симулировать как-бы другой реестр, отдельный для игроков, где доступ к игроку получается по имени, а затем соотносится с позицией в основном реестре.
target_id это идентификатор цели. Целью может быть что угодно, любой объект. Смысл делать для разных типов объектов разные реестры?
Смысл вводить дополнительную идентификацию игроков по Name? У них уже есть уникальный id, как у любых индексируемых объектов (и id кстати будет маппится на id который primary key в таблице бд)
>>309512
Да ты упоролся! Респект.
Она мертва уже четверть столетия. Окстись.
Сегодня был день адового пердолинга в соснольку, завсегдатаи /s/ бы оценили. Апгрейдил версии рубей, для pg гема - дружил на двух рабочих машинах руби с постгресом. Потом настраивал сервер бд аве Докер, писал скрипты для развертки БД, для дампов, ресторов. Создал папку с гордым названием assets и начал заполнять константые данные в spellbook.json, которые потом еще кладутся в БД инициализирующим скриптом.
Вообще, рутинно. День бы закончился на депрессивной нотке, НО, внезапно забрезжила надежда. Похоже что я уже могу обозреть в общих чертах ВСЮ схему, по обе стороны от БД, от конечного юзверя до недр ядра. Теперь моей целью является прототип, разумеется, скелет без мяса, но с принципиальным минимумом функционала. Думаю, выйду на него в течение 10-15 дней.
Ежедневные цифОрки:
25 files changed, 422 insertions(+), 23 deletions(-)
В вики всего 150 байт. Почти не заношу туда ничего, потому что не занимаюсь непосредственно игромеханикой.
Rdoc
Classes: 59 ( 44 undocumented)
Modules: 23 ( 18 undocumented)
Constants: 26 ( 15 undocumented)
Attributes: 72 ( 28 undocumented)
Methods: 223 (160 undocumented)
Total: 403 (265 undocumented)
34.24% documented
Не проебите тред!
Содомит, я теперь не могу развидеть это!
280 дней 13 часов 44 минуты
Я вернулся, Мейлач. Успел даже немного покодить в командировке. Но что более важно, у меня созрел ПЛАН. Не позднее чем за 270.00:00:00 дней до дедлайна я должен выйти на ПРОТОТИП-30. Что в нём будет:
Веб-клиент, который максимально говнопалочно отображает состояние игровой сессии - граф игровой карты (всего около 3.5 вершин), у каждой клетки видны её параметры (точнее, один). Можно авторизоваться за определенного игрока и отдать приказ - повесить баф параметра на клетку. Для этого на серваке нужны два сервиса - Nginx который раздает статику игровой сессии, и велосипед, на вебсокетах, принимающий приказы. Глубоко в бекенде будет висеть процесс типа cron-а, который будет совершать ходы, периодически вызывая ядро игровой логики.
Звучит несложно, однако пока у меня есть только недоядро и 10 с половиной дней чтобы достигнуть задуманного.
Больше всего боюсь закопаться в особенностях Nginx, ибо не имел опыта, так что постараюсь сделать всё МАКСИМАЛЬНО просто. Всё равно переделывать чуть менее чем целиком придется в будущем.
Слушай, анон. А у тебя есть требования к твоему проекту? Ну там, вроде, максимальное число игроков? Скорость отклика при таких-то условиях? Количество веселья на игрока в минуту?
И еще кое-что. У тебя записанный вариант архитектуры в подробностях? Какой модуль с каким взаимодействует? Какие контракты они друг-другу выставляют?
> А у тебя есть требования к твоему проекту?
Требую масштабируемость, но более точно сказать пока не смогу.
> У тебя записанный вариант архитектуры в подробностях?
Неа, именно в подробностях на бумаге нет. Все компоненты завязаны и взаимодействуют через БД, структура таблиц и их отношения - вот и весь контракт.
280 дней 2 часа 27 минут
16 files changed, 335 insertions(+), 56 deletions(-)
День проведенный за еблей с постгрёй. Формировал апи для работы с бд (завертывал типичные кейсы использования БД в функции, покрывал тестами).
В ядро добавил два напрямую связанных с БД действия - проверку на доступность приказа от определенного игрока и расход маны на совершение заклинания. Само по себе не сложно, но прежние юнит-тесты конечно пошли по пизде, пришлось переписывать.
Завтра спроектирую и запилю две основных таблицы для хранения информации об и истории состояний игровых сессий. Тогда можно будет проверить цепочку из бд -> десериализация -> ход -> сериализация -> в бд. Как заработает, ядро можно будет оставить в покое до наступления дедлайна по ПРОТОТИПУ-30
Да куда угодно. Начиная с "Там на симпозиуме нужно представить наш продукт и во всех красках расписать, какой он замечательный" и заканчивая "Там 10 фур с цементом подъехало. Иди разгружай"
На один день. Такое изредка бывает - когда все инженегры уже в командировках, а ждут ещё в одной, то приходится ехать всё устанавливать, настраивать и показывать заказчикам. Кстати, это еще один довод против наемной работы.
279 дней 13 часов 55 минут
Вджобываю. Сегодня к вечеру буду выжатим лимоном, но удовлетворенным.
Будто что-то плохое. Сидеть задрачивать тех.спефикации для меня значит не успеть к дедлайну с вероятностью 146%.
>>310476
Угу, и имя этому мжп ПРОТОТИП-30
279 дней 3 часа 1 минута
Плодотворный день, несмотря на то, что я местами не выкладывался на полную.
32 files changed, 477 insertions(+), 76 deletions(-)
Добавил скрипты формирования двух таблиц, обмазал их апи, начал писать модуль сопряжения ядра с БД. Работает выгрузка-загрузка списка приказов.
Так уж получилось, что я максимально далеко отделил внутреннюю логику от ГУЯ. Так что проблемами индейцев (выводом графония) будет заниматься модуль Artist, получая по крохам инфу об изменениях в игровой сессии от Шерифа-ядра. Поскольку для будущего ПРОТОТИПА-30 работа сводится к выводу графа с разноцветными кружочками, бекенд Артиста уже на 90% готов, лол.
Завтра надо уже добить выгрузку и загрузку всей сессии.
>Будто что-то плохое. Сидеть задрачивать тех.спефикации для меня значит не успеть к дедлайну с вероятностью 146%.
Не, у тебя By design хуйня какая-то. Например ты хранишь информацию об объектах где-то в памяти, чтобы её Nginx отдавал. Нахрена? Кэширование не для этого придумали. Там должны быть файлы, которые никогда не меняются: картинки, шрифты, часто скачиваемые файлы.
Например, как ты оповещаешь клиентов об изменении ситуации?
> Например ты хранишь информацию об объектах где-то в памяти, чтобы её Nginx отдавал
Только в БД. А для Nginx инфа будет выкладываться в виде структуры файлов и папок, на ССД раздел. Он её будет раздавать. Это статическая инфа в той интерпретации, что для её получения не выполняется никаких динамических вычислений, и время её жизни измеряется сотнями секунд.
> Кэширование не для этого придумали.
Не факт, что именно кешировать буду. Nginx в принципе быстрее и менее затратно раздает статику чем апач, не только из-за кеша.
> Например, как ты оповещаешь клиентов об изменении ситуации?
> Пошаговая игра
Состояние сессии меняется через заранее известные интервалы времени.
А время у нас теперь совсем не дрифтует? Ты бы все же прикрутил что-нибудь, что бы ядро предупреждало модули работы с пользователями о новом ходе.
Я так это вижу:
Клиент конектится, и ему сразу "сейчас ход 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 ходов, полет нормальный, ивенты генерятся, приказы исполняются, эффекты висят, спадают. По-хорошему, для формирования начальных значений должен быть отдельный модуль, но пока приходится ручками хардкодить.
За день-два планирую добить бекенд и приступлю к сервисам отображения данных.
Если ты используешь вебсокеты, то используй их!
Пускай на каждую игру будет только один таймер на сервере. При срабатывании он сообщает клиентам об изменившейся информации. Ну или пускай он говорит о начале хода, а они подтягивают всю нужную инфу. Так будет немного более костыльно, но меньше изменений в коде.
О времени на клиенте беспокоиться не стоит. Там только отображение. Ход может начаться (по неизвестным причинам) до конца таймера. А если таймер хода заканчивается, то просто остаётся на нуле.
За ходом игры могут следить не только игроки, а вообще все. Но по вебсокетам подключаются только игроки. Игрокобоярам будет приходит отдельное уведомление "ход совершен". А для зрителехолопов - таймер на стороне клиента (на js), по истечении которого - перезапрос страницы.
Скрины, гитхабчик, стримы, где это все?!
> Скрины
Пока был один, сегодня будет второй.
> гитхабчик
Говорил, пока что это не опенсорс
> стримы
Думал над стримингом, но решил отказаться - не факт что это будет интересно, а гемора с этим много. Да и внутренний социофоб этому не рад.
>>310937
Я раздумывал над готовыми комбайнами, но не думаю, что это нужно. Готовый игродельный фреймворк это сборище свистоперделок, из которых нужно процентов 10 от силы, остальное оверхед. Может для какого-то другого проекта я бы и сел работать на готовом, но тут специфика такова, что можно из максимально простых компонентов создать своё компактное решение... Короче считайте что велосипедостроитель/10.
5 files changed, 204 insertions(+), 1 deletion(-)
Мало сделано (много пришлось работать), но опять значительные видимые результаты - заработал процесс хронметража. На скрине. Теперь на бекенде прототип игры пашет сам по себе. Оставлю работать на ночь, лол.
Халява с простыми задачами заканчивается, дальше будет сложней. Разберусь с основами nginx, запущу его в докере, буду генерить для него структуру директорий с файлами, где хранятся куски данных текущей игровой сессии в json, а потом попробую их оттуда позапрашивать, посмотрю на быстродействие.
Значит nginx. Будет раздавать статичные json текущей сессии. Вопрос теперь как их подгружать на веб клиенте? Аяксом? Или через jQuery? (Хотя там тотже xmlhttprequest вроде)
Двое помимо меня? Тогда это уже успех.
>>310985
>>311154
Я нуб в веб фронтенде, читаю только краем глаза про то тот цирк что творится в js. Fetch это значит через хайповые промисы? Где результат запроса асинхронно возвращается в заданную функцию? Вообще, звучит удобно. Попробую.
275 дней 2 часа 44 минуты
12 files changed, 178 insertions(+), 9 deletions(-)
Третий день подряд мало сделано, но видные результаты. Заработал nginx, ему дампится состояние текущего хода, он раздает его статично. Урл выглядит так: sessions/%id сессии%/turns/%номер хода%/--набор json'ов-- Еще и каждый ход символьная ссылка latest обновляется и указывает на последний сделанный ход.
Осталось написать клиентскую часть, который будет тягать эти json-ы в нужное для клиента время. Фетчами. Но это оставлю напоследок.
Завтра приступлю к второму вебсервису, который по вебсокетам принимает от игроков команды. Если вебсокеты не сложнее TCP, то думаю управлюсь за пару дней.
Думал, если управлюсь с ПРОТОТИПОМ-30 раньше чем за 30 дней, устрою себе праздник - порефакторю код остаток времени. А вот сейчас уже хз - будет ли это время... Всё-таки отсутствие опыта во фронтенде может дико затормозить... не хотел спутываться с ним, но что поделать. Буду делать всё максимально просто и прямолинейно.
>Где результат запроса асинхронно возвращается в заданную функцию?
Асинхронно он в и AJAX запросах может возвращаться. В этом плане ты ничего не теряешь если что.
http://stackoverflow.com/questions/14127703/asynchronous-javascript-callbacks-vs-deferred-promise
По ссылке:
>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 вообще не в кайф.
>Чет не вдупляю, тогда в чем разница использования fetch и jQuery.ajax()?
Подрузамевается, что fetch - нативная штука для браузера и тебе не нужно никаких сторонних либ. На практике тебе придётся поддерживать старые браузеры, да даже не все новые браузеры могут в fetch. Поэтому тебе нужно будет тащить какую-то стороннюю либу anyway, которая будет реализовывать эти самые промисы, если браузер их не поддерживает.
Принципиальной разницы так то нет, это кому как нравится, хочешь - Jquery, хочешь - что-то ещё. На этом ёбанном джаваскрипте фреймворки каждый месяц выходят и там куча всякой новой хипстерской хуиты. Можно много бугурта в интернете почитать на эту тему.
Кроме промисов там нет никакого толка.
Shadow DOM и друзья это всё ненужная хипстота в чистом виде. Angular яркий пример.
> На практике тебе придётся поддерживать старые браузеры
И тащить бесполезный груз в виде жидквери только ради аджакса. А ты не охуел, если можно реализовать нативно? Большинство современных браузеров поддерживают фетч (даже Эдж), остальных можно смело слать нахуй имхо.
Мимовебмакака
Так он только хромом поддерживается. Такое же говно, как хтмл5 - будут вводить 10 лет, а потом окажется, что не нужно.
> Мам ну скажи им, что поддержки нигде нет, я хочу устаревшее говно юзать! Ну мам!
http://caniuse.com/#feat=fetch
>Нет поддержки ИЕ6
>Андроид браузер отмечен, как "суппортед", хотя на самом деле нет
>Сафари отмечен, как "суппортед", хотя поддержки нет из-за бага https://bugs.webkit.org/show_bug.cgi?id=151937
Ясно. Только хром. Да опять же, раз поверх XMLHttpRequest'a построили ещё какой-то костыль, это не значит, что он устарел. Просто лишний слой абстракции, который ещё и хуёво поддерживается.
Почитал, что можно вставить проверку на нативную поддержку fetch, и в случае чего юзать полифил (хипстерское слово, узнал смысл вчера). Прост синткаксис у него действительно неплохой, особенно выстраивание цепочек вызовов.
Сегодня весь день вдупливал в Three.js, а заодно и в Blend4Web. Ебаный стыд, как же 3D тормозит в вебе тормозит в вебе! У меня правда видеокарточка днищенская, но всё же. Ладно, мои запросы к 3D небольшие, авось проканает.
Читал как накладывать 2D интерфейс (кнопки, поля ввода, таблицы) поверх 3D, пишут юзай сраненький html. Видимо от верстки не сбежать. Сижу пилю хтмл, пердак тлеет.
Проиграл с кода на пике.
Всё еще печет от html. Но понемногу осваиваю. Flexbox-ы попробвал - прикольно. А еще у меня идея одна охуительней другой - а не попробовать ли меня в качестве одного из режимов отображения игровой карты прикрепить ГИС (на leaflet). Нарезать картинок карты - плевое дело, нанести всякую 2d-хрень, и будет как фоллбэк режим вместо 3D (или наоборот, как детализированный режим просмотра карты, пока ВебГЛ тормозной)
Пиздец, да?
Нет, прототип вроде даже готов в какой-то мере... По крайней мере больше не нужно лазить в консоль, работает постановка заклинаний через стандартные inputы и buttonы + js-быдлокод. Но с отображением карты пиздец. Нет, 2D карта даже работает, и на неё уже наношу кружки с координатами клеток, линиями соединяю их, раскрашиваю в зависимости от типа клетки и от наложенных эффектов. Но 3D...
Бля уже пока писал уже силы кончились. Надо отдохнуть. Завтра может со свежей головой изложу.
У меня цель - достичь понимания того что я делаю. Вот например, текстуры для сферических моделей? Тот же Свиборг. Как я текстуры генерить то буду, вилкой что-ли? Ну то есть, похоже что текстуры для THREE.SphereGeometry должны быть в равнопромежуточной цилиндрической проекции. Курю про UV-преобразование.
Он под веб пишет. Плагин никто не юзает, что там webgl добавили? Полюбому тормозящее говно / 10, как всё и всегда. И все молчат про 10000 подводных камней.
нахер тебе UV для сфер? Материалы для кого существуют?
Да, ходят слухи что Unity под ВебГЛ это херня из-под ногтей и практически не развивается.
271 день 4 часа 9 минут
Это были адовые выходные. Мозг всё еще трещит от новой информации. Но я принял историческое решение - использовать большой пласт опенсорсного кода для генерации карт (еще точнее, ландшафтов планет). Оценив время разработки хорошего генератора планетарного масштаба (с тектоникой, движением воздушных масс и пр.) в минимум 30, а скорее, 60 дней, я понял что не вывезу по срокам.
Уже начал курить код. Оставим ПРОТОТИП-30 позади, номинально он работает. Новая цель - ПРОТОТИП-40, в котором должны быть достигнуты две вещи: 1) до сих пор несуществующая тулза по генерации начального состояния игры 2) настоящий 3D произношу как ТОРИДЭ режим отображения на веб клиенте. Оба пункты будут выполнены с помощью вкуренного и переработанного генератора.
Сорри, анон, забегался, не смог вчера добраться.
269 дней 4 часа 51 минута
Последние два дня разбираюсь с фреймворком для генерации планет, и заодно с ТОРИДЭ графикой. Это пздц, анон. Меня это ТОРИДЭ просто заебало уже. Вертексы какие-то, блять. фейсы, дисторт, релаксация нахуй. Рей кастер создадим - пересечение посчитаем... Вообще охуеть.
Так вышло, что фреймворк использует древнюю версию Three.js, ну я естественно решил его подружить с текущей версий (Зачем? нахера? Потому что дебил могу). С болью, кое-как, оно запускается и чето рисует. Осталось управление камерой прикрутить вменяемое. И оставлю на какое-то время графоний в покое. Буду получать от фреймворка топологию в сериализованном виде, запихивать в ядро. Пока что идея получить в ПРОТОТИПЕ-40 графониевую карту на клиенте выглядит реалистичной.
ОП молодец, продолжай, все правильно делаешь.
Ты скрины прототипа-30 запили сначала.А то он уж пошел дальше, а на нас хуй забил мол и текста хватит, сам то на прототип-30 на смотрелся, а нам как бы ничего. Пока код писал и отлаживал наблюдал за прототипом 30, трогал его., а про нас даже и не подумал.Хоть один скриньочучек маленький скинь оп. А то нехорошо как-то.
Псевдосемёню.
268 дней 2 часа 25 минут
Доделал таки камеру, сделал нормальный уг на самом деле, но пока пусть так бекграунд, починил выделение клеток. Всё, графоний в сторону. Начал делать передачу топологии, с последующим сохранением в БД.
Поймал себя на том что говнокожу со страшной скоростью. Решил выделить для рефакторинга каждый 10ый день оставшегося срока.
Сам не играл, но судя по описанию, пересечение процентов на 20, от силы.
>>312263
В данном случае "топология" не имеет отношение к бекенду. Я говорю о карте (графе) путей, а также температурной, высотной карте, которая генерится во фреймворке, и которую нужно передать на сервер, чтобы он на основе неё создал начальное состояние игровой сессии
>которая генерится во фреймворке, и которую нужно передать на сервер
Подожди, а почему ты на клиенте что-то генеришь, сервер ведь по идее должен генерить/изменять "топологию" и отдавать клиенту(ам)
тот же анон
О, точняк, а я то пытался вспомнить, что же я забываю!
Меня тож волнует что я уже дней десять пилю скелет, и не работаю над содержанием. Но что поделать. Проще идти от пустого скелета чем от сферического геймплея в вакууме
Хороший вопрос, я бы сам его задал. Суть такова: фреймворк это овер 9000 строк JS кода, который у меня нет сил и желания сейчас тащить на сторону сервера. Да и графический интерфейс для генержки тоже нужен. Поэтому есть клиенсткая "спецстраница", в которой можно поработать с генератором, а потом отправить всё на сервер, создав новую сессию.
А обычный клиент загрузит с сервера лишь зерно сессии, и получит при желании все те же данные (пока что сделано так).
>>307000 (OP)
>Пишу игорь - мультиплеерную стратегию с доступом через веб
Это заранее требующий Full-stack навыков. Чуваку с опытом всего понемногу может казаться что это для него, но как раз ему это противопоказано, для фулл-стака надо знать комплекс всякой хуйни и хорошо
>поэтому я решил НАПИСАТЬ ИГРУ ЗА 300 ДНЕЙ
Начни с какого-то пихла типа Ren'Py или вообще HTML+JS
И делай простые вещи, на недельку работы, на две, на два месяца итд. Можно как чтоб его черти в жопу ебали Акабур начинать с совсем говноподелий, но как-то идейно связаных и каждую следующую игру на ту-же тему
Ты обретешь какой-то отклик, будешь видеть что делаешь, может даже наберется коммьюнити которое будет тебе на доширак скидываться
Делать сразу огромный проект это прямой способ соснуть потому-что ТЫ ДАЖЕ ВРЕМЕНИ ОЦЕНИВАТЬ НЕ УМЕЕШЬ. Серьезно, воообще не умеешь. Этот навык появляется только с опытом, у меня после двух лет опыта работы кодером появился навык оценивать сроки с зазором в два-три раза в любую сторону и это уже хорошо. Ты пока что не можешь отличить проект на 14 дней от проекта на 3 года.
>Тред не читай, сразу отвечай
У меня есть знания в фуллстэке. Достаточные чтобы их применять и таким образом копить новые знания.
По срокам и объемам работ тоже уже перетирали. Любой проект можно пилить, шлифовать, модернизировать, додумывать до бесконечности. Это известная проблема "перфекционистов". Потому дан срок, к которому игорь должен быть готов к употреблению конечным пользователям, пусть на правах беты. Сколько будет реализовано в геймплее от задуманного к дедлайну? 80%? 50%? Увидим.
266 дней 20 минут
Сегодня маловато успел. В воскресенье ещё и планы, значит завтрашний день должен быть пиздецки ударным по труду. Заведу будильник часов на 8.
А, тогда я протупил. Если 5 лет опыта есть то можно и большой проект делать. Я чет подумал что он студент/школьник который иногда гнумов делал в редакторах и тут вдруг решил заебашить огромный проект
>>школьник
Ты почитал бы тред штоле.
мимокрокодил-погромист, который после двух лет опыта практически нихуя не понимает что ОП пишет
265 дней 15 минут
мухожук
Слишком толсто. Галочка ОПа у меня, и я продолжаю.
Просто интересно, как ты себе представляешь демку того же Травиана, допиленного на 10%?
265 дней 3 часа 37 минут
9 files changed, 267 insertions(+), 45 deletions(-)
Это был неплохой по продуктивности день, но, конечно, за три дня я не отработал. Зато, результат есть - утилита по формированию стартового состояния заработала от начала и до конца. Уже стало понятно, что можно будет запилить простенький графический редактор карт. В будущем.
ЧСХ, в процессе работы немного изменилась структура и логика заполнения БД, так что еще несколько часов мне придется потратить на то чтобы ядро и хронометраж заработали в новой схеме. А дальше - допиливать клиенсткую часть. Вроде бы, 5 дней должно хватить, но завтра день выпадает, дела.
А ну да, технический долг растет со скоростью овер 9000% в день. Как и говорил, 260й день потрачу исключительно на латание костылей.
Руби это допиленный и засахаренный питон. Почему выбрал динамический язык - писал выше.
>>312787
И как это доставлять без а) хостинга б) раскрытия быдлокода ц) отвлечения от основной разработки?
Так что первые месяцы вариант - только скрины.
>>312795
Да ничо.
Сегодня съябываю на весь день, вернусь вечером. Хреново, что пропускаю, но случай исключительный, нужно быть.
Сегодня неплохо поработал. Доработал напильником ядро, процесс хронометража, вебсокетный вел. Теперь снова работают постоянно, обслуживают сессию ПРОТОТИПА-40. Осталось это отобразить в вебе. Для вебклиента подготовил инфраструктуру - докерный nginx с минимумом настроек. Следующие два дня меня ждет увлекательная (нет) ебля с html+css+js+ajax.
Да ну, это нереально пилить краудсорсово, учитывая что 80% концепта пока только в голове лежит.
262 дня 1 час 37 минут
Тяжелый день, но хорошая работа. Вовсю пилю вебклиент для прототипа-40. Разобрался с ssi nginx, чтобы тянуть серверное время простым запросом, выкинул flexbox-ы, запилил UI на relative/absolute с translate-ами. Начал формирование клиентского API на js, уже тянется список открытых сессий и состояние выбранной сессии. По факту, из запланированного в ПРОТОТИПЕ-40 осталось реализовать только покраску 3D карты в зависимости от текущего состояния сессии. Ну и вернуть в чуть менее костыльном виде связь по вебсокетам. За завтра мб уложусь, тогда и поскриню.
День лютой JSной асинхроты. Вроде работает, но как это обкладывать тестами я ХЗ.
Вбрасываю скрины. На первом - старт, на втором - работа с сессией. Не всё успел по прототипу, но решил, что пока не нужно - всё равно показывал бы липу. Знаю, что выглядит не особо насыщенным, но под капотом здесь больше, чем снаружи.
Подзаебался. Похоже, нахожусь на дне своего биоцикла если он существует, лол, бытовуха сказывается. Ладно, такое состояние долго не длится.
Завтра день 0 - (впервые) разбор технических долгов. Очевидно, я не успею решить хоть сколько-нибудь значимую их часть, но хотя бы подсчитаю их все, разложу по приоритетам. А в ближайшие дни намечу новую цель.
ОП малаца. Идешь не правильным путем, но хотя бы продвигаешься, ставлю класс.
Интересно.
Слежу примерно дней 20 за твоим детищем. Не пропадай так надолго, ОП. Мотивируешь :)
Например, есть у меня таймер, по окончании которого делается аякс-запрос, результат возвращается в другую функцию, которая этот таймер затем снова стартует. Можешь пояснить, чем конкретно будут лучше Промисы?
>>313514
Годная игорь
>>313666
Стараюсь не реже одного дня выходить на связь.
260 дней 1 час 46 минут
93 files changed, 266 insertions(+), 308 deletions(-)
Несмотря на внушительную метрику, ценность работы КРАЙНЕ МАЛА. Разбирал код, выкидывал старые куски к которым точно не вернусь. Написал 137 TODO-шек, на каждую из которых надо потратить от 10 минут до половины дня. То есть по прикидкам где-то дней 10 на исправления - притом ни в геймплей, ни вообще никуда ничего не добавится, чисто рефакторинг. Короче, нахер такое. Буду исправлять только процентов 20 от силы, между делом, и в 0-ые дни.
Новую цель пока не выбрал. Наверное, буду насыщать клетки свойствами, потом добавлю наконец игровые стороны..
По-прежнему, дно биоцикла. Завтра пятница, нет варианта кроме как нажраться. Может удасться прочистить мозги.
Сегодня не так много поработал, как хотелось бы, решил напилить наконец обобщенный механизм сериализации, для всех игровых объектов. Начал помимо этого пилить игровые стороны. Всё поинтереснее, чем разгребать косяки.
>Написал 137 TODO-шек
ОП, не делай так. Это очень сильно демотивирует. Нашёл что-то - сразу исправляй, так вроде явный прогресс есть. Даже если ты что-то и забудешь - потом вспомнишь. А когда перед тобой 10 дней беспросветного геморроя - сразу руки опускаются.
С одной стороны да, демотвирует. С другой стороны, иметь список в осязаемом виде лучше чем держать в голове, а если о нем не думать, то косяк от этого не перестанет быть косяком
258 дней 13 часов 43 минуты
Проснулся с бодуна, но посвежевший. Силы есть. Кстати подсел тут на подкасты, слушаю пока в транспорте еду в основном. "Как делают игори", сейчас серия 166 "Монетизация". Машинное обучение у них для персонализации предложений. Охуенчик.
> как делают игры
> 1 подкаст про графику
> 99 про монетизацию
А яд умаю чего у нас геимдева нет.
Конечно универсальность ограничена, но все нынешние и немного будущих требований она покрывает.
Включу фелосафа: одна из основных проблем погромирования - суть проблема курицы и яйца. Ты пишешь яйцо, но ты еще не видел курицы. Ты пишешь курицу, но ты еще не щупал яйца.
Месяц назад я бы не смог написать этот сериализатор, просто потому что не смог бы до конца осознавать с какими проблемами он может столкнуться. Я бы дописывал его раз за рзаом, превращая в башню из костылей. А сейчас - он достаточно красивый и стройный.
Да, у меня по жизни СИСТЕМНОЕ погромирование головного мозга. Давно пора уже возвращаться к работе над, собственно, игровой логикой.
Эксперт в треде, все в гринлайт
Забыл вчера вкинуть метрику.
10 files changed, 449 insertions(+), 61 deletions(-)
Достаточно неплохо, учитывая что вчера я много отдыхал, а вечером так вообще бухал пиво и пырился в сериал. Это кстати впервые так проведенный день за последние 40. Вывод - отдых полезен.
Я определился со следующей микроцелью. Нужно допилить такой какбе "политический" режим отображения карты (всякие географические режимы уже есть, к ним только переключатель надо отобразить). Для этого сейчас уже есть необходимые данные.
>Фух, дописал общую сериализацию. Чудеса рекурсии и велосипединга.
А разве до тебя это не написано?
Неа. Универсального решения не существует, пока есть как минимум а) циклические ссылки между объектами, и нужно решать, где и до какой глубины сериализовывать, а где обходиться идентификаторами-ссылками (притом определиться откуда их брать вообще ответ: из реестра объектов) б) коллекции полиморфных объектов, где фактический тип отличается от ожидаемого (и это принимая во внимание динамическую типиацию рубей). Хранить в каждом объекте фактическое имя класса - не вариант, это приведет к ненужному на 80% раздуванию сериализованных данных, что в численном выражении будет десятками лишних мегабайт трафика на каждого пользователя в сутки. Ну и не стоит забывать про в) вопрос с аргументами конструкторов классов при десериализации.
Вишенкой на торте ебли с сериализацией является проблема со ссылкой на другой объект, который еще не был десериализован (Ибо очередность (де)сериализации очевидно нигде не прописывается). Тут на помощь пришли Прокси-объекты, которые выдают себя за реальные, а сами лениво лазят в реестр объектов, когда к ним обращаешься.
15 files changed, 238 insertions(+), 36 deletions(-)
Не шибко большой результат, и не особо внушительное приближение к микроцели - "политической" карте. Вроде и делать не так уж много надо. Решим так, через трое суток она должна быть готова. И ниипет.
6 files changed, 209 insertions(+), 13 deletions(-)
Чет вообще не очень сегодня. Работа и бытовуха съели почти всё время. А осталось всего два дня. Сегодня буду захвачу хотя бы час-два от ночи, чтобы не выбиться из графика.
По-моему, это не реестр ленивый, а ОП. За это время уже можно было крузис сделать.
лол, CХОРОНИЛ!
>>314393
Понимаю, со стороны всё выглядит не очень убедительно. И играбельного прототипа в силу специфики проЭкта не будет еще долго. Но завтра будет скрин режима "политической" карты, а значит поставленную 4-х дневную цель я выполню
>>314440
А кстати интересно, какие игры выходят за 45 дней не фулл-тайм разработки?
12 files changed, 291 insertions(+), 390 deletions(-)
255 дней 3 часа 12 минут
Почти всё работает на новой сериализации. Сегодня ночью добью, и останется добавить отображение на фронтенде.
>А кстати интересно, какие игры выходят за 45 дней не фулл-тайм разработки?
http://ludumdare.com/compo/minild-70/?action=preview
какой_прототип.jpeg
254 дня 1 час 31 минута
Фух, Антуан, как же я заебался сегодня. Но цель достигнута. Настоящий режим, отображающий территории захваченные игровой стороной цветом её флага.
Ты будешь лоллировать, но я отказался от прокси-объектов. Вчера ночью не мог заснуть, думал о них, и придумал пару кейсов, где они не справляются. Несмотря на то, что всё наследуется от BasicObject и направляется через method_missing, некоторые вызовы, например === всё же невозможно переопределить, а значит абстракция - ^проткнутая^ дырявая. В итоге сделал через накопление лямбд при десериализации с постпроцессингом в самом конце всех вложенных действий.
Думать что делать дальше буду завтра. Ща наебнул пива и отдыхаю.
>Несмотря на то, что всё наследуется от BasicObject и направляется через method_missing, некоторые вызовы, например === всё же невозможно переопределить
Ого, а кто тут говорил что руби это допиленный питон?
>В итоге сделал через накопление лямбд при десериализации с постпроцессингом в самом конце всех вложенных действий.
А зачем ты вообще заморочился? Сериализовал бы только тупую дату/id объектов как все делают.
Она не во всем такая. Бизнес-логика в основном прямолинейна. Но когда пишешь внутрисистемные вещи (программируешь для прикладников по сути), и хочешь чтобы этими вещами было пользоваться просто, то всю сложность приходится концентрировать внутри.
>>314688
Не играл, но идея в целом здравая.
>>314738
> руби это допиленный питон?
Так и есть, прост nobody is perfect.
> только тупую дату/id объектов как все делают.
Десериализовать как будешь? Допустим, простейший случай,
[
{"id" : "peka1", "data" : 42, "ref" : "peka2"},
{"id" : "peka2", "data" : 34, "ref" : "peka1"}
]
Две пеки должны ссылаться друг на друга полем ref.
Сегодня было мало интересного. Наконец решил вернуться к ведению Redmine (забросил его во время спринта к ПРОТОТИПУ-30, ибо времени много отнимал). Запилил два таска, сделал два таска. Запилил еще два на завтра.
Сегодня разбирался с БД, делал из одной таблицы - три. По сути, часть бизнес-логики всё же оседает в БД, хотя я этого не особо хотел.
11 files changed, 300 insertions(+), 31 deletions(-)
Большая часть из закоммиченного - SQL-запросы и персистентые данные для БД (спеллы, экшны, эффекты)
С одной стороны, работы - непочатый край, и это несколько демотивирует. С другой стороны, инерция движения уже выработана, так что буду пренебрегать, и упрямо вальсировать к цели.
>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
Давай, не забивай, добра тебе.
>Десериализовать как будешь?
[
{"id" : "peka1", "data" : 42, "ref_id" : "peka2"},
{"id" : "peka2", "data" : 34, "ref_id" : "peka1"}
]
Вот так?
Да, на момент создания peka1 объект peka2 не существует, но ты ссылаешься на него не прямо, а на его айди. И на момент вызова он уже будет существовать.
Единственно, в конце десериализации надо проверить валидность всех айди, на которые ссылаются. Ну, и при желании, как сказал >>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ки, но всё равно вышло мало. Не успеваю пиздец. В выходные буду заниматься исключительно проЭктом.
>по сути ты вызываешь a.+(b)
>В языке, ВСЁ есть объект и всё есть выражение.
Ну и в питоне так же вроде.
>Скобки опциональны - это вообще пушка
>наличие у массивов и size и length
Для чего нужно?
>а в первый проход точечно сохраняю в виде лямбд операции над конкретно теми объекты и теми полями которые надо будет заменить по окончании
А в этих лямбдах сохраняешь другие лямды, если там тоже надо что то разрешить? Или просто сохраняешь по лямбде на объект? Т.е. аналогично просто сохраненить список объектов с референсами а потом просто пройти по нему и порезолвить все референсы?
Питону третий десяток лет, в нём много проблем накопилось. Я около года его юзал пока не ушел в руби.
Нужно для выразительности.
Да, да, можно сделать аналогичное решение без лямбд. Можно лабиринт без рекурсии проходить. Можно без функций обходиться - прыгать по goto и аргументы на стеке держать. Всё можно, это же программирование.
Сорри, мне сейчас меньше всего хочется кому-то что-то доказывать в интернете.
Двухдневный марафон уже начался, ибо близок конец 50-го дня, а с ним и спринт к ПРОТОТИПУ-60
>Да, да, можно сделать аналогичное решение без лямбд. Можно лабиринт без рекурсии проходить. Можно без функций обходиться - прыгать по goto и аргументы на стеке держать. Всё можно, это же программирование.
>Сорри, мне сейчас меньше всего хочется кому-то что-то доказывать в интернете.
Да ладно, не пригорай. Просто, ты ведь сам писал выше
>Массивнейшая переработка кода с учетом появления реестра объектов. Всё ради того чтобы можно было написать что-то типа
>SpellBook[spell_code].to_spell(ObjectRegistry[player_id]).cast(ObjectRegistry[target_id])
Поэтому предложить тебе хранить референсы по id было вполне логично.
Ну и дополнительный прогон по всем объектам в виде пары строк простого кода лично для меня видится предпочтительнее, чем обработка только тех объектов, которым это надо, но
> код получается сложный
По крайней мере, пока это не сказывается на производительности.
Ты выбрал обратное, и это твое право. Удачи тебе, анон. Слежу за тобой и завидую
>Питону третий десяток лет
> Python, 1991
> Ruby, 1995
>Нужно для выразительности.
Ну вот я и спросил что ты выражешь этим.
>Да, да, можно сделать аналогичное решение без лямбд. Можно без функций обходиться - прыгать по goto и аргументы на стеке держать. Всё можно, это же программирование.
Чего ты передергиваешь? Я спросил у тебя как человека с опытом, какие профиты от того что лямбды ты применяешь, а ты хуйню какуюто несешь.
>Сорри, мне сейчас меньше всего хочется кому-то что-то доказывать в интернете.
Не надо ничего доказывать, просто скажи, зачем ТЫ так сделал. Да просто даже честно скажи - "я не думал, просто лямбды это стильно, моджно, молодежно" - даже такой ответ мне более близок чем то что ты пишешь, фу таким быть.
>Можно лабиринт без рекурсии проходить.
Бэктрэкинг тебе не даст сделать TCO, поэтому да, в общем случае проходить лабиринт лучше без рекурсии. Для рекурсии главное требование - небольшая глубина дерева, иначе можно сорвать стек.
Реестр объектов используется только когда нет возможности использовать непосредственные ссылки на объекты (в том числе, при "втором прогоне" десериализации).
Код который ты линканул уже устарел, там сейчас:
SpellBook[spell_code].to_spell(source, target).cast
Без обращения к реестру. Так просто удобнее
>>315024
Холиворить туда -> /b/, /pr/
Ты можешь писать много геимплей-гавнакода, а я не могу. Нам пора объединить усилия.
>Холиворить туда -> /b/, /pr/
Чини детектор, кто тут холиворит? То что тебе нравятся лямбды/рекурсия это круто (мне тоже нравятся), но ты можешь пояснить за их применение в конкретном примере который ты привел? Нет? Ну и скажи "я не знаю" или ничего не говори, в общем то мне похуй, я уже понял что не дождусь нормального ответа от тебя.
Я не очень внимательно прочитал, прост на уме совсем другое. Не хочу доказывать чем руби лучше Питона, подробные сравнения есть в гугле.
Касательно примера, того что второй прогон десериализации сокращается только до выполнения замены на нужных местах, вместо обхода всего древа - этого не достаточно? Можно сделать без лямбд? Можно. Только чтобы было удобно хранить вспомогательные данные для замены без использования замыканий, их нужно объединять в какой-нибудь класс, или хотя бы Struct, которые перед этим написать. Можно конечно и хешем обойтись. Я только не понимаю чего тут размусоливать. Нет единственно правильных решений в погромировании.
251 день 3 часа 25 минут
29 files changed, 456 insertions(+), 435 deletions(-)
Много бега на месте. Код стал лучше, стал чище, починены тесты. Завтра *0-ый день, тоже потрачу на TODO-шки. Однако есть важный план - расписать, что должно быть достигнуто к ПРОТОТИПУ-60, и, начиная и с 249-го по 240й опять говнокодить на скорость спринтить, добавляя уже непосредственно геймплей.
>того что второй прогон десериализации сокращается только до выполнения замены на нужных местах, вместо обхода всего древа - этого не достаточно?
Там в любом случае не надо все дерево обходить. Просто сначала десериализуешь все объекты, а потом в каждом объекте разрешаешь все референсы. Данные для замены не надо хранить, тупо все объекты кладешь в dict id->obj (ну или что там в рубях), когда надо разрешить референс, берешь объект из dict.
>Я только не понимаю чего тут размусоливать. Нет единственно правильных решений в погромировании.
Есть более простые/стандартные. Мне вот и интересно стало чего ты вдруг выбрал именно это решение. Все программирование это череда решений и компромиссов, всегда интересно поговорить с человеком, который выбрал какой либо о причинах его выбора.
>Не хочу доказывать чем руби лучше Питона, подробные сравнения есть в гугле.
Мне показалось интересным твое мнение, потому что обычно встречаешь как раз обратное то что руби и питон практически одинаковые что по выразительности, что по применимости, только руби чуть более эзотеричный и почему то невзлетел нигде кроме ROR.
>добавляя уже непосредственно геймплей
Ага, скоро можно будет пошшупать.
Хотя не, я понял о чем ты. Ты когда десериализуешь, у тебя объект принимает другие объекты в конструкторе.
Выглядит переусложненно, но есть одна чтука - у тебя дерево объектов, т.е. циклов нет, иначе ты бы не смог все объекты создать. А раз дерево, то можно просто сериализовать/десериализовать сначала листовые, потом остальные объекты, тогда все нужные объекты будут уже десериализованы. В общем проще кмк тут можно решить.
Далеко не все ссылки передаются в конструкторе. Часть присваивается в процессе работы. Так что циклы есть. Выше же был простейший пример с пеками.
8 files changed, 266 insertions(+), 109 deletions(-)
Сделано мало для выходного дня, но я прикрыл еще несколько костылей и раздавил несколько багов.
Опять набухался пива, пора прекращать. Прошел залпом Firewatch - годно, атмосферно, но не 10/10.
Завтра начнется путь к ПРОТОТИПУ-60
Выставлено 6 задач, среди них: добавление новых игровых сущностей, добавление основ взаимодействия сторон (дипломатии), оверлейный графон на карте, эксперименты с наложением текстур на тайл, учет дополнительной гео-информации о тайлах с последующим её отображением.
В среднем по 1.5 дня на задачу +1 на проёб.
Спринт начинается.
20 files changed, 296 insertions(+), 33 deletions(-)
Готова новая игровая сущность (нации). Одна из семи задач решена. (да-да, из семи, я добавил ещё одну без решения которой не обойтись). Кое-где подчищены вызовы измененных модулей.
Время работы над проЭктом, похоже сильно сдвигается в сторону ночи - в остальное время просто не поспеваю. Пока получается решать без особого говнокодинга.
Жесткий день. Немного упоротости на скрине. Разбираюсь с текстурами, там пздц.
Закончил на том, что вкуривал в UV маппинг, но по-прежнему не могу понять как натянуть квадратную текстуру на треугольник (0,0,0)(20,30,0)(-20,30,0) (почти что равносторонний). Фреймворк хочет от меня faceVertexUvs, я так понимаю, массив из 3-х 2D точек, по одной на каждую из 3D-точек треугольника..
Чет пространственное воображение барахлит.
Но ты же не натягиваешь квадратную текстуру, ты натягиваешь треугольник, "вырезанный" из текстуры на треугольник, в чем проблема?
Пояснишь? Потому что те UV координаты которые у меня заработали, это именно координаты на самой текстуре, которые сопоставлены были с вершинам треугольника. Кстати, сюрпризом оказалось, что в UV начало координат оказалось слева-снизу, а не слева-сверху, как во всей индустрии UI
>>315655
Да разобрался уже. Искал туториалы по основам UV маппинга, так все найденные материалы это какую блеать кнопочку в Блендере нажимать. По крупицам инфу с SO собирал. Наверное есть хорошие базовые курсы по ТОРИДЭ по аналогии с гарвардским CS50?
> ты натягиваешь треугольник, "вырезанный" из текстуры на треугольник, в чем проблема
лал, php-пидарас закукарекал
>>315792
> По крупицам инфу с SO собирал. Наверное есть хорошие базовые курсы по ТОРИДЭ
Кхм... Кхм... вот ссылка на курс ПО 3D НЕТУ КУРСОВ! ТОЛЬКО МАСШТАБЫ И ВРЕМЯ! СХУЯЛИ ПО ТВОЕМУ 3D-ШНИКИ ТАКИЕ ДОРОГИЕ! СУКА ТЫ ЕБАНАЯ!
> что в UV начало координат оказалось слева-снизу
Ты даже не представляешь сколько тебя приколов ждет, СКОЛЬКО ЖДЕТ!
Какой же ты ебанат. Ну потрать ты неделю жизни и изучи хотябы азы 3d. Threejs - это относительно тонкая прослойка над webgl. Это тебе не юпити, где ты создаешь игровые объекты и движок сам все сделает заебисьна самом деле нет.
Неплохо поработал сегодня. Есть чувство, что успеваю запланированные задачи выполнить в срок. Закончил эксперименты с текстурированием. Впервые за долгое время начал писать в вики - составлял климатические таблицы, и прочую подобную хрень.
Ты объясни по-человечески, что ты хочешь. UV - это не текстура, а её координаты, если ты не умеешь делать анрап, будешь сосать хуи и далее, это блядь даже не то что основа, без этого нет смысла вообще ничего дальше делать.
Бротан, за 270 дней ты сделал сферу? Блядь, я считал себя самым конченным не только на этой доске, но и на всей планете, спасибо, настроение поднялось, появились силы идти дальше! Всего доброго и удачи тебе, главное верь в себя!
>53 дня
>три месяца
ты_ваще_с_нашей_планеты.jpeg
Верить или нет дело анона, но так-то я каждый день отчитываюсь. Сегодня, кажись, доделаю биомы, возможно, будет неплохой скрин.
Биомы. Цвета в основном вырвиглазные - я хз как подбирать нормальные. Это и не важно - всё равно заменять на текстуры. Прошло 4 дня спринта, и сделано больше половины задач. Конечно, каждый выполненный таск открывает путь к трём потенциальным новым, так что конца-края чет не видно.
Спасибо тебе, анон, ты вернул мне мотивацию делать дела, правда.
Останусь в треде, хотя и не шарю совсем.
Ты справишься, ещё один анон в тебя верит!
Скрин неплохой, но как по мне, нужно делать в таком стиле. Даже, если текстурки у тебя будут крутые, без объема будет не очень.
Разумеется вместо треугольников гексы заебашить.
Я думал над тем, что можно будет придать объем с помощью отдельныцх 3.5-полигональных моделек - гор, холмов, лесов и прочей лабуды.
Делать ландшафт через шумы на поверхности это слишком сильное колдунство будет.
Не надо шумы на поверхность, просто выдавливай каждый гекс на рандомную величину, либо группу гексов с одной текстурой на одну величину. Будет и просто и симпатично. Море только не выдавливай.
Освещение в примитивном виде уже есть.
244 дня 14 часов 24 минуты
Вчера не упустил случая побухать, в итоге практически не проработал. Немного фейл. С другой стороны, в расписание я это закладывал. Да и вообще, решено, в эти выходные ПРОТОТИП-60 должен быть доделан.
Ты писал писал, писал писал, магия, магия, и планета вращается в космосе?
Можешь в кратце описать что было сделано за все время?
Спасибо
Если ты не понял из прочитанного, я мало чем помогу помочь.
Первые 40 дней концентрировался каркасе бекэнда: сервис хронометража, ядро, вебсокет-сервер, nginx, БД. Структуру я гдет уже описывал. Фактически вся эта подготовка проводится, чтобы потом можно было заниматься геймдизайном не отвлекаясь.
Сейчас начинаю выход на уровень фронтенда, и, в частности, гуя, поэтому поперли прототипы. Ближе к 100-му дню структура бекенда и фронтенда будет сформирована достаточно, и я нырну в реализацию бизнес-логики уже основательно и надолго.
Нормально потрудился. Закончил задачи по гую, в частности режимы отображения биомов, тектоники, политики. Сделал оверлейный режим, когда поверх основного рисуется частично перекрывающий другой.
В целом, осталась только одна задача, которая практически не повлияет на геймплей ПРОТОТИПА-60, потому что возможности её использовать чуть менее чем никакой. Но в целом, что я завершу работы раньше срока, это хорошо - останется несколько дней на рефакторинг и на взвешенное осмысление того, куда двигаться дальше.
>взвешенное осмысление того, куда двигаться дальше
А чего тут думать? Исходи из того что имеется, и того что нужно получить.
Делается это так:
1. Пишешь первостепенные задачи, которые нужно решить.
2. Пишешь всевозможные пути решения.
3. Выбираешь самые оптимальные по формуле - цена/качество + время/важность.
4. Делаешь.
5. Если:
- получаешь результат в установленные сроки - радуешься и повторяешь всё с пункта 1.
- не получаешь результат - пробуешь другой путь.
Помни ОП, что тебе главное сделать так, чтобы всё работало как задумано. Мелочи и полировку оставь на самый конец, иначе никогда не выпустишь свою игру.
мимо-бизнесмен
Как же буду рофлить с челиков, которые пиздели на него, лол
Блядь, вот когда ОП узнает, что такое "rapid prototyping" или что-нить даже поновее, я его зауважаю. А так, это не геймдев, а уроки.
24 files changed, 255 insertions(+), 116 deletions(-)
Добил последнюю задачу. Решил поднять и настроить виртуалку, на которой ПРОТОТИП-60 постоянно будет крутиться. Можешь потестить, анон http://127.0.0.1:8080/ только не хакай плес
Потолостить уже нельзя?
Итак, начинается очередной новый этап: Междупрототипье. Есть несколько небольших задач, которые попробую запилить на следующей неделе. Кстати, она будет максимально фейловой в отношении проЭкта - выходные выпадают, тк НГ, в пятницу копроратив, еще два дня надо потратить на магазины и прочую хрень. Короче, браться за что-то серьезное вряд ли удастся. Буду исправлять небольшие todo-шки и прочее. Зато на НГ праздниках уж оторвусь в спидкодинге по-полной. Решу, что будет в следующем прототипе прорывного как раз к концу следующей неторопливой недели.
Есть немного в локальной вики, но я предпочитаю пока не распространяться. Всё равно многое поменяется. Так что пусть пока это клон травиана и цивы.
242 дня 1 час 22 минуты
Сделано за день немного. Исправил найденный баг со временем, который проявлялся только в фуррифоксе. Накидал еще заданий на НГ праздники. Начал работать над докеризацией сервисов, так их будет удобнее деплоить на виртуалку. Поджидал фейл: к Docker Hub-у практически не подрубиться, таймауты одни. А с мобильного инета тянет. Похоже на фейл домашнего провайдера.
Завтра будет еще больше беготни и меньше дела.
А что конкретно ты заносишь в вики?
Сам планирую от хуипинания начать что-то делать, думал пилить модельки + диздок, но не пойму как его организовать поудобнее. Ну знаешь, пинаешь балду, внезапная мысль - записал и тд. Блокнот не хочу.
Делаю примерно так: пишу заглавную страницу - обзорное описание игры. Затем часть слов заменяю на ссылки на несуществующие страницы. Потом выбираю одну из интересующих ссылок, прохожу, создается страница, пишу по ней. Потом расставляю ссылки и там, и т.п. Такой гипертекстовый векторный фидонет диздок.
> Ну знаешь, пинаешь балду, внезапная мысль - записал и тд
Так тоже делаю, главное поддерживать связность между страницами
>Начал работать над докеризацией сервисов
Чувак, тебе не кажеся, что твой проект развивается кругами, с допиливанием архитектуры? Почему ты не сделал просто монолитный сервис на рубях, который можно было бы просто запустить на локалхосте? И все бы давно уже играли и кидали тебе фидбек, т.е. собственно занимались игрой?
Потому что писать игру это что-то новое и ОП, как и любой другой человек ссытся неизвестного. И мозг тут же подсказывает менее стрессовую деятельность (О, можно ж докеризовать! Это я умею и вобщем-то нужно).
Попросил то, чего нет (и, вероятно, не будет).
Ну сам подумай, какую игру может создать веб-макакен - только ковырять фреймворки и веб-сервисы.
и sqlite вместо БД? И WEBrick вместо нормального сервака? А как мультиплеер тестить на таких билдах?
Подход имеет право на жизнь, но мне он не по душе. Я хочу создать костяк инфраструктуры. Плюс я не готов пока шарить код.
>>316773
Тут мимо. Моя основная работа далека от веба. Но поскольку проЭкт сугубо веб, то приходится изучать. Вчера я с болью и кровью написал свой первый Dockerfile, собрал первый имедж. И nginx настраивал в первый раз в этом проЭкте. Я и рубист без рельсов то, лол.
Тоже не особо продуктивный день. Б-же, сколько же въебыватся денег на НГ.
Докеризовал сервис хронометража. Криво, косо, но уже крутится. Потестировал множественную интерполяцию цветов, думаю завтра получится применить её на игровой карте - сделать мягкие цветовые переходы между клетками. Надеюсь, будет выглядеть не вырвиглазно.
НАРОД ХОЧЕТ ПРОТОТИП!
Накрывать сможешь не долго, ибо пойти в /d пожаловаться это дело пары минут. Пущай работает, не хочет пока показывать - его дело.
>Накрывать сможешь не долго, ибо пойти в /d пожаловаться это дело пары минут. Пущай работает, не хочет пока показывать - его дело
Ну маааааам =(
Я не оп, а нахуй идешь ты, долбоеб.
Зато эксперимент с высотами интересный получается, может сегодня вечером допилю.
Будто в компенсацию за ПОТРАЧЕНОе время на раскраску, с высотами оче быстро удалось получить результаты. Выглядит имхо клево. Доволен результатами.
Завтра вряд ли вообще удастся поработать - копроративы и прочее.
Попробуй сделать больше гекасогонов, раза в три. Ну или по-разному попробуй, может четче выглядеть будет?
Убери нахуй коричневые шестиугольники, такое ощущение что кто-то на планету насрал. Если это ПУСТЫНЯ и я совсем НЕ ШАРЮ, то пустыни насколько я помню желтые.
А чо
Выходит кал. Я с самого начала был скептически настроен к твоему решению хуярить велосипеды для веба. Нужно было брать юнити, делая мобильную и десктоп версии.
Игра на первом месяце уже выглядела бы даже лучше, чем здесь >>316078. Нормальный объем, нормальный свет, вменяемый фпс при охуенном low-poly графоне. Для мультиплеера куча готовых решений, с теми же сокетами.
У тебя же пиздец. Никому нахуй не нужный веб-клиент, приправленный хуевой реализацией из-за ограничений браузера и кучи времени убитого на велосипедописательство.
Браво.
Попробовал, кстати получше получилось. Может в этом есть смысл.
>>316953
Да, да, цвета для биомов выбирал наощупь. Надо будет подкорректировать, но не сейчас.
>>317058
> пришел в тред про веб-дев
> "делать всё на юнити под мобилы и пека, я скозал!"
Ноу комментс.
Включил смену дня и ночи. На первом smooth цвета при большем количестве клеток, на втором скрине легаси-режим отображения биомов.
Горизонтальные линии появляются только на скринах.
на связи кун, который советовал больше гексагонов запилить.
Чот я проебался с мыслями, но какую роль в игре играют гексагоны? Как в циве, один гексагон - одна клетка для чегото?
Если да, то тогда очень сильно проебываются гексагоны на рельефе, и будет ужасно для геймплея. Может тогда как в цифе? Один меш - планета + рельеф, и отдельно гексогональная сетка?
Гексагоны лучшая фигура для сферических карт.
Есть еще треугольники но это такое себе. Квадраты и круги не подходят. Прямоугольнки, паралепипеды и прочее в том же стиле так-же не птбходят.
Не понял.
> Как в циве, один гексагон - одна клетка
> Может тогда как в цифе?
Вообще да, учитывая что гексагонов становится чуть более чем дохуя, имеет смысл объединять их в группы, и этими регионами уже оперировать в геймплее. Но это требует времени. Возможно, в следующем прототипе будет такая цель, а пока рассматриваю предельные случай, когда один гексагон - один регион.
Сегодня, как и планировал, день просрал впустую - не поработал толком. Это будет продолжаться до самого НГ, и только ближе к вечеру 1-го я начну шевелиться в направлении разработки.
Всё кошерно корректно, но надо принимать во внимание, что на сетке притаилось 12 пентагонов.
https://ru.wikipedia.org/wiki/Усечённый_икосаэдр - вот из этой фигуры экстраполируется.
С новым годом, ОПчик. Удачи в новом году.
Спасибо, анон. И тебя с праздником.
Упорства, мотивации, куража нам всем.
НГ это отличный повод закрыть страницу со старыми фейлами, и попробовать снова. Го.
Ну что ж, НАЧАЛОСЬ, анон. Начал вести редмайн подробнее, для большей дисциплины. Обозначил главный далёкий майлстоун - ограниченно публичную Альфу. Промежуточные майлстоуны теперь ровно каждую неделью. Расписал 5 задач, которые нужно решить к 8 января, майлстоуну Dev-1.
А какая именно тебе литература нужна? По программированию, по геймдизайну, по написанию сценария?
мимонеоп
А есть литература по лвлдизайну? Вообще как придумываются уровни к играм. Посмотришь например на дум1, даже там, в 2д-то игре, ни один лвл не похож на другой, все они огромны и запутаны. А сам начинаешь что-то похожее пилить, получается тупой лабиринт
На счёт книг не знаю, нашёл пасту:
1. Читай книги,смотри фильмы,разглядывай арты. Это твой хлеб в создании локаций.
2. Прежде чем сделать локацию в 3дээээ, берешь карандаш, лист бумаги и делаешь план. Слышишь без плана никуда. А потом еще желательно арт сделать.
3. Наполнение. Самая важная блядь вещь. Меня заебали игори в которых на левл дизайн хуй клали. Любой ааа проект это высер по лвл дизайну. Единственные две игры которые подняли планку по лвл дизайну это deus ex:hr и биошок с темными душами 1 и 3. Вторая высер.
Все остальное делалось аутистами которые нажрались тормозной жидкости слитой по лому в -40. Дизайн уровней должен передавать атмосферу. Даже если это 2д пиксельное говно. А это значит тебе нужно не только правильно ставить предметы и эффекты, но и компоновать их так что бы они создавали атмосферу.
4. Не надо гнаться за ахуеть какой оригинальностью. Даже из 3ех стен кирпичных и фонарного столба можно сделать вау эффект. А значит твоя задача продумать размеры, расположение, как все это связанно с сюжетом и атмосферой. Даже сраный doom в 90ых имел качественный лвл диз. Чего только стоят хитровыебанные лабиринты и гитара. При бедном наполнении ввиде пары бочек факелов и деревьев.
5. Тесты. Больше сука тестов. Пока ты не начнешь впадать в припадок с пеной у рта когда открываешь свою карту. Потому что она заебала тебя в край. Твои уровни должны сука быть такими что бы ты сам обосрался от счастья.
6.????
7. Profit.
Вот к примеру, взгляните на эти огромные уровни, где куча дверей, при этом это не назвать тупым лабиринтом
> вообще пиздец
в хорошем смысле?
235 дней 13 часов 3 минуты
7 files changed, 413 insertions(+), 348 deletions(-)
Вчера поработал умеренно неплохо, надо сделать скидку на то, что это было 1-е января. Судя по оценке редмайна, выполнил 19% от Dev-1. Хорошо идти с небольшим опережением, т.к. на этих выходных требуется проявить соц.активность, и в итоге один-два дня выпадет.
Обдристал стульчак
Так проходили же за милую душу, и просили ещё. Я до сих пор половину тайников на уровнях в Wolfenstein 3D помню, хотя гонял в 90х.
>2к17
же.
Сегодня объявляю выходной, благо вроде есть возможность по времени. Буду лежать, вообще нихера не делать. Никаких игорей, сериалов, книг, вообще ничего. Устрою информационный голод. Порефлексирую там.
Можешь сказать, на чем пилишь и какие библиотеки используешь? И почему твой выбор не пал в пользу юнити?
Он в начале треда писал уже:
>"в бэкенде руби, графоний с помощью Three.js или если попрет, Blend4Web. Соединять каким-нибудь говном c cgi-bin и веб-сокетами"
А на счёт того, почему не юнити, насколько я понял, ответ:
>"Потому что."
Восстановление проходит медленнее, чем я надеялся. Но я уже понемногу работаю. Вчера начал самую сложную задачу Dev-1 - группировка гексагонов в непосредственно игровые регионы. Этот ход напрашивается, так как при выбранном среднем уровне детализации карты, на ней овер 16к гексов, что слишком дохера для игрового поля. Всё это группируется в 300-400 игровых клеток.
Да, существуют микро-регионы (например одинокий одногексовый остров в океане), и мега-регионы (вдвое превышающие средний размер - это жесткий предел). Но больше тратить на это время не буду. Существуют длинные несуразные сосисочные регионы.
Вручную можно было бы гораздо годнее раскрасить, как в HOI 2-3-4. Но сейчас пох.
альфа-релиз через 230 дней 4 часа 7 минут
Закончил с регионами. Солидный вклад в игорь. Нужно переосмыслить некоторые концепции, так как теперь нельзя однозначно говорить о принадлежности региона к какому-то типу биомов (разве что разделение на сушу\воду). Размеры снепшотов сессии сразу упали в 20 раз.
Еще новая фишка - уже знаю, чем буду заниматься всю следующую неделю. Планирование наперед, недельными шагами. Крупных промежуточных майлстоунов пока нет, а следовало бы..
Поясни за WebGL. Ну не тормозит он на твоём топовом Пека+Хром, но как эе все остальные, у которых это всё будет лагать как если на дворе 95й а на борту 100MHz процессор бе ускоренной графики. Ведь те у кого есть возможность играть в сочные игры будут шпилиться в них, а не в браузерку. Ты очень продвинуто планируешь, всякие отчёты посекундные. Жаль я даже не смогу запустить твою игру.
Я не проводил масштабных тестирований, но ситуация с производительностью (конкретно моего проЭкта) такова:
У меня далеко не топовый пека - проц старее i3, видеокарточка radeon HD7800. И идёт вполне хорошо, фпс всё время 60. В фуррифоксе работает чуть медленнее, судя по логам, Three.js факапится на чем-то:
Error: WebGL: texImage2D: Incurred CPU pixel conversion, which is very slow.
Думаю, это можно будет решить.
Также тестировал на Intel HD Graphics 4000 - тоже всё норм.
Открывается даже на средних мобильных девайсах, уровня Нехус-5. И даже на них с графоном норм, долго грузится из-за нехватки вычислительной мощности на процах.
Смахиваю пот со лба - еженедельная (и первая в этом году) версия Dev-1 готова. Это была тяжелая неделя, учитывая сколько пришлось болеть овощем.
Суммарно за неделю:
50 files changed, 1191 insertions(+), 535 deletions(-)
Снепшот Dev-1 водружен на постоянно работающую виртуалку, и теперь я могу заходить и немного аутировать на работающую там игровую сессию.
Впереди Dev-2, состоящий из 5 тасков суммарно оцененные в 29 часов (но это пессиместичная оценка, надеюсь управиться в 20).
В последние дни у меня прямо приливы мотивации. Летом намечается отпуск на море, буду пилить проЭкт с ноута, прямо там
Молодец. На кикстартер готовься уже.
ОП, ты крут, продолжай в том же духе!
Не раньше чем будет интерактивность, которую можно наблюдать вне консоли браузера (думаю, Dev-5+)
228 дней 15 минут
Конечно в первый день на работе сложно в ритм войти. За весь день меньше полутора часов смог потратить на проект. Работаю над созданием новых типов событий (определенные действия в игре генерируют эти "события", помещаемые в соответствующий лог). Успел добавить всего два, притом 60% времени заняло написание тестов. Хочется забросить покрытие, но понимаю что нельзя. Нельзя шатать трубу лодку
Ну и, конечно, успехов тебе всяческих. Периодически заглядываю в тред, радуюсь твоим продвижениям.
ОП, фрагменты кода выкладывай, но только самые красивые.
Мало чем. Только по ИТ угораю в целом. Да, обычная пятидневка. На проЭкт стараю выработать следующую норму: по 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. Или же одному из тасков там косметические визуальные эффекты на самом деле придется быть перенесенным на более дальний срок (но не хотелось бы нарушать план)
Температурная карта, теперь изменяющаяся во времени. Отличие между скринами - один игровой ход.
После дня усиленной работы как и обычно наступил отходняк. Работа проделана неплохая если бы это был будний день мелкая для небольшого дня. Зато сегодня перед кодингом расписывал концепт одной игромеханики в вики. Узнал умные слова "продуценты" и "редуценты", лол.
Походу, проеб Dev-2 по срокам неминуем. Впредь нужно будет сбавить нагрузку планов на неделю. Одну задачу из текущего Dev-2 я перемещу в пул плавающих задач, а остальное буду доделывать до упора. Самое главное, срок сдачи следующего Dev-3 никуда не сдвигается. Идти по графику. Более оптимально расходовать время, особенно в будни.
От температуры зависеть будет скорость воспроизводства юнитов? Постройте 3 стога сена и получите +3 к рождаемости.
От погоды зависит много чего - от банального состояния местности ГЕНЕРАЛ МОРОЗ, до состояния экосистемы - чего и сколько есть в регионе пожрат.
Сколько % планеты будут разносить атомные взрывы? Или их не будет? А ямки после них будут оставаться?
ЯО планируется, но не знаю, успею ли к альфе. Динамические изменения ландшафта допустимы в будущем, но скорей всего не к альфе.
Пикрелейтед минимально функционирующий режим переключаемого smooth-отображения карты. (Выделенные регионы принадлежат игрокам)
Я всё-таки добил Dev-2, нечеловеческими усилиями и урезанием объема выполняемых задач. Вот недельные результаты, мерж в master:
48 files changed, 1758 insertions(+), 423 deletions(-)
Dev-2 задеплоен на виртуалку. Теперь по всей карте каждый ход идет расчет погоды, возникновения аномалий, жизненного цикла флоры..
Хоть это и стоило мне больших трудов, выполнение плана в общем продолжается без опозданий.
Сервера: Земля-1 .. Земля-N
Ты Мог-бы опубликовать фейковую web-page ихры сделать, где мышкой можно вращать планету.
"в этот незамечательный день к нам присоединяется пользовотель макаба43, и вы все не особо верьте его заверениям что его способ прохождения ихры будет мирным и честным, ведь судя по нику это бот пользователя макаба42, удачного всем завоевания планеты"
Как OP разрешит неразрешимую проблема БОТОВОДСТВА ?
Earth-3-Today: "земли пользователя nasha-russia-45 подверглись атаке альянса ботов пользователя укроп-петрушка-42, помолимся вем богам рандома о его мятежной душе"
ОП, Вот тебе идея по цветам. Алсо, мне без сглаживания больше нравится.
> разрешит
> неразрешимую
Если посмотреть на то, как делают в существующих игорях, то можно увидеть несколько вариантов:
- Усложнить регистрацию (только чтоб не отпугнуть игроков). Оптимальным вариантом видится регистрация с использованием номера мобилы, притом с подтверждением не смс, а звонком от роботом. Но это доп. расходы на соответствующий сервис. Зато это отсечет большинство ботоводов
- Сделать акки платными, как в вов. Как показывает практика, от ботов нихера не спасает, но позволяет с них иметь процент дохода.
- Добавить периодически всплывающую на рандомные действия капчу, уровня reCAPTCHA. Как в траве, давать небольшие плюшки за её ввод, чтобы не сильно бугуртили.
- Анализ активности, сетевых адресов и прочее - муторно, долго писать, сложно, но прозрачно для игроков.
Хороший день, даже несмотря на то, что понедельник. Расколол как орешки полторы задачи из Dev-3, небывалая продуктивность. Практически четверть от недельного плана (впрочем, ничего не помешает каким-нибудь косякам всплыть и испортить мне опережение).
С большим удовольствием чистил репу от старого кода, рефакторил, сливал два фронтенд сервиса (основной и инкубаторный) в один.
Вероятно, дополнительную продуктивность дает физуха вернулся пару дней как к кручению педалей
Таки взял мою идею в оборот?
Если что, я всё ещё не прочь сценарий запилить и сюжетку
Неа, не Ник. Но можешь рассказать свою идею если не тайна.
Работа над Dev-3 продвигается очень хорошо. При прошедших 30% времени на него отведенного, сделано по прикидкам 50%+.
Сегодня для регионов появилось понятие дифференцированной площади. То есть она теперь делится на различные типы: (дикая природа, домики, аграрная зона, пром. инбифо сим сити! и т.п.)
До конца недели осталось проработать базовую регистрацию и авторизацию игроков, а также наконец начать выводить информацию о выбранных регионах на фронтенде в удобочитаемом виде. Поскольку времени много, буду делать вдумчиво, с минимум говнокода. Люблю такие задачи, над которыми можно покопаться. Dev-4 скорей всего такого не позволит, там пиздец.
Пароль от клиента на сервер будет передаваться в хешированном виде, на сервере будет солится индвидуальной рандомной сгенеренной солью аккаунта, и в таком виде храниться.
При авторизации думаю отдавать токен который можно будет хранить в куках и в течение какого-то времени повторно авторизовываться по нему. Легко ли спиздить куки из браузера без доступа к компу?
Как думаешь, >анон, норм? Чего посоветуешь по таким казалось бы тривиальным вопросам?
Я бы лепил одиночную стратегию если честно, или просто сеть по айпи. Концепт слишком интересный для браузерки
>При авторизации думаю отдавать токен который можно будет хранить в куках и в течение какого-то времени повторно авторизовываться по нему. Легко ли спиздить куки из браузера без доступа к компу?
Вот что вспомнил.
https://en.wikipedia.org/wiki/Session_fixation
Ну, я планирую что это будет не казуальная браузерка, а хардкорная. И всё же 2к17 21 век на дворе, мультиплеер правит.
Регистрация и авторизация - скука смертная. Пишу скрипты для создания таблиц, веб формочки, отправку, прием, бойлерплейт всякий, зеваю. И, главное, задача вообще побочная, хоть и необходимая.
Эх, был бы у меня инвестор, хотя бы на небольшую команду по найму...
133 files changed, 1570 insertions(+), 8867 deletions(-)
Dev-3 выкачен. Долгая, долгая неделя. Двигаюсь намеченными темпами, уже начал планировать задачи на Dev-8. Одно только неизвестно - хватит ли усилий в подобном темпе чтобы выпустить альфу к сентябрю... Вот это волнует. В глобальном масштабе оценить сроки не получается.
На следующую неделю намечены серьезные эксперименты - впервые будем импортить и расставлять модели по карте.
А можно выделение территории полупрозрачным сделать, что бы не выглядело блювотно?
Если хочешь можешь что то попросить нарисовать лул. (да рисую)
> Вас
Ну ладно вам, будьте ж вы людьми я здесь один, увы. Есть небольшая вероятность, что мне удастся завлечь двух хороших людей в ближайшие несколько недель. Но вероятность КРАЙНЕ МАЛА.
>>326272
>Авторизации, профили, вот это все?
With bare hands, бро. SQL-скрипты, развертывающие таблицы, bcrypt генерящий пароли с солями, авторизация на веб-сокет сервере, общение по JSON.
Спс, но стараюсь как можно в большем покопаться самостоятельно.
>>326342
> полупрозрачным сделать
Ну хз, у них сейчас opacity 0.5, возможно на скрине это не очень заметно. Попробую опустить немного, мб и правда лучше будет видно.
Насчет рисовать хз. У меня почти нет конкретных идей, разве что UI какой-нить типа иконок абилок, эффектов и прочего. Но тут комплексно надо подходить. Так что ближайшие месяцы на местах арта будут затычки
>>326970
Мне лично нравится, но можно переключаться: режим мыла активируется выставлением галочки на интерфейсе.
В каком режиме будет открываться по-умолчанию, первый раз, это надо будет решить сбором статистики среди будущих альфа-тестеров. Сразу засчитаю пару голосов за отключенное мыло.
213 дней 2 часа 12 минут
Продуктивный день. Научился показывать границы регионов, плит. Регионы контролируемые игроками теперь генерятся как меши (точнее один большой меш) поверх обычной карты, а не просто перекрашиваются цвета тайлов.
Когда попытался создать в таком же стиле полупрозрачные меши над тайлами, на которые наложены эффекты, то игра начала заметно тормозить. Разница лишь в том что поскольку у каждого закрашенного тайла своя степень прозрачности (в зависимости от количества наложенных эффектов), для каждого из них создается отдельный меш. То есть +50~ мешей на сцене. И игре это не понравилось. То ли я что-то делаю не так, то ли действительно это так сильно влияет.
я хз, конечно, как это у тебя там устроено, но может можно их как-то инстансить? По-идее тогда должно меньше ресурсов сжираться.
Юзаю THREE.js, он, насколько я понимаю, минималистичен, отсебятины там нет, работа с 3D канонична. Вот основы за 3 минуты:
http://codepen.io/rachsmith/post/beginning-with-3d-webgl-pt-1-the-scene
Пока у меня подозрение что при росте количества Mesh, сурово падает производительность сцены. А если, например, объединить 50 мешей в один, то движку сразу станет легче всё это рендерить. Это нормально в 3D?
Сегодня закончил внедрение интересного концепта - генератора названий. Решил не изобретать новых языков, поэтому выделил несколько наиболее популярных языковых групп, накидал типичных слогов, и построил слоовобразование. Есть либо полностью рандомное, либо на основе уже существующего названия.
Также один из тасков Dev-4 исключил, и заменил на более, как мне кажется, насущный: сделать ядро логики постоянно живущим процессом, чтобы избежать холодного старта - на запуск тратится 5/6 всего времени работы. Ну и конечно, нужно будет работать с пулом процессов, чтобы обслуживать несколько игровых сессий.
Жив-жив. Всего то день не отписывался, уже с собаками ищете.
Быдлокодю в поте лица, завтра сдавать Dev-4 уже, затем можно выдохнуть, и написать отчет.
Есть 3D-сфера радиусом 1
Есть 3D-вектор, нормализованный. Через этот вектор задается любая точка на поверхности сферы.
Есть 3D-модель. Ей можно задавать вращение, через 3 координаты X,Y,Z углы Эйлера в радианах.
Внимание вопрос подозреваю что платиновый: как блеать посчитать исходя из вектора вращение модели, чтобы она была перпендикулярна поверхности сферы.
Нужно было в школе и вузике МАТЕМАТИКУ учить
Основные задачи над которыми работал:
- Генерация названий. Получается многообещающе, но нужно собрать большой словарь, чтобы было красиво
- Внутренняя оптимизация кода, новый миксин Targetable, с очевидным функционалом.
- Наконец заработали переключаемые границы между регионами и плитами.
- Процесс ядра теперь в режиме постоянного выполнения, таким образом, холодный старт больше не тормозит игру.
- Поэкспериментировал с импортом моделей из Блендера, всё збс, за исключением того, что надо поработать над вращением. Жопой чую, что нужно матрицу преобразования построить, но пока не понял как именно. https://en.wikipedia.org/wiki/Rotation_matrix
Теперь касательно ощущений. Чувствую, что устроил себе гонку, и подгоняя, наступаю сам себе на пятки. Часто за нехваткой времени скатываюсь в говнокод. С другой стороны, приходит понимание, что если бы я работал над проЭктом в лайт режиме, под хорошее настроение,только когда звезды сойдутся - делал бы в три раза медленнее в итоге. Так что, видимо, работать в постоянном напряжении, в условиях сроков, это единственный мой возможный путь. Ну я ж не гений-спец 300кк в наносекунду. Значит осталось только терпение и трудолюбие.
Спасибо. Воодушевление и мотивирование тоже играет важную роль.
Ты крут, слежу за тобой с декабря, можешь рассказать о себе немного?
Алсо если не сможешь в дедлайн, обязательно проект доделаешь? Что будешь делать после дедлайна?
Не люблю о себе рассказывать. Робеспьер в не лучшем его проявлении. Ещё из статов лак прокачан выше среднего.
> Алсо если не сможешь в дедлайн, обязательно проект доделаешь?
Ко мне уже приходит понимание, что даже 50% от глобально намеченного к дедлайну - это утопия. Но это не главное.
> Что будешь делать после дедлайна?
Дедлайн, это только первый этап. Он у меня даже в трекере назван Alpha-1. После этого начнется открытая Альфа. И, думаю, она, будет тоже длится ТРИСТА дней, лол.
Вот такие планы. Теперь уже точно, это мой главный и единственный пет проект на ближайшие годы, самый минимум на 1-2, пока идут этапы Dev, Aplha и Beta.
Решение работать над проЭктом во что бы то ни стало, реально повлияло на мою жизнь. В ней как будто больше красок стало.
И да, анончики, я с вами буду НЕ до самого конца. Ближе к выходу, летом, перейду в режим тишины. Вы обо мне услышите потом в сентябре, надеюсь. Не диваноньте лигивоньте плз
>Срочный вопрос к 3D-модерам
>Проблема движкописателей
В юните есть Quaternion.LookRotation для преобразования.
и импорт в HTML есть, а он будет как я понял использовать WebGL.
лучше кватернионы а не углы ейлера использовать, в либах есть метод типа rotateaxis где задаешь угол и ось от которой крутить
https://threejs.org/docs/?q=vector3#Reference/Math/Vector3
see .applyAxisAngle
в твоем случае 90 (0 1 0) или че там, далее это в кват или углы легко преобразуется, но еще раз
ейлер кака, если в физику захочешь используй кваты сразу
повороты в экспортерах указывай, в опциях есть, в разных системах по-разному, где-то зет гравиось, где-то ординат
лох.
>>334361
>>334362
Я нихера не понял из того что ты мне сказал но ты достучался до моего сердца.
Можно еще раз для тупых? Единственное место на сфере где модель располагается правильно (без поворотов), это x=0, y=1, z=0, то есть на северном полюсе "планеты"
Перемещаем на одну из точек на "экваторе", x=0, y=0, z=1. Тут модель перпендикулярна поверхности. По какой оси её нужно вращнуть на 90 градусов чтобы она легла верно?
Допустим, поворот модели по оси, параллельной поверхности сферы неважен, пусть остается умолчанию, или, лучше, будет случайный (размещаются домики)
Ойблять, ясен хуй, что только на севере всё будет норм. Веб макака, пиздец тупая.
для поворота от XYZ = 001 к XYZ = 010 тебе нужно вращать вокруг X на 90 градусов.
Спасибо. Будет вообще замечательно, если поделишься общей формулой, благодаря которой в уме прорешал этот пример.
Второй день вгрызаюсь в крайне сложную механику. Она планировалась с самого начала, и почти 100 дней я не подступался к её реализации.
Я говорю о демографии - в игоре будет развитая демография населения подконтрольных игрокам регионов - пол, возраст, раса, вероисповедание и пр. В динамике это работает пиздецки сложно. Но уже получается. В конце Dev-5 население будет дружно рождаться, стареть и умирать.
Уфф, это не столько формула, сколько я просто представил в голове и понял из геометрии.
Хмм, попробуй так, от Z сначала поворачивай вокруг X, чтобы получить широту, а затем поворачивай вокруг Z, чтобы получить долготу. Таким образом если повернешь сначала на 45 вокруг Х, то окажется на линии окружности 'а', как на рисунке, а затем довернув вокруг Z сможешь попасть в любую точку М на этой окружности. Как-то так.
ада, не смог найти удобного рисунка, так что тут Х - это ось EW, а Y - это ось NS
вся суть руби-макаки, сложная механика, не могу повернуть сферу на 90 градусов.
говорю кватернионами делай а не ейлерами, это моветон
Спасибо анончег, попробую если успею все таски этой недели выполнить раньше срока.
>>348799
Яснопонятно.
Наконец, заработал демографический минимум, и даже что-то отображается на клиенте. Начало положено, перспективы для наращивания огромные. Следующей задачей идет минимальное взаимодействие игровых поселений с окружающей средой.
оп, видел эту сферу в ролике с какого-то джема, про крейзи лендер игра кажись, ты оттуда все спиздил? в чем суть твоей работы? ты понимаешь что в мультиплеере это не заработает на твоей корявой РЕЛьСЕ и тут нужны котябы
СОКЕТЫ
Как я говорил, за основу взят буржуйский опенсорсный planet generator под фри лицензией. Уже сейчас переписан чуть менее чем наполовину, и, кажись, будет переписан полностью.
>корявой РЕЛьСЕ
Никаких сугубо рельсовых библиотек не использую
>СОКЕТЫ
Вебсокеты? Они есть.
Сегодня добавил источник первого ресурса (древесины) - леса. Визуализация пока только в панели информации. Скоро древесину научаться добывать и делать из них разные ништяки.
ОПушка, ты делаешь, практически, игру моей мечты. Добра тебе и успехов. Подписался на тред
Я и свою игру мечты делаю.
Фуф, только закончил сегодняшнюю работу. Устал дико, но доделал полную цепочку действий по добыче древесины. Завтра буду внедрять на тестовый сервак. И после этого останется висеть еще два таска, которые нужно запилить к концу недели. Значит опять выходные в которые кроме кодинга ничего нет...
>universim
Оче любопытно. Вижу пересечения по многим идеям. Но это в первую очередь сим, притом синглплеерный. Думаю, у нас будет не очень большое пересечение аудиторий.
А так и будет, рано или поздно. Вряд ли мной это будет написано конечно
202 дня 34 минуты
Закончен еще один таск, про начисление поселениям очков развития. Остался последний, и у меня будет целое воскресенье на него, и на деплой (хотя с ним то как раз проблем стало меньше)
Видно, что я приноровился к темпу, который сам себе задал, и могу долго работать в таком режиме. Но есть одно Но. Меня беспокоит постоянный рост технического долга. Я, кажется, больше стал понимать, каково это вести бизнес в IT. В этой гонке постоянно приходится одергивать внутреннего перфекциониста.
В общем, в моём расписании как раз появился Dev-10, и он будет посвящен исключительно разгребанию увы, малой части технических долгов. Боюсь, без подобных фаз, такому большому для одного меня проекту придет пипец.
Я бы может и объяснил принципиальную разницу между закрытием тех.долгов и преждевременной оптимизацией, но мне лень.
двух слов прочитать не может предурак, у тебя с долгом работает или это критически? объясни может своей мамке разницу между мытым хуем и немытым ок? на премере своего. объяснятель херов
Хм, завтра уже 100 дней как работаю. Неплохо. Надо будет подвести промежуточные итоги.
Итак, Dev-5 выкачен.
Неделя была посвящена демографии, заложены важные основы. Поселения перестали вращаться в сферическом вакууме, началось взаимодействией с внешней средой. Начался учет очков развития.
Долгая возня с ТОРИДЭ закончилась частичным успехом, хотя вопросов еще много.
да-да, домики летают в воздухе. Но теперь они хотя бы повернуты как надо
Принято вышеупомянутое решение по Dev-10. Думаю, в итоге я приду вообще к чередованию этапов фичеринга - багфиксов/стабилизации в пропорции 50%/50%.
все триоде надо в редакторе выставлять чтоб сразу видеть результаты т.к. объекты трансформируются относительно своих родителей и т.п. а в двигло загружать готовый сет\екшоны\трасформации\сцены етц., храня дополнительные параметры в userData свойстве или запилив свой формат и плагины для расширения интерфейса (вкладка с параметрами формата)
не заморачивайся со своими ВАЖНЫМИ ОСНОВАМИ, все-равно глобальная среда будет СИМУЛИРОВАТЬСЯ а не ПРОСЧИТЫВАТЬСЯ
приведу пример: если хакнуть напр. космических реунжеров и набить себе миллиарды денег баланса, то у встречающихся кораблей сразу подмется уровень лута до околосреднего-твоег, т.е. параметры мира подкручиваются под играка для соблюдения баланса, а не честно расчитываются
Графон пиздец конечно. Туториал о том, как въебывая 100 дней почти без перерывов получить хуевый результат только потому, что выбрал не те инструменты.
Не могу же я заранее в редакторе знать, с каким поворотом модель домика буду ставить? Так-то я загрузил готовую сцену из Блендера, задал ей только позицию, масштаб и ротацию.
>>360950
>все-равно глобальная среда будет СИМУЛИРОВАТЬСЯ
Изначально делаю игорь где она таки будет просчитываться...
Пример про рейнджеров не очень. Хочет игрок с читами быть уберкрутым - ну дай ему таким побыть.
Виртуальный мир должен жить по своим законам, а не подстраиваться под игрока Я СКОЗАЛ
>>362012
This.
Не забываем что это WebGL, не забываем что это Three.js, и что у меня ноль знаний по ТОРИДЭ.
200 дней 1 час 22 минуты
Увы, подводить итоги некогда. Сижу, балансирую экосистему. Занятное дело, на самом деле. Спать не уйду пока не получу устойчивую среду хотя бы на протяжении 500 лет.
Думаю нет, лол. Масштабы всё же не те.
Задача балансировки занимает горраздо больше времени чем я думал. Буквально полчаса назад удалось добиться стабильной экосистемы, самовосстанавливающейся после умеренного внешнего вмешательства. Но формулами я не доволен. Попахивает СИМУЛИРОВАНИЕМ. Значит и третий завтрашний день на это потрачу.
Нихуя себе. Ты что-то читаешь по экосистемам или что?
Насколько я помню у нас был в универе предмет такой - концепция современного естествознания с мат моделями и формулами всяких штук.
рубиблядь дохуя пиздит а делает мало, никаких экосистем он расчитать не сможет. максимум дешевая симуляция с константными коэфициентами, подбор которых он называет ТЮНИНГОМ МАТМОДЕЛЕЙ
я тебе не о НАЕБАЛОВО=СИМУЛЯЦИЯ говорю, а о том что ПРОСЧИТАТЬ АКТИВНОСТЬ КАЖДОГО жителя планеты ты не сможешь, прийдется объединять их в юниты, которые будут в балансе между собой, и если у одного юнита вдруг возникают миллиарды из вакуума, логично что они начинают расползаться по экономике, а так как ты не можешь симулировать ПоКУПКУ ХЛЕБУшкА СЛАДКОгО НА ЗАВТРАК ДЛЯ ПЕХОТЫ то это сомо собой влияет на некие общие множители (инфляция, вброс валютной массы) как ни крути у тебя СИМУЛЯЦИЯ а не ЭМУЛЯЦИЯ и нехуй пиздеть, ок?
Ви чего такой аггесивный? Я таки мимо пгоходил, услышал что тут пго шекели газговог, гешил пгисоединиться.
>РОСЧИТАТЬ АКТИВНОСТЬ КАЖДОГО жителя планеты ты не сможешь
>ты не можешь симулировать ПоКУПКУ ХЛЕБУшкА СЛАДКОгО НА ЗАВТРАК ДЛЯ ПЕХОТЫ
Ты не можешь думаешь никто не может.
Лошара.
>>368843
>>368994
Не ругайстесь анончики. Это всё действительно сложные системы, https://ru.wikipedia.org/wiki/Сложная_система не формализуемые без значительных допущений и упрощений.
Экосистему мне удалось смоделировать, сегодня вброшу пару скринов.
Не скажу, что я доволен созданной моделью на все сто меня вообще сложно удовлетворить полностью, но соотношение результатов к затратам нормальное, и в таком виде оно войдет в игру.
Экосистема из 4 основных компонентов. На графике её состояние на протяжении 1000 лет. Первые 200 лет - без внешних воздействий, дальше через каждые 100 лет применяется аномальное изменение одного из компонентов (симуляция внешнего воздействия).
Интересно, что даже в спокойном состоянии, экосистема выстроила себе 35-годичные циклы сам ничего подобного не закладывал, внутри просто система линейных уравнений.
В таком виде оно уже крутится на тестовом сервере. Появился режим отображения текущей насыщенности экосистемы белый - минимум, зеленый - максимум
За эти три дня дико устал, наконец можно расслабиться.
>сам ничего подобного не закладывал, внутри просто система линейных уравнений
Дык ты что-то читал по теме? Или может логикой поделишься? Мне правда интересно, как ты решил задачу, даже если там всё просто.
вась, что ты вкладываешь в понятие ЭКОСИСТЕМА, НАСЫЩЕНОСТЬ ВОЗДЕЙСТВИЕ, УРАВНЕНИЕ???
Ничего особо не читал за исключением вики. Логическки схема напоминает перцептрон, только веса и типы операций выбираешь самостоятельно.
В начале, на входе - некий коэффициент влияния внешней среды, и основные параметры системы со значениями по умолчанию. Исходя из них высчитываешь слой внутренних параметров системы. Затем исходя из полученного слоя, высчитываешь коэффициенты изменения основных параметров. И так до бесконечности.
Наверное, путанно пишу, так что сорян.
>>369802
Насыщенность - отношение текущего количества субъектов экосистемы к его теоретическому максимуму по логарифмической шкале.
Аномальное воздействие - это изменение параметров системы извне цикла расчетов; делал чтобы посмотреть, есть ли устойчивое равновесие.
Сапчик. Запасись мотивацией впрок, и обеспечь себе пути её возобновления. Будет нелегко.
Пикрелейтед состояние вчерашнего мира через ~100 игровых лет.
Сегодня добил докеризацию БД, автоматический старт с заготовленной схемы, контейнеры данных.
Начал работу над панелью действий игрока, переделал старые js-ные костыли на Промисы, занятная механика у них, хотя не сказал бы, что прям совсем удобная.
сравнивает фреймворки и язык. я когда-то кофе любил, но отказался в пользу ванильного есНекст на котором и пилю, скоро галочка в настройках для него не понадобится.
зря, в реакте и редаксе самые современные идеи, все идет к компонентам а полимер не готов, но ты хуярь свою лапшу на чем хочешь, ты же макака, все-равно твой проект не сможет в продакшн, вот увидишь (если там не 10 анонов будет)
алсо елмь это платформа а не совсем язык, как ОТП в ерланге, но куда уж руби-быдлу до понимания современных идей продвинутой архитектуры
> не сможет в продакшн, вот увидишь (если там не 10 анонов будет)
Чем больше человек в проекте, тем меньше вероятность, что проект будет завершен.
Если конечно они у тебя не на зарплате.
Лучший способ ничего не сделать это начать собирать команду которая будет работать за бесплатно.
Ты мало того, что меня с ОПом перепутал, так ещё и со своим реактом лезешь, который вообще будет пятым колесом в проекте с webgl.
Пиздишь много, а знаешь мало. Типичный "программист".
Верно подмечено, анон.
Несмотря на то, что зарплата - слабый мотиватор сам по себе, без неё вообще не реально.
Действительно работать на энтузиазме и не отваливаться через пару-недель\месяцев сможет два-три человека из ста. Притом, из таких людей не занято уже какими-нибудь проектами тоже два-три из ста. Перемножаем вероятности, и становится очевидно, что первые год-два нужно тащить придется в соло.
Наверняка, есть новомодные фреймворки, где всё это делается в три клика. Рад за них
ОП, можешь расписать все возможности в будущем проекте или хотя бы на что он больше всего будет походить.
В плане можно ли будет выбрать форму правления или истребить всю живность, и возможно что какой-то из ресурсов будет полностью исчерпан, та же живность.
Мне нужно больше информации.
>можешь расписать
Неа, не могу. Сказал бы, что секрет, но, по факту, сам еще не знаю. Но будет много
>на что он больше всего будет походить
Выше упоминал, смесь Травиана\Цивы, но не точно
Из того что ты перечислил, всё планируется.
>Мне нужно больше информации.
Зойчем?
Очко внутреннего параноика сжалось еще больше. Сорри, фап-тред не обещаю.
195 дней 1 час 37 минут
Дичайше длинный день. Занимался реализацией управления от игрока. Наконец, механизм освоен, вся цепочка построена, заработали первые команды, которые реально влияют на геймплей сессии. Дальше будет уже проще.
Под вечер основательно взбугуртнул от обнаруженной баги, при которой счетчики от разных эффектов синхронизовывались. Отладил, оказывается, опять сериализатор виноват.
Не скажу, что сегодня была прямо интересная задача. Но она а) необходима б) важна в) результат виден сразу.
Так что усталость, в общем-то, приятная.
я говорю что не взлетит если больше 10 человек играть будут, не так просто такую многопользовательскую систему забацать как оп думает, вагую тонны рассинхранизаций и бугуртов
Уходи, не мешай.
В случае с реалтаймом, пришлось бы повозиться основательно но так как тема уже изучена вдоль и поперек, то реализовал бы в соответствие с best practicies. Но игорь пошаговая. Все приказы игроков исполняются скопом, в конце хода, притом на этом же этапе происходит разрешение коллизий. Худшее что может произойти при ВНЕЗАПНОМ наплыве и перенагрузке сети - приказ может попасть в очередь исполнения следующого хода. Но его можно будет вручную отменить, если стал неактуальным.
ок, ход будет фиксированной длины? типа ход минута, у всех одинаковые циклы хода, заокнчить ход кнопки нет?
Пикрелейтед визуализация атмосферы. Медленно плывет куда ей вздумается. Выглядит вроде неплохо, но часто мешает. Видимо, придется сделать отключаемой, как и смену дня\ночи.
На следующей недели таски более лютые. Сегодня еще посижу, попланирую, может перераспределю нагрузку.
Сегодня работал над новой частью ядра - тайлами. Раньше на уровне логики я оперировал более крупными частями карты - регионами, а тайлов примерно в 50 раз больше, и, в будущем, они понадобятся много для чего, а уже сейчас нужны для более точного позиционирования объектов внутри региона. Полная копия игровой сессии в сериализованном виде сразу стала занимать 50 МБ. Хорошо, что далеко не все из этих данных будут отдаваться клиентам.
Сделай, чтобы атмосферу было видно по краям шара, но к центру она становилась полностью прозрачной. Т.е. рабочая область чистая, но по краям для красоты было.
Хорошая идея! Только не представляю, как это можно делать. Нужно испускать какой-то конус из позиции камеры, и увеличивать прозрачность части меша атмосферы, попавшей в пересечение с ним. Это вообще легально?! Свойство opacity задается материалу целиком...
мб какая-нибудь маска?
>Свойство opacity задается материалу целиком
В пиксельном шейдере можно брать наклон поверхности, и чем он больше выставлять больше альфу.
новая часть ядра тайлы. сука оп опсираюсь с тебя, руби макака тешит свое чсв дрожащими словцами. сиранул подливой тебе в ротешник. пидор
Потише, Кирилл.
Воу, кому-то припеклоу с моего тредика.
Сори, что не писал два дня, анон. Бытовуха. Но всё идет по-плану. Внедряю дерево технологий. К сдаче Dev-7 Будет 2.5 исследования, которые можно будет открыть.
>твои фанаты считают что реатк не совместим с
3д
Ну да, всего-то надо прикручивать ещё один кривой пакет, а потом целый день issue на гитхабе читать, что "вот это неисправлено ещё" и "это нельзя".
Шизик ты, сколько лет кодишь?
наличие хейтеров - признак успеха, ОП. На тех, до кого никому нет дела, никто и не срет.
Продолжай свой замечательный тред.
Что-то мне кажется, что ты после последнего курса только на работу устроился. Ну что ж, удачи, только русский подучи немного, а то сложно тебя понять.
Будет ли практический смысл создавать отдельные игровые сущности "открытия", "исследования" и "технологии". Или всё слить в одной сущности.
За разделение говорит та мысль, что между этапами изобретения и внедрения определенной фичи (например, орудий для вырубки лесов) есть большой разрыв. И что на первом этапе трудятся ученые, а второй - это скорее промышленный массовый процесс. И хотелось бы это отразить. Скажем, что технология будет иметь отдельные параметры, характеризующие сложность "открытия" и сложность "имплементации".
Но это же пиздец переусложнение?
Завязывай ООП-ересью голову себе морочить. Принимайся уже за игру.
Про прототипирование, рефакторинг, этапы разработки ПО, проектирование не слышал?
> прототипирование
Это тут каким боком?
> рефакторинг
Это тут каким боком?
> этапы разработки ПО
Это тут каким боком?
> проектирование
Это тут каким боком?
Еще скажи водопад использовать. Пиздец, имбецил совковый.
>>380955
Кароч, слушай сюда. Правило номер нуль: проект вседа должен быть рабочим. Колесо, самокат, велосипед и так далее. Да, согласен, что в таком случае кода писать в 3 раз больше, но это поможет оставаться проекту играбельным. Тебе сложно срздать менеджер резурсов и передавать всем юнитам в их действие? Можешь написать фабрику действий и там их генерить. Так же проверяешь нужно ли перескакивать на слдующий этап эволюции и если да, то фабрикуешь новое действие для этого юнина или новый пресет характеристик и скинов. Чего сложного? Будет фабрика эволюций и менеджер, который их применет к юнитам.
Тебе надо ты и используй водопад.
Суть в том, что должна быть конкретная идея что надо сделать. Есть идея - можно написать прототип, по которому решить годно или говно. Если годно, тогда можно отрефакторить, чтобы был норм код, ну или переписать заново, а когда надо будет добавить фичи, то отрефакторить под новые фичи.
Иди свою игру делай, хватит советы раздавать.
ПроЭкт рабочий как минимум каждую неделю, когда я закрываю очередной этап. Ну и еще 3-4 промежуточных шага в течение недели.
Я вроде уже высказывался на тему детального проектирования, но повторить будет не лишним - я начинал разработку практически БЕЗ диздока. И по-прежнему считаю это хорошей идеей, потому что в процессе разработки вскрывается столько, что первоначальным талмудом если бы он существовал, можно было только подтереться. Рабочий процесс выглядит так:
- Берешься за механику, о которой известно в самых общих чертах
- Не пишеш, ДУМОЕШ
- Пишешь, гоняешь
- Выбрасываешь, возвращаешься на два шага назад
Это отчасти объясняет, почему я думаю над механикой технологий сейчас, а не три месяца назад.
190 дней 17 минут
В процессе реализации технологий, понял что имеющиеся у меня механизмы применения модификаторов параметров игровых объектов пока было только применение модификаторов от эффектов достаточно костыльны, и не могут не выдержать дорабтки. Поэтому имплментировал класс Modifiers, который содержит в себе информацию как о временных модификаторах, получаемых от накладываемых эффектов, так и о постоянных модификаторах, основным источником которых будут открываемые технологии. Конец таска по внедрению механики уже вроде виден на горизонте.
И я действительно присматриваюсь в сторону React, хотя нихера про него пока не знаю. Какие вижу плюсы:
- Мейнстримный, а значит быстро не загнется, есть развитие, обсосаны все основные вопросы, которые возникнут у нуба
- Только UI-ный как я понял, никаких лишних свисто-перделок не предлагает.
Если не найду более интересную кандидатуру, погоняю туториалы и возможно, попробую его.
Какую вики используешь? Я что не искал для всех громадный веб сервер приходилось ставить и пердолиться с настройками. Хотелось бы запустить и сразу использовать ее по назначению.
выбора два: реакт и вуе. реакт + редакс, вуе сразу искаропки. оба основаны на развивающейся спеке вебкомпонентов но представляют ее в текущих реалиях и каждый по-своему 9вуе ближе всего0
оп ты с таким запалом рассказываешт что чтото уже запилил, но будет ли оно работать в измерении времени и будет ли оно играбельно не узнаешь до релиза (300 дней), так что давай говорить что ты только пробуешь выпустить говнокод а не игру за 300 дней пишешь, ибо 200 дней на тестирование и отладку это мало, ты сколько на это отводишь с учетом того что все пять раз переписать прийдется?
вуе походу крупнее реакта стал ибо СНИЗУ ОТ НАРОДА
Все технологии объединены в иммутабельное древо. А у каждой из сторон есть отслеживающий объект ScienceLevel, который работает с деревом, вычисляет, какие технологии доступны, а какие уже изучены. Ему передается объем затраченных научных усилий, а он определяет, когда происходит открытие технологии.
Помимо отладочных, добавил одно настоящее исследование, которое ускорит сбор ресурсов. Запустил на отладочном мире, жду пока откроется.
Не планировал потратить столько времени, но, с другой сторону, вижу что потрачено с пользой, потому что это совершенно необходимая механика. Не знаю, успею ли остальные задачи на этой неделе, правда.
Впрочем, эйфория длилась недолго. Мне до жопы нужно успеть, а остался только завтрашний день. Сегодня перед сном потыкаю в Vue, ибо уже завтра нужно будет полепить кое-какие формочки.
предлагаю тебе налепить формочек на скаффолде рельсов, максимум с жиквери каким-то, в компоненты будешь тыкать позже, для их подхода нужен богатый фон и опыт, если ты даже с бекбоном каким-то не знаком то пути кхм, нет типа
Устал. Опять словил мигрень, или, возможно, простужаюсь.
Тем не менее, Dev-7, выкачен. Не весь, увы. Я отказался от одного из тасков, показавшихся мне неважным сейчас. Перенес в пул тасков без конкретных сроков.
Оглядываясь назад, считаю, что неделя всё же была продуктивной:
- Создал модель Tile-ов, то есть начал их учитывать на уровне логики.
- Героически подебил возросшее время на сериализацию\десериализацию
- Чудовищными ковыряниями запустил механизм изучения технологий, попутно модифицировав демографию, добавив параметр "род деятельности"
- Начал ковыряться в Vue, хоть и не особо пока впечатлен им. Добавил чекбокс отображения атмосферы через него.
- Подебил баг с зависанием ядра, который сам же ранее внес - иногда в отладку пыталась записать свое значение переменная, которая через ссылки тянула половину состояния сессии, и всё молча падало.
- Добавил учет использованных способностей игроками в бд,чтобы потом можно было на основе этих данных "прокачивать" абилки (похоже на экспу).
На вечер осталось еще одно непростое впрочем, оно мне доставляет дело - анализ текущего состояния проекта, планирование следующих заданий. Сейчас Roadmap построен вплоть то Dev-12, и, ЧСХ, чем больше я делаю, тем больше всплывает того, что нужно сделать.
ОПчик, расскажи пожалуйста, что за Dev-7, ЧСХ, Roadmap, и вообще про твой способ менеджмента задач.
Dev это просто играбельное говно что у него сейчас есть, запилил пару фич - собарл все что сломал в кучу, запустил - вот тебе дев, как тег в гите
чсх - го лурк
роадмап - дорожная карта
оп дохуя офисное быдло, вместо еджайла дрочит на досочки и диаграммки с задачами, повернут на дрожащих словах, делает мало а пиздит на 10 страниц о том что якобы СДЕЛАЛ, посути нагенерил параши
После НГ разбил работу на недельные этапы, которые назвал Dev-*. Выделяю по 4-5 задач, суммарно на ~20 часов времени.
В конце недели деплою на тестовый сервак, чтобы в течение следующей недели немного поигрывать и вообще смотреть что и как происходит.
В течение самой недели, если попадается на глаза что-то, пишу в задачу трекер (чаще всего bug или support таски). В конце недели провожу полную рекогносцировку фронта работ, лол. Расписываю какие задачи нужно решить. Поскольку время не резиновое, то заппланировал уже на 5 недель вперед, и тенденция сохраняется.
Конечно, всё это не железно - бывает, переставляю задачи, до начала нового этапа. Но в пределах этапа спринта, пусть это не каноничный agile, стараюсь всеми силами выполнить всё намеченное.
Продуктивный день. С места в карьер головой вниз. Заработал простенький web-сервер (нa Thin), который отдает по кускам сериализованные данные игровой сессии, (по REST запросу) вместо загрузки json-а целиком. Должно снизить трафик на 90%.
Также окончательно пришел к принципу "одна сессия - один процесс", сделал надстройку ядра чтобы оно автономно шпарило, без процесса-арбитра.
и это он один пилит, представляете? задачи блядь в трекер он пишет, митапы проводит, отчитывается
чем плох "жсон кусками", патчи иидифы. ты так пишешь будто у жсон какие-то проблемы а не у тебя аутизм
один процесс на одну сессию это стандарт де-факто, только боюсь обосрешься со своим руби, удачи, кстати я твой хейтер если что
уж точно на серверах раззоришься если и будет работать
ну и сколешься из-за ipc, нет ничего хуже многопоточности в 2к17, только асинхронопараша, только острие технологий
мимо-фронтенд
Процесс извлечения информации из головы и облечение их в письменную форму - хороший способ вскрыть косяки и противоречия. И да, я показывал нескольким людям свою вики и редмайн - получал рецензии.
>>382020
Я думал о дифах. Проблема в том что содержимое меняется крайне значительно, и регулярно каждый ход.
Есть { turn: 25, yoba: 0.34342637 } и { turn: 26, yoba: 0.35692348 }. Как диффить будешь?
И главное. Размер хода сессии 1 - 10 МБ. Но среднему игроку понадобятся из этих данных процентов 5-10%. Да и то не сразу, не в начале хода.
>>382021
Практически все процессы автономны. Есть парочка _однонаправленных_ связей через юникс-сокеты. Но действительным центром взаимодействия выступает постгря. Так что остается писать правильные запросы - с условными роллбэками транзакций, там где возможны конфликты.
Я вроде еще не особо многого долбился, чтобы последовательно меня хейтеить.
ОП, а у тебя за всё это время не возникала мысль бросить всё это к чертям, заняться чем-нибудь другим? Когда например плохое настроение было и тд?
Извини конечно, но у меня почему-то стойкое мнение, что если человек вот так целенаправленно долгое время занимается чем-то таким без мыслей:"Ай, может ну его нахуй, хуйню какую-то делаю", то он немного аутист.
> Ай, может ну его нахуй, хуйню какую-то делаю
Лол, я бы всё отдал, чтобы меня такая мысль не доставала. Авось, добился бы чего стоящего
Раз или два в неделю бывает. Перепады настроения, софт БАР, все дела.
Но не бросаю ибо:
а) процентов 60-70 времени это всё реально доставляет, эндорфины, зависимость есть
б) не чувствую себя деградирующим, как если бы сидел за пивцом и сериальчками
в) довольно упертый
Думаю ценность скринов с stdout новых контейнеров невелика.
Но на этой неделе будет что поскринить - на очереди введение захвата регионов.
тебе надо делать сразу играбельный прототип, вывод стдоут контейнеров это твой манямирок а не игра, у тебя нихуя нет, ты потерял время, лучше бы это был хардкод на один скилл и одно дедйствие (захват) как в конквейере каком-то, чем то что ты тут городишь уже пол года безрезультатно (пук)
я сам юзаю реакт, но ты что не видишь какая тут старопердая публика, есть мнение что оп просто не сможет в реакт по сути, что-то набыдлячить конечно сможет, но тут как микроскоп в руках обехъяны
судя по тому как он оттягивает вопросы интерфейса (99% приложения), следует что в фронт-енды он не может как мы с тобой, за реакт и вуе я ему и советовал, просто дал вуе понимая что реакт ему не осилить, всяко лучше жиквери-лапши, согласись (инлайнами жс кода в шаблоны которой ввсе и закончится)
>тебе надо
Niet, мне не надо. Работа над моим проектом построена исходя из ограничений сверху - серверной архитектуры, ориентированности на мультиплеер, доступа через веб, ограничений WebGL, и пр., пр.
Впрочем, холивор восходящего\нисходящего проектирования слишком стар, чтобы его здесь разводить.
Хватит рвать себе пукан. Через месяц экватор.
Не упустил случая побухать, праздник ж. Поработал немного, настраивал взаимодействие между контейнерами. Удивительно, похоже получается микросервисная архитектура - 7 демон-процессов, притом один из них запускается в клонируемом режиме, по количеству активных игровых сессий.
Завтра наконец добью намеченные таски по докеризации, упорюсь игромеханикой захвата регионов.
вот из-за таких пидоров и не хочется создавать тредик о собственно разработке.
>думал
сразу видно, тебе лучше не пускаться в мыслительные процессы, срать у тебя лучше выходит
>очевидно же
Слишком очевидно, чтобы быть правдой.
>>382477
Если это реально тебя останавливает, то что-то в твоем отношении к интернетикам is wrong.
183 дня 2 часа 2 минуты
Сегодня был какой-то ленивый день. Нет, кое-что успел даже. Теперь у меня есть докер в докере на самом деле нет, всего лишь один контейнер умеет запускать другой контейнер, обращаясь к хостовому докер-демону
Сел работать над экспансией. Понял, что задача шире, чем я себе представлял. Нужен будет создавать отряд колонистов. Поработал над базовым классом Unit, добавил миксин Location. Наконец скоро пригодится карта путей, с которой начиналось всё.
у него был план 300 дней
осталось еще 180+
Рано говорить что-то о получается/не получается.
Нормальную игру за пару месяцев на коленке не слепишь, особенно, если параллельно еще и работать приходится.
вот объясни шизоид, нахер тебе контейнеры? нахуй ты с этим возишься? ты вообще видел онлайн игру хоть раз, ты понимаешь что такое клиен-сервер, что 50мб пакеты\ход это нереально? тебе на каждого игрока виртуалку подымать чтоли прийдется? ты выкати свой пук чтоб два анона зпустили и все убедились что у тебя маня-говнокод а не игра т.к. играбельной она быть не может априори, а по тому что ты тратишь время на редмайн в одно рыло уже сразу ясен твой диагноз, так сказать
это 300 дней маня-фантазий в себе, плавное осознание того что все было неверно, все впереди у афтара, контейнеры он автоматизирует, дебилоид блять
Галочку потерял.
В любом случае, не о чем спорить с человеком, который еще не дошел до оценки вклада технологий контейнеризации в разработке, а особенно, в деплойменте и поддержке проекта крупнее 1 KLOC.
Опчик, ты молодец. В том числе, потому что не слушаешь даунов выше.
я то как-раз уже эту оценку прошел, а у тебя больше одной ноды планируется на запуске? да ты хоть половину ее по тунелю нам покажи с локалхоста своего, чтоб мы вдвоем комманды твоему стдауту послали и посмотрели как оно парралелньно работает, а то пиздишь ты дохуя а выхлопа у тебя на неделю говнокода левым мизинцем с завязаными глазами, где прототип сука, где код? пиздеть 300 дней каждый гаразд
Полагаю, на старте будет не больше одной, впрочем, подключить дополнительнмые мощности в сварм будет недолго. Я не планировал в ближайшее время светить какие-либо адреса доступа здесь, тем более что бы что-то доказывать человеку с диагнозом может и ошибаюсь
только почитайте блять, "добил движение базового класса", это что-ли x = x;y = y ты добил, может хоть гист покажешь? чтоб жополизы убедились что ты лишь стелить-то и умеешь
Мне сейчас жаль потраченного времени даже на то, чтобы читать что ты пишешь, так что это последнее мое обращение. Движение - это перемещение объекта типа Unit по графу, с предварительным поиском пути, с регистрацией\анрегистрацией в промежуточных точках.
передвижение объекта по графу, с регистрацией в точках, ну та это чем-то от {point = point, x, y} или point{} point{contains={x,y}} отличается? я что-то не так сказал, маня? Ж3
прошу вас, не используйте реакт, мутируйте данные, высмеивайте функциональщину, великие дела, перемещение типа юнит по божественному графу и поиск пути от моего конца до рта опа, наф сад
23 files changed, 437 insertions(+), 44 deletions(-)
Это за полдня. Пора сделать перерыв. Цепочка действий от проверки условий экспансии до создания нового поселения почти достроена.
Тут я пошел практически по пути Травиана: при наступлении определенных условий, становится доступным создание юнита "колонисты", который способен находить подходящие для заселения регионы. Слотов экспансии неограниченное количество, но каждый следующий требует гораздо больше очков.
Разрешение коллизий, когда два колониста одновременно хотят создать поселение в одном регионе делается чуть сложнее, чем в Травиане - там все приказы происходили в реальном времени и имелся однозначный порядок их исполнения. В условиях пошаговости, для Location понадобился специальный хеш, где под отдельными ключами собирались массивы взаимно-исключающих действий-лямбд, и на этапе post_action для каждого ключа выбиралось случайное действие для исполнения, остальные отклонялись.
Я надеюсь, что смогу в течение всей разработки сохранять в игре принцип "отсутствия гонки", когда действия игрока в начале хода и в конце хода равноценны при разрешении коллизий.
очень круто эти лямбды будут срабатывать при рестарте сервера между ходами
цепочка действий от проверки условий экспансии это if (player.expansion) ?
На сегодня пора заканчивать. Объем работ больше, чем я предполагал. Поскольку я впервые помещаю юнитов в игровую сессию, мне потребовалось место, где их удобно хранить, к ним обращаться, сериализовывать, десериализовывать.
Тут надо понимать, что хоть ссылки на юниты есть у многих игровых объектов, при сериализации хеш хранится лишь в одном месте итоговой структуры. До этого у меня были просто соответствующие массивы в объекте верхнего уровня, но сейчас я решил попробовать хранить их в коллекции-синглтоне, чтобы, с одной стороны, обеспечить их более многофункциональным хранилищем, а с другой стороны, иметь возможность обращаться к коллекции из любой части кода.
Поразительно, какого объема задачи я запланировал на эту неделю. Если бы не длинные выходные, это был бы срыв планов. Везёт.
поразительные объемы задач, синглтон для хранения юнитов
static Array<Unit> units = new Array<Unit>();
срыв покров, оп взломан, ловите исходники его дикой игоры
ну в принципе единый стейт-стор для приложения довольно правильное решение, а синглтон он или медиатор значения не имеет, так или иначе утебя будет какой-то глобальный стейт к которому ты будешь обращаться
Просто обычно синглтонами делают логирование или профайлер. То, что можно вырезать при компиляции в релиз. А так хорошо писать атомарно. Или этот массив прям во всей программе нужен аж ппц.
Отдохну, и вечером возьмусь за последний таск - организацию централизованного хранилища логов для всех сервисов.
сука пздц, какое нахуй централизованое хранилище для всех логов, уебок? лог4руби не существует или про логротейт неслышал? сука ну и пидор,
анончик, чтоб ты понимал, его код меньше места занимает чем пиздежь о нем, чувак явно работает языком а не мозгом
Есть n корзинок, для каждой определена вероятность p, что подброшенный вверх шар попадет в неё . Сумма всех вероятностей p1 + p2 + .. + pn очевидно равна 1. У нас m бросков шаров. Вычислить, сколько шаров попало в какие корзины, за О(n). Каждый прогон результаты, как и должно быть в эксперименте со случайными событиями, будут различаться.
Отношаюсь с тян, выпиваю с друзяшками изредка. Упарываюсь ойти (пытаюсь вкатиться в машинные обучение). И в общем всё. Сейчас всё вертится вокруг разработки игры.
180 дней 4 часа 53 минуты
89 files changed, 2023 insertions(+), 273 deletions(-)
Dev-8 выкачен. Оставил на тестовом мире четыре примитивных AI, способных только на экспансию. Посмотрим, как быстро они разрастутся.
Кажется, я начинаю повторяться, но эта неделя была пиздецки длинной. Нельзя давать мне четыре выходных от офисной работы...
Итак, что было сделано!
Заработал веб-сервис, который отдает данные игровой сессии по кускам, только то, что нужно конкретному клиенту, ничего свыше этого. Пока в экспериментальном режиме, думаю, в следующей неделе я подвину расписание и добавлю задачу по его доработке, а, особенно, по изменениям в клиентской части.
Процесс обсчета сессии автономизовался, докеризовался, запускается из другого докер-контейнера и живет своей жизнью. Я окончательно ухожу от идеи процесса, который бы обрабатывал несколько игровых сессий в порядке очереди. Одна сессия - один процесс.
Экспансия. Она работает. Сколько было вбухано, пцп. Зато теперь почти всё готово для запила новых юнитов.
Логгирование. Создал новый data-container, куда сливаются логи с nginx, посгри и остальных сервисов. Иметь всё под рукой удобнее, чем прыгать между контейнерами через docker logs
Остается самое вкусное - попланировать на следующие недели. Займусь этим перед сном.
Да, и, давайте сменим пластинку тематику пикч.
Тут результат не меняется прогона к прогону. Если подкинуть тысячу шаров, в реальности они чуть чаще чем никогда смогут распределиться 500 300 100 100.
В реальной задаче, если что, порядок n - сотни, порядок m - миллионы. Но, конечно, можно показывать принцип и на малых размерах данных.
> чуть чаще чем никогда
Ты ебанат? Теорвер работает на бесконечности, ты же привел конкретный случай, с вероятностями и что они в сумме равны 1. Тоесть в каждой карзине будет пропорционально её вероятности. Пиздец, иди на хуй. Сами пиши.
Пожалуйста, не рвись, если тебе не нравятся условия задачи. Подкинь монету тысячу раз. Сколько выпадет орлов? 500 - это лишь мат.ожидание. В реальности, каждый новый эксперимент даст разный результат. Среднее значение по результатам будет стремиться к 500 при количестве экспериментов, стремящемся к бесконечности.
Задача смоделировать результат такого одинарного эксперимента, а не просто умножить 1000 на 0.5. Поверь, это несложно.
И я, нуб, тоже решил попробовать!
Ввели n, ввели для каждого n свою p.
И я для каждой корзинки считаю сумму вероятностей p от первой корзинки до этой корзинки. Для первой корзинки, например, эта сумма равна вероятности для этой корзинки. Для последней корзинки, очевидно, сумма равна единице.
Дальше рандомлю (худо-бедно средствами ANSI C) дробь от нуля до одного.
И прокручиваю найденные суммы, пока одна не превысит мою рандом-дробь.
https://ideone.com/bD6WTp
Мой убогий вывод пикрил.
жду от тебя треда с разработкой игры.
> Не подходит для больших m
Насколько больших?
> Нужно амортизированное O(n)
Не понимаю. Чем его амортизировать, из каких соображений?
Пусть.
> порядок n - сотни, порядок m - миллионы.
n=400, p=const=0.0025, m=4000000
Чем вывод пикрил плох?
отдельный докер у него для логов, сессия у него 50 мб, что дальше, кто-то здесь верит в играбельность того что делает оп и в правильности вектора его потуг?
Полемика выше да и вообще связана с использованием vue.js вместо православного реакта. Сам его не использовал, но выглядит он компактней реакта.
inb4 хипстерское говно
Что ты ожидал от лейнофага?
>игра не про графон
>игра не про идеальную архитектуру
>игра не про производительность
>РЯЯЯЯЯЯЯЯ
Забей. Тебя сейчас обосрут сектанты-бездельники, для которых сфера без графона с гексами за 120 дней, это пиздец достижение.
Но ты же лучше не можешь, поэтому нам не с чем сравнить и трудно сделать выводы про производительность. Создай темку, сделай игру, мы порадуемся.
> Не понимаю.
Про оценку трудоемкости алгоритмов даже не знаю какой линк давать. Полхабра про это.
Про амортизированную оценку: https://en.wikipedia.org/wiki/Amortized_analysis#Examples
> Чем вывод пикрил плох?
Если он на >>384419
этих исходниках, то плох тем, что время на решение задачи линейно (как минимум) возрастает с ростом m. Можно привести аналогию с временем выбора элемента из массива и из связного списка. Каким бы ни был большим твой массив, ты всегда сможешь обратиться к i-му элемент за константное время. Напротив, из списка чтобы выбрать некий случайный элемент, потребуется в среднем size/2 операций.
>>384541
Не нужно спорить, он просто хочет побыть мудаком в интернете, это его неотъемлемое право.
Читать лень.
Докажи что эту задачу можно решить линейно с O(1) памяти без кэширования или предварительной обработки. Доступ к вероятности ты не сделаешь быстрее, чем за O(nlogn), а это кеширование и требует O(N) если нужно будет обновить. И растет с входными данными. И да, у этой задачи нет способа получить индекс корзины за О(1) по результату (float)rand()/(rand)RAND_MAX. Если данные статистические, число корзин не меняется, а меняется только вероятность то да. Иначе нет.
Я дам подсказку:
Чтобы узнать результат подкидывания тысячи монеток, необязательно тысячу раз вызывать random. Результаты экспериментов подчиняются гауссову распределению. Достаточно один раз получить гауссово-распределенную случайную величину (например через Box-Muller transform), и оперирируя вычисленным мат.ожиданием и стандартным отклонением получить результат. За тысячу бросков или за миллион - без разницы. Там есть один НЮАНС для малых количеств бросков, но не буду в это углубляться
Ну ок. Но, я так понял, раз подкидываний n, то сумма со всех корзин равна ровно n.
Оценки со стороны ваших теорий веорятности дадут числа double, которые я потом округлю.
А для последней корзинки что, складывать все эти округлённые числа и вычитать их из общего числа бросков? Может быть шляпа при малом n.
Всё верно, поэтому желательно, чтобы последняя корзинка была бы с самой большой вероятностью попадания, тогда факап отрицательного числа попаданий минимален. Ну и если он всё же наступил, то повторяем заново. Вероятность получить больше чем 3-4 факапа подряд меньше, чем удариться об молнию. Отсюда и амортизированное O(n).
в основном ruby и js
179 дней 6 минут
Сегодня начал решать интересную задачу. Суть такова:
Сейчас определение цветов тайлов происходит на клиенте, исходя из средних значений, полученных во время генерации карты. Фактически же, цвета с каждым ходом меняются - где-то снегом заваливает, где-то леса повырубали нахрен. Но чтобы точно знать, в какие цвета какой тайл покрасить, нужно иметь под рукой всё состояние текущего хода.
Теоретически слепок может занимать до 10 Мб, и, естественно, такие объемы на клиент пересылать будет неэффективно. И я решил, что можно будет формировать массивы цветов на сервере (по массиву на каждый из режимов отображения), и отдавать на клиент по запросу.
На среднего размера карте около 9к тайлов.
На самой гигантской - 25к тайлов.
Можно передавать только RGB составляющие, притом в бинарной строке, тогда достаточно всего 3 байт на тайл, то есть ~27 Кб за ход на один режим отображения на средней карте.
К среде планирую добить реализацию и на фронте, и на бэке.
сука ебать какой же оп даун, рельсомакака даже не слышала про вмц судя поего постам. я только сейчас понял что сессией он называет весь внутренний стейт и пытается его пересылать на клиента. ну скажите блять ну вот в какой игре пакет данных займет 10 мегабайт, даже если это обновление ВСЕГО БЛЯТЬ МИРА ВСЕЙ КАРТЫ НАХУЙ. ну только подумайте, в какой? включите мозги и раздуплитесь уже какой зеленый неадекват оп и что он здесь проповедует.>>384819
69584
бомбит когда кто-то кроме меня атеншит с умным видом из чепухи
да он как бы сразу и написал, что в геймдеве он нуль и пытается вкатиться. Ничего, наделает ошибок, какие-то исправит, какие-то нет, он хоть что-то пытается сделать. Иначе ведь опыт и знания не получишь.
Видимо, я недостаточно подробно расписал передачу за данных между сервером и клиентом, отсюда у некоторых возникают разные нездоровые фантазии.
Факты:
- Сейчас, слепок игровой сессии весит 1.1 Мб
- Это вес JSONa. Избычность значительная - в gz виде он весит в 4 раза меньше.
- Если понадобится резко сократить объемы передачи - будет идти в сжатом виде (берегу это способ как оружие судного дня)
- Большая часть данных внутри - числа с плавающей точкой и символьные ссылки между объектами
- Средний размер конечно будет расти, т.к. не запилено и половины от задуманного: ожидаемый финальный размер - 5 Мб, предельный - 10 Мб
- Клиент уже давно (в первые месяцы разработки загружал, но не сейчас) НЕ загружает слепок сессии целиком. Когда приходит оповещение о начале хода, идет запрос основных данных сессии, сейчас это около 3 Кб.
- В процессе хода, клиент, по действию игрока, может запрашивать дополнительные данные, если хочет получить более подробную информацию по игровому объекту. Запросы данных объемом от 1 до 4 Кб сейчас.
- Игроку скорей всего не понадобится более 30 таких кусков данных за ход, так как прочитать и переварить он их всё равно не сможет.
- Отдельной статьей затрат трафика является передача визуального состояния мира - 48 Кб для большой карты. Предположительно, игрок переключается между 2-4 режимами визуального отображения состояния.
- Сумма средних значений трафика по всем статьям - 200 Кб за ход, на одного клиента.
- Ход длится от 5 до 10 минут.
- Итого, около 1.2 - 2.5 Мб/час на клиента.
Конечно, в каких-нибудь онлайн шутерах расходы трафика могут быть в 10 раз ниже. Но тут игра другая.
И да, я не вкатывался сюда как гуру игростроя, так что замечания приветствуются.
пошли отрицания велосипедодебила
причем тут проект? В JS давно есть поддержка бинарных данных
А ты трендовый пацанчик?
Вот тебе трендовый протобуфчик
https://github.com/google/protobuf/tree/master/js
Когда я выбирал, каким будет протокол обмена между сервером и клиентом, то остановился на JSON по ряду банальных причин, почему его выбирают: простота чтения человеком, простота написания человеком, повсеместная распространненость. Последнее - важный пункт, так как я собираюсь оставить открытое и документированное API, если вдруг что немаловероятно мой клиент кого-то не устроит, и будет желание написать свой. Или запилить клиент под мобилки, или еще подо что.
Про протобаф гугловый думал в первую очередь. Бинарные протоколы эффективнее в плане быстродействия, спору нет. Но пока это не станет бутылочным горлышком, с JSON уходить не планирую.
Але, msgpack, при чем тут протобаф.
Протобаф та еще задница. А msgpack кодер/декодер одной строкой на всех известных языках. Посмотри хоть офсайт.
>простота чтения человеком, простота написания человеком
>обмена между сервером и клиентом
ок.
>повсеместная распространненость
>Можно передавать только RGB составляющие, притом в бинарной строке
ок.
Оп, ты шизик.
>Можно передавать только RGB составляющие, притом в бинарной строке
Всего лишь срезаю углы там, где это слишком очевидно.
Одно дело, во время активной фазы разработки, организовывать передачу игрового объекта, у которого сегодня одни поля, завтра передумал, и уже другие, и их иерархия меняется постоянно. Передача его в JSON - это минимализация затрат в разработке. Его легко прочитать в консоли браузера. Его даже можно написать самому в той же консоли в упрощенной форме.
И другое дело знать, что тебе нужно передать ровно N*3 байт данных, где N известно достаточно рано, и структура этой посылки меняться не будет с большой вероятностью.
Посмотрел MsgPack, выглядит неплохо. Правда, результаты бенчмарка из первой строчки гугла не особо впечатлили: https://maxondev.com/serialization-performance-comparison-c-net-formats-frameworks-xmldatacontractserializer-xmlserializer-binaryformatter-json-newtonsoft-servicestack-text/
Кое в чем даже медленнее. Отчет 14 года, мб есть поновее.
Поднадоело, сменил пластинку.
177 дней 1 час 11 минут
За последние дни прорывов особых нет. Доделал задуманный механизм передачи визуального состояния карты. Пикрелейтед более няшная и подробная температурная карта на протяжении года.
Откуда брал информацию про генерацию миров? Карта высот, климат и пр. Можешь что то посоветовать?
хейтер
Если ты не макака, то у тебя:
1. Вебсокеты ксорятся по маске.
2. SSL.
3. Нормальные логи.
4. Транспорт отлажен отдельно.
Вообще я доебался после того как оп начал городить свой кастомный бинарный протокол, а еще ктото тут пиздел что json 1-2 байта на символ и типа в вебе никак по другому.
Так хоть пусть SQL передает, какая разница.
>так как я собираюсь оставить открытое и документированное API
Ну и сделала бы REST, один хуй тебе от сервера в течении хода ничего неожиданного не придет.
Не знаю, зачем я это пишу, тем более что ты уже все разжевал и у тебя лучше, но вот http://pastebin.com/8XcP1WvL
ОП ведь не поставил себе критериев что именно считать "игрой".
Один мой знакомый (который раньше тоже сидел здесь) уже года 2 делает одну подобную браузерку и до сих пор её нельзя игрой полноценной назвать.
http://lawlife.kz/ - ссылка на тот самый проект.
ОП, ты просто погляди насколько сырым получился проект у человека который на полном серьёзе каждый вечер делал его в течении двух лет.
За 10 месяцев у тебя выйдет в лучшем случае очень сырое говно, игрой которое будешь считать только ты сам. Это и так видно по динамике твоей работы.
обосрался. так все и будет
ты со своей игрой, как и лейн, пережиток прошлого. рудимент ушедшей эпохи. сейчас популярны другие герои и другие игры. ты никому не нужен. смирись.
мимоанон
Яснопонятно. Ну тогда посыплю голову пеплом, и пойду смотреть в рот тем кто сейчас популярен нет
176 дней 2 часа 25 минут
Сегодня решал интересную задачу. Цикличное изменение температур на протяжении ходов, вызывает рост и уменьшение полярных ледников. А по льду то в игре можно передвигаться. С точки зрения топологии это несложно, но есть визуальная составляющая - льды имеют ненулевую высоту, в отличии от остальной воды.
До этого применение карты высот применялось на карту только в момент генерации, теперь это происходит при смене хода. Льды послушно вздыбаются, когда их температура падает ниже нуля. Карта высот теперь передается с сервера - это задел на будущее, так как вполне вероятно, что определенные события nuclear launch detected могут изменять карту высот на постоянной основе.
На пиках кислотные цвета континентов - это последствия экспериментов с реалтайм картой.
оп, ты уже экватор а до сих пор про геймплей ниясно нихуя. ты понимаешь что все фантазии это лишь галюцинации и делать надо на пробах и ошибках познавая в сравнении и собирая фидбек. когда можно будет твой шар-то покрутить мышкой вб раузере, а? я уже свой трижс проект доделал и релизить на 8-е марта собираюсь. а ты все за какие-то карты высот трешь, ты хоть понимаешь что у тебя пока игра для одного игрока а не онлаен? давай уже пробовать ИГРАТЬ в твое говно, ну ебаный ты в рот пидор
Ну может не ежедневно, но довольно часто после работы чувак правда пилил эту игру. И вот уже два года пилит, там даже на форуме логи разработки где то есть. И посмотри на его итог.
И раз уж она выглядит плоховато, то твоя будет выглядеть просто как говно.
Подождём сентября и сравним.
проблема даже не в этом, а в том, что мультиплеер-игоры это сириус-бизнес. никто не захочет тратить время на твое говно. а без онлайна твоя игра тем более никому не нужна.
посмотри на пример утерменшей с этой борды с их рогалиями и brain out которые никому не нужны.
даже мастодонты индустрии с ААА-хитами загинаются в онлайне. куда просто кириллу с его БРАУЗЕРКОЙ воняющей бабушкиной кофтой лезть
Смотри, у тебя есть срок - 8 марта, ты его придерживаешься. И у меня есть срок, и я его придерживаюсь. Более того, повторюсь - с начала треда, я уже всё перерешал, и сентябрь - это лишь дата фазы открытого альфа-тестирования. Разработка будет продолжаться.
Вкинь потом ссыль на свой проЭкт, обещаю, глумиться не буду.
>>385924
И тем не менее, примеры ммо, которые начинались как соло проект - есть. Последнее, про что недавно слушал в подкасте: https://vk.com/app1836115_1234
>твоя будет выглядеть просто как говно.
ОПу просто надо обмазаться модными цветастыми лоуполи.
Серьёзно, ОП, советую тебе глянуть как подбираются палитры и на то, как выглядят лоуполи.
>>385759
Это может лучше выглядеть раза в 2 просто если правильно подобрать эти 4-5 цветов. Ну, я думаю у тебя в ТУ-ДУ где-то в конце есть комменты по поводу внешнего вида.
>brain out
>никому не нужны
Кек. Думаю там сейчас онлайна человек 500, если не больше, её даже на в /b/ рекламили.
Можешь посоветовать определенные гайды?
Согласен, текущие палитры и модели никуда не годятся. Я пока не определил бюджет, но план сделать заказ нормального 2D и 3D ближе к релизу, у меня был с самого начала. Сейчас визуально я оперирую dummy и stub'ами.
Это кстати распространенная проблема, когда показывают скриншоты с определенной концепцией, а внимание зрителей отвлекают совершенно иные вещи, к доработке которых даже не подступали.
Насколько я знаю, для этого в Valve введен термин "orange maps", когда демонстрируют ранний этап работы над левел-дизайном
> никому не нужны
> 1 - рогалия, 2 - брейн аут
Как там в манямирке? Рогалия по мне вообще самый комерчески успешный велосипед игра на доске
Не, я сам не дизайнер и не художник, особо не разбираюсь, сам всё гуглением навроде Gamedev color palette находил. Вот это например, там даже некоторое правило формализовано.
https://gamedevelopment.tutsplus.com/articles/picking-a-color-palette-for-your-games-artwork--gamedev-1174
Спасибо, изучу.
Мда, устроили из моего уютного бложика какое-то место для дискуссий. Я скоро буду успевать только читать и писать здесь, вместо того чтоб проЭкт пилить.
Итак, выходные. Впереди 2.5 недопиленных таска. Сегодня надо выложиться на полную.
платная да, даже демки шаровой нет, а ты думал хах. жуй сопли маня, пока реальные пацаны подымают.
пока демку не вытащишь в которую потыкать можно, даже не заходи сюда, понял? иначе завайпаем тебя нахер, бложик свой иди в ЖЖ вести, уебок.
Как, КАК ты сделал генерацию регионов, которые выстраиваются в единые континенты? Ещё и всякие полуострова красиво выступают и обозначены отдельно. Можешь спалить алгоритм?
>>386363-кун
лол обычный перлин с фильтром. тут есть примеры http://www.redblobgames.com/maps/terrain-from-noise/
>>386367
судя по тому что ты даже не осилил гугление, боюсь что твоя игра дальше планирования не продвинется
Выше по треду была ссылка на хорошую статью по генерации планеты, с учетом движения литосферных плит и всего такого.
Мой алгоритм группирования гексов в регионы крайне туп и прямолинеен. Я давно запланировал его основательно доработать, но сейчас это не первостепенная задача.
Отдельных обрабатываются водные и земные тайлы. Ставится набор рандомных точек, из них в случайные стороны расширяются границы региона, до определенного предела. Обычно предел не дает за одну итерацию покрыть всю карту, поэтому повторяется этап простановки набора точек. Размер набора высчитывается исходя из среднего планируемого размера регионов и количества свободных гексов.
>СМАТРИТЕ МНЕ ПОХУЙ НА ВАС ВСЕХ. Я ДАЖЕ НЕ ЧИТАЮ /GD/, А ПРИХОЖУ ТОЛЬКО ПОВНИМАНИЕБЛЯДСТВОВАТЬ В СВОЙ ТРЕДИК
потому что ты так сказал? перенеси карту на гексы. добавь минимальный размер региона. и просто добавляй регионы заливкой пока свободная область делится как минимум на 2 региона. все. главное поткивать параметры генератора
потвикать. алсо, никто не запрещает использовать карту сгенерированную перлином только как базу, и допиливать ее каким-то своим алгоритмом.
в любом случае лучше генерацию ты не сделаешь
Но нет, в 95% получается вырвиглаз, особенно учитывая что все параметры кроме Elevation активно меняются в течение года.
Удалил 2/3 кода, оставил 6 основных вариантов раскраски.
Закрою этот вопрос для себя на длительное время.
Оставить несколько цветов, которые соответствуют диапазонам. Всматриваться в соседний тайл, который на 1% светлее не особо информативно anyway.
С цветами конечно пиздец, но мне кажется основную роль тут играют детали на земле, фильтры и эффекты.
Посмотри как выглядит пустой мир в циве http://www.firaxis.com/?/blog/single/procedural-terrain-generation-in-sid-meiers-civilization-v , почти так же уебищно как твой. Но с добавлением разных слоев местности в сумме это дало ламповую картинку. Или вот, на пикчах у планеты такие же ядовитые цвета, но они разбавлены тенями, эффектами, большим количеством деталей, как объектов, так и самой текстурой.
Лол, как настало время "программировать", так сразу под стол.
ОП, советую тебе генерировать нормальную лоу-поли няшную планету, а тайлы рисовать оверлеем. Твои тайлы в любом случае буду выглядеть вырвиглазно
> Проблема деталей и прочего мяса одна - WebGL
Ахахаха, веб макака порвалась.
http://codeflow.org/webgl/craftscape/
Будешь отрицать, что в для 3D движка обсчитывать такую фигню проще, чем просто десяток лоуполи-мешей?
У меня от этого браузер завис.
>unity
Ок.
173 дня 3 часа 43 минуты
56 files changed, 1518 insertions(+), 277 deletions(-)
Dev-9 выкачен. Неделя прошла под девизом "Миша всё хуйня, давай по-новой". Кажется, у меня передоз фронтенда. Зато практически все данные от сервера приходят по запросу, а не скопом. Кое-где внедрил Vue. Понравились его фильтры.
От бинарных протоколов передачи никуда не деться, если не хочу оверхед трафика в 5-10 раз.
Следующая неделя - Dev-10, а, напомню каждая 10я неделя особая, она проходит без внедрения новых фич и тратится на раздачу тех.долгов (на укрепление костылей бэкенда). В том числе на рефакторинг. И на подробное дальнейшее планирование.
Можете возражать, мне похер. Устал, пойду отдохну
>Ок.
если даже unity > html5 сцена уровня консолей предыдущего поколения летает, то на чистом оптимизированном webgl вообще все летать должно. разница между opengl и webgl минимальна
>Dev-9 выкачен.
Ох уж этот манямирок. Выкачен тебе в анус если что.
Пиздеть всякий горазд. Покажи что ты там сделал
Не, серьёзно. А где твоя игра? В разделе 3-4 бложика, ещё пару человек периодически постят в субшоте. Ещё брейн-аут тред. Судя по всему на доске около 8 человек делают игры. Ну ещё 3 семёна вроде тебя, который вообще хуй знает чем занимаются. Семёны, потому что постят одно и тоже и легко ботами заменяются.
Иди вон в /b/ посиди, дурачок, хули ты в тематике делаешь.
я еще пол треда назад про демку ему говорил, он аутист, ребят
>разница между opengl и webgl минимальна
Есть замеры производительности?
WebGL базируется на OpenGL Embedded Systems - урезанную версию, как я понимаю. Плюс оверхед браузеров ощутимый.
Ответственно заявляю, демки не будет еще долгое время, смиритесь. Мне лень ради парочки хейтеров покупать vpsки с белыми ойпи и выкатываться туда. Всему своё время.
itch.io это не vps
Увы, ОП, но это значит что ты обосрался.
Начинай всё с начала на другом движке.
Потому что иначе у тебя выйдет не клон цивы, а недетализированное разноцветное говно.
Нет, у него вебсокеты.
Посмотрел оптимизацию three.js? Ты же на нём делаешь, наверняка проблема в этом.
оп просто конченая макака, у три есть демки с миллионами полигонов, а у него кругляш с двумя домиками ФПС просадил, хули с ним разговаривать, пусть дальше бульйонится в своей моче
оп а ты не слышал про динднс разные? дауненок, ты же можешь любой тулзой свой локалхост во внешку засветить, хоть тем же pagekite, да 5 соединений но ничего, тут не больше 5 желающих наберется. я повторюсь, ты живешь в манямире и строишь проект на своих догадках и в пределах локалхоста. ты не понимаешь что нужно собирать фидбек и данные замеров, что твой проект просто не заработает. надо изначально это делать, с пустой сцены и далее наразивая мощности. а не наклепав кучу дерьа И ТОЛЬКО ПОТОМ ПОПРОБОВАВ В ПРОДАКШЕН. нерперывная интеграция, лучшие практики. ведешь редмайн, время хуй пойми на что тратишь а такой мелочи не понимаешь (скорее не хочегшь ибо сам знаешь что обосрамс).
да и в тех же ДО оплата только вконце месяца, регнуть виртуалку, поюзать и дропнуть не уплатив ничего не мешает, просто впиши карту без баланса и забей, сами удалят потом.
>подметил, что люди говно
wat?
>>386895
Вполне вероятно, что я допустил определенные нубские ошибки при работе с 3D, поэтому ФПС просел.
Что фактически делается в той сессии:
http://www.blendswap.com/blends/view/56205 вот эту модельку я конвертнул из бленда в dae формат, загрузил в виде Scene в Three.js и приатачил её клон овер 500 раз, к разным кускам карты, по количеству регионов. Я делал это просто чтобы проверить, что наложение моделек работает. Наверное это можно все оптимизнуть.
Сама планета в среднего размера сессии состоит из 190к фейсов и вертится плавно даже на видеокарточке в планшете за 300$~
сцена должна быть одна, когда грузишь сцену из модели (сам так делаю ибо остальное почти что не работает) выдерай из загруженой сцены модели и вставляй с свою, перегрузи метод клонирования мешей (он наследуется от объекта и не знает про материалы и геометрию)
почитай про вбо буфферные объекты в гл, используй везде одну геометрию и одни материалы
очевидно модель дома слишком высокополигональна, убери полигоны ре(забыл модификатор, гугли короче
впредь дляд инамики выбирай низкополигональные модели
используй three json формат, поставь экспортер в блендер
ну что еще из очевидного - реже текстуры переключать, перевести все в лоуполи как уже было сказано и контролировать ко-во вершин и полигонов на сцене, подобрать среднее приемлемое для твоего проекта на ориентируемом железе.
в браузере должно работать все то же что и на десктопе, приставка веб- никакого отношения к тормознустости не имеет, а на телефонах даже быстрее мелкомягких нетбуков на интел графоние бегает, базарю, сам пилю на трижс под ифоны
>>387153
>>387167
Пасиб, буду иметь ввиду.
171 день 3 часа 29 минут, Dev-10 (раздача тех.долгов)
Последние два дня ковыряю БД, добавил новую таблицу, с историей ходов сессии, перераспределил часть данных с других таблиц на неё.
Зря сегодня выпил шампанского на работе, в последнее время после него голова мутная. Работа продвигается вяло и неторопливо, похоже на дно биоцикла.
>2017
>давать советы по оптимизации webgl на дваче
21 files changed, 160 insertions(+), 238 deletions(-)
Работа идет лениво, но есть некоторые продвижения: добавил функцию периодической очистки данных о прошедших ходах. Продолжил группирование функций по работе с БД в едином модуле-прослойке, удалял старый код, дописывал тесты.
Настроение по-прежнему не особо рабочее. Завтра еще на работу, пздц.
дай угадаю, это абстракция над абстрактной абстракцией над абстрактным драйвером АКТИВ РЕКОРД?
Не, это скорее фасад, скрывающий нюансы работы с БД, и дающий простой API для остального кода. Не в объектном стиле ActiveRecord-а.
Сегодня битый час тупил над функцией, которая должна проводить UPDATE и роллбэчить транзакцию, если после UPDATE значение поля выходит за определенный диапазон. Пытался сначала сделать без PL/SQL, но обломался.
Притом, в самом PL/pgSQL тоже нельзя явно управлять коммитом\роллбэком, но можно сделать роллбэк неявно через BEGIN ... EXCEPTION
пиши просто НИАСИЛИЛ, хватит врайтофажить, мы уже поняли что ты ебаный писофил
Игра где, блять! Мне похуй на твои БД! Иди ебись с вычислительной геометрией, линейной алгеброй и шейдерами. Мне похуй на твой сервер. Я и сам могу побегать от умных ИИ с машинным обучением и дикой вариативностью. Если это у тебя есть, конечно же.
Вечером пятницы перезагрузился пивом и умеренным социоблядством.
Настроение отличное, полон сил добить Dev-10. Особенно, под натужные вопли хейтера.
Вчера был длиннющий день. Но результатами доволен. Капитально реструктуризовал сериализованный вид сессии, благодаря чему из клиента стало возможно обращаться к любому объекту отдельно rest-подобным запросом.
Сегодня осталось добить не так много. Вечером будет большой отчет по Dev-10.
Наверное, эту неделю я работал больше чем когда-либо в жизни. Ранее у меня возникали сомнения, могу ли я тратить целую неделю на устранение косяков и укрепление костылей. Сейчас я понимаю, насколько это было необходимо разросшемуся проекту. Обязательно повторю это в Dev-20. Итак:
- Полностью удалено 3 устаревших модуля, остаток функционала распределен по оставшимся
- Расширил схему таблиц, добавил снепшоты сессий
- Поправил накопившиеся косяки по неймспейсам и структуре проекта
- Избавился от костылей, которые давали потенциальную возможность работать многопоточно (парадигма теперь - мульти-процессность)
- Увеличил покрытие кода тестами
- Сделал громадный прыжок в сторону асинхронной подгрузки сессии, rest-подобным запросами с id ентитей.
- Выкинул много старого ui-кода, заменяя Vue-шными VMками. Вообще, постепенно в мешанине фронтендо-кода начинает проступать более-менее стройная структура.
Есть и то, что запланировал, но тупо не успел. На очереди стояло профилирование фронтенд-кода, отвечающего за ТОРИДЭ, так как там много неоптимизированного кода.
Ладно, Dev-10 позади. За это и выпить неплохо.
меньше полугода.
135 дней позади, и 165 дней до открытой альфы впереди.
Геймплей пока не завезли пошаговая стратегия.
>>389068
Держусь, полет нормальный пока.
Сегодня прям эталонные "Трудовыебудни: Начало". Под вечер еле поковырял задачу добавления нового миксина (в рубях это такие модули, чтобы запиливать подобие множественного наследования) - Actable. Думал он будет просто сигнатурным, но мысль поперла, и пошел метакодинг, рефлексия... Всё, чтобы сделать операцию обсчета хода более декларативно программируемой. Хз, удастся ли, и будет ли удобней, но раз начал, значит завтра добью.
Когда будет открытая альфа, очевидно же.
Вот не знаю, расчет боев и интерфейс отображения результатов пока даже не в планах. Думаю недель через 5-6 возьмусь за это. Сейчас еще больше фундаментальных механик не сделано.
У меня FIAL, анон. Лежу дома, болею, простужен. Здоровье в этом году чет по-пизде пошло. Возможно, всё из-за стресса. Думаю раньше субботы нормально работать не смогу толком. Наверное Dev-11 будет проебан по срокам.
наконец-то лузоп заткнулся осознав провальность своей затеи, дев 666 блять, так теперь называется выполнение говноскрипта н601046а локалхосте
Да, ОП очевидно не все делает как надо, где-то тупит и пилит велосипеды. Но он же учится. Учится, делает ошибки, застревает, но не останавливается. Плюс ко всему этому он еще и пилит в свободное от работы время, а не полную рабочую неделю за зарплату.
Наверное, какой-нибудь про уже написал бы все что задумал ОП, и даже начал зарабатывать на этом деньги. Вот только что-то мне подсказывает что это не те диванные Кириллы, которые приходят сюда посрать забавы ради.
Я прекрасно понимаю ОПа, сам уже больше полугода разрабатываю игру, тоже занимаюсь этим в свободное время, тоже испытываю спады и подъемы мотивации. Делаю косяки, перепиливаю кое-что, поднимаю свои скилы, но за счет всего этого двигаюсь очень медленно. Но ведь двигаюсь! И это охуенное чувство. Гораздо лучше чем посрать в тредике, атвичаю.
>>391336
То, что хейтеры пишут в большей степени характеризует их самих, чем объект обсуждения. Человек так неосознанно обнажает свой внутренний мир. Милoнов как пример.
>>391341
Главным образом, http://macode.ru/
Но цели, планы, отчеты тоже себе неплохие вспомогательные средства.
158 дней 4 часа 21 минута
Сегодня наскреб весь код, сделанный на прошлой неделе, обложил тестами и запустил на тестовом серваке. Тройка багфиксов + рефакторинг - лучше чем ничего.
Сегодня вечером займусь интересной задачей из Dev-12: миксинг этносов. Представим, у нас есть N различных этносов, разной численности. Всего комбинаций миксинга N(N-1)/2. Итого после миксинга у нас до N+N(N-1)/2 этносов. Узнать численность каждой группы. Тут пригодится алгоритм распределения шаров по корзинкам.
Нет, это "нормальная" девушка, а не выдуманный пиздолисами хуймемчик
А где МЕХАНИКА, где ГЕЙМПЛЕЙ? Не, это хуйня, опчик. Симулировать миксинги и теребить алгоритмы можно годами, но ты не жаба, тебе за это не донатят да и в дф геймплея достаточно Попробуй лучше игру делать.
Ладно, так уж и быть, заведу сейчас в Dev-16 таск "Добавить геймплей". Часа 2 хватит? Не, лучше 3.
Сегодня за каким-то хером взял кофе в ларьке у метро. Через час меня скрутило, и подмучивает еще до сих пор. Но задачу я успел потыкать. Сегодня вряд ли доделаю, но понадкусываю хотя б.
сука как меня уже доебал этот щенок, от кофе его скрутило, больной он в кроватке лежит, поди мамка ему еще и супчик подогревает и из ложечки кормит сисей
Спохука, пагни, я продолжаю. Болел долго.
Не буду здесь некоторое время писать, сосредоточусь на том чтобы писать именно код.
ОП, не будь хуем, пиши уже что нибудь.
>Прошло уже больше часа
>Cтановится скучновато
В основном писал именно код, поэтому показывать пока особо нечего. Но может через пару недель когда код доделаю, начну вам скрины присылать. Или не начну. Может забить на это всё?
кек, вот и подражатели подтянулись
ОП тут, болел , скоро буду
Кст метка ОПа действительно проепалась
Настоящий ОП в треде.
Те двое были просто мимиками.
На самом деле я не болел и не был занят - просто лень матушка накатила. Но вы не волнуйтесь, мотивация вернулась и уже очень скоро я порадую вас новыми скриншотами.
Кстати, где моя метка ОПа?
Я настоящий ОП, вы че тут развели?
Те трое просто троллят, не ведитесь
На самом деле я не болел и не был занят, и мне не лень. Просто в запой ушел.
Не волнуйтесь, я уже работаю над проектом, голова уже почти не болит после вчерашнего
А метку я и правда проебал
ОП осознал, что за полгода каждодневного въебывания сделал только крутящийся шар с гексами в никому ненужном вебе, и умер со стыда.
ну вообще странная логика, игры делаются годами, даже когда есть команда, а уж в одно сопло запилить не флэппи бёрд - это не так уж просто.
Тут, конечно, вопрос в мотивации, но именно по этой причине пилить какое-то говно ради запила даже пару за месяцев подряд может заебать раньше дэдлайна.
Был в командировке в Индии, поэтому проект временно заморозился. Планирую продолжить репортинг ин в обычном режиме после праздников, к тому же, я продумал как исправить все мои прошлые проблемы и придумал новые фичи. Так что дела пойдут намного быстрее.
Играбельный билд все еще первостепенная цель, выкачу до конца мая 100%.
Ну что же ты, оп.
Нужно спасти лолю, пока дерево её совсем не заглотило!
>Это ВЫЛЕЗАТОРСТВА тред. Мне надоело стоять на месте и деградировать, поэтому я решил НАПИСАТЬ ИГРУ ЗА 300 ДНЕЙ.
>@
>Прошло 300 дней
>Обосрался и молча свалил обратно под шконку.
И ПОСЛУЖИТ СИЙ ТРЕД УРОКОМ!
Не вылезете вы никуда, ублюдки.
Распидор чмо.
ОП хуй?
jncjcb e nhfrnjhbcnf
Ну что, автор, как тот твой год прошел? Так мельком пролистал этот тред и ниче особо не увидел из результатов. Геймдев, как я понимаю, нагнул тебя раком, а не ты его?
Да.
Ну че, скоро игра будет готова, долго еще ждать?
Очевидно, что игра вышла настолько охуенной, что ОП решил наслаждаться ей в одиночестве, кайфуя от того факта, что никто кроме него на всей планете не сможет в это великолепие поиграть и это делает его сверхуникальным.
По тем же причинам я девственник и никогда не позволю никому прикоснуться к моему члену. Каждый сеанс фапа просто волшебен от осознания такой уникальности.
После тяжелой и продолжительной болезни, на 158 дню, скончался Антон Игроделович ОП. Пусть земля тебе будет пухом.
> 01/11/16
> 300 дней
кекус пукус залупукус
Сууука ору с того какие красноглазики тууупые. Буду 3 года писать индуский текст и в итоге не получу нихуя.
В то время как умные аноны клепают игори в гейммейкере и рпиджи мейкере за месяц и поднимают килотонны бабла в стимах.
>умные аноны клепают игори в гейммейкере и рпиджи мейкере за месяц и поднимают килотонны бабла в стимах
Там надо уметь в рисование. На ворованных пикчах много не заработаешь.
Со дня на день будет, уже почти все готово!
проиграл
Когда нибудь я тоже сделаю игру.
Анон, я как бы говно клиппер и планирую выпускать 3d клипы по заказанным вселенным, можно в этом разделе вести дневник предстоящего 3д гавноклиппера?
Работаю не покладая рук!
Забил на все спустя 3 месяца как и 99.999% вылезаторов
Если я продолжу путь лэйнафага, могу ли я захватить тред и сделать из него свой бложик? Есть идеи и фантазии на этот счёт, что думаете /gd/?
Да нахуй ты нужен, такой же пиздаболишко как оп, только еще хуже, потому что даже свой тред не хочешь, лишь бы к другому примазаться, ничтожество.
Ну тащемт почему бы и нет, на самом деле. Только сроки поставь поменьше и беты выкатывай почаще (хотя бы одну выкати бжлядь)
бамп утренний за чашкой кофе
>Про 300 дней я не пошутил - это жесткий дедлайн, если проебусь - значит я хуй простой
ОП ХУЙ ПРОСТОЙ! НАСМЕХАЙТЕСЬ НАД НИМ!
Нужно еще немножко подождать.
Бек хорошее аниме
Обожаю и ненавижу этот тред одновременно
Такая-то атмосфера безысходности и несправедливости жизни
Очевидно просто забил. Не хватало времени, может сил, желания
Может просто понял что это не его и нашел себя в жизни, а может и не нашел и пьет нейролептики от депрессии
Этот тред напоминание нам о том как важно правильно расставлять приоритеты в жизни и самое главное не врать хотя бы самому себе
Жаль, такой уютный был тредик.
Долго еще отдыхать будет блять? ану быро за работу
Устроился на работу геймдевелопером. Занимается любимым делом и получает за это деньги. Живёт припеваючи.
Ставлю своё очко что он в отличии от тебя добился успеха, не зря же тредик вёл.
Тот кто чего-то хочет добиться не создает аутотренинговые треды на дваче да и он бы точно пришел повыебываться хоть малейшим успехом на зло всем, как видишь этого не произошло
Конечно, добился. У меня уже пять игр в стиме.
Это копия, сохраненная 22 сентября 2020 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.