Friday Facts #163 - New rails & New problems

Regular reports on Factorio development.
super_aardvark
Inserter
Inserter
Posts: 28
Joined: Thu Sep 15, 2016 6:27 am
Contact:

Re: Friday Facts #163 - New rails & New problems

Post by super_aardvark » Fri Nov 04, 2016 7:54 pm

Jonathan88 wrote: it would be nice to have some guard and wing rails like this:
Image
It would also be nice if the ties didn't overlap the way they do. The above is a good example of how it works in the real world... here's another:
large image
But it's probably not worth the effort required. The new rails look great!

User avatar
Andrzejef
Fast Inserter
Fast Inserter
Posts: 103
Joined: Sat Aug 27, 2016 1:16 pm
Contact:

Re: Friday Facts #163 - New rails & New problems

Post by Andrzejef » Fri Nov 04, 2016 7:56 pm

Still would be nice - if possible and not much effort draining. Factorio Christmass present, perhaps? :P
Image

AsherMaximum
Burner Inserter
Burner Inserter
Posts: 17
Joined: Tue Mar 08, 2016 12:44 am
Contact:

Re: Friday Facts #163 - New rails & New problems

Post by AsherMaximum » Fri Nov 04, 2016 7:56 pm

I like the look of the new tracks.
One suggestion though. The overlapping of the wood ties looks odd.
I think you should stagger the layers such that the gravel in the center of the tracks covers the wood of one of the tracks.

aklesey1
Smart Inserter
Smart Inserter
Posts: 1711
Joined: Sun May 18, 2014 3:45 pm
Contact:

Re: Friday Facts #163 - New rails & New problems

Post by aklesey1 » Fri Nov 04, 2016 8:06 pm

0.14 is stable, my congratulations 8-) :D
So when we can await 0.15 version?
Nickname on ModPortal - Naron79

Talguy
Fast Inserter
Fast Inserter
Posts: 104
Joined: Tue Apr 29, 2014 8:54 pm
Contact:

Re: Friday Facts #163 - New rails & New problems

Post by Talguy » Fri Nov 04, 2016 8:22 pm

First blog post by V!!! :D He deserves a proper introduction imho.

When he plays openttd, he mods trains and builds awesome stuff like RAWR, YETI, NUTS.

https://wiki.openttdcoop.org/User:V453000
First issue appeared fast - the vertical sides of rails would overlap the top side in junctions. I have been battling this exact problem in OpenTTD with no success for a long time, so I immediately knew that the solution is to split them into 2 layers, something I couldn't do back then, but we can in factorio.
YES YES YES :D And that sexy smexy drop shadow making it look 3D even more.
So, for the first time I attempted to write a python script to do these things for me, and it’s magic! Automation is magic?
Lol, awesome.

The wooden ties look a bit weird when they are overlapping tho, it looks like they are clipping somehow. In an utopia, one would have the railroad ties like this: http://www.123rf.com/photo_17984739_rai ... small.html

[edit]: Yeah, I guess I'm not the first person to have that suggestion ;)

[offtopic]
Have you messed about with the combinators yet V? It's totally your thing I'm guessing. Because we also want SRNW in factorio :mrgreen: (just gonna leave this here: https://www.youtube.com/watch?v=BwXu_suPgR0)

Furan
Burner Inserter
Burner Inserter
Posts: 15
Joined: Sun Jul 05, 2015 2:54 pm
Contact:

Re: Friday Facts #163 - New rails & New problems

Post by Furan » Fri Nov 04, 2016 8:40 pm

The basic pattern of the terrain should also follow the 45 degree perspective.
Image
Look at the frequency of bumps in vertical and horizontal direction. I think this is the reason why the rails look weird.

User avatar
DDDGamer
Inserter
Inserter
Posts: 30
Joined: Mon Oct 17, 2016 2:16 pm
Contact:

Re: Friday Facts #163 - New rails & New problems

Post by DDDGamer » Fri Nov 04, 2016 9:28 pm

Stable 0.14 and new rails...Great news!

My thoughts....

* I think the new rails are looking nice, however they seem to float above the terrain the "integration" part need some tweaking IMO something with Ambient Occlusion perhaps?
* The stones on the rails look a bit too round, i think sharpening them up/adding more edges/randomness to shapes or something like that would make them look a bit better.
* Perhaps change the wooden plank color?
* I think the rail recipe need to include wooden planks (there is heaps always heaps of extraneous wood anyways)
* Also could have rails MK2 (High Speed Rails) which are made from concrete instead of wood (+Rail HP, +Max Train Speed) (Perhaps electric trains?)
* I really hope the weird "Circle" shapes turn into actual proper rails circle roundabouts.
* Can we have bridges please!!!
* As someone else mentioned for junctions it would be cool to have realistic spaces on the rails, but seems like would need a lot more sprites, so probably would be "expensive" to develop, both in terms of time/efforts and extra compute power)

Video:
https://www.youtube.com/watch?v=wF3kluB40Uc
Image
Last edited by DDDGamer on Sat Nov 05, 2016 12:26 am, edited 2 times in total.

JC1223
Burner Inserter
Burner Inserter
Posts: 6
Joined: Thu Dec 03, 2015 10:14 pm
Contact:

Re: Friday Facts #163 - New rails & New problems

Post by JC1223 » Fri Nov 04, 2016 9:31 pm

You guys are great! Almost never fail to disappoint me, even with the long times between releases. Now the only thing the game REALLY needs is cross-version compatibility forwards, so worlds can be used in versions after where they were created with the new content, or at least a way to convert the world forwards, even if it changes some things, because I always reach a point where i get bored of waiting for stuff to happen with research, go play another game, and don't really get super interested until the next update when i really want to try to new stuff, but can't without a new world and all the waiting (or using LUA to speed up research or give myself research, but i don't like to just give it so i still get held back by how the assembler's can't have crafting speed multiplied by LUA commands) so please add forwards compatibility for worlds, a LUA command to speed up assembler crafting speeds, or a creative mode like minecraft or starmade and other similar games where you have inventories with all the items/blocks in the game with a search or different category tabs so it's easier to test new stuff or use new stuff and we can have worlds we keep adding to as new stuff is released.

Note: if you don't want/need/have time to read the next paragraph (although i think it explains my reasoning fairly well) there is a short summary after it, although maybe not as detailed/good

PLEASE! It shouldn't be all too difficult i think to add forward-moving save compatibility but then again the games i make are all simple 1-person team games that rarely get to a release-ready state and never are and rarely if ever get fundamental changes so maybe it's much harder than i think but i believe it would be worth it, in addition to adding the ability to let people add new mods to a world mid-game i think if you can't already (I forgot if you can) plus would make testing easier for people on betas, not needing new worlds every update (i assume they would since the stable branch has no compatibility forwards even for updates fixing small bugs or bigger bugs in major updates, but i haven't used them so again I defer that fact as subject to uncertainty) and also would make playing a full play-through more feasible for people with shorter attention spans who take a while or a reminder to come back. Probably would require saving world content data as global data (computer-global like how global variables work, not IRL-global) but preventing major bugs in one place affecting other worlds could probably be fixed with local backups of world data (again, in terms of variable sharing like global variables vs. local variables) or even get possible performance hits or storage-hogging problems off your shoulders by making the world content/version data backups manual or the period set by the user. You could even let them disable them or forward direction version compatibility itself be optional, to be defined per-world or per-computer with settings, so if people don't want the extra storage usage or maybe resource-usage possibilities, or even just the possibility to bring new stuff into old worlds or an unmodded-state or missing-mod state game into a modded save and breaking it, they don't have to worry about something they don't want or see a need to enable. but i think the forward direction version compatibility would be a great help, especially for referencing old factory designs and experimenting with improvements with new items/functions without needing to get blueprints or construction drones and all the things needed to experiment on a design into their current world and use up extra space they might not have or mess up organization or resources they don't want to use and not need if they are short resources. Also could probably allow replays of old worlds.


Summary (condensed repetition of previous paragraph for those who didn't want to read it and the reasoning/technical-ish stuff in it)
Basically forward direction version compatibility will make testing of all types easier and making doing a full play-through more feasible for people who play a while, get tired of waiting on resources or labs, go to another game, see a new factorio update a few weeks or months later, get excited about the content, and come back and remember how good the game is but reach the waiting point again while trying to get the new content and go away for a while again or want to replay old worlds.

exi2163
Inserter
Inserter
Posts: 33
Joined: Wed Mar 09, 2016 6:50 am
Contact:

Re: Friday Facts #163 - New rails & New problems

Post by exi2163 » Fri Nov 04, 2016 9:42 pm

It amazes me every time a FFF gets posted on how much work can get into something so "simple" as drawing rails!
The new rails look great but something disturbed me on those preview pictures. I finally got it: the old rails barely had any gravel under it... because of the added 3rd dimension it now looks way better on ground with the exception of on concrete.
There is no gravel used in railroad construction if the bottom material is concrete. It now looks kinda wrong to me as you would put the rail right into the concrete. Have you tested how it would look without the gravel on concrete?

Zeblote
Filter Inserter
Filter Inserter
Posts: 972
Joined: Fri Oct 31, 2014 11:55 am
Contact:

Re: Friday Facts #163 - New rails & New problems

Post by Zeblote » Fri Nov 04, 2016 9:43 pm

JC1223 wrote:You guys are great! Almost never fail to disappoint me, even with the long times between releases. Now the only thing the game REALLY needs is cross-version compatibility forwards, so worlds can be used in versions after where they were created with the new content, or at least a way to convert the world forwards, even if it changes some things, because I always reach a point where i get bored of waiting for stuff to happen with research, go play another game, and don't really get super interested until the next update when i really want to try to new stuff, but can't without a new world and all the waiting (or using LUA to speed up research or give myself research, but i don't like to just give it so i still get held back by how the assembler's can't have crafting speed multiplied by LUA commands) so please add forwards compatibility for worlds, a LUA command to speed up assembler crafting speeds, or a creative mode like minecraft or starmade and other similar games where you have inventories with all the items/blocks in the game with a search or different category tabs so it's easier to test new stuff or use new stuff and we can have worlds we keep adding to as new stuff is released.

Note: if you don't want/need/have time to read the next paragraph (although i think it explains my reasoning fairly well) there is a short summary after it, although maybe not as detailed/good

PLEASE! It shouldn't be all too difficult i think to add forward-moving save compatibility but then again the games i make are all simple 1-person team games that rarely get to a release-ready state and never are and rarely if ever get fundamental changes so maybe it's much harder than i think but i believe it would be worth it, in addition to adding the ability to let people add new mods to a world mid-game i think if you can't already (I forgot if you can) plus would make testing easier for people on betas, not needing new worlds every update (i assume they would since the stable branch has no compatibility forwards even for updates fixing small bugs or bigger bugs in major updates, but i haven't used them so again I defer that fact as subject to uncertainty) and also would make playing a full play-through more feasible for people with shorter attention spans who take a while or a reminder to come back. Probably would require saving world content data as global data (computer-global like how global variables work, not IRL-global) but preventing major bugs in one place affecting other worlds could probably be fixed with local backups of world data (again, in terms of variable sharing like global variables vs. local variables) or even get possible performance hits or storage-hogging problems off your shoulders by making the world content/version data backups manual or the period set by the user. You could even let them disable them or forward direction version compatibility itself be optional, to be defined per-world or per-computer with settings, so if people don't want the extra storage usage or maybe resource-usage possibilities, or even just the possibility to bring new stuff into old worlds or an unmodded-state or missing-mod state game into a modded save and breaking it, they don't have to worry about something they don't want or see a need to enable. but i think the forward direction version compatibility would be a great help, especially for referencing old factory designs and experimenting with improvements with new items/functions without needing to get blueprints or construction drones and all the things needed to experiment on a design into their current world and use up extra space they might not have or mess up organization or resources they don't want to use and not need if they are short resources. Also could probably allow replays of old worlds.


Summary (condensed repetition of previous paragraph for those who didn't want to read it and the reasoning/technical-ish stuff in it)
Basically forward direction version compatibility will make testing of all types easier and making doing a full play-through more feasible for people who play a while, get tired of waiting on resources or labs, go to another game, see a new factorio update a few weeks or months later, get excited about the content, and come back and remember how good the game is but reach the waiting point again while trying to get the new content and go away for a while again or want to replay old worlds.
What are you talking about? You can open saves in newer versions just fine. It'll even convert specific entities if they've been changed/replaced.

Talguy
Fast Inserter
Fast Inserter
Posts: 104
Joined: Tue Apr 29, 2014 8:54 pm
Contact:

Re: Friday Facts #163 - New rails & New problems

Post by Talguy » Fri Nov 04, 2016 10:47 pm

DDDGamer wrote:I really hope the weird "Circle" shapes turn into actual proper rails circle roundabouts.
I agree :)

V453000
Factorio Staff
Factorio Staff
Posts: 209
Joined: Fri Sep 04, 2015 5:51 pm
Contact:

Re: Friday Facts #163 - New rails & New problems

Post by V453000 » Fri Nov 04, 2016 11:34 pm

About the rails, frogs, junctions:

Since we were redesigning the rails completely, we have been discussing what do we include or not. We basically "just" added drawing of unique sprites for each direction, but we didn't add any extra logic which would check for collisions, or for junctions even.
What this means is that the rails have no idea if there is another track being drawn on top of it - and to achieve it, it would cost some performance. Apart from that, implementing it would probably be quite a pain. We would need something like this in order to achieve any sort of junction-aware behavior, like frogs/protected crossings/ties(sleepers/wooden planks) behaving better).
So all of the issues can only be solved in the sprites. And since all of the sprites need to tile together (all same-direction ends need to connect properly, and curves need to overlay straight tracks in a reasonable way), this result you can see here is already after a lot of time spent to make it tile nicely. I can't really see it working much nicer systematically.

We basically agree with your observations, we have observed the same, it's just that solving this kind of issues would require something that's probably totally out of scope mainly performance-wise.

Thank you all for your input, it's very helpful to read constructive feedback, it really makes us think about the problems even further than we do already.

Talguy wrote:First blog post by V!!! :D
[offtopic]
Have you messed about with the combinators yet V? It's totally your thing I'm guessing. Because we also want SRNW in factorio :mrgreen: (just gonna leave this here: https://www.youtube.com/watch?v=BwXu_suPgR0)
Hi :) I do try to make the best use of combinators there is, but generally I feel like most things can be achieved without them, and just make more stuff. In OpenTTD the logic and WTF stuff always has a clear purpose/use, but in Factorio it is rarely the case, or I have to yet figure those things out. My point is, building a Self Regulating NetWork in OpenTTD is amazeballs because it solves some issue for you - managing a cluster of industries automatically. In factorio you can usually manage/automate many things "just" by the basic tools without the circuit network.

In particular the Smart Trains stuff gives me goosebumps just thinking about the possibilities, but at the same time I still miss some things, like a synonym to Conditional orders from OpenTTD, just in general a more "unspecific" train orders like "load in any station along the way". But even though I have always loved to play with these things in OpenTTD, and even nowadays from time to time it is awesome to return to openttdcoop and create some new ultra weird mechanism nobody has ever seen before, I don't believe such train things are essential for Factorio, and I don't even feel like I want to replicate OpenTTD experience in it. It's just different and great, each in their own way.

V453000
Factorio Staff
Factorio Staff
Posts: 209
Joined: Fri Sep 04, 2015 5:51 pm
Contact:

Re: Friday Facts #163 - New rails & New problems

Post by V453000 » Fri Nov 04, 2016 11:38 pm

exi2163 wrote:It amazes me every time a FFF gets posted on how much work can get into something so "simple" as drawing rails!
The new rails look great but something disturbed me on those preview pictures. I finally got it: the old rails barely had any gravel under it... because of the added 3rd dimension it now looks way better on ground with the exception of on concrete.
There is no gravel used in railroad construction if the bottom material is concrete. It now looks kinda wrong to me as you would put the rail right into the concrete. Have you tested how it would look without the gravel on concrete?
This is a topic we discussed and thought about quite a bit. The problem is, how do you decide where the concrete is drawn, and where it isn't. If it just immediately fades away from tile to tile, it would most likely look even more weird than it does at the moment.
If you would have some concrete-specific patch, then you would need to somehow cut it into little pieces, and define each of these pieces under the rail, but then the game needs to actually check if the rail and the concrete are built on the same tile, which would take some performance.
Making it even worse, concrete is on the ground tile level, which means that nothing can be drawn under it. This might change in the future, but it is still a big problem. We are aware of it, the concrete itself might get some big update or even rework, but let's see what time brings.

Jürgen Erhard
Filter Inserter
Filter Inserter
Posts: 273
Joined: Sun Jun 12, 2016 11:29 pm
Contact:

Re: Friday Facts #163 - New rails & New problems

Post by Jürgen Erhard » Sat Nov 05, 2016 5:59 am

Python? Magic? "import antigravity"

Do it.

:D

User avatar
hitzu
Filter Inserter
Filter Inserter
Posts: 528
Joined: Tue Sep 09, 2014 5:55 pm
Contact:

Re: Friday Facts #163 - New rails & New problems

Post by hitzu » Sat Nov 05, 2016 7:21 am

V453000 wrote: This is a topic we discussed and thought about quite a bit. The problem is, how do you decide where the concrete is drawn, and where it isn't. If it just immediately fades away from tile to tile, it would most likely look even more weird than it does at the moment.
If you would have some concrete-specific patch, then you would need to somehow cut it into little pieces, and define each of these pieces under the rail, but then the game needs to actually check if the rail and the concrete are built on the same tile, which would take some performance.
Making it even worse, concrete is on the ground tile level, which means that nothing can be drawn under it. This might change in the future, but it is still a big problem. We are aware of it, the concrete itself might get some big update or even rework, but let's see what time brings.
Use the same rail sprites.
Remove ballast sprites.
Replace ties sprites with slabs sprites (optionally with hazard markings).
Add slab endidng sprites for smooth transition between the slabs and the ties, make the priority in a such way that they are rendered above the ties.
...
PROFIT!

Hannu
Filter Inserter
Filter Inserter
Posts: 685
Joined: Thu Apr 28, 2016 6:27 am
Contact:

Re: Friday Facts #163 - New rails & New problems

Post by Hannu » Sat Nov 05, 2016 7:40 am

In my opinion these hours would have given more aesthetic pleasure if they have given to make large radius curves and more angle options than parallel to axes or 45 degrees. Even 1:2 (26.6 degrees) would give more options. A railroad curve with a radius of 10 m looks ridiculous in spite of high graphical quality. Does the rails need to be tied to the grid at all, except at stations? Then we could have arbitrary directions and radii, clothoids between different curvature sections, long high speed switches of lines etc.

But I have to say that you make beautiful work. New tracks looks very good.

Daid
Fast Inserter
Fast Inserter
Posts: 162
Joined: Sun Jul 03, 2016 7:42 am
Contact:

Re: Friday Facts #163 - New rails & New problems

Post by Daid » Sat Nov 05, 2016 7:50 am

hitzu wrote: Use the same rail sprites.
Remove ballast sprites.
Replace ties sprites with slabs sprites (optionally with hazard markings).
Add slab endidng sprites for smooth transition between the slabs and the ties, make the priority in a such way that they are rendered above the ties.
...
PROFIT!
While easy for the "common" case, where the train track is just split into concrete and non-concrete sections. You have a lot of edge cases, the left side could be on concrete while the right side is not. There could be 1 piece of concrete underneath a whole section of track. There are many ways the curved sections could be touching concrete. This isn't as simple as you would hope.

User avatar
hitzu
Filter Inserter
Filter Inserter
Posts: 528
Joined: Tue Sep 09, 2014 5:55 pm
Contact:

Re: Friday Facts #163 - New rails & New problems

Post by hitzu » Sat Nov 05, 2016 8:31 am

Daid wrote:
hitzu wrote: Use the same rail sprites.
Remove ballast sprites.
Replace ties sprites with slabs sprites (optionally with hazard markings).
Add slab endidng sprites for smooth transition between the slabs and the ties, make the priority in a such way that they are rendered above the ties.
...
PROFIT!
While easy for the "common" case, where the train track is just split into concrete and non-concrete sections. You have a lot of edge cases, the left side could be on concrete while the right side is not. There could be 1 piece of concrete underneath a whole section of track. There are many ways the curved sections could be touching concrete. This isn't as simple as you would hope.
If there is at least 1 concrete tile underneath then go for concrete slabs for the piece. They may protrude outwards of concrete tiles, there is nothing wrong with this. They shouldn't be perfectly aligned.
examples

zp_wingman
Burner Inserter
Burner Inserter
Posts: 5
Joined: Fri Jan 08, 2016 7:38 pm
Contact:

Re: Friday Facts #163 - New rails & New problems

Post by zp_wingman » Sat Nov 05, 2016 8:49 am

While you've said you only wanted to touch the Graphics, S-Curves pretty please? I get the Rail-Grid conformance forces your hand on many decisions regarding rails, but fixed 'go one cell to the left' sprites don't leave you hanging between grid cells and would be really nice - especially for people playing with someone who just builds gigantic rails by eye, of course missing existing track by one requiring an ugly (and space intensive) fix by going to 45 degrees (looking at you, Stefan ;) )

V453000
Factorio Staff
Factorio Staff
Posts: 209
Joined: Fri Sep 04, 2015 5:51 pm
Contact:

Re: Friday Facts #163 - New rails & New problems

Post by V453000 » Sat Nov 05, 2016 10:40 am

zp_wingman wrote:While you've said you only wanted to touch the Graphics, S-Curves pretty please? I get the Rail-Grid conformance forces your hand on many decisions regarding rails, but fixed 'go one cell to the left' sprites don't leave you hanging between grid cells and would be really nice - especially for people playing with someone who just builds gigantic rails by eye, of course missing existing track by one requiring an ugly (and space intensive) fix by going to 45 degrees (looking at you, Stefan ;) )
S-bends might actually happen at some point, no promises though!

Post Reply

Return to “News”

Who is online

Users browsing this forum: Eleenrood, EoRaptor, Klonan, ratchetfreak