Combat 2.0

  • Search existing ideas before submitting- Use support.secondlife.com for customer support issues- Keep posts on-topic Thank you for your ideas!
Avatar Hitbox/Camera Adjustments Proposal
Proposal in 2 part: Passive and Scripted. Passive proposal: Avatar hitbox shape does not change based on any given avatar action. At the very least, the height of the hitbox should be reduced while in the crouching or crouch-walking animation state. In a previous system I had developed, this was accomplished by cutting the avatar's height by roughly 40%. Though ideally, the top of the hitbox should be here the person's camera is located at all times while they are in first person so things such as prone animations can more accurately reflect the avatar's hitbox size. Recommended to include a region setting for this, ie. avatar_hitbox_crouching Scripted proposal: Allows a script to effectively adjust the size of the avatar hitbox while worn via a vector. The avatar's physics interactions would be based on this size and it would disable the Passive hitbox scaling system while active. This will allow the use of larger avatars (giants), avatar-attached mechanized units, etc without the new for a separate physical object to properly represent their hitbox. The appeal being to allow the creation of full 1-to-1 avatar controls without the issue of your hitbox being confined to a tiny space between your legs. This function should be restricted to scripts worn by the person affected and should require permissions, ie. PERMISSION_ADJUST_HITBOX. The avatar's camera position should be moved towards the top of their hitbox whenever z-scaling is adjusted. Recommended to include a region setting for this, ie. avatar_hitbox_scripted
2
·

tracked

Manually Adjustable Avatar Hitbox
Exactly what the name suggests. The problem: In SL, avatar hitboxes are generated according to information relative to the system body. These hitboxes are, when working correctly, a big box that encompasses the entire avatar's view model. The avatar's hitbox immediately becomes non-representative of the avatar's visible size in various conditions: crouching your avatar, wearing an unrigged attachment larger than the system body (or smaller), using deforming animations with avatars that are atypically shaped such as nonhumanoids, hover height, animations that offset the avatar's viewmodel, etc. This leads to issues such as: avatars getting stuck on terrain, or being able to pass through terrain they visibly shouldn't be able to, and avatars in shooter style games not being able to hit their intended target with projectiles as their visual model does not correspond with their hitbox. Proposed solution: Let users manually adjust the hitbox of their avatar. As long as it is just a literal box then letting users simply adjust the size of that hitbox to whatever scale and position they feel is appropriate. Considered issues with solution: Issue: People will intentionally abuse this to give themselves the smallest hitbox possible for an advantage in combat. Answer: People can already use various methods such as offset animations or simply making their avatar as small as possible to try and get this sort of advantage. Many combat sims have their own rules against avatars of a certain scale they enforce locally and are already capable of policing this sort of behaviour themselves. Issue: When an avatar enters a crouch/crouch walk their visual model is smaller and they move slower but their hitbox does not adjust. This solution does not resolve this specific element of the issue. Answer: This concern leads me to think about the relative dissimilarity between crouching animations, and animations in general relative to avatar's singular generic hitbox. Being able to have an adjusted hitbox relative to every form of avatar motion so animation was always representative would be good. Otherwise, I imagine just being able to manipulate the existing hitbox scale would be a more expedient way to resolve a lot of this problem in the short term.
3
·

tracked

Damage objects should send damage to the nearest recipient
Combat2 introduced the ability for objects to receive damage. In my testing, when firing a damage bullet at four objects with on_damage in a way that causes all four to be hit in the same physics frame, all four scripts reported the collision, but only the object created first reported receiving the damage. In the event of the bullet colliding with both an avatar and an object in the same frame (such as when someone takes cover behind a relatively thin wall), the avatar takes the damage, and that has long been grounds for complaints within the combat community and empowered abuse. Rider said that the object that receives damage "bubbles up from the physics engine," but so do scripts that fire their collision_start events from non-damaging collisions in the same frame. Note that, using the test script below, collision_start appears to consistently fire before on_damage . If all four objects in that set got the event at the same time, why does the simulator send it only to the oldest object? I propose that the object (or avatar, or child link) whose center is closest to the bullet's position in the frame before the collision should receive the damage (or prevent it, if the bullet has REZ_DIE_ON_COLLIDE ). While this wouldn't be as accurate as a priori collision detection, it could put to rest the long-standing issue of accusations of "prim shooting", or deliberately shooting at a wall or other object between the shooter and close to the target. The test script: default { state_entry() { llSetText(llGetObjectName(), <1,1,1>, 1); } on_damage(integer n) { float totalDamage; while (n--) { list damageInfo = llDetectedDamage(n); totalDamage += llList2Float(damageInfo, 0); } llOwnerSay("Took " + (string)llRound(totalDamage) + " damage"); } collision_start(integer n) { llOwnerSay("Collision from " + llDetectedName(0)); } } On collision detection: Second Life's physics engine uses the a posteriori collision detection model, meaning that, in each physics frame, a physical, moving object "jumps" to the position it should next be in, and any non-phantom objects that it intersects with in that new position is considered a collision. This is in contrast to the a priori collision detection model in which the physical object "slides" to its new position in the coming frame, checking for collisions along the way. The trade-off for using the latter method is that while collision detection would be much more consistent and reliable, it has greater performance demand that may not be feasible for a virtual world filled with user-generated content.
2
·

tracked