Size: a a a

Индиапокалипсис 🎮🔥

2021 April 27

S

Sasha S. in Индиапокалипсис 🎮🔥
Я такой однажды делал
(а вот не знал тогда что есть готовый, кек)
источник

S

Sasha S. in Индиапокалипсис 🎮🔥
источник

АФ

Артём Фесуненко... in Индиапокалипсис 🎮🔥
Согласен. Поэтому переведу его на карактер контроллер.
Погуглю ещё сейчас, в чём преимущества и недостатки, а то подзабылось.
источник

AM

Aleksey Muravev in Индиапокалипсис 🎮🔥
A kinematic controller directly works with input displacement vectors (1st order control). A dynamic controller works with input velocities (2nd order control) or forces (3rd order control).
источник

AM

Aleksey Muravev in Индиапокалипсис 🎮🔥
источник

АФ

Артём Фесуненко... in Индиапокалипсис 🎮🔥
Чё-то слишком много букв.
источник

AM

Aleksey Muravev in Индиапокалипсис 🎮🔥
Там на 10 минут
источник

AM

Aleksey Muravev in Индиапокалипсис 🎮🔥
Тебе нужно только вот это
источник

AM

Aleksey Muravev in Индиапокалипсис 🎮🔥
The PhysX CCT is a kinematic controller. Traditionally, character controllers can be either kinematic or dynamic. A kinematic controller directly works with input displacement vectors (1st order control). A dynamic controller works with input velocities (2nd order control) or forces (3rd order control).

In the past, games did not use a 'real' physics engine like the PhysX SDK. But they still used a character controller to move a player in a level. These games, such as Quake or even Doom, had a dedicated, customized piece of code to implement collision detection and response, which was often the only piece of physics in the whole game. It actually had little physics, but a lot of carefully tweaked values to provide a good feeling while controlling the player. The particular behavior it implemented is often called the 'collide and slide' algorithm, and it has been 'tweaked for more than a decade'. The PhysX CCT module is an implementation of such an algorithm, providing a robust and well-known behavior for character control.

The main advantage of kinematic controllers is that they do not suffer from the following issues, which are typical for dynamic controllers:

(lack of) continuous collision detection: typical physics engines use discrete collision checks, leading to the notorious 'tunneling effect' that has plagued various commercial & non-commercial physics packages for years. This leads to three main problems:

the tunneling effect itself : if the character goes too fast it might tunnel through a wall
as a consequence, the character's maximum velocity be limited (thus also limiting the game play possibilities)
even if it does not tunnel, the character might jitter when pushed forward in a corner for example, because the physics engine keeps moving it back and forth to slightly different positions.
No direct control: a rigid body is typically controlled with impulses or forces. It is usually not possible to move it directly to its final position: instead one must convert the delta position vector to impulses/forces, apply them, and hope that the character will end up at the desired position. This does not always work well, in particular when the physics engine uses an imperfect linear solver.

Trouble with friction: when the character is standing on a ramp, it should not slide. So infinite friction is needed here. When the character is moving forward on that same ramp, it should not slow down. One does not need any friction here. Similarly, when the character is sliding against a wall, it should not slow down either. Thus, for a CCT, friction is usually either 0 or infinite. Unfortunately the friction model in a physics engine might not be perfect, and it is easy to end up with either a small amount of friction (the character slows down a tiny bit) or a very-large-but-not-infinite friction (the character slides very slowly on that ramp no matter how artificially big the friction parameters are). The conflicting requirements for ramps also mean that usually there is simply no way to perfectly model desired behavior.

Trouble with restitution: typically, restitution should be avoided for CCTs. When the character moves fast and collides with a wall, it should not bounce away from it. When the character falls from a height and lands on the ground, flexing his legs, any bounce should be prevented. But once again, even when the restitution is exactly zero, a physics engine can nonetheless make the CCTs bounce a bit. This is not only related to the imperfect nature of the linear solver, it also has to do with how typical penetration-depth-based engines recover from overlap situations, sometimes applying excessive forces that separate the objects too much.

Undesired jumps: characters must often stick to the ground, no matter what the physical behavior should be. For example characters in action games tend to move fast, at unrealistic speeds. When they reach the top of a ramp, the physics engine often makes them jump a bit, in the same way a fast car would jump in the streets of San Francisco.
источник

AM

Aleksey Muravev in Индиапокалипсис 🎮🔥
But that is often not the desired behavior: instead the character should often stick to the ground regardless of its current velocity. This is sometimes implemented using fixed joints, but this is an unnecessarily complex solution to a problem that is easily prevented with kinematic controllers.

Undesired rotations: a typical character is always standing up and never rotating. However physics engines often have poor support for that sort of constraints, and a great deal of effort is often put into preventing a capsule around the character from falling (it should always stands up on its tip). This is often implemented using artificial joints, and the resulting system is neither very robust nor very fast.

To summarize, a lot of effort can be spent on tweaking and disabling the physics engine's features simply to emulate what is otherwise a much less complex piece of custom code. It is natural to instead keep using that simple piece of custom code.
источник

АН

Антон Никитенко... in Индиапокалипсис 🎮🔥
источник

АН

Антон Никитенко... in Индиапокалипсис 🎮🔥
источник

AM

Aleksey Muravev in Индиапокалипсис 🎮🔥
источник

АН

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

крутое железо и игры vs кривой маркетинг с логистикой
источник

О

Обычный Пользователь... in Индиапокалипсис 🎮🔥
источник

S

Shieldy in Индиапокалипсис 🎮🔥
Yogurt The Horse, добро пожаловать в сообщество инди разработчиков. Постарайся не оффтопить, уважительно относиться к собеседникам, и получай удовольствие от общения.
источник

AO

Aleksandr Olegovich. in Индиапокалипсис 🎮🔥
Спасибо)
источник

АФ

Артём Фесуненко... in Индиапокалипсис 🎮🔥
Вспомнил, что у меня в ассетах был какой-то изи карактер контроллер, доставшийся из бандла.
Открыл его - а он на ригидбади =)
И причём у него достаточно много отзывов в сторе, и побольше, чем у других таких же контроллеров, на кинематике, на КК.
источник

АФ

Артём Фесуненко... in Индиапокалипсис 🎮🔥
Хотел потестить его... Но не судьба. Там не просто ассет, а целиком комплит проджект. И при добавлении его в своей проект - он перезапишет настройки твоего проекта. Вот нахера так делать?
источник

AO

Aleksandr Olegovich. in Индиапокалипсис 🎮🔥
а в новый проект его, шоб потестить ?
источник