Hugo

Apr 28, 2021

Please welcome Hugo Locurcio, @HugoLocurcio

Web and infrastructure developer for @godotengine

April 28th to May 5th on @imakefoss

Interview: https://t.co/EYil2INND6

@imakefoss is a rotation curation account, a blog, a podcast and a YouTube channel. https://t.co/lgQK4ZwNMN

Apr 29, 2021

Hello everyone! This week, I’ll be talking about open source game development, what FOSS brought to me, and of course #godotengine :)

—@HugoLocurcio

Apr 29, 2021

Quick-ish recap of my FOSS origin story: When I was about 10 years old, I wanted to play more games but I didn’t want to ask my parents to buy me new games. I ended up discovering open source games. Soon after, I joined their communities and tried to contribute.

—@HugoLocurcio https://t.co/EFyKe5PVNq

Apr 29, 2021

@HugoLocurcio Due to my limited technical skills at the time, I couldn’t do much but I still tried my best to help those open source games.

I started contributing to French translations since I’m a native French speaker. This also helped me improve my English skills :)

—@HugoLocurcio

Apr 29, 2021

@HugoLocurcio Fast forward to 2011. I discovered the open source game #Minetest. The game was starting to get traction among Linux gamers. In December 2011, Minetest got support for Lua modding, making it possible to create new gameplay items with minimal programming knowledge.

—@HugoLocurcio

Apr 29, 2021

@HugoLocurcio I took this opportunity to create More Blocks and More Ores. These two mods were quite basic on a technical level (not so much now), but they still became some of the most popular mods in a few weeks’ time.

Being an early adopter can make things quite easier :)

—@HugoLocurcio https://t.co/YD5RaleOaw

Apr 29, 2021

@HugoLocurcio I happily moved along and maintained the #Minetest mods More Blocks and More Ores for a few years. Many people from the community helped me on the way as well.

During that time, I also worked on other Minetest-related projects, texture packs, and mods.

—@HugoLocurcio

Apr 29, 2021

@HugoLocurcio Later, I wanted to move to something more ambitious and create my own open source game.

However, in 2013, the options for doing so were quite limited. You had to fork an existing game engine like ioquake3, or create your own engine based on a framework like OGRE.

—@HugoLocurcio

Apr 29, 2021

@HugoLocurcio Both of the methods mentioned above required low-level programming.

They were also starting to lose traction among other developers, with the rise of full-fledged game engines that come with GUI editors such as Unity 5 and Unreal Engine 4.

—@HugoLocurcio

Apr 29, 2021

@HugoLocurcio In January 2014, while reading Phoronix as I did every day, I saw an article about a new game engine that would be open sourced soon after: Godot Engine. I compiled #GodotEngine and tried it out as soon as it was released. I then toyed around a bit with its demos.

—@HugoLocurcio

Apr 29, 2021

@HugoLocurcio I kept #GodotEngine in the background until May 2015. I was 17 and, while studying for the French baccalaureate, I started experimenting with Godot on various projects.

In November 2015, I released a small 3D game called Veraball: https://t.co/pLh0F96fzW

—@HugoLocurcio

Apr 29, 2021

@HugoLocurcio Veraball was a simple proof of concept but I was still proud of what I managed to achieve.

At the same time, I also joined the #GodotEngine community to help other game developers on their projects. I became a prominent Godot community member soon after.

—@HugoLocurcio https://t.co/ySXXf1qAoQ

Apr 29, 2021

@HugoLocurcio I made my first code contribution to #GodotEngine in May 2016. Since C++ felt quite daunting to me, it took me a while to pick up speed.

My 10th commit to Godot was only made 2 years later, but I quickly became more prolific. I reached 100 commits the same year!

—@HugoLocurcio

Apr 29, 2021

@HugoLocurcio Fast forward to 2020. I finished my master’s degree in computer engineering in the middle of the year and joined #GodotEngine as a full-time web and infrastructure developer.

This let me dedicate more time to work on open source software.

—@HugoLocurcio

Apr 29, 2021

@HugoLocurcio Being able to conciliate my hobby and a way to make a living has always been important to me, so I’m happy things turned out that way. This was possible thanks to #GodotEngine’s healthy funding situation, but sadly, not all projects are so fortunate on this point.

—@HugoLocurcio

Apr 29, 2021

@HugoLocurcio Anyway, that’s it for today! See you tomorrow for more details about #GodotEngine, how it became successful and what’s coming in the future.

—@HugoLocurcio

Apr 30, 2021

Please don’t miss the lastest @imakefoss interview with @annasor: https://t.co/3IzLVPbzWL about her origin story, adjusting to virtual conferences, and welcoming newcomers to FOSS.

~ @josp0001 https://t.co/ygfRAuU4nY

Apr 30, 2021

#GodotEngine came a long way since it was open sourced in early 2014. Here’s a recap of some of its major advancements and what’s next in the future.

—@HugoLocurcio https://t.co/cSxcwiXsPo

Apr 30, 2021

@HugoLocurcio #GodotEngine had its 1.0 release in December 2014. Compared to the first open source commits publicly available, this version featured things that we now take for granted. For example, it added a Tween node which is often used to create smooth animations via code.

—@HugoLocurcio

Apr 30, 2021

@HugoLocurcio However, #GodotEngine 1.0’s usability was still significantly behind what other engines provided at the time.

Back then, the community was small compared to today, which made it difficult for people to find answers to their questions if they ran into a problem.

—@HugoLocurcio

Apr 30, 2021

@HugoLocurcio #GodotEngine 1.1, released in May 2015, continued to add new features such as 2D lighting + normal mapping, allowing Godot to deliver very good visuals for 2D games at the time.

You can see it in action here: https://t.co/KJ1VSb7W8P

—@HugoLocurcio

Apr 30, 2021

@HugoLocurcio Once the ’essential" feature work was done, the focus shifted to improving #GodotEngine’s usability.

In less than a year, the editor’s usability was improved by implementing a new dock system, multiple scene editing, improved scene instancing and live editing.

—@HugoLocurcio

Apr 30, 2021

@HugoLocurcio Live editing was one of those #GodotEngine features that had a nice ‘wow effect" to it.

It let users perform changes in the editor while the project is running, with those changes being reproduced in the running project in real-time.

—@HugoLocurcio

Apr 30, 2021

@HugoLocurcio This live editing feature even worked on an Android device connected over Wi-Fi: https://t.co/u3KghczDp9

This feature is also present in the latest Godot version. It now has a way to replicate the editor camera’s point of view in the project for easier debugging.

—@HugoLocurcio

Apr 30, 2021

@HugoLocurcio The focus on improving engine usability above anything else continued until #GodotEngine 2.1.

Godot 2.1 also brought support for editor internationalization, an editor plugin system and an asset library for everyone to use: https://t.co/Xc0IB8PsAH

—@HugoLocurcio

Apr 30, 2021

@HugoLocurcio Godot’s philosophy has always been centered around usability, letting the user get good results with little effort.

I think this has played a large role in its success. Still, this is a compromise that can sometimes be seen in terms of flexibility or performance.

—@HugoLocurcio

Apr 30, 2021

@HugoLocurcio Now that #GodotEngine’s usability was in a much better state, the next goal was to improve the 3D rendering features.

Godot 2.x, being based on OpenGL ES 2.0, lacked many features found in modern renderers such as SSAO, DoF, MSAA, real-time global illumination…

—@HugoLocurcio

Apr 30, 2021

@HugoLocurcio Back in mid-2017, I made a video to showcase #GodotEngine 3.0’s new features: https://t.co/Q1sByTM5vr

GLES3 allowed for lots of new things. The improvements were not limited to 3D rendering – many new things became possible in 2D as well, such as 2D soft shadows.

—@HugoLocurcio

Apr 30, 2021

@HugoLocurcio #GodotEngine 3.0 was released in January 2018, with hugely improved 3D rendering functionality.

Unfortunately, support for much of the mobile market of the era was lost in the process due to the OpenGL ES 2.0 renderer being removed.

—@HugoLocurcio

Apr 30, 2021

@HugoLocurcio The main goal for #GodotEngine 3.1 was to reimplement a new GLES2 renderer so that mobile developers could upgrade from Godot 2 to 3.

Godot 3.1 was also home to new usability improvements, such as a revamped animation editor and a more powerful animation system.

—@HugoLocurcio https://t.co/9vbJ7dCLTp

Apr 30, 2021

@HugoLocurcio #GodotEngine 3.2 continued on a similar trend as 3.1 did, with a focus on platform support.

People could now make networked multiplayer HTML5 games thanks to the new WebSockets+WebRTC support. Android also got a new build system to integrate plugins more easily.

—@HugoLocurcio

Apr 30, 2021

@HugoLocurcio From a maintainer’s perspective, the freshly released #GodotEngine 3.3 is where the fun begins :)

With Godot 4.0 being developed in parallel, many features were backported to Godot 3.x, including some rendering features such as FXAA and debanding.

—@HugoLocurcio

Apr 30, 2021

@HugoLocurcio In #GodotEngine 3.x, people sometimes run into low performance or have trouble with getting good visual quality.

4.0 is being developed with this in mind. Not only it will feature many performance optimizations, it’s also configured to look great out of the box.

—@HugoLocurcio https://t.co/JH0l01lkR7

Apr 30, 2021

@HugoLocurcio One example of this is #GodotEngine 4.0’s signed distance field global illumination (SDFGI).

With the press of a button, you get real-time global illumination that’s suitable for large open worlds. Very little configuration is needed.

https://t.co/2KBZVYeqRw

—@HugoLocurcio

Apr 30, 2021

@HugoLocurcio On top of core refactoring and use of Vulkan, #GodotEngine 4.0 will provide better performance thanks to automatic LOD and occlusion culling for imported 3D models.

Performance tweaks were also moved to an unified location to make them easier for users to adjust.

—@HugoLocurcio

Apr 30, 2021

@HugoLocurcio Thanks for tuning in today! See you tomorrow for notes about my contributions to #GodotEngine, the development workflow, and more.

If you’re interested in seeing more of Godot’s history (which dates back as far as 2001), check out https://t.co/tVCRvp2TSr :)

—@HugoLocurcio

May 1, 2021

My contributions to #GodotEngine are quite diverse.

While my title is ‘Web and infrastructure developer", I’ve found myself contributing to editor usability, documentation, and even core/rendering features.

—@HugoLocurcio https://t.co/KWi1jyGSgP

May 1, 2021

@HugoLocurcio Most of my initial code contributions to #GodotEngine consisted in improving the editor UX in various ways.

I wanted to make Godot feel more consistent in terms of look and feel, while also trying to make things less cramped.

Before/after:

—@HugoLocurcio https://t.co/UCXbZqRSbW

May 1, 2021

@HugoLocurcio These UX changes are not necessarily difficult to make, but they need agreement from the core developers and community.

When added up, these changes can massively improve the #GodotEngine editor usability.

Before/after:

—@HugoLocurcio https://t.co/QTZXhD7fWG

May 1, 2021

@HugoLocurcio I’m an active contributor to #GodotEngine’s documentation, with over 350 commits to the documentation repository.

I also contribute to the class reference regularly – this is the documentation that covers the Godot API and is available offline in the editor.

—@HugoLocurcio https://t.co/SkOaocUFtZ

May 1, 2021

@HugoLocurcio I also built a website to track the #GodotEngine class reference completion percentage: https://t.co/7q4bNk9pWI

It started as an experiment using the Hugo static site generator, but it’s nice to see the documentation progress this way :)

—@HugoLocurcio

May 1, 2021

@HugoLocurcio While renderer engineering isn’t something I do by trade, I keep up-to-date with the latest rendering advancements.

For instance, I added an option for smoother soft shadows in Godot 3.3’s GLES2 renderer (something missing since Godot 2).

https://t.co/Bmlh9wlqSR

—@HugoLocurcio

May 1, 2021

@HugoLocurcio To continue on the editor work, one of the large undertakings I’m going through is redesigning the editor theme for #GodotEngine 4.0.

The Godot 3.x editor theme is doing its job fine, but we can make it look more modern by adopting the current design trends.

—@HugoLocurcio https://t.co/6YTE1r83M7

May 1, 2021

@HugoLocurcio As always, the editor theme remains customizable so you can easily adjust the fonts, the base colors, the contrast rate, border width and corner radius.

This way, you can make the #GodotEngine theme yours in a few minutes’ time.

—@HugoLocurcio

May 1, 2021

@HugoLocurcio Another theming task I’ll look into in the future is to redesign the default project theme using vector elements.

The current project theme (pictured) dates back to the Godot 2 days. It’s old and uses a lot of bitmaps, making it scale poorly to high resolutions.

—@HugoLocurcio https://t.co/aYwn8KFBnd

May 1, 2021

@HugoLocurcio A quick note on the #GodotEngine development workflow. Unlike most C++ projects, the build system is SCons instead of CMake.

All third-party libraries are also included in the engine source tree, so you don’t have to scour for dependencies, especially on Windows.

—@HugoLocurcio https://t.co/bnTK7mThi2

May 1, 2021

@HugoLocurcio These development choices make it very easy to get started developing #GodotEngine, even if you’ve never compiled a C++ project before.

However, this is also a compromise in terms of build system performance, which impacts engine iteration times negatively.

—@HugoLocurcio

May 1, 2021

@HugoLocurcio There are plans to move #GodotEngine’s build system to Meson in the future.

Starting from a clean base, this would allow for faster build times and out-of-tree builds, allowing engine contributors to iterate faster.

—@HugoLocurcio https://t.co/rVAn55nCTn

May 1, 2021

@HugoLocurcio Thanks for tuning in today! See you tomorrow for more details about #GodotEngine’s design principles, where it particularly shines and the tradeoffs Godot needs to make.

—@HugoLocurcio

May 2, 2021

@Tantacrul @Linux4Everyone Congratulations, @Tantacrul!

Yes, you are very welcome to join @imakefoss.

May 2, 2021

Since its inception, #GodotEngine had to make many design choices and tradeoffs to get where it is today.

I’ll go through some of the most important design choices and explain why these were made.

—@HugoLocurcio https://t.co/4L7yCGdUXt

May 2, 2021

@HugoLocurcio To me, one of the most imporant aspects of software design is choosing what to expose publicly and what to keep private.

When adding a feature, ask yourself: ‘Should this be a configurable setting?", “Should this method/property be exposed to the scripting API?”

—@HugoLocurcio

May 2, 2021

@HugoLocurcio There’s always a cost to adding new settings in #GodotEngine, be it properties to nodes or editor settings.

This cost may be invisible at first, but its burden can quickly add up for testers, bug reporters and contributors alike.

—@HugoLocurcio https://t.co/A5j6MDBF04

May 2, 2021

@HugoLocurcio Adding more settings can also introduce choice paralysis, even among more advanced users.

In other words, having the choice between two (or more) options can make things more difficult than if the setting was not present in the first place.

—@HugoLocurcio

May 2, 2021

@HugoLocurcio To improve this, we are adding an advanced settings toggle to #GodotEngine 4.0.

This makes the Project Settings much less cluttered out of the box, but it requires careful thinking with regards to the list of settings to show by default.

—@HugoLocurcio https://t.co/nml96WcXF2

May 2, 2021

@HugoLocurcio A way to reduce the number of settings is to determine the best value to use in a context-specific way.

For example, Godot 4.0 no longer has a ‘framebuffer allocation" project setting. Instead, rendering buffers are allocated depending on current feature usage.

—@HugoLocurcio

May 2, 2021

@HugoLocurcio The rendering backend in #GodotEngine 4.0 went with similar design choices as the one in 3.x, but with a higher emphasis on performance/quality. While the higher visual fidelity of deferred rendering was appealing, forward rendering was chosen for its flexibility.

—@HugoLocurcio

May 2, 2021

@HugoLocurcio Forward rendering is proven technology. It’s been used since the 1990s, and is suited for realistic or stylized art direction, or a mix of both.

Unlike deferred rendering, it allows for using MSAA – a form of antialiasing that does not blur the final rendering.

—@HugoLocurcio https://t.co/FZliCF8l07

May 2, 2021

@HugoLocurcio Nonetheless, there’s a chance that future versions of #GodotEngine include a deferred renderer focused on photorealism.

Aiming for correctness, this renderer will have be less flexible due to the constraints of deferred rendering (and to improve performance).

—@HugoLocurcio

May 2, 2021

@HugoLocurcio On top of this rendering talk, there is another debate sparkling in the game engine community:

‘Should the engine come with advanced rendering features enabled by default, or disabled by default?"

—@HugoLocurcio

May 2, 2021

@HugoLocurcio In #GodotEngine, we mostly went with a disabled-by-default approach to improve performance – only pay for what you use.

While this approach works as intended, it also made usability suffer. Many people had a hard time getting 3D scenes to look good in the editor.

—@HugoLocurcio

May 2, 2021

@HugoLocurcio This visual quality problem was resolved by adding a new preview environment system to #GodotEngine 4.0.

The editor now has more rendering features enabled by default, but these are disabled once a proper environment setup is added to the project.

—@HugoLocurcio https://t.co/r1qNGgVWZ2

May 2, 2021

@HugoLocurcio To conclude, #GodotEngine’s development is very use case-driven. This means that solutions proposed must be developed to address real world problems.

You can read more about this in the documentation: https://t.co/35QWxwkXWS

—@HugoLocurcio

May 2, 2021

@HugoLocurcio Thanks for reading today’s thread! See you tomorrow for an overview of some features currently being developed for #GodotEngine 4.0 by its contributors. It’s much more than just rendering improvements, I promise :)

—@HugoLocurcio

May 3, 2021

This thread will showcase community contributions to #GodotEngine.

Not everything described in this thread has been merged yet, so I feel this is a good opportunity to show what you can expect in future versions (4.0 or later).

—@HugoLocurcio https://t.co/7l7lTR64qw

May 3, 2021

@HugoLocurcio Pictured above is the Godot Web editor, developed by @falessandrelli.

This is a full port of the #GodotEngine editor, working on both 2D and 3D projects. It’s great for education and preview purposes.

You can access it here: https://t.co/hFgOxBvSba

—@HugoLocurcio

May 3, 2021

@HugoLocurcio @falessandrelli #GodotEngine uses a 32-bit coordinate system. This is used to represent positions of game objects in the 2D/3D world.

While a 32-bit coordinate system is precise enough for most games, it falls short for large-scale games such as open world space simulations.

—@HugoLocurcio

May 3, 2021

@HugoLocurcio @falessandrelli To solve this, @aaronfranke7 is working on adding an option for using a 64-bit coordinate system.

This makes precision issues almost invisible. However, it has a performance cost. Since most games won’t need it, it’s disabled by default.

https://t.co/Snd59zTrHp

—@HugoLocurcio

May 3, 2021

@HugoLocurcio @falessandrelli @aaronfranke7 An often-requested feature in #GodotEngine’s scripting language (GDScript) was support for lambda functions.

These are now implemented in 4.0, and let you write methods that can be passed around as first-class variables (also new in 4.0).

https://t.co/lvOcGLjeRR

—@HugoLocurcio

May 3, 2021

@HugoLocurcio @falessandrelli @aaronfranke7 To complement this new GDScript feature, @KoBeWi_ has been working on adding ‘map", “filter” and “reduce” functions to arrays.

This means you can now run operations on arrays “inline”, like you would do in Python or JavaScript.

https://t.co/bCE9sXxFsh

—@HugoLocurcio https://t.co/XAq7OszMUb

May 3, 2021

@HugoLocurcio @falessandrelli @aaronfranke7 @KoBeWi_ As seen above, the editor has an Output panel. It’s where messages printed by the editor and running project appear.

This is an important panel to get ‘right". EricEzaM has been working on putting its usability on par with modern IDEs: https://t.co/hj61bCKVgC

—@HugoLocurcio

May 3, 2021

@HugoLocurcio @falessandrelli @aaronfranke7 @KoBeWi_ An often overlooked part of game engine development is frame timing stability.

Getting stable frame times is crucial to a good player experience. Thankfully, @lawnjelly has been working on improving #GodotEngine’s frame pacing: https://t.co/MQH2tbWx7N

—@HugoLocurcio

May 3, 2021

@HugoLocurcio @falessandrelli @aaronfranke7 @KoBeWi_ @lawnjelly Another issue related to frame timing is improving input responsiveness and reducing input lag where possible.

Thanks to their experience working with Android, @RandomPedroJ has improved input responsiveness on lower-end mobile devices: https://t.co/yXBdBtUbvV

—@HugoLocurcio

May 3, 2021

@HugoLocurcio @falessandrelli @aaronfranke7 @KoBeWi_ @lawnjelly @RandomPedroJ #GodotEngine supports 4 programming languages officially, and even more languages are supported thanks to community bindings.

You can read more about programming languages supported in Godot in this community-maintained resource: https://t.co/VPifL68HL7

—@HugoLocurcio

May 3, 2021

@HugoLocurcio @falessandrelli @aaronfranke7 @KoBeWi_ @lawnjelly @RandomPedroJ Supporting many programming languages in #GodotEngine doesn’t only have upsides, though.

While some people appreciate being able to use more third-party libraries, it also creates various interoperability issues and fragmentation.

—@HugoLocurcio

May 3, 2021

@HugoLocurcio @falessandrelli @aaronfranke7 @KoBeWi_ @lawnjelly @RandomPedroJ Even among the officially supported languages, there are still frictions in #GodotEngine when using GDScript and C# in the same project.

@willnationsdev is aiming to solve this with his implementation of cross-language resource exports: https://t.co/eQ2ehxQS49

—@HugoLocurcio

May 3, 2021

@HugoLocurcio @falessandrelli @aaronfranke7 @KoBeWi_ @lawnjelly @RandomPedroJ @willnationsdev My gratitude goes to all contributors who have submitted those new features for inclusion in #GodotEngine. You rock :)

Note that I focused on non-rendering features here, since I want to emphasize that Godot 4.0 isn’t just about improving the rendering backend.

—@HugoLocurcio

May 3, 2021

@HugoLocurcio @falessandrelli @aaronfranke7 @KoBeWi_ @lawnjelly @RandomPedroJ @willnationsdev Thanks for reading today’s thread!

See you tomorrow for a showcase of other open source projects I’ve been working on as of late.

—@HugoLocurcio

May 4, 2021

My open source contributions are more than just #GodotEngine.

On my spare time, I also work on many side projects and improve other open source projects.

—@HugoLocurcio https://t.co/qtSTFEgzTo

May 4, 2021

@HugoLocurcio When designing 3D rendering technology for a general-purpose engine, scalability is often important.

However, it’s difficult for engine developers to find large-scale test scenes for testing global illumination or lightmapping. The Sponza only gets you so far :)

—@HugoLocurcio https://t.co/sSxG26PfXZ

May 4, 2021

@HugoLocurcio For the purpose of testing 3D rendering algorithms, I made a repository of medium/large-scale map meshes exported from various open source games.

These can be used in any engine that can load OBJ files: https://t.co/4KQ7T04MpE

—@HugoLocurcio

May 4, 2021

@HugoLocurcio On top of being a game engine, #GodotEngine also powers many applications thanks to its versatile nature.

I’ll showcase a few of those below :)

—@HugoLocurcio

May 4, 2021

@HugoLocurcio #MaterialMaker is an open source procedural material editing tool made with #GodotEngine.

Over the last two years, it has gained a lot in terms of functionality and is becoming a worthwhile alternative to Substance Designer.

https://t.co/vwup3b76cS

—@HugoLocurcio https://t.co/mQTKhb2ZaI

May 4, 2021

@HugoLocurcio In #MaterialMaker, I contributed many usability improvements.

I also made many tweaks to the 3D preview to further improve its visual quality. Supersampling and tesselation really help a lot here :)

Before/after comparison: https://t.co/OFX9SCoU8e

—@HugoLocurcio

May 4, 2021

@HugoLocurcio #Pixelorama is an open source 2D pixel art editor, also made with #GodotEngine.

I did some tweaks here and there to improve user experience. Nothing major, but sometimes, the last 20% of a project are the hardest to get ‘right".

https://t.co/7PpfjhCI6K

—@HugoLocurcio

May 4, 2021

@HugoLocurcio As an open source developer, software distribution is another of these issues that needs to be carefully thought about.

I like automating things as much as I reasonably can, so I’ve been using utilities like #Flatpak and Scoop increasingly.

—@HugoLocurcio

May 4, 2021

@HugoLocurcio Distributing applications that run on every Linux distribution has historically been difficult. #Flatpak has done great strides to improve this.

I maintain Flatpak manifests for #GodotEngine, #Pixelorama, #MaterialMaker and #SHADERed.

https://t.co/xAtBBMkOUs

—@HugoLocurcio

May 4, 2021

@HugoLocurcio I also maintain a Scoop bucket dedicated to open source and freeware games: https://t.co/v2fuO2Fvkd

Scoop provides an experience similar to apt/dnf/pacman, but on Windows. When using a dual boot setup, it fills in a major missing gap compared to Linux :)

—@HugoLocurcio

May 4, 2021

@HugoLocurcio I toy around with AI-based image upscaling methods such as ESRGAN from time to time.

Nowadays, AI upscaling became quite popular for upscaling old game textures, so I tried it out on Quake 2 with great results: https://t.co/iPzsRwS9fK

Before/after:

—@HugoLocurcio https://t.co/BbENgF9V4V

May 4, 2021

@HugoLocurcio Thanks for tuning in today! This is the last thread of mine for this week. I hope you enjoyed reading these threads :)

Thanks again to IMakeFOSS for inviting me to curate this account!

—@HugoLocurcio