top of page
LowPolyGameRoomAlpha1.png

Mikey Ace

Studios

2D/3D VR Artist & Animator 
Game Dev | Music Producer

 
Unity Certified Professional Artist

2022-2025

MallMayhem_Web_16_9.jpg

awarded
4th place

 

Mall Mayhem

The 2024 Mobile Competition for Meta Horizon Worlds Short Loop for Mobile Worlds.

Find all 5 items in this fun, fast-paced scavenger hunt through a shopping mall. Powerups and Traps add to the Mayhem! 

Screenshot (65).png

awarded
3rd place

 

Parakeet Castle

The 2022 VR Builders’ Competition for Meta Horizon Worlds challenged artists and developers to create an unforgettable adventure in virtual reality … in 5 weeks.

IMG_2715 (2).jpg

Ace of Clubs

A VR experience

With nightly dance parties and more than 6,500 likes, Ace of Clubs is one of the most popular party hangouts in Meta Horizon Worlds.

IMG_0184_edited.jpg

Fun House

With daily events and more than 6,500 likes, Fun House has many carnival rides, games, performance stage, and a live DJ. Fun for everyone. 

FarmFighterTitle.png
ezgif.com-resize.gif

Best Multiplayer Game 2021

We won!

At the 2021 Global Game Jam hosted by Playcrafting, the largest jam site in the U.S. (second-largest in the world), my team won the Couch Crew Award for best local multiplayer game! “Farm Fighter” is a 3D competitive farming game created in 3 days by 5 people: David O. (game design & programming), David L. (audio & music), Stephanie (UI design & UI art), Kevan. (UI programming), and me (3D art & animation). Thank you to the GGJ and Playcrafting for hosting this amazing annual event, and thank you to my teammates for a fantastic experience making a fun game! 

MosquitoesVSHumans.png

A multiplayer

Virtual Reality Game

 that aims to start a conversation. Our game design highlights that mosquitoes are the most fatal animal in the world (killing almost a million people per year) and educates players on prevention methods that can save lives. In the game, you are either a junior NJ mosquito controller whose job is to employ mosquito prevention measures and keep the citizens of New Jersey safe. Or you are a mosquito, hungry for human blood.

unnamed-1.png
3b4676_d68e36328f7746a4b64185e0148180ab_
Mike G Bio Pic small.JPG
Unity C# Game Developer
 
 
Blender 2D/3D artist & Animator
blender_community_badge_white-1.png
47b1815866ebf696b1535a00b6fdf83c.png

Congrats to my sister Lauren Luge

on 900,000 Subscribers on Youtube!

Play our game Ft. Luge & her dog Boo

in an epic wrestling puzzle game!

What You Can Customize

There are 2 scripts in this project that you can edit:

  • CUI_Trivia 

  • CUI_SceneSelector

Change settings in property menu

in Horizon Desktop Editor

No Coding needed

  • Select the [CustomUI] Trivia Gizmo 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Then go to its property menu on the right and scroll down until you see the

CUI_Trivia (Custom UI) info.

Now you can change any of these settings:

  • Drag and drop audio SFX

  • Drag and drop Custom Background (Use size 1000 x 540)

  • Change the names of any of the colors of the UI

  • Enter numbers of players and questions

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1) Game Rules & Flow

  • questionDurationSeconds (number, default: 10)
    Per-question countdown in seconds.

     

  • totalQuestions (number, default: 10)
    How many questions per game. Automatically clamped to the size of your question bank.

     

  • randomizeQuestions (boolean, default: false)
    Shuffle question order each game if true.

 

 

2) Visual Theme (Colors & Background)

All color props accept CSS strings like "white", "#ffd700", "rgba(0,0,0,.5)".

  • Title & Buttons:
    titleTextColor, startButtonTextColor

     

  • Timers & Prompts:
    timerTextColor, pregamePromptTextColor, pregameCountdownNumberColor, questionProgressTextColor

     

  • Question & Answers:
    questionTextColor, answerTextColor, votedIndicatorTextColor, answerRevealNamesTextColor

     

  • Voter List:
    votersHeaderTextColor, votersListTextColor

     

  • Scoreboard:
    postgameTitleTextColor, leaderboardRankTextColor, leaderboardNameTextColor,
    leaderboardScoreTextColor, leaderboardHeaderTextColor

     

  • Background Image (optional):
    backgroundTexture: TextureAsset
    If provided, a full-bleed background image is drawn behind the UI.

3) Sounds (Optional, Per-Player Where Applicable)

Provide AudioGizmo entities for these moments:

  • pregameTickSfx – Plays at 5-4-3-2-1.
     

  • pregameGoSfx – Plays on “Go!”.
     

  • voteFinalTickSfx – Plays at 3-2-1 near the end of each question timer.
     

  • voteSfx – Plays only for the player who just voted.
     

  • correctAnswerSfx / wrongAnswerSfx – Played to each player based on their result after reveal.
     

  • winnersSfx – Played when the final leaderboard appears.

4) Scoreboard Layout

  • leaderboardMaxPlayers (number, default: 12)
    Controls how many winners to show on the postgame screen. The layout automatically scales fonts/row heights and splits into two columns. (Try to keep this under 22 players so the rows don't go off the screen.

 

 

 

 

5) Skybox (Custom UI - Scene Selector)

  • The game comes with 3 skyboxes that players can change via Custom UI.

  • Creators can add their own skyboxes and related images via fields in the Desktop Editor.

 

 

 

 

6) Environment Accent colors (Custom UI - Scene Selector)

  • The game is inside a 3D theater space that has 5 accent colors that players can change via Custom UI.

  • To change the set of available accent color objects in the Desktop Editor, a creator should make a new group folder on the left hierarchy with all of their new objects for which they want to change the accent color, than drag that folder to the public variable on the right that says Accent Color in the script. 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Editing the TRIVIA Question Bank (Custom UI - Trivia)

Questions are located at  

private questions: TriviaQuestion[] array:

type TriviaQuestion = [

{

  question: string;

  options: string[];     // Exactly 4 options

  correctAnswer: number; // Index 0–3

};

 

Add or edit questions:

private questions: TriviaQuestion[] = [

  {

    question: "What year did the Miracle Mets win the World Series?",

    options: ["1965", "1969", "1973", "1986"],

    correctAnswer: 1,

  },

  // ...more questions

];

 

Rules & tips

  • Provide exactly 4 options per question.
     

  • correctAnswer must be within 0–3.
     

  • totalQuestions cannot exceed questions.length; overflow is clamped automatically.
     

  • Set randomizeQuestions: true to shuffle per game; otherwise order matches the array.

How Voting Works (Per-Player UX)

  • Players click one of the 4 Pressable answers.
     

  • Their personal selection is locally highlighted and they see “✔ Voted” under it.
     

  • The host UI shows “Voters this round:” as names vote in.

  • No one sees your answer but you until the correct answer is revealed. 
     

  • On reveal, the correct answer is highlighted and each answer displays a fallback list of voter names .

Game Timeline 

  1. Idle – Title + “Start Game” button.
     

  2. Pregame (5→Go) – Optional tick/go sounds.
     

  3. Question – Timer counts down; final 3 seconds can tick.
     

  4. Reveal – Scores update; per-player correct/wrong SFX play; shows who voted where.
     

  5. Next Question or Postgame – After a short pause.
     

  6. Postgame Scoreboard – Shows Top winners for a few seconds, plays winnersSfx, then resets so players can start a new game.

 

 

Layout & Sizing

  • Game panel canvas is set for 16:9 with:
     

    • panelWidth = 1000, panelHeight = 540 (protected fields)
       

  • To change size, update those fields in the class (or subclass and override).
     

The main scoreboard UI during gameplay is intentionally removed for clarity. Scores still track live under the hood.

 

Extending the UI (Common Tweaks)

  • Change fonts/colors: Update the style objects (e.g., fontFamily: 'Optimistic', fontWeight: 'bold').

  • Custom backgrounds by round: Swap backgroundTexture at phase changes (Drag and drop a different texture via CUI_Trivia property menu).
     

  • Longer reveals for tough rounds: Increase the delay before the next question inside QuestionDurationSeconds via CUI_Trivia property menu. 

 

 

Safety & Validation

  • All gizmo plays are guarded; missing or invalid SFX will not crash the game.
     

  • Votes outside the question phase are ignored.
     

  • The question order is calculated once per game and trimmed to maxPlayable.

 

 

Troubleshooting

  • My background isn’t showing.
    Ensure backgroundTexture is a valid TextureAsset and not undefined. 

     

  • Names don’t appear under answers on reveal.
    That list is built from the votes map at reveal time. Confirm players actually voted and that the phase reached reveal.

     

  • No sounds are playing.
    Confirm the correct SFX property is connected to an AudioGizmo entity. Test by triggering the phase that uses it (e.g., start game for pregame ticks).

     

  • Too many players to fit on leaderboard.
    Lower leaderboardMaxPlayers or increase panelHeight. The layout scales down automatically, but extreme counts will get tight. Try to stay under 22 players.

TriviaRemixPropertyPanel.png
Screenshot (963).png
Screenshot (961).png
Screenshot (965).png
Screenshot (966).png

Any questions, please reach out below:

Mike G Bio Pic small.JPG
  • Black YouTube Icon
  • Black Twitter Icon
  • Black Instagram Icon

© 2025 Mikey Ace Studios

bottom of page