What do you guys think about these changes? I know this was a shorter video than usual but I have a lot of content ready for the next video about the DLC. I hope to see you guys there! To try everything Brilliant has to offer-free-for a full 30 days, visit brilliant.org/AngeTheGreat. The first 200 of you will get 20% off Brilliant’s annual premium subscription.
imo radial based control speed or accuracy should be masured based on distance and not shortcuts if i rotate close is fast if i get further out is slow and more precise, this correlates easily speed and control to angular velocity making it both intuitive and easily discoverable by the user (maybe sowing it graphically with the circle following the mouse using mouse relative position to interactable as radius?) that's my take
In a project like this it's okay but I've worked with dudes like that and they're NOT pleasant to work with. It really degrades team efficiency if somebody thinks everything that other people did is crap, that everything is broken and needs to be rewritten, etc. They are impossible coworkers. I'm glad he seems to have found a career where he can write everything from scratch and constantly rewrite stuff because he decides it's not good enough. In general business, though, it's a terrible practice. In my opinion it's not really something to be proud of.
@@festusssss normaly i would agree that it isn't good to try to write your own stuff if it isn't part of the goal in the first place. that said here his goal was to write his own software and simulator so he can be proud of archiving his goal so far. also we shouldn't forget that all programming languages and libraries are written by people like ange and it seems that these people do a good enough job too or people wouldn't use it.
While he's clearly trying to make it sound impressive, it's just a library that can draw some game style menus. It's not terribly complex to make, but at the same time it's extremely overkill to make it for a single game and there's absolutely no good reason why an off the shelf solution wouldn't fit your needs. Even if you want maximum performance in the context of your application as he seems to, drawing some game menus is never going to be a performance bottleneck. And if it's customization what he's after, it would 100% have taken less time to customize an existing solution instead of making a new one that does what he needs by default. Same goes for his scripting lenguaje that he shoehorns into everything. It's a cool personal project (again, a really easy one, lenguaje processors are one of the first subjects every computer science undergrad takes during their degree, and it typically involves making a toy lenguaje like his) but using it for everything when there are alternatives that are a million times better makes no sense. Making shit versions of stuff that already exists from scratch is only cool in the world of CZcams and Reddit programming. In real life it's a habit of awful programmers. Usually smart and knowledgeable, but very bad engineers. This is not a critique of him, I'm sure he only does it for entertainment value and because he's the only one working in these projects so he can do whatever he feels like. But it's not something to find impressive, much less to look up to. It's an awful practice in the real world.
lol i did the same with my game, now i spend hours debugging the ui library instead of actually doing anything productive. layout is a very hard problem to solve
I like how Blender solves the mouse screen boundaries by making the mouse show up on the other side of the screen. This way you could drag the mouse as far as you want in any direction while it remains visible and doesn't collide with the screen edges
A great example of good knob design is in Fab Filter vst plugins. If the knob is adjusted from the center, it uses vertical movement to change the parameter. And if the knob is adjusted from the edge, it uses radial motion.
@@searchingforentertainment... Videos can be set to "Private", "Unlisted", or "Public". The first, no one can view. The second, only those with a link can view. The third, well, you're familiar. Lots of channels who use Patreon will make "early access" a perk to donating. Which, for most people it wouldn't matter if you watched it today, or last week... However, the one slight bonus is you beat everyone to the comments and _in certain situations_ that could be benefiting as you might want to directly ask the creator something and in a public video, it could get lost in the noise of all the others leaving comments. _(I'm choosing to omit the reasoning for those who are just vain and only want to be first at everything, or be "recognized", etc lol)_
@conejero00 I have developer tools to reset my achievements but players can reset their achievements too, I'm not sure if it violates Steam's rules though
I wonder if there’s a way to do that without it… I mean BeamNG can do it but maybe it’s different; all I know is basic JavaScript so don’t take my word for it.
Big kudos on taking a "simple" idea, executing it with excellence, documenting and presenting it, receiving the feedback, and transforming it into a viable product. Seriously impressive how you've responded to all of the crazy internet feedback and maintained your vision while also expanding it to meet user needs. Extremely professional, and a perfect example of how to start a successful business in any field.
I think I have an idea for valve control: the mouse scroll wheel. In DCS, how they handle continuous knob controls is you mouse over the knob and scroll up or down to twist clockwise or counterclockwise. It's simple and it's precise. Might be worth looking into.
+1; same thing came to mind + hold or click left mouse button for fast control, right mouse button for fine adjust or a variant of this (like left click= toggle fast, precise, normal)
Controlling sliders with the scrollwheel is definitely something that this should have (if it doesn't already), especially since it's already a standard feature in a lot of software.
i would love for a double acting steam engine, maybe with stevensons or like a steam locomotive with walschaerts gear. so that you can also reverse it and stuff that would also make the engine have less "empty" turning time with no steam pressure applied.
I would love to see modding/workshop support for steam engine sim, it would be so cool to be able to create your own simulation minigames or play other people's ones.
In my software and its UI the reason I went with hiding the cursor during slider interaction is because I realized that using the pixel position and motion deltas of the cursor as the input to sliders means that the granularity of value adjustment is limited by the pixel dimensions of the slider itself. If I want the user to be able to adjust a value from zero inches to ten inches, but my slider is only 100 pixels long, then they only have 0.1" increments they can adjust the value at, when they'll want 100x more precision to be able to select anywhere within zero-to-ten inches at 0.001" increments, which would require a slider that's 10k pixels long!!! Also, single-pixel positioning of a slider is really annoying to get at a specific value, so really I'd need a slider that's more like 30k pixels long so there's a little wiggle room between value increments. By capturing the mouse input I can allow for per-slider scaling of the input depending on the precision needed and the pixel length of its track, and I can also allow for modifier keys like CTRL for the user to hold to further increase precision of value input if needed. When the exact value is not super important and your slider basically only offers a few dozen possible values (i.e. small range and/or large increments) you can get away with just using the pixel position/motion of the cursor but when you need both a large range for the user to choose values within AND precise value selection, it's more important that the user have a way to do that and capturing the mouse was the only way I saw fit to accomplish that with a slider input.
As a side option to the radial controls, you could use a system where when you click on a valve of variable control, a graph appears above the engine where you move a slider vertically and next to the slider a circle or "magnifier" would be where you can fine adjust the setting to .01 accuracy, and the total value would be displayed above with the name of the valve you are adjusting
I think that happens already. If you pay close attention, sometimes the control spins super fast, and other times super slow. Perhaps left-click and right-click have different sensitivities for controls? Or perhaps one is holding CTRL or something.
@@TlalocTemporalif I understood correctly thats keyboard keypress based. But I kindda like the idea of up/down is literally on value and left/right multiplier where most right is either most or least "sensitive"
8:20 Take a look at the control scheme that Darktable uses. It matches up with your requirements, and was designed for rapid fine (and coarse) adjustments of scalar values.
I would suggest taking a look at KSP and how the manuever node controls work. It works with hover + mouse wheel. But it also work by pulling a few handles around. Jow far your cursor is frlm the initial position determines how fast the number goes up. I really like it.
what I find the most entertaining is having this open while playing another game, i try to keep the engine running while playing the game and am anticipating the DLC to juice up the process. what I would love to see is some form of audio cue when something is running low or if something is starting to run dry.
Ange I i just wanna say i fucking love you man. Your work is inspirational to say the least. You must be under a lot of pressure from all this (unexpected) success. I commend you stepping up and actually delivering. Cheers
This thing is really coming together, Ange! I'm a fan of the new controls, and the DLC looks like it'll be fun. I'm looking forward to the release! Do you plan on expanding the types of engines/boilers for SES eventually? I'd love to see multi-expansion engines and larger boilers. Perhaps even steam generators like what the old Doble steam cars had. Either way, great video. Thanks for the updates and all of the work you've been putting in. The future seems very bright.
What would be really neat to see implemented in my opinion would be functional Steam Locomotive technology like Stephenson valve gear or Walschaerts valve gear or even the option to have a functional model of different steam locomotive wheel arrangments involving these valve gear types, along with different tone whistles also. this game is amazing regardless!!!
I think the most interesting thing about this project is that it's a great example of how to tightly control the scope of a game idea to fit the available workforce of the solo dev. Sure, the concept seems pretty simplistic, and yet this man has been busy for months, which should tell you what it takes to make even a "simple" game.
For value adjusting controls, blender loops the mouse, kinda pacman style. You hold click on a number, drag till it hits the bottom of the screen and when it does it teleports to the top of the screen and you can keep dragging down. It took me a second to get used to but its a nice system that quickly became intuitive. Alternatively maybe consier somethings with the mouse wheel
For controls that it makes sense for (valves and other circular elements), I really like the "hover over with mouse and adjust with scroll wheel" approach. Just a suggestion ;)
For those controls, what about using the cursor to scroll through a list of values (with scroll wheel or by dragging the list up or down), or it could simply be a wheel with the edge facing you that you can turn, with the value shown next to it. Give it a large spin to quickly change the value, then pick and drag for fine tuning? The way it is done now you have to physically keep moving, whilst otherwise you can quickly spin through it.
Idk if you’ve done it for more complex steam engine set ups, you should put in temp/pressure/level transmitters you can put in that then can be used as input values for a simulated PID controller for other valves. Would be an excellent way to introduce how engine ECUs work
If you're wanting some inspiration for a more story focused gameplay loop for Steam Engine Simulator, I think it would make sense to have the player to be a mechanic sent in to tune and optimise certain engines for specific use cases. For example, one mission could be at a factory running their production machinery. Another would be a steam train. Perhaps an early model steam automobile. It's a good excuse to show off some historical context for these machines, and still revilves around the core gameplay of experimenting with a steam engine.
Hey, I've enjoyed your game for a while. I also shared my joy to play it with some friends and they decided to give it a try and, as expected, they become addicted too. After some debate, we acknowledge that there is one single thing that you could add to the game that would be easy to do... A reset button for the top speed. that's it. We all try to beat your own speed record and doing so we try different approach... Sometime, we reach a higher speed because of "overbuilt" pressure which give a burst in speed at start, but the real speed is slower after a while, when everything balance again... which is a problem because we can't see is you speed is slowly raising or not... it's an easy addition. PLEASE!!! Add a reset button for the max speed, or add a decimal to the "actual speed". thank you :D Keep up the good work :)
Very nice work on this! Loving every update! The radial controls look awesome, and I don't think Ive seen that used anywhere, looking forward to trying it out. Will there be any support in the future for analog controls/gamepads as another option? It has probably been asked about already but it would be cool to implement pedals or other analog controls to directly interface the simulator.
I like the blender way of repositioning the mouse at the bottom/top/side of the window when it its the top/bottom or side of the screen so you can just drag forever
This is amazing, it kept lagging on my laptop and the sound was awful. I knew it wasn't your fault so I just played without sound... This is an incredible improvement.
I'd love to have more customization of the engine itself, like being able to add double-acting cylinders, adjustable cutoff, different boiler sizes/shapes, fuel types, and perhaps even connecting multiple together (like the dual-cylinder system on a locomotive, for example)
As someone who has used several DAWs over the years, I'm used to dragging knobs up and down. Never seen one that requires a circular motion, so I'm biased against it. I'd probably go with up/down drag with the cursor wrapping around, as I dislike bumping into screen edges. Another option would be the endless ribbon. Vertical movement changes subdivision, while horizontal changes the value, but that might be overly complicated
Amazing work, I'm looking forward to how these changes translate into Engine Sim optimizations. Love the work you are doing, and it's great the project is getting the visibility it needs. I actually love the radial control mechanism, for the same reason you implemented it in the first place, the mouse moving away from the control system or hitting the window border. The modular mini-game system is something that I personally really enjoy. When EA released Spore, they also released 'mini-games' which were the engine elements that controlled various portions of the main game, and those were just as entertaining to play in as the game itself. I think you've got something there. Keep it up, man.
A possible fix for the cursor parameter adjusting range issue: Make the speed at which the cursor is moved up or down increase the amount of change it gives to the parameter. When you know you need a big nummer you just move the mouse faster to get bigger increments. I noticed that apple uses this when dragging files with the touch pad. Often you can’t reach the folder you want your file dragged to, then you just move back and move the cursor faster.
A good way to solve the controls problem could be to let the mouse “loop around”. What I mean by that is that when it reaches the top of the screen it teleports to the bottom, allowing you to keep moving the mouse up indefinitely, similar to what blender does
5:25 make sure you allow people to type in a number when you have a slider, especially with one like that which doesn't have discrete ticks. Huge QoL thing.
I absolutely love what you're doing here, actually watching this at 1am gave me the idea to try and recreate a chainsaw, including the 2 stroke engine just for show in a roblox game, so thanks for the video to watch and inspiration, Goodluck with the development ❤❤❤
I think a good alternative to the radial controls would be to have the mouse wrap locally when clicking a control. Have it so that when the mouse gets n distance away from the control in the X or Y axis, it wraps around to the opposite side of the control by the same amount. So, for example, if you have it set to 100px away from the control then when you move to the right and hit 101px away, the cursor is offset to 100px to the left of the control instead. This solution would probably feel more intuitive to those who find the radial controls unintuitive.
The radial controls are a really good idea imho, and personally, I would really appreciate if you can also control the valves etc. with your mouse scroll wheel.
Perhaps an effective way to enhance the input method is by assigning the rotation function to the scroll wheel. This would enable users to click and hold the valve, brake, etc., and then utilize the scroll wheel to make precise adjustments. Emphasizing the scroll wheel for accurate scrolling rather than perfecting rotations could potentially improve overall accuracy. Additionally, the option to adjust speed using a key can still be maintained.
I think having to turn the mouse in circles is cumbersome, but, I would suggest that bringing the mouse within a distance of the switch and holding LMB tracks the cursor's angle from the center point of the switch. This would mean dragging the mouse outside the "pickup distance" (the distance used to select the switch) and rotating around the center causes the variable to change based on how fast the angle is changing. In short, the farther out the mouse is from the center, the slower it adjusts because there is more distance for the mouse to cover around the circle. If it's not immediately clear what is happening, a transparent line could be drawn from the center of the switch to the mouse. This is just a thought and still leaves larger turns for finer adjustments subject to boundary issues but you could also just change the variable rate per angle to a different value for faster and slower speeds.
The reason the mouse disappears is to see the operation better, some operations needs precision, and some mouse cursers can get in the way, this can fix that, but it would be nice to have the option to do that with each software.
Houdini has an interesting UI for fine tuning controls. It lists units of 10s like 1, 10, 100, 1000 on the Y axis. You move vertically to adjust the units, and horizontally to adjust the value. I'm not sure radial controls are a good idea. It's too easy to cross the circle and end up with completely different values. Linear controls are much easier. FL Studio's knobs use linear controls even though they work radially.
Please consider adding Midi control so that users could directly adjust controls with a midi keyboard's knobs and sliders or any midi software. Control schemes could then be created, saved in a DAW. The app could then also be used a synth!
Add the scroll weel to control the radial controlls. When the mouse hovers over the control interface insted of clicking and rotating just scroll. Users are used to the motion already
My personal favourite for mouse controller is scrollable knob. Just hold your mouse cursor over the controller and use the scroll wheel. It's very common in flight sim for example. The best ones have acceleration aswell, so the first few scroll "clicks" moves only 1 step but then it accelerates. When this is done well in flight sim you can easily change from 100ft altitude to 39 900ft altitude accurately within just a few seconds.
Another +1 from me for Blender style screen wrapping for mouse movement. As a Blender user I initially thought it was odd, but I _very_ quickly got used to it and I think it works well. I despise radial controls in audio mixing software.
for the controls maybe think about a non linear relationship between mouse and adjustment speed. i think this style of control is very intuitive and easy to use
I would make an option to enable a vertical gauge. Then a right click menu for the gauges that creates a popup that lets you change the minimum and maximum of the range by moving two sliders up and down. Imagine a vertical bar with two sliders, between the two sliders it is white, and above and below the two sliders it is red because that part is unused. Then in the options menu you can choose what percentage of the screen the vertical bars take up, 35% is standard, 15% is the smallest, and 100% is the max size.
When your mouse is hovering over a gauge your scroll wheel could adjust it by 4% of its range per mousewheel step. So if the range minimum is 20% and the max is 30% power, then that is 0.4% per mousewheel step. I can comfortably roll my mousewheel 5 or 6 steps each time, so it would take me about 4 or 5 rolls of my mousewheel to go from the minimum to the maximum value. I could implement it in javascript fairly easily and send you an example if you want.
As far as the controls go, you can do something similar to what Unity does in their program, and that is whenever the cursor meets a screen boundary, the cursor is placed at the opposite screen edge to continue adjustment. I feel like this may be easier since in my experience, it can be unnecessarily complicated to revolve your cursor around an imaginary point.
for the radial control, instead of key controls to adjust how quickly you change it. you could have it so the further your mouse gets from the center of the control the quicker it increases, and vice versa
For the control's: I would like a control Style where you hover your mouse over the controls and then use the mouse wheel to adjust. It would need a lock button so you don't change the settings accidentally and some kind of feedback that the setting is selected for example the value changing color when huivering over it but not when it's locked of course. Hope this gave you some Ideas/inspiration Love you videos!
id love to see, in the far future, some sort of an actual locomotive hooked onto the steam engine, maybe as a bigger "minigame" where you deal with grade changes as you haul goods and people around to make money, upgrading your locomotive and maybe your steam engines as you go along (id love to see BIG steam engines... and maybe their explosions?)
Instead of infinite dragging of the mouse (till the edge of the screen is reached) what if the the control was on a gradient? IE click -> drag a small amount and value goes up in a small increment. Click - drag a medium amount and you get a medium increment. Another IE is the distance from the point of click to the current curser position determines the increment. Releasing the mouse button sets the value. Just a thought.
Regarding the mouse movement, I'm very much on the same page, but I'd also like to mention here the way 3Ds Max has solved this long time ago, by simply "wrapping the screen" if the cursor was to hit the edge. Today Blender does it too (I think) and it feels quite natural. I do agree that hiding the cursor when using sliders is probably the most cursed idea ever.
Its critical that the upcoming DLC has some way to track how many players are generating power and what the current total MW + MWh of energy production are. MMO Steam Engine!
I think an important feature would be scaling the speed of valve actuation based on distance of the mouse to said valve(further - slower, closer, faster) almost as if your mouse is representing a lever
A steam engine is 'conceptually' simple... Physics will teach us about many before us, the ideal gas laws and the laws of thermodynamics etc. However this simulation is a portal for many people who want to play with those laws in a dynamic environment. Even if it is just a simulation, it is a great teaching tool, and just fun to play with! The fact you are striving to make it a more accurate model in a free Steam game is amazing. I can't wait to get the DLC!
do a train simulator. Under the engine is a 2d 'line rider' terrain. In addition to the brake, you have a clutch that moves the train. The slope of the terrain applies force back to the engine. you need to get to the next station on limited water and fuel. Finalized with a level editor/sandbox.
For the control style, could just implement CAD style "Type the percent" thing and more quick use 5-step 0%;25%;50%;75%;100%. For some its preferred to have manual, for some it's good to have quick steps... Interchangeability.
My idea for controls is, maybe make the valves circles that can be dragged left or right with limits to their movement. Levels can simply be dragged, and they would behave as they would in real life. Maybe have the control items turn a solid color when selected. It might make the game even more simulation-like. The fire may also be able to be controlled as a valve, as if it were a gas burner.
What do you guys think about these changes? I know this was a shorter video than usual but I have a lot of content ready for the next video about the DLC. I hope to see you guys there!
To try everything Brilliant has to offer-free-for a full 30 days, visit brilliant.org/AngeTheGreat. The first 200 of you will get 20% off Brilliant’s annual premium subscription.
Linux?
imo radial based control speed or accuracy should be masured based on distance and not shortcuts if i rotate close is fast if i get further out is slow and more precise, this correlates easily speed and control to angular velocity making it both intuitive and easily discoverable by the user (maybe sowing it graphically with the circle following the mouse using mouse relative position to interactable as radius?)
that's my take
Mods?
I like the radial controls. Having them also mapped to the mouse wheel would be pretty intuitive.
The fact you have beamng supporting you is... Insane imagine that in the game so cool...
"This UI that you see was made with a new library THAT I MADE FROM SCRATCH" Ange is really the end boss of programing
this is really such a casual flex. he says it like it is normal to write your own programming language and simulators.
In a project like this it's okay but I've worked with dudes like that and they're NOT pleasant to work with. It really degrades team efficiency if somebody thinks everything that other people did is crap, that everything is broken and needs to be rewritten, etc. They are impossible coworkers.
I'm glad he seems to have found a career where he can write everything from scratch and constantly rewrite stuff because he decides it's not good enough. In general business, though, it's a terrible practice.
In my opinion it's not really something to be proud of.
@@festusssss normaly i would agree that it isn't good to try to write your own stuff if it isn't part of the goal in the first place.
that said here his goal was to write his own software and simulator so he can be proud of archiving his goal so far.
also we shouldn't forget that all programming languages and libraries are written by people like ange and it seems that these people do a good enough job too or people wouldn't use it.
While he's clearly trying to make it sound impressive, it's just a library that can draw some game style menus. It's not terribly complex to make, but at the same time it's extremely overkill to make it for a single game and there's absolutely no good reason why an off the shelf solution wouldn't fit your needs. Even if you want maximum performance in the context of your application as he seems to, drawing some game menus is never going to be a performance bottleneck. And if it's customization what he's after, it would 100% have taken less time to customize an existing solution instead of making a new one that does what he needs by default.
Same goes for his scripting lenguaje that he shoehorns into everything. It's a cool personal project (again, a really easy one, lenguaje processors are one of the first subjects every computer science undergrad takes during their degree, and it typically involves making a toy lenguaje like his) but using it for everything when there are alternatives that are a million times better makes no sense.
Making shit versions of stuff that already exists from scratch is only cool in the world of CZcams and Reddit programming. In real life it's a habit of awful programmers. Usually smart and knowledgeable, but very bad engineers. This is not a critique of him, I'm sure he only does it for entertainment value and because he's the only one working in these projects so he can do whatever he feels like. But it's not something to find impressive, much less to look up to. It's an awful practice in the real world.
lol i did the same with my game, now i spend hours debugging the ui library instead of actually doing anything productive.
layout is a very hard problem to solve
I like how Blender solves the mouse screen boundaries by making the mouse show up on the other side of the screen.
This way you could drag the mouse as far as you want in any direction while it remains visible and doesn't collide with the screen edges
its sort of like a cartoon character reaching something on the other side of the screen.
i haven't seen that method used in any other software before.
Corel draw also does that iirc but I don't really use that feature too much
When I first started using Blender, I was pleasantly surprised by the infinite dragability
KiCad has this too and it's a HUGE improvement to usability.
@@Psrj-ad Most 3D programs I've used do this.
A great example of good knob design is in Fab Filter vst plugins. If the knob is adjusted from the center, it uses vertical movement to change the parameter. And if the knob is adjusted from the edge, it uses radial motion.
Hmm interesting, I'll check it out. Thanks for the suggestion!
Sounds comfy. If the mouse is too close to the center, the radial control would be very erratic, so it makes sense to make it linear in that scenario
I like the new steam particles. More choo choo’s in each chuga
how did you post 1 day before this video was released?
@@searchingforentertainment... Videos can be set to "Private", "Unlisted", or "Public".
The first, no one can view.
The second, only those with a link can view.
The third, well, you're familiar.
Lots of channels who use Patreon will make "early access" a perk to donating. Which, for most people it wouldn't matter if you watched it today, or last week... However, the one slight bonus is you beat everyone to the comments and _in certain situations_ that could be benefiting as you might want to directly ask the creator something and in a public video, it could get lost in the noise of all the others leaving comments.
_(I'm choosing to omit the reasoning for those who are just vain and only want to be first at everything, or be "recognized", etc lol)_
Real nice choo/chuga ratio
We fire the whole choo. That's 66% more choo, per chugga
Hover over element + Scroll wheel for radial controls with ctrl+scroll for fine adjustments. This is used for most VST plugins with DAWs
That sounds a lot better. Winding the whole mouse around seems rather tedious and annoying
Same strategy I went with in my software's UI for both knobs and sliders. Also adopted by GIMP's sliders too I noticed.
That sounds absolutely awful on a laptop or with a touchpad
@@garrettrinquest1605 PgUp/PgDn or arrow keys could be an alternative, if a little inconvenient to have to unhand the mouse to adjust controls
@@garrettrinquest1605 Usually hover scroll control is a secondary control, generally drag is still available
500+ hours in the game and doesn't have all achievements 💀
It's because I reset my achievements all the time for testing purposes but it does look kind of funny 😂
@@AngeTheGreat you can reset achievements?? Or only you being the dev?
@conejero00 I have developer tools to reset my achievements but players can reset their achievements too, I'm not sure if it violates Steam's rules though
I wonder if there’s a way to do that without it…
I mean BeamNG can do it but maybe it’s different; all I know is basic JavaScript so don’t take my word for it.
@@AngeTheGreatI don't think it does. Portal Reloaded allows players to do it if they enable dev tools and that got past steam greenlight.
Big kudos on taking a "simple" idea, executing it with excellence, documenting and presenting it, receiving the feedback, and transforming it into a viable product. Seriously impressive how you've responded to all of the crazy internet feedback and maintained your vision while also expanding it to meet user needs. Extremely professional, and a perfect example of how to start a successful business in any field.
I think I have an idea for valve control: the mouse scroll wheel.
In DCS, how they handle continuous knob controls is you mouse over the knob and scroll up or down to twist clockwise or counterclockwise. It's simple and it's precise.
Might be worth looking into.
+1; same thing came to mind + hold or click left mouse button for fast control, right mouse button for fine adjust or a variant of this (like left click= toggle fast, precise, normal)
Controlling sliders with the scrollwheel is definitely something that this should have (if it doesn't already), especially since it's already a standard feature in a lot of software.
It's a great idea! At least for PC players. But I guess Laptop or even tablet users may have their problems with it.
I was going to suggest this. REAPER, a program like fl studio, has this feature.
i would love for a double acting steam engine, maybe with stevensons or like a steam locomotive with walschaerts gear. so that you can also reverse it and stuff
that would also make the engine have less "empty" turning time with no steam pressure applied.
YESSS
I would love to see modding/workshop support for steam engine sim, it would be so cool to be able to create your own simulation minigames or play other people's ones.
In my software and its UI the reason I went with hiding the cursor during slider interaction is because I realized that using the pixel position and motion deltas of the cursor as the input to sliders means that the granularity of value adjustment is limited by the pixel dimensions of the slider itself. If I want the user to be able to adjust a value from zero inches to ten inches, but my slider is only 100 pixels long, then they only have 0.1" increments they can adjust the value at, when they'll want 100x more precision to be able to select anywhere within zero-to-ten inches at 0.001" increments, which would require a slider that's 10k pixels long!!! Also, single-pixel positioning of a slider is really annoying to get at a specific value, so really I'd need a slider that's more like 30k pixels long so there's a little wiggle room between value increments. By capturing the mouse input I can allow for per-slider scaling of the input depending on the precision needed and the pixel length of its track, and I can also allow for modifier keys like CTRL for the user to hold to further increase precision of value input if needed. When the exact value is not super important and your slider basically only offers a few dozen possible values (i.e. small range and/or large increments) you can get away with just using the pixel position/motion of the cursor but when you need both a large range for the user to choose values within AND precise value selection, it's more important that the user have a way to do that and capturing the mouse was the only way I saw fit to accomplish that with a slider input.
Brilliant video as always. Very excited for all that is to come in the future!
Reading this as Ange starts talking about Brilliant was... Brilliant
As a side option to the radial controls, you could use a system where when you click on a valve of variable control, a graph appears above the engine where you move a slider vertically and next to the slider a circle or "magnifier" would be where you can fine adjust the setting to .01 accuracy, and the total value would be displayed above with the name of the valve you are adjusting
scroll wheel
I think that happens already. If you pay close attention, sometimes the control spins super fast, and other times super slow. Perhaps left-click and right-click have different sensitivities for controls? Or perhaps one is holding CTRL or something.
@@TlalocTemporalif I understood correctly thats keyboard keypress based.
But I kindda like the idea of up/down is literally on value and left/right multiplier where most right is either most or least "sensitive"
8:20 Take a look at the control scheme that Darktable uses. It matches up with your requirements, and was designed for rapid fine (and coarse) adjustments of scalar values.
Being able to map the controls to a MIDI device or similar would be pretty cool. Lots of knobs on that sort of equipment.
The smooth animations in the video itself is incredible... good work ange
I would suggest taking a look at KSP and how the manuever node controls work.
It works with hover + mouse wheel. But it also work by pulling a few handles around. Jow far your cursor is frlm the initial position determines how fast the number goes up. I really like it.
what I find the most entertaining is having this open while playing another game, i try to keep the engine running while playing the game and am anticipating the DLC to juice up the process. what I would love to see is some form of audio cue when something is running low or if something is starting to run dry.
Ange I i just wanna say i fucking love you man. Your work is inspirational to say the least. You must be under a lot of pressure from all this (unexpected) success. I commend you stepping up and actually delivering. Cheers
This thing is really coming together, Ange! I'm a fan of the new controls, and the DLC looks like it'll be fun. I'm looking forward to the release! Do you plan on expanding the types of engines/boilers for SES eventually? I'd love to see multi-expansion engines and larger boilers. Perhaps even steam generators like what the old Doble steam cars had. Either way, great video. Thanks for the updates and all of the work you've been putting in. The future seems very bright.
Very interesting stuff, can't wait to see what the DLC has to bring!
What would be really neat to see implemented in my opinion would be functional Steam Locomotive technology like Stephenson valve gear or Walschaerts valve gear or even the option to have a functional model of different steam locomotive wheel arrangments involving these valve gear types, along with different tone whistles also. this game is amazing regardless!!!
Peak, steam engine simulator stands alone as the goated one.
Thank you so much for continuing developing this simulator
I think the most interesting thing about this project is that it's a great example of how to tightly control the scope of a game idea to fit the available workforce of the solo dev. Sure, the concept seems pretty simplistic, and yet this man has been busy for months, which should tell you what it takes to make even a "simple" game.
hell yeah was literally playing yesterday while waiting for something to download. Loved hearing your thoughts on cursor stuff.
For value adjusting controls, blender loops the mouse, kinda pacman style. You hold click on a number, drag till it hits the bottom of the screen and when it does it teleports to the top of the screen and you can keep dragging down. It took me a second to get used to but its a nice system that quickly became intuitive. Alternatively maybe consier somethings with the mouse wheel
For controls that it makes sense for (valves and other circular elements), I really like the "hover over with mouse and adjust with scroll wheel" approach. Just a suggestion ;)
youve made some good progress on the Engine Simulator Cinematic Universe
that ui looks so smooth
For those controls, what about using the cursor to scroll through a list of values (with scroll wheel or by dragging the list up or down), or it could simply be a wheel with the edge facing you that you can turn, with the value shown next to it. Give it a large spin to quickly change the value, then pick and drag for fine tuning? The way it is done now you have to physically keep moving, whilst otherwise you can quickly spin through it.
Idk if you’ve done it for more complex steam engine set ups, you should put in temp/pressure/level transmitters you can put in that then can be used as input values for a simulated PID controller for other valves. Would be an excellent way to introduce how engine ECUs work
Add a right click function to the rotation style knobs so that you can input values or basic functions to simulate gradual changes or precise control.
If you're wanting some inspiration for a more story focused gameplay loop for Steam Engine Simulator, I think it would make sense to have the player to be a mechanic sent in to tune and optimise certain engines for specific use cases.
For example, one mission could be at a factory running their production machinery. Another would be a steam train. Perhaps an early model steam automobile. It's a good excuse to show off some historical context for these machines, and still revilves around the core gameplay of experimenting with a steam engine.
Hey,
I've enjoyed your game for a while. I also shared my joy to play it with some friends and they decided to give it a try and, as expected, they become addicted too.
After some debate, we acknowledge that there is one single thing that you could add to the game that would be easy to do...
A reset button for the top speed. that's it.
We all try to beat your own speed record and doing so we try different approach... Sometime, we reach a higher speed because of "overbuilt" pressure which give a burst in speed at start, but the real speed is slower after a while, when everything balance again... which is a problem because we can't see is you speed is slowly raising or not...
it's an easy addition. PLEASE!!! Add a reset button for the max speed, or add a decimal to the "actual speed".
thank you :D
Keep up the good work :)
I'll see what I can do, thanks for the suggestion
@@AngeTheGreat That would be awesome !!! thanks for considering it :D
I love these video updates. Short, concise, and to the point! I dont play it yet but enjoy watching!
Love the update to the Engine Simulator Cinematic Universe
Very nice work on this! Loving every update!
The radial controls look awesome, and I don't think Ive seen that used anywhere, looking forward to trying it out.
Will there be any support in the future for analog controls/gamepads as another option? It has probably been asked about already but it would be cool to implement pedals or other analog controls to directly interface the simulator.
Your works are always so professional. Keep up the good work. Hope you keep getting sponsors.
I like the blender way of repositioning the mouse at the bottom/top/side of the window when it its the top/bottom or side of the screen so you can just drag forever
This is amazing, it kept lagging on my laptop and the sound was awful. I knew it wasn't your fault so I just played without sound... This is an incredible improvement.
I'd love to have more customization of the engine itself, like being able to add double-acting cylinders, adjustable cutoff, different boiler sizes/shapes, fuel types, and perhaps even connecting multiple together (like the dual-cylinder system on a locomotive, for example)
finally this game is getting close to being competitive ready cant wait for ranked mode
As someone who has used several DAWs over the years, I'm used to dragging knobs up and down. Never seen one that requires a circular motion, so I'm biased against it.
I'd probably go with up/down drag with the cursor wrapping around, as I dislike bumping into screen edges.
Another option would be the endless ribbon. Vertical movement changes subdivision, while horizontal changes the value, but that might be overly complicated
Amazing work, I'm looking forward to how these changes translate into Engine Sim optimizations. Love the work you are doing, and it's great the project is getting the visibility it needs. I actually love the radial control mechanism, for the same reason you implemented it in the first place, the mouse moving away from the control system or hitting the window border. The modular mini-game system is something that I personally really enjoy. When EA released Spore, they also released 'mini-games' which were the engine elements that controlled various portions of the main game, and those were just as entertaining to play in as the game itself. I think you've got something there. Keep it up, man.
A possible fix for the cursor parameter adjusting range issue: Make the speed at which the cursor is moved up or down increase the amount of change it gives to the parameter. When you know you need a big nummer you just move the mouse faster to get bigger increments. I noticed that apple uses this when dragging files with the touch pad. Often you can’t reach the folder you want your file dragged to, then you just move back and move the cursor faster.
This guy really just made watching a spinny boi for hours actually fun
I love the new particles! Looks amazing!
A good way to solve the controls problem could be to let the mouse “loop around”. What I mean by that is that when it reaches the top of the screen it teleports to the bottom, allowing you to keep moving the mouse up indefinitely, similar to what blender does
this man is just insane
this game runs so smooth now! thank you!
finally i can enjoy steam engine simulator at 3000fps
5:25 make sure you allow people to type in a number when you have a slider, especially with one like that which doesn't have discrete ticks. Huge QoL thing.
I absolutely love what you're doing here, actually watching this at 1am gave me the idea to try and recreate a chainsaw, including the 2 stroke engine just for show in a roblox game, so thanks for the video to watch and inspiration, Goodluck with the development ❤❤❤
The engine simulator multiverse is getting crazy.
this is awesome! I'm so happy you're updating the game and taking it seriously.
I like the mousewheel for increases/decrease style of controls, especially since I can unlock the wheel on my mouse and can flick it.
I was already eager for the power generation, but now I'm looking forward to it even more.
I think a good alternative to the radial controls would be to have the mouse wrap locally when clicking a control. Have it so that when the mouse gets n distance away from the control in the X or Y axis, it wraps around to the opposite side of the control by the same amount. So, for example, if you have it set to 100px away from the control then when you move to the right and hit 101px away, the cursor is offset to 100px to the left of the control instead. This solution would probably feel more intuitive to those who find the radial controls unintuitive.
The radial controls are a really good idea imho, and personally, I would really appreciate if you can also control the valves etc. with your mouse scroll wheel.
Awesome! Cant wait for engine sim. Thanks!
Perhaps an effective way to enhance the input method is by assigning the rotation function to the scroll wheel. This would enable users to click and hold the valve, brake, etc., and then utilize the scroll wheel to make precise adjustments. Emphasizing the scroll wheel for accurate scrolling rather than perfecting rotations could potentially improve overall accuracy. Additionally, the option to adjust speed using a key can still be maintained.
I think having to turn the mouse in circles is cumbersome, but, I would suggest that bringing the mouse within a distance of the switch and holding LMB tracks the cursor's angle from the center point of the switch. This would mean dragging the mouse outside the "pickup distance" (the distance used to select the switch) and rotating around the center causes the variable to change based on how fast the angle is changing. In short, the farther out the mouse is from the center, the slower it adjusts because there is more distance for the mouse to cover around the circle.
If it's not immediately clear what is happening, a transparent line could be drawn from the center of the switch to the mouse. This is just a thought and still leaves larger turns for finer adjustments subject to boundary issues but you could also just change the variable rate per angle to a different value for faster and slower speeds.
The reason the mouse disappears is to see the operation better, some operations needs precision, and some mouse cursers can get in the way, this can fix that, but it would be nice to have the option to do that with each software.
I wasn’t expecting an engine simulator cinematic universe when I first saw your videos
Houdini has an interesting UI for fine tuning controls. It lists units of 10s like 1, 10, 100, 1000 on the Y axis. You move vertically to adjust the units, and horizontally to adjust the value.
I'm not sure radial controls are a good idea. It's too easy to cross the circle and end up with completely different values. Linear controls are much easier. FL Studio's knobs use linear controls even though they work radially.
I love that this has become your job! (commenting for engagement)
Please consider adding Midi control so that users could directly adjust controls with a midi keyboard's knobs and sliders or any midi software. Control schemes could then be created, saved in a DAW. The app could then also be used a synth!
Add the scroll weel to control the radial controlls. When the mouse hovers over the control interface insted of clicking and rotating just scroll. Users are used to the motion already
My personal favourite for mouse controller is scrollable knob. Just hold your mouse cursor over the controller and use the scroll wheel. It's very common in flight sim for example. The best ones have acceleration aswell, so the first few scroll "clicks" moves only 1 step but then it accelerates. When this is done well in flight sim you can easily change from 100ft altitude to 39 900ft altitude accurately within just a few seconds.
I’m liking the idea of the Engine Cinematic Universe
Another +1 from me for Blender style screen wrapping for mouse movement. As a Blender user I initially thought it was odd, but I _very_ quickly got used to it and I think it works well. I despise radial controls in audio mixing software.
The best release-notes video I've ever seen.
for the controls maybe think about a non linear relationship between mouse and adjustment speed. i think this style of control is very intuitive and easy to use
I would make an option to enable a vertical gauge. Then a right click menu for the gauges that creates a popup that lets you change the minimum and maximum of the range by moving two sliders up and down. Imagine a vertical bar with two sliders, between the two sliders it is white, and above and below the two sliders it is red because that part is unused. Then in the options menu you can choose what percentage of the screen the vertical bars take up, 35% is standard, 15% is the smallest, and 100% is the max size.
When your mouse is hovering over a gauge your scroll wheel could adjust it by 4% of its range per mousewheel step. So if the range minimum is 20% and the max is 30% power, then that is 0.4% per mousewheel step. I can comfortably roll my mousewheel 5 or 6 steps each time, so it would take me about 4 or 5 rolls of my mousewheel to go from the minimum to the maximum value. I could implement it in javascript fairly easily and send you an example if you want.
Absolutely amazing game. Had four of these running side by side on a LAN party, was great fun!
As far as the controls go, you can do something similar to what Unity does in their program, and that is whenever the cursor meets a screen boundary, the cursor is placed at the opposite screen edge to continue adjustment. I feel like this may be easier since in my experience, it can be unnecessarily complicated to revolve your cursor around an imaginary point.
One option for control adjustments is to use mouseover to select the control, then scrollwheel to adjust it.
this is how a passion project looks like.
Awesome.
Consider me a future customer
for the radial control, instead of key controls to adjust how quickly you change it. you could have it so the further your mouse gets from the center of the control the quicker it increases, and vice versa
For the control's: I would like a control Style where you hover your mouse over the controls and then use the mouse wheel to adjust. It would need a lock button so you don't change the settings accidentally and some kind of feedback that the setting is selected for example the value changing color when huivering over it but not when it's locked of course.
Hope this gave you some Ideas/inspiration
Love you videos!
id love to see, in the far future, some sort of an actual locomotive hooked onto the steam engine, maybe as a bigger "minigame" where you deal with grade changes as you haul goods and people around to make money, upgrading your locomotive and maybe your steam engines as you go along (id love to see BIG steam engines... and maybe their explosions?)
You are giving us so much we never ask for and I'm here for it!
The current Steam store version (as of 2/3/24) runs great in Crossover on macOS. I'm on an M1 MBP with 8GB of RAM. I can't wait for the DLC!
Instead of infinite dragging of the mouse (till the edge of the screen is reached) what if the the control was on a gradient? IE click -> drag a small amount and value goes up in a small increment. Click - drag a medium amount and you get a medium increment. Another IE is the distance from the point of click to the current curser position determines the increment. Releasing the mouse button sets the value. Just a thought.
I think it'd be cool to have a pressure regulator on the whistle that you could adjust so it doesn't go bezerk when you've got the pressure real high.
Regarding the mouse movement, I'm very much on the same page, but I'd also like to mention here the way 3Ds Max has solved this long time ago, by simply "wrapping the screen" if the cursor was to hit the edge. Today Blender does it too (I think) and it feels quite natural. I do agree that hiding the cursor when using sliders is probably the most cursed idea ever.
Its critical that the upcoming DLC has some way to track how many players are generating power and what the current total MW + MWh of energy production are. MMO Steam Engine!
I think an important feature would be scaling the speed of valve actuation based on distance of the mouse to said valve(further - slower, closer, faster) almost as if your mouse is representing a lever
No way, the greatest game finally gets an update!
The Engine Cinematic Universe
A steam engine is 'conceptually' simple... Physics will teach us about many before us, the ideal gas laws and the laws of thermodynamics etc. However this simulation is a portal for many people who want to play with those laws in a dynamic environment. Even if it is just a simulation, it is a great teaching tool, and just fun to play with! The fact you are striving to make it a more accurate model in a free Steam game is amazing. I can't wait to get the DLC!
Power systems engineer here, I'd be happy to help with the Power Generation DLC in whatever way I can!
Awesome work!
Huh. Was just thinking about you yesterday morning. Good to see you :)
do a train simulator. Under the engine is a 2d 'line rider' terrain. In addition to the brake, you have a clutch that moves the train. The slope of the terrain applies force back to the engine. you need to get to the next station on limited water and fuel. Finalized with a level editor/sandbox.
Love these keep up the great work
For the control style, could just implement CAD style "Type the percent" thing and more quick use 5-step 0%;25%;50%;75%;100%.
For some its preferred to have manual, for some it's good to have quick steps... Interchangeability.
My idea for controls is, maybe make the valves circles that can be dragged left or right with limits to their movement. Levels can simply be dragged, and they would behave as they would in real life. Maybe have the control items turn a solid color when selected. It might make the game even more simulation-like. The fire may also be able to be controlled as a valve, as if it were a gas burner.
This is the kind of stuff that should be used to teach engineering classes.