Escape Karim

Escape Karim is a fast reaction game where timing is everything. You control a hero standing on a rotating diameter inside a circle. Karim moves along the circular path and your goal is to avoid him by switching sides at the right moment.

One wrong move and Karim catches you. Each successful switch gives you points and keeps you alive longer. The longer you survive the faster Karim moves and the harder it becomes.

▶ Play Now – It's Free

Learning rotation from Escape Karim

Rotation is one of the most important topics in game development. In Escape Karim almost everything moves in a circular way. The player rotates around the center. Karim moves around the circle. The danger increases because the movement never stops. This makes the game feel alive even though the controls are simple.

Many beginner developers understand movement from left to right or top to bottom. But circular movement feels confusing at first because objects move around a center point instead of moving in a straight line. Once you understand rotation you can create much better games with planets, wheels, enemies, racing games, spinning attacks, orbit systems and smooth animations.

Rotation is used in almost every popular game. Even simple mobile games use rotation to create natural movement. Escape Karim is a very good example because the whole gameplay depends on rotating motion and timing.

In this tutorial you will learn how rotation works in Flutter and Flame Engine using simple language. You will understand angles, radians, circular movement, rotating lines and how to create smooth motion around a center point.

Understanding the center point

Every rotation starts from a center point. Think about a wall clock. The hands rotate around the center screw. The hands do not move randomly across the screen. They always stay connected to the middle point.

In Escape Karim the center of the circle is the most important position. The rotating diameter spins around this center. The player stays attached to the diameter while Karim moves along the outer circle.

Before creating rotation we first need a center position.

Vector2 center = Vector2( size.x / 2, size.y / 2, );

Here we create the middle point of the screen. The X value is half of the screen width and the Y value is half of the screen height.

This becomes the anchor point for all circular movement.

Understanding angles

Rotation works using angles. When an object rotates its angle changes continuously.

A full circle is three hundred sixty degrees. If you rotate halfway that becomes one hundred eighty degrees. A quarter rotation becomes ninety degrees.

But in programming most game engines use radians instead of degrees.

Beginners usually fear radians because the numbers look strange. But the idea is simple. One full rotation equals about six point two eight radians.

You do not need to memorize everything immediately. You only need to understand that changing the angle changes the direction.

double angle = 0;

This variable stores the current rotation angle.

Every frame we increase the angle slightly to create movement.

angle += 0.02;

This creates smooth continuous rotation.

Using sine and cosine

Circular movement depends on sine and cosine. These functions help us calculate positions around a circle.

This may sound difficult at first but the actual code is very small.

Cosine controls horizontal movement and sine controls vertical movement.

Together they create perfect circular motion.

double x = center.x + radius * cos(angle); double y = center.y + radius * sin(angle);

The center position is the middle of the circle. The radius controls how far the object stays from the center.

As the angle changes the X and Y positions also change. This creates circular movement automatically.

Creating a rotating object

Now let us create a simple rotating ball around the center of the screen.

class RotatingBall extends PositionComponent { double angle = 0; double radius = 120; @override void update(double dt) { super.update(dt); angle += 1 * dt; position = Vector2( 400 + radius * cos(angle), 300 + radius * sin(angle), ); } }

Here the object rotates around the point four hundred and three hundred.

The update method runs continuously every frame. The angle increases slowly and the position changes using cosine and sine.

This creates smooth circular motion similar to Karim moving around the arena.

Understanding delta time

In Flame Engine the update method gives a value called dt. This means delta time.

Delta time helps movement stay smooth on all devices. Some phones run faster and some run slower. Without delta time movement speed becomes inconsistent.

That is why we multiply speed using dt.

angle += speed * dt;

This keeps rotation smooth and balanced everywhere.

Creating the rotating diameter

The most important visual in Escape Karim is the rotating diameter line.

The player stands on one side while the opposite side remains empty. As the line rotates both ends move together.

To create this we calculate two opposite positions.

Vector2 pointOne = Vector2( center.x + radius * cos(angle), center.y + radius * sin(angle), ); Vector2 pointTwo = Vector2( center.x - radius * cos(angle), center.y - radius * sin(angle), );

The second point uses minus values which places it exactly opposite the first point.

This creates a perfect diameter.

Drawing the rotating line

Now we can draw the line between both points.

canvas.drawLine( Offset(pointOne.x, pointOne.y), Offset(pointTwo.x, pointTwo.y), Paint() ..color = Colors.white ..strokeWidth = 4, );

As the angle changes the line rotates smoothly around the center.

This is the same idea used inside Escape Karim.

Placing the player on the diameter

The player stands on one end of the rotating line.

This means the player position should always match one endpoint.

player.position = pointOne;

When the player taps the screen we switch to the opposite side.

bool switched = false; void switchSide() { switched = !switched; }

Then during updates we decide which endpoint to use.

if (switched) { player.position = pointTwo; } else { player.position = pointOne; }

This creates the gameplay mechanic where the player jumps between both ends of the rotating diameter.

Creating Karim movement

Karim moves around the outer edge of the circle continuously.

This uses the same circular movement system but with a different speed.

double karimAngle = 0; @override void update(double dt) { super.update(dt); karimAngle += 2 * dt; karim.position = Vector2( center.x + radius * cos(karimAngle), center.y + radius * sin(karimAngle), ); }

Karim now rotates endlessly around the circle.

Increasing the speed value makes the game harder.

Making the speed increase over time

One reason Escape Karim feels intense is because the speed slowly increases.

This creates pressure and forces the player to react faster.

double karimSpeed = 1; @override void update(double dt) { super.update(dt); karimSpeed += 0.02 * dt; karimAngle += karimSpeed * dt; }

The longer the game runs the faster Karim moves.

Small changes in speed create a huge difference after some time.

Checking collision

Collision detection decides when the player gets caught.

We compare the distance between Karim and the player.

double distance = karim.position.distanceTo(player.position); if (distance < 20) { gameOver(); }

If the distance becomes very small the game ends.

This simple check creates the entire danger system.

Why rotation feels smooth

Circular movement feels natural because the motion never suddenly stops.

Straight movement often looks robotic if not animated properly. Rotation creates flow and rhythm. This is why many arcade games use spinning systems.

Escape Karim uses this idea perfectly. Even though the controls are simple the rotating movement keeps players focused.

Common mistakes beginners make

Many beginners forget to use radians correctly. Some developers also forget to multiply by delta time which causes inconsistent speed.

Another common mistake is using the wrong center point. If the center is incorrect the rotation looks broken and unstable.

Some developers also increase the angle too quickly which makes the movement impossible to control.

Rotation should feel smooth and readable especially in reaction based games.

Why learning rotation is important

Rotation is not only useful for Escape Karim style games. It is used in action games, racing games, platform games, puzzle games and even user interface animations.

Once you understand circular motion you can build advanced gameplay systems much more easily.

Many popular mobile games are built using only movement tricks like rotation, scaling and timing.

Game development is not always about huge graphics or complicated systems. Sometimes one strong mechanic can create a very addictive experience.

Escape Karim proves this idea very clearly. A rotating line, one enemy and one tap mechanic are enough to create tension and excitement.

Final thoughts

Learning rotation is one of the best skills for beginner game developers. At first the math may feel confusing but after some practice it becomes natural.

Start with simple circles and rotating objects. Then slowly build more advanced systems like enemy movement, orbit attacks and rotating platforms.

The most important thing is experimentation. Change the radius. Change the speed. Reverse the direction. Watch how small changes completely affect gameplay feeling.

Escape Karim is a perfect example of how simple rotation mechanics can create a challenging and enjoyable arcade game. Once you master rotation you will start seeing game ideas everywhere around you.

About the game:

What Escape Karim feels like when you start playing

When you first start the game it feels slow and easy to understand. Karim moves calmly around the circle and you feel like you have enough time to react.

After a few moments the pace starts to change. Karim moves faster and your decisions need to be quicker. What felt simple at the beginning slowly turns into a tense challenge.

The game becomes about rhythm and focus. You start predicting movement instead of just reacting. Every tap becomes important.

Staying alive longer feels rewarding because you know the speed is increasing and your control is improving.

How to play Escape Karim step by step

  1. The game begins with a circle and a rotating diameter inside it. Your hero stands on one end of the diameter while Karim moves along the circular path.
  2. The diameter rotates in one direction while Karim moves in the opposite direction. This creates a constant motion that you need to watch carefully.
  3. You can tap or click to switch your hero from one end of the diameter to the other end. This is your only action and it decides whether you survive or get caught.
  4. Your goal is to avoid contact with Karim at all times. If Karim reaches the same position as your hero the game ends immediately.
  5. Each successful switch from one end to the other gives you twenty five points. The more you switch safely the higher your score becomes.
  6. At the beginning Karim moves slowly which gives you time to understand the pattern. As the game continues his speed increases with each rotation.
  7. Fast tapping at the beginning helps you build early points while the speed is low. But as the speed increases you need better timing instead of fast tapping.
  8. The game continues as long as you avoid Karim. One mistake is enough to end the run so focus is very important.

The game is simple to control but mastering the timing takes practice and patience.

What you see on the screen while playing

  1. A big circle is shown in the center of the screen where all the action happens This circle is the path where the movement keeps going without stopping You need to keep your eyes on this area because everything important happens inside it
  2. The hero stands on one end of a line inside the circle This is your position and you control when the hero switches sides Your timing here decides if you stay safe or get caught
  3. A straight line passes through the center of the circle which is the diameter This line keeps rotating slowly and connects both sides where the hero can stand You move from one end of this line to the other to avoid danger and survive longer

The story behind Escape Karim

In a quiet training ground hidden from the world a ninja imposter tried to escape after making a mistake. He thought he could leave unnoticed but Karim was already aware.

Karim was known for his speed and focus. Once he started chasing someone there was no easy escape. The imposter knew running in a straight path would not work.

He entered a circular arena where movement never stops. A rotating path with no corners and no place to hide. It was the only place where he could try to outsmart Karim.

Standing on a rotating line he realized he had only one option. Keep switching sides and stay away from Karim. Every move had to be perfect.

At first he managed to stay safe. Karim was slow and the gaps were easy to predict. The imposter gained confidence and started moving faster.

But Karim adapted. With each round his speed increased and the distance closed faster than before. The chase became intense and there was no time to relax.

In the end the imposter made one small mistake. A single wrong move was enough. Karim caught him and the escape ended.

Escape Karim is built on this idea. A simple chase where one mistake can change everything.

What makes Escape Karim engaging to play

🔄

Continuous circular movement

Both Karim and the diameter are always moving which keeps the gameplay active.

Increasing speed challenge

The speed increases over time which makes the game more intense.

🎯

Timing based control

Every tap matters and good timing is the key to survival.

📈

Simple scoring system

Each successful switch rewards you with points.

🎮

Easy to learn controls

Tap once to switch sides and keep playing without confusion.

🆓

Free to play anytime

Start playing instantly without any waiting or cost.

Simple tips to survive longer

  1. Tap quickly at the beginning to gain easy points
  2. Watch Karim movement instead of reacting late
  3. Stay calm as the speed increases
  4. Do not panic tap when Karim gets close
  5. Try to follow a rhythm in your tapping

Better timing and calm focus will always help you survive longer runs.

Frequently asked questions about Escape Karim

Is Escape Karim free to play

Yes the game is completely free and you can play anytime without restrictions. There are no locked features so you get the full experience from the start.

Why do I get caught quickly

This usually happens when your timing is not correct or when you panic tap. Try to observe Karim movement and tap at the right moment instead of rushing.

How can I score more points

You need to switch sides successfully as many times as possible. Staying alive longer and making clean moves will increase your score.

Does the speed always increase

Yes with each rotation Karim speed increases which makes the game harder. This keeps the challenge growing as you continue playing.

Is this game based on skill or luck

The game is mostly about skill and timing. With practice you can improve your reactions and survive longer.