top of page

Corn Wars Free For All
Made in Unreal Engine for Fortnite (UEFN)

Fortnite_20240616144245.jpg

Design Philosophy

Corn Wars is all about chaotic, wacky, moment-to-moment gameplay. The cornfield setting creates tension by limiting the player's visibility, but I didn't want this experience to be a simple game of hide and seek. To add an exciting twist, I introduced a mechanic that launches all players into the air at random intervals. When this happens, everyone's location is exposed, leading to intense aerial combat where eliminations can occur before players even hit the ground.

Chaos and Corn

Players race through a towering corn maze, spiced up by random jumps that break the monotony. These leaps reveal positions and ignite thrilling mid-air combat.

jumpgif2.gif

A-maize-ing Arsenal of Weapons

Utilizing what Fortnite does well and letting players get wild with the weapon choices. 

WeaponCutGif.gif

Verse Code

In order to create a timer that would randomize after it completed, I had to create a creative device using Verse. 

using { /Fortnite.com/Devices }

using { /Verse.org/Simulation }

using { /UnrealEngine.com/Temporary/Diagnostics }

using { /Verse.org/Random}

using { /Fortnite.com/UI }

using { /UnrealEngine.com/Temporary/UI }


 

# A Verse-authored creative device that can be placed in a level

Jumper_Device := class(creative_device):

    #Reference to timer device that will count down

   @editable

   TimerDevice : timer_device = timer_device{}

 

   @editable

   var current_time : float = 10

    #Customize interval in editor

   @editable

   var max_time : float = 15.0

   @editable

   var min_time : float = 3.0

    #Logic to determine if we should use random intervals or fixed value for timer.

   @editable

   var GenerateRandom : logic = true

 

    #Logic to execute on first frame.

    OnBegin<override>()<suspends> : void =

        SetDuration()

        TimerDevice.SuccessEvent.Subscribe(OnSuccess)

 

    #Gets Random value between min and max values.

    RandomTime() : float =

       GetRandomFloat(min_time, max_time)

 

    #Method that gets subscribed to built-in success event. This event fires when the timer completes.

    OnSuccess(Agent : ?agent):void =

        SetDuration()

       

    #Sets timer to timer between interval or fixed value.

    SetDuration() : void =

        if(GenerateRandom = true):

            set current_time = RandomTime()

            TimerDevice.SetMaxDuration(current_time)

        else:

            TimerDevice.SetMaxDuration(current_time)

Creative Devices Used

Round Settings Device

Audio Device

Item Spawner Device

Radio Device

Elimination Device

HUD Message Device

Player Spawner Device

Wildlife Spawner Device

Item Granter Device

VFX Spawner Device

Timer Device

Movement Modulator Device

Air Vent Device

bottom of page