Nikolay
Факторио у меня на первых порах вела к бессонным ночам
Nikolay
Они просто задроты своего дела
Похоже на то, у них реально годный продукт во всех отношениях
Vagif
Я в последние недели играл главным образом в Ticket To Ride, за столом с детьми. Но дети навещают редко, захотелось играть во что-то еще.
Nikolay
Не лагает, есть моды, куча контента
Ayrat
Не лагает, есть моды, куча контента
Она не просто не лагает, там 500 человек в мультиплеере играет без проблем
Ayrat
Это же кошмар
Ayrat
И все чот строят
Nikolay
Играли вчетвером макс
Ayrat
Лол, такого не пробовал
На Ютубе есть примеры
Vagif
Там предлагается или Website key или Steam key. А есть разница?
Nikolay
У меня стимовский
Ayrat
Там предлагается или Website key или Steam key. А есть разница?
Веб-сайт без комиссии разрабам денюжку даёт
Ayrat
Игра между прочим топ2 в Стиме по оценке пользователей
Vagif
То есть предпочтительнее напрямую, понял.
Ayrat
99% положительных отзывов
Nikolay
@omgszer есть идеи как дождаться обработки всех сообщений мейлбоксами?
Ayrat
@omgszer есть идеи как дождаться обработки всех сообщений мейлбоксами?
Ну да, создавай их с TaskCompletionSource. На последнем сообщении заполняй его. Делаешь Task.WhenAll (tcsArray)
Nikolay
Ну так то можно и каждого опросить в конце
Nikolay
Дождаться ответа
Nikolay
Хотя, ты видимо это и имеешь ввиду
AlexxSt
@omgszer есть идеи как дождаться обработки всех сообщений мейлбоксами?
Отправляй нулы и в конце один TaskCompletionSource. Судя по тому, как добавляются данные в очередь - последнее сообщение последним и обработается. Нет смысла еще и бенчмарк миллиона TaskCompletionSorce делать.
Nikolay
async { let loop (inbox: MailboxProcessor<Message>) = async { while true do match! inbox.Receive() with | Unit -> () | Done tcs -> tcs.SetResult(()) } let agents = [| for _ in 1 .. x.CountAgents do MailboxProcessor.Start(loop) |] let random = Random(x.CountMessages) for _ in 1 .. x.CountMessages do let t = random.Next(0, x.CountAgents - 1) agents.[t].Post(Message.Unit) let tcs = [| for i in 0 .. x.CountAgents - 1 do let t = TaskCompletionSource() agents.[i].Post(Message.Done t) t.Task |] do! Task.WhenAll(tcs) |> Async.AwaitTask |> Async.Ignore } |> Async.StartAsTask
Nikolay
Норм?
Nikolay
Вот такой результат
AlexxSt
Мейлбокс конечно жирный...
Nikolay
Как поезд пассажирный
Nikolay
Пока вообще топ по памяти: Hopac Channel ValueTask
Nikolay
Чем выше, тем меньше)
AlexxSt
Как поезд пассажирный
Мемпрофайлером не тыкал, в чем трабл?
Nikolay
Рекурсия сожрала много
Nikolay
Мемпрофайлером не тыкал, в чем трабл?
Выше можешь чат почитать
Nikolay
Где-то после 12 дня
AlexxSt
Где-то после 12 дня
Ну там писали про асинки, но без подробностей
Nikolay
Там сами мейлбоксы жирные, вроде сжирали около 400мб на 100к
Nikolay
И 600 мб сжирала отправка 1кк сообщений
Vasiliy
@VagifAbilov Но аккуратнее с факторио, если затянет, будет тяжело. А когда узнаешь, что там еще можно программировать логику, вообще пиши пропало
Vasiliy
И там есть поезда!!!
Vasiliy
А - автоматизация же.
Vasiliy
Настраиваешь, например, что в точке А добывается руда только в тот момент, когда в точке Б она требуется.
Nikolay
Самый оптимальный по памяти код с рекурсией получился такой: let loop (inbox: MailboxProcessor<Message>) = let rec loop = async { match! inbox.Receive() with | Unit -> () | Done tcs -> tcs.SetResult(()) return! loop } loop
Ayrat
Ayrat
Например отключать станции где нет ресурсов чтобы туда поезда не катались
Vasiliy
но видел на ютубе, народ вообще "убивается" программаторы, видео экраны, игры и т.п.
Ayrat
Или умная погрузка
Ayrat
Или умная разгрузка
Nikolay
Максимум две станции было)
Vasiliy
О_о о_О
Ayrat
Или переключение помп на нефти чтобы не было оверфлоу жидкостей
Ayrat
Максимум две станции было)
Ох щи, щас я тебе свою покажу последнюю
Nikolay
Она как-то быстро проходится
Nikolay
Покажи
Nikolay
В факторио бесит, когда начинаешь заниматься увеличением производства из-за того, что где-то чего-то не хватает)
Nikolay
А оно можно до бесконечности делать
Vasiliy
млин, я удалил свои скрины(
Ayrat
планируешь всё заранее
Vladislav
А я не понял зачем оно нужно
Мне она вообще скучной показалась
Vasiliy
ну это для тех кто любит строить и планировать, и циферки считать, строить и перестраивать.
Vasiliy
там есть еще Сатисфактори сейчас.
Vasiliy
Тоже в целом очень стараются сделать классный симулятор фабрики
Hog
там есть еще Сатисфактори сейчас.
Это про бордели заместо фабрик?
Nikolay
3д для зумеров
Vasiliy
нет, там тоже Фабрики
Vasiliy
3д для зумеров
да ладно тебе. В сатисфактори тоже есть свой шарм.
Hog
Я посмотрел демку
Hog
Симсити на стероидах
Nikolay
А есть тут люди, которые не умирали от поезда?
Vasiliy
😂😂😂
Nikolay
Мде, почему рекурсия такая жручая
Nikolay
Ну 150 мб, как так то
Ayrat