mrwonko / TheseusJA

How much of Jedi Academy can I replace before it stops being Jedi Academy? Let's find out!
GNU General Public License v2.0
4 stars 2 forks source link

Meta level format / material simulation / destruction / level editor #19

Open mrwonko opened 3 years ago

mrwonko commented 3 years ago

Make it volumetric? Define 3D materials that programmatically fill space to enable lightsaber destruction while likely also making merging easier. Incompatible with lightmaps, though.

We can also define (and simulate) vehicles this way?

Inb4 Totally Accurate Star Wars Simulator

Material editor needs destruction preview. Provide looping Anakin lightsaber twirl animation for testing with memes.

If I build all these real-time tools, I might as well let players build in-game. I need to persist changes anyway.

mrwonko commented 3 years ago

Recursive Tileset Editor for materials. Export for 3D printing.

Support different kinds of tesselation, see also https://en.m.wikipedia.org/wiki/Honeycomb_(geometry).

mrwonko commented 3 years ago

Node-based material system for procedural user-generated 3d textures, and more generally for procedural parametric geometry generation. (Can be controlled via midi (#13))

uvw coordinates per vertex.

mrwonko commented 3 years ago

Ultimately the physics system should include Cloth simulation, maybe do that as a vertical slice for early impact?

mrwonko commented 3 years ago

To enable large-scale destruction (crashing a Star Destroyer into Coruscant while other players try to escape in the streets on speeders) use hierarchical LOD system (nodes grouped into meta-nodes) where meta-nodes approximate the physical properties of their contents (customizable) and the contents can later be adjusted on-demand when players/NPCs are around to see them. (That's also when the hierarchical nav-mesh updates, which coincidentally simulates NPCs learning about the changes to geometry. Meta-Node derive their shape from tessellation / are the tessellation.

mrwonko commented 3 years ago

On lightsaber destruction (see also #2): could also be extended to characters. Lightsaber dismemberment is popular.

Could have realistic mode where lightsabers always cut through most materials (like flesh and bone), but that has extensive and somewhat disturbing gameplay and content implications.

Should every lightsaber wound be fatal? Presumably not. Do NPCs (and players!) behave like the knight in Monty Python's Holy Grail as they continue to lose limbs? Do they run? Does it vary from character to character? Either way, procedural animation might be needed. Do we simulate organs and their destruction? That would open the interesting possibilities of cybernetic replacements, and NPCs returning with those in a don't-call-it-Nemesis-system (emergent stories) (#75).

On the other hand I don't want to simulate dangling entrails? But some will want to. Needs to be optional/customizable. I don't really want to encourage players to precisely butcher their enemies with brutal efficiency, at least not the humans? Though there is a bizarre appeal in learning and mastering the anatomy of your victims. And if I'm going to do rope physics for grappling hooks, I might as well use it for entrails… Could allow use of force to identify weak spots. I feel like I don't want to be the one to model all the veins to simulate blood splatter (thankfully lightsabers cauterise), but the systems could be general enough to allow players to implement that?

Same system could be used for fuel lines etc. in vehicles.

The modelled organs and bones (and joints and muscles? Could use those for IK and deformation!) should be reusable across models of the same species. Should adjust automatically to shape of model, maybe with option to make manual changes as well?

Would then have to teach NPCs to decide whether to aim for non-lethal wounds.

Simulated organs also enable the classic "kill the giant monster from the inside" verb.

mrwonko commented 3 years ago

Liquid and smoke simulations as well as the sound engine could use the voxel system for geometry, too. One unified system.

Once liquids come into the mix, melting metal with lightsabers is not far off. Once that tech of there, it could also simulate blowtorches.

But not everything melts. Some things catch fire. But that in turn is a chemical reaction with oxygen from the air, and does not happen in a vacuum. And the fire produces carbon monoxide that suffocates the player and the fire. And suddenly we're talking about a full chemistry simulation. Oof?

Interesting gameplay implications in melting. Could simulate smelting alloys. (Do I just want to build the next Factorio/Infinifactory/…?) Enables forging. And the Terminator ending. And horrific mutilation.

Apply similar hierarchical structure to chemistry simulation. E.g. simulate exothermal fuel reaction in vehicle engine, but simplify it to "engine takes these inputs and produces these outputs" until it's sliced open.

Or just fudge it. Star Wars was never about hard science. Do what enables the best story telling and gameplay.

mrwonko commented 2 years ago

The animation simulation with its bones, joints & muscles should also be suitable for droids. A cool test-case would be an AT-ST that can transform into a mech with a huge gun. j3odvgmmxb821 Which would have different modes with differing constraints on the pose, and the AI.

mrwonko commented 2 years ago

Look into Conflict-free replicated data types for merging distributed modifications.

mrwonko commented 2 years ago

I think if my voxels are convex and not allowed to penetrate one another, they should be fairly simple to sort front-to-back for transparency rendering?

mrwonko commented 2 years ago

In the spirit of remixing (#58) I should enable editing of bsp files even without access to the .map file. Particularly since I need that myself to make the vanilla maps VR and co-op compatible.

mrwonko commented 1 year ago

Cells need to be capable of

mrwonko commented 1 year ago

In movie blade duels, one popular dramatic effect is withholding the outcome briefly, only showing blood spray / cuts after a delay. I'm not sure delayed feedback is a good idea gameplay-wise, so there might still be an immediate damage indicator, but I like the idea of a mode where dismemberment happens delayed, maybe even giving a brief response window where the limb can still be controlled (but too much force detaches it early?).

In terms of gameplay, there could be a special material for "I have been sliced and will come into effect soon" to fill the cuts. Instead of a single material that replaces whatever was sliced, it would have to work more like a modifier, changing physics properties and blending over time. So materials need to be composable.

mrwonko commented 1 year ago

Idea from Discord: As a cloth physics test-case, give Desann a trench coat so he can attack his old school in style

mrwonko commented 10 months ago

Ecoclimates: Climate-Response Modeling of Vegetation might be worth a watch & read for plant & weather simulation.