Да нигде не ошиблись вроде. Всё это можно связать в одно и работать будет. Если нужна сетевая БД - можете использовать MySQL или Postgresql.
Вместо WPF можно использовать WinForms. А можно и WPF - как больше нравится.
Не забудьте про ORM - Entity Framework, например.
Много? Не поверите, но иногда не хватает )
Если игра сетевая - она обязательно займет порт, чтобы обеспечить связь.
Иногда и не сетевые игры занимают порты, вешая на них различные хуки, систему лицензирования и пр.
Наилучшим решением будет использование Message Queue.
В одну очередь записываете задание, вторую слушаете на предмет ответа.
Процесс читает из первой очереди и записывает во вторую.
Можно посмотреть в сторону https://www.rabbitmq.com/
За 15 лет кодинга самая сложная математика, которая у меня была - вычисление процентов для прогресс-бара.
Но я прикладник. Как выше написали - кол-во необходимой математики зависит от выполняемых задач.
Делайте, как того требует ситуация. Ограничений никаких нет.
Возможно, будут некоторые неудобства при сохранении в БД или сериализации, но это опять же зависит от ситуации и есть масса решений, позволяющих от этих неудобств избавляться.