Join us at the Oolite Anniversary Party -- London, 7th July 2024, 1pm
More details in this thread.

WebGL effort

Information, contacts and source code for ports to Linux, Windows, etc.

Moderators: winston, another_commander

User avatar
0b1
Above Average
Above Average
Posts: 22
Joined: Thu Mar 09, 2023 3:14 pm

Re: WebGL effort revived

Post by 0b1 »

I see it's been several years since the last WebGL effort post, but I am thinking of reviving the effort.
Most of the UI will be done in HTML/JS - except, of course, the 3d stuff. I'm on the fence about the HUD: HTML or WebGL? idk yet...

In the short term, WebGL "Edge" without backward compatibility.
After fighting with the WebGL tutorials, and pounding on keys for 40 hours or si, I've made a start:
1. A script to convert the .dat files into a usable browser-friendly YAML format.
2. A basic ship shader and supporting JS modules, enabling me not to have to rely on the (huge) three.js libraries, at least for now.
3. Correct texturing (but not lighting or other mapping) for the OOlite and Redux Cobra 3s
4. A 100% client-side project that will run in VSCode with the "Five server"

Long term, I'd like to add features that:
(a) let you go back to the original BBC micro version (as verbatim as possible)
(b) other galaxies and features that make it more like Elite Dangerous (docking, multiple planets, exploration, multiplayer)
(Still a very long way to go to even begin to get it to OOlite parity first, though!)

If there are interested parties out there who want to help, let me know!

0b1

(I have a screenshot which I will paste as soon as I figure out how)
User avatar
Cody
Sharp Shooter Spam Assassin
Sharp Shooter Spam Assassin
Posts: 16073
Joined: Sat Jul 04, 2009 9:31 pm
Location: The Lizard's Claw
Contact:

Re: WebGL effort revived

Post by Cody »

0b1 wrote: Sat Mar 11, 2023 3:26 pm
(I have a screenshot which I will paste as soon as I figure out how)
Host it somewhere (Postimage is one such, there are others), then link to it. And welcome aboard!
I would advise stilts for the quagmires, and camels for the snowy hills
And any survivors, their debts I will certainly pay. There's always a way!
User avatar
0b1
Above Average
Above Average
Posts: 22
Joined: Thu Mar 09, 2023 3:14 pm

Re: WebGL effort

Post by 0b1 »

Cody, thanks for the welcome - and the tips!

Here's the screenshot:
Image

Update :a github pages hosted version here:
https://0bone.github.io/obelite/src/index.html

(it doesn't do much, except animate an incompletely lit Cobra III, and let you navigate to nonfunctional start pages)

I don't have a lot of spare time, but I have hope that others will join me. We're one year away from Elite's 40th anniversary. Another tech refresh seems a good way to commemorate!

0b1
Last edited by 0b1 on Sat Mar 18, 2023 5:09 pm, edited 2 times in total.
User avatar
Cholmondely
Archivist
Archivist
Posts: 5128
Joined: Tue Jul 07, 2020 11:00 am
Location: The Delightful Domains of His Most Britannic Majesty (industrial? agricultural? mainly anything?)
Contact:

Re: WebGL effort

Post by Cholmondely »

0b1 wrote: Sun Mar 12, 2023 2:31 am
Cody, thanks for the welcome - and the tips!

Here's the screenshot:
Image

And I have a spottily hosted POC that can be reached here:
https://tinyurl.com/2p8hyce2

(it doesn't do much, except animate an incompletely lit Cobra III, and let you navigate to nonfunctional start pages)

I don't have a lot of spare time, but I have hope that others will join me. We're one year away from Elite's 40th anniversary. Another tech refresh seems a good way to commemorate!

0b1
Impressive start!

Minor quibble - the cobra looks jolly massive on my AppleMac, filling up the screen. Should it be like this? Is it quite the same on your device?
Comments wanted:
Missing OXPs? What do you think is missing?
Lore: The economics of ship building How many built for Aronar?
Lore: The Space Traders Flight Training Manual: Cowell & MgRath Do you agree with Redspear?
User avatar
0b1
Above Average
Above Average
Posts: 22
Joined: Thu Mar 09, 2023 3:14 pm

Re: WebGL effort

Post by 0b1 »

Ah ... that was the 2,000 Ton version of the Cobra.

I shrank it down a bit while I was working on the Ship Library.
In an old unsanded 2x4 kind of way, the ship library is now functional in the Obelite version.
https://0bone.github.io/obelite/src/index.html


State of the ship library so far:
- Displays "all" 40 of the models to some extent or another
- Still only ambient lighting. I need to track down the exact vectors and colors.
- Rotation doesn't match, ships are sized better, but not necessarily to scale.
- Has a BIG workaround: rebuilds the WebGL context between ships. Shouldn't be necessary, but there's a gap in my knowledge.
- Stations are only rendering the first group of triangles; my ship dat yaml creator didn't recognize some of the more unique parts of the geometry.
- I look a liberty and rearranged the library page to maximize reuse

Image


My next adventure is likely to be a galaxtic-equivalent of the Ship library so I can get a good feel for that data before getting into actual gameplay views.

Anyway, thanks for the feedback and encouragement

- 0b1
Last edited by 0b1 on Sat Mar 18, 2023 5:20 pm, edited 2 times in total.
User avatar
Cholmondely
Archivist
Archivist
Posts: 5128
Joined: Tue Jul 07, 2020 11:00 am
Location: The Delightful Domains of His Most Britannic Majesty (industrial? agricultural? mainly anything?)
Contact:

Re: WebGL effort

Post by Cholmondely »

0b1 wrote: Mon Mar 13, 2023 6:21 pm
Anyway, thanks for the feedback and encouragement

- 0b1
Ahem. On my dreaded AppleMac, not only are there the issues with the stations/installations which you mentioned, but the word "Rescue" appears in Mirror Image on the Escape Pod.

I've not yet checked all the ships, I'm afraid.

And you really want to thank me for this? :shock:
Comments wanted:
Missing OXPs? What do you think is missing?
Lore: The economics of ship building How many built for Aronar?
Lore: The Space Traders Flight Training Manual: Cowell & MgRath Do you agree with Redspear?
User avatar
0b1
Above Average
Above Average
Posts: 22
Joined: Thu Mar 09, 2023 3:14 pm

Re: WebGL effort

Post by 0b1 »

That's so the pod passenger can read it from the inside :idea:


And all feedback is welcome. At least I can put it on the master TODO list :)
Last edited by 0b1 on Sat Mar 18, 2023 5:21 pm, edited 1 time in total.
User avatar
0b1
Above Average
Above Average
Posts: 22
Joined: Thu Mar 09, 2023 3:14 pm

WebGL revival - progress

Post by 0b1 »

Made some more progress! Now there is a galactic chart - of sorts

Screenshot of latest feature:
Image

Same demo link as before (https://0bone.github.io/obelite/src/index.html);

Github URL if anyone wants to look at the code progress: https://github.com/0bOne/obelite

Now includes the following extra features:
- Galactic chart, with a few missing items: (galaxy 0 only, no "Find" yet, no planet/system info/preview yet)
- Some notes on the welcome page to explain the state of each feature as it is worked on (TODO, POC, COMPLETE)
- A nodejs tool to convert the planetinfo.plist into galaxy/system yaml (added to source)
- A nodejs "experiment" to generate original elite data. Works except for the goat soup, so not yet included in the app.

My goal here is to build out features to "nominally complete" rather than "production quality". That way, if I run into a terminal roadblock on a basic concept, I won't have wasted a lot of time on getting an earlier feature perfect. Once everything is roughed-in, then I will go back and polish.

A couple of questions for the original developers, if still around:
- Is the post-Elite Oolite data (colors, distances, vectors) procedurally generated offline? If so and we still have them it would be good to generate this data on the fly in the browser (or in a shader program) to save bandwidth and data footprint
- Is the goat soup code available as well? I am missing something in my generator and I ran out of time.
- Are the redux ships used anywhere in the game?

Next steps:
- A planet info View. I want to be adventurous and see if I can generate the planet textures in a shader program (Browsers still aren't supporting WebGL compute by default, so that's avenue is closed, for now: I don't want players to have to set special browser flags to play)
- No game or simulator can ever be considered complete, UNLESS it includes Thunderbird 2, so I have to find a good model and convert it to YAML + texture.
- And I will figure out what's wrong with the Installations' model YAML
User avatar
Cholmondely
Archivist
Archivist
Posts: 5128
Joined: Tue Jul 07, 2020 11:00 am
Location: The Delightful Domains of His Most Britannic Majesty (industrial? agricultural? mainly anything?)
Contact:

Re: WebGL effort

Post by Cholmondely »

Fun, fun, fun!

When I return to the main screen after ogling your library I find the rotating Cobra imposed over the rotating Asp!

And when have a stab at your Galactic chart, the top half of my screen goes blank (with the bottom half of the main screen beneath)!

Again, this is on the dreaded AppleMac.



The goat soup code might be included in the early pre-v.1.79 varieties, as I think that that was when the original code (and the ability to easily change galaxy) was discarded in favour of everything galactic being loaded into the .plist format.
Comments wanted:
Missing OXPs? What do you think is missing?
Lore: The economics of ship building How many built for Aronar?
Lore: The Space Traders Flight Training Manual: Cowell & MgRath Do you agree with Redspear?
User avatar
Cholmondely
Archivist
Archivist
Posts: 5128
Joined: Tue Jul 07, 2020 11:00 am
Location: The Delightful Domains of His Most Britannic Majesty (industrial? agricultural? mainly anything?)
Contact:

Re: WebGL effort

Post by Cholmondely »

Goat Soup on our wiki

Where do these crazy names come from? - and follow the various links...



If you want Goat Soup in your Oolite, try cim's New Cargoes OXP (download: http://cim.sotl.org.uk/games/files/ooli ... _1.2.3.oxz)


Ian Bell's worksheet for the goat soup formula from his vanished archives (Murgh found this and put it up)
Image
Comments wanted:
Missing OXPs? What do you think is missing?
Lore: The economics of ship building How many built for Aronar?
Lore: The Space Traders Flight Training Manual: Cowell & MgRath Do you agree with Redspear?
User avatar
0b1
Above Average
Above Average
Posts: 22
Joined: Thu Mar 09, 2023 3:14 pm

Re: WebGL effort

Post by 0b1 »

Awesome - thanks so much!!
User avatar
0b1
Above Average
Above Average
Posts: 22
Joined: Thu Mar 09, 2023 3:14 pm

Re: WebGL effort

Post by 0b1 »

Finally, I was able to get an arguably passable planet texture generator to work!
Image

Oolite purists might be a little perturbed, but I wanted to dabble in procedural terrain generation, as well as gain the speed benefits of rendering the texture on the graphics card. Also, I didn't want to go to the effort of porting 2k lines of objective C to javascript for results I wouldn't be happy with.

It is all client-side code, so you can view the demo on the GitHub Pages site, here:
https://0bone.github.io/obelite/src/index.html

To get to the planet summary page, go to the galactic chart. Pick a system and hit 'i'.

Shortfalls in the feature so far are:
1. Mercator puckering at the poles. Thought I'd fixed it, but no :(
2. Planet rotates around its east and west poles. Need to restructure how the models are rotated
3. No atmosphere or clouds. I want to do a few experiments before I add those.

It might be a while before I get to do another update. I start a new job on Monday, with a steep learning curve ahead of me. Nights and weekends are likely to be swamped for some time to come.

Cholmondley, thanks again for the Ian Bell artifact. Quite a piece of history. My issue is with the random number generation not giving the right information in some cases. I saw an article saying there was undefined behavior due to the 6502 carry flag being set. I have a few experiments, but I might have to cheat if they don't pan out.
User avatar
timer
---- E L I T E ----
---- E L I T E ----
Posts: 336
Joined: Sat Mar 17, 2012 8:26 pm
Location: Laenin spiv club
Contact:

Re: WebGL effort

Post by timer »

this is cool O_O
Cobra MK III owner since 1994
User avatar
0b1
Above Average
Above Average
Posts: 22
Joined: Thu Mar 09, 2023 3:14 pm

Re: WebGL effort

Post by 0b1 »

Thanks, Timer.

I was wondering if it might get more interest if we had a top-level "WebGL Tech Refresh" board, or something like that? I can't say its a "port" - because some features will behave differently, commensurate with technology changes in the past decade, but hopefully, it will be close enough.

It would be great to have a multiplayer mode, and we could leverage the WebRTC API for multiplayer and social media logins for identity management. That's a long way off, of course, and comes with an infrastructure cost, but a few other ideas:
* in-game creation of computer modules that can do different things
* a plug-in sandbox area where next gen modules (think OXP) can be upvoted/downvoted for permanent inclusion in the game for in-game "royalty" credits. Everything is YAML, JSON, JS or GLSL or a game asset, so modules become easier to write (eventually)
* in-game (unintrusive) ads to generate enough revenue to support a lightweight multiplayer infrastructure
* a paint-shop, where you can spray paint your own ship or upload a decal
* basically, anything that the past decade+ of game experience has thought up but not been able to implement

I know the board has become quiet since COVID, but a refresh might revive interest and activity
User avatar
timer
---- E L I T E ----
---- E L I T E ----
Posts: 336
Joined: Sat Mar 17, 2012 8:26 pm
Location: Laenin spiv club
Contact:

Re: WebGL effort

Post by timer »

0b1 wrote: Mon Apr 03, 2023 1:03 pm
Thanks, Timer.
Not at all! )
0b1 wrote: Mon Apr 03, 2023 1:03 pm
I was wondering if it might get more interest if we had a top-level "WebGL Tech Refresh" board, or something like that? I can't say its a "port" - because some features will behave differently, commensurate with technology changes in the past decade, but hopefully, it will be close enough.
... u want "top-level" forum topic?
Do you really want to try making a "real port"?
IMHO a "raw" web game will not be able to replace a desktop game in the coming next years... honestly I don't know... but I sure with the help of WebGL we can improve the ooniverse - just move part of the game enviroment to online... I can't explain exactly now :(
0b1 wrote: Mon Apr 03, 2023 1:03 pm
It would be great to have a multiplayer mode, and we could leverage the WebRTC API for multiplayer and social media logins for identity management.
maybe - conversation and some actions? IMHO in beginning not battles, but some game interactions...
@Cholmondely/@hiran suggested XMPP... maybe we could use that as a base? setup our server?
"social media" - just login with there API?
Server RTC and when game started - sync with "ooniverse real time"? (of course by desire)
Different ideas in head...
0b1 wrote: Mon Apr 03, 2023 1:03 pm
That's a long way off, of course, and comes with an infrastructure cost, but a few other ideas:
* in-game creation of computer modules that can do different things
hm... plz can u describe tiny example?
0b1 wrote: Mon Apr 03, 2023 1:03 pm
* in-game (unintrusive) ads to generate enough revenue to support a lightweight multiplayer infrastructure
integrate to YAH via ajax? ))
0b1 wrote: Mon Apr 03, 2023 1:03 pm
* a plug-in sandbox area where next gen modules (think OXP) can be upvoted/downvoted for permanent inclusion in the game for in-game "royalty" credits. Everything is YAML, JSON, JS or GLSL or a game asset, so modules become easier to write (eventually)
* a paint-shop, where you can spray paint your own ship or upload a decal
* basically, anything that the past decade+ of game experience has thought up but not been able to implement
IMHO some ideas may cause dissatisfaction - any monetization is a very sensitive topic... it could destroy us.
0b1 wrote: Mon Apr 03, 2023 1:03 pm
I know the board has become quiet since COVID, but a refresh might revive interest and activity
Let's try to recover... )

----

I myself was missing from ooniverse for several years, now I'm back, hopefully for a long time ... anyway, I have to stay in touch - domains, servers - everything is at the disposal of the community.
Looks like some of the "oldies" are gone :(
I myself can already say a bygone era (I started with a soldering iron and zx80).
But... who will carry the flag if not us? ))
Let's try something new ;)
Last edited by timer on Mon Apr 03, 2023 6:34 pm, edited 1 time in total.
Cobra MK III owner since 1994
Post Reply