2010-03-13 3 views
13

Будет ли игра, написанная на C#, иметь какие-либо проблемы со скоростью после длительных периодов игры, например, в течение 24 часов за раз? Я специально говорю о 2D RPG, похожей на старые игры Final Fantasy или Dragon Quest. Я знаю, что такие языки, как Python, слишком сильно замедлятся, любопытно, как C# будет стоять.Является ли C# достаточно быстрым для игр

редактировать: программы, которые я пишу много, как термит кишащих дерев :)

@jimmy - вот весь пункт этого. Я работаю над небольшим клоном FF, чтобы улучшить свое кодирование.

+7

«Вопросы скорости после длительных периодов игры» - независимо от языка, который звучит как утечки памяти, или просто «ол багов .. –

+1

@Mitch Пшеница. Разве это не может повлиять на то, как работает сборщик мусора. Если это не очень хорошо и вызывает фрагментацию, вполне возможно, что через 24 часа все будет замедляться. –

+1

@Edan: это будет ошибка в сборщике мусора. – kervin

ответ

11

Да, это так. Взгляните на XNA. Уже есть некоторые игры, написанные на C#.

0

комплект XNA Game для XBox 360 использует C# ...

+0

Нет идеи почему вы получили пониженное голосование. +1 от меня. –

2

Я принимаю бы взглянуть на этом канал 9 видео, отправленные года назад от Eric Липпертого

Eric Lippert - Have you noticed a performance hit in .NET?

Это большие часы если вы интересуетесь сравнительной эффективностью. С тех пор компьютерное оборудование значительно улучшилось, но концепция не изменилась, C# /. Net может иметь отличную производительность, если вы используете ее правильно.

+1

Вау, это старина. Сегодня я столкнулся с Чарльзом в автобусе; мы надеемся, что на днях мы получим еще несколько видеороликов Channel 9. –

2

Если код замедляется в ходе его выполнения - и я имею в виду, что выполнение того же самого объекта занимает больше времени - это знак того, что память управляется неправильно. Я не знаю, что вы имеете в виду о замедлении Python, но у меня нет большого опыта в этом. Возможно, что некоторые игровые или графические библиотеки неправильно обрабатывают память, что может привести к потере производительности (и, в конечном счете, к сбою). Но закрытие приложения и перезапуск будут исправлять любые проблемы, подобные этому, и наверняка у вас будет функция сохранения, если пользователь будет играть в течение 24 часов?

Чтобы ответить на ваш вопрос, правильно написанный C# не будет замедляться, если вы играете в ту же игру слишком долго. (Но ни один из них не будет правильно написан на Python-коде или на любом другом языке).

2

Высокоуровневая игровая логика определенно может быть написана на Python. На самом деле довольно часто использовать «медленный» язык сценариев, чтобы предоставить больше свободы игровому дизайнеру. На практике самые низкие уровни игры (например, аппаратный интерфейс/драйверы) написаны на C. Все остальное между ними открыто для обсуждения в зависимости от того, какой тип производительности вам нужен, и какого типа оборудования он будет работать.

-1

В .NET переписывают Quake:

http://www.codeproject.com/KB/mcpp/quake2.aspx

+0

Отличный пример потенциала производительности .NET! Но этот порт был фактически выполнен с управляемым C++, а не C#. –

+1

Да, верно, Пол. В конце дня у нас есть IL и управляемое приложение. Фактический язык, используемый для этого, не должен иметь большого значения. – Alex

+0

@Alex, Managed C++ также принимает использование неуправляемых родных библиотек. Часть вашей программы может управляться, а другая может быть неуправляемой, что является особенностью Managed C++. Таким образом, это не так, как VB .NET и C#, которые являются чисто управляемыми сборками с IL. – Mzn

Смежные вопросы