Blender

Blender

44 ratings
A FOSS/FLOSS Guide to Media Production (Game Development and Media Design)
By kilésengati
Recommendations for free/libre and open-source software for getting started and beyond.
2
   
Award
Favorite
Favorited
Unfavorite
Preambule
G'day everyone,

many people want to do "something with media" but don't know where to start.
Unfortunately, giving advice beyond general motivational posts and program recommendations is difficult on a topic so vast that people take years to study and never fully master. Here's something of the former type of advice.

Many people think they have to invest substantial amounts of money on programs and hardware to get a foot in the door to media creation.
Thankfully, we now live in times where this could not be further from the truth.
Free/Libre and open-source software (FOSS/FLOSS) has come a long way and we can now start enjoying the fruits of a decade-long battle to our liking.

Thanks to free and open-source software, we no longer need to be trapped into licencing and subscription hells! Ain't that amazing?

But what is FOSS/FLOSS?

https://www.gnu.org/philosophy/free-sw.en.html#four-freedoms


Anyway, this is a list of recommendations on free and open-source software I like to use every now and then or find worth taking a look at.

It is more on the subjective side of guides, as people like using different tools.
I'm just giving my two cents on this topic here.
And it is for sure not a definite guide, since no matter which tool you learn with, chances are you have to learn using other tools eventually. Either because new tools replace old ones or some employer wants you to use something different. (Though I'd argue chances are lower with FOSS due to their very nature.)
It's always good to look for alternatives.

This guide is also not for showing you how to use the programs presented, rather to give you an overview.
There are many great tutorials out on the web ready to be discovered by you!

For the most part, basic utilities and programs needed operate a computer in the modern age are out-of-scope for this guide. Same goes for highly-specialised/niche applications. And particularly not browsers, that topic can fill an entire guide on its own.

I choose the Blender community hub to create this guide as I find these programs very useful and complementary when working with Blender.

Please take note of the disclaimer!

Hope you like my rambling. :D
Disclaimer
THIS GUIDE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE GUIDE OR THE USE OR OTHER DEALINGS IN THE GUIDE.

Always make backups!
Work Environment
Creating a working environment you feel comfortable with is important to work efficient.

However, this is very subjective and you have to figure it out on your own.

Still, I'd recommend not to neglect ergonomics.
One important thing I discovered are that mice and "gaming" chairs are absolute rubbish from an ergonomic standpoint. I much prefer trackballs and good office chairs.


The Operating System
Part of your work environment is also the operating system. Windows, Mac, Linux, BSD.
Use whatever you feel comfortable with. However, I find that both Microsoft and Apple put too many hurdles in place to prevent customising the operating system to one's needs - not even talking about the privacy nightmares those are.

As for Linux, it's difficult to recommend a specific flavour. But as with all computer-related stuff, it's important to use reason.
Ubuntu-based Pop_OS! tries to be beginner-friendly and general-purpose, even offering a special image with Nvidia drivers pre-installed:

https://pop.system76.com/

Since Pop_OS! gained fair popularity and is developed by a hardware manufacturer, there are some pretty decent official support articles out there.
And even that isn't helping and when using Debian-based distributions, I find the Arch wiki to be a helpful resource that never stops giving:

https://wiki.archlinux.org/

It's just important to keep in mind that Arch does a couple thing differently than Debian/Ubuntu - but it's still Linux.

When using Linux, it is still recommendable to either have a virtual machine running Windows, or use a dual-boot setup just in case a program isn't running on Linux (either natively or through WINE). I find a VM setup only to be useful only with hardware that supports PCIe passthrough, so that the guest operating system can take full advantage of expansion cards like GPUs.

One thing to keep in mind with the Unix-oid operating system is hardware compatibility.
Professional hardware tends to utilise open standards and use generic drivers the *nixes can understand, but you have to be aware that not everything works with them - especially "gaming" hardware.
This is not exclusive to Linux! It's a good idea to ask about hardware's compatibility with your operating system.


The Programs
The Programs I like to use are showcased in the following sections.

It's a good idea to understand them as tools on a workbench.
Each works differently and has its appropriate use cases. Some can be used for the same tasks, but have their specialities that make them more appropriate for special tasks. Ultimately, they can all be used to create great things and there are alternatives available. There's nothing wrong with trying out tools from other workbenches and even integrating them in your own. And if you end up working on someone else's workbench, you have to adjust to those tools anyway and it can help being at least somewhat familiar with them as well.
It's all up to the user's willingness to learn these tools and acquire new skills with them.


And never forget: Always make backups!
Notepads and other Utilities
For starters, there are some programs I consider utilities and absolute musts for media production in general, but are either small tools or not immediately used for producing media.


Clipboard Manager
First of all, a clipboard manager that saves all content you copy. Windows only added this back in 2018 and few users are aware of this function. Linux and Mac have those for quite a while now, but some desktop environments on Linux still don't have a manager installed from the go.


Notepads
Another utility that comes to mind and I could no longer live without are notepads. Not the basic notepad Windows ships with, but more advanced notepads like Notepad++ or Notepadqq.
Those are not only good for taking notes, but also great for editing large amounts of data.

https://notepad-plus-plus.org/
https://notepadqq.com/


Media Utilities
For bulk image and audio/video processing, ImageMagick and FFmpeg are very useful command-line tools.

https://imagemagick.org/
https://ffmpeg.org/


E-Mail Client
Instead of using the web browser for e-mail communication, you can also use an e-mail client with better integration into your desktop environement. Some even come with a rudimentary project organiser (but more on that late).

Besides solutions shipping integrated into your operating system, there are many other options, like Mozilla Thunderbird:

https://www.thunderbird.net/

It is Firefox-based and cross-platform, including Android mobile devices.

For setting up such a client, please refer to the respective documentation.


The Command Line
Yes, there's no way around learning to use the command line, if you want to get certain things done efficiently. Windows' desktop environment in particular doesn't offer many ways of automating certain tasks via the user interface.
If you are on Windows, consider using PowerShell instead of CMD, as it is the more modern and versatile tool. As for Linux, Mac and BSD, most pre-installed standard command-line shells are already functional enough to be used out-of-the-box.
Don't be scared of command-line shells, but always use them with reason and care, as you can mess up badly with those.

And let's not forget about all the utilities we often take for granted: Calendars, mail clients, etc.



Remember: Always make backups!
Conceptualising & Writing (also Game Design)
Whether you develop a game, produce some music, create a film or write a book, it is always a good to make sense of your thoughts by writing them down and putting them in order.
In the case of writing a story, it's essential, but more on that later.

The aforementioned notepads can help with that, but are often limited in their scope. As such, I regard them more as utilities.

For developing a game design or a creating a script for a film a wiki, a mind-mapping software or a plain old office suite could help you.

https://zim-wiki.org/
https://sourceforge.net/projects/freeplane/
https://strlen.com/treesheets/
https://www.libreoffice.org/


You could write stories using these tools, but a dedicated tool for writing stories is essential should you want to create something with a story. You gotta keep track of world-building, characters, storylines and what not. It can easily become overwhelming when not using tools with functions dedicated to these tasks.
As with all tools, it's obviously up to the user's taste which to use, but I find Manuskript to be very useful.

https://www.theologeek.ch/manuskript/

I think it could also be repurposed for writing down a game design.
Game Engines
You might think game engines are only important for game developers. You couldn't be more wrong!

Game engines can be used for all kinds of things, including VFX and animation. Sometimes, it's simply the more efficient and flexible way to create something in real-time, like a game instead of doing everything in post with dedicated software. Unreal Engine isn't the only engine that can do this, but the most prolific right now.

When it comes to game engines, there are many to choose from. Unfortunately, the most popular game engines (namely Unity and Unreal) are proprietary. This means, you will never really own the product you've created with them and have to pay licencing fees, should your game grow big enough.


Fortunately, there is are contenders that have already established themselves:

Godot Engine
Godot Engine offers a beginner-friendly programming language and environment including but not limited to graphical programming.

https://godotengine.org/

And it's also available on Steam:

https://steamhost.cn/app/404790/Godot_Engine/

However, in its scope, Godot is more like a beginner/"indie" engine, but you could absolutely use it to create big titles.


Open 3D Engine
Open 3D Engine is more comparable to other popular AAA engines. The project is a subsidiary of the Linux Foundation and development has its roots in Amazon's Lumberyard engine and Crytek's CryEngine. It receives substantial backing from the industry. O3DE's licence is a bit more restrictive than Godot's, but still allows you to breath freely.

https://www.o3de.org/


Armory 3D Engine
A little lesser known is the Armory 3D project:

https://armory3d.org/engine/

It can be seen as the spun-out successor to the deprecated Blender Game Engine.
Its greatest strength is being made with Blender integration in mind.

Part of the Armory 3D suite are also ArmorPaint (texture painting), as well as ArmorLab (PBR texture creation). But more on that in the respective chapters.


Other Engines
Other more-or-less popular 3D engines are:

This of course is not an exhaustive list, just some examples.
2D Graphics
Photoshop has become synonymous with imagine manipulation, but there are many alternatives that don't place you into a walled-garden subscription hell.

The GIMP, Krita and Inkscape are powerful tools for creating graphics.
https://www.gimp.org/
https://krita.org/en/
https://inkscape.org/

Krita is even available on Steam, for a small donation.
https://steamhost.cn/app/280680/Krita/

The GIMP is more useful for imagine manipulation. Meaning colour grading, retouching, etc.
It also features many add-ons for different use-cases, even allows for installing experimental "A.I." tools:

https://github.com/UserUnknownFactor/GIMP3-ML
(Older, original version: https://kritiksoman.github.io/GIMP-ML-Docs/index.html)

GIMP is also capable of bulk-processing images, but I mostly use ImageMagick for that.

Krita is more useful for digital drawing, but can be used for other things, too.

Inkscape is a vector-graphics program. It can be used to create infinitely scaleable graphics, but is a bit less intuitive to use for beginners. I find it particularly useful for typesetting on graphics (not for books), but it has many other applications.


Creating PBR Textures from Images
Of course you can use Blender's nodes to also create PBR textures from simple images.
However there are also specialised tools for these. Albeit a bit limited compared to Blender's complex nodes, Laigter offers a fast and easy way to create for example normal maps and specular maps from just about any image you feed into it:

https://github.com/azagaya/laigter

Laighter is meant primarily for 2D applications though.

A more advanced tool, is ArmorLab:

https://armorlab.org/

This tool is part of the Armory 3D Engine project and is created with Blender integration in mind.
3D Modelling
Not too long ago, 3D modelling used to be very inaccessible. Things have changed a lot.

Blender is a very powerful tool for developing assets and editing videos, but has quite a steep learning curve (and it used to be steeper). However, it is not only a 3D modelling tool, but an entire media creation suite. There are also many add-ons that further expand on the already vast scope of Blender. On a side note: Blender even featured its own game engine at one point.

https://www.blender.org/

It is also available on Steam:
https://steamhost.cn/app/365670/Blender/


There is also an entire different paradigm of 3D modelling software: CAD. Computer-aided design programs are much like what vector-based 2D graphics programs are to pixel-based ones. Actually, they are very much like vector-graphics programs, but in three dimensions.
FreeCAD is such a program

https://www.freecad.org/

CAD programs are however more common in engineering and their workflow is much different, being derived from drawing boards. When it comes to game development, using CAD isn't uncommon with games that contain real-world objects (or objects resembling real world objects). When games are developed with licenced cars, weaponry, etc. it isn't uncommon for the licensor to provide technical drawings as CAD files or someone creates technical drawings from the product.
They unfortunately have to be converted for use in games, but as source material, CAD models are practically timeless due to them being infinitely precise
CAD is a different beast on its own and worth knowing about, though I'd argue you fare better with polygon-based tools like Blender for the most part, especially as a beginner.


However, there is also a Blender Add-On, which might help you ease into a CAD workflow:

https://www.cadsketcher.com/

CAD Sketcher allows you to draft models, like in a CAD program, but in Blender. However, be aware the final models will still be polygons, so they can't always be used in the same way for real-world applications like models created with actual CAD software can.

In addition, CAD-like models created with CAD Sketcher will also require optimisation to be further used as digital assets for works like videogames.


Photogrammetry
Another way of getting real-world objects into a game is by 3D scanning.
Without expensive, but precise, LIDAR cameras, photogrammetry is a decent option. You need a camera that can produce fairly stable images. Most modern phone cameras are more than enough, A halfway decent computer, and a program like Meshroom to put together a 3D model from the images are also needed.

https://alicevision.org/#meshroom

However, the 3D model created by Meshroom often contains a lot of artefacts and way too many polygons to be handled efficiently by Blender or any game engine. Programs like Meshlab, specifically made for cleaning up and optimising these models for further use in 3D modelling come in handy here.

https://www.meshlab.net/#


I think this goes without saying, but when bringing stuff from the real world into a game, always beware of licencing, personal rights, copyrights and patents.


Retopology
Whether it be scanned, generated, sculpted or simply with an more modern (for example non-destructive) workflow created model, they usually won't work well as finalised assets.

For further use, you still have to do a lot of optimisation in Blender using retopology tools.
Retopoflow is a popular Blender add-on to manually complete such a task:

https://github.com/CGCookie/retopoflow

However, there are also fairly proficient auto-retopo tools. Unfortunately, some of the best, like Quad Remesher are paid-for Blender add-ons. But free and open-source tools, and even the built-in tools of Blender can still be used to achieve the same and even better results.

Nvidia has also released a paper on algorithmic remeshing tools, achieving similar results as manually retopo-ed models:

https://meshtron.github.io/

But we will have to wait and see where this leads to, and if there will be practical public free and open-source implementations of this soon.


3D Texture Painting
Blender itself has powerful tools and addons to paint and create wonderful textures on the models you've created. But you also might want to use specialised software instead. Armor Paint is a FOSS 3D texture painter you might want to check out:

https://armorpaint.org/

Armour Paint is part of the Armory 3D Engine project and thus also comes with Blender integration plugins.
Photography
When you are working with photogrammetry or just want to bring real-life textures onto an object, you will likely also need to handle RAW images.


Virtual Lighttable & Darkroom
Darktable is a software that just does that. Organise photos, create image databases, handle and slightly edit some RAW images, etc.:

https://www.darktable.org/


Sitiching Panorama Photos
When you want to create panoramic images from multiple shots, Hugin is a tool you might want to try:

https://hugin.sourceforge.io/
Audio
Production & Editing
For audio editing and making music, there is Ardour, but its official binaries are paywalled and I find FL Studio to be more user-friendly:

https://ardour.org/


In fact, I'm having trouble finding a decent FOSS alternative to FL Studio. LMMS tries to be that, but it feels a bit clunky… kinda like Fruity Loops from two decades ago.

https://lmms.io/


Unfortunately, there is still no native version of FL Studio on Linux, but it's working mostly without problems through WINE now. At least Image-Line offers a very fair perpetual licencing model.

There are also many FOSS as well as freeware plugins.


For more basic audio stuff, Audacity or a privacy-friendly fork is more suitable. It also features this absolutely bonkers and easy-to-use Paul stretch effect. Other programs offer this effect, too, but it's just done faster with Audacity.
Tenacity is a privacy-focused Audacity fork.

https://tenacityaudio.org/


Sheet Music Creation
Whilst many software DAW allow you to export MIDI files or even create music sheets, you might want to use dedicated software for it, such as MuseScore:

https://musescore.org/


(Live) Audio Visualisation
You can also visualise audio, for example for either producing music videos or even in realtime for live performances, using the AudVis Blender add-on:

https://github.com/example-sk/audvis

IMPORTANT: Please consult the AudVis documentation, to prevent excessive wear on your hard drive https://github.com/example-sk/audvis/blob/main/doc/video-capture.md.


Audio on Linux
A quick disclaimer about audio on Linux.

For a long time, it has been an absolute nightmare. Terrible quality, massive latencies, terrible to use. In short, audio isn't known to be Linux' strength.

For quite a while, there used to be two main sound servers (the programs that control sound stuff) you had to choose:

  • JACK is popular with professional applications, very flexible and offers low latency and high fidelity, but is a nightmare to use for anything else.
  • PulseAudio is popular with everything else and pretty much plug-and-play, but has massive latency issues.

And due to the way they work, they don't play nicely together without extensive configuration.

Want to do some media production with JACK whilst playing back a tutorial video through PulseAudio… Good luck!

However, the PipeWire project tries to bring together the best of both worlds and offers backwards compatibility by doing some programming wizardry.

Many Linux distros start adopting PipeWire as their main sound server, but not all have yet.
Video
Blender is also a very powerful video editor, but I find KdenLive more intuitive for beginners:

https://kdenlive.org/

There are many other alternatives out there, but don't let yourself be fooled by fancy transitions, filters and titlers. Not only are those almost never used in video editing, but can also be achieved with Blender (and sometimes KdenLive), only having much more personality to them.


In addition to KdenLive and Blender, Cinelerra is also a fairly popular video editor specifically for Linux, intended for professional production:

https://www.cinelerra-gg.org/
Streaming
OBS.

https://obsproject.com/

It's so well-known and widely-used, there's not much to say about it. Even a couple TV stations use it.

OBS is mainly meant for streaming and has a lot of integrated features, as well as community-made add-ons to customise your stream or the software itself to your liking.

But you can also use it to record video and audio locally. Just make sure to adjust the format it saves to and adjust the bitrate and compression to find the right balance between performance, quality and storage needed.

Keep in mind that the Windows and Linux versions differ slightly and you probably have to adjust and replace a couple things, should you migrate from one to the other. Not sure where the Mac version sits at.
Organising
As mentioned previously, small utilities like calendars are often forgotten about as they are taken for granted, but can help organising.

Whilst smaller projects will do just fine with personal planners, scheduling and version control will be important to keep order and track of your progress once they grow larger.

https://www.projectlibre.com/
https://git-scm.com/

It isn't a bad idea to start practising this early, though not essential for getting your feet wet.


And if you go big, you might even be interested in a full-blown, self-hosted cloud office suite...
Collaborative Work, Cloud, Office & Administration (Cloud Office Suite)
Besides the other organisation- and office-related programs mentioned above, there has been quite a development in regards to free and open-source, all-in-one, scalable and modular cloud office and collaborative solutions.
The German government has supported the development of OpenDesk, which is supposed to become the FOSS Swiss army knife of modern administration:

https://opendesk.eu/en/

Whilst it is developed mainly for government administration, it can also be deployed in the private sector in all kinds of general and specialised office- and admin-related situations.
Just remember, deploying this suite needs extensive knowledge about IT administration and either owning or renting hardware it can run on 24/7. As a single individual or small collective, it might be complete overkill.

It is good to know projects like these exist however, just in case you need them.
Extra: World Building, World Generation & Terrain Heightmap Generation
Apart from the tools I've mentioned before - namely a personal wiki and a novel creation tool...

https://zim-wiki.org/
https://www.theologeek.ch/manuskript/


to keep a good oversight of the story, characters, technology, the worlds lore, etc. and stuff written. But, there are a couple other things to do when creating a world... in the most literal sense.


Astronomical Simulation
There are a couple plenetary system generators out there on the web, but many seem either intransparent and rather random or require at least some knowledge in astronomy.

Like with FL Studio for audio production, I'm having a hard time finding a user-friendly alternative to Universe Sandbox, however, if you want to stick to free and open-source software, you might be interested in Celestia:

https://celestiaproject.space/


You could also go as far as generating a planetary spectrum using tools provided by NASA:

https://psg.gsfc.nasa.gov/


You'll need to manually carry over planetary data into further tools.


Planetary Simulation & Map Generation
For starters, you would need to create a planetary surface (even if it is a water world). You can do so manually or generate a heightmap using plate tectonics using plate simulation tools like Platec or forks thereoff - in this case, World Engine:

https://github.com/Mindwerks/worldengine

But in case you might want to use the precursor tools, here they are:
https://sourceforge.net/projects/platec/
https://github.com/Mindwerks/plate-tectonics


Another similar tool could be of interest:
https://github.com/tarTG/RTWG
https://github.com/tarTG/RTplatec


It's primarily meant as a command-line tool and takes a while to generate output, but don't fret. Make sure to read the manual and don't shy away from messing around to find out.

Note that World Engine automatically applies softening and blow to the heightmap, this makes under-water rifts and ridges difficult if not impossible to read and apparently can't be turned off through options, If you want to create bathymetric map data, too, it's advisable to use one of the other Platec versions.

World Engine is less hands-on, but integrates a fork of Platec from the start and outputs various generated data as individual image maps. For example, you can generate a greyscale heightmap using the --gs option. For a global map, you might want to try out a 2:1 aspect ratio or stitch two 1:1 images together. The results are usable for other tools, such as:


Azgaar's Fantasy Map Generator:

https://azgaar.github.io/Fantasy-Map-Generator/


AFMG is a very comprehensive tool to simulate a world and create many types of maps from there.

TIPP: For realistic results in relation to the planetary system, it is best practice to take climate data from your planetary system creation tool.

One downside of AFMG though: It's resolution isn't the best, but good enough for world building. For more detailed and polished graphics, you could export everything from AFMG and make your own more polished artworks based on it with the programs of your choice.

Or go into further detai using other programs for...


Settlement Generation
You can absolutely try handcrafting settlements, but you might also want to save some time and use a generator.

This is a rather well-made European/Medieval city generator:

https://watabou.github.io/city.html


It not only interfaces with Azgaar's Fantasy Map Generator, but also is part of an entire suite of various medieval- and fantasy-related generators:

https://watabou.github.io/


Unfortunately, whilst it does have rather competent generative tools at hand, it does not allow you to reassign cells and their boundaries to your heart's content. For example to expand individual districts or draw new roads with one click.

For more in-depth settlement creation, it would be advisable to use a city-builder game of your choice or export your generated city to Blender via the City Viewer and start modelling from there.

Still, even with all those limitations, it's a great tool to get a general idea for a settlement.
Prospect
It is important to stay up-to-date. There are new technologies, programs and trends popping-up all the time. Old programs also deprecate eventually. However, it is wise to be reasonable and not jump on every hype-train that's making the rounds.

For instance, "A.I."/machine-learning aided design is the newest hot stuff and depending on who you ask, it is an inherently evil and thieving creation that will make human creative work obsolete or the latest and greatest tool providing many new opportunities and ways for people expressing themselves and further democratising the creative space.

Machine learning is an highly dymanic field which constantly changes - probably moreso than the rest of computer science even. However, if you are interested in a guide on mesh generation from single or multiple images, feel free to check out this one on installing TRELLIS on Windows using WSL:

https://steamhost.cn/steamcommunity_com/sharedfiles/filedetails/?id=3382859947


But discussing this topic here further would definitely be out of scope for this guide. :)
Conclusion
There are plenty of free/libre and open-source alternatives to proprietary creative software. They may not always be drop-in replacements, but can take on similar roles given they can be integrated into your own workflow.
No matter which programs you use, effort and determination to learn is paramount to succeed - and even that doesn't guarantee success. :/

Get yourself familiar with the programs of your choice and establish your own workflow by setting your own goals. If you have issues finding goals yourself, ask someone you know or have a task generated by a friendly A.I. - just don't get yourself taken advantage of.
Modding games I liked playing was what got me into using these programs in the first place.

I hope you've enjoyed my disjointed discussion and maybe learned something.

If you have any suggestions, feel free to leave them in the comments.

I wish you most success.
Credits
Guide Icon Image:

"The Artist and The Apprentice" by Vladimir Egorovič Makovskij (1846 – 1920)