Jump to content
OpenRCT2
CrazeDesk

Giga Coaster Inversions

Recommended Posts

I honestly think the Giga coaster could use inversions. sure you can use track merging but, isn't the same as using track pieces that fit the track type. of course, no one has to go ahead and do this, I just think it's a cool idea.

Share this post


Link to post

With some cheating, you can already build inversions with gigs coaster track (first build it and then switch track type). The only thing that’s needed are sprites to draw the inversion (it will just be invisible now) and probably also sprites for the trains. (Not even a new save format!)

Share this post


Link to post
3 hours ago, jensj12 said:

With some cheating, you can already build inversions with gigs coaster track (first build it and then switch track type). The only thing that’s needed are sprites to draw the inversion (it will just be invisible now) and probably also sprites for the trains. (Not even a new save format!)

I know about that but, I think someone could make sprites that the developers could add-in in the next update. I would make them myself but I don't have any experience making sprites. 

Share this post


Link to post

The giga coaster definitely needs inversions. Unfortunately, it's difficult to add them, and not for any technical reason - it's just really hard to make sprites that match the existing ones. I have a custom version of the Intamin track with vertical slopes, half loops and barrel rolls, and it looks OK as long as you only use custom sprites:

intaminbarrelrolls.png.3f13a06d5b50942980ffe4ab551eafcf.png

However, if you keep the original sprites and only use the custom sprites for the new track pieces, then they look awful

gigavertical4.png

(this image is an older screenshot so the shading has been adjusted since, but the lack of contrast remains).

So, I can easily add a new track style but I can't really extend an existing one. I've thought about submitting a PR for the extended track, but I think creating a new track that looks the same as an existing one is likely to cause confusion, especially if OpenRCT2 eventually gets an open source graphics set that would render the distinction moot. I thought about having the option to toggle between original graphics (without inversions) and a custom set which has them, but I don't know if the devs would merge that.

Share this post


Link to post
50 minutes ago, X7123M3-256 said:

The giga coaster definitely needs inversions. Unfortunately, it's difficult to add them, and not for any technical reason - it's just really hard to make sprites that match the existing ones. I have a custom version of the Intamin track with vertical slopes, half loops and barrel rolls, and it looks OK as long as you only use custom sprites:

intaminbarrelrolls.png.3f13a06d5b50942980ffe4ab551eafcf.png

2

question, can I get a download for the custom track? anyway, how do you make custom tracks?

Share this post


Link to post
9 minutes ago, CrazeDesk said:

question, can I get a download for the custom track? anyway, how do you make custom tracks? 

You can get the code here (or at least, a slightly earlier version of it - this one doesn't have half loops). However, this is the RMC IBox track not the Intamin (the code is the same, I just change the sprites). I could upload a zip file with the Intamin sprites if you really want to try it.

 

17 minutes ago, CrazeDesk said:

question, can I get a download for the custom track? anyway, how do you make custom tracks? 

I have a program that takes a 3D model of a straight section of track and transforms it to create a model of each track piece, then renders the sprites from that. That code is here. Once the sprites are rendered, some boilerplate code needs to be written to get the game to use them, but that can mostly just be copied and pasted from another ride.

Share this post


Link to post
On 18/12/2018 at 18:00, X7123M3-256 said:

You can get the code here (or at least, a slightly earlier version of it - this one doesn't have half loops). However, this is the RMC IBox track not the Intamin (the code is the same, I just change the sprites). I could upload a zip file with the Intamin sprites if you really want to try it.

 

I have a program that takes a 3D model of a straight section of track and transforms it to create a model of each track piece, then renders the sprites from that. That code is here. Once the sprites are rendered, some boilerplate code needs to be written to get the game to use them, but that can mostly just be copied and pasted from another ride.

please do, I've been wanting to make a more realistic Intamin LSM coaster without having to use B&M tracks.

Edited by explosives233

Share this post


Link to post
8 hours ago, ChamanCalle said:

How can I implement this? Do I have to download files and copy/paste somewhere?

The process for creating a new track element for an existing track (there are extra steps if you are looking to add an altogether new track style) looks like this:

  • Create the sprites. This is the hard part.
  • Place the sprites in the appropriate subdirectory of resources/g2/track/ (if there isn't a subdirectory for the new track type, create it. It doesn't actually matter where they go, but it's a good idea to keep the sprites organized).
  • Edit /resources/g2/sprites.json and add entries for the new sprites.
  • Run "make g2" to generate a new g2.dat file.
  • Edit src/openrct2/sprites.h and add symbolic constants for the new sprites. You can skip this step, but it will make rebasing very tedious if any new sprites have been added to develop since you started development of your new track elements.
  • Add the code to draw the element. The track drawing code is found in src/openrct2/ride/coaster - most of the time you can just copy the code from a ride that already has that element, and just change the sprites. Also make sure to modify get_track_paint_function_* (at the end of the file) to let OpenRCT2 know about the new track.
  • Finally, you need to alter src/openrct2/ride/TrackData.cpp to add the new track element to the list of supported track elements for that ride (this is stored in RideTypePossibleTrackConfigurations). If you don't want the track element to be available to build without cheats, you can skip this step (if your track piece requires sprites that vanilla trains don't have, and you intend to submit it for inclusion in the official release, the developers will probably not want it to be available without cheats).

Really, if you can just create sprites that look good I'd be happy to help you with getting them in the game - as I mentioned above, I had a go at implementing this myself and the only thing I really struggled with is making sprites that go well with the vanilla ones - I already have this working, it just doesn't look very good (for the screenshot above, I replaced all the vanilla track as well, just so that the new ones wouldn't look out of place).

Edited by X7123M3-256

Share this post


Link to post
On 27/03/2019 at 22:13, X7123M3-256 said:

The process for creating a new track element for an existing track (there are extra steps if you are looking to add an altogether new track style) looks like this:

  • Create the sprites. This is the hard part.
  • Place the sprites in the appropriate subdirectory of resources/g2/track/ (if there isn't a subdirectory for the new track type, create it. It doesn't actually matter where they go, but it's a good idea to keep the sprites organized).
  • Edit /resources/g2/sprites.json and add entries for the new sprites.
  • Run "make g2" to generate a new g2.dat file.
  • Edit src/openrct2/sprites.h and add symbolic constants for the new sprites. You can skip this step, but it will make rebasing very tedious if any new sprites have been added to develop since you started development of your new track elements.
  • Add the code to draw the element. The track drawing code is found in src/openrct2/ride/coaster - most of the time you can just copy the code from a ride that already has that element, and just change the sprites. Also make sure to modify get_track_paint_function_* (at the end of the file) to let OpenRCT2 know about the new track.
  • Finally, you need to alter src/openrct2/ride/TrackData.cpp to add the new track element to the list of supported track elements for that ride (this is stored in RideTypePossibleTrackConfigurations). If you don't want the track element to be available to build without cheats, you can skip this step (if your track piece requires sprites that vanilla trains don't have, and you intend to submit it for inclusion in the official release, the developers will probably not want it to be available without cheats).

Really, if you can just create sprites that look good I'd be happy to help you with getting them in the game - as I mentioned above, I had a go at implementing this myself and the only thing I really struggled with is making sprites that go well with the vanilla ones - I already have this working, it just doesn't look very good (for the screenshot above, I replaced all the vanilla track as well, just so that the new ones wouldn't look out of place).

Isn't there just a way to basically get the sprites, And make them into scenery objects, So you build a twister coaster as intamin or mack, Change it to giga, have those inversions invisible, and just place scenery objects of the inversions into the place of the inversion and then have a good looking intamin or mack coaster??

Share this post


Link to post

As stated, the hardest part is creating the sprites. Getting them into the game is not a problem.

Even if you wanted to use existing track parts as scenery, you can already build a ride of a different type in the other direction to get the same effect.

Share this post


Link to post
10 hours ago, lukasyee said:

Isn't there just a way to basically get the sprites, And make them into scenery objects, So you build a twister coaster as intamin or mack, Change it to giga, have those inversions invisible, and just place scenery objects of the inversions into the place of the inversion and then have a good looking intamin or mack coaster??

Maybe. I actually already tried this, but it doesn't work out of the box. Track sprites are split into the parts that should draw behind the train, and those that should draw in front of it, while scenery sprites are not. If you just make a track piece into a large scenery object by the normal process, you get severe graphical glitches.

In theory, you could work around this by fudging the clearance heights to trick the game into drawing the sprites in the correct place. But now that we can create actual track pieces, that seems like more effort than it's worth, and it's likely to cause more sorting issues if you have other scenery pieces (like supports) near the track.

Share this post


Link to post
On 18/12/2018 at 16:47, X7123M3-256 said:

The giga coaster definitely needs inversions. Unfortunately, it's difficult to add them, and not for any technical reason - it's just really hard to make sprites that match the existing ones. I have a custom version of the Intamin track with vertical slopes, half loops and barrel rolls, and it looks OK as long as you only use custom sprites:

intaminbarrelrolls.png.3f13a06d5b50942980ffe4ab551eafcf.png

However, if you keep the original sprites and only use the custom sprites for the new track pieces, then they look awful

gigavertical4.png

(this image is an older screenshot so the shading has been adjusted since, but the lack of contrast remains).

So, I can easily add a new track style but I can't really extend an existing one. I've thought about submitting a PR for the extended track, but I think creating a new track that looks the same as an existing one is likely to cause confusion, especially if OpenRCT2 eventually gets an open source graphics set that would render the distinction moot. I thought about having the option to toggle between original graphics (without inversions) and a custom set which has them, but I don't know if the devs would merge that.

We do have a few in-game track types that look almost identical with a couple of very minor differences, namely the Junior and Mini coasters. I'd say that the near-identical appearances of Giga and Intamin Launch coaster tracks aren't that big of a deal, and I'd love to have a separate inverting coaster dedicated to the Intamin and Mack designs.

I honestly think you should be an official developer for the mod. You have a LOT of very good things to add.

Edited by JMBuilder

Share this post


Link to post
7 hours ago, JMBuilder said:

We do have a few in-game track types that look almost identical with a couple of very minor differences, namely the Junior and Mini coasters. I'd say that the near-identical appearances of Giga and Intamin Launch coaster tracks aren't that big of a deal, and I'd love to have a separate inverting coaster dedicated to the Intamin and Mack designs.

I honestly think you should be an official developer for the mod. You have a LOT of very good things to add.

Yeah, but those are different track styles IRL. The Giga coaster is Intamin track - adding another Intamin track style means creating a duplicate. Also, the game frequently reuses sprites for similar track styles (Junior/Water, Looping/LIM, Mini/Spiral etc), so I don't think adding an entirely new track style for a very similar track like Mack or Gerstlauer is really justified either.

Right now, I'm concentrating on my Intamin double-spine track. I also have RMC IBox track in development, but there are so many issues with that that it might never be completed.

Share this post


Link to post

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...