Construction

Need some nice Mods? Here, you are right!
JackGriffin
Godlike
Posts: 3766
Joined: Fri Jan 14, 2011 1:53 pm
Personal rank: -Retired-

Re: Construction

Post by JackGriffin » Wed Dec 12, 2012 3:52 am

If that is true then what about players joining the map after they have spawned? There will need to be some sort of continual replication to keep relevance to all players.

I know we have debated this before Como and I hope my questions aren't taken in a bad light. Trust me when I say "If you can work this out it will be a HUGE delight to me and would likely be where I spend the last of my dev days working on." I'd love like nothing else if this were possible in some fashion.
So long, and thanks for all the fish

User avatar
Feralidragon
Godlike
Posts: 5217
Joined: Wed Feb 27, 2008 6:24 pm
Personal rank: Work In Progress
Location: Liandri

Re: Construction

Post by Feralidragon » Wed Dec 12, 2012 12:04 pm

About replication:
- Data is only replicated if it changed and if and when it's relevant to the client, it's that simple.

So let's see the following conditions:
- A player joins a server mid-game:if there are new actors in the server and which are relevant to the client, they are spawned in the client, and if they have any properties changed relative its defaults (and which are defined to replicate to the client) or pending events (PostBeginPlay, some animation going on), these are also replicated/executed.
However, again, only what's relevant, so if a player joins and the first place he sees and spawns in is an empty room, it doesn't matter if there are millions of objects left to replicate in the entire level, until the player actually sees them (one way to make them relevant), no data about them is replicated at all.
- If during the time the player is in the server there's any moment where nothing changes (no values, spawns, etc), then there's absolutely no replication going on at that point.
- If something is spawned or changed but it's not relevant to the client yet, the client won't receive that data until that object becomes relevant to the client.

So, if an object changes its position 1000 times over the course of a game, only the last change is replicated if a player joins later on.
In an object changes any values during a single Tick, only the last one is considered for replication, and if it ends up being the same value it has initially at the beginning of the Tick, there's no replication.
Therefore, I don't see how having many objects in the game would lag bandwidth-wise (they can lag visually in the client if visible, but if they keep a static position, they won't replicate anything for long periods of time, and even if they move position a lot, only the Location variable is replicated, and as we all know, replication of vectors in UEngine is truncated to the nearest integer in each one of its components: X, Y and Z, so basically only 3 32bit signed integers (at max, the size may vary I believe) are being replicated, which means, about 12 bytes per update).

Of course, there's also the server CPU usage to consider since these changes have to be checked at the end of each tick. So if an object is never or is rarely updated, it's worth to mention that is best to lower its NetUpdateFrequency too.

User avatar
Rakiayn
Masterful
Posts: 550
Joined: Fri Aug 28, 2009 3:33 pm

Re: Construction

Post by Rakiayn » Wed Dec 19, 2012 6:39 pm

I hope you will continue this project.
do you think it could be possible to spawn the movers without them being plaed in ued first?
it would be cool if you could select the texture and sizes of the mesh before spawning them

JackGriffin
Godlike
Posts: 3766
Joined: Fri Jan 14, 2011 1:53 pm
Personal rank: -Retired-

Re: Construction

Post by JackGriffin » Wed Dec 19, 2012 6:40 pm

That's all possible Rak, it's just the collision that ruins it all.
So long, and thanks for all the fish

User avatar
comoestas
Average
Posts: 36
Joined: Tue Jan 04, 2011 12:33 am

Re: Construction

Post by comoestas » Wed Dec 19, 2012 8:45 pm

Thank you Ferali for your fantastic explanation. Since it's not declared constant, I can assume NetUpdateFrequency can be changed at runtime freely, right?

@Rakiayn
The only reason I need to place the movers first in UEd is to have a collision hull. The movers don't even have to be placed in the same map. For example, in the video, I am on CTF-Face.unr, but the movers I was placing had their collision hulls loaded from movers inside a map called ConstructionModels.unr. This way, the mod can be used on any map. Plus, the "movers" you saw in the video were actually a mesh + an invisible mover for collision. This way it is easy to change the texture of the mesh which is in the shape of the mover, while preventing the engine from complaining with occlusion errors that happens with visible movers.

@JackGriffin
I hope to erase all your doubts soon, my friend.

User avatar
Feralidragon
Godlike
Posts: 5217
Joined: Wed Feb 27, 2008 6:24 pm
Personal rank: Work In Progress
Location: Liandri

Re: Construction

Post by Feralidragon » Thu Dec 20, 2012 12:01 am

comoestas wrote:I can assume NetUpdateFrequency can be changed at runtime freely, right?
Yes, actually I already do that myself in NW3 (they generally stay with a low frequency all the time, and in NW3 I rise that frequency only when the weapon is being actively used by the player, so the weapon gets more responsive).

User avatar
Rakiayn
Masterful
Posts: 550
Joined: Fri Aug 28, 2009 3:33 pm

Re: Construction

Post by Rakiayn » Thu Dec 20, 2012 3:44 pm

so what kind of gameplay are you planning?
a sand box game were people can bould all they want, or maybe a sort of bunnytrack game were people have to use construction element to pass the map?

User avatar
Shadow
Masterful
Posts: 719
Joined: Tue Jan 29, 2008 12:00 am
Personal rank: mad scientist
Location: Halle (Saale), Germany
Contact:

Re: Construction

Post by Shadow » Fri Dec 21, 2012 3:14 pm

Dr.Flay wrote:I collected together as many UEd addons as I can.
I do not know if their are any "Builders" I have missed, but check this link for what I have found.
http://my.opera.com/Unreal-Tournament/b ... -resources

Medor's re-packaged version of UT is designed for editing and comes with some installed.
Download link is in his signature.
@Medor
You could add the SDK into it, so it is pre-installed properly :tu:

I have talked with Shadow before about adding the ability to make all decorations destroyable into the SDK. It is something he is wanting to add, so I think you 2 should chat. It may save replicating similar work.

If you fancy poking around a UEd 2 curiosity, then get the mod "Spatial Fear". it is comes with some extra brush-builders, and even has extra path-node types (no use for normal UT mapping, but fun to play with).

I wonder if we could get permission to use the extra pathnode mechanics in the SDK?
comoestas wrote:@Rakiayn

That is a very kind offer, but I can't accept. I enjoy the challenge of learning these things for myself, so I would prefer to start from scratch.
But, I can say that I was very tempted to accept your offer on the chance that I might get to try out your mod. From what I've seen, I can tell its a fantastic mod, and that you've put a lot of time and thought into it.
Don't give up on it. :gj:

@Dr.Flay

There are a couple of things that I want to get done first, but I've bookmarked your page. It looks pretty comprehensive, thanks!
I'm a big fan of adding as much functionality as we can to UT, so I think that would fit well into the SDK.
Yes, yes. Why not. I'm pretty curious about this mod. Adding explosion emitters is no problem and of course we may discuss adding your technology to the SDK (you'll be mentioned in the Read Me and what not too of course)or vice versa.
Image

User avatar
Dr.Flay
Godlike
Posts: 3264
Joined: Thu Aug 04, 2011 9:26 pm
Personal rank: Chaos Evangelist
Location: Kernow, UK
Contact:

Re: Construction

Post by Dr.Flay » Fri Dec 21, 2012 8:27 pm

Groovy.
The more heads we have thinking about new or radical ideas, the quicker it is to work out;
if and how it can work,
and if the results are worth the trouble.

Ideas for game-type usage, or implementation may help with the direction of this, I would hate to see it under-used if it is successful.

Gunner
Novice
Posts: 13
Joined: Mon Dec 03, 2012 8:43 pm

Re: Construction

Post by Gunner » Fri Dec 21, 2012 8:54 pm

Here is a use case:



It is not a new concept. There are several other games like it. I can see this working out in a similar way.
Image

User avatar
papercoffee
Godlike
Posts: 9675
Joined: Wed Jul 15, 2009 11:36 am
Personal rank: coffee addicted !!!
Location: Cologne, the city with the big cathedral.
Contact:

Re: Construction

Post by papercoffee » Sat Dec 22, 2012 5:19 am

Well to make a destructible map is impossible I think... but I can imagine something similar to "siege" the mainframe of the map is indestructible but everything else can be harvested and reused to build a defense wall or what ever construction.
And the Impact hammer is the tool to gather the materials and parts

User avatar
Dr.Flay
Godlike
Posts: 3264
Joined: Thu Aug 04, 2011 9:26 pm
Personal rank: Chaos Evangelist
Location: Kernow, UK
Contact:

Re: Construction

Post by Dr.Flay » Wed Nov 27, 2013 8:20 am

Progress report please.

And BTW we now have Jacks destructible brushes mod ;)

User avatar
papercoffee
Godlike
Posts: 9675
Joined: Wed Jul 15, 2009 11:36 am
Personal rank: coffee addicted !!!
Location: Cologne, the city with the big cathedral.
Contact:

Re: Construction

Post by papercoffee » Wed Nov 27, 2013 8:28 pm

Dr.Flay wrote:Progress report please.

And BTW we now have Jacks destructible brushes mod ;)
To be honest, is this mod not that flexible ...you have to trick the engine with very complicated mover brushes ...and if you overuse them will the map not work the way you planned it.

Maybe some meshes instead of mover will do it. 'don't know.

Edit-----------------------------------------
Ok I forgot the round hit-box of the meshes. :x

User avatar
Feralidragon
Godlike
Posts: 5217
Joined: Wed Feb 27, 2008 6:24 pm
Personal rank: Work In Progress
Location: Liandri

Re: Construction

Post by Feralidragon » Wed Nov 27, 2013 8:56 pm

Well, probably I shouldn't say this yet, so consider the following as "vaporware" for now, but one of the parts of my next project is implementing something like this at native level, and I am probably going to go a bit overboard with it if I manage to implement what I want to implement and if I am right about the architecture I have in mind (aiming for low memory usage and high performance).

Post Reply