Jump to content

Question for viewer developers


You are about to reply to a thread that has been inactive for 370 days.

Please take a moment to consider if this thread is worth bumping.

Recommended Posts

So, I have some experience in coding LSL, Swift and a little PHP.

I want to start looking into developing my own viewer, not for public use per say, I just want some features added that no one else seems interested in doing, but I think would be pretty neat. I have tried suggesting to LL or TPV developers and no one seems interested in improving the scripting window, so I want to do it myself.

However, I am not entirely sure, beyond learning C++, what else I would need to start modifying my own viewer.

Can one of the viewer developers give me a break down of things I should learn and things that, might not be necessary, but would be very helpful if I was to cover it?

  • Like 1
  • Thanks 1
Link to comment
Share on other sites

This is a massive project.

Using VSCode or Kate or any other mature feature rich editor isn't. It's one line in a debug setting that results in a massive feature set with UI controls and capabilities the SL viewer simply doesn't have.

This isn't just a matter of learning some C++. It's learning the viewer and the UI system & capabilities offered in the viewer. You will have to craft new UI controls using the viewers existing systems from whole cloth. There are no shortcuts or drop in alternatives or documentation.

Get the viewer source and figure out how it works. The long way. There isn't really anything I can say that will help you hit the ground running.

Most people start by making small adjustments to existing UI and learning why that doesn't work, can't work or just breaks everything.

  • Like 2
Link to comment
Share on other sites

It's a big job. A good way to start is to download the Firestorm sources and build Firestorm on your own machine.

You need to know C++ reasonably well, and become good at reading C++ written by others. Most of the work is reading code, finding out where things are, and understanding the data structures. The viewers are classic C++; if you have Strostrup's book, you're good.

  • Like 2
Link to comment
Share on other sites

Coffee isn't kidding about the lack of documentation. My favorite part about reading the viewer's source code is running into comments from the early 2000s warning about the following code being a hack/workaround... and it's still there.

Just like with LSL/PHP, small steps will help getting you up to speed with how things work. It helps even more to focus on just one part/feature of the viewer at a time, it's gonna take a long time before you have enough general understanding of how everything works together.

Edited by Wulfie Reanimator
  • Like 1
Link to comment
Share on other sites

  • Lindens
49 minutes ago, Wulfie Reanimator said:

My favorite part about reading the viewer's source code is running into comments from the early 2000s warning about the following code being a hack/workaround... and it's still there.

We use a lot of load-bearing posters in our work.

  • Haha 4
Link to comment
Share on other sites

4 hours ago, ItHadToComeToThis said:

I have tried suggesting to LL or TPV developers and no one seems interested in improving the scripting window, so I want to do it myself.

This looks quite a bit like this feature request.

And I gave the possibility for this person to implement it via Lua (I extended the Cool VL Viewer Lua features so that it is now possible, and rather easy, for a scripter)... No reply from them so far...

Link to comment
Share on other sites

1 hour ago, Henri Beauchamp said:

This looks quite a bit like this feature request.

And I gave the possibility for this person to implement it via Lua (I extended the Cool VL Viewer Lua features so that it is now possible, and rather easy, for a scripter)... No reply from them so far...

Tbh I completely forgot about that, my apologies, but in my defence I have suggested ideas multiple times to more than just you. Plus, the features I want to add extend beyond that single request. That particular idea is one of a few and one that sticks out strongly in my mind.

I will definitely look into Lua in TCV though, thank you for the suggestion.

I have been curious about viewer development for a while and figured that I might as well give it a go and learn. What's the worst case scenario? I decide it's not for me and I pick up a few extra skills along the way.

Edited by ItHadToComeToThis
  • Thanks 1
Link to comment
Share on other sites

You are about to reply to a thread that has been inactive for 370 days.

Please take a moment to consider if this thread is worth bumping.

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
 Share

×
×
  • Create New...