Game Preview


An air combat-themed shooter game perfectly replicates the STG gameplay just like Raiden - a 1990 vertically scrolling shooter arcade video game.

https://en.wikipedia.org/wiki/Raiden_(video_game)

STG has always been a popular category in the game market, largely because of its simple gameplay and high plasticity.

In this project, we have created smooth combat experience, cool screen performance, and unexpected game settings, it perfectly integrates survival and exploration. Let's take a look at the technical realization highlights.


Want to make similar games like this one?

Buy gigs from meBuy game dev gigs from us. We will teach you how to make similar cool games like this one.

Each game UI page will be stored as a panel prefab separated from the scene.

It is known that at least one object with a rigidbody is required in the game scene.

In this project, the rigid body is set on the player, and the rest (bullets, enemy aircraft) don't have rigidbody components.

(Player character path: resources -> prefab -> model -> player -> player)


Bullet and halo effect

In order to create a stronger visual impact, we have added various explosions and smoke effects which are achieved by particle system and Shader.

Animations usually control the rotation of particles, so that particles are not looking too stiff when moving and emitting.

There are many kinds of bullets designed in the game, and each bullet is realized by combining quad object+particle system/animation. The GPU batching option is used to minimize rendering Draw Calls.

Explosions and smoke effects

Shooting down a plane or destroying a part of a boss requires a lot of explosions and smoke effects.

  • The flame generated by the explosion: made by the particle system, using the TextureAnimaionModule function of the particle system to play the sequence frame pictures of the flame explosion.
  • Fragments of the body explosion: Made by particle system, because it is more resource-intensive to use real models to make aircraft fragments, I chose to use some blocky textures to simulate aircraft fragments.
  • Black smoke generated by the explosion of the body: made by particle system, making random changes in size, angle and transparency for smoke particles.
  • The halo of the explosion of the body: made by particle system, the exposure of the range produced by the explosion of the body is also simulated by textures, which reduces the consumption compared to the production of real lights.
  • Martian particles produced by the explosion of the body: Made by particle system, using VelocityOvertimeModule to make particles have the effect of spraying from high speed to slowing down.
  • The shock wave generated by the explosion of the body: Made by particle system, the air waves generated by the explosion are simulated with textures.

Smooth Game Control Experience

As a shooter game, the player control system is the foundation of good UX. We mainly use touch events by listening to TOUCH_START, TOUCH_MOVE, and TOUCH_END in the game.

Since the coordinates of touch events are calculated in screen coordinates, and the plane is in the 3D world, coordinate mapping is required here.

In this game, we added an interesting mechanism, which is "time slowing down". When the player's finger leaves the screen during the game, the speed of bullets and enemy planes will become slower, allowing players to quickly find a way to move in the dazzling bullets and props.



Object pooling mechanism for bullets and aircrafts

As you can see, in the game, both bullets and enemy planes are always generated continuously. In terms of technical implementation, we will make each bullet and enemy aircraft a separate prefab, and attach a control script to perform its own life control.

Initially, we will create prefabs when we need them, and destroy them after the use. However as more and more objects need to be created and destroyed, we will find that the game becomes more and more expensive to run. This is because the creation of prefabs needs to go through an instantiation process, and this process has a certain overhead. With the increase of objects, the overhead is constantly accumulating.

Therefore, we use "node pool" to cache nodes. Develop an object generation and recycling mechanism, take objects from the pool every time you need them, and put them back into the pool after use. This will save the time for instantiating reused objects and saves runtime overhead.

Gameplay Difficulty configuration

Choosing difficulty allows players to customize their own gaming experience

This game provides three difficulty options. By increasing the output frequency of the aircraft, changing the combination of the aircraft, increasing the HP of the aircraft, and changing the bullet firing mode of the aircraft, the difficulty is gradually increased and the player's desire to survive is stimulated.


StatusReleased
PlatformsHTML5
Rating
Rated 5.0 out of 5 stars
(1 total ratings)
Authoroldmario
GenreShooter

Leave a comment

Log in with itch.io to leave a comment.