Havok4

From Second Life Wiki
Revision as of 13:34, 28 September 2007 by Sidewinder Linden (talk | contribs)
Jump to navigation Jump to search

Havok4 (New Physics Engine) Beta Test Information Hub

Introduction

The beta testing for the Havok4 implementation in Second Life is now in process. This page provides information on the project, as well as useful information that will help us all to make sure that Havok4 is tested well before it is rolled throughout the main Second Life grid.

Please read the [Havok_Beta1_Release_Notes Havok4 Beta Release Notes]

What Is Havok?

The Second Life virtual world has a lot of moving parts that keep it going. One of these is the Physics Engine. A physics engine is a specialized piece of software that does the "real world" calculations to figure out what do when:

  • Something or someone is pushed
  • Something or someone collides with something or someone else
  • Something or someone is in motion and has momentum
  • Friction or damping slows the motion of something or someone

Havok is a commercially produced physics engine, and Second Life was built using Havok1. on which it operated for several years.

How Can I Participate In Havok4 Physics Engine Testing?

You can participate in the Beta Test of Havok4 with a few easy steps:

  1. Read "What's Changed With Havok4" to understand what should be different, and what should not be different, on the Havok4 Beta Test grid
  2. Read "New Prim Linkability Rules" to understand how prim linkage works with Havok4 (it's better and should be much more reliable!)
  3. Login to the Public Issue Tracker at "Issue Tracker" to see how easily you can tell us about problems you find during the beta test
  4. Download the install the Havok4 Beta Viewer here

What To Test?

Make sure that all of the your content works on the Havok4 grid, and try as many physics-related things as you can think of as well... Here is a short list, and a link to a page with a more exhaustive list of ideas:

  • Building, linking, unlinking
  • Vehicles
  • Weapons
  • "Spells"
  • Shields
  • Building Tools
  • Rezzing large linked sets of prims
  • Try building simple and complex items, taking them into inventory and rezzing them in different orientations and in different places
  • Does walking, sitting, flying, swimming, running and other avatar motions work the way you expect it to?
  • Do scripts work as expected?
  • Try creating scripts and modifying them
  • Are permissions working correctly?
  • Can you get the sim to crash using "physics crashes"? (those of you who know what this means... "go for it" and let us know if you can... ;)

There are Many Things You Can Test In Havok4 (a list of lots of things that would be helpful for you to test. Feel free to pick and choose from this list and make up your own things to try as well!

How Do I Stay "In The Loop" With Havok4 Testing?

  1. Attend "Regular Havok4 Office Hours In-World"
  2. TELL US about everything you find using the Public Issue Tracker

Please enter bugs using PROJECT "Second Life Service - SVC" and COMPONENT "Physics"!

How Will Havok4 Be Tested And Rolled Out?

This project replaces a core component of Second Life, and being sure that "anything that pushes, collides or has inertia" works right is a pretty extensive task. We have already done a lot of internal testing, and plowed through hundreds of internal bug fixes. We will be taking a phased approach to both catch as many problems as early as possible, and reduce risk of issues as Havok4 is rolled out.

Phase 1 - Internal Testing On Non-Public Test Grid (DONE!)
We already completed this phase, and had a variety of internal staff work on Havok4 enabled simulators. Basic functions were checked, as well as checking to see that the known physics-related simulator crashes were resolved.

Phase 2 - Public Beta Test On Beta Grid ("YOU ARE HERE!" :)
We expect the public beta test for Havok4 to be very active, with many participants. We have prepared a test grid that allows for many types of physics-related tests. The test regions will include:

  • Orientation Islands
  • Welcome Areas
  • Lusk
  • Several sandboxes
  • Combat sandboxes
  • Vehicle testing simulators

NOTE: The Public Beta viewer will be configured to use the beta grid, which will be a snapshot copy of portions of the main grid and a copy of your user account. You can do "anything you want" on this grid without risking damage to your "real account" on the main grid.

Phase 3 - Havok4 On A Select Few Main Grid Regions
In this phase we will use the new HetGrid functionality to deploy Havok4 simulators on a small number of regions of the main grid. This will still be a testing phase, and for this phase any participants will need to remember that you will be on the main grid, working with your real inventory (caveat emptor - don't rez "no copy/no transfer" items on these early test Havok4 sims without understanding the potential risks)

Phase 4 - Partial Main Grid Rollout (50-100 regions)
At this point, we will have resolved outstanding issues found during beta testing and the Phase 3 "small deployment in a corner of the main grid" and will deploy Havok4 to a subset of the main grid.

After collecting feedback, if all looks good, we will continue to...

Phase 5 - Full Havok4 Rollout On Main Grid (deploy to rest of grid)
If all is clean at this point, we will then roll out the Havok4 engine to the rest of the main grid, and we'll be "live" with Havok4 everywhere.

A Historical Note: Why Did "Doing Havok" Take So Long?

Some of you who have been around for a long time will know that we talked about replacing Havok1 a long time ago, and did not seem to get this project done, and finally went silent about it. After several false starts, we decided that it would be best to stop talking about the work, or making public commitments, until we were far closer to the goal, and we believe that we are finally at this point.

For "quite some time" we worked to replace Havok1 with Havok2. After working on that project, we realized that we really should rework the interfaces for how Havok is integrated with Second Life. We realized that we needed to define an abstraction layer - a layer of code that would make it easier to do future physics engine migrations so that they don't take as much effort as this migration took, and to allow for more flexibility down the road. At this point Havok4 became a much more reasonable target than implementing based on a then-older release... and thus we set Havok4 as the target. This project has been significantly larger than any of us anticipated, however the good news is that we are now here, ready for beta testing, and ready to fix the last minute issues before we bring Havok4-based sims to the main grid!