ZombieSoup is an action top-down shooter following the fate of a kid to shoot, loot and dodge tool his way to save a girl from the danger of zombies, monsters, robot and evil genius. You are Ricky, a college kid on backpack seeking his own adventures out in the country. On an ordinary night Ricky woke up on a long journey to a small town. Soon he discovered that the town has been infested by zombies and monsters. Rogue-like top-down shooter Weapons, both melee and ranged Human & Zombie form Secret paths, levels, loots & unlockables Over 50+ challenging levels Story Mode Survival Mode 80’s Aesthetic

  • View media
  • View media
  • View media
  • View media
  • View media
  • View media
Post article RSS Articles

ZombieSoup - Tutorial #01 (Unreal Engine)

Client Side Coding Tutorial

Introduction

As per in the developed game ZombieSoup, it is supposed to be a top down third-person view angle but due to design constraint, it has a twist is that the floor plane is not normal to the camera angle, which means it's not a 90' degree straight view like an usual 2D game does. The problem adds on that perspective view is used instead of orthographic that causes distortions in space that results in the distance like feeling. In ZombieSoup, the camera angle used has a 10' degree offset from the usual normal line from the floor plane. Diagram 1 below shows a sketch of the current scenario. For cursor world location, we used visibility hit result under the cursor which gives us the result of whatever the cursor is pointing in the world space.

Intended View


Problem Statement

On ideal situation, where the character's actor location has the same Z (height) level as the cursor's world location, using the old method to calculate the Z rotation of the player character will not be a problem. However, the problem comes in when there is a height difference. Since we only wants the Z rotation the old calculation will ignore the Z difference. Shown in Diagram 2, you can see what happened to the player's actor location when u transform its Z to the same height as the mouse Z value. As you can see from the spawned particle location based on the player's location and the cursor location, there is an error caused by the non-normal view as the Z height does not go along with the camera's view. However, if you draw a between the two explosion smoke and between player's location and the projectile hit location, we can see that this two lines are perpendicular to each other.

Error


Analysis

From here we can see that the error is caused by the distorted perspective view and the non-normal camera angle. To attempt to fix this, we need to transpose the player's location in relative to the camera viewport as in, the "correct" Z axis movement. Diagram 3 shows an example scenario of what we need to do.

Formula


Solution

Based on Diagram 3, to perform the transpose, we need to find O value. According to the trigonometry formula, we would require 2 variable which are the angle and the A value. Angle can be obtained from the Camera Manager of the controller and the A value can be calculated by the difference between the cursor Z value and the player's location Z value. After performing the calculation, the transpose can be applied to the player's location to achieve as shown in Diagram 4.

Fixed


With this calculation performed, we can dynamically calculate where the player should point to regerdless of the height difference that might be available in the game. The only down side of this approach is that every mouse movement required to go through a formula calculation which may only take a very small amount of processing power that even a calculator can perform in split seconds.

Old Blueprint view

Old Blueprint

New Blueprint view

New Blueprint

By : Alex Chew Hoo Wing (@Aeonsparx)

Comments
LunarShuriken
LunarShuriken

Very interesting read, thank you!

Reply Good karma Bad karma+1 vote
Post a comment
Sign in or join with:

Only registered members can share their thoughts. So come on! Join the community today (totally free - or sign in with your social account on the right) and join in the conversation.

Follow Report Profile
Icon
ZombieSoup
Platforms
Windows, Mac, Linux
Contact
Send Message
Release date
Game watch
Follow
Share
Style
Theme
Anime
Players
Single & Co-op
Project
Indie
Twitter

Latest tweets from @zombiesoupgame

#ScreenshotSatuday of intense fight with monsters in #zombiesoup still in early #IndieGameDev #GameDev made in… T.co

Apr 20 2019

Testing some 2D expression in game #gamedev #IndieGameDev #cartoon #screenshotsaturday T.co

Apr 19 2019

Just added poison flower in the game. The poison deals damage over time. #screenshotsaturday #IndieGameDevT.co

Apr 15 2019

ZombieSoup Windows, Mac, Linux game Indiedb.com via Our @indiedb page of @zombiesoupgame . Will post ou… T.co

Apr 11 2019

Work in progress of #lvldesing & #gamedesign of our game - Build 13 #gamedev #ue4 #indiedev #igdev #unrealengineT.co

Apr 10 2019

Having some fun playing in our work in progress build. #gamedev #indiegame #zombies #UE4 #UnrealEngine T.co

Apr 2 2019

#NewProfilePic T.co

Mar 25 2019

Getting chased by zombies is a life threatening feat. Having fun animating in #blender3D #UE4 #UnrealEngineT.co

Mar 25 2019

Walk cycle test for cinematic. Walking down town. #gamedev #indiegame #Blender3d #ue4 #UnrealEngine T.co

Mar 25 2019

Embed Buttons
Link to ZombieSoup by selecting a button and using the embed code provided more...
ZombieSoup
Statistics
Visits
800 (1 today)
Last Update
Watchers
3 members
Articles
1
You may also like
FMJ Games Presents Soldier Girl
FMJ Games Presents Soldier Girl Third Person Shooter
Sword Art Online: Fatal Bullet
Sword Art Online: Fatal Bullet Third Person Shooter
Max Payne 2
Max Payne 2 Third Person Shooter
Dead Rising 2
Dead Rising 2 Third Person Shooter
Banzai Escape Ep 2
Banzai Escape Ep 2 Third Person Shooter
Dead Space
Dead Space Third Person Shooter