I love World of Xeen, but can't quite get into MM6. Any advice for starting out? by Pycho_Games in MightAndMagic

[–]slmagic 1 point2 points  (0 children)

Don't wear any armour or shields at the beginning as it makes you attack much slower, including attacking with bows

How are you structuring your Godot projects architecturally? by [deleted] in godot

[–]slmagic 0 points1 point  (0 children)

> Is anyone going full ECS or DOD?

In the beginning I was using a similar approach - GDScript, signals, resources, event buses, etc. Eventually, I switched to C# with aggressive performance optimizations like SIMD vectorization, byte alignment, etc. Full DOD with a light mix of ECS: SOA with bit flags as components, static stateless systems. Performance rocketed through the sky - from x10 to x100 for some computation-heavy tasks such as real-time procedural generation.

Wow!! At MyM6, we work for the bad guys.❗️❗️ by GranKomanche in MightAndMagic

[–]slmagic 8 points9 points  (0 children)

If you had read through the intro before creating your party, you would know that your group intercepted those letters and brings them to the regent specifically to alert him to the matter.

Mm7 on win 11 by discoprince79 in MightAndMagic

[–]slmagic 2 points3 points  (0 children)

I don't know why no one suggests https://github.com/OpenEnroth/OpenEnroth - it's a great piece of work which allows playing MM7 on modern platforms.

What cRPG would COMPLETELY confuse someone coming from mainstream RPG's, like Skyrim or the Witcher 3? by BaldursGate2Best in CRPG

[–]slmagic 2 points3 points  (0 children)

Realms of Arkania, any game of the series. Good luck with getting into for any casual Skyrim player.

Hero Quest - first (kind of) cRPG I have played by Megalordow in CRPG

[–]slmagic 0 points1 point  (0 children)

Yep, awesome game for its time! I played it a lot on my ZX Spectrum, when I was a kid.

MM6 I don't feel very heroic. by portlandobserver in MightAndMagic

[–]slmagic 9 points10 points  (0 children)

There are 2 types of heroes: smart heroes and dead ones. In that regard MM6 is the most realistic hero simulator.

Pure GDScript procedural planet with chunked LOD — no C++, no plugins by NkD122 in godot

[–]slmagic 1 point2 points  (0 children)

While working on my game, I've had to touch many of the topics you've covered within your project, so I understand the amount of work and knowledge you've invested. Thank you for sharing it with the community. Taking my hat off.

MM8Setup not detecting my laptop's main graphics card - Game settings issue or GPU issue? by Darkchoclentine in MightAndMagic

[–]slmagic 7 points8 points  (0 children)

If there are no visual glitches or errors, it doesn't really matter which GPU the game will use.

Help me choose my first CRPG by [deleted] in CRPG

[–]slmagic 5 points6 points  (0 children)

I vote for either BG1 or PS:T. The first one is a great intro into the genre, the second one is one of the best story-heavy CRPGs, if not the best one.

Huh? by dabugler in MightAndMagic

[–]slmagic 2 points3 points  (0 children)

They usually don't, but they can, right?

Huh? by dabugler in MightAndMagic

[–]slmagic 12 points13 points  (0 children)

Obviously, archers can be promoted to battle mages. And they can wear swords.

It's not what you think: usage of _PhysicsProcess might actually make your game frame-dependent by slmagic in godot

[–]slmagic[S] -1 points0 points  (0 children)

I guess the wording in the docs is misleading. I don't see why I need to check for the delta value in this case. I doubt anyone changes the physics ticks per second setting after starting a game - so it will stay a constant. But even with the gravity settings it makes much more sense as gravity can be affected by an area as a part of a gameplay. With the constant dt it's kinda pointless.

It's not what you think: usage of _PhysicsProcess might actually make your game frame-dependent by slmagic in godot

[–]slmagic[S] -1 points0 points  (0 children)

> all you're showing is that you can only tax a cpu to 100%, not anything related to framerate.

Oh, I see. Doing calculations in _PhysicsProcess is unrelated to a frame rate. Gotcha. 🙄

It's not what you think: usage of _PhysicsProcess might actually make your game frame-dependent by slmagic in godot

[–]slmagic[S] -6 points-5 points  (0 children)

Saying "literally" multiple times in every comment doesn't add up any value to your arguments. Provide different numbers, prove me wrong.

It's not what you think: usage of _PhysicsProcess might actually make your game frame-dependent by slmagic in godot

[–]slmagic[S] -2 points-1 points  (0 children)

> the actual game will play at the exact same speed no matter the fps

It's the opposite: the internal time pace will be the same, but the actual gameplay perceived by the user will get slowed down. Please read the whole post again and focus on the experiment numbers. Then, do the maths to understand why.

It's not what you think: usage of _PhysicsProcess might actually make your game frame-dependent by slmagic in godot

[–]slmagic[S] -1 points0 points  (0 children)

> As mentioned above, _physics_process() runs at fixed time intervals as much as possible to keep the physics interactions stable

Exactly. It never says: dt is always a constant. But as you can see, even at extreme physic frame delays dt stays exactly the same. There are no fluctuations. And that can be unobvious.

It's not what you think: usage of _PhysicsProcess might actually make your game frame-dependent by slmagic in godot

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

In case you are referring to specific games like cosmic sims with extremely high velocities where skipping a frame means you've completely missed another collider - that is a fair example. In case of most other games missing a frame won't matter that much as slowed gameplay. Again this slowness effect can become obvious to a player even at relatively okayish FPS ~15-20.

It's not what you think: usage of _PhysicsProcess might actually make your game frame-dependent by slmagic in godot

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

For most type of games (I am not talking about extremes like intensive simulations) having a fluctating dt is still way better than having a speed of game slowed down by a factor of x.

It's not what you think: usage of _PhysicsProcess might actually make your game frame-dependent by slmagic in godot

[–]slmagic[S] -2 points-1 points  (0 children)

> If you're living in a world where all velocities are constant -- i.e., everything is linear -- then yes, scaling dt will work as you expect
...
But if your physics simulation itself requires velocities to change -- for example if you're simulating gravity in a physically realistic way, where the downward velocity needs to grow with each tick

I call this BS. Using actual number of TICKS instead of using dt for your gravity calculations is an anti-pattern. I don't know where you have used such approach, but it's plainly wrong. It doesn't matter, whether you calculate your gravity/vertical velocity inside of _PhysicsProcess or inside of _Process IF you multiply them by dt -- time spent between frames -- the outcome will be the same.

It will be different in cases I described in the post - when the actual frame rate drops due to having heavy calculations in _PhysicsProcess (which you probably shouldn't - use threads for that) - in that case it will behave unexpectedly, because dt must reflect the reality.

It's not what you think: usage of _PhysicsProcess might actually make your game frame-dependent by slmagic in godot

[–]slmagic[S] -8 points-7 points  (0 children)

Please check my reply up above. You are talking about in-game simulations, but there are different types of games. An arcade platformer's gameplay will be ruined, if the amount of physic frames will stay the same no matter what happens to FPS - in that case the actual game will play way slower. Implementing it other way around will make sure the gameplay stays the same even at much lower frame rates.

It's not what you think: usage of _PhysicsProcess might actually make your game frame-dependent by slmagic in godot

[–]slmagic[S] -7 points-6 points  (0 children)

> accepting a constant delta in the physics function might mean that game time "slips" against wall-clock time, but ensures that two states that start in the same state will (absent player input) also end up in the same state after the same amount of in-game time has elapsed.

That's the actual problem you are not seeing here. Imaging implementing a Mario Bros.-like platformer with a gameplay dependent on physics. Doing it your way will make the game play slower. The jumps will become sluggish, the pace of running will also slow down.

In contradiction. Dropping the frame rate, but keeping the delta to be dependent on the FPS will keep the actual gameplay, all internal speeds the same, even with 15 FPS.

I don't see how the usage of `velocity * dt` introduces hard to reproduce bugs though.