Разработка игр в vb. Сеть

Для всех людей, которые столкнутся с этой проблемой, здесь есть простое решение: ОСУЩЕСТВЛЯЕТСЯ ОБРАБОТАТЬ СИГНАЛ СИГНАЛА И НЕ ИСПОЛЬЗУЙ Метод будет продолжать работать, т.е. метод, в котором был создан поток, не будет блокироваться. Это простое решение, с которым я не сталкивался.

Таким образом, вместо использования: signal.pause() используйте это:

def start_server():
   t_server = threading.Thread(target=server.start)
   t_server.start()
   # signal.pause()
   signal.signal(signal.SIGINT, handler)

def handler(signum, frame):
   ... # do whaterver you want to do, throw an exception, close your resources etc.
5
задан jblaske 30 April 2009 в 15:56
поделиться

8 ответов

Скорость языков более высокого уровня обычно не позволяет им "серьезно" разрабатывать игры, где C и C ++ господствуют. Однако все больше и больше игр подвергают игровую логику языкам сценариев, таким как Lua и Python.

Я слышал о инди-играх, разрабатываемых в VB, например, серия Zombie Smashers была разработана в VB Джеймсом Сильвой, который недавно сделал это. игра Посудомоечная машина Dead Samurai на C # .net.

Возможно, вы захотите заглянуть в среду Xbox Live Arcade ( XNA ), которую выпустила Microsoft. Вы можете использовать это в VB или C #.

10
ответ дан 18 December 2019 в 06:51
поделиться

Как отмечали другие, .Net не медлителен, но есть несколько вещей, которые мешают ему в разработке игр:

  1. Недетерминированность сборки мусора
  2. Низкая переносимость ( по сравнению с C)
  3. Отсутствие зрелых инструментов / библиотек / каркасов для разработки игр

Что касается использования VB.Net. Господи, почему? : -)

0
ответ дан 18 December 2019 в 06:51
поделиться

Вы можете использовать Microsoft XNA Framework для графики и обычное приложение WinForms для хранения всего своего кода. Просто установите XNA Framework и добавьте ссылку из своего приложения VB WinForms.

Если вы хотите воспользоваться всеми функциями, которые предлагает XNA, вам нужно использовать C #, с которым XNA хорошо интегрируется.

0
ответ дан 18 December 2019 в 06:51
поделиться

It's not VB.NET that's the major problem, it's the .NET Framework.

Specifically, game development is generally done in C/C++ where every ounce of performance can be gained. The .NET framework doesn't lend itself to this.

With that said there are games that have been developed in .NET

3
ответ дан 18 December 2019 в 06:51
поделиться

Part of it is the stigma still attached to vb in general of being a slow language. (Which is not nearly as much true as it used to be because of the commonality of the .net framework)

To be honest though it depends on what type game your developing, if you are doing a high frame rate, high level 3-d graphics, bleeding edge game then you are stuck writing it in C or C++ in order to get necessary performance. But if you are doing something more like what you see in many flash based games today, or even stuff that you could see in older games then IMHO you could do it in almost any language.

1
ответ дан 18 December 2019 в 06:51
поделиться

VB.NET ничем не отличается от любого другого языка .NET.

Понимание того, что VB медленен, больше не соответствует действительности.

Вот список учебных пособий для VB.NET с XNA (инструментарий разработки игр).

0
ответ дан 18 December 2019 в 06:51
поделиться

Что касается скорости, такие движки, как XNA Visual3D.NET , убедили меня, что невозможно добиться хорошей производительности от управляемого игрового движка , Что еще более важно, ЦП не является узким местом в любой из демонстраций, и это единственная часть, на которую влияет использование C #. И даже когда он ограничен по процессору, он все еще развивает только 50-60%, так как двигатель все еще довольно однопоточный, поэтому есть много возможностей для улучшения современных двух- и четырехъядерных процессоров, а также завтрашних окто- и шестнадцатеричных ядер. Я думаю, что оптимизация алгоритмов для хорошего масштабирования в эпоху многих ядер будет более важной, чем используемый язык.

И хорошая вещь использования управляемого языка для всего движка в том, что он Легко использовать один и тот же язык высокого уровня для игровой логики / ИИ, тогда как родные движки могут использовать для этого гораздо более медленные языки сценариев.

Использование управляемого языка, такого как C # / VB.NET, может быть ограничивающим для основанных на ЦП вещей, таких как физика, но опять же, я был очень впечатлен полностью управляемой библиотекой физики JigLibX для XNA.

Это все C #, но я предполагаю, что это применимо и к VB.NET, так как в конечном итоге они скомпилированы в один и тот же IL, если только в компиляторе VB нет некоторых ограничений, о которых я не знаю.

На меня произвела большое впечатление полностью управляемая физическая библиотека JigLibX для XNA.

Это все C #, но я предполагаю, что это применимо и к VB.NET, так как в конечном итоге они скомпилированы в один и тот же IL, если только в компиляторе VB нет некоторых ограничений, о которых я не знаю.

На меня произвела большое впечатление полностью управляемая физическая библиотека JigLibX для XNA.

Это все C #, но я предполагаю, что это применимо и к VB.NET, так как в конечном итоге они скомпилированы в один и тот же IL, если только в компиляторе VB нет некоторых ограничений, о которых я не знаю.

1
ответ дан 18 December 2019 в 06:51
поделиться

Программистам игр потребовалось много времени, чтобы даже принять C ++ вместо C из-за того, что он был «медленным». Я полагаю, что достаточно скоро эра многоядерных процессоров заставит это медленно исчезнуть, потому что параллельная работа будет намного важнее, чем запуск одного потока как можно быстрее.

Помните также, что выполняется много обработки на GPU в настоящее время с пиксельными / вершинными / геометрическими шейдерами. Итак, мы видим, что некоторые довольно продвинутые игры пишутся на языках, которые можно считать «медленными».

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

К счастью, с глубокое понимание того, как. NET работает, включая сборщик мусора и среду выполнения - оба эти препятствия можно преодолеть.

Во всяком случае, настоятельно рекомендуется создать прототип игры на управляемом языке, будь то VB.NET, C #, python, ruby ​​и т. Д. .. а затем, если он окажется слишком медленным, вы можете портировать его части на C ++.

.NET управляет C ++, что делает взаимодействие между собственным и управляемым кодом довольно гладким. Это позволяет при необходимости писать эти действительно важные части в исходном коде. Но я сомневаюсь, что это так. Наиболее важные оптимизации сначала будут исходить от структур данных, алгоритмов и общей архитектуры.

а затем, если он окажется слишком медленным, вы можете портировать его части на C ++.

.NET управляет C ++, что делает взаимодействие между собственным и управляемым кодом довольно гладким. Это позволяет при необходимости писать эти действительно важные части в исходном коде. Но я сомневаюсь, что это так. Наиболее важные оптимизации сначала будут исходить от структур данных, алгоритмов и общей архитектуры.

а затем, если он окажется слишком медленным, вы можете портировать его части на C ++.

.NET управляет C ++, что делает взаимодействие между собственным и управляемым кодом довольно гладким. Это позволяет при необходимости писать эти действительно важные части в исходном коде. Но я сомневаюсь, что это так. Наиболее важные оптимизации сначала будут исходить от структур данных, алгоритмов и общей архитектуры.

8
ответ дан 18 December 2019 в 06:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: