Linux for game development

Started by
27 comments, last by Xai 7 years, 9 months ago

IF it's just for development and you plan to ship on Windows in the end then just pick whichever distro suits you really.

So really - just pick a distro that works for you with all your hardware, GPU, CPU, WiFi, get the editors you like and that is it.

If all you want to do is program games then the differences between main distros (Fedora, Ubuntu, etc.) are not of any significance to you unless you require something closed you can't easily get otherwise that only Ubuntu has in repos or pick a spartan distro like Arch (which I know nothing of, except for the fact that every single Linux knowledgeable person I met says it's spartan and not 'easy' like other distros...).

I personally use Fedora with some extra repos and used Gnome, KDE and Xfce both at home and at (non-gaming) work rather successfully for all my needs (basically - web browsing, occasional game via WINE and Python, Lua, C and C++ programming).

The only issue I can think of is GPU drivers for NV, but I have an old Intel integrated card which works flawlessly on Fedora so I can't comment much here.

For Lua and Python I use Geany and for C and C++ NetBeans, and for quick small edits or remote edits on a server I use vi or vim, but there are tons of editors and IDEs of varying heaviness for these and other languages (Kate, KWrite, CodeLite, MonoDevelop, CodeBlocks, KDevelop, Eclipse, ZeroBrane, vim, sublime, VS Code, ...) out there that work on Linux. I find many of them very capable and adequate, even compared to VS.

But almost none of these tools are special and they come on most of mainstream distros, at worst you will have an exercise in compiling something yourself...

The only extra advice I can give is to learn the tools (lua, gcc/clang, etc.) and bash (or any other shell you pick, zsh, ksh, I just use bash because it's the 'default' one) properly to be able to solve any miscellaneous problems that may pop up with tools and your game but don't hold back or shy away from rich GUI IDEs and editors in favor of vim just because you're on Linux now and "that's how pros do it". Don't go too overboard with this either, just cd, ls, grep (with just strings, no regex knowledge), vim and xdg-open (open a file in 'default' app) with little to no parameters gets you a looong way IMO, it's quicker to navigate directories this way even. But of course it never hurts to learn a little more of this on the side, organically, too.

I recall one very pragmatic Linux advocate saying that with Linux tools, unless you 'edit text files for a living' you will miss something.

But.. programming is editing text files for a living so I feel quite at home programming on Linux. :P

Advertisement

Thanks for all the answers. With the help of all your wisdom i have chosen to start with Ubuntu. See how it turns out in a few days when I'm done screaming about learning the most basic things :).

I will code in C++ and Lua and also use QT for user interface.

Out of curiosity, why use Lua? I mean, why not just use c++ for all your code. What's the specific use case that you have that you need Lua for?

I plan to use lua for the gameplay code and c++ for the engine.

@spinningcubes | Blog: Spinningcubes.com | Gamedev notes: GameDev Pensieve | Spinningcubes on Youtube

yay for more linux based devs! If you find Ubuntus repos to be annoyingly out of date, or a bit eager to install uneeded dependencies, I'd recommend Manjaro Linux. It is based on Arch, but you get a fully setup system upon installation, and they have made it very easy to install non-free drivers for you Nvidia card.
I'm using Manjaro with the Cinnamon desktop right now, and it is really the environment I've had the least troubles with. On my laptop I got Arch with i3, which is another great option if you fall in love with the terminal world :)
Programmer of HolyPoly games.

I can recommend the Debian.

Thanks for all the answers. With the help of all your wisdom i have chosen to start with Ubuntu. See how it turns out in a few days when I'm done screaming about learning the most basic things :).

I will code in C++ and Lua and also use QT for user interface.

Out of curiosity, why use Lua? I mean, why not just use c++ for all your code. What's the specific use case that you have that you need Lua for?

I plan to use lua for the gameplay code and c++ for the engine.

Why dont you just write the gameplay code in c++?

Why don't you just write the gameplay code in c++?

That's pretty much off-topic when it comes to choosing a linux repo... :huh:

Why not ditch both and use Java? Because now we're in a language war thread :P

Georger.araujo's link is a pretty standard reason as to why people often use a higher level language for gameplay code.

Why don't you just write the gameplay code in c++?

That's pretty much off-topic when it comes to choosing a linux repo... :huh:

Why not ditch both and use Java? Because now we're in a language war thread :P

Well, I was not trying to start a "language war" or anything of the kind. I know my question is not directly related to the OP's thread subject, but I am addressing something else he/she brought up in the post. Since this is a forum for beginners, it's often the case that beginners dont always know the right questions to ask. Or sometimes in the course of discussing one question something else comes up.

I was also new to Linux development for my engine. After some investigations and the 'popularity' of Ubuntu at that time, I decided to go for that platform. Luckily it wasn't a bad experience, most libraries I used in my engine (which I originally developed with Windows) were readily available as package in the package manager. The main difficulties I experienced were getting my project generator (premake) and debugger up and running (which still isn't running as nicely as visual studio) and obviously the small differences in API's.

Crafter 2D: the open source 2D game framework

?Github: https://github.com/crafter2d/crafter2d
Twitter: [twitter]crafter_2d[/twitter]

I plan to use Linux for game development. I looked around a bit for a dist then i looked at
https://upload.wikimedia.org/wikipedia/commons/1/1b/Linux_Distribution_Timeline.svg and now I'm really confused.

I have a Intel CPU and a NVIDIA Gefore GTX 560. I will code in C++ and Lua and also use QT for user interface. Anyone that use Linux for development and have an good idea what dist to use? It looks like there are dragons out there among the dists ;).

I am on Debian since many years now. Before I was using the testing version, but for stability purpose and also in order to keep my dependencies with almost the same versions, I'm now with the stable version.

And despite of the fact that I seldom meet issues (mainly with dependency upgrades), I'm happy with this. But I also use other computers for development, one having the previous stable version of debian, and the latter having the current testing version. This helps me keep things portable, but this is not an easy task.

If you're not an advanced user in lua just like me, I already met issues when my distro upgraded lua to a newer version. I also recently had to face with other issues since I moved from Gtk+ 2 to Gtk+3.

There's currently one issue with using Debian on nvidia graphic cards, when a bug happens due to your proprietary drivers, you'll have very few chances that it will be resolved. This is why I don't use Gnome for example. And this is also why that I don't use the nvidia drivers provided by the distribution anymore.

I guess the most painful thing to deal with, currently, is the new C++ ABI. So my two cents are directly start with a distribution version that use this new ABI (gcc 5 or higher).

My computer have space for six HDD's so i installed some of my spare ones. Then i switch the sata cable to a new one each time i wish to try out a new dist :). Installing OpenSuSE on one of them now as some friends confessed to using it. I had some problems with Ubuntu locking up some of the windows (update window crashed a lot) and complaining about corrupt files. Most likely the HDD i used so i will try it again on another after OpenSuSE is installed. All in all it's not bad for the first day on a new OS :).

Thanks for all the answers. With the help of all your wisdom i have chosen to start with Ubuntu. See how it turns out in a few days when I'm done screaming about learning the most basic things :).

I will code in C++ and Lua and also use QT for user interface.

Out of curiosity, why use Lua? I mean, why not just use c++ for all your code. What's the specific use case that you have that you need Lua for?

I plan to use lua for the gameplay code and c++ for the engine.

Why dont you just write the gameplay code in c++?

I have used engines before with a engine/c++ and gameplay/lua style. I liked it so i wish to use it on my own personal project :).

@spinningcubes | Blog: Spinningcubes.com | Gamedev notes: GameDev Pensieve | Spinningcubes on Youtube

This topic is closed to new replies.

Advertisement