I’ll be at Six Flags Magic Mountain this Monday (the 24th) if anyone’s in the area.
All Comments
15241 to 15260 of 19728Filter comments
Go do it now! NoLimits 2 Screen Shot Saturday Madness June 23
-Ride_Op
My jet coaster station. 
Just quit my summer job due to unrelated issues, this should allow me to participate after all. Haven't touched the simulator in forever after becoming distracted by Planet Coaster, but this'll be a fun way to get back to it.
Thank you so much Bestdani, your explanation was very good :)
^But what about all the BUTTONS.
^^ "Stop using sketchup" +1
Racer at Kings Island, made for the background of my Bat recreation

Beast at Kings Island, same reason as above

Need more shots for this weekend's SSS please!
-Ride_Op
I finally finished the video of my original Bat re-creation. The coaster itself took about three months. It was difficult to find source material. The video also took awhile, mostly because my go-to editor, Windows Movie Maker, is so awful and couldn't handle the file sizes (but somehow it could do Crystal Beach Cyclone). I downloaded DaVinci Resolve, which took some getting used to, but it seems to be a good program.
I'm taking a long break from NoLimits now. This project took a lot out of me. But here it is. Enjoy.
looks like a life-size HotWheels car.
Ah yes, it's really just over 3 weeks away. I was counting by remaining Saturdays and counted the first one as a full week.
Quick supporting is a good skill to have.
-Ride_Op
Fenix Toverland Promo car :

A great article! I hope that it will have an impact since it's so sad to see great looking projects that perform like - it's unfortunate - garbage. At least when these are meant to be used interactively.
Just another addition maybe that hopefully can summarize some aspects with these two images:


Same test scene, that looks identical, but an enormous difference in performance. That hopefully impressively demonstrates that it's not just important how the final result will look, but it's also extremely important how this is achieved. Many projects seem to completely ignore that, either by being unaware of it or - also unfortunate - by using software that give almost no control over these important aspects.
In this case even the amount of polygons is exactly the same. The only difference is that in the slow performing object each building is a single object element (left) while in the good performing it's just a single mesh (right).

Probably both ways of organizing such a object is not the optimal way in real examples, but obviously one is already a better way of doing it. In a real example you would probably split the mesh into parts to clip individual elements, that's a trade-off as well as other aspects might influence design decisions for example if parts of the objects should be able to be moved by scripts. But this test hopefully demonstrate how important it can be to be aware of the inner structures of models and not just the visual outcome when hunting for great performance.
I've just released another tutorial, giving some pointers on good optimisation practises. Be sure to give it a read, let me know if there's anything I've missed
Tutorials
The blog where I host my tutorials has switched domains, they can now be found here. They are as follows:
Materials (original Tutorials)

Tunnels (new and upcoming)

- Global Texture Coordinates
- Ambient Maps (soon)
Optimisation

Right now though, you should take a look at my 7 step guide to optimising your parks, because we're in good need of some optimised park releases.
Gosh, It turns out I don't have a construction thread on the new forums yet. That's weird, given the consistent output of projects I release.
Projects
Point Solitude

Download: Nolimits Central | Steam Workshop
Point solitude is a Fantasy (Non-realistic) Vekoma Flying Dutchman coaster, based on a coastal island.
Wow, remember that one time I made something? Point solitude has recently been updated for the 9th time, and whilst it's still awfully blocky, it has some swishy looking grass now.
Cypher III

Download: Direct (Google Drive) | Steam Workshop
I really liked Cypher III by DC High Heat, I considered it an NL1 classic. So, I worked with him and CG Coasters on this NL2 conversion, which I was super proud of, and received zero feedback for. Cool!
The Project Graveyard
If you happen to think I'm good at creating Nolimits 2 parks, you may be interested to know I'm even better at not creating them. Here are a few former projects for you to dissect at your leisure:
No, NL2 will provide you with the information which trigger has been left by which train with these two:
This whole method is a so called "callback" method. And each time a trigger to which you have so to say "subscribed" can send you "hey mr. a train just left a trigger". You can then access more information or actions by using these two so called parameters like for example query the train's speed.
To break the meanings down a little bit more:
-"TrackTrigger" designates that the first parameter will be a TrackTrigger object. You can look up in the class reference what you can do with these track trigger objects.
-"trigger" is just a name (you can think of it as a label put on a box in which you can find a track trigger) suggested in the manual for acessing it in the code that will follow in this method. It's perfeclty valid to choose your own name to acess it in the following code but I would not recommend to do so.
The same with the second parameter:
-"Train" designates that the second parameter will be a Train object. When you look it up in the class reference you will probably notice that you can at a first glance do more interesting things with it like query it's speed or position.
-"train" is also just a label as before.
An example as it would be used in the code.
public void onTrainLeaving(TrackTrigger trigger, Train train) {
train.getSpeed();
train.getCarCount();
train.getBogieCount();
train.getHarnessState();
}
And to hopefully make clear what I meant with the labeling, that would also work (but is not recommended):
public void onTrainLeaving(TrackTrigger theTriggerThatCalledThisMethod, Train theTrainThatLeftTheTrigger) {
theTrainThatLeftTheTrigger.getSpeed();
theTrainThatLeftTheTrigger.getCarCount();
theTrainThatLeftTheTrigger.getBogieCount();
theTrainThatLeftTheTrigger.getHarnessState();
}
And you might wondering for what the trigger parameter might be used for (since you cannot even query interesting looking information or do interesting actions at this point). Typically that is just used when you "subscribe" to more than one trigger in your script, to desinguish between them. This would require that you "remember" the triggers to which you have "subscribed" in your script and then compare these in this method like for example:
public void onTrainLeaving(TrackTrigger trigger, Train train) {
if (trigger == theTriggerNextToTheStation) {
//do something
} else if (trigger == theTriggerNextToTheLift) {
//do something different
}
}
The same could be also be done to identify a certain train number.
I think dealing with triggers and callbacks is a little bit more advanced topic since the mechanism might seem a little bit inconvenient at first maybe, but that's actually a very elegant programming technique.
If you have further questions don't hesitate to ask. But also notice that there is a working example script that comes with NL2 in the scene object demos that also automatically creates track triggers at the object position, "subscribes" to these triggers (registering the Script as a trigger listener) and executing these steps in these methods.




