There’s an important chapter in David Kushner’s book Masters of Doom when he describes the early days of iD Software.
It was 1991, when the fledgling company was enduring the balmy temperatures and mild winter weather of a place called Wisconsin. John Carmack sallied forth from his apartment and spent $11,000 on a NeXT computer. It was 1991. iD was gearing up to build Wolfenstein 3-D, and Carmack needed a powerful development machine. He purchased a black NeXT Cube in order to gain access to an operating system that incorporated technologies destined to form the foundation for both the “app store” business model and none other than iOS, the operating system that drives the iPhone.
That operating system was called NeXTSTEP, and it was based on another powerful system called UNIX.
Carmack’s story is an important one because it demonstrates the lengths to which programmers often go to create a UNIX-like environment on their workstations when it comes time to develop new software. Two oft-cited reaasons for this preference are the relative simplicity of UNIX-like environments and the included utilities and tools that streamline the development workflow for software. When a programmer sees the benefits of this kind of workflow and then experiences them first-hand, the lure of the all-in-one IDE often seems less attractive.
As someone who used the Visual Basic IDE very successfully as an enterprise Windows engineer and who has also written commercial software on various UNIX-like systems, I can attest to the benefits of Linux as a development platform.
To be fair, there are Integrated Development Environments (IDEs) available for Linux, but unlike other operating systems, Linux is not dependent on them. In fact, some argue Linux itself is an IDE: One that is far more powerful than any competitor.
If you are setting out to develop software, especially something as complex as a game, you would be well advised to at least consider learning Linux well enough to develop a small application. A good beginner choice for languages is Python, since it has considerable resources for game development and is extraordinarily well documented.
One of the first benefits you will notice when you start exploring Linux is the fact nearly every programming language is available in some form, including everything from Assembler to HaXe.
Start with something simple and develop it to the point where it is a complete working project. Then go back and evaluate what you’ve learned about Linux itself. You might be pleasantly surprised at how efficient the development process is.
Given the immense collection of tools available, you will find many options for building more complex and more interesting applications and games as you continue to learn the system.
Theodore Jefferson is a Heavy Cat Studios contributor.