Mentor Interview: JTStephano

Developer of StratusGFX.

The github repo for StratusGFX humbly states:

Realtime 3D rendering engine. Expect bugs and instability as it is still under development. The engine is free and open source (licensed under MPL-2.0). Please feel free to contact me about any questions or issues you have!

I sent u/JTStephano a message on Reddit after seeing a post about this graphics engine. Presently, I don't do 3D rendering: it's a Rubicon I haven't crossed yet. But I know I will someday, and resources like StratusGFX give me hope that I'll be able to approach the problem.

a render produced by JTStephano's StratusGFX engine

I'm grateful to JTStephano for answering my message for an interview. I'd also like to congratulate the project on crossing the milestone of 1,000 commits!

What follows is JTStephano's own responses verbatim to my questions (the headings).

How did you get into programming and game development? What games inspired you?

I got into programming due to discovering game engines (and tech behind games in general) and becoming a bit obsessed with how it worked.

Inspired programming: 1990s Doom and Quake

Recently inspired: Red Dead Redemption 2 because of how well-polished everything is. Doom 3 and Crysis 1/2/3 since it was amazing to see how much they could do with limited hardware.

What led up to StratusGFX?

I had written a small engine in college during a game jam that my friends and I used to make a small game. It only supported 2D and we ended up using it for some other school related projects.

The thought was “What if I took this similar engine and extended it to 3D?” It took a while since I didn’t know how to do 3D at the time.

Any fond memories on languages or systems from the past? Anything you were glad to see go out of style, or are there any features or core lessons missing from modern development tools?

I would say generally it’s cool to look at the hardware specs of past consoles and then look at which games accomplished the most within the limits of the hardware. For example, 512 MB of memory on the Xbox 360 yet they somehow got Crysis 3 to run and look great on it. It brings up the “How can I do more with less?” question a lot.

Any links to share?

Social (Discord): j.stephano


May people message you for help or feedback?

Sure! I’ll do the best I can to respond and help if someone messages.

Do you have any tips on persistence and overcoming problems? Do you code on a schedule? Do solutions come to you in the shower or while dreaming?

Don’t tie your sense of self worth to the problem. This way you won’t become overly distressed/upset when the solution doesn’t come right away and can much more fluidly keep working towards the end goal.

How can one decide if they need a custom engine?

I think it mainly comes down to if you have a specific list of features you require and you feel you could write an engine that specializes in doing just those few features better than normal.

Do you prefer rushing towards a minimum viable feature, or do you build to support your entire feature list?

Minimum viable feature. Break up feature lists into many smaller releases and celebrate each milestone even if it’s small.

What missing features drove you to develop / fork your own engine?

For me it was more that I’m just interested in the tech behind games so it made sense for me to develop an engine. The features I wanted were mainly those that helped me simulate some of the visuals I was seeing in games like Crysis 3 or RDR2.