I started with the main mechanic, something that has to do with the theme signal.
We chose the radar signal theme to create a large size map with 1 enemy where you have to find objectives to repair your ship that has crashed.
So I created a radar that shows on a tv screen. what this radar can see is: walls(map), objectives and the enemy.
I created this by using the UI in Unity, camchanges and also layermask to have certain object that the radar cam can see.
As you can see I use the unity.UI slider and changed the slider from left-to-right to radial 360 degrees.
I then duplicated that same UI and reversed it. so the effect of seing the map gets reversed to also getting hidden.
This gives out a low poly radar that works perfect for the genre of our game. I then turned on the cam from above that follows the player.
Then I assigned all the object i want to see on the rader to the radar cam layer.
public class PhoneRadar : MonoBehaviour
{
private Animator phone;
public GameObject radarCanvas;
public GameObject informationCanvas;
public Camera cameraOne;
public Camera cameraTwo;
public GameObject camera;
private Movement playerMovement;
private bool inOut = false;
private bool usable = true;
private float timer = 2.75f;
private void Start()
{
playerMovement = GetComponent<Movement>();
radarCanvas.SetActive(false);
inOut = false;
cameraTwo.enabled = false;
phone = GetComponentInChildren<Animator>();
}
private void Update()
{
if (usable)
{
if (inOut == true)
{
if (Input.GetKeyDown(KeyCode.Q))
{
phone.Play("Phone Flip In");
cameraTwo.enabled = !cameraTwo.enabled;
cameraOne.enabled = !cameraOne.enabled;
playerMovement.enabled = true;
radarCanvas.SetActive(false);
informationCanvas.SetActive(true);
usable = false;
}
}
if (inOut == false)
{
if (Input.GetKeyDown(KeyCode.Q))
{
camera.transform.rotation = Quaternion.Euler(0, transform.rotation.y, transform.rotation.z);
playerMovement.enabled = false;
phone.Play("Phone Flip Out");
StartCoroutine(OpenRader());
usable = false;
}
}
}
if (usable == false)
{
timer -= Time.deltaTime;
if (timer <= 0)
{
if (inOut == false)
{
inOut = true;
}
else if (inOut == true)
{
inOut = false;
}
timer = 2.75f;
usable = true;
}
}
}
private IEnumerator OpenRader()
{
yield return new WaitForSeconds(2.75f);
cameraOne.enabled = !cameraOne.enabled;
cameraTwo.enabled = !cameraTwo.enabled;
radarCanvas.SetActive(true);
informationCanvas.SetActive(false);
}
}
I also added a material that projects out a tv white noise screen.
I then created our objective of the game, the spaceship part pickups and a small and basic inventory system.
using UnityEngine.SceneManagement;
public class Inventory : MonoBehaviour
{
public List<GameObject> items = new List<GameObject>();
public List<GameObject> objectives = new List<GameObject>();
private void Start()
{
for(int i = 0; i < objectives.count; i++)
{
objectives[i].SetActive(true);
}
}
private void Update()
{
if (items.Count >= 5)
SceneManager.LoadScene("YouWin");
}
public void UpdateUI()
{
for (int i = objectives.Count - items.Count; i < objectives.Count; i++)
{
objectives[i]SetActive(false);
}
}
}
I also created a bit of optimization for the playerhealth when u get hit.
This creates a blood splatter on your scren where the alpha of the image gets higher so it really gives the feeling of losing all your health
And as last thing to do on my list is making cutscenes for the game. (The videos are very dark so in light rooms it's hard to see)
Date: Jun 27, 2022
– Project: GameJam (Theme: Signal)
– Duration: 1 Week
– Team: 2 Devs, 3 Artists
My Part: Map Radar, Pick Ups, Animations, Cutscenes
Summary:
We made a game for the International Educational Game Jam 2022 our game needed some mechanic that followed the theme Signal.
Our mechanic would be a radar that shows the map you move on and shows you the objectives and the enemy.