▶
Friday Facts #230 - Engine modernisation
As you may know, one of the foundational blocks of the Factorio engine is Allegro. In fact, it has been part of the game since the very first commit! It is a library for handling all sorts of platform interaction, like creating windows, sound playback, handling input, and graphics rendering. Over the course of the last 5 years, we have hacked a lot of custom enhancements and optimizations into Allegro. Since it is a library with a long history, Allegro copes with a lot of legacy hardware that we don't really have to worry about, which makes it hard to expand and build upon. We also have to deal with a lot of technical issues and driver problems due to the old graphics API that Allegro uses (DirectX 9 & OpenGL 1.2). This has ultimately become a real issue for us and we decided it was time to part with it. The plan is replace the graphics engine with our own code, and leave window management, event handling, and input, to SDL. We hope that using SDL will result in fewer technical issues, better support for multiple platforms, and greater overall stability. Further down the line we can also explore supporting different input methods, such as gamepads and touch-interfaces.
Allegro has sneaked it's way into a huge portion of our codebase, so for the past few months, I have been removing Allegro from as many places as I could, and I've replaced some of its functionality with our own code. I've managed to reduce the number of places we call into Allegro by roughly 50%, and now has come the time to start working on the graphics engine. So a month ago, HanziQ and I have started on a long and painful journey of replacing the Allegro rendering completely. There is not really a better way to do this than to just rip the band-aid off, so we removed all Allegro rendering and started writing our own from scratch. We are using OpenGL 3.2 for now, but DirectX 11 support is definitely coming before we release it. We are obviously very good at it and encountered no problems whatsoever.
The whole process was smooth sailing from the get-go.
In fact, it was so easy, that we even had time to unwind with some controlled substances.
Right now, we've got the game back to rendering almost everything properly, and within a few weeks it should be just the same as the Allegro rendering. From this we can start building out our own feature set designed around what we need, and do more advanced work. For instance, DirectX 11 allows us to use a new shader model which has a higher instruction count limit, which will let us do more complex and interesting things with shaders. The more modern API's also have much better developer tools for diagnostics and debugging. There are a lot of other possibilities moving forward with our own rendering engine, and it is a good step towards the long term viability of the 'Factorio engine'.
Jitka has arrived back from her vacation this week, so we have now re-opened the t-shirt shop. Orders will be sent out every Wednesday as before. As always, let us know what you think on our forum.
[ 2018-02-16 17:23:35 CET ] [ Original post ]
Hello, on Thursday we received a belated Christmas package from our friends over at Steam:
They definitely won't be lasting long :-).
Getting rid of Allegro
As you may know, one of the foundational blocks of the Factorio engine is Allegro. In fact, it has been part of the game since the very first commit! It is a library for handling all sorts of platform interaction, like creating windows, sound playback, handling input, and graphics rendering. Over the course of the last 5 years, we have hacked a lot of custom enhancements and optimizations into Allegro. Since it is a library with a long history, Allegro copes with a lot of legacy hardware that we don't really have to worry about, which makes it hard to expand and build upon. We also have to deal with a lot of technical issues and driver problems due to the old graphics API that Allegro uses (DirectX 9 & OpenGL 1.2). This has ultimately become a real issue for us and we decided it was time to part with it. The plan is replace the graphics engine with our own code, and leave window management, event handling, and input, to SDL. We hope that using SDL will result in fewer technical issues, better support for multiple platforms, and greater overall stability. Further down the line we can also explore supporting different input methods, such as gamepads and touch-interfaces.
Graphics engine rewrite
Allegro has sneaked it's way into a huge portion of our codebase, so for the past few months, I have been removing Allegro from as many places as I could, and I've replaced some of its functionality with our own code. I've managed to reduce the number of places we call into Allegro by roughly 50%, and now has come the time to start working on the graphics engine. So a month ago, HanziQ and I have started on a long and painful journey of replacing the Allegro rendering completely. There is not really a better way to do this than to just rip the band-aid off, so we removed all Allegro rendering and started writing our own from scratch. We are using OpenGL 3.2 for now, but DirectX 11 support is definitely coming before we release it. We are obviously very good at it and encountered no problems whatsoever.
The whole process was smooth sailing from the get-go.
In fact, it was so easy, that we even had time to unwind with some controlled substances.
Right now, we've got the game back to rendering almost everything properly, and within a few weeks it should be just the same as the Allegro rendering. From this we can start building out our own feature set designed around what we need, and do more advanced work. For instance, DirectX 11 allows us to use a new shader model which has a higher instruction count limit, which will let us do more complex and interesting things with shaders. The more modern API's also have much better developer tools for diagnostics and debugging. There are a lot of other possibilities moving forward with our own rendering engine, and it is a good step towards the long term viability of the 'Factorio engine'.
T-shirt shop re-opens
Jitka has arrived back from her vacation this week, so we have now re-opened the t-shirt shop. Orders will be sent out every Wednesday as before. As always, let us know what you think on our forum.
[ 2018-02-16 17:23:35 CET ] [ Original post ]
Factorio
Wube Software LTD.
Developer
Wube Software LTD.
Publisher
2020-08-14
Release
Game News Posts:
506
🎹🖱️Keyboard + Mouse
Overwhelmingly Positive
(164072 reviews)
The Game includes VR Support
Public Linux Depots:
- Factorio Linux64 [306.86 M]
- Factorio Linux32 [300.1 M]
Available DLCs:
- Factorio: Space Age
Factorio is a game in which you build and maintain factories. You will be mining resources, researching technologies, building infrastructure, automating production and fighting enemies. In the beginning you will find yourself chopping trees, mining ores and crafting mechanical arms and transport belts by hand, but in short time you can become an industrial powerhouse, with huge solar fields, oil refining and cracking, manufacture and deployment of construction and logistic robots, all for your resource needs. However this heavy exploitation of the planet's resources does not sit nicely with the locals, so you will have to be prepared to defend yourself and your machine empire.
Join forces with other players in cooperative Multiplayer, create huge factories, collaborate and delegate tasks between you and your friends. Add mods to increase your enjoyment, from small tweak and helper mods to complete game overhauls, Factorio's ground-up Modding support has allowed content creators from around the world to design interesting and innovative features. While the core gameplay is in the form of the freeplay scenario, there are a range of interesting challenges in the form of the Scenario pack, available as free DLC. If you don't find any maps or scenarios you enjoy, you can create your own with the in-game Map Editor, place down entities, enemies, and terrain in any way you like, and even add your own custom script to make for interesting gameplay.
Discount Disclaimer: We don't have any plans to take part in a sale or to reduce the price for the foreseeable future.
Join forces with other players in cooperative Multiplayer, create huge factories, collaborate and delegate tasks between you and your friends. Add mods to increase your enjoyment, from small tweak and helper mods to complete game overhauls, Factorio's ground-up Modding support has allowed content creators from around the world to design interesting and innovative features. While the core gameplay is in the form of the freeplay scenario, there are a range of interesting challenges in the form of the Scenario pack, available as free DLC. If you don't find any maps or scenarios you enjoy, you can create your own with the in-game Map Editor, place down entities, enemies, and terrain in any way you like, and even add your own custom script to make for interesting gameplay.
Discount Disclaimer: We don't have any plans to take part in a sale or to reduce the price for the foreseeable future.
What people say about Factorio
- No other game in the history of gaming handles the logistics side of management simulator so perfectly. - Reddit
- I see conveyor belts when I close my eyes. I may have been binging Factorio lately. - Notch, Mojang
- Factorio is a super duper awesome game where we use conveyor belts to shoot aliens. - Zisteau, Youtube
MINIMAL SETUP
- OS: Linux (tarball installation)
- Processor: Dual core 3Ghz+Memory: 4 GB RAM
- Memory: 4 GB RAM
- Graphics: OpenGL 3.3 core. DirectX 10.1 capable GPU with 512 MB VRAM - GeForce GTX 260. Radeon HD 4850 or Intel HD Graphics 5500
- Storage: 3 GB available space
- OS: Linux (tarball installation)
- Processor: Quad core 3GHz+Memory: 8 GB RAM
- Memory: 8 GB RAM
- Graphics: OpenGL 4.3 core. DirectX 11 capable GPU with 2 GB VRAM - GeForce GTX 750 Ti. Radeon R7 360
- Storage: 3 GB available space
GAMEBILLET
[ 6102 ]
GAMERSGATE
[ 764 ]
FANATICAL BUNDLES
HUMBLE BUNDLES
by buying games/dlcs from affiliate links you are supporting tuxDB