Vulkan vs Metal

Vulkan has turned out to be quite a bit of overhead to set up, so I’m going to be doing – no loss – prototyping in Xcode / Metal to start with. We’re still planning to shift to Vulkan when convenient and necessary for performance. I think most of the shader code is the same.

Why not Unity ?, and some other stuff…

Someone asked why not just use a framework, for example Unity. I did some research into Unity; installed it, ran some demos, watched a few videos on Youtube of people demonstrating its capabilities. It’s no good for what we’re doing. Unity – and competing frameworks in general – are oriented towards allowing run-of-the-mill game developers to produce endless and pointless clones of, basically Doom. That’s an oversimplification; there are a few templates for modern games: 1st person shooters (like Doom), 3rd person strategy games, etc, but they are all basically the same, with different skins, slight variations in the rules/’physics’, etc. It’s only a small exaggeration to say that there are thousands of titles in modern gaming, but really only 5-10 distinct games, mostly it’s just variations. TEREBINTH aims to differentiate itself qualitatively, and this means changing the rules from a low level, rolling our own graphics framework and physics framework. Because we are built around core mission of modelling and simulation, with gaming being just a secondary cultural application while the technical applications are primary, we have instituted a basic principle which we’ll try to follow in all of our products: Don’t show what isn’t ‘really’ there., or, put another way Don’t render what isn’t modelled. There will be no skins in our products. For example, in a flight-sim, there may be modelled a ground, where the atmosphere ends and the lithosphere begins; if you fly into it, you crash. It’s there, so show it. Typically though, flight sims want to paint all kinds of grass and snow and streets and farms and whatever on this ground. It’s just a skin. For the player of a game this can give the illusion that there is more to the virtual world that they are interacting with than they eventually realise is actually there, in the sense of being modelled in the game. Most modern games are very heavy on the skins, but when you strip all that off, and look at the complexity of what is actually modelled logically – the universe of the game in real (internal) terms – there simply isn’t much there. This is the lie of modern games, and what, in my opinion, makes them suck royally. It seems to me that Unity epitomises this approach to building gaming; they offer a pallette and toolset to the artist to paint all kinds of skins onto a game world for atmosphere, and they provide a primitive system for producing variations on the basic game templates out there. We’d like to do something both different, and substantially better.

Although it’s a secondary consideration, I will address gaming, our strategy for approaching them. Improvements will come through two main areas: the first is much more substantial and complex physics setups. The physics don’t need to match our world, it could be another possible world, but it must be complex enough to be really engaging to the natural intuition of the player. The second area doesn’t concern graphics or physics, but rather the literary, dramatic, historical, cultural content. The same level of artistic excellence that is found in the best novels, music, film, etc should be brought into gaming. This is one area I think a lot modern games do really well at, but there is always room for another entry. That’s one of the the beauties of art, there is always room for another great work, that does something quite different than what preceded it or is contemporaneous with it.

Our primary consideration is simulation, and the maxim above will guide us in this endeavor: Don’t render what isn’t modelled. To the extent that we enter the gaming world, it will be through adaptations of these simulations, as in the Falcon series, or similarly, the Sim-City or Total War series of strategy games for macro level stuff. I had a thesis some time ago that the way forward for the social sciences was via comprehensive collective development of formal referential ontologies through the SimCity pattern. For example, if you want to advance propositions about capitalism vs communism, not only would you need to define those terms in complete ontological systems, but actually go ahead and model the possible worlds in which these systems are being applied. Go ahead and model a virtual planet, with virtual countries, populated by virtual people, and model the entrance and application of these ideological systems. This is a scientific process, to the extent that the models are meaningful. (todo: recover, rewrite, and link this thesis)

Perhaps I should elaborate, but this may be sufficient to show the significant overlap between scientific endeavors and the gaming world, in this case not in the expected engineering domain. We already I think have established fairly well the significant overlap between commercial software gaming and technical operational software.


Thus ends a somewhat rambling post. Back to work for me!