A little while back I did a write-up on how I make and export my game trailers fully in-engine: https://www.darzalgames.com/in-engine-trailers/
Long story short, I like programming and I don’t like working in video editing software, so this makes perfect sense to me.
Most devs I’ve shared this with think it’s a step too far: that it’s most sensible to use this technique to export just the gameplay clips reliably, and then you use those in editing software to add transitions and titlecards and whatnot. “Best of both worlds” they claim. But I gotta say, being able to re-record and re-export the trailer at the touch of a button in my IDE is just so nice. Especially with my latest game, I did some last-minute changes and it was trivial to keep the trailer and screenshots up-to-date.
I’m curious to hear what folks think about this system!
Clever solution. I have heard of scripting gameplay sessions for repeatable video capture, but I don’t think I’ve heard of automating the entire production process. That is probably more work than I care to put in, but it does at least get me thinking about how I could implement the gameplay scripting component. Capturing and recapturing footage for even my meager trailer was kind of a pain.
One thing that I’d have to deal with for my use case is controlling randomness, especially in combat. Since combat is not strictly deterministic, it can be difficult to capture the right flow, and two recordings of the same encounter will play out differently. If I were to implement something like this, I’d probably want to come up with a way to load a set of predetermined values, so that I can program exactly what I want to show in the video.
Yes, the cutscene code can end up being quite specialized and scripted beyond how the game normally works. Do you use a seed for randomness? I suppose you could build your trailer around a particular seed if you don’t want to change the fight logic or make hard-coded fights specifically for the trailer.
I just let the randomness flow for my latest trailer, since wasn’t gameplay critical. It was mostly pretty aesthetic stuff like which backgrounds are displayed, what the cooking button says “yippee/wow/I did it” etc, where items are hidden in the redecorated room, stuff like that. I thought it was kind of fun seeing how the trailer “turned out” each time, but I get that’s not usually ideal!