Friday Facts #230 - Engine modernisation

Regular reports on Factorio development.
Jap2.0
Smart Inserter
Smart Inserter
Posts: 2339
Joined: Tue Jun 20, 2017 12:02 am
Contact:

Re: Friday Facts #230 - Engine modernisation

Post by Jap2.0 »

MeduSalem wrote:
bobingabout wrote:but no DX10 support means no Vista support too..
Microsoft doesn't support Vista anymore anyway for about a year now... and apart from that... good riddance.
Yeah, remember how everyone paniced when XP support ended? When Vista suppoort ended, I heard literally nothing - I only discovered that a few months after the fact when I stumbled across the table of when support would/did end for various Windows versions.
There are 10 types of people: those who get this joke and those who don't.

ske
Filter Inserter
Filter Inserter
Posts: 411
Joined: Sat Oct 17, 2015 8:00 am
Contact:

Re: Friday Facts #230 - Engine modernisation

Post by ske »

Wouldn't it make sense to add features to the new engine one by one? Thereby starting with only a few core features that work really well and define the core game. Then adding some more and some more where it makes sense for the game mechanics. Carefully evaluating the addition of each feature based on prior knowledge in order to not break the game. You see where I'm going with this?

User avatar
Oozenthor
Burner Inserter
Burner Inserter
Posts: 14
Joined: Sun Nov 06, 2016 4:50 am
Contact:

Re: Friday Facts #230 - Engine modernisation

Post by Oozenthor »

I am interested in the technical reasoning behind choosing SDL & OpenGL/DirectX over Vulkan?
Also SDL recently added cross-platform Vulkan graphics support (https://discourse.libsdl.org/t/sdl-2-0-6-released/23109), did that affect your decision?

User avatar
Gergely
Filter Inserter
Filter Inserter
Posts: 595
Joined: Sun Apr 10, 2016 8:31 pm
Contact:

Re: Friday Facts #230 - Engine modernisation

Post by Gergely »

ske wrote:Wouldn't it make sense to add features to the new engine one by one? Thereby starting with only a few core features that work really well and define the core game. Then adding some more and some more where it makes sense for the game mechanics. Carefully evaluating the addition of each feature based on prior knowledge in order to not break the game. You see where I'm going with this?
This is an "organ transplant" of Factorio. You can't do it part-by-part. You have to do it all at once. It's like a long deep dive into water. One must make way more than an average number of changes between tests.

There is a "before" and an "after" state, but there is no "intermediate" state that works.

Think of it as replacing your home computer. There are a lot of wires coming out of it's back, and the same wires must go elsewhere in the new computer.

User avatar
JoneKone
Inserter
Inserter
Posts: 21
Joined: Tue Apr 12, 2016 10:56 pm
Contact:

Re: Friday Facts #230 - Engine modernisation

Post by JoneKone »

A great opportunity to start using Vulcan instead of some legacy software..

I hope you gave plenty of gifts back to Allegro team :)
Last edited by JoneKone on Fri Feb 16, 2018 11:36 pm, edited 1 time in total.
Me be singing all away.

jcranmer
Long Handed Inserter
Long Handed Inserter
Posts: 90
Joined: Wed Jun 29, 2016 9:59 pm
Contact:

Re: Friday Facts #230 - Engine modernisation

Post by jcranmer »

Proxy wrote:I'm wondering why everything was flipped, red and just looked like literal hell.

but i think the answer would be too complex for me.
My experience with graphics programing is epsilon more than 0, but plausible explanations... The flipping sounds like a scanline issue; some formats actually specify pixel lines from bottom to top and someone didn't set a parameter to indicate that mode correctly. The red background is clearly a texture creation issue; creating the texture that represents the map terrain threw an error, so that texture defaulted to a pure red fill. The giant sprite sounds like someone fudged a scale somewhere, perhaps doing scale in different units or doing a multiply instead of a divide.

ske
Filter Inserter
Filter Inserter
Posts: 411
Joined: Sat Oct 17, 2015 8:00 am
Contact:

Re: Friday Facts #230 - Engine modernisation

Post by ske »

Gergely wrote:
ske wrote:...
This is an "organ transplant" of Factorio. You can't do it part-by-part. You have to do it all at once. It's like a long deep dive into water. One must make way more than an average number of changes between tests.

There is a "before" and an "after" state, but there is no "intermediate" state that works.
You have to replace the rendering engine (and much more) all at once. Right. BUT you can always disable features. This won't make it MUCH easier but it will make it a little easier. Maybe some things are hard to get going so it's best to start with a limited feature set. It is a good time to make a cut and rethink some things.

Jap2.0
Smart Inserter
Smart Inserter
Posts: 2339
Joined: Tue Jun 20, 2017 12:02 am
Contact:

Re: Friday Facts #230 - Engine modernisation

Post by Jap2.0 »

Oozenthor wrote:I am interested in the technical reasoning behind choosing SDL & OpenGL/DirectX over Vulkan?
Also SDL recently added cross-platform Vulkan graphics support (https://discourse.libsdl.org/t/sdl-2-0-6-released/23109), did that affect your decision?
JoneKone wrote:A great opportunity to start using Vulcan instead of some legacy software..

I hope you gave plenty of gifts back to Allegro team :)
viewtopic.php?f=38&t=57419&start=80#p340701
There are 10 types of people: those who get this joke and those who don't.

User avatar
Light
Filter Inserter
Filter Inserter
Posts: 678
Joined: Mon Oct 10, 2016 6:19 pm
Contact:

Re: Friday Facts #230 - Engine modernisation

Post by Light »

It's pleasing to see you moving towards the future instead of living in the past.

I'd hate to be that guy, but anyone using systems older than 10 years really need to bite their tongue and accept the fact they're very technically behind and need to upgrade to something modern instead of expecting people to accommodate them. Technology and software become obsolete and are replaced over time for a good reason. While it's hard to keep up with, you have to at least catch up to some extent. Not saying you have to have the latest and greatest tech at all times, just replace the obsolete parts every few years and you'll be golden for whatever comes your way.

Here's hoping that these engine improvements will vastly improve the performance from here on out.

User avatar
Drury
Filter Inserter
Filter Inserter
Posts: 782
Joined: Tue Mar 25, 2014 8:01 pm
Contact:

Re: Friday Facts #230 - Engine modernisation

Post by Drury »

Ah yes Tyctolio, the famous game about dismantling factories and returning to our primal roots.

Adeon Hawkwood
Inserter
Inserter
Posts: 31
Joined: Wed May 10, 2017 11:23 pm
Contact:

Re: Friday Facts #230 - Engine modernisation

Post by Adeon Hawkwood »

I was confused at first. Allegro is also a PCB design tool so I was trying to figure out why it was being used in a video game. I mean Factorio factories do look a bit like PCBs when you zoom out but still.

User avatar
BluePsyduck
Burner Inserter
Burner Inserter
Posts: 13
Joined: Thu Jun 08, 2017 4:52 pm
Contact:

Re: Friday Facts #230 - Engine modernisation

Post by BluePsyduck »

Drury wrote:Ah yes Tyctolio, the famous game about dismantling factories and returning to our primal roots.
You are the biters now. You see an abandoned factory and have to dismantle it step by step to get the raw iron and copper ore, with which you form nice ore patches. You have to constantly fight of the humans who want to mine these ore patches.
Image

xng
Fast Inserter
Fast Inserter
Posts: 164
Joined: Fri Feb 14, 2014 1:04 pm
Contact:

Re: Friday Facts #230 - Engine modernisation

Post by xng »

I know I shouldn't feel this way about an awesome game, but how can it be more important to change rendering engine when it works almost flawlessly than to fix the games belt problems? We've been waiting since mid december last year now for some kind of quick fix.

ske
Filter Inserter
Filter Inserter
Posts: 411
Joined: Sat Oct 17, 2015 8:00 am
Contact:

Re: Friday Facts #230 - Engine modernisation

Post by ske »

xng wrote:I know I shouldn't feel this way about an awesome game, but how can it be more important to change rendering engine when it works almost flawlessly than to fix the games belt problems? We've been waiting since mid december last year now for some kind of quick fix.
The saying is "don't get high on your own supply" but they were addicted to optimization before they even started.

There is no belt problem. What belt problem? Are you talking about compression? That problem was fixed again. Belts now work the way they were supposed to.

Due to lack of foresight, premature releases and an urge to please the playerbase they evolved the game into a cul de sac where there's no easy way out. Making a game is not so much about what it can do but carefully selecting what it can't do. This now needs superhuman intuition to resolve or a rusty knife. Either way there will be some bad blood from self-entitled players who know exactly how the world works.

wvlad
Fast Inserter
Fast Inserter
Posts: 215
Joined: Thu Jul 13, 2017 9:55 pm
Contact:

Re: Friday Facts #230 - Engine modernisation

Post by wvlad »

xng wrote:I know I shouldn't feel this way about an awesome game, but how can it be more important to change rendering engine when it works almost flawlessly than to fix the games belt problems? We've been waiting since mid december last year now for some kind of quick fix.
Same thought each Friday.

User avatar
Klonan
Factorio Staff
Factorio Staff
Posts: 5148
Joined: Sun Jan 11, 2015 2:09 pm
Contact:

Re: Friday Facts #230 - Engine modernisation

Post by Klonan »

xng wrote:I know I shouldn't feel this way about an awesome game, but how can it be more important to change rendering engine when it works almost flawlessly than to fix the games belt problems? We've been waiting since mid december last year now for some kind of quick fix.
We didn't say it is more important, but we are a team of many different people. We have had some developers working on these engine changes for several months now, whereas the compression problem only appeared after 0.16 release.

We have someone assigned to work on the belt compression problem, he is getting to it, but in the meantime other work is still ongoing.
We aren't looking to do a quick dirty fix to belt compression, that sounds like a terrible idea, we are taking our time to do it properly, and make it work well with the new optimizations.

I would suggest if you are not happy with the current state of the belts, to play the last stable release, and wait until 0.16 is declared stable, where the belts will be fixed.

tazdu29
Inserter
Inserter
Posts: 24
Joined: Sat Sep 30, 2017 3:19 pm
Contact:

Re: Friday Facts #230 - Engine modernisation

Post by tazdu29 »

Light wrote:It's pleasing to see you moving towards the future instead of living in the past.

I'd hate to be that guy, but anyone using systems older than 10 years really need to bite their tongue and accept the fact they're very technically behind and need to upgrade to something modern instead of expecting people to accommodate them. Technology and software become obsolete and are replaced over time for a good reason. While it's hard to keep up with, you have to at least catch up to some extent. Not saying you have to have the latest and greatest tech at all times, just replace the obsolete parts every few years and you'll be golden for whatever comes your way.

Here's hoping that these engine improvements will vastly improve the performance from here on out.
You know, GNU/Linux is 26 yo...
And concerning windows, I won't update to 8 nor 10. It's full-filled with crap. I'll use windows in VM under linux-based OS, as long as games doesn't support linux-based OSes.

Urth
Burner Inserter
Burner Inserter
Posts: 6
Joined: Sat Feb 27, 2016 11:56 pm
Contact:

Re: Friday Facts #230 - Engine modernisation

Post by Urth »

Ryan Gordon is making progress on the SDL switch port.
Ah the possibilities :lol:

User avatar
MeduSalem
Smart Inserter
Smart Inserter
Posts: 1475
Joined: Sun Jun 08, 2014 8:13 pm
Contact:

Re: Friday Facts #230 - Engine modernisation

Post by MeduSalem »

tazdu29 wrote:You know, GNU/Linux is 26 yo...
Yeah, because the code base of the Linux Kernel and its many distributions is still the same as 26 years ago...

Even they move on... and with some things even more radical than Windows which is the main reason why there are like 5 new forks whenever something comes along that the developers/community can't agree on, which is also the very same reason why Linux never established itself as a mainstream desktop OS because of how it always backfires and dampens all efforts if they end up in 2 years of debate about which direction to proceed in just for in the end to row back to where they already have been.

posila
Factorio Staff
Factorio Staff
Posts: 5201
Joined: Thu Jun 11, 2015 1:35 pm
Contact:

Re: Friday Facts #230 - Engine modernisation

Post by posila »

admo wrote:Not going to advocate DX12/Vulkan here but I do wonder how much of the game's CPU budget is eaten up in rendering code? From the start developers told us they wanted DX12 because the driver is too expensive (CPU-wise) because we do too much state tracking. Factorio is uniquely one of those games that can easily get CPU-bound so I'm hoping developers could weigh in on their experiences here.
Currently, we are not concerned about driver CPU overhead beyond trying to keep low draw call count. We batch most of the rendering, so we just need to be careful not to do someting that would break batching too much. So far we trusted that driver can do stuff better than we do :)
Rendering iteself runs in parallel with simulation update, but colleting data to render is sequential to both rendering and update so we try to keep that step as fast as possible, but that is not related to graphics API.
bobingabout wrote:Point of interest. no DX9 means no Windows XP support.... no big deal there really, since there's already no 32bit support.

but no DX10 support means no Vista support too.
XP support went together with 32bit support. As far as I know DX11 is available also for Vista. But I wouldn't mind dropping Vista altogether :)
burisk wrote:What about OSX and Linux support for the future? And.. will be there higher requirements for HW after this engine change? Because, my MBP 15" 2015 on Full HD without smokes, and without maximum zoom-out works awesome without audible cooling (fans). So, I wonder what this do with this type of hardware. :)
It will raise requirements in a sense that your HW has to support OpenGL 3.2 or DirectX 10 [sic], so it has something that was manufactured in the past decade. But the goal is optimize GPU utilization, so the performance should be better for everyone who can still run the game. Plus it will open door for us to do some things in a better way than just stacking animated sprites on top of each other.

Post Reply

Return to “News”