Thursday, December 26, 2024

Game Design in iNK

 Hi all, wishing you happiness and health at the end of 2024.

This was an intense, interesting, and productive year for gamedev. 2023 ended with really bad news for gamedevs, which continued into 2024. For a variety of reasons, the industry took a big hit, and a lot of people are feeling the pain. My heart goes out to devs who lost jobs, or even left the industry altogether. It was a big loss.

I have been plugging away on my own journey, mostly working on indie projects and paying the rent. I can't decide if I'm more excited about working in Unreal 5, or happy to stay in my comfort zone using Unity. It varies from project to project.



My big news is that early in the year I took on the role of Lead Game Designer for iNK Stories in Brooklyn, New York. I have history with iNK going back almost 10 years, so it was great to reconnect with old friends, and make some new ones.

It's been an adventure working with iNK on several projects, spanning multiple platforms. I especially enjoy being on-site in NYC for collaborative sessions and motion-capture shoots. The clients and talent I have gotten to work with are top-notch. I can't wait for an official announcement to share!

Wishing everyone a great 2025, and the strength to take on the obstacles ahead. Keep your loved ones close, enjoy some gaming sessions, and if you have time, explore some gamedev ideas. Dare to dream, big and small <3

Wednesday, December 13, 2023

Galactic Horizon

I've worked on a few Unreal Engine 5 projects lately, but due to NDA restrictions, I haven't been able to show as much as I'd like to. That's why I'm really happy to show the Galactic Horizon Demo I helped build with N-Fusion Interactive.


*Turn up the video quality if you watch the embedded video please!
**Skip to 30 seconds if you want to jump past the menus.

In this demo you take on the role of an interstellar traveler investigating various deep space planets. You analyze the atmosphere and local flora and fauna. Ultimately your goal is to determine if the planet is ideal for human colonization, interplanetary trade, or maybe should be avoided.

The demo was made by a small team using early versions of UE5 as they were released. Some things I learned more about along the way:
  • Sequencer (cameras, animation blending, and BP events)
  • UI Animation
  • Media Player/Media Textures
  • More Advanced BP Scripting
  • Ultra Dynamic Sky/Weather
  • Fluid Flux
  • Landscapes
  • Brushify
  • Procedural Foliage Volumes
  • Niagara Mesh Renderer (for flying ships and creatures)
  • Level Streaming
  • Cinematic Layouts
  • Displacement Materials on Nanite Landscapes
  • Manual vs Automatic LODs

After spending so long developing projects in Unity, it's really encouraging to dive back into Unreal and find out how my experience translates into the latest version of the engine. Some things are done the same, some things are done differently, but the underlying methodology is very similar.

But so far, in UE5, everything we make tends to be bigger, faster, and more detailed than what we've done in the past! I am loving this journey.





Image and video credit to N-Fusion Interactive (Jeff Birns, Jason Zisk, & Tyler Munden)

Friday, July 21, 2023

Home Office Webcam: Professional, Practical


When you work fully remote, your webcam presence is your professional presence. But depending on who you work with they may have different expectations on how you should present yourself. Gamedev tends to be more casual. The focus is on what you contribute, and it doesn't have to be a sleek corporate look.

This room is my dedicated office for work. But it's also where I game and socialize online. I try to keep it clean and presentable. And my background contains my personal interests, games, and decorations.

Of primary interest is my retro-gaming shelf. It holds four generations of working Nintendo platforms (NES, SNES, N64, & GameCube) with hundreds of titles (original physical cartridges), and a small CRT that fits perfectly into the shelf.

My walls have movie posters, and framed fan-art graphics for classic games (F-Zero, Star Fox). And behind me is my wife's futon/sofa, which we keep so that the office can be used as a guest room if friends/family want to stay the night.

Lastly is a cat bed and pub chair for my darling cat Izzy. She likes to make an appearance when I'm doing video calls. But she does get banned from the office when she gets too demanding of attention. I pay her back with fish puree later.

Let me know if you think my home office setup is appropriate, or if you have any tips. Thanks! <3

/Lastly: I always use headphones on video meetings to reduce line noise on the call. I suggest everyone do that!

Monday, June 19, 2023

Unreal Engine 5, Animated Billboard Video Solution

The goal was to animate several billboards hanging from a futuristic city tower.

I started out with the building and five signs displaying static images. I copied the signs and arranged them into a 1920x1080 canvas to create a reference texture.




I brought the billboard texture layout into Adobe Premiere, then gathered stock videos to replace each sign.

The stock videos were imported into Adobe Premiere and masked over the static billboard images in the layout texture. A final looping composite video was created (MP4, 1920x1080) as well as an image to be used for UV mapping.

Then I used Maya to apply a single material to all the signs' display screen geometry. UVs were adjusted to optimally display each portion of the video. The signs were exported as FBX and reimported into UE5 with a temp material displaying the static image of the video.

The final task was importing and playing the composite video.

I copied the composite video into the UE5 project's Content/Movies directory.

Then, using UE5's Content Browser I imported the MP4 file into the same directory (Content/Movies) to create a File Media Source, Media Player, and a Media Texture.

  • The File Media Source contains the File Path to the MP4.
  • The Media Player controls the video playback, including Play on Open, Shuffle, Loop etc.
  • And the Media Texture renders the video to a texture, which can then be referenced in a material in the world.

I changed the material the signs were using to render the Media Texture linked to the billboard video.

The final step was using Blueprints scripting to make the Media Player actually play the movie at runtime. There are a variety of ways to achieve this. I did it with a custom event (PlayMedia) and an event tick that checks that the media “Is Ready”, then plays it.

The result is one Media Player being rendered on multiple screens, as if they are each their own video.


*This is a general runthrough of the methods used to achieve this goal. It is not a complete tutorial. There are plenty of existing resources that cover the various techniques used (like the Media Player). If you would like me to expand this article, or if you have specific questions, feel free to contact me!


Tuesday, February 7, 2023

r.Streaming.PoolSize

If you're working in the Unreal Engine 5 Editor and you're having trouble getting your textures to stream in, change the texture streaming pool size.


In Cmd type r.Streaming.PoolSize then space and a number.

r.Streaming.PoolSize 3000

Wednesday, July 27, 2022

Gardening

HOW IT STARTED   /   HOW IT'S GOING


I used to have a hard time keeping a house plant alive. But now I've embraced a small garden for the hot and sunny time of the year.

Gardening is a great way to balance out the gamedev lifestyle. It forces you out into the sunlight. Requires you to do some physical activity. And gives you valuable time away from screens.

As time marches on, you witness the cumulative change happening before you. Just a little bit of progress each day amounts to major change, and bears fruit in the end! Much like we hope for our gamedev projects.