Would a Second Life-type virtual world set in space be redundant?

aliensalmon

Member
Joined
Sep 20, 2018
Messages
64
It would be like Dual Universe but less focused on voxels and more on prims, mesh, and stuff like that. There would also be less of a focus on PvP and other game elements and more on avatars, socialization, creativity and expression. Instead of SL's 2D plane world, you can explore and own property on both round planets and space itself.

I mean, I've wondered like Second Life would be like in a more space/sci-fi environment, but you can kinda simulate it in SL already, and like with the aforementioned Dual Universe, it might be redundant....
 
  • 1Like
Reactions: WeFlossDaily

Argent Stonecutter

Emergency Mustelid Hologram
Joined
Sep 20, 2018
Messages
7,574
Location
Coonspiracy Central, Noonkkot
SL Rez
2005
Joined SLU
Sep 2009
SLU Posts
20780
llSetGravityForce(llGetOwner(),<0.0,0.0,-9.8>);

Or maybe:

llSetGravityForce(llGetOwner(),<0.0,0.0,0.0>);
llSetAvatarRotation(<0.0,0.0,0.0,0.0,1.0>);
llSetAnimation(zero_gee_relaxed1);
 
  • 1Like
Reactions: aliensalmon

WolfEyes

Well known member no one knows
Joined
Sep 20, 2018
Messages
4,502
SL Rez
2004
Joined SLU
2009
It would be like Dual Universe but less focused on voxels and more on prims, mesh, and stuff like that. There would also be less of a focus on PvP and other game elements and more on avatars, socialization, creativity and expression. Instead of SL's 2D plane world, you can explore and own property on both round planets and space itself.

I mean, I've wondered like Second Life would be like in a more space/sci-fi environment, but you can kinda simulate it in SL already, and like with the aforementioned Dual Universe, it might be redundant....
Redundant? Not in my book. You described what I want. It's why I dink around with Empyrion: Galactic Survival.
I play in single player because I mostly build, farm and explore rather than fight.
 

WeFlossDaily

Occasional Lurker
Joined
Oct 26, 2024
Messages
364
I just wish the sky would darken the higher you get, as if going into space.
I thought this was a cool idea and decided to make a scripting challenge out of it for fun.
It's pretty simple, uses RLV, and is probably a bit verbose.
A TVP dev could totally build something like this----but better----into a viewer if they wanted to.
I don't know how to script with experiences, but I assume that could be done also.
If anybody knows how to make this better, please share. =]

C-like:
string preset_a = "midday";
string preset_b = "midnight";

integer space = FALSE;

default
{
state_entry()
    {
    llSetTimerEvent(30.0);
    }
    timer()
    {
    vector pos = llGetPos();
    float Z = pos.z;
        {  
        if (Z < 1000.0)
            {
            if (space == FALSE)
                {
                llSetTimerEvent(30.0);
                return;
                }
                else
                {
                if (space == TRUE)
                    {
                    llOwnerSay("@setenv_preset:"+ preset_a  +"=Force");
                   space = FALSE;
                   llSetTimerEvent(30.0);
                   return;
                    }
                }
            }
            else
            {
            if (Z > 1000.0)
                {
                if (space == TRUE)
                    {
                    llSetTimerEvent(30.0);
                    return;
                    }
                    else
                    {
                    if (space == FALSE)
                        {
                        llOwnerSay("@setenv_preset:"+ preset_b  +"=Force");
                        space = TRUE;
                        llSetTimerEvent(30.0);
                        return;
                        }
                    }
                }
            }
        }
    }
}
 
Last edited:

Casey Pelous

Senior Discount
VVO Supporter 🍦🎈👾❤
Joined
Sep 24, 2018
Messages
3,294
Location
USA, upper left corner
SL Rez
2007
Joined SLU
February, 2011
SLU Posts
10461
So you gamify the platform, see, and the end boss is this evil guy who has slaves digging emeralds for him to finance his space ventures and ..........

Whoa --- deja vu .......
 

Noodles

The sequel will probably be better.
Joined
Sep 20, 2018
Messages
6,175
Location
Illinois
SL Rez
2006
Joined SLU
04-28-2010
SLU Posts
6947
So you gamify the platform, see, and the end boss is this evil guy who has slaves digging emeralds for him to finance his space ventures and ..........

Whoa --- deja vu .......
The Lindens already defeated the Emerald Guy years ago. Emerald Viewer became Phoenix then Firestorm I think.
 

WeFlossDaily

Occasional Lurker
Joined
Oct 26, 2024
Messages
364
If SL was like a gamey-game, the bosses and enemies would be totally insane. I can see it now: I have to battle my way through a giant BDSM dungeon covered with dick advertisements and men who want to say hello and ask how I am doing. There's a wizard with a rainbow codpiece that is hopefully my friend, unless he turns out to be crytomancer. And all of this is because I just want to get to Mouse World, which I've heard is RIP. I'll pass on the Mediterranean Splendor DLC, though. Too pricey. It'd be like playing Dark Souls on hella drugs or something. I don't need to think about this. I'm in.
 
  • 1LOL
Reactions: aliensalmon

GoblinCampFollower

Well-known member
Joined
Sep 20, 2018
Messages
5,550
SL Rez
2007
Redundant? Not in my book. You described what I want. It's why I dink around with Empyrion: Galactic Survival.
I play in single player because I mostly build, farm and explore rather than fight.
I haven't played Empyrion in a long while but certainly loved it. Part of why I haven't gotten back into it is because I know some of my old blueprints need to be totally reworked for the recent (since I played) updates.
 

Soen Eber

Vatican mole
VVO Supporter 🍦🎈👾❤
Joined
Sep 20, 2018
Messages
3,976
My take: with diagnostics and formatting for clarity:
C-like:
integer _boundary = 500;
float   _interval = 10;
vector  _cur_pos;
vector  _pre_pos;

integer in_space() {
    return(above(_cur_pos.z));
}
integer below(float h) {
    return(h < _boundary);
}
integer above(float h) {
    return(h >= _boundary);
}
string eval2(integer b1, integer b2) {
    string s;
    if (b1) s = "Y"; else s = "N";
    if (b2) s += "Y"; else s += "N";
    return s;
}
default
{
    state_entry() {
        llSetTimerEvent(_interval);
        _cur_pos = llGetPos();
    }
    timer()
    {
        _pre_pos = _cur_pos;
        _cur_pos = llGetPos();
        if (below(_cur_pos.z)) llOwnerSay("now below");
        if (above(_cur_pos.z)) llOwnerSay("now above");
        string eval = eval2(
          above(_pre_pos.z),
          above(_cur_pos.z)
        );
        llOwnerSay(eval);
        if (eval == "YN") llOwnerSay("@setenv_preset:midday=Force");
        if (eval == "NY") llOwnerSay("@setenv_preset:midnight=Force");
        if (in_space()) llOwnerSay("you are now in space");
        else llOwnerSay("you are now below space");
    }
}
without diagnostics, the timer code is:
C-like:
    timer()
    {
        _pre_pos = _cur_pos;
        _cur_pos = llGetPos();
        string eval = eval2(above(_pre_pos.z),above(_cur_pos.z));
        if (eval == "YN") llOwnerSay("@setenv_preset:midday=Force");
        if (eval == "NY") llOwnerSay("@setenv_preset:midnight=Force");
    }
}
(saves 8 lines)

Every time you save a value state you introduce a risk of logic errors whenever the values that state is based on changes, which is why I changed "space" from a value to a function - to make sure I was working with correct assumptions.

My use of eval2() is a trick I developed to collapse complex conditional logic, to make the code easier to read and less error prone. It REALLY simplifies things when you're working with multiple conditions and can be extended to eval3, eval4, ... etc.

pre & cur values make it more obvious when comparing a "before" value with a "current" value

prefixing a _ is just a convention I use to denote globals. The "g" prefix just looks clumsy to me for some strange reason, and it's easier to notice the underline when scanning code.

EDIT: found a bug. Code presupposes an avatar is initially ground level, and if they start above the space boundary the environmental preset is never changed. state_entry should add a condition to check for the avatar starting above or below the space boundary height and set the environment accordingly for each.

EDIT: you can get rid of the eval2 functionality and just use the in_space() function on each timer call to set the environment. Still, it's a neat trick, especially when conditional logic gets all tangled.

EDIT: adding a 2nd boundary value would let you graduate the effect to midday -> evening (or morning) -> midnight
 
Last edited:

Rose Karuna

Childless Crazy Cat Lady
VVO Supporter 🍦🎈👾❤
Joined
Sep 24, 2018
Messages
2,473
Location
Central Florida
SL Rez
2005
Joined SLU
2007
Fighting is not my thing either but I'd love to see a world where I can teleport to different planets, visit bars and shopping and walk around and get very different environmental experiences. Just to see the imagination of what people come up with would be fascinating.
 

Soen Eber

Vatican mole
VVO Supporter 🍦🎈👾❤
Joined
Sep 20, 2018
Messages
3,976
Fighting is not my thing either but I'd love to see a world where I can teleport to different planets, visit bars and shopping and walk around and get very different environmental experiences. Just to see the imagination of what people come up with would be fascinating.
Niven's "Known Space" really, REALLY needs to be a virtual verse I can explore. I would so love to see that.
 

Argent Stonecutter

Emergency Mustelid Hologram
Joined
Sep 20, 2018
Messages
7,574
Location
Coonspiracy Central, Noonkkot
SL Rez
2005
Joined SLU
Sep 2009
SLU Posts
20780
The authentic Known Space experience includes spending weeks in Hyperspace between planets.
 
  • 1Like
Reactions: aliensalmon

WolfEyes

Well known member no one knows
Joined
Sep 20, 2018
Messages
4,502
SL Rez
2004
Joined SLU
2009
I thought this was a cool idea and decided to make a scripting challenge out of it for fun.
It's pretty simple, uses RLV, and is probably a bit verbose.
A TVP dev could totally build something like this----but better----into a viewer if they wanted to.
I don't know how to script with experiences, but I assume that could be done also.
If anybody knows how to make this better, please share. =]

C-like:
string preset_a = "midday";
string preset_b = "midnight";

integer space = FALSE;

default
{
state_entry()
    {
    llSetTimerEvent(30.0);
    }
    timer()
    {
    vector pos = llGetPos();
    float Z = pos.z;
        { 
        if (Z < 1000.0)
            {
            if (space == FALSE)
                {
                llSetTimerEvent(30.0);
                return;
                }
                else
                {
                if (space == TRUE)
                    {
                    llOwnerSay("@setenv_preset:"+ preset_a  +"=Force");
                   space = FALSE;
                   llSetTimerEvent(30.0);
                   return;
                    }
                }
            }
            else
            {
            if (Z > 1000.0)
                {
                if (space == TRUE)
                    {
                    llSetTimerEvent(30.0);
                    return;
                    }
                    else
                    {
                    if (space == FALSE)
                        {
                        llOwnerSay("@setenv_preset:"+ preset_b  +"=Force");
                        space = TRUE;
                        llSetTimerEvent(30.0);
                        return;
                        }
                    }
                }
            }
        }
    }
}
Sorry nope. Even after 20 years of SL I still will not use RLV.
 

WolfEyes

Well known member no one knows
Joined
Sep 20, 2018
Messages
4,502
SL Rez
2004
Joined SLU
2009
I haven't played Empyrion in a long while but certainly loved it. Part of why I haven't gotten back into it is because I know some of my old blueprints need to be totally reworked for the recent (since I played) updates.
Been a long time since you've had to worry about updating your builds due to dev updates. Not since beta days.
 
  • 1Like
Reactions: aliensalmon

Soen Eber

Vatican mole
VVO Supporter 🍦🎈👾❤
Joined
Sep 20, 2018
Messages
3,976
Been a long time since you've had to worry about updating your builds due to dev updates. Not since beta days.
While LL does everything it can to make scripts backwards compatible, some of the new functions add quite a lot to making scripts more efficient and less bloated. For example, it used to be common to put scripts into every prim for changing attributes like scale, color, texture, etc, but now all of that can be done from root with functions accepting link numbers and faces as arguments, dramatically cutting down script lag.
 
  • 1Useful
Reactions: Rose Karuna

WolfEyes

Well known member no one knows
Joined
Sep 20, 2018
Messages
4,502
SL Rez
2004
Joined SLU
2009
While LL does everything it can to make scripts backwards compatible, some of the new functions add quite a lot to making scripts more efficient and less bloated. For example, it used to be common to put scripts into every prim for changing attributes like scale, color, texture, etc, but now all of that can be done from root with functions accepting link numbers and faces as arguments, dramatically cutting down script lag.
Not sure how that relates to Empyrion but ok. :unsure: