Forest of Fun

Claire's Personal Ramblings & Experiments

Godot on Console

micro

Taking a break from my tools articles to write about Godot on PS5 and PSVR2.

I’m going to lay out

  • My disagreement with the statement given
  • Thoughts on W4 vs Foundation lines
  • Go over their reasons
  • Explain my studio plans, which include freely sharing any Godot port work

I am sure that there are many things which triggered the Godot foundation to put out an article stating...

The Foundation does not plan on providing console ports at this time

Pretty spicy and strong statement, and I think it's a bad one but let's step back. As this series of articles has shown, about a month or so ago I stepped down from my job at Adobe and returned to my lifelong passion of games. I spent the bulk of that time at Sony PlayStation in a core tech team and then later shipping Dreams with Media Molecule. Prior to that I worked at a bunch of studios and a LARGE chunk of that work is porting. Often other companies and a variety of tech bases. I’ve shipped code on all of these platforms using custom in-house engines: PC, PS5, PSVR, PS4, PS3, Web, Mobile, Xbox 360, Wii, Nintendo DS and PS2. Yes I also have experience with Unity and Unreal but custom tech has always been my preference. I am not a render programmer or dedicated engine programmer by trade but I have done both jobs.

There are no villains in this story. I think everyone is awesome. I love Godot as an engine and I think most of the folks at W4 games have their heart in the right places, doesn’t mean I can’t disagree.

But as I’ve covered, I recently started my small games company and as part of last month’s paperwork I signed up for a PlayStation developer account, signed a bunch of contracts, got my umpteenth DevNet account and signed in. Here I asked about the status of Godot and honestly was quite shocked at the response.

It was a friendly enough exchange I can’t share because it was behind closed doors so to speak. I also had a more productive conversation directly with Remi but a line on the forum from Juan stands out to me.

I am curious what makes this different from Unreal and Unity, also maintained by third party companies.

Now my stand should be clear from the recent article I wrote about Godot being a great tech seed but yeah the whole point of using Godot is it was different. The smart short term decision is to use Unity or Unreal which pound for pound are more capable engines able to ship higher quality games today. I’m investing in tech, my studio and frankly trying to build a house instead of renting one. So no, I don't want W4 games as my landlord.

W4 Difficult Position

Before I get into these I want to double down and say I don’t think anyone is behaving poorly. Godot has been in development for a long time. A lot of people worked hard for a long time to build it and didn’t get paid. There are a variety of ways to monetise Open Source projects and frankly we all have bills so no shame there.

There is a big issue that the key maintainers and founders of the project are also the key figures at W4 and that is always going to be a hard needle to thread. A lot of their actions are going to be under public scrutiny, as they should be with foundations and charitable orgs, and they won’t get it right all the time but I believe they are doing the best they can. AGAIN PEOPLE HAVE BILLS TO PAY!

That said it will always be tough, like was W4 games the best partner to receive a lot of money from Meta to do closed platform work W4 Games and Meta Team Up to Expand Open-Source Godot Ecosystem on Meta Quest? Honestly probably but you can see how that brings up interesting conflicts like what does the foundation take on and what does W4 games take on. Does W4 get business opportunities which come out of meetings between company A and the foundation, probably. But it is also often easier to engage with a commercial entity when making those kinds of deals.

Again everything I’ve seen is people are mostly being above board and good but I don’t want to rent, I want to buy. So engaging in commercial agreements with W4 games is not in my studio's best interest at this time.

Reasons Given

  1. Legal liability
  2. Disproportionate cost
  3. Open source licensing issues

Legal and Open Source

The legal side again without breaking NDA this is a tough discussion but the short version is when you submit a game to a console provider they want to make sure the code is safe, legal issues are resolved and the product is of a certain quality. The modern console era as we know it was established by the Nintendo Gold Seal of quality during a mad rush of game development and one of the bigger crashes, a strong argument for quality and curation.

What this means in process terms is you submit a list of software used in your game. Any legal agreements, licence and such. This is to ensure you're in line, not submitting copyleft software for example which would be incompatible with console licence but also saying you have a legal right to all the code. Ultimately you as the developer are directly liable for all code in your game, including game engines. Now there are some lawyers who can and have argued deferred responsibility but as written you take the direct responsibility. Note I am not a lawyer, this is mostly a checkbox activity but like any contract it’s very serious.

IT IS VERY EASY to paint the consoles as the bad guys but they aren’t. In fact many games ship with open source libs in them including SDL, STB lib and many other fan favourites. In fact ImGui which everyone loves started out inside Media Molecule and Sony gave Omar the licence to continue developing it as an open source project (he was the original author but he did it while working for Sony). Sony also released the Phyre Engine which is an open source game engine developed internally. They have also released a bunch of internal frameworks right on github. https://github.com/SonyWWS

Internally most console forums have a section for developers to share code with each other under the umbrella of console NDA. A common model in the modern era is, speak up here to be added to a private git repo. Would it be better for everyone if the SDK were available (not open) like iOS or Android. YES! Argued it for years. But the current arrangement does not prevent the development or sharing of MIT licensed code for consoles.

So ultimately I find this a thin argument, and no-one is going to pipe up from Sony so it’s easy to say boo big company evil when in this case it’s clearly not the case. Complexities yes, but Open Source on console is well established.

The Cost

Honestly this one holds the most water, work has been done and people want to get paid. I do want to take issue with some communication I have seen internally and externally as it reeks of omg guys this is so hard give us money. Porting varies greatly in quality and completeness but getting your game running on hardware is not a monumental task. Assuming you're comfortable with engine code, which not everyone is.

Most of the code will be unchanged, the bulk of the work is going to be in the renderer and honestly there are so many resources from the console providers that porting a known renderer like DirectX or Vulkan to the internal API is just a bit of a slog. The only consoles which are a real pain to port to are handhelds for performance reasons. The only real pain was the PS3 to PS4 ports as that was the shift from the 32bit to 64bit era, omg so much broke. Also down porting to the Wii…. omg the horror.

Honestly it’s a slog and an investment but this is exactly why community ports or work by the foundation would be PERFECT. Let’s do the slog together. Though you would be shocked to know how many full time staff were assigned to the PS4 for Unreal, a tiny amount. There are some complexities like making Godot shaders compile to console specific stuff. Having more heads hitting the problem and frankly more devs engaging in hardware SDK the better. The industry is fast losing the skills it needs and it was scary comparing the PS4 and PS5 launches how few people were technically engaged. It's a real problem.

Also annoyingly PlayStation has hit teams of experts, as does Xbox, AMD and nVidia who get sent into studios of bigger titles to help beef up their engines to run better on their hardware. Including Unreal and Unity. I would prefer that time to be invested in something all the developers on the console can use instead of a private company semi attached to the engine.

There are also a bunch of platform libs for things like leaderboards and achievements. Again for Godot on Quest there are projects like Godot OpenXR Vendors and decacis oculus platform libs which handle a lot of this for you on Meta devices. They are also separate because they interact with private company code you need to agree to a specific licence to use, though the second one is community maintained, not by the foundation. As long as you read your console SDK documentation this is pretty easy work and mostly a checkbox activity. Be sure to pay close attention to submission requirements though.

The other thing I want to highlight is if you think you're shipping a game on console, getting through the various compliance checks and hitting any kind of quality bar without some code time, inhouse or contractual, from an engine level coder you are dreaming. Or you are shipping one of the most basic of basic games.

My biggest gripe is almost any console port will involve building custom code, and if you're painting the house and doing DIY you better bloody well own that house.

That being said, a bunch of peoples’ salaries were paid for a bunch of time to develop this code for W4. They can do what they want with it, and I hope for everyone’s sake they make some money. The more Godot game studios which are financially stable the better and they are the OG.

My Plans and Releasing a port

Okay so I’m 100% head down on the first studio title. It is a smaller title which will be out sooner rather than later. We are entirely self funded off savings at the moment, though I’m having publisher convos. It will also be the test shot through our systems, professional, technical ect… our lead platform is the Meta Quest but as someone who helped develop the PS5 and PSVR2 they have a special place in my heart so yeah that is going to follow “soon” after.

The first game is much smaller and easier to port. So I plan to do my own port, it won’t be pretty clean or great but it will work for me. In the spirit of community I plan to share that in the private walled garden of PlayStation for any other devs who want to reference it to help with the slog and welcome any support in those efforts.

I make no support commitments, and hopefully going forward I can share more. I’m not making any binding commitments because oh god lawyers but yeah it will likely all just be MIT use as you will, and don’t expect it fast.

Is this the best financial decision, in the short term hell no. But if I was thinking short term I would be on Unity or Unreal. I'm choosing to invest in my studio and the community and hoping that long term it will pay off. I'm trying to build a sustainable studio.

Hopefully I can lure some old Sony pals in to help out, and hey maybe your studio is thinking of doing a port. I know this is only one console and as a VR studio I’m hyper focused but hey it’s a start and for me that is the spirit of building things with the community and giving back. <3