Я провожу небольшое исследование, прежде чем собираюсь написать свой собственный 2D (и, возможно, 3D) игровой движок. Я сделал движок перед использованием C # и XNA, но на этот раз я хочу перейти на кросс-платформенный, сделав свой новый движок на C ++ с использованием opengl и т. Д.
Но ... Я все еще хочу быстрое время итерации из C # и имею доступ к игровой движок там.
Итак, у меня есть несколько вариантов здесь.
Я думаю, что мне нужна скорость для отбраковки, сценографического материала, вычислений матрицы, систем частиц и т. д.
Что за и против? Что вы предлагаете?
Если вам нужна кроссплатформенность, вы не можете использовать C ++ / CLI. Это не поддерживается ни на каких платформах, кроме Windows.
При этом для кроссплатформенности я бы либо использовал C # с Tao , либо использовал C ++, чтобы сделать движок библиотекой, и использовать Platform Invoke, чтобы «использовать» библиотеку изнутри вашего Код C #. Это обеспечит вам скорость и контроль, необходимые в ядре движка (C ++), с гибкостью игрового дизайна на C #.
Это обеспечивает чистые кроссплатформенные средства разработки игрового движка, который может быть открыт для C #.
Оптимизированный код C ++ будет значительно быстрее (20% в моем случае для ODE в 32-разрядной версии и почти 40% в 64-разрядной версии; C # медленнее в 64-разрядной версии, чем C # в 32-разрядной версии). -бит, но это другой пост). Я бы воспользовался тяжелой математикой в библиотеке C ++ (интеграция, дифференциальные уравнения и т. Д.).