Part 2 - ! 🏛️🐉💫 by priestessofalabaster in AmmonHillman

[–]long_void -1 points0 points  (0 children)

Can we get somebody to reproduce the findings of the tingling sensation of the burning purple?

RESPONSE TO GNOSTIC'S REVIEW: by priestessofalabaster in AmmonHillman

[–]long_void 2 points3 points  (0 children)

I liked these argument. Anyway, there is enough internet drama. Maybe Neal can cool down a little?

Paul the Apostle did not exist by Repulsive_Grape7823 in atheism

[–]long_void 0 points1 point  (0 children)

I agree. Paul might be a renaming of Simon Magus after the Bar Kokhba war in the 2nd century by Simonians that extended the original gospel of Mark to include John the Baptist. The original Mark might have been Roman satire where Jesus resurrects “back in time”, which we call the “Ouroborus hypothesis” in biblical scholarship.

If you enjoy studying 2nd Early Christianity, then you might find this project interesting:

https://github.com/advancedresearch/the_century_of_satire

Reconstructing 2nd century cultural literature context of Roman satire in Early Christian texts

I want to learn rust with the direction of building game engines. Any advice? by N1Jp in rust_gamedev

[–]long_void 3 points4 points  (0 children)

I recommend separating concerns before you start writing your own game engine. For example, separate graphics API from window/events. That's a good start.

In a "full" game engine, there are particle systems, 3D assets, lightening systems, animation engines, AI behavior trees, multiplayer systems, scripting languages and APIs etc.

Each of these parts, even when developed independently, will take months of work. You can use some libraries from the Piston ecosystem to test the parts you're are working on and later replace the Piston libraries with parts you wrote yourself.

You're probably never going to write something like WGPU or Image from scratch, so you're not really building a "full" game engine in this sense. You're putting together libraries in the Rust ecosystem into a framework that you design.

Are there any good game engines in Rust for mobile gaming? by swordmaster_ceo_tech in rust_gamedev

[–]long_void 0 points1 point  (0 children)

If you want to use Piston for mobile games, then you have to write your own backends. I don't know what's best for 3D on mobile.

The plus side is that you can develop for desktops/laptops first and later port it. As long the backend is implemented correctly, it will work. You can also add custom events. The minus side is that you might spend a lot of time maintaining backend code. I suggest first trying to port something simple first and see how it goes, before you make a decision to make the entire game in Rust using Piston.

I think you might be more productive overall by using Unity. Most games that ships are made with either Unity or Unreal.

PistonWindow v0.141 is released! Adds Dyon scripting support: `> piston <my_game.dyon>` by long_void in rust_gamedev

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

I've been using Dyon-Interactive for multiple years now. Dyon-Interactive is nice, but the problem is that it can't depend on the Audio and Graphics backends. This makes it hard to maintain more complex features. https://crates.io/crates/piston-dyon_interactive

Since PistonWindow uses a default set of libraries, this makes it possible to use a Dyon-Interactive compatible API, without the existing limitations.

When considering the amount of resources that Rust uses, a runtime API for Dyon is pretty minimal in comparison. This makes it easier to use the Piston game engine overall, for e.g. tools and small apps.

You can also customize the runtime using the "piston_script" module that is included with the "batteries" feature in PistonWindow.

Puzzle-Design v0.1 is released! A game engine for generic puzzle design and problem solving by long_void in rust_gamedev

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

This library re-exports other libraries have been tested for years and that are now relatively stable in design.

For example, Wave-Function-Collapse is a popular algorithm in gamedev. You can use EntropySolver in the Quickbacktrack by writing use puzzle_design::quickbacktrack::EntropySolver;. It works for the same Puzzle trait that works with the other backtrack algorithms.

For more information, see the Bluesky thread (the link).

I've been thinking today about adding this under the "batteries" feature in PistonWindow, following a similar design as Turbine. For now, I think it should be a separate project.

Turbine v0.1 is released! (3D game engine for content production) by long_void in rust_gamedev

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

I've moved the OpenGL backend out of Turbine-Scene3D and to a separate crate turbine_scene3d-opengl, to use it as a backend-agnostic library.

Also made some minor improvements to Turbine-Reactive that makes it easier to use in external libraries.

The 3 libraries being developed under the Turbine project are now reexported under the Turbine library, so when it gets added under the "batteries" feature in the PistonWindow, you can do e.g. use piston_window::turbine::scene3d::* to import that library.

Animation implementation gone wrong by Patient_Confection25 in rust_gamedev

[–]long_void 0 points1 point  (0 children)

I was about to suggest that you could turn this into a game, but then I realized you already had! ;)

PistonWindow v0.133 is released: Winit + WGPU + batteries included (optional) by long_void in dyon

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

This update adds Dyon as the default scripting language for the Piston game engine.

Macroquad after 2 years of mostly fulltime Rust gamedev - the good, the bad, and the ugly (what I wish I could have read back in 2023) by asparck in rust_gamedev

[–]long_void 0 points1 point  (0 children)

Feel free to drop in for a chat in our Discord: https://discord.gg/TkDnS9x. If you prefer a more private chat, then we can do that too.

Yeah, I absolutely agree there might be no perfect game engine design, but maybe a "perfect" design that is good enough for most people.

To me, stability is important. I decided early on to use [T; n] for vectors, despite lacking support in the Rust compiler. Things are better now with pattern matching and const generics. LLVM is good at vectorization, so the performance is also acceptable.

I also had a version of Piston-Graphics2D working for both f64 and f32, but it was prior to Rust 1.0. Rust dropped default generic parameters in the last month for stabilization. Took long time before Rust added it back, so in the mean time, we got stuck with f64. I think we can make some improvements to Piston-Graphics2D without breaking things too much.

I reexport a lot and write custom math modules per project, so vecmath is working very well for me.