Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Can we actually make piston into a game engine? #1278

Closed
Raj2032 opened this issue Mar 1, 2019 · 2 comments
Closed

Can we actually make piston into a game engine? #1278

Raj2032 opened this issue Mar 1, 2019 · 2 comments

Comments

@Raj2032
Copy link

Raj2032 commented Mar 1, 2019

At the moment piston is just a bunch of libraries, and it doesn't offer GUI game editor, like Godot and Unity.

Can we in the near future implement a full GUI game engine?

@bvssvni
Copy link
Member

bvssvni commented Mar 1, 2019

There is a project for this already: https://github.com/pistondevelopers/turbine

The problem is that the GUI isn't the game engine. You need an architecture first. At the moment Turbine is searching for the right architecture for the editor, which is done by researching homotopy maps for reactive programming (homotopy maps are functions of type R^N -> T. At the rendering side, it is clear that frame graphs are the right direction. Perhaps we'll reuse parts from the Amethyst project, like Rendy, instead of building our own. These libraries are tested in other projects before starting to build the GUI. Testing libraries in other projects is very common in the Piston project.

Piston uses a modular architecture, which means that the GUI might consist of libraries to build GUI designed for specific projects. People use whatever works for them. For example, I use Dyon as scripting language and find that I don't need GUI that much.

I've tried Godot, but I found that a lot of tasks were just things you could do with scripting.

Turbine is mostly a research project to do stuff that you can't do easily through scripting. The way I see it, there is no point in trying to copy other game engines, since it's very hard to catch up in features and they are very accessible.

If you are interested in a game engine in Rust that isn't as much research focused as Turbine, then I recommend checking out Amethyst.

The alternative is to figure out what kind of game you want to make, and then choose the set of libraries/tools that serves that purpose. This is probably more efficient that trying to build a GUI for a game engine without knowing what you want to make.

@bvssvni
Copy link
Member

bvssvni commented Jan 17, 2023

The only project from Turbine that I use now is https://crates.io/crates/turbine_scene3d

There is also another alternative now, Fyrox, which has a built-in editor: https://crates.io/crates/fyrox

Bevy is a game engine that supports plugins: https://crates.io/crates/bevy

I'm gonna close this, since my goal for Piston is a small but stable modular engine that I can experiment with. There is nothing that prevents people from building a full GUI game engine on top of Piston, but this is such a time consuming project that I find it better to do mathematical research instead. There are also several new GUI libraries that pops up for Rust now, which supports custom backends (e.g. use Piston underneath). Overall I think that GUI support in Rust will continue to improve and that the major work that will pay off in the long run is in independent libraries (renderers etc.).

If you take a look at recent downloads at crates.io, the more popular game engines are:

  • SDL2: 90 736
  • Bevy: 86 657
  • Piston: 50 740

However, if you look at independent libraries, the recent downloads are much higher:

  • Image: 1 436 954 (this started under PistonDevelopers)
  • Winit: 496 365
  • WGPU: 288 898

It is kind of obvious from these numbers that game engines are not as important as developing independent libraries. The design philosophy of Piston has always been to support development of modular libraries, not to promote a game engine (since we don't make money from that). The majority of the payoff, seen from the perspective of developers, comes from the ecosystem with libraries that can be used in any project.

Closing.

@bvssvni bvssvni closed this as completed Jan 17, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants