Вход

Просмотр полной версии : физический движок



krt17
10.12.2012, 23:35
1

jerri
11.12.2012, 01:46
krt17,
самый главный вопрос - зачем?
от этого можно уже будет танцевать

например есть старинная игра гравити варс
вот ее ремейк (http://www.kongregate.com/games/FunkyPear/gravitee-wars)

TomCaT
11.12.2012, 01:48
Да, и вот для порта The Incredible Machine некий движок очень бы не помешал...

goodboy
11.12.2012, 13:53
Во всех играх что я смотрел физика имитируется простыми проверками, эт не то и не дает свободы действия игроку.

про игру E-motion можно сказать что в ней физический движок ?
возможно и Motos попадает под ту-же категорию.

scl^mc
11.12.2012, 14:42
у колдуэлла в одной из игр было некое подобие физического движка. название игры только забыл :v2_conf2:

newart
11.12.2012, 15:18
Игры с физикой это отдельный жанр. Сомневаюсь что один только движок инициирует их появление на спектруме.

Как всегда всё упрется в графику.

Andrew771
11.12.2012, 17:22
Спасибо за примеры, но я спрашивал делал ли кто то сам или представляет всю механику. Всем спасибо буду сам думать.
Книга "Графика ZX Spectrum" издательства Солон в помощь. Что-то там было.

newart
11.12.2012, 21:16
Спасибо за примеры, но я спрашивал делал ли кто то сам или представляет всю механику. Всем спасибо буду сам думать.
Давай от обратного. Приведи названия конкретных игр с физикой которые можно было бы перенести на спектрум?

scl^mc
11.12.2012, 21:27
armadillo run? gravity define?

BYTEMAN
11.12.2012, 21:33
gravity define?
Даёшь гравити на спектруме!!!! С фреймовой графикой!!! В такое я буду играть, инфа 100%!!!!

drbars
12.12.2012, 08:11
Есть игра Cat Physics для iOS. На Спекртум сделать обрезанный порт вполне реально :)

newart
12.12.2012, 08:46
Есть игра Cat Physics для iOS. На Спекртум сделать обрезанный порт вполне реально
Зачем если она УЖЕ есть на iOS?
Откуда это страсть такая к родному запорожцу цеплять спойлеры от Бенкли?

Vitamin
12.12.2012, 09:42
Зачем если она УЖЕ есть на iOS?
Откуда это страсть такая к родному запорожцу цеплять спойлеры от Бенкли?
Бентли. А к чему претензия- к факту копированию существующего или к факту урезания?

drbars
12.12.2012, 13:23
newart, зачем сидеть на форуме запорожцев, если ездиешь на бентли?))

Barmaley_m
12.12.2012, 15:48
Я физик по образованию. С удовольствием поучаствую в разработке физического движка. Сам уже давно хотел этим заняться, но все никак не решался. Так что, krt17, давай скооперируемся! У меня была идея сделать "Physics demo", в котором бы демонстрировались разные физические явления. Кроме механики твердого тела, например, волновые явления.

Есть мнение, что наш мозг знает физику на подсознательном уровне, причем независимо от успеваемости в школе по этому предмету. Это знание возникло в ходе эволюции и используется для ориентирования в окружающем мире, для различения живых объектов от неживых. Скажем, если некий объект не нарушает законов механики - значит он мертвый, т.к. движется по относительно простым траекториям, предсказываемых этой моделью. Если же он явно нарушает законы механики, например, резко меняет скорость и направление движения, особенно в воздухе - значит он живой, т.е. сложно устроен и имеет особые средства (крылья, ноги, хвост) для "нарушения" законов механики.

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

Тут есть еще один момент. Живые объекты также могут быть категоризованы по характеру их движения. Например, хаотическое движение может означать каких-нибудь жуков, а резкие выпады - хищника. Но компьютерная анимация до появления физических движков предлагала нам много такого, что не вписывается ни в какие модели, существующие в нашем подсознании. В окружающем мире просто нет таких движений. Поэтому просмотр такой анимации и проигрывает по ощущениям от "настоящей" физики.

Теперь перейдем к конкретике. Я думаю, надо начать с того, чтобы реализовать какой-нибудь простенький движок и посмотреть, как он чувствует себя на Speccy в плане скорости, точности, красоты и т.д. Тогда станет ясно, можно ли (и нужно ли) вводить в него дополнительные возможности. Ну и вообще приобретется опыт.

Можно начать с механики тел какой-нибудь простой формы, например, окружностей в гравитационном поле. Окружность тем хороша, что она инвариантна относительно вращения; ее можно рисовать в виде спрайтов, легко делать проверку на столкновения. Пространство можно ограничить стенами, тоже простой формы, для начала. Даже в этих рамках получаются очень красивые траектории, например, если высыпать несколько "шариков" на стол с наклонной поверхностью.

План реализации такого движка мог бы быть таким:
1) Реализация движка на ЯВУ на PC. Например, я бы это сделал на Матлабе, там и с графикой легко работать, тормозно правда.
2) Оптимизация алгоритмов на PC, избавление от максимально возможного количества умножений и вычисления других сложных функций
3) Кодирование на Z80-ASM базовых графических процедур: отображение спрайтов фиксированного размера, отображение стен. Оптимизация графики насколько это возможно.
4) Портирование алгоритмов физики с PC на Z80-ASM
5) Сбор и отладка полученной системы.

CodeMaster
12.12.2012, 16:00
newart, зачем сидеть на форуме запорожцев, если ездиешь на бентли?))

newart - историк, он даже не биограф ;-) Так что, современные дела его мало интересуют.

ws_mason
12.12.2012, 17:23
Попробуйте Пинбол сделать.

Kakos_nonos
12.12.2012, 21:32
>>Даёшь гравити на спектруме!!!!

Даёшь гравити на спектруме [2]
Там простая графика, мотоцикл - два круга и три палки. Рельеф - тоже несколько линий. Думаю, спектрум вполне потянет.

Barmaley_m
13.12.2012, 01:54
Пока основная проблема видится в выборе наиболее оптимальных способов представления тел и оценки коллизий,
Вот именно, это все довольно сложно. Для тел хоть сколько-нибудь сложной формы, даже квадратов, нужно много векторных вычислений, а это - умножения и даже синусы. Скорости будут сопоставимы с игрой "Elite", если удастся эффективно реализовать вычисления, ну или с попытками сделать на Спектруме трехмерную графику. Что у нас там, кубики крутятся на экране, тетраэдры? Вспоминается LSD Megademo, векторная часть. Это от силы пара десятков векторов. В Elite может до 50.

В общем, я считаю, что начать лучше все-таки с кружочков. Даже это будет не очень просто. Проверка на столкновение будет простой, но при столкновениях надо моделировать трение, а еще кружочки будут раскручиваться вокруг своего центра.

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

alone
28.12.2012, 11:10
Что у нас там, кубики крутятся на экране, тетраэдры? Вспоминается LSD Megademo, векторная часть. Это от силы пара десятков векторов. В Elite может до 50.
В The Board 284 полигона с текстурой.