Developing games on linux

Game development on Linux: Using Linux at every step of the process

Want to write games on Linux? I do! Here’s how to hit the ground running.

This post is a (non-exhaustive) overview of the tools available on Linux, just to show that it is possible to use Linux at every step of the game development process. It’s the first blog post of what will be a multi-part series on getting going with indie video game development on Linux.

Linux Gaming: The Golden Age

Once upon a time, the words «Linux» and «games» rarely went together. Linux came in dead last as a viable gaming platform. Of course, over the last few years this has completely changed.

The same story could be told for game development on Linux — while there have always been a litany of free software graphics engines, the modern indie dev scene tends to shy away from this more «DIY» approach and go for the «batteries-included» game engines. Well, the good news is these, too, are making their Linux debut, and so us Linux nerds now have a glut of options available for making games.

All software I suggest here is free software, and almost all should be available in your repo (e.g. Ubuntu Software Center) for free. I’ll go over all the options, and the reasoning for the choices I made.

Game engine: Godot

Top engine choices for Linux game dev

  • Non-free: Unreal Engine 4, Unity 3D
  • Free game engines: Godot, Atomic Game Engine, Torque1
  • Free 3D graphics engines: Ogre 3D, Irrlicht, libGDX, three.js2
  • Free 2D graphics engines: LÖVE, Cocos 2D, pixi.js2

1 : Has non-free tools

2 : For browser-based games

There are already tons of articles comparing the two most popular game engines available, both of which have native linux versions, so I won’t waste your time with that. Instead, I’ll quickly go over the reasons I didn’t go with either, but instead went with the Godot Engine.

Versus this proprietary competition, the most obvious advantage is licensing: Godot costs nothing, and I own 100% whatever I make with it, no legalese-thinking required. Similarly, no vendor lock-in. I don’t want my game-making business dependent on a corporation that can legally pull the rug out from under me, either through new licensing restrictions, closing off their editor from my platform, or just making controversial decisions and cutting off support for old features that I depend on. I may seem too severe, but I for one have been burned too many times to go down that route again.

Licensing aside, I also simply prefer its approach to scene structure, terse scripting language, light-weight distributable (30MB for the entire thing!), extensible C++ source code (so I will never encounter a brick-wall that can’t be broken), and, well, free software ethos: as community-driven software, it keeps the «indie» in «indie game dev»! 😉

Godot has a different approach to scene structure

2D Graphics: Inkscape, GIMP, Krita

Linux has everything you need for 2D graphics for game development. These tools are useful for building everything from UI elements, painting assets in 2D games, or creating textures for 3D games.

Inkscape is my favorite vector editor. That basically means you deal with «lines and shapes» as opposed to pixels. If you are creating scalable, clean, sharp images based on shapes, this is the way to go.

Читайте также:  Как обновить windows 10 с версии 1903 до версии 1909

GIMP is a raster image editor, great for manipulating photographs or tweaking textures. If you haven’t used it in a while, you should: It’s recently caught up with proper built-in layer folders, a PS-like single window interface, and improved text tool.

Krita is a popular and powerful tool for digital artwork.

3D Graphics: Blender

Under Linux, there is really one way to go for 3D graphics, and fortunately it’s a great way: Blender. Although dauntingly complex, it’s one of the most popular 3D creation suites available, and integrates excellently with engines like Godot. Personally, I’m a noob at 3D modeling («UV mapping, y u no work»), but I do know that Blender is pretty dang powerful in the right hands, being used for everything from 3D-animated movies, to level editing. The canonical use of Blender is for creating and texturing 3D models to be imported into your game engine.

If for whatever reason Blender isn’t your thing (and you’re willing to fork over quadruple digits of cash, yikes), the old industry standard of Maya also has a native Linux version, as does Modo.

Sound effects: Audacity

Despite its out-dated interface, Audacity remains a solid option for recording and editing little sound effects. This has built-in OGG and WAV support, and so it plays very nicely with Godot.

Music: Ardour, LMMS, KXStudio

If you haven’t looked into this in a while, you might be surprised at how far Linux audio has gotten. If you are intending to write your own music for your game, you can do quite well with Linux.

LMMS comes with some pretty sweet retro VGM synths built-in, including sound emulators of old game systems

If you want to throw together some catchy video game tunes or retro sound-effects, LMMS has you covered, with dozens of built in instruments (including retro synthesizers) and pre-packaged samples. It has a shallow learning curve, so you’ll definitely be able to create, well, «something» right away.

Ardour is a «pro-tier» DAW and sequencer. It has both built in MIDI and raster sound support, hosts VSTi and other instruments, and sports non-destructive NLE, basically everything you’d expect. If you want to record and mix a track, or delve a little deeper into music production, it’s worth checking out.

It’s worth mentioning that a few popular proprietary DAW’s have native Linux support also, such as BitWig studio.

For Linux audio, I highly recommend getting this software (and a lot more goodies) via the KXStudio repos. These guys are awesome, they’ve put together a bigger and more recent selection of audio software than most standard repos. I also recommend that you consider the approach of having a dedicated partition just for music production. If you want to get set up with this, check out my other article: getting started with music production on Linux.

Everything else

Version Control: It cannot be stressed enough. use version control! This keeps you from losing work to mistakes, and makes collaboration much, much easier. While Git (esp. with LFS for game assets), might be the most popular, some prefer Mercurial.

Text editor: Sometimes you’ll need to dig into source code or scene files without the use of the IDE. There are a crazy number of high-quality text-editors for Linux, so even pre-installed options (e.g., gedit) are vastly superior to Mac/Windows counter-parts. Personally, I use vim for all my coding and text editing. It has a very steep learning curve, so if you are interested, be prepared to sink a lot of time into it!

Video editor: For editing your trailer, OpenShot is a solid choice

Enter the penguin army

Perhaps for the first time, top-notch tools for authoring everything from game code to graphics to sound on Linux are here! Although I’m new to full-time game development, I have been working on game and audio projects (both on Linux and Windows) for 15+ years now, and today the offerings have never been better.

Читайте также:  Regular file linux ���

Do you write games on Linux, or are considering it? Do you prefer other tools? I’d love to hear in the comments!

Changes: From feedback, I added mentions of Maya, Modo, Git LFS, Mercurial, libGDX, and Atomic Game Engine.

Posted 30 September 2016 on game-dev

Share

Solo Game Dev Kanban Magic: I used to struggle with self-management, but my most recent technique seems to be working really well

Over the last month I’ve been experimenting with an «agile» time-management method for my solo-game dev work. The verdict?…

Michael Bethencourt (@mbgamedev) is a developer based in the SF Bay Area. He blogs about indie game development on his OS of choice, Linux .

My Coding School

I founded a cutting-edge coding academy. If you live in the San Francisco Bay Area, you can learn to code full-stack web development in Python and React.js, by taking one of my affordable, intensive courses.

Subscribe

Want to keep up with my tutorials, code snippets, and random musings on Linux game development? I post 2-4 times per month, so subscribe to catch ’em all!

Источник

Дистрибутивы Linux для гейминга

Linux предлагает как универсальные дистрибутивы для работы и игр, так и специализированные, заточенные под гейминг. В этом посте о том, какие игровые дистрибутивы Linux актуальны на сегодняшний день (сугубо ИМХО, конечно же), а вы можете поучаствовать в опросе и поделиться своим мнением на этот счёт.

Игры под Linux стали набирать популярность в 2013 году, когда Valve объявила о создании SteamOS на базе Linux. Кроме того, в январе 2013 года Valve портировала на Linux свою игру Half-Life. Пользователи Linux получили возможность играть в качественные игры, для которых в прошлом нужна была операционная система Windows или даже игровая консоль. Всё начиналось довольно скромно: всего несколько компаний (CD Projekt Red, Deep Silver, Valve и некоторые другие), добавили значок пингвина Linux в свой список совместимости. Но в конечном итоге даже Gearbox и Square Enix выпустили Linux-версии своих лучших игр. Сегодня благодаря проекту Valve Proton игры, у которых нет официального релиза для Linux, по-прежнему могут работать в SteamOS и других дистрибутивах Linux.

Однако не только Valve портировала игры на Linux. id Software — одна из первых компаний на рынке игр для Linux. Версии игр, созданные компанией для Linux, оказались весьма популярными. Многие из них были отмечены наградами «выбор читателей» и «выбор редакции» издания Linux Journal. Первой игрой id Software, портированной на Linux стал Doom, также были портированы многие другие игры компании. Независимо от того, нравятся ли вам современные игры или ретро, среди игровых дистрибутивов Linux с открытым исходным кодом обязательно найдутся подходящие варианты.

Вот краткий обзор нескольких дистрибутивов Linux, которые понравятся геймерам.

SteamOS

SteamOS принадлежит компании Valve. Она позволяет «превратить» свой ПК в игровую консоль. Игровые компьютеры от компании Valve (Steam Machine) — это устройства, которые могут стать заменой консолей. И тогда выбор SteamOS тем более очевиден. В SteamOS нет ничего особенного: по сути, это просто Debian GNU/Linux с Steam, установленным в качестве приложения, запускаемого по умолчанию. Когда вы загружаете свой компьютер, Steam запускается автоматически, и вы можете взаимодействовать с ним, используя только Steam Controller или любой геймпад в стиле Xbox. Вы можете создать ту же конфигурацию, установив Steam в любом дистрибутиве и включив режим «Big Picture». После установки SteamOS вы можете выбирать между двумя сессиями: SteamOS Desktop, где вы столкнетесь с привычным окружением на базе GNOME и Steam-сессией, где вы можете войти в ваш аккаунт Steam.

SteamOS всё-таки имеет особенности, заточенные под гейминг. Вряд ли вы будете использовать его для работы или учебы. SteamOS — это ещё и прошивка, которая ориентирована на машины с UEFI и BIOS, широкий спектр графических карт включая Nvidia и ATI, а также на современные аппаратные компоненты.

Lakka

Lakka эмулирует интерфейс Playstation 3 для ретро-игр. Я установил Lakka на Raspberry Pi Rev 1, используя Etcher. Lakka загружает интерфейс, который очень знаком игрокам PS3, и так же, как в Playstation, вы можете управлять всем, используя только игровой контроллер.

Читайте также:  When were windows phones made

Lakka специализируется на ретро-играх и предоставляет игровые эмуляторы для старых систем и движков. Если у вас есть соответствующие образы ПЗУ, вы можете использовать эмуляторы, чтобы играть в игры от Nintendo, Sega Genesis, Dreamcast, N64 или homebrew-игры POWDER, Warcraft Tower Defense и так далее.

В Lakka OS нет предустановленных игр, но она позволяет легко добавлять их через SSH или Samba.

Pop_OS!

Не каждый стремится сделать из своего компьютера игровую консоль. Иногда всё, что вам действительно нужно, — это хороший компьютер с возможностью запуска игр с максимальной производительностью. Компания System76 разработала рабочий стол Pop_OS! на основе стандартного рабочего стола GNOME с некоторыми дополнениями. Pop_OS! не пытается быть самым современным, его дизайнеры просто реализовали удобные настройки по умолчанию. Для геймеров — это лёгкий доступ к Steam, Proton, WINE, игровым эмуляторам, PlayOnLinux, автоматическое распознавание и настройка игрового контроллера и многое другое. Pop_OS! недалеко ушёл от Ubuntu, его дорабатывали по мере необходимости, чтобы иметь возможность добавить нужные функции.

Помимо прочего, Pop_OS! — это высокопроизводительный рабочий стол. В нём реализованы все встроенные удобства GNOME для максимизации эффективности и сделаны необходимые модификации, чтобы соответствовать универсальным стандартам, которые десятилетиями формировались в KDE Plasma, Finder и Explorer. Pop_OS! — это интуитивно понятная среда, которая помогает пользователю сосредоточиться непосредственно на игровом процессе, а не на его обслуживании.

Drauger OS

Drauger — Linux-дистрибутив на основе Ubuntu (ветка LTS). Это ещё молодой проект, но он воплощает интересную философию компьютерных и игровых процессов и призван экономить ресурсы для выполнения поставленной задачи. С этой целью Drauger OS отказался от концепции традиционного рабочего стола и вместо этого предоставляет упрощенную панель управления, которая позволяет запускать игровой клиент (например, Steam, PlayOnLinux, Lutris и так далее) и настраивать службы (например, вашу сеть) или запустить приложение. Сначала это немного дезориентирует, особенно когда панель управления практически растворяется в фоновом режиме, но после нескольких часов работы вы понимаете, что полноценный рабочий стол в общем-то и не нужен. Ведь вы вряд ли согласитесь с тем, что в компьютере главное — это его рабочий стол. На самом деле вам важно быстрее и проще войти в приложение и чтобы это приложение работало хорошо.

Нельзя не сказать о производительности. Drauger OS пытается максимизировать производительность игр, используя ядро ​​с низкой задержкой. Ядро — это часть вашей операционной системы, которая взаимодействует с внешними устройствами, такими как игровые контроллеры, мыши и клавиатуры, и даже с жесткими дисками, памятью и видеокартами. Универсальное ядро, которое поставляется с большинством дистрибутивов Linux, уделяет более или менее одинаковое внимание всем процессам. Ядро с малой задержкой может отдавать предпочтение определенным процессам, включая видео и графику, чтобы гарантировать, что вычисления для важных задач будут выполняться быстро, в то время как приоритет обычных системных задач будет понижен. Ядро Drauger ориентировано на производительность, поэтому ваши игры получат приоритет над всеми другими процессами.

Linux вашей мечты

Elementary OS — один из самых красивых дистрибутивов Linux
Если посмотреть на самые базовые особенности «игровых дистрибутивов» Linux, то окажется, что они во многом похожи. Удивительно, но я играю в игры даже на своем ноутбуке с RHEL (благодаря Flatpak от Red Hat, который позволяет установить Steam). Так что, если вы хотите играть на Linux в этом десятилетии, то вопрос не в том, как это сделать, а в том, какую систему использовать.

Самый простой ответ на вопрос, какой дистрибутив Linux использовать, выглядит так: выберите тот, который лучше всего работает на вашей машине. Вам нужно найти дистрибутив Linux, который без проблем распознает ваше железо и игровые контроллеры. Найдите его и будет вам счастье: останется только установить игры и начать играть.

Конечно же, существуют и другие дистрибутивы Linux для игр: Fedora Games Spin, RetroPie, Clear Linux, Manjaro. Это список можно продолжать ещё долго. Сможете? -)

На правах рекламы

Увлекаетесь играми? Хотите создать собственный игровой сервер? Наша компания предлагает серверы, которые можно использовать для любых целей, в том числе для установки игрового сервера.

Источник

Оцените статью