Canned animation Game


there are some very similar Questions like this one. But i’am neither familiar with game programming nor with Unreal Engine (never used it) and I am not sure if unreal is the right engine. I want to make a billiard game. I’am pretty sure that the collision concept doesn’t work properly/exactly for billiard games, especially on slower devices.

  • The billiard balls should be 3D meshes, the table 2D.
  • The whole calculation (determined, canned animation) is done before the first movement of a billiard ball occurs.

So i have an array {time}x{position ball, rotation ball} in my c++ code where the time is in an interval about 50 fps=1/50s. When the animation is running i have a time(r) (offseted to start of animation) where the position and rotation of the balls are updated according to the data of my array until the movement of balls have determined.

As good i have understood the documentation of unreal i have an Actor::tick (float timediff) method which is called every frame. Each billiard ball as an actor and in the tick function I update the position if the animation of the ball movement is running. So my concept should be (easy) realizable with unreal engine. Right? Or might it be, that unreal is the wrong engine for that (I have a little bit that impression)? Or is the collision concept good enough even on older devices and it’s not necessary to do the whole calculation before?
And how is unreal engine to make menues around the game (like selection a single match, selecting a tournament, upload avatar image, are there textboxes, buttons and so on) it is good for that?

Thanks and kind regards

For device support (I’m assuming you mean mobile decides), you can check the Android compatibility and iOS compatibility pages.

As for a billiards game, you wouldn’t create one in UE4 the same way you would with a custom engine. You could set your billiard ball actors to simulate physics (and additionally lock their Z position so they won’t move up or down), which would take care of collision detection and response for you as opposed to having to write your own physics engine in a custom engine. For creating your user interface, you would be using UMG.