# GDC16 – Day 2

So yesterday was all math, and today was all education. …well sort of. Academic artists have a world view that is quite different from that of your typical scientist. I come from a very analytic background. Even my hobbies, playing poker and racing cars, and my artistic work in photography are a blend of the creative and the analytic. Once I wrapped my brain around the different way in which they were looking at the problem of pedagogy, there were some good take-away points from the morning and afternoon sessions.

One of the things that true of both artist and scientist is that we fail, and I mean we fail a lot. Most of our careers is spent creating one failure after another. This is NOT a bad thing, unless it’s the only thing you’re doing. The road to success is lined with a long sequence of failures, and those who do succeed accept this and even embrace it. When students finally arrive in a college classroom, they are absolutely terrified of failure. Personal note: This should not be a surprise given how frequently we subject our kids to high-stakes standardized testing, but that’s a topic for another article. Game development, much like the development of a new scientific model, is a process of constant iteration. You try, test, fail, tweak, test, fail, rinse and repeat. So many of our students are fearful of that initial failure that they don’t even attempt the work and fail in a far more destructive way. Mitigating, navigating, and learning from failure through iteration is paramount in game development just as it is in science, but it’s a tough thing to teach.

There were more ideas that I picked up throughout the day, but nothing really groundbreaking. I have some ideas related to the iteration process and managing failure I mentioned above that I will craft into some new exercises for the Astronomy courses. I’ll have more on that as I develop the idea into more than just thoughts in my head.

The last talk I attended was by Margaret Moser, “Teaching Designers to Code”. I thought that this would be useful not only because we occasionally get a more design-focused student in the Math and Physics for Games course, but also because even many of the programming-focused students are really just learning how to code efficiently. The two big take-away items here were not ones that were startling revelations, but rather stern reminder of what I already knew and should be deploying in my classroom. Something I could do better when describing algorithms in class is not to start writing line-items of pseudo code or equations, but instead to start with a block diagram of the process. This, of course, is the key to coding more complex solutions. Don’t think in terms of individual lines, but think in terms of functional blocks. That’s how I think of my scientific work. Think about the big blocks of the problem before you drill down into writing specific equations.

The evening ended brilliantly. Professor Hanna and I made our way down to a region where my good friend and fellow photographer, Bash Beard, took me when I was in town for the AGU Fall Meeting, Beldon Place. At first, it just looks like a sketchy back alley, but when you peek around the corner, it’s lined with one amazing restaurant after another with just about every type of food you can think to eat. We tried the last restaurant at the end of the alley, Brindisi Cucina Di Mare. Of course I was going to sniff out a seafood joint. What else did you expect?

Tomorrow is the first day of the main conference which means SWAG!!! The Expo Hall opens and it’s time to meander around the vendor booths and see what kind of cool loot I can drag back for my students, for Lillian, and for my officemate’s geocaches. It’s also the day of the Game Developers Choice Awards. Think the Oscars for video games, only with a bit more edge to it.

# GDC16 – Day 1

It’s Math Day!!! The first two days of the Game Developers Conference is always given to specialty tracks and summits. For the past twelve years, there has been a Math for Game Programmers summit on Monday and Physics for Game Programmers on Tuesday. They’ve combined the two into a one-day summit, with the majority of talks being focused on the mathematics, but often with the physics of the game play in mind. As with any conference, some of the talks are huge hits, some are misses, some are good talks but not directly pertinent to your work or interests. This was the case on Monday as well. Fortunately, there were far more hits than misses. On the balance, it was a fantastic summit.

First up was J. Kyle Pittman (@piratehearts) to discuss jump physics. In our course, Math and Physics for Game Programmers, we teach students the basics of uniformly accelerated motion and the Forward Euler Method for numerical integration. When doing this, we certainly talk about free-fall motion and the kinematics of a jump, but Mr. Pittman made some great arguments for why doing jumps physically correctly could often be incorrect for good game play. Often, the acceleration due to gravity, $g$, is preset to a given value, often 9.8 m/s2 downward, and the dynamics of a jump are then determined by the vertical velocity, $v_y$, of the jump. This can lead to, although realistic, jumps that feel too floaty or too heavy, and often jump physics that do not match the necessary trajectories demanded by the level design. Rather than pre-determining the value of $g$, Mr. Pittman suggests allowing it to be determined by the constraints of the level design. If a gap distance and maximum height are known, the value of $g$ and $v_y$ can be calculated so that it is possible for the character to complete the jump.

$g = - \frac {2 h} {t_h}$
$v_y = \frac {2 h v_x} {x_h}$

where $h$ is the maximum height of the jump, $t_h$ is the time to reach the maximum height, $v_x$ is the maximum horizontal speed of the player’s character, and $x_h$ is the horizontal distance covered to the reach the maximum height. Combining these yields a value for the acceleration due to gravity that relies solely on the level design parameters and ensures that a jump is makeable by a player.

$g = - \frac {2 h {v_x}^2} { {x_h}^2}$

Groovy!

The other technique Mr. Pittman explained was using a different value for gravity for ascent versus decent. Mario’s jump physics included increasing the acceleration due to gravity by a factor of three once the jump reached it’s maximum height. This, of course, is physically inaccurate, but in developing a game, you’re goal is to produce good gameplay with believable physics, but simulation-level accurate physics. It’s funny how our brains will sometimes see a simulation that is physically accurate, but believe it’s totally fake.

Next up was Squirrel Eiserloh’s talk on camera shake. I always think of this as the Star Trek effect. When there’s trauma to a player, either from being hit or landing on a surface after a jump or fall, a bit of camera shake can lend realism to the visuals, much in the same way as camera shake was used, perhaps overused, in the original Star Trek episodes to indicate trauma to the ship. The big take-away from this talk was to use both rotational and translational shake in 2D environments, but only rotational shake in 3D. If you jitter the translation of a camera, you can easily end up with the camera inside of a wall. In a VR environment, just don’t, unless it is your intent to cause motion sickness and nausea in your players.

Later in the day, Simon Strange discussed finding distances in the training simulator, Strike Group Defense, a serious game designed to train Navy personnel on the best anti-ship missile defense strategies and tactics. Since naval engagements happen over hundreds of miles, the curvature of the earth is significant and must be taken into account. Given this, the game makes use of spherical coordinates to determine distance. Rather than using the complex trigonometry of calculating arc length on a great circle between two points, Mr. Strange opted instead to rotate the world so that the player was at the north pole. This means that the polar angle is a direct measure of the distance between the player and any point on the map, $d = R_{Earth} \phi$. This is brilliant, and something that Prof. Grondahl and I have tried to explain to our students over the years. Invest in a bit of work up front in order to save a lot of work later on. This is exactly what this method does. You invest in a bit of work ahead of time to rotate the player position to the +z-axis. After you do this, calculating distances on the curved surface of the Earth is a simple and, more importantly, computationally cheap calculation.

The last talk that I’ll highlight is from the always brilliant Gino van der Bergen. This year’s talk was on enforcing rotational joint limits in quaternian space. Quaternians are awesome mathematical objects first developed by Hamilton in the late 1800s. In fact, Hamilton was so excited about his recognition of the key to quaternian on his way home from the pub that he etched the basic complex numbers rules into the stonework of a bridge in Dublin. You have to love mathematical graffiti. Mr. van der Bergen did a great job of explaining why and how quaternions eliminate the singularity and degeneracy issues inherent in traditional matrix-based rotation operators.

Keep an eye on the website Essential Math. You can find slides from the Math for Game Programmers summits of previous GDCs, and in time the 2016 slides, including Mr. van der Bergen’s presentation on quaternian space, will be posted for public consumption.

At the end of the day, I took my camera and set out to capture some images around the Powell and Market region. If you’ve ever been in this area of San Francisco, you know there is a significant homeless population. The reasons for persons finding themselves homeless are as various and unique and the people themselves, but one thing that is common among them is their effective invisibility. Of course, people physically see them, but they consistently choose to disregard their presence, treating them as essentially invisible and separate from the rest of the sea of humanity shopping, commuting to and from conferences and work, waiting to ride the cable cars, and doing all the other things we’re used to doing. One such individual, an amputee, was sitting in his wheelchair off to the side of the rest of the buzz of tourists and townies. The look on his face was one of resigned dejection as people walked by with not even a glimmer of recognition that they just passed a fellow human being.

# GDC16 – Day 0

So today was interesting. I’m all set to check my bag and fly out to San Francisco and I find out that my flight is overbooked. …great. The ticket agent asks if I would mind moving to another flight. I’m in the process of rejecting by default as I needed to be here by 1700h PDT. Before I get around to doing that and demanding the seat I purchased, he says, “How about a non-stop that leaves 22 minutes later than your flight, but arrives two hours earlier. …blink… Yup! That will work just fine, thank you. As it happens, it was the flight that the Game Development Program Chair, Prof. Russ Hanna was on as well.

The rest of the trip goes great. Flight in was smooth, BART into town was smooth, got my MUNI pass easy-peasy. The problem started when I got to hotel. Paperwork is such a fun thing. Turns out there was a mishandling of the paperwork between the college and the hotel so the new front desk clerk didn’t think that my room was paid. Great. There are worse places than San Francisco to be homeless for a day. Fortunately, the folk at the Hotel Stratford were amazing and very understanding! They knew that this would work itself out in the morning when the business offices opened, and they did.

What to do while in the Powell and Market area and your stressed out? Eat! Senior Scientist at Fundamental Technologies, Jerry Manweiler, introduced me to a great burger joint on Union Square, the Burger Bar. Wet, stressed, and hungry, That’s where Russ and I went. It’s an amazing place with an amazing view, although I will say the view during the Christmas season when I come here for the American Geophysical Union Fall Meeting is a bit more colourful.

One thing that did go right was registration at GDC. It used to be such a madhouse. They’ve really streamlined the process and have it working very smoothly. Russ and I were able to walk right up, sign in, and grab our badges. We were in and out in less than five minutes. Brilliant! That left time for some photography work. Before wrapping up the day with more food at an Irish-themed deli. I’m a sucker for corned beef sandwiches!

I’m part of a small group of photogs that post weekly photos on a theme in an effort to push each of us outside of our normal comfort zones and force us out of our photographic ruts. Last week’s theme was “Motion,” and what I wanted was a bus or streetcar moving through the steam rising from the storm grates. I picked the wrong side of the street. Although I didn’t get the steam in the shot like I wanted, I did get some panning practice in before racing season. The lens I used was a 28-mm prime thrift-store special. Auto nothing! It forced me to think about and set every aspect of the exposure and the focus. It’s not tack sharp, but by this time it was starting to pour down rain, and I wasn’t keen on sticking around to grab another.

EXIF
Device: Nikon D7000
Lens: Tokina 28mm f/2.8
Focal Length: 28mm
Focus Mode: Manual
AF-Area Mode: Single
Aperture: f/8
Shutter Speed: 1/15s
Exposure Mode: Manual
Exposure Comp.: 0EV
Metering: Matrix
ISO Sensitivity: ISO 100

Tomorrow, the Math for Game Programmers summit begins! All math, all day!

# Found a new planet? Pics or it doesn’t exist.

In January, right at the beginning of the Spring semester, Professor of Planetary Astronomy Michael Brown and Assistant Professor of Planetary Astronomy Konstantin Batygin, both from the California Institute of Technology, published a remarkable prediction in the Astronomical Journal, Evidence for a Distant Giant Planet in the Solar System (read the article here, http://web.gps.caltech.edu/~kbatygin/Publications_files/ms_planet9.pdf) In the article, Dr. Batygin, the theoretician of the pair, uses Dr. Brown’s observations of objects within the Kuiper Belt to argue for the existence of an object in a Sedna-like orbit and approximately ten times the mass of Earth. The basis for their claim is the ordered clustering of the perihelions of the orbits of multiple Kuiper Belt objects, a phenomenon that has a 0.007% of occurring randomly (yes, the significance of the number was not lost on me). After a significant amount of modelling and numerical analysis, Dr. Batygin predicts the likely orbital parameters of the Neptune-sized object as being inclined as much as 40 degrees to the ecliptic and having a semi-major axis of ~700 AU with an eccentricity of ~0.6. This places its perihelion around 280 AU. That’s really far out there, and places the proposed object as a member of the distant Kuiper Belt or inner Oort Cloud, or Hills Cloud, rather than a member of the inner Kuiper Belt wherein resides more familiar objects like Pluto and Eris. The mathematics are extremely compelling and the discussion and conclusions well-reasoned, but as the modern saying goes, “Pics or it didn’t happen.”

This certainly isn’t the first time that an object has been predicted to exist by mathematical analysis of the orbit of other objects. The most famous, and earliest, is the prediction by French astronomer and mathematician Urbain Le Verrier of the existence of an eighth planet beyond the orbit of Uranus that would account for the Uranus’ increase and subsequent decrease in orbital speed unrelated to its solar distance. Le Verrier worked on the problem in the summer of 1846 during his position at the Paris Observatory. Using Newton’s mechanics and Law of Gravity and the observed positions of Uranus, he calculated where a more distant planet would have to be and how massive it would have to be to produce the observed deviations. After completing his work, two astronomers, Johann Gottfried Galle and Heinrich Louis d’Arrest at the Berlin University, began searching in the vicinity of Le Verrier’s predicted position for the new planet. Galle, looking through the telescope, called out positions and brightnesses of the visible objects to d’Arrest who compared the observations to previously recorded charts until Galle called out an object that was not on the chart. They had found the planet that would later come to be called Neptune within a single degree of Le Verrier’s calculations. It was a remarkable piece of work from both Le Verrier and from Galle and d’Arrest, and it was a triumph for Newtonian mechanics.

This method of discovering new objects was later attempted by William H. Pickering, Professor of Physics at Harvard University. Based on his calculations, using the apparent discrepancies in the orbits of both Uranus and Neptune, he attempted to image the proposed trans-Neptunian object at the Mount Wilson Observatory outside of Pasadena, CA. His search was unsuccessful, but the hunt for “Planet X” was picked up by Percival Lowell who had founded the Lowell Observatory in Flagstaff, AZ. Lowell’s attempts were equally unsuccessful. After Lowell’s passing, the search was tasked to an amateur astronomer from Burdett, KS, 23-year old Clyde Tombaugh. Rather than relying on sophisticated calculations, Tombaugh was tasked with systematically searching the Zodiac for anything non-stellar. In late January 1930, he captured two images of the object that we now know as Pluto. As it turns out the position of Pluto did not in any way correlate to Pickering’s calculations. In this case, the discrepancies were due to the lack of precision in the measurement of the masses of the outer planets.

Today, modern astronomers use the periodic motion of stars to mathematically infer the presence of extrasolar planets. The first of these discoveries was 51 Pegasi b. As two bodies orbit each other, such as a planet around its host star, the two bodies both move about their common center of mass. The planet being significantly less massive moves far more noticeably than the star, but the star does still move. Its motion is detectable by analysis of its light spectrum’s becoming alternately slightly bluer and then slightly redder as the star moves towards us and then away from us, respectively. This method has been used to locate many such extrasolar planets that we’re still unable to image directly. These are generally accepted as exceptions to the “Pics or it doesn’t exist” rule in science. The mathematics and analysis are so strongly compelling and there is no other viable alternate explanation that it is accepted that orbiting planetary bodies are responsible for the variations in the radial velocity of 51 Peg and other stars.

So now if we’re willing to take the mathematical word of the existence of extrasolar planets such as 51 Peg b, then why not for this new object proposed by Dr. Batygin and Dr. Brown from Cal Tech? The difference lies in the complexity of the problem. The extra solar planet problem is by comparison a simple problem. The radial velocity curve for 51 Peg is very clean, and the analysis of the data use methods that have long been vetted and refined by astronomers studying binary stars for which one can see the two separate objects. In other words, there is precedent for the methodology. This is not to say that Dr. Batygin’s methods are controversial or that the mathematical tools are not well understood. The Hamiltonian mechanics he deploys in his paper are extremely well understood and have been for over a century, but the data with which Dr. Batygin is working and the significant complexity created by moving from a two-body problem to an n-body problem make the analysis more difficult and intricate as well as making the results of those analyses less precise. For this reason, while I am very excited about this new prediction, I want to see an image before I take it as fact.

The observational discovery this new object, if it exists, likely won’t happen soon. Even at its proposed closest approach to the Sun, 280 AU, the intensity of sunlight striking the object is 0.00128% that of what it is here at Earth. Not only is the light very dim at that distance, most Kuiper Belt and inner Oort Cloud objects are coated with carbonaceous dust making their surfaces very dark and non-reflective. As our observational tools and techniques improve, we may eventually be able to start imaging these remote sentinels of our solar system, but until then, we’re left with only the predictions.