У меня есть проект по созданию roguelike , который каким-то образом абстрагирует UI от движка и движка от создания карты, линии сайта и т. Д. Чтобы сузить фокус, ясначала хочу просто получить интерфейс пользователя (клиента игрока) и работающий движок.
Моя текущая идея состоит в том, чтобы сделать клиента в основном программой, которая решает, что один персонаж (игрок, монстры) сделает за свой ход, и ждет, пока он не сможет двигаться снова.Таким образом, у каждого монстра есть клиент, так же как и у игрока.Клиент игрока печатает карту, ждет ввода, отправляет ее в движок и сообщает игроку, что произошло.Клиент монстра делает то же самое, за исключением того, что не печатает карту и не использует AI вместо ввода с клавиатуры.
Прежде чем идти дальше, если это кажется каким-то запутанным способом ведения дел, моя цель - учиться, а не писатьрогалик.Это дневник, а не пункт назначения.
И поэтому мне нужно выбрать, какая форма ipc подходит для этой модели лучше всего.
- Моя первая попытка использовала трубы, потому что они самые простые, и я написал пользовательский интерфейс для игрока и программу для конвейера в инструкциях, таких как расположение карты и игрока.Хотя это работает, он позволяет только одному клиенту - обмениваться данными через стандартный ввод и вывод.
- Я думал о том, чтобы сделать движок демоном, который выглядит в спуле, где клиенты при запуске создают уникальные для каждого клиентавременные файлы, чтобы дать инструкции движку и получить обратную связь.
- Наконец, я сделал небольшое вводное программирование с сокетами.Похоже, что они могут быть подходящим способом и позволят игре когда-нибудь пробежаться по сети.Я хотел бы, если возможно, использовать более простое решение, и, поскольку я не знаком с ними, оно более подвержено ошибкам.
- Я всегда открыт для предложений.