Page 5 of 12

Re: Idea: Play Plasma from another engine

PostPosted: Mon Jul 02, 2018 1:44 pm
by dendwaler
incredible Sirius,.... incredible.
This all is far beyond my knowledge, so i hardly can't comment to it
but i hope and feel that you will succeed in what you have in mind.

Do you remember?.....

My memories go back to the day you said to me.
" Ask you Grandpa for a book around Python as a birthday gift ....and you will learn this it a week."

Yes, you did it , and i did not...because Python was not invented those days when my grandpa was around.

To me, you definitely are the promise of the new generation.

Re: Idea: Play Plasma from another engine

PostPosted: Sat Jul 07, 2018 8:50 am
by Sirius
That's very kind, Dendwaler. I appreciate it :)

dendwaler wrote:My memories go back to the day you said to me.
"Ask you Grandpa for a book around Python as a birthday gift ....and you will learn this it a week."

Yes, it seems a bit silly now that I think about it :P The story about my grandfather giving me a Python book for my Uru programming was true though. We've all come a long way since then...


Anyway. The Plasma loader and Python engine are running pretty good, I'll improve them bit by bit later.
For various reasons I need now to work more on the interfaces (continue the KI, make a main menu and avatar selection, etc). I dusted off Tweek's designs to gather some ideas :P
Those are going to be drastic changes from the originals... Uru won't need a launcher anymore as everything will be built-in.
Here is a small sample:
Show Spoiler

Oh, and yeah, modding support. "Mods" are used to inject custom content into the game. I'll use those for Age-specific bugfixes, mostly.
But if people other than me are interested in creating stuff for Unity, they will be able to load custom content using mods. That includes custom Ages or modifications to Cyan's own.
At a later time, this will be paired with a custom UruAgeManager designed specifically for Unity mods, allowing you to download and install mods while you're playing. That will be pretty sweet.

Re: Idea: Play Plasma from another engine

PostPosted: Sat Jul 07, 2018 10:41 pm
by Tallonenx
It's been a while, but I just had to say- you've done some fantastic work here!
I remember when a certain someone got Ahnonay to run in unreal...
Looks good in unity too, and these fixes you are making are amazing.

This looks like the most promising headway I've seen in some time.

Ive always dabbled in making my own ages and hacking Uru since the COBBS days,
but this looks like something transformative.

Im not one much for coding, but is there anything us neophytes can do to support the project?

Re: Idea: Play Plasma from another engine

PostPosted: Sun Jul 08, 2018 4:23 am
by Sirius
Glad you enjoy the look of it so far ! :)

Tallonenx wrote:I remember when a certain someone got Ahnonay to run in unreal...

Yes, that was AndyLegate. He did a few other Ages too. He couldn't release anything as it was copyrighted by Cyan, but that really motivated me to work with non-Plasma engines afterwards.

I wasn't around then, but COBBS days must have been a fun time !

Tallonenx wrote:Im not one much for coding, but is there anything us neophytes can do to support the project?

Feedback, ideas, concepts and opinions are always useful.
So far, the project is just a glorified PRP viewer, but eventually I'd like it to be completely playable. However it won't be a perfect Uru clone either.
While the Ages themselves probably won't change much, things like gameplay and interfaces can be improved to make the game easier to use.
For instance, two of the most annoying things in Uru were scrolling through lists in the KI and having to hold down the right mouse button to look around in first person. Scrolling can now be done using the mouse wheel, and the right mouse button is now a toggle (like in Myst 3 and 4). You can still move using left-click, or WASD. So if there is something that bothers you in Uru, don't hesitate to speak about how it could be improved.

And then there are more complex questions, like in which Age to start (the Cleft or Relto), how should multiplayer be handled (most notably instancing - multiplayer will probably be LAN-only at start), how to handle third-person controls (I'm not really fond of how the game locks your camera), whether and how Myst V Ages should be available directly in Uru, etc.
Although originally not meant for this project, Tweek wrote a few interesting articles on the subject:
Login interface
Instancing
Cleft and Descent
(just to name a few)

I use those as inspiration and will try to get the better balance to fit everyone's taste. This will be the real improvement over Plasma, IMHO (this, and moddability).

Re: Idea: Play Plasma from another engine

PostPosted: Sun Jul 08, 2018 9:28 am
by Tweek
I never liked the change to the game starting in Relto. I get why they did it in a sense but I didn't care for it.

Those concepts I drew up for interface changes, I really should update them at some point.

Re: Idea: Play Plasma from another engine

PostPosted: Sun Jul 29, 2018 2:21 am
by Sirius
Mark Finch is a madman.

Show Spoiler


Phew, that was NOT a piece of cake ! I thought converting the waveset code would give me a break from the tougher code, but it actually WAS the tougher code.
Still a few bugs left, but it mostly works. I'll shoot a video of it in movement later.
And there is some other cool stuff I'm working on, I'll write about it too 8-)

Re: Idea: Play Plasma from another engine

PostPosted: Sun Jul 29, 2018 2:29 am
by Deledrius
You have stared into the madness, you have come to harness it, and it did not consume you.

Re: Idea: Play Plasma from another engine

PostPosted: Sun Jul 29, 2018 3:54 am
by Luna
O.o That looks really cool although knowing Unity I worry a bit about performance. I would love to check the code though, to see how you pulled it off.

Re: Idea: Play Plasma from another engine

PostPosted: Sun Jul 29, 2018 4:56 am
by Sirius
Deledrius wrote:You have stared into the madness, you have come to harness it, and it did not consume you.

Yeeeaaaah... I wouldn't bet on that.
However I'm still writing shader code in regular glsl instead of assembly, so maybe I'm not completely mad.

Oh wait. I'm making a moddable Plasma emulator. No I'm not. HALPZ !

Anyway. Small improvements:
Show Spoiler

Edge-blending where the mesh meets a solid one, and refraction of the underwater image ! Yeah ! 8-)
(I also wanted to add tesselation and/or parallax mapping, but those don't really work with the complexity of the current shader, so I probably won't)

Luna wrote:O.o That looks really cool although knowing Unity I worry a bit about performance. I would love to check the code though, to see how you pulled it off.

Unity in general is really good when it comes to performances. It really isn't comparable with RMME, if that's what you were thinking about.
Wavesets themselves... I don't know how expensive they are, but I wouldn't worry too much about it. The Unity version uses different programming languages, but mostly work the same, so the performance drop shouldn't be significant on PCs (even with the new improvements I made today, this shouldn't be too bad).

I didn't actually benchmark performance yet because I'm running Unity fully on the CPU, so they were artificially laggy (my room is hot enough without my GPU adding to the heat :) ). I'll run a proper test sometime.

Once I'm done fixing/cleaning the code I'll make it public, so you'll be able to have a look and even test if for yourself. This should complement Denkasen's waveset editor nicely :D

Re: Idea: Play Plasma from another engine

PostPosted: Sun Jul 29, 2018 12:29 pm
by Paradox
Sirius wrote:However I'm still writing shader code in regular glsl instead of assembly, so maybe I'm not completely mad.


Heeeeyy, so I've been working (very irregularly) on porting Plasma to OpenGL with a plGLPipeline, and figuring out how to turn fixed-function DirectX behaviour into GLSL shaders has been an... adventure. Wavesets (and bump-mapping, and env bump luminance mapping) are still on my to-do list, but your shaders might be useful as a starting point depending on how closely they map back to the original plShader code. I wasn't especially looking forward to porting assembly pixel shaders to GLSL ;)