Page 3 of 9

Re: American Bridge Replacement Set [WIP]

Posted: 01 Oct 2016 23:47
by Supercheese
oftcrash wrote:I like the dark. It helps separate it from the dirt road.
As do I.

Re: American Bridge Replacement Set [WIP]

Posted: 01 Oct 2016 23:49
by luxtram
oftcrash wrote:I like the dark. It helps separate it from the dirt road.
I like the light, as it does not separate too much from the dirt road... Well, I know an easy way out. Make it configurable.

Re: American Bridge Replacement Set [WIP]

Posted: 02 Oct 2016 02:07
by NekoMaster
Depend on what we want here, do we want a newer looking wooden bridge? Or a older dirty one? (The dark wood)

Too bad you couldn't have it so that the wood bridge turns dark over time like how American and TTRS roads change over time (after reloading a save or reloading your GRF in game)

Re: American Bridge Replacement Set [WIP]

Posted: 02 Oct 2016 08:53
by Andrew350
NekoMaster wrote:Too bad you couldn't have it so that the wood bridge turns dark over time like how American and TTRS roads change over time (after reloading a save or reloading your GRF in game)
That's easy to do actually. Whether it's worth it is another thing though. Its unlikely anyone would even notice such a change after playing for a long time, and it would mean all bridges would make the change even if they had just been built, somewhat defeating the premise of 'aging'.

In any case, ARRS depicts 'well-used' roads, so in the sake of consistency I suppose an 'older' looking bridge is more appropriate anyway. Thank you for your opinions. :) I think I'll go with the darker one for now, it can always be changed later if needed.

Re: American Bridge Replacement Set [WIP]

Posted: 03 Oct 2016 06:32
by Andrew350
One bridge type complete :)
woodencomplete.png
woodencomplete.png (53.83 KiB) Viewed 18842 times
A few graphical adjustments and a few more bridge heads and I suppose I can release a preview version for everyone to play with :)

Re: American Bridge Replacement Set [WIP]

Posted: 03 Oct 2016 14:45
by Nikari
The style of the roads can vary. I'd suggest going with the colors that make the bridge look it's best.

Sent from my SM-T350 using Tapatalk

Re: American Bridge Replacement Set [WIP]

Posted: 04 Oct 2016 04:45
by Opan
Looks beautiful Andrew, cant wait to play around with them! :)

Re: American Bridge Replacement Set [WIP]

Posted: 04 Oct 2016 07:36
by NekoMaster
I can't wait to use those concrete and plate girder bridges :) I rarely if ever touch wood unless I'm broke in game.

Re: American Bridge Replacement Set [WIP]

Posted: 04 Oct 2016 09:31
by ISA
Andrew350 wrote:Only thing I can't decide on is whether to use the light shading or the dark. I like both, the lighter one seems more 'cheerful', but the darker one stands out more against the road, so I'm leaning towards the dark. What do you think?
I like the light one. As for all gravely road and bridges, some dirt will pass onto the bridge over time and paint the blanks the same color.

Re: American Bridge Replacement Set [WIP]

Posted: 09 Oct 2016 07:51
by Andrew350
Rainy day today, decided to draw a stone arch rail bridge. :)
Minfingburg Transport, Sep 17th, 2079.png
Minfingburg Transport, Sep 17th, 2079.png (141.13 KiB) Viewed 18683 times
Needs some work, but stone bridge is basically done, moving on to steel girder bridge. :)

Re: American Bridge Replacement Set [WIP]

Posted: 09 Oct 2016 09:23
by NekoMaster
Andrew350 wrote:Rainy day today, decided to draw a stone arch rail bridge. :)

Minfingburg Transport, Sep 17th, 2079.png

Needs some work, but stone bridge is basically done, moving on to steel girder bridge. :)
looking good

Re: American Bridge Replacement Set [WIP]

Posted: 11 Dec 2016 21:48
by SimYouLater
No progress since October? Is this set abandoned or is it just IRL issues?

Re: American Bridge Replacement Set [WIP]

Posted: 12 Dec 2016 04:57
by Andrew350
Definitely not abandoned, just real life getting in the way. Once I'm not working 60+ hours a week and the holidays are over I should have time to get back to this :)

Re: American Bridge Replacement Set [WIP]

Posted: 19 Apr 2018 10:30
by CMircea
Any updates on your bridge set Andrew? It'd be a shame to lose the graphics to the depths of time, they are beautiful :)

Re: American Bridge Replacement Set [WIP]

Posted: 23 Apr 2018 05:03
by Andrew350
Unfortunately no updates at the moment :(

I did finally recently come into some more free time however, and have been poking through some of my NewGRF stuff late at night.... :wink:

(Disclaimer: I have no idea how long it's going to last, so don't get too excited!)

Re: American Bridge Replacement Set [WIP]

Posted: 30 Apr 2018 09:14
by Andrew350
Hello everyone :)

After a lot of delay, I finally have a 'taster' version of the American Bridge Replacement Set ready for release! The set currently includes the bridges seen in the preview pics posted earlier, with the exception of the concrete bridge; that one is coming later. A few things of note:

- The four bridges included so far are Wooden, Stone, Covered, and Steel Truss, all shown before.

- Only road and rail are supported so far; monorail and maglev are left stock. The covered bridge is road-only for now, but a rail version is in the works.

- It is not perfect. I've done a lot of QA but some imperfections remain, such as mismatched bridge heads when building a bridge of length 0. These problems are minor though and will be addressed later.

- All bridges are unrestricted in length, with the exception of the steel truss bridge which requires a length of 2 or greater.

It has been a long time coming, I'm sorry for the wait after saying it was close to a release over a year ago, but life :twisted: As usual, the set is released under the GPL v2, and don't expect forward compatibility with future releases.

Enjoy :)

Re: American Bridge Replacement Set [0.1.0 Released 4-30-18]

Posted: 30 Apr 2018 09:41
by michael blunck
Andrew350 wrote: "Let's see if I can figure out NFO..."
nfo bridge code is just cruel. Did you see this one?
viewtopic.php?p=1203281#p1203281

As a proof of concept, I had recoded almost all of thgergo´s bridges from his set.

regards
Michael

Re: American Bridge Replacement Set [WIP]

Posted: 30 Apr 2018 11:43
by wallyweb
Nice, :D
Andrew350 wrote: - It is not perfect. I've done a lot of QA but some imperfections remain, such as mismatched bridge heads when building a bridge of length 0. These problems are minor though and will be addressed later.
My tile grid tool might be able to help with that. Just place the grids in a square around the abutments, then zoom in and adjust to taste. You'll quickly see if its an alignment or a sprite issue. :mrgreen:

Re: American Bridge Replacement Set [0.1.0 Released 4-30-18]

Posted: 06 May 2018 19:27
by Andrew350
wallyweb wrote:My tile grid tool might be able to help with that. Just place the grids in a square around the abutments, then zoom in and adjust to taste. You'll quickly see if its an alignment or a sprite issue. :mrgreen:
Definitely a sprite issue in this case, bridge heads were a little offset from each other when drawn. That could be a nifty tool though, I'll check it out :)
michael blunck wrote:
Andrew350 wrote: "Let's see if I can figure out NFO..."
nfo bridge code is just cruel. Did you see this one?
viewtopic.php?p=1203281#p1203281

As a proof of concept, I had recoded almost all of thgergo´s bridges from his set.

regards
Michael
I didn't see that, no, but I did have a good look through m4nfo when scouring the deep corners of the internet trying to figure out how to code bridges originally. To be honest, I didn't think m4nfo looked any easier :P I eventually decided it would be best to try learning plain NFO before trying to dive into anything else, at least that way I have a basic understanding of what I'm doing first (sort of).

Re: American Bridge Replacement Set [0.1.0 Released 4-30-18]

Posted: 30 May 2018 07:14
by michael blunck
[sorry, late reply]
Andrew350 wrote: To be honest, I didn't think m4nfo looked any easier :p
Well,

1. You won´t need to allocate sprites (and/or recolour sprites) manually:

Code: Select all

    //this reserves some sprites into temp. params
    5 * 9	 0D 00 \D= \DR FE FF 08 18 00 //this "main" param is used to allocate all of the graphics via the following action 6
    6 * 9	 0D 01 \D+ 00 FF 01 00 00 00 //each sprite then gets its own param # to use in the final action 6's which determine placement
    7 * 9	 0D 02 \D+ 00 FF 02 00 00 00
    8 * 9	 0D 03 \D+ 00 FF 03 00 00 00
[...]
   27 * 9	 0D 16 \D+ 00 FF 16 00 00 00
   28 * 9	 0D 17 \D+ 00 FF 17 00 00 00

	//this allocates the following graphics (realsprites) into the sprites which were reserved earlier (in the order they are defined below)
   29 * 5	 06 00 02 03 FF 
	//sprite number 00 00 (the first sprite below) now gets changed to whatever number the grm picked for the first of the reserved sprites, then each subsequent sprite
	//is allocated that number + 1 (which corresponds to the number of the param above)
   30 * 5	 0A 01 18 00 00 
//rail
   31 sprites/wooden_trestle_rail.png  8bpp  1       1    42   30  -20   -3 normal //flat back x 00
   32 sprites/wooden_trestle_rail.png  8bpp  48      1    42   30  -20   -3 normal //flat back y 01
[...]
   53 sprites/wooden_trestle_road.png  8bpp  1      45    57   31  -27   -4 normal //back x 16
   54 sprites/wooden_trestle_road.png  8bpp  63     45    57   31  -28   -4 normal //back y 17
In m4nfo this boils down to:

Code: Select all

spriteblock(ALLOCATE,
    set(
	sprite(wooden_trestle_rail.png 1 1 42 30 -20 -3) //flat back x 00
	sprite(wooden_trestle_rail.png 48 1 42 30 -20 -3) //flat back y 01
[...]
	sprite(wooden_trestle_rail.png 1 45 57 31 -27 -4) //back x 16
	sprite(wooden_trestle_rail.png 63 45 57 31 -28 -4) //back y 17
    )
)

spriteset(0)
2. Then, you don´t have to manually "overwrite" (counting bytes, by action6) your bridge tables:

Code: Select all

   //and finally these action 6's tell where to place each of the reserved sprites (organized by table layout for easier viewing)
   //Ack, I had to split them up individually because there aren't enough hex ids to do all in one
   55 * 14	 06
			 0A 02 08    //rail x (part 0 should probably never have pillars set)
			 0B 02 18    //rail y
			 16 02 28    //road x
			 17 02 38    //road y
			     //mono x
			     //mono y
			     //mlev x
			     //mlev y
			 FF

//Wooden Bridge (00)
   56 * 136	 00 06 01 01 00 0D 00 01 //action 00 bridges(06), 01 property, 01 ID, ID 00, prop 0D, tableID 00, 01 tables
//table 00 - offset starts at 08, add 16 for each row
00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00 //rail X: Back&Floor, Front, Pillars, 0 //08, 0C, 10, 14
00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00 //rail Y: Back&Floor, Front, Pillars, 0 //18, 1C, 20, 24
00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00 //Road X: Back&Floor, Front, Pillars, 0 //28, 2C, 30, 34
00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00 //Road Y: Back&Floor, Front, Pillars, 0 //38, 3C, 40, 44...
09 11 00 00  F6 09 00 00  F8 09 00 00  00 00 00 00 //Mono X: Back&Floor, Front, Pillars, 0
08 11 00 00  F5 09 00 00  F7 09 00 00  00 00 00 00 //Mono Y: Back&Floor, Front, Pillars, 0
31 11 00 00  F6 09 00 00  F8 09 00 00  00 00 00 00 //Mlev X: Back&Floor, Front, Pillars, 0
30 11 00 00  F5 09 00 00  F7 09 00 00  00 00 00 00 //Mlev Y: Back&Floor, Front, Pillars, 0 //78, 7C, 80, 84
[...]
You´d just define the tables directly:

Code: Select all

define({table_0},{
	segment(
		railbridge(front(2, 3), back(0, 1), pillar(NONE, NONE))
		roadbridge(front(14, 15), back(12, 13), pillar(NONE, NONE))
		monobridge(front(0x9F6, 0x9F5), back(0x1109, 0x1108), pillar(0x9F8, 0x9F7))
		mlevbridge(front(0x9F6, 0x9F5), back(0x1131, 0x1130), pillar(0x9F8, 0x9F7))
	)}
)
3. Since all tables for this bridge are the same, you don´t need to specify them explicitly multiple times:

Code: Select all

//table 01
   58 * 136	 00 06 01 01 00 0D 01 01
[...]
//table 02
   60 * 136	 00 06 01 01 00 0D 02 01
[...]
//table 03
   62 * 136	 00 06 01 01 00 0D 03 01
[...]
//table 04
   64 * 136	 00 06 01 01 00 0D 04 01
[...]
//table 05
   66 * 136	 00 06 01 01 00 0D 05 01
[...]
//table 06
   68 * 136	 00 06 01 01 00 0D 06 01
[...]
Instead, it´ll boil down to:

Code: Select all

layout(WOODEN,0,
	table_0()
	table_0()
	table_0()
	table_0()
	table_0()
	table_0()
	table_0()
)
C´est-ça.
Andrew350 wrote: [...] it would be best to try learning plain NFO before trying to dive into anything else, at least that way I have a basic understanding
Having a good idea of the underlying plain nfo is indispensable, especially for the more advanced projects, be it for m4nfo or for any other abstraction layer.

regards
Michael