What is the thing that's being democratized right now, as opposed to when Unreal or Unity became available (or XNA, or BASIC on the C64), and how is open source involved?
Godot, Phaser, etc. have existed for about a decade.
From the article:
“You don’t necessarily need advanced programming and graphics skills to make a polished and professional game anymore,”
Yes you do, if you want to do anything but the most basic asset flip, understanding stuff like pathfinding or computer graphics is not optional.
It might not be easy for someone without coding experience to create. Have a look at https://github.com/NoelFB/Celeste/blob/master/Source/Player/...
Here you go:
https://sfconservancy.org/blog/2022/jun/30/give-up-github-la...
DirectX is (and as far as I can tell, always has been) free to use by anyone.
Which part of DirectX would you like them to open-source that would improve accessibility?
I get it if you like the way it looks, but it has a purpose and it's so tacky to see. Yuck.
On topic: Planimeter publishes Planimeter Game Engine 2D, so if you're interested in game development with a full engine in Lua, check out our work with flagship features like client-side prediction out-of-the-box, network variables on entities, and a sophisticated UI compositor built-in.[1]
If you want to open source a game you generally need to plan for it from the start and only use assets that you fully own or that have licenses that allow redistribution.
You can open source just the code but this is limited in what it allows others to do in terms of contributing to or remixing the game. Even learning from the code is limited if you don't have access to the assets such that you can run the code and make changes.
They can still distribute their mod and other players of the original game will already have the shared assets.
Any new assets can have their own licensing terms.
I've run into similar situations with open sourcing non game code too. I can open source the code I wrote, but not branded images and trademarked assets that designers made. So we just subbed the assets with placeholders. Everything still worked, it just looked different.
With games, though, that becomes harder when something like a level is both an asset and non trivial to replace, and its design is often more unique than the engine itself. Think something like Portal, which is a joy not necessarily because of the Source engine, but because of the great level design and balance.
Just interesting to think about. I'd love to see more open games.
I think id's open source code has been great for lots of reasons. I just think there is untapped potential in "fully" open source games where all the assets (including the source assets like Blender files and not just the intermediate formats like .fbx) are open source as well as the code as that makes it easier for people to experiment, learn and remix the content.
It's like writing, anyone can write. But not everyone can make enough money to live off it
So you have maximize the roi on your time and investment. I highly highly recommend sticking to a commercial engine like unity, unreal, or even phyres.
I would think the author was a novice programmer, but looking at the creator's history they've already made Towerfall, another hugely acclaimed game (and one I still play to this day), about 5 years before this was released.
Yet the game itself is extremely polished.
I kind of have no idea where to take this thought, except that successful auters have very different sensibilities than garden variety programmers.
that's because these best practices aren't geared towards producing something good - it's geared towards making something easy to understand for someone else, and easy to maintain when requirements change.
It is also designed for the lowest common denominator programmers - so that many can work on the same code base, over a long period of time.
For games, none of these goals matter at all.
Here's the base Source Engine movement code for example: https://github.com/VSES/SourceEngine2007/blob/master/src_mai...
switch (index)
{
case 0: return sound0;
case 1: return sound1;
case 2: return sound2;
case 3: return sound3;
case 4: return sound4;
}The end result looks complicated but no sort of specialized engineering skill seems necessary to achieve the result. Just grit and design talent.
You could argue that having `sound` as an array, and index into that array is better, but once again, what does "better" mean here?
this code works as is, you will not get an array index out of bounds error. If this is quick and easy to write, what else could you ask for?