Pop Shot

VR Balloon Shooting Game

Here's a fully-playable game I developed to be sold in the official Oculus Store. Pop Shot is a fun-focused shooter where you pop scores of balloons using dart guns, crossbows, hip-shots, and other creative techniques. Popping balloons is such a BLAST in VR. Pop Shot's approach puts you right into the action immediately. Lose yourself in Pop Shot's immersive and colorful environments. Find your own personal playstyle, from casual-and-cool or try-hard. There's something for everyone. Release some stress. POP SHOT!

  • Available in the official Oculus Store: Pop Shot
  • 16 levels of action including Playground, Western and Moon environments
  • High-Point Scoring System
  • Features a Dart Gun, Crossbow and Sawed-Off Shotgun
  • Available for Oculus Quest and Rift
  • Download the demo here: Pop Shot Demo

Game Demo:



Screenshots:











Code Sample:

private void MoveBalloon()                                
{
    var lastWayPointIndex = wayPoints.Length - 1; // keep track of the last waypoint
    Vector3 lastWayPoint = wayPoints[lastWayPointIndex].transform.position + new Vector3(0, 2, 0);  // make lastWayPoint the position plus 2m above ground
    Vector3 nextWayPoint = wayPoints[nextWayPointIndex].transform.position + new Vector3(0, 2, 0);
    Vector3 direction = nextWayPoint - transform.position; // direction applied to the balloon
    
    //If enemy is more than 0.1 meters from the last waypoint
    if (Vector3.Distance(transform.position, lastWayPoint) > 0.1f)
    {
        speed = Waves.GetComponent<Waves>().balloonSpeed;
        // Keep moving towards the next waypoint
        transform.Translate(direction.normalized * speed * Time.deltaTime, Space.World);
    }
    
    //increase index so if enemy reaches one waypoint
    if (Vector3.Distance(transform.position, nextWayPoint) < 0.5f && nextWayPointIndex > lastWayPointIndex)
    {
        nextWayPointIndex++;
    }
    
    //Balloon at Finish
    if (nextWayPointIndex == lastWayPointIndex && Vector3.Distance(transform.position, lastWayPoint) < 0.5f)
    {
        dieSound.GetComponent<DieSound>().PlayDie();
        GameVariables.bummers++;
        Destroy(this.gameObject);
    }
}