LINUX.ORG.RU
ФорумTalks

Как правильно грабить корованы?

 ,


0

2

Рассматривая игру freeciv c караванами, можно заметить, что она написана на неправильном языке (си) и построена по неправильной архитектуре (люди и АИ ходят по очереди, это неправильно, должны ходить параллельно/одновременно).

Логично сделать вывод, что такая игра должна быть написана на языке, более подходящем для многопоточных вычислений (чтобы АИ думали параллельно). То есть на haskell.

Однако раздумывая над тем, как сделать графику, я не вижу там выгоды от многопоточности. То есть не вижу преимуществ haskell над Си. Значит они должны появиться в серверной части. Вобщем, объясните, чем haskell будет круче. Спасибо.

Перемещено hobbit из general

★★★★

Последнее исправление: Shushundr (всего исправлений: 5)
Ответ на: комментарий от slackwarrior

«Модель рандеву, предложенная Хоаром, реализует взаимодействие процессов “симметрично” (оба вступающих в общение партнера обрабатываются одинаково).»

Хоара не читал, но осуждаю. Нигде не видел ничего симметричного. Кто-то всегда слушает и центральный.

Shushundr ★★★★
() автор топика
Ответ на: комментарий от andytux

Вот-бы в шахматах ходили «параллельно/одновременно».

Есть такие шахматы.

crutch_master ★★★★★
()
Ответ на: комментарий от Shushundr

Многопоточность может просчитать реакции 99 стран мира на большой карте земли в N раз быстрее, чем это бы делал однопоток.

У тебя очень превратные представления о многопотоке, ты почему-то считаешь, что он бесплатный.

crutch_master ★★★★★
()
Ответ на: комментарий от Shushundr

Меня всё устраивает. По haskell я посмотрел три ролика на ютубе, про rust один, а про остальные ничего не знаю. Значит мой выбор верный.

Чёт в голосину.

crutch_master ★★★★★
()
Ответ на: комментарий от Shushundr

Кстати, параллельная игра будет на порядок сложнее последовательной. Ну, удачи тебе с твоими 3-мя роликами по хацкелю.

crutch_master ★★★★★
()
Ответ на: комментарий от Shushundr

Дело не в Хоаре, а в том что любой UI, в т.ч. гуй — ресурс, за доступ к которому потоки конкурируют и точка синхронизации возникает полюбэ, т.е. потоки один хрен построятся в очередь и результаты их работы придется мержить перед выводом в гуй.

slackwarrior ★★★★★
()
Ответ на: комментарий от Shushundr

В Age of Wonders(как минимум начиная со второй версии, про первую не помню) хотя и пошаговая стратегия, но это так работает как ты хочешь. То есть ИИ думает/ходит во время пока это делает игрок.

fsb4000 ★★★★★
()
Ответ на: комментарий от slackwarrior

И чо? Если каждый поток для своего слоя елозит по выделенному куску памяти, слоёв дохрена, а «точка рандеву» эти слои только смешивает(а это параллелится вообще на ура) - вообще не вижу где проблема

DumLemming ★★☆
()
Ответ на: комментарий от slackwarrior

Зойчем? Раздал каждому солдату по ведру картошки, ждёшь пока самый слоупок всё почистит. Потом солдаты идут нахер, а ты всё в котёл

DumLemming ★★☆
()
Ответ на: комментарий от fsb4000

Жаль что она под Windows (платформу недружественной страны)

Shushundr ★★★★
() автор топика
Ответ на: комментарий от Shushundr

Судя по треду, тебя не устраивает динамика игры и ты хотел бы ее ускорить. Подглядывание за пользователем способствует достижению этой цели? Способствует. О чем нытьё тогда? На игровой результат это подглядывание как-то влияет? Нет, не влияет, т.к. игра по-прежнему пошаговая, а значит свои контр-ходы ИИ может сделать только после ходов игра. Таким образом ИИ не получает игрового преимущества, но экономится реальное время на выработку хода

cobold ★★★★★
()
Ответ на: комментарий от cobold

игра по-прежнему пошаговая, а значит свои контр-ходы ИИ может сделать только после ходов игра

С кулдауном ИИ может сделать свои ходы даже раньше, чем игрок сделает свои. Таким образом ИИ получает преимущество.

Shushundr ★★★★
() автор топика
Последнее исправление: Shushundr (всего исправлений: 1)
Ответ на: комментарий от Shushundr

в N раз быстрее

С чего ты взял? Допустим, у тебя одноядерный целерон...

Shadow ★★★★★
()
Ответ на: комментарий от DumLemming

никакой проблемы. Это просто факт что точка рандеву есть :)

slackwarrior ★★★★★
()
Ответ на: комментарий от DumLemming

Гуй все равно остается ресурсом, который общий. Т.е. очередь солдат с ведрами почищенной картошки :) Раздавай-не раздавай, сам все чисть — разница не велика. Грузишь ты камаз ротой солдат или быстро сам бегаешь с ведром :) Водитель камаза один хрен курит, разница только в количестве ходок (или «камазов»), которую нивелируют конвейерные ухищрения типа многослойных буферов (может это в этой аналогии вообще «ж/д составы», которые конечно быстро доставят много всего, но их надо наполнить). Посетителям столовой плевать кто там как чистил-готовил :) На раздаче все равно очередь (кадров) :) Аналогии эти левые, но канал ввода-вывода «конченный юзер» все равно «однопоточный».

slackwarrior ★★★★★
()
Последнее исправление: slackwarrior (всего исправлений: 2)
Ответ на: комментарий от Shushundr

Сделать он ходы не может. Т.к. игра пошаговая. Он может «обдумать» разные возможные варианты хода игрока и разные свои продолжения. Против подглядывания у игрока тоже может быть тактика, например во время обдумывания хода выделить одних юнитов, а ходить другими, таким образом у ИИ будет меньше времени на «обдумывание» продолжения

cobold ★★★★★
()
Ответ на: комментарий от cobold

Т.к. игра пошаговая.

Я написал, что хочу не пошаговую, а с кулдауном.

Shushundr ★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.