Hello! I’m David Consolo, Vice President of Experience Technology at Falcon’s Creative Group, and I’ve been passionate about game development ever since I was a kid. My journey took a professional turn when I began creating interactive experiences for theme parks at Falcon’s Creative Group.
At Falcon’s, we’re building a team of Unreal developers to create immersive location-based entertainment (LBE) experiences. I joined the Unreal Fellowship for Games to dive deep into Unreal Engine, specifically to enhance our projects and contribute to this exciting new direction.
The Fellowship was an incredible experience filled with diverse talents and supportive instructors. Over three intense weeks, we were tasked with learning Unreal Engine and creating an arcade game from scratch. Time management was crucial, but thanks to my background in game jams, I was up for the challenge.
Rong gameplay.
Pre-production
Game Concept and ideation
With the tight schedule, I knew I had to start simple. I’m a gameplay-first developer, so I focused on prototyping mechanics before anything else. I also wanted to learn Unreal Engine’s core fundamentals from scratch, which meant I would have to create my own player controller—a daunting but exciting task.
I’ve always enjoyed experimenting with physics in game engines, so I began by creating a simple sphere and used the Enhanced Input system to apply forces and move it around. Curious about other shapes, I tried a rock and eventually settled on a brick. Perfecting the controller for this tumbling brick became an unexpectedly fun endeavor.
Prototyping
By day three, I was getting the hang of the Blueprint visual scripting system. With the end goal of installing our games in an arcade machine equipped with joysticks, I decided to make it a two-player experience. I also developed a system to generate player bricks procedurally based on the number of local players.
While watching two bricks tumble around was amusing, the game lacked an objective. I wanted to keep the gameplay simple and avoid complex camera setups like split screens. When I introduced a physics-driven ball into the scene, everything clicked. The bricks hitting the ball back and forth felt engaging—it reminded me of a chaotic version of Pong or tennis.
At this stage, I called the game “Bad Pong” because it was extremely challenging to maneuver the bricks effectively, adding to the chaotic fun. My first review with mentors and classmates went really well; they loved the quirky feel of the player bricks struggling to score against each other. I spent time tuning the controls to make the bricks responsive enough for players to navigate while still maintaining a sense of weight and unpredictability.
Prototype of two physics paddles.
Development
Art and design
Initially, I considered two artistic directions: embracing a stylized aesthetic—think along the lines of quirky elements like refrigerators batting food items—or pursuing a photorealistic style that would enable me to fully explore Unreal Engine’s capabilities. Inspired by my recent travels to Saudi Arabia, I opted for the photorealistic approach, utilizing the vast array of assets from Megascans. I sourced rocks, cliffs, and textures that captured the essence of the Saudi landscapes.
Caption: Finished desert arena using Megascan assets.
Renaming the game
As development progressed and the game’s identity became clearer, I decided to rename it from “Bad Pong” to “Rong.” The new name is a playful mashup of “Rock,” “Pong,” and “Wrong,” encapsulating the game’s essence—a rock-themed twist on Pong with intentionally challenging controls that feel just a bit “wrong,” but in a fun way.
Programming
One of my favorite aspects was working with the Blueprint visual scripting system. Coming from a visual effects background with node-based compositors, it felt intuitive and, dare I say, fun. It was like playing a game within a game, connecting nodes and seeing immediate results.
I also implemented an AI system to control one of the bricks, allowing for single-player mode and even an “Attract Mode” where two AI-controlled bricks play against each other after 30 seconds of inactivity.
Gameplay enhancements
Feedback from mentors and classmates was overwhelmingly positive. They loved the chaotic feel of the bricks struggling to score against each other. I fine-tuned the controls to balance responsiveness with a sense of weight and unpredictability.
To add depth to the gameplay, I introduced several features:
- Boost button: Gives players a temporary speed burst.
- Dynamic shape-shifting: Bricks change shape every time a player scores, increasing the difficulty and keeping the game fresh.
- Camera Shake system: Utilized Unreal’s Camera Shake to enhance the impact of collisions.
- Dust effects and decals: Added particle systems tied to the bricks’ velocity and instantiated decal actors on hard hits to dirty up the arena over time.
BTS footage of dynamic shape shifting, camera shake, dust effects, and decals.
Audio design
The Sound Cue system in Unreal Engine was a joy to work with. I set up randomizations of clips, volume, and pitch within a flowchart, without having to build a new system from scratch. By tying audio attributes to the physics engine, I created a layered and dynamic soundscape that reacted to gameplay.
Caption: Sound Cue flow of the impact sounds.
Favorite Unreal Engine features
- Blueprint visual scripting: Accelerated development and made programming accessible and enjoyable.
- Megascans integration: Provided high-quality assets that elevated the game’s visual fidelity.
- Enhanced Input system: Simplified handling of player inputs, especially for multiple players.
- Sound Cue system: Streamlined audio implementation and added depth to the player experience.
Challenges and solutions
Initially, I approached development by building systems from the ground up, as I had done in other engines. This led me to overlook some of Unreal’s built-in functionalities, like the local multiplayer handling and input systems. Once I started leveraging these features, development became much more efficient.
I also realized the importance of clean Blueprint organization. My Blueprints started to get messy, which made troubleshooting more difficult. Moving forward, better organization will be a priority.
Editor’s Note: Check out the recording of De-spaghetti Your Blueprints, the Scientific Way from Unreal Fest Prague 2024 for tips on keeping your Blueprints in order.
“Spaghetti” Blueprints as I like to call them. Can get messy real quick!
Reflections
Creating Rong was an exhilarating journey. Starting from a simple physics experiment, it evolved into a game that balances fun and challenge.
If I were to start another project, I would focus on:
- Leveraging built-in systems early: Utilizing Unreal’s existing functionalities can save time and improve the game’s foundation.
- Blueprint organization: Keeping Blueprints tidy for easier maintenance and scalability.
- Iterative playtesting: Regular feedback loops to refine gameplay mechanics.
Rong on the arcade machine set up in Unreal Fest Seattle 2024
Advice for new Unreal Engine developers
- Dive into Blueprints: Don’t hesitate to explore the Blueprint system; it’s powerful, user-friendly, and most importantly, really fun to use in my opinion.
- Use available resources: Assets like Megascans can significantly enhance your project without extensive custom modeling.
- Start simple: Focus on core gameplay mechanics before expanding your project’s scope.
- Time management: Especially in time-constrained environments, prioritize features that offer the most value.
Final thoughts
The Unreal Fellowship not only expanded my technical skills but also connected me with a community of passionate developers. Rong started as a simple experiment with physics and evolved into a game that I’m proud of. I look forward to applying these experiences to future projects at Falcon’s Creative Group and contributing to our team’s growth in Unreal Engine development.
Thank you for joining me on this journey!