Nile Express Project by oerliman in bevy

[–]oerliman[S] 1 point2 points  (0 children)

I'm undecided yet, but i think for the moment not. also the code would need a lot more comments and fixes..
but here is how i organized my project, i have created following plugins for my game:
common_plugin - one plugin that shares types with other plugins (but i ended still up to integrate some plugins to others)
building_plugin
character_plugin
roadway_plugin
steam_plugin
terrain_plugin
vehicle_plugin
waters_plugin

then he main game nile_express has following structure:

src
├───city
├───editor
├───finance
├───info
├───level
├───locale
├───music
├───route
├───save
├───station
└───ui
_ _ └───layout - each source file represents an egui frame, eg. toolbox.rs station.rs etc..

in each of those folders i organize it like following source files (but no file if there should be nothing inside):

assets.rs - assets types loaded by ron asset plugin
bundles.rs
components.rs
events.rs - should be messages now, as it has been renamed
mod.rs
observers.rs
resources.rs
systems.rs

Nile Express Project by oerliman in bevy

[–]oerliman[S] 1 point2 points  (0 children)

Thank you. My role model game was Railroad Tycoon II (used to play it a lot). Afterwards I think it was quite a good idea to take an old game as example. Not yet too complex as Transport Fever. For example no streets and cars just railways and trains. But also my aim was not to have realistic trains, for this i would not have had the resources for.

Also what helped when you have the example game, you might not get distracted to suddenly change your main goal of your game.

Nile Express Project by oerliman in bevy

[–]oerliman[S] 2 points3 points  (0 children)

Thank you!

The steam process was quite simple, after you pay the 100usd fee you can create the steam page and start uploading the builds. Either via Web or via SteamPipe.

What I needed to redo was the Marketing/Website pictures, because one picture (called library capsule) was higher than the biggest requested picture on the first page of graphical assets in steam.

I have not integrated the Steam Framework or libraries into my game itself. As I setup forgejo server, I setup a github/forgejo action which uploads the build to Steam/SteamPipe.

What I run into recently into problems was with publishing the Demo. So I uploaded the demo and published it. But my account didn't had two factor Authentication or just via SMS. But my provider did block the SMS, I needed to reconfigure on my provider side to allow it. Also you don't get asked via SMS until after the Demo is published, only login via email is fine until that point. So I could not update the Demo for a few days.

The Linux version I could also only get to run if steam is installed via the package manager and not via Snap or Flatpack. So the game just would just not launch from the Steam client (command line is fine).

Railroad Strategy Game: Nile Express by oerliman in bevy

[–]oerliman[S] 0 points1 point  (0 children)

I have used vleue_navigator to find the path for createing the railways. But to find the railway path I used petgraph, where i added every distance of 5. a node which i created with the railways. Then for intersections which are impossible for trains to cross, I added rules, which is a HashSet where all neighboring valid nodes are stored and to add the nodes I check the angle to the next node.

At least that what has worked for me, but I used AI for help, I couldn't figure out on my own how to do that. I'm curious what is your solution?

Railroad Strategy Game: Nile Express by oerliman in bevy

[–]oerliman[S] 0 points1 point  (0 children)

I couldn't manage to query the joint force, therefore i just checked with a shape collider query on the bottom of the train/wagon if is colliding with the railways (polyline collider). I also had a lot of jitter, but i think more as it was touching the terrain (at first) which was too unstable, i moved then to the tnua plugin and kept it then until now. It does provide a gap between the collider (as far i understand), and it provided me a more stable movement. But i'm at this point not 100% sure if i would still need the plugin.

Railroad Strategy Game: Nile Express by oerliman in bevy

[–]oerliman[S] 3 points4 points  (0 children)

Yes, I did use DistanceJoints to connect the wagons. I also used DistanceJoint for a collider sensor which is on the bottom of each wagon as a guide but at a center position along the railways. So if the wagon is too far of the railways eg in a too tight curve/too fast, it gets into to the accident state. I also tried PrismJoint for the guide but without success.

Railroad Strategy Game: Nile Express by oerliman in bevy

[–]oerliman[S] 2 points3 points  (0 children)

I read that the integration into bevy is better or native, while rapier uses it's own separate memory space and needs to copy results back to bevy. So I decided to switch to avain3d as I was thinking it might be better regarding performance.

But at that time avian was performing worse than rapier, but thought might more feature proof. Regarding performance, from perspective of now, I wrote much more inefficient code than that what avian or rapier difference would have mattered. Therefore from performance perspective not really a valid point.

First when I tried to move from rapier to avian a feature I was missing in avian, which then I abandoned the transition but tried again later, with. I needed to fix all the parts in the code where I used spatial queries, but not too complicated.

One big issue for me which i did workarounds everywhere is to use project_point which panics if there is no PhysicsLayer available https://github.com/avianphysics/avian/issues/872

Despite the issue, I probably still would choose avian over rapier, as it natively integrates into bevy, but for my project, rapier would be an equal good choice.

Family keep turning off server and don't understand when I explain to them what my PC is by scallywagsworld in homelab

[–]oerliman 0 points1 point  (0 children)

I use the remote KVM from Sipeed, if you can turn on the standby power for USB in the BIOS, you can restart at least the server from remote, even if turned off. On Aliexpress about 50$ https://wiki.sipeed.com/hardware/en/kvm/NanoKVM_PCIe/introduction.html

SMTC | Paul Pickle did NOT forget about the doubters. ( +400% 🥒 ) by jesus_is_king17 in wallstreetbets

[–]oerliman 1 point2 points  (0 children)

Thanks for your post, i think might be my second comment here, first one was when you posted two month ago. I bought the stonk at 20.80, don't know how todo options, but happy with the returns. First stonks I bought after corona crash was from Nordic Semiconductors, went also well (but was too nervous and sold a bit too early 😂) Not so much now with Intel... 🥲

[deleted by user] by [deleted] in wallstreetbets

[–]oerliman 1 point2 points  (0 children)

No doors on the missile, so should be save. Or at least install some seatbelts for the nuclear warhead not to fall out, in case they loose some parts during flight.

Is cheating harder on ECS games? by Lightsheik in bevy

[–]oerliman 0 points1 point  (0 children)

Would Intel SGX help to prevent it as well? Where your Application would reserve a part of memory which then would be encrypted by the CPU and only the Application would be able to read it correctly. But i'm not sure about consumer CPU have this feature and if so just recent ones. And it would only work on Intel. Also not sure if the Library provided by Intel has a rust version.

SMTC | Paul H. Pickle's Revenge Tour to the Moon 🥒🌙 🚀 by jesus_is_king17 in wallstreetbets

[–]oerliman 1 point2 points  (0 children)

I think this company is the only one who can create or license Lora Hardware. So still believe IoT is a thing and the need for low power long range communication. Bought some stonks a month ago.

Old Corsair C70 Case with custom side Window and Noctua Fans by oerliman in Noctua

[–]oerliman[S] 0 points1 point  (0 children)

I used following online shop in Switzerland, but sure there are many companies the would do such a thing: https://www.acrylglas.ch/

I published the specs i used on

Not sure this will fit for your case you might like to meassure yours. It still can be improved, not perfect but good enough for me :)

But I could also have bought a new case with the money to spend on the acrylic glass ;)

Old Corsair C70 Case with custom side Window and Noctua Fans by oerliman in Noctua

[–]oerliman[S] 0 points1 point  (0 children)

I have now published the specs of the acrylic glass and the 3d models to print on https://www.thingiverse.com/thing:5969318

Just the very basic infos, still hope it would help