Fyrox Game Engine 0.29
fyrox.rs
fyrox.rs
I recently used Tiled with RpgMaker and it feels like 2d sprite / tile editors are a solved problem. I also notice how 3d game engines note that they can also support 2D games. That space seems quite saturated and investing into 2D features seems like scratching one own’s itch. It feels like there is more upside to going all in on the 3d aspect, but potentially the 2D elements are quick to implement features to add to an engine’s laundry list of features.
Unity and Godot do support 2d games development, so Fyrox, attempting to be a competitor in that space, supports it as well.
It's definitely going to take a lot of work, but the feature itself seems a modern standard, to me.
When I gradutated, writing a particle engine was a subject complex enough for graduation project, nowadays it is a bullet point on an engine feature list.
Rather than Unity and Unreal, I feel like we should have:
1. Game engines for 3D level based pre baked games 2. Game engines for procedurally generated 3d games 3. Game engines for isometric 3d rpg games 4. Game engines for 2d top down rpg games 5. Game engines for 3d space games
and so on
Some of these exist! Especially number 4, some people have build #3 but they did it on top of Unity, so you are still waiting 10 minutes for massive Unity stuff to load all the time.
It is the "Aurora Toolkit" from Neverwinter Nights.
As far as I know the only game that used it that is not from Bioware or Bioware-related companies is Witcher 1, that wasn't isometric anyway. (also I am not sure why they used that engine... since the game doesn't use Aurora Toolkit strenghts in any form...)
Neverwinter Nights was a full 3D engine but the gameplay and controls were clearly descended from Infinity Engine ,at least the first game... (I didn't play the second to be sure).
So it could do a 3D "Isometric", if you wanted to. As far as I know it is the only dedicated 3D RPG engine that wasn't intended to be controlled as third person "shooter" style controls.
Unity3D is still the defacto for most gaming studios and I agree with the first point that the game engine space is very saturated. Still I admire all the work and great 2D engines can render faster on specific hardware (cocos2D was a good example)! I say focus on one niche and build better integrated tools for that niche.
I’m not an expert in game dev but I keep scratching my head on the concept Rust game engines. The above statement is about optimizing for the wrong things, IMO. I want simple and fast development loop. It’s why Lua is so great for game dev and why there’s so many custom scripting languages. Maybe Rust game engines need to expose their API using a scripting language rather than Rust.
Of course, there’s plenty of game engines and plenty of room for experiments, so I’m delighted to see another.
Would love to hear from others who develop games on how they feel about writing one purely in Rust.
Is the person looking to choose an engine a hobbyist, hopeful indie, tech lead for a team? Is the project content driven or very procedural? What’s the timeline? Are there resources to dedicate to significant tooling, or handling cross-platform insanity?
List goes on of course. But my highly opinionated answer to your question is the only people using a rust game engine are hobbyists and hopeful indies who aren’t on a time crunch.
I feel like "Crunch" is sort of baked into a certain business model anyway, and the type of management that relies on it would probably find other ways of creating aggressive and unachievable last minute goals.
Crunch is a management problem, programming language details won't help in this regard (and the entire role of programming languages in game development seem way overblown in the comments here anyway - you pick an engine mainly for the artist workflows it provides, and then use whatever programming language that engine supports best).
I think Rust can play a similar role as C++ in driving the actual game engine code which is more static but I don't think writing the actual game logic in it plays to its strength. For that more dynamic languages with faster iteration times shine.
As for crunch time, that is a organizational problem, there will be not technical fix for that.
Also the build loop on Bevy is pretty good from what I've seen, esp if you enable the dynamic linkage flag in development. The ECS system is really well thought out even if the engine is a bit sparse I think it shows a lot of promise to build a highly efficient game loop.
[edit] I also just noticed your comment further down about TS and Pixijs... and I'm debating whether to go the HaXe+OpenFL to many targets route, or use the TS toolchain just for OpenFL to javascript. My last experiment with this was trying to port ASWing to JS via HaXe, that's how old I feel! But I heard that the OpenFL JS target was at least originally built on top of Pixijs (which I adore, and has been my go-to for canvas/webgl interaction in recent years).
They also plan to eventually use NativeAOT as part of the .NET Core migration to further go down that path.
Unity has been one of the reasons why C# has gotten so much better for low level coding since version 7, alongside feedback from Midori experience and wanting to win Techempower benchmarks.
- Mentioned here by its creator: https://news.ycombinator.com/item?id=24984942
- Here by a team member: https://github.com/bevyengine/bevy/issues/2352
- And here, under "Turtles all the way down", in a roundabout way: https://bevyengine.org/news/introducing-bevy/#why-build-bevy
As an aside, there's https://github.com/StarArawn/kayak_ui that seems nice, but I've not actually used it, so I can't vouch for it.
Additionally I see a possible future with automatic memory management + linear types for low level coding, like Haskell and Swift are looking into, as more interesting.
The sweet spot of productiviy of automatic memory management, with the control of type system for low level coding, if really needed.
And most stuff SS14 devs are trying to enforce in their custom C# engine comes for free in Rust. ECS? Mandatory. Systems can't store state? By design in Bevy - systems are functions. Components need to be ported from class to struct? In Rust you don't have to choose.
That said some issues like faster iteration and sandboxing might make more sense for a C# engine, but so far there wasn't some huge obstacles for developing other kinds of games.
> Would love to hear from others who develop games on how they feel about writing one purely in Rust.
I've only made a few toys/concepts in Bevy and loved it, but there's been a few (two, I think?) Bevy jams with games hosted on itch.io (you can play most of them in the Browser thanks to WASM). I think the consensus in general is that people love the experience, even though it's fairly more lower level than any of the popular alternatives.
> Maybe Rust game engines need to expose their API using a scripting language rather than Rust.
I think this is the plan eventually, just not a priority, since more fundamentals need to be taken care of. Bevy already added some foundational work for scripting, but Bevy has a BYO Scripting Language plugin philosophy. So, you won't be locked into a scripting language of choice when using Bevy
Will keep an eye on it, thanks for sharing.
Fyrox 0.25 Feature Highlights - https://news.ycombinator.com/item?id=31386739 - May 2022 (13 comments)
So I think is important to explicitly tell which technologies are you using in a game engine.
Although you might say that there is still the C++/Rust code of the browser rendering engine to take into account.