Что мне нужно, чтобы написать физический движок?

Это ОЧЕНЬ основной вопрос. Я хочу начать писать физический движок. Я нашел множество веб-сайтов, рассказывающих мне, как это сделать, но я не нашел то, что мне нужно.

Что я хочу знать, так это то, какое программное обеспечение мне нужно, чтобы написать физический движок и увидеть, как он работает (увидеть, как формы переходят друг в друга). У меня есть Eclipse на моем компьютере, могу ли я его использовать?


person Kevin Kesicki    schedule 11.10.2013    source источник
comment
Итак, что вам нужно? Если не считать физики, то есть.   -  person jrd1    schedule 11.10.2013
comment
Мне любопытно, какое программное обеспечение мне нужно, чтобы написать это. Я нашел фрагменты кода, чтобы начать работу, но что мне нужно, чтобы увидеть физические формы, которые я создаю, и наблюдать за симуляциями?   -  person Kevin Kesicki    schedule 11.10.2013
comment
С какими языками программирования и инструментами вы знакомы?   -  person Emond Erno    schedule 11.10.2013
comment
Я лучше всего разбираюсь в VB.net, но у меня также есть некоторый опыт работы с Java и C++.   -  person Kevin Kesicki    schedule 11.10.2013
comment
Я не знаю о графике в VB.net, но если вы работаете в двух измерениях и используете Java, как насчет Java2D API? docs.oracle.com/javase/tutorial/2d   -  person bsa    schedule 11.10.2013


Ответы (1)


Кстати, лучше опубликовать это на https://gaming.stackexchange.com/.

Однако, как следует из названия:

  1. Вам понадобится понимание физики. Насколько глубоко вы хотите углубиться в это, зависит от вас, поскольку физика — это изучение мира природы, поэтому она автоматически включает в себя изучение очень больших объектов (скоплений галактик, галактик, туманностей и т. д.) и очень маленьких объектов (атомов, кварков). , и т.д.). Следовательно, физика очень быстро становится очень экзотической (т.е. вы начинаете иметь дело с квантовой механикой, теорией струн, релятивистской механикой и т. д.). Но следует помнить, что большинство физики в игровых движках используют ньютоновскую механику. . Итак, мое предложение начать здесь.

  2. Затем вы должны решить, на каком языке будет ваш движок. Большинство людей обычно проектируют движок на том же языке, на котором написана игровая логика. Но это не обязательно так. В основном, язык, на котором вы разрабатываете свой движок, будет ограничен тем, какие проблемы вы хотите, чтобы ваш движок решал, в дополнение к скорости движка, простоте использования, простоте разработки, ремонтопригодности и т. д. Как и следовало ожидать, это часто означает что разработка физического движка — амбициозная и трудоемкая задача, поскольку большинство аспектов движка задают пределы того, как будет разработана игра.

  3. После того, как вы сделали все эти выборы, вам нужно выяснить, как вы хотите реализовать свой движок (например, используя процедурные методологии по сравнению с объектно-ориентированными методологиями). Но это снова будет ограничено выбранным вами языком. Однако следует отметить, что каждая методология имеет свои достоинства и недостатки. Вам придется исследовать методологии, основанные на проблемах, которые вы хотите решить в своем игровом движке. Пример: если все, что ваша игра делает, это движение снаряда, то создайте игру, которая реализует уравнения для решения уравнений движения снаряда.

Конечно, это более сложно, но должно дать вам представление о том, с чего начать и что делать. И, следует отметить, это с учетом того, что всегда следует обращаться к стандартным методам разработки программного обеспечения: ремонтопригодность, модульные тесты, резервное копирование кода (через репозитории) и т. д.

РЕЗЮМЕ:

  • Ваш движок будет ограничен языком, на котором вы его разрабатываете.
  • Язык, на котором вы его разрабатываете, будет ограничен проблемами, которые вы хотите решить с помощью вашего движка. Проблемы: скорость, простота разработки, точность, ремонтопригодность и т. д.
  • Большинство физических движков основаны на классической механике.
person jrd1    schedule 11.10.2013