Small People... Big World

The prop resizer seems to change collisions?

EDIT: I take that back.

I just had the same idea. That micro-sizing idea of yours was already done by me a while ago but I didn’t do anything with it because we couldn’t set the size of player collision / hulls.

http://www.noxiousnet.com/forums/index.php?topic=9567.0

http://heavy.noxiousnet.com/img/?b=microengine_test - some shots when SetModelScale just came out.

Okay, so I’m slowly cobbling together info on this topic. EDIT: SetModelScale doesn’t do collison, will it ever?

Also, I’d noticed that thread you posted, but I didn’t see much that applied to this topic :stuck_out_tongue:

Basically, I’m very interested in this for more reasons than one, and I’m curious if all the tools are there, or if it would require a bit more creativity to get everything downsized.

SetModelScale works only on the client, and works only graphically.

I had an idea on using the function http://wiki.garrysmod.com/?title=Entity.PhysicsFromMesh

However, you’d need some way to get what prop was being spawned, gt those vectors, and format them into a lua table correctly. I thought a DLL module could do this, however my knowledge of DLL modules is limited. Anyone else see possibilities with that function?

Maybe you guys didn’t get it, I’ve already done it both visually and physically.

Would you mind telling us how, or did you just use downsized props?

It only works on things that have box collision models. All players and NPC’s have boxes for collision models so all you need to create are custom models for anything that has a complex collision model. For example, a pyramid couldn’t use this system.

For players, you want to set their hull size and view offset in the PlayerSpawn hook (both client and server-side). NPC’s can have their hull and collision box set any time. Props should be set in their Initialize hook since you need to use self:PhysicsInitBox() and self:SetCollisionBounds().

so for players and npc’s, can have their collision hulls changed on the fly, and using the SetModelScale function on the client, you can change the visual size of the player / npc…

How would you make their view be sized appropriately? Because, correct me if I’m wrong, they would see normal view. You’d need to decrease their height.

Are children scaled according to their parented props?

:v:

[lua]local vecmin, vecmax = Vector(-1, -1, 0), Vector(1, 1, 4.5)
local viewoffset = Vector(0, 0, 3.75)

function GM:PlayerSpawn(pl)
pl:SetHull(vecmin, vecmax)
pl:SetHullDuck(vecmin, vecmax) – You can use something else here but the below bug makes it wonky.
pl:SetCollisionBounds(vecmin, vecmax)
pl:SetViewOffset(viewoffset)
pl:SetViewOffsetDucked(viewoffset)

pl:PhysicsInitBox(vecmin, vecmax) -- You need to do this for some reason. Otherwise you get weird collisions with physics objects. Seems to be a new bug. Also if you do this then you can't push physics objects. Pick the lesser of the two evils: shitty collisions with props or no pushing them.
pl:SetSolid(SOLID_BBOX)
pl:SetMoveType(MOVETYPE_WALK)

-- etc... You should also do this on the client.

end
[/lua]

There’s also another bug with hull sizes where if you duck then your collision reverts to the default engine one and traps nearby players.

What about the SetHullDucked function? wouldn’t that fix that problem if you set it accordingly?

pl:SetHullDuck(vecmin, vecmax) – You can use something else here but the below bug makes it wonky.

http://img198.imageshack.us/img198/7074/gmconstruct0000g.jpg

The stretch-iness or the horrific textures? Both would seeom like a problem if you wak me. However the latter not so much.

Reason I’m wondering. I have an idea for a gamemode. Yet it wouldn’t be all that fun on 0.5km sized maps. Or however large the grid in hammer is. Thus, instead of making maps larger, make props, players, weapons, sents, etc. smaller. and design the level 1/4th size. However with no decent way to scale physics meshes accurately and without using the InitBox method or other such things, it’d be a big challenge trying to model specific models just for the cause would take a while. Thus putting us back where we started. With the problem of scaling.

Think Garry could make a function to aid in it somehow? Whether it could return vectors of the vertices, so we could use that super cool PhysicsFromMesh function. Anything would be good at this point.

If gmod ran on servers of 1000 player slots it would be a hellish mess. You would have huge military games of people bomb raiding rp citys. Eh… Forget what I said still this would be an amazing idea if you can also make all the model packs in the game small too :smiley:

Models at this point are not the primary concern, it would be nice to have the player performing properly first (I.E. Jumping and Crouching). And while large numbers of players is nice, you have to remember that the server isn’t absurdly powerful.

Incredible, you made Gabe look gigantic-er :open_mouth:

Anyway, would it still be possible to have a player be normal sized?
Like, a giant player walking around all the little people players.

Hell if that’s possible, you could have a Pesticide gamemode with regular humans versus rat like player in Rats maps :smiley:

This thread is full of win.

By the way, this has already been done in Left 4 Dead, google ‘Bedroom Survival’ or something like that, maybe you could contact the author.

You are probably revering to a map, and if so it is just a huge map with the same size players and zombies.

Eternal Silence uses something like this for the space battles.

You have a good point here. We ought to check into this.

Hey you guys. I have a solution to get a bigger world. Get a new game engine. Nah just joking, I love the source engine.
The idea you guys have here is really nice. It can bring a whole new aspect into garrysmod.