Leszek

Aug 12, 2020

Please welcome Leszek ‘Лешы’ Szczepański, @yezu Game developer at @Guerrilla. Leszek will tell us about his FOSS projects.

August 12 to 19 on @imakefoss

Interview: https://t.co/ybaflWr7yK

@imakefoss is a rolling curator account. Wanna be a curator? Please get in touch. https://t.co/YZ8iikNzOv

Aug 12, 2020

Hi Everyone! I’m honored to take charge of the IMakeFOSS Twitter for this week. Although I might not have as much FOSS development clout as my predecessors, I’ve been making video games for over 13 years and have been involved in other creative fields, all while utilizing FOSS.

Aug 12, 2020

Over this week I will try to talk about how various creative fields can benefit from using FOSS and how your contribution, whatever it may be, may help everyone. I will focus on video games, as that is my main field, but will talk about other things like music production as well.

Aug 12, 2020

Modern game development does not exist without open source. Whether it is AAA or indie, you will be using a full FOSS stack or at least partly. Whether it means FOSS tools, libraries or engines. Unlike 30 years ago there’s no need to create custom solutions to every problem.

Aug 12, 2020

Indies commonly use engines frameworks like MonoGame or libGDX or tools like Blender or Gimp. However even in the AAA space FOSS is common, with things like zlib, tinyxml, Recast/Detour or Open Dynamic Engine being integrated quite often.

Aug 12, 2020

More commonly than in the Indie space, most AAA companies still often use proprietary tools. However that is also slowly changing. Blender, for example, has become so powerful, that more and more artists are getting familiar with it, and slowly replacing things like Maya with it.

Aug 12, 2020

Although the situation is slightly different when it comes to highly specialized tools, even such closed source software is becoming more FOSS friendly, e.g. Houdini has a Linux build and Unreal Engine 4 pushes it further by making their source and bugtracker publicly available.

Aug 13, 2020

So you want to create your next game, animated movie or music album, why would you want to involve yourself in FOSS in the first place? Let’s explore this.

Aug 13, 2020

First of all with FOSS you lower your cost. Most tools are free and come without strings attached. Whereas in the proprietary space subscription models are more and more common and designed to bleed you dry. With Open Source you download, you run and you’re ready to go.

Aug 13, 2020

Secondly you avoid a lock-in. At any point you are able to switch tools, work methods. FOSS mostly uses open standards and follows the idea of interoperability. Proprietary tools are designed to lock you in, by means of closed, obfuscated formats, subscription models and more.

Aug 13, 2020

Thirdly tech support. By having the source available there are more people knowledgeable about the tool you are using. Even if the devs themselves can’t help you quickly enough, it’s much more common to find someone else who is willing and can.

Aug 13, 2020

If the documentation is lacking, in the worst case you can look at the code yourself. If the documentation is lacking in proprietary software (and believe me it usually is), you’re out of luck.

Aug 13, 2020

In essence in all comes down to this difference: The goal of any FOSS project is to create be best, most useful piece of software possible, the goal of any proprietary project is to create the biggest revenue stream for the owner.

Aug 13, 2020

What about you contributing to FOSS? Let’s have a look at that as well.

Aug 13, 2020

If you are modifying the tools/libraries you are using, it is quite likely someone else will also benefit from these changes. By contributing you are allowing for you improvements to be built upon further, benefiting you later on as well.

Aug 13, 2020

Secondly, nothing exists in a void. All tools and processes are part of the ecosystem. You help improve one part of it, the whole ecosystem improves with it. That’s why even outside FOSS most professional fields are so keen on knowledge sharing.

Aug 13, 2020

And most importantly, by contributing to Free and Open Source Software, in any way, you are making a positive change in the world. You are improving something not only for yourself, but for others.

Aug 13, 2020

Let’s get into some specifics now. Over the course of the next few days I will be highlighting some of amazing FOSS tools that you can use in your project. Day 01 - 3D graphics:

Aug 13, 2020

Let’s start with the easiest choice: @Blender a widely known, more and more commonly used 3D Graphics toolset. It’s capable of modeling, animation, movie quality rendering, video editing and also features a robust API that allows for absurd amount of automation.

Aug 13, 2020

@Blender It’s my personal favorite and I can’t stress enough how good of a piece of software it is. For a isometric 2D game I’m making I’m using it heavily to generate sprites. Using it’s Python API I integrated it into my pipeline allowing me generate high quality graphics in minutes.

Aug 13, 2020

@Blender If you are making a video game, a animated movie, a non animated movie with special effects or a music video. Blender is for you. https://t.co/JNyh4tINWv

Aug 13, 2020

@Blender Second tools is Wings 3D (https://t.co/Wg2HYBXLhl) which is an extremely easy to use and really powerful 3D subdivision modelling tool. If you need a tool for quick creation of 3D models I can’t recommend it enough.

Aug 13, 2020

@Blender The final entry in this category is Dust 3D (https://t.co/zCoZNJsQ3U), it’s a fairly new project but is 100% usable and stable. It’s a modelling and animation tool that was developed specifically with games in mind.

Aug 13, 2020

@Blender It employs truly novel approach to creating models. You essentially draw hierarchical shapes in two axes, usually with some sort of a picture in the background as a stencil/template. This method it makes extremely fast and easy to use. https://t.co/NcNTowtv2E

Aug 14, 2020

On to Day 02 - Audio tools. This will include various entries, that can be useful for music production, audio engineering for movies and games.

Aug 14, 2020

Let’s start with the most widely used and obvious choice for this category - Audacity (https://t.co/clg7EDwTHV). Probably the most widely used and most powerful audio editor out there.

Aug 14, 2020

If you need to edit sfx for a game or film, edit your podcast, edit samples for your music this is the tool for you. It’s very mature, constantly developed, very stable and supports many different plugins. Also, importantly, it’s very easy to use.

Aug 14, 2020

Now if you are interested in music production this is the tool you want to look at - Ardour (https://t.co/08GopI0pdf). Professional, fully featured Digital Audio Workstation. Supports many different types of audio plugins as well as MIDI for hardware support.

Aug 14, 2020

Ardour while the most powerful FOSS DAW can be a bit intimidating. If you are looking for something simpler, while retaining options look at LMMS (https://t.co/olYkmVVMuo). Another FOSS DAW, which while supporting the regular bells and whistles is easy to setup and get into.

Aug 14, 2020

If you are looking for something more focused, and are happy to use Linux I can recommend two software sequencers Qtractor (https://t.co/yzEUs3yrQY) and MusE (https://t.co/KX8NjaYQXA). You can use them to control you hardware or software synths, while recording somewhere else.

Aug 14, 2020

The final piece of audio software that I will recommend Today is sfxr (https://t.co/TWsWzPR9DL). An 8-bit style software synth designed for creating retro sound effects. Powerful, easy to use, and a lot of fun. It’s impossible to count all the indie games have sfx made in it.

Aug 15, 2020

Let’s talk about more FOSS tools. Day 03 - Video tools. So video editors and more:

Aug 15, 2020

Let’s start with the most fundamental tool of them all FFMPEG (https://t.co/zh3Z3kOTLQ). It’s a set of libraries and command line tools for handling video, audio, and other multimedia. It’s the backbone of most if not all FOSS and proprietary video editing software.

Aug 15, 2020

Do you want to encode a video in a specific format? Do you want to extract audio from the video you took on your phone? Do you want to get specific frames from a movie? Do you want to batch convert your screenshots into a timelapse animated gif? FFMPEG can do all that and more.

Aug 15, 2020

You can also integrate it in your application. So if you feel like streaming a video to texture in your 3D geometry, or saving a video of a playthrough of your game (without external tools), the FFMPEG libraries are what you want to use.

Aug 15, 2020

Let’s move to something more user friendly and look at some non-linear video editors. For a very long time it was difficult to get a good FOSS tool of that kind. For a long time the industry standard has been Adobe Premiere. However thankfully now this is changing.

Aug 15, 2020

Currently probably the best one, the most stable and feature complete is Shotcut (https://t.co/dc1ehtAU1i). It supports a lot of advanced features like 4K video and color grading. You can easily use it to edit your film or YouTube video while achieving truly professional results.

Aug 15, 2020

Second one, bit more easy to use is OpenShot (https://t.co/JRw5B7wXcO). Quite a mature project, supporting common features like transitions, various effects, many video formats and more you’d want from a video editor. Most importantly it has a clean UI and is easy to get into.

Aug 15, 2020

Anyone familiar with FOSS video editing was probably waiting for to mention the third editor: Kdenlive. It’s probably the oldest FOSS non-linear video editor that is commonly used. As expected it’s a mature project with many features and quite a big user community.

Aug 15, 2020

It is worth mentioning that Kdenlive is only for Linux, BSD and MacOS. All three I can honestly recommend. Which one is the best tool for you, depends on your preferences and needs :)

Aug 15, 2020

Special mention also goes to Blender (https://t.co/Uj4XuTFZCJ). Although primarily 3D software, you can use it’s animation and shader tools for video editing. And it works extremely well. Probably the best tool for adding funky post-processing or special effects to your video.

Aug 15, 2020

Final piece of software for Today, THE standard for live video streaming: OBS Studio (https://t.co/oFyb64cxHu). Most used tool on Twitch and similar services. Extremely powerful and configurable. Want to stream from your phone, webcam, DSLR and screen AT THE SAME TIME? Easy.

Aug 15, 2020

@e8johan Oh really? It makes sense someone finally ported it :)

Aug 15, 2020

@ComedyReflux Yeah there’s quite a bit of really good tools nowadays. To be honest I’ve never heard of Olive. But it sounds interesting will give it a shot! For now I’ve been a great fan of Shotcut, it was the first piece of video editing software which allowed me to do all wanted hassle free.

Aug 16, 2020

Today I’d like to share some of my experience with developing FOSS. For the past couple years I’ve been developing a Java based framework and tools for loading, managing and editing game data. Something that would live on top of LWJGL or libGDX but not end up a full game engine.

Aug 16, 2020

It’s goal was to have a drop in solution for data driven games, written in Java. I had 2 main rules:

  1. Rapid iteration of content is fundamental - data needs to be quick to add, edit and update.
  2. Reinventing the wheel is forbidden - if a solution already exists I will use it.

Aug 16, 2020

While there are many interesting consequences of 1) like using a single data format for all, making game editor binaries independent of each other, being able to script out data generation in editor and more. I will focus more on consequences of 2) as they are more FOSS related.

Aug 16, 2020

I looked at what I wanted the editor to look like and what solutions already exist. For GUI I had Swing, for scripting I had Rhino, for serialisation I found Jackson, for graph editing I found jGraph, for property editing I found L2FProd, for text editing I found RSyntaxTextArea.

Aug 16, 2020

The benefits of using FOSS:

  1. All of my needs were met. I could focus on building the tool I needed, not creating the basics for the next couple of years.
  2. I didn’t have to rely solely on documentation of the libraries I was using.
  3. I could modify everything as I needed.

Aug 16, 2020

I’d like to highlight two particular experiences here: Property editing using L2FProd and DXT/S3TC texture compression using Nasa World Wind. In the first case the project is by now abandoned, but nothing stopped me from taking it over, updating and integrating into my editor.

Aug 16, 2020

In the case of Nasa World Wind the problem was that texture compression was not a separate module but part of the whole, large application. Thankfully it is FOSS, I could extract the necessary code from the app and create a custom lightweight library which I added to the editor.

Aug 16, 2020

To sum this up. I saved a lot amount of time thanks to the decision to work with FOSS and license my tools the same way. I could use the plethora of already existing libraries, integrate them without issues and figure out how they work without hitting my head against black boxes.

Aug 17, 2020

Let’s talk more about FOSS tools that can be helpful in game development or other creative endeavors. Today will be a bit less categorized, but hopefully also interesting. Day 04 - Various Tools:

Aug 17, 2020

The first one worth mentioning is Tiled (https://t.co/i5tzNcc3GY). Which is a very versatile 2D level editor, supporting orthogonal, isometric and hexagonal maps. It’s worth mentioning that it’s one of the very few level editors that can be used with multiple engines.

Aug 17, 2020

It’s very versatile, extendable and configurable. Also constantly being improved. It’s impossible to count how many indie games have been made using this tool.

Aug 17, 2020

Something slightly newer, but an amazing tool for anyone interested in modern computer graphics - ShaderEd (https://t.co/4EoUIo0802). Effectively it’s a full IDE dedicated to developing, testing and debugging shaders, with an integrated shader debugger.

Aug 17, 2020

There are three more tools I’d like to talk about. However, first I want to mention that, even though they are extremely useful, these are going to Blender plugins. Apparently Blender can do anything :)

Aug 17, 2020

First of all will by Sprytile (https://t.co/gWOeXNMaNV) which is fairly unique tool. It allows for making tile based 3D models and environments, resulting in a very different approach to geometry creation and amazing 3D pixelated graphics.

Aug 17, 2020

Second is MB-LAB (https://t.co/nd7RAwyHTB) an addon for creating humanoid characters. Essentially a character editor inside Blender. With support for clothing, hair, editing of every conceivable body parameters as well as providing users with presets, it can be extremely useful.

Aug 17, 2020

Finally I wanted to mention Building Tools (https://t.co/e0Ako3f8eU). An addon for quick creation of building exteriors. By defining to define general style of the building, floor plan and number of floors it will generate a building for you, which you later can further tweak.

Aug 17, 2020

There are many, many more smaller and bigger FOSS tools out there. This was just a small selection of the ones I like the most. If you think I missed something amazing, please let me know! I’m always curious to see more cool FOSS game development related tools.

Aug 18, 2020

As my week hosting this account is coming to an end, I’d like to talk about last set of FOSS tools. This time tools essential for game development. Day 05 - Game Engines:

Aug 18, 2020

Frankly there are tons of them, built using different focuses and ideas, but in this abundance of diversity you might find exactly what you need. I will talk only about small set of them, that I either am quite familiar with or find really interesting:

Aug 18, 2020

Let’s start with the most advanced engine currently available. Godot Engine (https://t.co/EWjhqbKWPP). If you are not sure what tech to use, this would be the first thing to try out. It supports multiple languages, has a outstanding toolset and really amazing renderer.

Aug 18, 2020

In general you should give the dev, Juan Linietsky @reduzio a follow as he tweets a lot about the engine development and features. Godot for good reason is the most talked about FOSS game engine out there. Just look at this demo reel: https://t.co/KxCdKELvvS

Aug 18, 2020

@reduzio Moving on, let’s talk about the framework I use the most - libGDX https://t.co/WVSHXchm4g). It’s a Java based framework with amazing cross-platform support, active development, 2D and 3D renderers, active community and great documentation. Many games have been shipped with it.

Aug 18, 2020

@reduzio What I also personally like about it, that it really sticks with the Java technologies. Making it very easy to integrate with the large amount of existing Java based solutions.

Aug 18, 2020

@reduzio Another framework worth mentioning is MonoGame (https://t.co/7Cq1AQezif). Built on top of ideas from the (almost?) dead XNA, using Mono. It has great multi-platform capabilities, a lot of examples and many games also have been made with it. If C# is your thing check out MonoGame.

Aug 18, 2020

@reduzio https://t.co/VesketdlG8 (https://t.co/XXR7bTzbu2) is a extremely versatile piece of game tech. Being modular you can use it as a full engine, or choose what you need. Built on top of the Haxe language it has a lot features like a custom VM or game focused database system.

Aug 18, 2020

@reduzio Although it has been used to ship a number of high quality games, it’s not as widely used as it could. @gamefromscratch made a great video about it: https://t.co/hohHIaj4RV

Aug 18, 2020

@reduzio @gamefromscratch Defold (https://t.co/0fWzx83Uw9) is an engine with and interesting history. Initially created by King, recently has been open-sourced. King is still using it, but not running it’s development. It’s mostly focused on 2D mobile/web applications but has 3D and desktop capability.

Aug 18, 2020

@reduzio @gamefromscratch Given its history, it’s proven and feature rich. Most worth mentioning is the great tools and ability to hot reload assets and logic.

Aug 18, 2020

@reduzio @gamefromscratch While we’re on the topic of web tech, let’s talk about PlayCanvas (https://t.co/gQeXhZkpMq). An interesting 100% HTML5 game engine. It’s fully focused on the web, with a really efficient 3D renderer. And by fully I mean, the tools are web based, supporting online collaboration.

Aug 18, 2020

@reduzio @gamefromscratch If you are looking for something small and quick to get going, look at PixleBox.js (https://t.co/rRxWupsF3u) a tiny (but quite powerful), JavaScript based 2D engine. The only engine I know of with an integrated tracker. If you are doing a smaller project, it’s a great choice.

Aug 18, 2020

@reduzio @gamefromscratch The last engine I’ll mention Today, will be the jMonkeyEngine (https://t.co/UxEEkiLTk9). The most powerful and feature rich Java based 3D game engine. With great community, nice toolset and active development, it is an engine really worth looking at if you’d like to make 3D game.

Aug 18, 2020

@reduzio @gamefromscratch I barely scratched the surface here. There are so many great engines and frameworks out there. If you think I missed something I should have totally mentioned, please let me know.

Aug 19, 2020

Thank you for bearing with me for the past week. It has been an honor to be part of this account. As I said earlier I might not have as much FOSS dev history as some who came here before, but I do believe in FOSS, so I tried to highlight projects that helped me and I find great.

Aug 19, 2020

If you are interested in game development, music production and an occasional rant, you might give me follow at @yezu And now please give a warm welcome to @jflory7 who Today will be taking over this account! :)