So what is open source anyway?
Open source software is software with source code that anyone can inspect, modify, and enhance. The source code is the code that tells a computer how to run a program or software. Programmers who have access to a computer program’s source code can improve that program by adding features to it or fixing parts that don’t work correctly. Open source software is useful for people who want to know exactly what a program does by looking at it’s source code. It is great for programmers wanting to learn how to either code a program, fix bugs in an existing program, or generally improve an existing program. To me open source programs seem like a good idea so users can have control over what functionality a program has and it makes them feel more secure as they can remove any code they don’t want in the software they’re using.
Open Source Gaming
Many products and software you can find on the web will be open source products, but in the gaming world it is a lot less common. Open source games are video games people have created where the code can be viewed, copied, and altered by anyone for their learning or experimental purposes. They are almost always free games. Games and software can be similar in a way that both are collections of rules. Just as software is a set of rules that determines what is and isn’t possibly for users to do with a computer program. A game is a set of rules the defines what players can and cannot do while in pursuit of a goal.
In open source software anyone can modify and enhance its source code because it was made publicly available by it’s creators. Open source games are games that players can adapt to fit their preferences. The open nature of these games allow players to build on the creator’s ideas. They can add anything they have the knowledge to code, they can remove any part of the game the dislike, or even add more levels or features.
Every modern digital game has something called a game engine. It is a collection of software tools that game designers user to make the video games by manipulating the sounds, the on-screen graphics, the game world’s ‘physics’, and everything else the players see when they play the game. Using the game engine programmers can create games for the specific devices players own. The source code for some of these engines are open. Meaning programmers are free to study, modify, and improve it for the game designers that want to use it.
Digital games also use hardware, the physical devices people use to play games. Some gaming hardware is ‘closed source’ or ‘proprietary’. Meaning some manufactures prevent players from modifying their gaming hardware. However other hardware is open source. Manufacturers of open gaming hardware encourage players to examine and tinker with their devices if they are curious about how they might improve them. Other gaming device creators have open-sourced the designs for their devices so that others can learn from and even manufacture them.
Digital games involve artwork in the form of graphics icons, world scenery, and depictions of characters and creators that players see when playing these games. These graphical elements of these games are a form of intellectual property. They belong exclusively to the person or group that created them. In recent years, some artists have begun licensing their graphics so game designers can incorporate those graphics into their own games without fear of breaking copyright laws.
Open source principles don’t only apply to digital games. Some people who design non-digital games like board and card games can also do so according to open source principles. For example some game designers will release their materials under ‘Creative Commons licenses’ so players can download, copy, and modify them. Designers may do this because they feel it makes discovering their games easier. Potential players are more likely to try unfamiliar games if they can access and acquire the materials they to play those games easily, or if they are able to receive copies of the games from friend who recommend them. It also helps promote their games’ life span. They feel that players who can freely share game materials are more likely to continue playing those games in the future and recommend them to others. Occasionally game creators use crowdsourcing to help them improve their games. They can make their game design processes transparent so that players can help shape their game’s final forms. Designing a game involves play testing by having the game played by potential buyers and have them provide constructive criticism. Designers who make games tend to have their game play tested as much as possibly before finalizing their designs. By opening the design process, creators can more easily gather a large group of play testers which helps sharpen the game quicker than if the product was designed in secret.
Some games themselves actually encourage open source tools or principles. Some games make changing the rules a fundamental part of playing those games. Fluxx created by Looney Labs, is a a card game in which the game’s rules change every time someone takes a turn. Games like Fluxx encourage people to think of rules as fluid in the same way open source code, the rules that govern how people can use their computers, is flexible.
Although unfortunately in video gaming, there is a small number of sharing of code between companies. And if it is shared, it is generally licensed rather than made open source. Comparing web developers to indie game developers, if you want to make a website you can choose from a multitude of open source frameworks, each which has a wide range of free and well-documented add-ons and modifications. But if you want to make a video game, you will have to buy a license to one of the major game engines, like Unity or Unreal, and if you are to use for example, a script for lighting, you have to buy it through a DRM-protected asset store. It is not very developer friendly experience, which is one reason why many indie game dev choose to make game mods instead.
So why isn’t there a lot of open source video games? You should remember that before free and open source software in the general tech industry was a thing, proprietary licenses were common like in the gaming industry now. Open source products took a coordinated movement, winning over first enthusiastic developers, and then the companies where they worked, for the industry as a whole to go open source. A major way open source won was by convincing programmers, which made tech companies to adopt open source as part of their strategy to attract talent. But a similar push for open source didn’t succeed in gaming. Perhaps because game developers are a fairly separate community from the rest of tech. A more likely explanation is that programmers in startups are free to choose the tools they like the best, whereas in game studios, the opinion of artists, animators, and designers counts for just as much — which makes it much harder for them to switch toolchains.
Nowadays, computer graphics are now rising in importance. Video games created a market for GPUs and graphics software, which have now developed to the point where the technology has applications beyond gaming. The most obvious example is in Virtual Reality / Augmented Reality. Which has the potential to be a successor to mobile as a major general purpose computing platform. Computer graphics is also finding new applications in AI, in building simulators to train models for autonomy and smart objects.
Because computer graphics is now the foundation for a number of important platforms, it is now necessary for graphics programmers to share their code. The first reason is simple functionality, as the fewer layers in the stack that are open source, the more of a problem you have with bugs. Closed-source game engines have as much of a problem with bugs as Windows did. The second reason graphics programmers now need to share their code is that open source lowers the barriers to entry, which encourages much-needed experimentation.
The web has always been full of DIY creativity, and it wouldn’t have been possible without open standards and free software. So for virtual reality and augmented reality to flourish, graphics programming needs to escape the studio model. Game engines are like the operating systems for VR, and without an open source foundation, there is a danger that the software will be too buggy to do the hardware justice. More importantly, without open source code, it is harder for developers to contribute. The use cases of virtual reality are not well-understood, and if VR experiences can only be created by well-funded teams, we will miss out on the talents of indie developers, whose imagination will help the technology realize its full potential.