Написать в C ++ и выставить на C # или написать непосредственно в C #? - PullRequest
7 голосов
/ 10 августа 2010

Я провожу небольшое исследование, прежде чем собираюсь написать свой собственный 2D (и, возможно, немного 3D) игровой движок. Я сделал движок перед использованием C # и XNA, но на этот раз я хочу перейти на кросс-платформенный, сделав свой новый движок на C ++ с использованием opengl и т. Д.

Но ... Я все еще хочу быстрое время итерации в C # и у меня есть доступ к игровому движку там.

Так что у меня есть несколько вариантов здесь.

  1. Напишите движок и оболочку CLI на C ++
  2. Напишите все это прямо в C #, без C ++
  3. Пишите на C ++ и используйте Mono для загрузки кода C / Сборок в движок.
  4. Нет C #
  5. ... Возможно, что-то, о чем я еще не думал

Я думаю, что мне нужна скорость для отбора, сценографа, матричных вычислений, систем частиц и т. Д.

Ват плюсы и минусы? Что вы предлагаете?

Ответы [ 3 ]

2 голосов
/ 10 августа 2010

Если вы хотите кроссплатформенность, вы не можете использовать C ++ / CLI. Это не поддерживается ни на одной платформе, кроме Windows.

Как говорится, для кроссплатформенности я бы либо использовал C # с Tao , либо использовал C ++, чтобы сделать движок библиотекой, и использовал Platform Invoke, чтобы "использовать" библиотеку изнутри вашего Код C # Это обеспечит вам необходимую скорость и контроль в ядре ядра (C ++), а гибкость игрового дизайна в C #.

Это обеспечивает чистое, кроссплатформенное средство разработки игрового движка, который может быть открыт для C #.

1 голос
/ 11 августа 2010

Оптимизированный код C ++ будет значительно быстрее (в моем случае 20% для ODE в 32-битных и почти 40% в 64-битных; C # медленнее в 64-битных, чем C # в 32-битных, но это еще один пост).Я хотел бы воспользоваться преимуществами тяжелой математики в библиотеке C ++ (интеграция, дифференциальные уравнения и т. Д.).

1 голос
/ 10 августа 2010

Дао рамки мертв, попробуйте OpenTK вместо

...