Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - Tendon

Pages: 1 2 3 [4] 5 6 7 8 9 ... 52
46
Suggestions & Requests / Selective Ghosting for Default Blockland
« on: July 31, 2019, 09:11:46 AM »
Making a client aware of too many renderable objects will lag the client.

I can use selective ghosting to remove some unnecessary objects from the list of things to render.

I can use selective ghosting to:
    Create large, complex maps without lagging any clients.
    Create bricks which have an extra layer of impenetrable collision without lagging the client.
    Create 3D gui elements specific to one client.


Badspot, please add the functionality of Selective Ghosting so I can share cool stuff without asking users to download a hacked version of the game.
The source for the selective ghosting DLL can be found here:  https://gist.github.com/Zeblote/c6764e924eadea2bf71165c2d1046ffe

47
Add-Ons / Re: [Static Map] Mario Kart DS: Rainbow Road!
« on: July 14, 2019, 02:33:54 PM »
Neato.  Collision seems to be solid.  That's pretty cool.

LegoPepper found a way to reduce the datablock count on maps like these:
Quote from: LegoPepper on 01/14/2019 @ BCC:StaticTerrainResearch
Code: [Select]
package LoadMapPackage
{
    function GameConnection::startLoad(%client)
    {
        if(!isObject("MapGroup"))
        {
            exec("Add-Ons/Map_Planar_Fields/place.cs");
            MissionCleanup.add("MapGroup");
        }
        Parent::startLoad(%client);
    }
};
activatepackage(LoadMapPackage);

datablock staticShapeData(SSPlaneData)
{
    shapefile = "Add-Ons/Map_Planar_Fields/shapes/Plane.dts";
};

function addExtraResource(%name)
{
    if (MissionGroup.addedResource[%name]) return;
    MissionGroup.addedResource[%name] = "1";
    $EnvGuiServer::Resource[$EnvGuiServer::ResourceCount] = %name;
    $EnvGuiServer::ResourceCount++;
    setManifestDirty();
}

function loadShapes()
{
    %pattern = "Add-Ons/Map_Planar_Fields/shapes/*";

    %file = findFirstFile(%pattern);

    while(isFile(%file))
    {
       // echo("adding " @ %file);
        addExtraResource(%file);
        %file = findNextFile(%pattern);
    }
   
}

loadShapes();

As far as I can tell, this method puts the .dts collision shapes into the environment section of the file manifest(the one used for skyboxes and such).  Then the TSStatic objects you use for collision don't need a datablock anymore.  They just need the client to have downloaded their .dts shape.
That should reduce the datablock count of this map by ~1000.

Also, because you're using transparency, you should split any nontransparent objects such as the pipes off as a separate object.  I think that would help with the pipes clipping through the track.

48
Code: (ineedhands.cs) [Select]
package INeedHandsPackage
{
function Armor::onUnMount(%this, %player, %vehicle, %slot)
{
Parent::onUnMount(%this, %player, %vehicle, %slot);
if(isObject(%client = %player.client))
{
if(%client.rhand)
%player.unhidenode("rHook");
else
%player.unhidenode("rHand");
if(%client.lhand)
%player.unhidenode("lHook");
else
%player.unhidenode("lHand");
}
}
};
activatepackage(INeedHandsPackage);

If you want to lock it to only work when exiting a specific vehicle:
Code: (ineedhands.cs) [Select]
package INeedHandsPackage
{
function Armor::onUnMount(%this, %player, %vehicle, %slot)
{
Parent::onUnMount(%this, %player, %vehicle, %slot);
if(isObject(%client = %player.client)&&%vehicle.getDatablock().getName()$="JeepVehicle")
{
if(%client.rhand)
%player.unhidenode("rHook");
else
%player.unhidenode("rHand");
if(%client.lhand)
%player.unhidenode("lHook");
else
%player.unhidenode("lHand");
}
}
};
activatepackage(INeedHandsPackage);

49
Modification Help / Re: Moving Platform
« on: June 18, 2019, 05:37:39 PM »
Found missing dependency for function "eulerToAxis" in Weapon_Package_Complex/bullets.cs
OP is updated.

50
Modification Help / Re: Moving Platform
« on: June 17, 2019, 12:51:15 AM »
Stream found a dependancy error.  Ill fix that tomorrow.

Im not really intending to expand on this until ive got something i want to make using the tech.  But the next step would be to attach a platform like this to a vehicle.


Physics zones are not supposed to move.  You may get jitter from client prediction if you use applied force.

51
Modification Help / Re: Moving Platform
« on: June 15, 2019, 10:03:50 PM »
It moves a Collision Staticshape, a Detail Staticshape, and a Trigger Zone every 34 ms.  It then loops through all objects inside of the trigger zone.  If the object is above the platform, it teleports and rotates that object with the static shapes.  Because the object's movement is actually independent of the platform, it has to do some math to figure out how the player's movement is affected by the rotation of the platform.


Even in single player there's a noticeable stutter.

52
Modification Help / Moving Platform
« on: June 15, 2019, 06:49:18 PM »
https://www.youtube.com/watch?v=hvAuiJtXKQA

I made a moving platform you can ride.
https:// leopard.hosting.pecon.us/dl/gwbiu/Shape_Keter.zip
https://leopard.hosting.pecon.us/dl/filir/Shape_Keter.zip

53
Gallery / Re: What are you working on?
« on: March 11, 2019, 04:39:30 PM »
A new brickpack, meant to replace the default brickpack.  I dislike how a 1x5 appears after a 1x16, and how the brick icons are inconsistent.  This is my server-sided attempt at fixing that.

So far, I have all of the rectangular bricks done, as those can be automatically generated.
All icon pictures taken and processed.  I've mostly automated that as well.  The pictures are taken via ingame screenshot, with the camera moved far back and zoomed all of the way in.  Then a screenshot w/hud is taken, showing the size of the brick in the corners in a large black font.  These two picture are combined and resized.  In this way, the difference between a 1x14, a 1x15, and a 1x16 can be easily determined by the large black number in the bottom right corner of it's icon picture.
I've made 10 of the rounds, proper collision, proper texturing...  this is where I'm hung up.  Modeling bricks w/proper texturing takes a long time, and making them is boring.

So, about replacing the default brickpack.  The rest of that was just busywork.  Replacing the default brickpack was what I was really interested in.  Here are some rules for this:
1: You cannot just delete the datablocks.  The game prevents this with a message about not deleting datablocks.  I bypassed this by moving the datablocks out of the datablockGroup before attempting to delete them, but... well with just a few, the wrong sounds started playing for various things, and if I did too many, the game would crash.  This was quite a few versions ago, so I don't know if this behavior still applies.
2: BRICK type bricks should be replaced with BRICK type bricks.
3: There are no SPECIALBRICK type default bricks.
4: SPECIAL type bricks should be replaced with SPECIAL type bricks.  Replacing a "SPECIAL" brick with a "BRICK" brick will result in a crash when you try to spawn the brick ingame.
5: The collisionShapeName field must not be cleared.  If it is cleared, the game will crash when you attempt to spawn the brick.
It is my understanding that some invisible flags are set when a fxDTSBrick datablock has certain fields filled, and these flags cannot be unset.
For these reasons, I chose to erase most of the custom fields on these default bricks, and write in my own information.
Brick, category, and subcategory order in the brick menu is determined by datablock creation order.  So: 1x1 brick becomes 1x1 brick, 1x2 brick becomes 1x1x2 wall, 1x3 brick becomes 1x1f plate, 1x4 is 1x2, 1x6 is 1x3, 1x8 is 1x4, 1x10 is 1x5, etc...  The first few default bricks are used to determine brick category order.  What follows is just the normal order of the bricks.

Brick saves use uinames to determine what brick is what.  My brickpack uses the following naming convention: 1x1F, 1x1H, 1x1, 1x1x2.  So it is compatible with saves that use BlackDragonIV's brickpack and halfbricks.  But is not compatible with demian's brickpack(1x1x1, 1x2x1, 1x3x1, etc...).  It also won't work with default ramps.  The ramps I'm making use a 1x1x3 Ramp Up sort of naming, instead of using the ramp angle.  They also won't have that extra stud off of the back.

54
Add-Ons / Re: Gag Mute
« on: January 28, 2019, 07:46:30 AM »
cool.

55
ah, fair maiden, make haste and absist.  it appears we've a troll neath yonder bridge.

56
Help / Re: Some bricks won't load (Security Door)
« on: January 07, 2019, 05:18:31 PM »
It looks like you're also running into the datablock limit, so some of your music is also not loading.

57
Add-Ons / Re: N&C Admin Orbs [Epic Orb]
« on: January 06, 2019, 09:32:00 PM »
Minor update, set velocity to zero when placing a player.

https://leopard.hosting/dl/ajgvx/Script_ColoredAdminOrbsDG.zip

58
I have a theory that we can have a lot of static shapes, but they need to be small.
I don't think that's right.  Almost all issues I've had with static shapes have been the number of them.  Absolute size doesn't seem to do much.

However, SCALING a shape up probably causes lag.  I had that problem with... I think it was bloodgulch?  Idk that was a long time ago.

Maybe we could get a channel on the BL content creator's discord?  There isn't anything there for mapmakers specifically yet.

59
Help / Re: People can't join me (Loa)
« on: January 05, 2019, 02:33:04 AM »
You ran the trace after the client already failed to load, so I've got nothing.  I am very disappointed in you.

60
Help / Re: People can't join me (Loa)
« on: January 04, 2019, 07:00:20 PM »
I've got nothing on it.  You could try a doing a trace(1); while someone tries to load and fails, and then post the resulting console log here.  The current one doesn't say a whole lot.

Pages: 1 2 3 [4] 5 6 7 8 9 ... 52