A Unity Programmer in Unreal Engine’s Court: Editor GUI Programming

Time for a snapshot of the kinds of details that video game programmers often have to fuss over when learning a new system. This time it’s a comparison of Unity and Unreal’s editor GUI frameworks.

In Unity3D, the editor GUI system is quite well-documented and understood. You fill an OnGUI function with all the functions that display your GUI.


Source: Unity Script API reference, Editor.OnInspectorGUI page

This is called an Immediate Mode GUI. Every frame that the GUI is displayed it looks at all of the functions being called as instructions on what to draw, what not to draw, and how the GUI should behave. It’s all fairly well-documented via Unity’s script API, which makes it fairly easy to learn the basics of how to create new editor GUIs.

So, what’s Unreal’s equivalent?

… Time to vent for a little bit.

Continue reading

A Unity programmer in Unreal Engine’s Court: Introduction

By Mike

Well, I have a lot of updating to do here. That tagline in the “About” section, knocked off from Mythbusters, hasn’t been accurate for a long time.

As of now I have five years of game development experience, inclusive of the outside-of-classroom projects I did while I was in my last year of grad school. Adam has exited the games industry entirely for the tech sector, although he’s still exploring games on his own time and regularly there for me to bounce thoughts and ideas off of. For both of us the days when we were in school are so far in the rear-view mirror as to be irrelevant.

In those years I’ve worked at WayForward Technologies, Stompy Bot Productions, and NostalgiCO, and I’ve contributed to a couple of other independent game projects. I’ve worked on three published projects based out of Unity 4.x, going on a fourth with Cryamore coming sometime early 2017. I worked with Unreal 4 for about a year prior to its public release, and recently worked on an Unreal 4 VR project for Gear VR. I’ve wrapped my arms around a wide array of systems, including localization, UI, save data, combat, game state management, animation, input management, and a variety of eccentric Android systems, not the least of which was the Fire Phone and the illustrious Madcatz Mojo.


Here’s a build target everybody wants on their resume.

Yeah… I’m a little different than when I started this blog. Currently I’m one of the most-read Quora writers in game development. I’m writing a lot more regularly about game development topics, so I figure it’s way past time for me to update this blog.

I’m embarking on a bit of a personal project, which hopefully I’ll be revealing soon. As the majority of my professional experience has been with Unity to date it seemed like the decision of what engine I’d build it in would be a no-brainer, but as I’ve had the time to do some research the decision has become less and less clear. As an experiment I’ve been implementing some preliminary systems in each engine, and I felt it forthcoming to share the experience so far.

Continue reading

Kingdom Hearts 3D Review: A Dream of Something Better

-By Adam

The Kingdom Hearts series is a strange beast. It started as a fanciful fling between Squaresoft and Disney, a pair of very unlikely bedfellows brought together by the fact that they shared an elevator. Over the past dozen years, developer Square Enix has evolved the series into a truly vast thing: increasingly complex, adored by its fans, and alienating to newcomers. The concept was originally very appealing to me, as I tend to enjoy unlikely combinations like this. I found the juxtaposition of cartoon whimsy and melodramatic fantasy to be irresistible, and I’ve played (or at least tried to play) almost all of the games in the series since the beginning. Sadly, as the stories of each successive game built on top of the rest and the universe grew more complex, I began to notice the quirkiness fading away with each iteration, only to be replaced by half-baked game mechanics and a heaping helping of hollow plot twists. I grew tired of watching such a fun concept go to waste.

The latest game, a 3DS spin-off called Kingdom Hearts 3D: Dream Drop Distance (D.D.D., three “D”, geddit?) was released a couple years ago, and frankly, as a disillusioned former fan, I couldn’t have cared less. I had all but sworn off the series after the previous iteration delivered some of the worst writing I’ve ever seen in a video game (truly a remarkable achievement). However, some friends of mine had seen fit to praise the latest entry, so being the optimist/masochist that I am, I decided to let Sora and friends break my heart just one more time. Perhaps, as Square Enix prepares to unleash the next main entry, Kingdom Hearts III, they would be able to return to their whimsical roots. What I found was, to my shock and bewilderment, equal parts Delightful, Defective, and Depressing (GEDDIT?).

Continue reading

Tabletop 101: How to Build an Effective and Fun Pathfinder Character

By Mike

Lately I’ve been playing a lot of Pathfinder with a few of my friends via Skype and Roll20. In that time I’ve assembled some observations about how to effectively build a character in Paizo’s answer to Dungeons and Dragons.

One of the challenges of building a character in this game is the sheer number of options that are open. At time of writing the game has more than a dozen character classes, hundreds of feats and character traits that you can add to a character, not to mention dozens of spells per each level — and that’s only the tip of the iceburg. While these options are part of the core appeal of the game, allowing players to create characters very organically and find some way of making any aspect of a character into a tangible aspect of gameplay, they’re also overwhelming to deal with. There’s an infinite variety of ways to build a character, but only a handful of those options are actually worth pursuing.

The key to dealing with this challenge is realizing that Pathfinder, while descended from the same stock as D&D 3rd edition, is not D&D 3rd or 3.5. While of the same spirit as Dungeons and Dragons, it has clearly and distinctly re-defined itself as its own unique game, in that none of the intuitive conventions of 3/3.5 for building a character apply in any remote sense. Once this is understood, the game is INFINITELY more interesting and more workable, and you’ll begin to realize that any concept you can imagine is viable as a character — just not necessarily in the way that you’d think. For instance, multiclassing is, while easier to do than it was in 3e, almost entirely displaced by other options. Races have a stunningly strong influence on the viability of certain character builds, and the difference of allowing Traits and not allowing Traits can mean life or death for certain types of characters.

Continue reading

On AI Design

By Mike

A friend of mine recently asked me to explain AI design, specifically with respect to predominantly Player vs. Player, turn-based games. Duels of the Planeswalkers, we’re looking squarely at you. He wondered how easy or difficult it was to fine-tune it to where it seemed sensibly challenging given the intended difficulty level without being too good. The question demands an answer more detailed than I could contain in the text messages we were trading, so here on Infinite Wrench I figured I’d try to cover the full scoop.

Continue reading

Tabletop 101: Sci-fi vs. Fantasy — A Problem of Abstraction

By Mike

I’ve been working on designing a tabletop RPG in my spare time for a little while now, based on an original sci-fi setting I’ve been working on for the past few years. In the time since I’ve started working on this system I’ve found that sci-fi has some odd bumps in the road compared with a fantasy RPG. The main issue at hand is abstraction.

A fantasy RPG is very easy to run and develop, mainly due to the conceit that a fantasy game will typically take place in a setting that, apart from concessions made for magic, is less advanced than our own. The idea behind a tabletop RPG is that if players can think it, they can do it, and 90% of people can most certainly think of most of the possibilities at hand in a medieval setting.

By contrast, sci-fi demands abstraction, owing to far future technologies and complex knowledge bases that players, in all but a few rare cases, can’t be expected to understand. It leads to a lot of knowledge and skill rolls in place of the players actually understanding what their characters are doing or thinking. Someone does an engineering roll — is the ship fixed? Yes/no. Someone does a piloting roll — did they dodge another ship? Yes/no. Someone does a biology roll — can they identify that animal? Yes/no. Making the game feel exciting is a big problem, and it’s easy for all too many things to feel like a coin flip.

Continue reading

The Best Game Engine

-By Mike

The answer to the question “what is the best game engine?” isn’t simple. As I’ve said before, it all depends on what kind of project you’re building, what sort of resources you have to work with, and what kind of workflow you’re comfortable using. The best game engine, then, is the one you program yourself. In that situation, you define all of those things for yourself, in a way that is perfectly tailored to your project, your team, and your way of thinking.

The question you’ve inevitably got to ask yourself as you approach building your own game engine is “why would I do it if I have so many good options available?” It’s hard to justify re-inventing the wheel in a world where the likes of Unity3D, Game Maker, or UDK exist, or even when you consider the libraries available for this kind of thing in Flash. However, all of these options have shortcomings to take into account. Some of them are in terms of an engine’s power, some of them are in terms of organization or workflow, and some of them are deceptively a result of how broad the tools and scope of the engine are.

Continue reading