# Relativity for games

Daiju Nakayama and Kin-ya Oda

∗ e-Seikatsu Co., Ltd., 5-2-32, Minami-Azabu, Minato, Tokyo 106-0047, Japan
∗ Cybermedia Center, Osaka University, Osaka 560-0043, Japan
† Department of Physics, Osaka University, Osaka 560-0043, Japan

E-mail<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>
###### Abstract

We present how to implement special relativity in computer games. The
resultant relativistic world shows the time dilation and Lorentz contraction
exactly, not only for the player but also for all the nonplayer characters,
who obey the correct relativistic equation of motion according to their own
accelerations. Causality is explicitly maintained in our formulation by use of
the covariant velocities, proper times, worldlines, and light cones. Faraway
relativistic scenes can be accurately projected onto the skydome. We show how
to approximate a rigid body consisting of polygons, which is ubiquitous in
computer games but itself is not a relativistically invariant object. We also
give a simple idea to mimic the Doppler effect within the RGB color scheme.

###### Contents

  1. 1 Introduction
  2. 2 Special relativity
    1. 2.1 Coordinates, vectors, worldlines
    2. 2.2 Newtonian mechanics
    3. 2.3 Lorentz transformation
    4. 2.4 Proper time and Lorentz-covariant velocity
    5. 2.5 Rest frame
  3. 3 Drawing the world
    1. 3.1 Drawing the world on the observer’s past light cone
    2. 3.2 Discrete worldline
    3. 3.3 Intersection between worldline and PLC
    4. 3.4 Short summary
  4. 4 Time evolution
    1. 4.1 Player’s time evolution
    2. 4.2 Others’ time evolution
    3. 4.3 Aiming
    4. 4.4 Shooting
    5. 4.5 Acceleration
  5. 5 Miscellaneous ideas
    1. 5.1 Faraway scenes on the skydome
    2. 5.2 2D background
    3. 5.3 Approximately rigid body
    4. 5.4 Doppler effect
  6. 6 Summary
  7. A Relativistic energy and momentum
  8. B Lorentz contraction and dilation
  9. C Evolution in co-moving frames
  10. D Rocket propulsion
  11. E Handling rotation with quaternions

##  1 Introduction

The world is written in the language of quantum mechanics and relativity. They
together provide the basis for the Standard Model of particle physics and for
standard cosmology; see, e.g., Refs. [1] and [2] for reviews, respectively.
For large length scales,111 To be more precise, this should be rephrased to
“large length scales compared to the inverse of typical energy and momentum
scales of the system in natural units.”  classical (i.e. nonquantum) mechanics
works well. If all the objects have much lower speeds than the speed of light,
nonrelativistic mechanics suffices.222 Here and hereafter, we neglect the
general-relativistic effects: When we say “relativity”, it refers to special
relativity. (In any case, human beings have not yet managed to reconcile
quantum mechanics and general relativity; see e.g. Refs. [3, 4, 5].)  When
both conditions are met, the ordinary Newtonian mechanics becomes a good
effective description of nature.

Quantum mechanics is hard to visualize, as it is beyond our ordinary
perception. On the other hand, there is no problem in visualizing relativistic
effects, which can be significant even within the reach of classical
(nonquantum) mechanics. The detection process of light by our eyes does not
differ whether the light is emitted from the relativistic world or not.
Therefore, there remains room to visualize a classical but relativistic world
in computer games if we manage to formulate the implementation of a
relativistic world. This is the goal of this work.

Up to now, virtually all games have been based on Newtonian mechanics, with
only a few exceptions. In Refs. [6] and [7], a player can traverse a
relativistic world with three and four spacetime dimensions, respectively,
without any reaction from the nonplayer characters (NPCs). These two are the
only games that have so far been found by the authors.

One may also find a good review on the visualization of relativistic effects
in computers in Ref. [8]. Further developments after Ref. [8] can be found in
Refs. [9, 10, 11, 12, 13, 14]. In these works, what is implemented are the
relativistic effects for a moving observer in a world that does not evolve in
time in itself. In other words, one cannot affect the world in this kind of
implementation.

In this paper, we formulate how to implement time evolution in a special-
relativistic world, namely, interactivity between the NPCs, the player, and
all the other objects. In particular, one will see that causality is
maintained by heavy use of past light cones and worldlines in four spacetime
dimensions. One may find concrete implementation of all the ideas in this
paper in a primitive first-person shooter (FPS) game in Ref. [15]. Sample game
screens are shown in Fig. 1, in which the player is accelerating in a fixed
background without affecting the world. In Fig. 2, the player is fighting
against enemies interactively.

Figure 1:  Game screens from the sample game in Ref. [15]. The player
accelerates towards the center of the Milky Way Galaxy in the order of upper
left, upper right, lower left, and lower right. The background image of the
Galaxy is Lorentz-transformed and drawn according to Sec. 5.1. (The image
files for the Galaxy and Earth are taken from Refs. [16] and [17],
respectively.) The size of the Lorentz-noncovariant velocity $\boldsymbol{v}$
in Eq. (46) is 0 (upper left), $0.661\,c$ (upper right), $0.949\,c$ (lower
left), and $0.998\,c$ (lower right), where $c$ is the speed of light. The 3D
world is gridded by the white lines, which are Cartesian coordinates in the
reference frame introduced in Sec. 3. One can see that the coordinates appear
bent as the player’s velocity becomes sizable. The Doppler effect is visible
such that the color of the Galactic Center is blue-shifted as the player
accelerates. On the other hand, one can see that the backward scene, which is
squeezed into the player’s sight due to the so-called relativistic aberration,
is red-shifted on the lower-right panel. Note that the implemented Doppler
effect does not represent the real physical shift of the spectrum but is a
mimicked one; see Sec. 5.4. We see that, as the player accelerates, the
player’s “proper time”, corresponding to $\tau$ in Eq. (40), becomes delayed
compared to the “world time” of the background at rest. (“FPS” in the second
line on the screen denotes “frames per second” rather than “first-person
shooter”.)

Figure 2:  Game screens from the sample game in Ref. [15]. The player is
shooting the yellow bullets. Both the enemy and bullet are assumed to emit
light of given colors by themselves, rather than reflecting light from some
source such as the Sun. The player’s velocity is faster on the right so that
the Cartesian coordinates, explained in the caption of Fig. 1, appear more
bent. On the right, the enemy is shooting bullets towards the player according
to the aiming algorithm in Sec. 4.3; we can also see the red shift on the
enemy’s bullets that come in the player’s sight due to the relativistic
aberration. We note again that the implemented Doppler effect does not
represent the real physical shift of the spectrum but is a mimicked one; see
Sec. 5.4. The time evolution of the player and enemy is determined as
described in Sec. 4: The enemy determines its move according to the
information on its own past light cone as in Sec. 3.1, and estimates others’
move projected on its own future light cone as in Ref. 4.3. The larger and
smaller square cursors, which are connected by the straight blue lines,
indicate the enemy’s position on the player’s past light cone in Eq. (68) and
the enemy’s projected direction on the future light cone in Eq. (92),
respectively.

This paper is organized as follows. In Sec. 2, we review special relativity
and spell out our notations. In Sec. 3, we show how to draw the fully special-
relativistic world in computer games. Each observed object is drawn at the
intersection between the observer’s past light cone and the object’s
worldline. In Sec. 4, we present how to evolve the relativistic world, with an
application to an FPS in mind. This is the first time that interactions
between participants (namely, the player and the NPCs) are consistently taken
into account without contradicting causality. Past and future light cones are
heavily used for this. In Sec. 5, we give various ideas useful for a concrete
implementation. In Sec. 6, we summarize our result. In Appendix A, we briefly
summarize how the energy and momentum form a spacetime vector in relativity.
In Appendix B, we show how the Lorentz contraction and _dilation_ occur when a
measuring rod is seen by an observer. In Appendix C, we present another
formulation for the time evolution of the objects on the player’s past light
cone. This co-moving evolution is more suitable for analytic treatment, and
some of the results are shown too. In Appendix D, as a concrete example of the
relativistic acceleration, we show how the rocket propulsion can be
formulated. In Appendix E, we review the use of quaternions in order to handle
the rotation in three spatial dimensions.

We have tried to make this paper more pedagogical and self-contained than
ordinary physics papers, even for some elementary mathematics, since the
subject is more interdisciplinary and we expect more computer-oriented
readers.

##  2 Special relativity

We spell out our basic notations to describe a special-relativistic world.

###  2.1 Coordinates, vectors, worldlines

Usually computer games have $d=2$ or 3 spatial dimensions. We write a position
vector in the $d$-dimensional Cartesian (orthonormal) coordinate system as333
In terms of the ordinary $(x,y,z)$ notation, which is not used in this paper
unless otherwise stated, they are written as
$\left(x^{1},\,x^{2},\,x^{3}\right)=\left(x,y,z\right)$.

$\displaystyle\boldsymbol{x}=\left(x^{1},\,\dots,\,x^{d}\right)=\begin{bmatrix}x^{1}\\\
\vdots\\\ x^{d}\end{bmatrix},$ (1)

where the $d$ vector is written in the _component_ and _matrix_ notations in
the second and third expressions, and we use curly and square brackets for
them, respectively, unless otherwise stated. We generally write a $d$ vector
with a bold-style letter such as $\boldsymbol{x}$. In the matrix notation, the
transpose is given by

$\displaystyle\boldsymbol{x}^{\text{T}}$
$\displaystyle=\begin{bmatrix}x^{1}&\cdots&x^{d}\end{bmatrix}.$ (2)

The location of each particle in the world is represented by its position
vector $\boldsymbol{x}$ at a given time $t$. In practice, in computer games,
the “particle” may stand for a vertex in a polygon.

The time dimension $t$ is written as the 0th coordinate444 Throughout this
paper, “$:=$” indicates that the left-hand side is defined by the right-hand
side, and vice versa for “$=:$”.

$\displaystyle x^{0}:=ct,$ (3)

where $c=299\,792\,458\,\text{m}/\text{s}$ is the _speed of light_ , which is
a physical constant in special relativity.555 In computer games, one may
instead choose any value of $c$ to simulate a world with a slower speed of
light, as in Ref. [7].  We can always take the _natural units_ $c=1$, which we
employ in this paper unless otherwise stated. In the natural units, time and
length have the same _dimension_ : $1\,\text{s}=299\,792\,458\,\text{m}$. When
necessary, we can always come back from the natural units by recovering $c$ by
_dimensional analysis_.

A unit length in computer programming is quite arbitrary, and we call it a
“pixel” here just for concreteness. We may identify a pixel with an arbitrary
physical length $\ell$; namely, $\ell$ is given in the units of
$\text{m}/\text{pixel}$. Then the speed of light in the program is

$\displaystyle c={299\,792\,458\,\text{m}/\text{s}\over\ell},$ (4)

which has units of $\text{pixel}/\text{s}$.666 One may instead take whatever
value of the speed of light in the unit of $\text{pixel}/\text{s}$, regardless
of the choice of $\ell$, if one simulates a different world with a different
speed of light, as discussed in footnote 5.  In practice, it is most
convenient to store all the time information in pixels too, by using the speed
of light (4) in Eq. (3). Then the velocity and acceleration, which will be
presented in Eqs. (41) and (53), are given without unit and with units of
$\text{pixel}^{-1}$, respectively.777 When one only uses the acceleration to
change the velocity, as in Secs. 4.1 and 4.2, it would be more practical to
give the proper-time difference $\Delta\tau$ in units of seconds. Then the
time $x^{0}$ (as well as the position $\overrightarrow{x}$), the velocity
$\overrightarrow{u}$, and the acceleration $\overrightarrow{a}$ would be given
in units of pixels, dimensionless, and in the units of $\text{s}^{-1}$,
respectively. In that case, the time evolution in the nonnatural units becomes
schematically  $\displaystyle\tau$ $\displaystyle\longmapsto\tau+\Delta\tau,$
$\displaystyle\overrightarrow{x}$
$\displaystyle\longmapsto\overrightarrow{x}+\overrightarrow{u}\,c\,\Delta\tau,$
$\displaystyle\overrightarrow{u}$
$\displaystyle\longmapsto\overrightarrow{u}+\overrightarrow{a}\Delta\tau,$
where $c$ is given in units of $\text{pixel}/\text{s}$ as in Eq. (4).

The spacetime coordinates are collectively written as a $D$-dimensional vector
with $D=d+1$:

$\displaystyle\overrightarrow{x}$
$\displaystyle=\left(x^{0},\,\boldsymbol{x}\right)=\begin{bmatrix}x^{0}\\\
\boldsymbol{x}\end{bmatrix}$
$\displaystyle=\left(x^{0},\,x^{1},\,\dots,\,x^{d}\right)=\begin{bmatrix}x^{0}\\\
x^{1}\\\ \vdots\\\ x^{d}\end{bmatrix},$ (5)

where we have again used the component and matrix notations in the second and
third expressions in each line, respectively. We place the long arrow on top
of any $D$ vector, such as $\overrightarrow{x}$, throughout this paper. The
transpose in the matrix notation is

$\displaystyle\overrightarrow{x}^{\text{T}}$
$\displaystyle=\begin{bmatrix}x^{0}&x^{1}&\cdots&x^{d}\end{bmatrix}=\begin{bmatrix}x^{0}&\boldsymbol{x}^{\text{T}}\end{bmatrix}.$
(6)

In ordinary Newtonian mechanics, the trajectory of each particle from a time
$t_{\text{ini}}$ to $t_{\text{fin}}$ can be written as

$\displaystyle\mathcal{T}$
$\displaystyle=\Set{\boldsymbol{x}\\!\left(t\right)}{t_{\text{ini}}\leq t\leq
t_{\text{fin}}}.$ (7)

This trajectory can be viewed as a _worldline_ in $D$-dimensional spacetime:

$\displaystyle W$
$\displaystyle=\Set{\overrightarrow{x}\\!\left(s\right)}{s_{\text{ini}}\leq
s\leq s_{\text{fin}}},$ (8)

where $\overrightarrow{x}$ is the $D$ vector given in Eq. (5) and the real
number $s$ parametrizes the worldline.888 One takes $s$ to be an _affine
parameter_ that is invariant under _symmetries_ that one wants to impose. In
the current Newtonian case, one may (but does not have to) identify the
parameter $s$ as the time coordinate $t$ itself so that $s$ is defined
rotation-invariantly. Instead we may also identify $s$ as an arbitrary
monotonically increasing function of $t$. This freedom is called the
_reparametrization invariance_.

###  2.2 Newtonian mechanics

In Newtonian mechanics, let us consider a particle at time $t$ located at
$\boldsymbol{x}\\!\left(t\right)$, having a (nonrelativistic) velocity

$\displaystyle\boldsymbol{v}\\!\left(t\right)$
$\displaystyle=\left(v^{1}\\!\left(t\right),\,\dots,\,v^{d}\\!\left(t\right)\right)=\begin{bmatrix}v^{1}\\!\left(t\right)\\\
\vdots\\\ v^{d}\\!\left(t\right)\end{bmatrix}.$ (9)

The particle’s position after an infinitesimal time $\Delta t$ is given by

$\displaystyle\boldsymbol{x}\\!\left(t+\Delta t\right)$
$\displaystyle=\boldsymbol{x}\\!\left(t\right)+\boldsymbol{v}\\!\left(t\right)\Delta
t,$ (10)

or, to be more explicit,

$\displaystyle\begin{bmatrix}x^{1}\\!\left(t+\Delta t\right)\\\ \vdots\\\
x^{d}\\!\left(t+\Delta t\right)\end{bmatrix}$
$\displaystyle=\begin{bmatrix}x^{1}\\!\left(t\right)\\\ \vdots\\\
x^{d}\\!\left(t\right)\end{bmatrix}+\begin{bmatrix}v^{1}\\!\left(t\right)\\\
\vdots\\\ v^{d}\\!\left(t\right)\end{bmatrix}\Delta t$
$\displaystyle=\begin{bmatrix}x^{1}\\!\left(t\right)+v^{1}\\!\left(t\right)\Delta
t\\\ \vdots\\\ x^{d}\\!\left(t\right)+v^{d}\\!\left(t\right)\Delta
t\end{bmatrix}.$ (11)

The velocity $\boldsymbol{v}$ at each moment can be chosen quite arbitrarily
in nonrelativistic computer games. If we use Newtonian mechanics,
$\boldsymbol{v}\\!\left(t+\Delta t\right)$ is determined from
$\boldsymbol{v}\\!\left(t\right)$ for a given input of the (nonrelativistic)
acceleration $\boldsymbol{a}_{\text{NR}}\\!\left(t\right)$:

$\displaystyle\boldsymbol{v}\\!\left(t+\Delta t\right)$
$\displaystyle=\boldsymbol{v}\\!\left(t\right)+\boldsymbol{a}_{\text{NR}}\\!\left(t\right)\Delta
t,$ $\displaystyle\begin{bmatrix}v^{1}\\!\left(t+\Delta t\right)\\\ \vdots\\\
v^{d}\\!\left(t+\Delta t\right)\end{bmatrix}$
$\displaystyle=\begin{bmatrix}v^{1}\\!\left(t\right)\\\ \vdots\\\
v^{d}\\!\left(t\right)\end{bmatrix}+\begin{bmatrix}a_{\text{NR}}^{1}\\!\left(t\right)\\\
\vdots\\\ a_{\text{NR}}^{d}\\!\left(t\right)\end{bmatrix}\Delta t,$ (12)

where the acceleration at $t$ is determined by Newton’s equation of motion:

$\displaystyle m\,\boldsymbol{a}_{\text{NR}}\\!\left(t\right)$
$\displaystyle=\boldsymbol{F}\\!\left(t\right).$ (13)

The explicit form of the force $\boldsymbol{F}$ depends on the dynamics that
you choose.

In computer games, the trajectory and worldline become discrete sets of $d$
and $D$ vectors, respectively, due to discrete time steps:

$\displaystyle\mathcal{T}$
$\displaystyle=\Set{\boldsymbol{x}\\!\left(t_{1}\right),\,\boldsymbol{x}\\!\left(t_{2}\right),\,\dots,\,\boldsymbol{x}\\!\left(t_{N}\right)},$
(14) $\displaystyle W$
$\displaystyle=\Set{\overrightarrow{x}\\!\left(s_{1}\right),\,\overrightarrow{x}\\!\left(s_{2}\right),\,\dots,\,\overrightarrow{x}\\!\left(s_{N}\right)}.$
(15)

###  2.3 Lorentz transformation

In spatial $d$ dimensions, the ordinary inner product of a pair of $d$
vectors, say $\boldsymbol{x}=\left(x^{1},\dots,x^{d}\right)$ and
$\boldsymbol{y}=\left(y^{1},\dots,y^{d}\right)$, is given by

$\displaystyle\boldsymbol{x}\cdot\boldsymbol{y}$
$\displaystyle:=\sum_{i=1}^{d}x^{i}y^{i}$
$\displaystyle=x^{1}y^{1}+\cdots+x^{d}y^{d}.$ (16)

We may also write

$\displaystyle\boldsymbol{x}\cdot\boldsymbol{y}=\boldsymbol{x}^{\text{T}}\,\boldsymbol{y}$
$\displaystyle=\begin{bmatrix}x^{1}&\cdots&x^{d}\end{bmatrix}\begin{bmatrix}y^{1}\\\
\vdots\\\ y^{d}\end{bmatrix}$ (17)

in the matrix notation. Note that
$\boldsymbol{x}^{\text{T}}\,\boldsymbol{y}=\left(\boldsymbol{x}^{\text{T}}\,\boldsymbol{y}\right)^{\text{T}}=\boldsymbol{y}^{\text{T}}\,\boldsymbol{x}$.

We define the _Lorentzian inner product_ of the $D$ vectors
$\overrightarrow{x}=\left(x^{0},\,x^{1},\,\dots,\,x^{d}\right)$ and
$\overrightarrow{y}=\left(y^{0},\,y^{1},\,\dots,\,y^{d}\right)$ by999 A dot
product of $D$ vectors always denotes the Lorentzian inner product (18), and
never the Euclidean one (16).

$\displaystyle\overrightarrow{x}\cdot\overrightarrow{y}$
$\displaystyle:=-x^{0}y^{0}+\sum_{i=1}^{d}x^{i}y^{i}.$ (18)

Note that
$\overrightarrow{x}\cdot\overrightarrow{y}=\overrightarrow{y}\cdot\overrightarrow{x}$.
We also use the notation

$\displaystyle\left[\overrightarrow{x},\overrightarrow{y}\right]$
$\displaystyle:=\overrightarrow{x}\cdot\overrightarrow{y},$ (19)

interchangeably.

The Lorentzian inner product can be conveniently written in terms of the
_metric_ $\eta$:

$\displaystyle\overrightarrow{x}\cdot\overrightarrow{y}$
$\displaystyle=\overrightarrow{x}^{\text{T}}\,\eta\,\overrightarrow{y}=\sum_{\mu,\nu=0}^{d}x^{\mu}\,\eta_{\mu\nu}\,y^{\nu}$
$\displaystyle=\begin{bmatrix}x^{0}&x^{1}&\cdots&x^{d}\end{bmatrix}\begin{bmatrix}\eta_{00}&\eta_{01}&\cdots&\eta_{0d}\\\
\eta_{10}&\eta_{11}&\cdots&\eta_{1d}\\\ \vdots&\vdots&\ddots&\vdots\\\
\eta_{d0}&\eta_{d1}&\cdots&\eta_{dd}\end{bmatrix}\begin{bmatrix}y^{0}\\\
y^{1}\\\ \vdots\\\ y^{d}\end{bmatrix}$
$\displaystyle=\begin{bmatrix}x^{0}&x^{1}&\cdots&x^{d}\end{bmatrix}\begin{bmatrix}-1\\\
&1\\\ &&\ddots\\\ &&&1\end{bmatrix}\begin{bmatrix}y^{0}\\\ y^{1}\\\ \vdots\\\
y^{d}\end{bmatrix},$ (20)

where

$\displaystyle\eta_{\mu\nu}$ $\displaystyle:=\begin{cases}-1&(\mu=\nu=0),\\\
1&(\mu=\nu=1,\dots,d),\\\ 0&\text{otherwise}.\end{cases}$ (21)

Matrix-wise, we may also write
$\eta=\operatorname{diag}\\!\left(-1,1,\dots,1\right)$, where
“$\operatorname{diag}$” denotes a diagonal matrix.

We also define the _Lorentzian norm_ :101010 The extra square bracket is
placed for a reader unfamiliar with relativistic notation: Do not confuse the
Lorentzian norm $\left[\overrightarrow{x}\right]^{2}$ with the 2-component of
$\overrightarrow{x}$ which is denoted by $x^{2}$.

$\displaystyle\left[\overrightarrow{x}\right]^{2}:=\left[\overrightarrow{x},\,\overrightarrow{x}\right]=\overrightarrow{x}\cdot\overrightarrow{x}$
$\displaystyle=\overrightarrow{x}^{\text{T}}\,\eta\,\overrightarrow{x}=\sum_{\mu,\nu=0}^{d}x^{\mu}\,\eta_{\mu\nu}\,x^{\nu}$
$\displaystyle=-\left(x^{0}\right)^{2}+\left(x^{1}\right)^{2}+\cdots+\left(x^{d}\right)^{2}$
$\displaystyle=-\left(x^{0}\right)^{2}+\boldsymbol{x}^{2},$ (22)

where

$\displaystyle\boldsymbol{x}^{2}:=\boldsymbol{x}\cdot\boldsymbol{x}=\sum_{i=1}^{d}\left(x^{i}\right)^{2}$
(23)

is the ordinary $d$-dimensional (squared) norm; we may also write
$\boldsymbol{x}^{2}=\boldsymbol{x}^{\text{T}}\,\boldsymbol{x}$ in the matrix
notation; we also write

$\displaystyle\left|\boldsymbol{x}\right|$
$\displaystyle:=\sqrt{\boldsymbol{x}^{2}}\geq 0.$ (24)

Note that the Lorentzian norm (22) can be negative. Any $D$ vector
$\overrightarrow{x}$ is called _spatial_ (_space-like_), _null_ (_light-
like_), and _temporal_ (_time-like_) when
$\left[\overrightarrow{x}\right]^{2}$ is positive, zero, and negative,
respectively:

$\displaystyle\left[\overrightarrow{x}\right]^{2}\begin{cases}>0&\text{spatial
(space-like)},\\\ =0&\text{null (light-like)},\\\ <0&\text{temporal (time-
like)}.\end{cases}$ (25)

It is straightforward to show that the Lorentzian norm behaves in the same way
as the ordinary square for a sum of any $D$ vectors:

$\displaystyle\left[\overrightarrow{x}+\overrightarrow{y}\right]^{2}$
$\displaystyle=\left[\overrightarrow{x}\right]^{2}+2\left[\overrightarrow{x},\overrightarrow{y}\right]+\left[\overrightarrow{y}\right]^{2}.$
(26)

Let us consider a linear coordinate transformation $\Lambda$:111111 More
generally, we impose the invariance under the _Poincaré transformation_ :
$\displaystyle\overrightarrow{x}\to\Lambda\overrightarrow{x}+\overrightarrow{b}.$
The addition of a constant vector $\overrightarrow{b}$ is the _translation_ ,
a constant shift of the coordinate origin, which is trivially realized and is
not treated in this paper. A reader unfamiliar with the translation should
only memorize the fact that any subtraction of two coordinates is _invariant_
under any translation:
$\overrightarrow{x}-\overrightarrow{y}\to\overrightarrow{x^{\prime}}-\overrightarrow{y^{\prime}}=\left(\overrightarrow{x}+\overrightarrow{b}\right)-\left(\overrightarrow{y}+\overrightarrow{b}\right)=\overrightarrow{x}-\overrightarrow{y}$,
and so is the covariant velocity (41). As the velocity is invariant under
translation, the acceleration (53) becomes trivially invariant too.

$\displaystyle\overrightarrow{x}$
$\displaystyle\to\overrightarrow{x^{\prime}}=\Lambda\overrightarrow{x},$ (27)
$\displaystyle x^{\mu}$ $\displaystyle\to
x^{\prime\mu}=\sum_{\nu=0}^{d}\Lambda^{\mu}{}_{\nu}\,x^{\nu}\quad\text{for
$\mu=0,\dots,d$},$ $\displaystyle\begin{bmatrix}x^{0}\\\ x^{1}\\\ \vdots\\\
x^{d}\end{bmatrix}$ $\displaystyle\to\begin{bmatrix}x^{\prime 0}\\\ x^{\prime
1}\\\ \vdots\\\ x^{\prime
d}\end{bmatrix}=\begin{bmatrix}\Lambda^{0}{}_{0}&\Lambda^{0}{}_{1}&\cdots&\Lambda^{0}{}_{d}\\\
\Lambda^{1}{}_{0}&\Lambda^{1}{}_{1}&\cdots&\Lambda^{1}{}_{d}\\\
\vdots&\vdots&\ddots&\vdots\\\
\Lambda^{d}{}_{0}&\Lambda^{d}{}_{1}&\cdots&\Lambda^{d}{}_{d}\end{bmatrix}\begin{bmatrix}x^{0}\\\
x^{1}\\\ \vdots\\\ x^{d}\end{bmatrix},$

where we have also shown more explicit component expressions in the second and
third lines; $\Lambda$ is a matrix,121212 A reader unfamiliar with the
distinction between the upper and lower indices does not have to be bothered
by it. In this paper, we do not raise and lower the time index 0. We can
freely raise and lower the spatial indices $1,\dots,d$ under the metric
convention (21). That is, $\Lambda^{i}{}_{j}=\Lambda_{ij}=\Lambda^{ij}$ for
$i,j=1,\dots,d$.

$\displaystyle\Lambda$
$\displaystyle=\begin{bmatrix}\Lambda^{\mu}{}_{\nu}\end{bmatrix}_{\mu,\nu=0,1,\dots,d}.$
(28)

Note that all the $D$ vectors are transformed by Eq. (27) simultaneously: In
particular $\overrightarrow{x}$ and $\overrightarrow{y}$ are transformed by
the same $\Lambda$.

The transformation (27) is called the _Lorentz transformation_ if it does not
change the Lorentzian inner product (18):

$\displaystyle\overrightarrow{x^{\prime}}\cdot\overrightarrow{y^{\prime}}=\overrightarrow{x}\cdot\overrightarrow{y},$
(29)

which is satisfied when and only when131313 The condition (30) is analogous to
the condition for the spatial rotation $R^{\text{T}}R=\text{I}$, which is
deduced from the rotational invariance
$\boldsymbol{x}\cdot\boldsymbol{y}\to\boldsymbol{x}^{\prime}\cdot\boldsymbol{y}^{\prime}=\boldsymbol{x}\cdot\boldsymbol{y}$
under the coordinate transformation
$\boldsymbol{x}\to\boldsymbol{x}^{\prime}=R\,\boldsymbol{x}$.

$\displaystyle\Lambda^{\text{T}}\,\eta\,\Lambda$ $\displaystyle=\eta,$ (30)

where141414 In the component language, Eq. (30) reads
$\displaystyle\sum_{\mu^{\prime},\nu^{\prime}=0}^{d}\Lambda^{\mu^{\prime}}{}_{\mu}\,\eta_{\mu^{\prime}\nu^{\prime}}\,\Lambda^{\nu^{\prime}}{}_{\nu}$
$\displaystyle=\eta_{\mu\nu},$ for $\mu,\nu=0,\dots,d$.

$\displaystyle\Lambda^{\text{T}}$
$\displaystyle=\begin{bmatrix}\Lambda^{0}{}_{0}&\Lambda^{1}{}_{0}&\cdots&\Lambda^{d}{}_{0}\\\
\Lambda^{0}{}_{1}&\Lambda^{1}{}_{1}&\cdots&\Lambda^{d}{}_{1}\\\
\vdots&\vdots&\ddots&\vdots\\\
\Lambda^{0}{}_{d}&\Lambda^{1}{}_{d}&\cdots&\Lambda^{d}{}_{d}\end{bmatrix}.$
(31)

This can be shown as follows:

$\displaystyle\overrightarrow{x^{\prime}}\cdot\overrightarrow{y^{\prime}}$
$\displaystyle=\left(\Lambda\overrightarrow{x}\right)\cdot\left(\Lambda\overrightarrow{y}\right)=\left(\Lambda\overrightarrow{x}\right)^{\text{T}}\eta\,\left(\Lambda\overrightarrow{y}\right)=\overrightarrow{x}^{\text{T}}\left(\Lambda^{\text{T}}\,\eta\,\Lambda\right)\overrightarrow{y},$
(32)

where the matrix notation is used in the second step as in Eq. (20). That is,
$\Lambda$ is a Lorentz transformation when and only when Eq. (30) is
satisfied. It is important that any Lorentzian norm, say
$\left[\overrightarrow{x}\right]^{2}$, is then _Lorentz-invariant_ :

$\displaystyle\left[\overrightarrow{x}\right]^{2}$
$\displaystyle\to\left[\overrightarrow{x}^{\prime}\right]^{2}=\left[\Lambda\overrightarrow{x}\right]^{2}=\left[\overrightarrow{x}\right]^{2}.$
(33)

Physically, we are looking for linear transformations that leave the speed of
light invariant. If the speed of light is invariant, then a spherical
wavefront of light that is emitted from the same point should be transformed
to a spherical one. The wavefront of a spherical wave of light emitted from
the origin at $t=0$ is represented by $\left[\overrightarrow{x}\right]^{2}=0$.
We see that the Lorentz transformation indeed leaves it spherical:151515 The
_dilatation_ $\overrightarrow{x}\to b\overrightarrow{x}$, with $b\neq 0$ being
a constant, also leaves the condition $\left[\overrightarrow{x}\right]^{2}=0$
unchanged. The invariance under dilations, called the _scale invariance_ , is
violated by the _conformal anomaly_ in quantum field theories in general.
Otherwise, the dilatation is excluded from the _symmetry_ of the system of our
consideration under the following two assumptions [18]: First, a _boost_ along
a direction with a given velocity $v$, combined with another boost along the
same direction but with the negative velocity $-v$, becomes an identity
transformation. Second, the length of a measuring rod perpendicular to the
boost direction becomes identical to each other when its boost is with the
velocity $v$ and $-v$.
$\left[\overrightarrow{x^{\prime}}\right]^{2}=\left[\overrightarrow{x}\right]^{2}=0$.

In general, $\Lambda$ has $D\left(D-1\right)/2=d\left(d+1\right)/2$ degrees of
freedom, and can be parametrized as

$\displaystyle\Lambda$ $\displaystyle=L\,\mathcal{R},$ (34)

where $L$ is a _boost_ matrix and

$\displaystyle\mathcal{R}$ $\displaystyle=\begin{bmatrix}1&0&\cdots&0\\\
0&R_{11}&\cdots&R_{1d}\\\ \vdots&\vdots&\ddots&\vdots\\\
0&R_{d1}&\cdots&R_{dd}\end{bmatrix}=\begin{bmatrix}1&\boldsymbol{0}^{\text{T}}\\\
\boldsymbol{0}&R\end{bmatrix},$ (35)

in which $R$ is an ordinary rotation matrix in $d$ spatial dimensions and
$\boldsymbol{0}^{\text{T}}=\begin{bmatrix}0&\cdots&0\end{bmatrix}$. We note
that $R$ obeys

$\displaystyle R^{\text{T}}R=\text{I},$ (36)

where I is the $d$-dimensional identity matrix; see also footnote 13. The
$d$-dimensional rotation matrix $R$ has ${d\left(d-1\right)\over 2}$ degrees
of freedom. The remaining ${d\left(d+1\right)\over 2}-{d\left(d-1\right)\over
2}=d$ degrees of freedom in $\Lambda$ are in the boost matrix $L$. A concrete
parametrization of $L$ will be given in Sec. 2.5 after we introduce more
physics.

###  2.4 Proper time and Lorentz-covariant velocity

Special relativity is defined as a theory that is _invariant_ under Lorentz
transformations. Therefore, it is important to write the theory in terms of
_Lorentz-invariant_ quantities. A Lorentz-invariant quantity can be formed as
a Lorentzian inner product (20) or a norm (22). They are composed from $D$
vectors, which are _Lorentz covariant_. Therefore, it is important that
things, such as the velocity and acceleration, are written as Lorentz-
covariant $D$ vectors.

We start from a coordinate system $\Set{\overrightarrow{x}}$. Suppose that an
infinitesimal shift of the worldline parameter $s$ in Eq. (8) changes the
position of the particle in $D$ spacetime dimensions:

$\displaystyle\overrightarrow{x}\\!\left(s\right)$
$\displaystyle\longmapsto\overrightarrow{x}\\!\left(s+\Delta s\right),$
$\displaystyle\begin{bmatrix}x^{0}\\!\left(s\right)\\\
x^{1}\\!\left(s\right)\\\ \vdots\\\ x^{d}\\!\left(s\right)\end{bmatrix}$
$\displaystyle\longmapsto\begin{bmatrix}x^{0}\\!\left(s+\Delta s\right)\\\
x^{1}\\!\left(s+\Delta s\right)\\\ \vdots\\\ x^{d}\\!\left(s+\Delta
s\right)\end{bmatrix}.$ (37)

We can define the displacement $D$ vector:

$\displaystyle\overrightarrow{\Delta x}$
$\displaystyle:=\overrightarrow{x}\\!\left(s+\Delta
s\right)-\overrightarrow{x}\\!\left(s\right),$ (38)

i.e.,

$\displaystyle\overrightarrow{\Delta x}=\begin{bmatrix}\Delta x^{0}\\\
\Delta\boldsymbol{x}\end{bmatrix}$
$\displaystyle=\begin{bmatrix}x^{0}\\!\left(s+\Delta s\right)\\\
\boldsymbol{x}\\!\left(s+\Delta
s\right)\end{bmatrix}-\begin{bmatrix}x^{0}\\!\left(s\right)\\\
\boldsymbol{x}\\!\left(s\right)\end{bmatrix}$
$\displaystyle=\begin{bmatrix}x^{0}\\!\left(s+\Delta
s\right)-x^{0}\\!\left(s\right)\\\ \boldsymbol{x}\\!\left(s+\Delta
s\right)-\boldsymbol{x}\\!\left(s\right)\end{bmatrix}=\begin{bmatrix}x^{0}\\!\left(s+\Delta
s\right)-x^{0}\\!\left(s\right)\\\ x^{1}\\!\left(s+\Delta
s\right)-x^{1}\\!\left(s\right)\\\ \vdots\\\ x^{d}\\!\left(s+\Delta
s\right)-x^{d}\\!\left(s\right)\end{bmatrix}.$ (39)

There are three possibilities for the particle’s move in classical physics:

  * •

An ordinary _massive_ particle always goes time-like:
$\left[\overrightarrow{\Delta x}\right]^{2}<0$, where the square denotes the
Lorentzian norm (22).

  * •

A _massless_ particle, such as a _photon_ of which _light_ consists, always
goes light-like: $\left[\overrightarrow{\Delta x}\right]^{2}=0$.

  * •

A _tachyon_ always goes space-like: $\left[\overrightarrow{\Delta
x}\right]^{2}>0$.

The existence of a tachyon indicates a pathology of the system, and violates
_causality_ in general.161616 In quantum field theory, the existence of a
tachyon indicates that one is on a _false vacuum_ , which will eventually roll
down to a _true vacuum_ that does not have a tachyon. Therefore, you must be
careful in introducing a tachyon in your computer game. Hereafter, we focus on
massive and massless particles. The time difference in this step is ${\Delta
x}^{0}$. We assume that none of the massive and massless particles go backward
in time.171717 In quantum field theory, a particle going backward in time is
identical to its _antiparticle_ going forward in time.  That is, we assume
that ${\Delta x}^{0}>0$.

For a massive particle, we define its _proper time_ $\tau$ such that it
increases by an amount

$\displaystyle\Delta\tau$ $\displaystyle:=\sqrt{-\left[\overrightarrow{\Delta
x}\right]^{2}}$ $\displaystyle=\sqrt{\left({\Delta
x}^{0}\right)^{2}-\left(\Delta\boldsymbol{x}\right)^{2}}={\Delta
x}^{0}\sqrt{1-\left(\Delta\boldsymbol{x}\over{\Delta x}^{0}\right)^{2}}$ (40)

for an infinitesimal evolution $\overrightarrow{\Delta x}$. It is important to
note that the proper time is, by definition, manifestly _Lorentz
invariant_.181818 For massive particles, we may e.g. use $\tau$ as the
worldline parameter $s$. Instead, we may also choose an arbitrary
monotonically increasing function of $\tau$ as $s$; see footnote 8.  Note that
the proper time is defined for _each_ particle individually.

Now we can define the $D$ velocity for the massive particle:

$\displaystyle\overrightarrow{u}\\!\left(s\right)$
$\displaystyle:=\lim_{\Delta s\to 0}{\overrightarrow{x}\\!\left(s+\Delta
s\right)-\overrightarrow{x}\\!\left(s\right)\over\Delta\tau}={\text{d}\overrightarrow{x}\over\text{d}\tau},$
(41)

where $\Delta\tau$ is given in Eq. (40). By definition, $\overrightarrow{u}$
is a _Lorentz-covariant_ $D$ vector.191919 Something is Lorentz covariant if
it transforms as a _representation_ of the Lorentz transformations. In
particular, if it transforms as a vector as in Eq. (42), it is a Lorentz-
covariant $D$ vector.  That is, for a Lorentz transformation
$\overrightarrow{x}\to\overrightarrow{x^{\prime}}=\Lambda\overrightarrow{x}$,
it is straightforward to show that $\overrightarrow{u}$ is covariant:

$\displaystyle\overrightarrow{u}$
$\displaystyle\to\overrightarrow{u^{\prime}}=\lim_{\Delta s\to
0}{\Lambda\overrightarrow{x}\\!\left(s+\Delta
s\right)-\Lambda\overrightarrow{x}\\!\left(s\right)\over\Delta\tau}=\Lambda\overrightarrow{u},$
(42)

where we have used the Lorentz invariance of $\Delta\tau$ defined in Eq. (40).
Note that, by definition,

$\displaystyle\left[\overrightarrow{u}\right]^{2}$ $\displaystyle=-1.$ (43)

We hereafter choose the spatial component $\boldsymbol{u}$ as the $d$
independent parameters, and then the time component of the $D$ velocity is not
independent:

$\displaystyle u^{0}$
$\displaystyle=\sqrt{1+\boldsymbol{u}^{2}}=\sqrt{1+\left(u^{1}\right)^{2}+\cdots+\left(u^{d}\right)^{2}}.$
(44)

The evolution (37) for a small proper-time step $\Delta\tau$ now reads

$\displaystyle\overrightarrow{x}\\!\left(\tau\right)$
$\displaystyle\longmapsto\overrightarrow{x}\\!\left(\tau+\Delta\tau\right)=\overrightarrow{x}\\!\left(\tau\right)+\overrightarrow{u}\\!\left(\tau\right)\,\Delta\tau,$
$\displaystyle\begin{bmatrix}x^{0}\\!\left(\tau\right)\\\
x^{1}\\!\left(\tau\right)\\\ \vdots\\\ x^{d}\\!\left(\tau\right)\end{bmatrix}$
$\displaystyle\longmapsto\begin{bmatrix}x^{0}\\!\left(\tau+\Delta\tau\right)\\\
x^{1}\\!\left(\tau+\Delta\tau\right)\\\ \vdots\\\
x^{d}\\!\left(\tau+\Delta\tau\right)\end{bmatrix}=\begin{bmatrix}x^{0}\\!\left(\tau\right)\\\
x^{1}\\!\left(\tau\right)\\\ \vdots\\\
x^{d}\\!\left(\tau\right)\end{bmatrix}+\begin{bmatrix}u^{0}\\!\left(\tau\right)\\\
u^{1}\\!\left(\tau\right)\\\ \vdots\\\
u^{d}\\!\left(\tau\right)\end{bmatrix}\Delta\tau.$ (45)

We note that the ordinary Lorentz-noncovariant velocity $\boldsymbol{v}$ in
this particular coordinate system is given by

$\displaystyle\boldsymbol{v}$ $\displaystyle=\lim_{\Delta s\to
0}{\Delta\boldsymbol{x}\over{\Delta
x}^{0}}={\text{d}\boldsymbol{x}\over\text{d}t},$ (46)

where $\Delta\boldsymbol{x}$ and $\Delta x^{0}$ are given in Eq. (39) and, in
the last step, we have tentatively come back from the natural units for a
reader unfamiliar with dimensional analysis; see Eq. (3). Using this Lorentz-
noncovariant velocity, one can show that the spatial component of
$\overrightarrow{u}$ becomes

$\displaystyle\boldsymbol{u}$ $\displaystyle=\lim_{\Delta s\to
0}{\Delta\boldsymbol{x}\over\sqrt{\left({\Delta
x}^{0}\right)^{2}-\left(\Delta\boldsymbol{x}\right)^{2}}}=\lim_{\Delta s\to
0}{{\Delta\boldsymbol{x}\over{\Delta
x}^{0}}\over\sqrt{1-\left(\Delta\boldsymbol{x}\over{\Delta
x}^{0}\right)^{2}}},$ (47)

i.e.,

$\displaystyle\boldsymbol{u}$
$\displaystyle={\boldsymbol{v}\over\sqrt{1-\boldsymbol{v}^{2}}},$
$\displaystyle\boldsymbol{v}$
$\displaystyle={\boldsymbol{u}\over\sqrt{1+\boldsymbol{u}^{2}}}.$ (48)

There is a one-to-one correspondence between $\boldsymbol{u}$ and
$\boldsymbol{v}$. We see that for a massive particle, the possible values of
$\boldsymbol{v}$ are $\left|\boldsymbol{v}\right|<1$, or
$\left|\boldsymbol{v}\right|<c$ when we recover $c$. On the other hand,
$\left|\boldsymbol{u}\right|$ can be arbitrarily large. When the particle’s
velocity is much smaller than the speed of light
$\left|\boldsymbol{v}\right|\ll c=1$, we see that the covariant and
noncovariant velocities match each other:

$\displaystyle\boldsymbol{u}$
$\displaystyle=\boldsymbol{v}+\mathcal{O}\\!\left(\left|\boldsymbol{v}\right|^{3}\right),$
$\displaystyle\boldsymbol{v}$
$\displaystyle=\boldsymbol{u}+\mathcal{O}\\!\left(\left|\boldsymbol{u}\right|^{3}\right),$
(49)

where $\mathcal{O}\\!\left(\epsilon^{n}\right)$ is the _Landau symbol_
representing the terms of order $\epsilon^{n}$ and higher as $\epsilon\to 0$.

From Eq. (40), we can write the infinitesimal time difference ${\Delta x}^{0}$
in this particular coordinate system as

$\displaystyle{\Delta x}^{0}$
$\displaystyle={1\over\sqrt{1-\boldsymbol{v}^{2}}}\,\Delta\tau.$ (50)

In terms of $\boldsymbol{u}$, the relation (50) can be written as

$\displaystyle{\Delta x}^{0}$ $\displaystyle=\gamma\,\Delta\tau,$ (51)

where the _Lorentz factor_ $\gamma$ is defined by

$\displaystyle\gamma\\!\left(\boldsymbol{u}\right)$
$\displaystyle:=\sqrt{1+\boldsymbol{u}^{2}}=u^{0}={1\over\sqrt{1-\boldsymbol{v}^{2}}}\geq
1.$ (52)

Note that
$\gamma\\!\left(-\boldsymbol{u}\right)=\gamma\\!\left(\boldsymbol{u}\right)$
and that $\gamma\\!\left(\boldsymbol{0}\right)=1$. Hereafter, $\boldsymbol{v}$
does not play any role in the actual formulation of the relativity since
$\boldsymbol{v}$ is a Lorentz-noncovariant quantity, and we simply call
$\boldsymbol{u}$ (rather than $\boldsymbol{v}$) the velocity unless otherwise
stated.

We also define the $D$ acceleration,

$\displaystyle\overrightarrow{a}\\!\left(s\right)$
$\displaystyle:=\lim_{\Delta s\to 0}{\overrightarrow{u}\\!\left(s+\Delta
s\right)-\overrightarrow{u}\\!\left(s\right)\over\Delta\tau}={\text{d}\overrightarrow{u}\over\text{d}\tau},$
(53)

where $\Delta\tau$ is given in Eq. (40).202020 The spatial component of $D$
acceleration, $\boldsymbol{a}$, differs from the one appearing in the
nonrelativistic equation of motion (13): The relativistic and nonrelativistic
ones are
$\boldsymbol{a}=\text{d}^{2}\boldsymbol{x}/\text{d}\tau^{2}=\text{d}u/\text{d}\tau$
and
$\boldsymbol{a}_{\text{NR}}=\text{d}^{2}\boldsymbol{x}/\left(\text{d}x^{0}\right)^{2}=\text{d}\boldsymbol{v}/\text{d}x^{0}$,
respectively. The latter never appears hereafter.  Note that, by taking the
$\tau$ derivative of $\left[\overrightarrow{u}\right]^{2}=-1$, we obtain

$\displaystyle\overrightarrow{u}\cdot\overrightarrow{a}$ $\displaystyle=0,$
(54)

and hence

$\displaystyle a^{0}$
$\displaystyle={\boldsymbol{u}\over\gamma\\!\left(\boldsymbol{u}\right)}\cdot\boldsymbol{a}$
$\displaystyle={1\over\gamma\\!\left(\boldsymbol{u}\right)}\sum_{i=1}^{d}u^{i}a^{i}$
(55)

in any coordinate system. In particular, $a^{0}=0$ whenever
$\boldsymbol{u}=\boldsymbol{0}$.

###  2.5 Rest frame

Let us show that we can always take a coordinate system in which a particle
appears to be at rest. Suppose that a particle has a velocity $\boldsymbol{u}$
in a particular coordinate system $\Set{\overrightarrow{x}}$ at a _given
single moment_ when its proper time is $\tau$. Then the following Lorentz
transformation makes $\overrightarrow{u}\to\left(1,\boldsymbol{0}\right)$:

$\displaystyle L\\!\left(\boldsymbol{u}\right)$
$\displaystyle:=\begin{bmatrix}\gamma\\!\left(\boldsymbol{u}\right)&-\boldsymbol{u}^{\text{T}}\\\
-\boldsymbol{u}&\text{I}+\left(\gamma\\!\left(\boldsymbol{u}\right)-1\right)\boldsymbol{\hat{u}}\boldsymbol{\hat{u}}^{\text{T}}\end{bmatrix},$
(56)

where
$\boldsymbol{\hat{u}}:=\boldsymbol{u}/\left|\boldsymbol{u}\right|$.212121 In
$D=1+1$ spacetime dimensions, Eq. (56) becomes  $\displaystyle
L=\begin{bmatrix}\sqrt{1+\left(u^{1}\right)^{2}}&-u^{1}\\\
-u^{1}&\sqrt{1+\left(u^{1}\right)^{2}}\end{bmatrix},$ which reduces to the
celebrated form appearing in Einstein’s original paper [18],  $\displaystyle
L=\begin{bmatrix}{1\over\sqrt{1-v^{2}}}&-{v\over\sqrt{1-v^{2}}}\\\
-{v\over\sqrt{1-v^{2}}}&{1\over\sqrt{1-v^{2}}}\end{bmatrix},$ when written in
terms of the noncovariant velocity $v:=u^{1}/\sqrt{1+\left(u^{1}\right)^{2}}$.
More explicitly,

$\displaystyle\boldsymbol{\hat{u}}$
$\displaystyle={1\over\sqrt{\left(u^{1}\right)^{2}+\cdots+\left(u^{d}\right)^{2}}}\begin{bmatrix}u^{0}\\\
u^{1}\\\ \vdots\\\ u^{d}\end{bmatrix},$
$\displaystyle\boldsymbol{\hat{u}}\boldsymbol{\hat{u}}^{\text{T}}$
$\displaystyle={1\over\left(u^{1}\right)^{2}+\cdots+\left(u^{d}\right)^{2}}\begin{bmatrix}u^{1}u^{1}&\cdots&u^{1}u^{d}\\\
\vdots&\ddots&\vdots\\\ u^{d}u^{1}&\cdots&u^{d}u^{d}\end{bmatrix}.$ (57)

One can verify that $L\\!\left(\boldsymbol{u}\right)$ indeed transforms
$\overrightarrow{u}$ to rest, that $L\\!\left(-\boldsymbol{u}\right)$ is the
inverse matrix of $L\\!\left(\boldsymbol{u}\right)$, and that
$L\\!\left(\boldsymbol{u}\right)$ satisfies the condition for the Lorentz
transformation (30), respectively:

$\displaystyle\overrightarrow{u}\to\overrightarrow{U}:=L\\!\left(\boldsymbol{u}\right)\overrightarrow{u}$
$\displaystyle=\begin{bmatrix}1\\\ \boldsymbol{0}\end{bmatrix},$
$\displaystyle L\\!\left(-\boldsymbol{u}\right)$
$\displaystyle=\left[L\\!\left(\boldsymbol{u}\right)\right]^{-1},$
$\displaystyle\left[L\\!\left(\boldsymbol{u}\right)\right]^{\text{T}}\eta\,L\\!\left(\boldsymbol{u}\right)$
$\displaystyle=\eta.$ (58)

In the new coordinate system
$\Set{\overrightarrow{X}}{\overrightarrow{X}=L\\!\left(\boldsymbol{u}\right)\overrightarrow{x}}$,
namely the _rest frame_ for the particle at the proper time $\tau$, we have
$\boldsymbol{U}=\boldsymbol{0}$ at that moment. Hereafter, we write quantities
in someone’s rest frame in upper case in general, unless otherwise stated.
During the subsequent infinitesimal time evolution, we get $\Delta\tau=\Delta
X^{0}$ because $\gamma\\!\left(\boldsymbol{0}\right)=1$. That is, the proper-
time flow of the particle is nothing but the time flow in each rest frame in
each time step. Therefore, the proper time is the time felt by the particle
itself. Now we can interpret from Eq. (51) that the time difference ${\Delta
x}^{0}$ in an arbitrary frame (other than the rest frame) is always larger
than the proper time $\Delta\tau$ felt by the moving particle itself.222222
The time difference ${\Delta x}^{0}$ is not an actual time difference seen by
any observer. We will see that the actual time difference for an observer is
the one deduced from the time foliation by the observer’s past light cones
rather than by an equal-time slice. See Sec. 3.1.  This phenomenon is called
_time dilation_.

Einstein’s _equivalence principle_ asserts that the physical law for a moving
particle is the same as the one that is Lorentz-transformed from the law of
the particle at rest. That is, one can write the relativistic equation of
motion just by replacing $\text{d}t$ by $\text{d}\tau$:232323 As both sides
are _covariant_ , the equation of motion becomes _invariant_ under the Lorentz
transformations: $m\overrightarrow{a}=\overrightarrow{f}$ is transformed to
$m\Lambda\overrightarrow{a}=\Lambda\overrightarrow{f}$, which comes back to
$m\overrightarrow{a}=\overrightarrow{f}$ by multiplying $\Lambda^{-1}$ on the
both sides.

$\displaystyle m\overrightarrow{a}$ $\displaystyle=\overrightarrow{f},$ (59)

where $\overrightarrow{f}$ is nothing but the $D$ vector transformed from the
rest-frame force felt by the particle:

$\displaystyle\overrightarrow{f}=L\\!\left(-\boldsymbol{u}\right)\begin{bmatrix}0\\\
\boldsymbol{F}\end{bmatrix}.$ (60)

Note that the 0th (time) component of the $D$ force in the rest frame must be
zero in order for the equation of motion (59) to hold; see the discussion
after Eq. (55). That is, the 0th component of the equation of motion does not
have independent information.

Conversely, for a given acceleration $\boldsymbol{A}$ in the rest frame, we
obtain the $D$ acceleration in any frame in which the particle has the
velocity $\boldsymbol{u}$:

$\displaystyle\overrightarrow{a}$
$\displaystyle=L\\!\left(-\boldsymbol{u}\right)\begin{bmatrix}0\\\
\boldsymbol{A}\end{bmatrix}=\begin{bmatrix}\boldsymbol{u}\cdot\boldsymbol{A}\\\
\boldsymbol{A}+\left(\gamma\\!\left(\boldsymbol{u}\right)-1\right)\left(\boldsymbol{A}\cdot\boldsymbol{\hat{u}}\right)\boldsymbol{\hat{u}}\end{bmatrix}.$
(61)

That is,

$\displaystyle\boldsymbol{a}=\boldsymbol{A}+\left(\gamma\\!\left(\boldsymbol{u}\right)-1\right)\left(\boldsymbol{A}\cdot\boldsymbol{\hat{u}}\right)\boldsymbol{\hat{u}}.$
(62)

In particular, if there is no acceleration in the rest frame
$\boldsymbol{A}=\boldsymbol{0}$, the acceleration vanishes in any frame
$\boldsymbol{a}=\boldsymbol{0}$. We may also show that, when
$\boldsymbol{a}=\boldsymbol{0}$ in a frame, then the $D$ acceleration vanishes
in any frame.242424 Suppose that $\boldsymbol{a}=\boldsymbol{0}$ in a frame:
$\overrightarrow{a}=\left(a^{0},\boldsymbol{0}\right)$. We write the velocity
in this frame $\boldsymbol{u}$. Then the rest-frame acceleration reads
$\displaystyle\begin{bmatrix}0\\\ \boldsymbol{A}\end{bmatrix}$
$\displaystyle=L\\!\left(\boldsymbol{u}\right)\begin{bmatrix}a^{0}\\\
\boldsymbol{0}\end{bmatrix}=a^{0}\begin{bmatrix}\gamma\\!\left(\boldsymbol{u}\right)\\\
-\boldsymbol{u}\end{bmatrix}.$ Since $\gamma\\!\left(\boldsymbol{u}\right)\geq
1$, $a^{0}=0$ results from the time component of this equation. This means
$\overrightarrow{a}=0$. Any Lorentz transformation of the zero vector is zero:
$\Lambda\overrightarrow{0}=\overrightarrow{0}$. Therefore the $D$ acceleration
is zero in any frame if $\boldsymbol{a}=\boldsymbol{0}$ in a frame.

We note that it is perfectly legitimate to work within the framework of
special relativity in order to handle an acceleration unless it is due to
gravitational interactions. When and only when the gravitational interactions
are strong enough, we need general relativity for a full treatment.

##  3 Drawing the world

We show how to draw the relativistic world for a given set of worldlines of
all the objects. A schematic figure for this section is presented in Fig. 3.

First we arbitrarily choose a _reference frame_ $\Set{\overrightarrow{x}}$ and
store all the information as written in this coordinate system. In practice,
it is convenient to choose a reference frame such that background objects are
at rest in the frame.252525 In our real Universe, we can define the absolute
rest frame such that the dipole component of the cosmic microwave background
vanishes; see Ref. [19] for latest observational results on the cosmic
microwave background.  Hereafter, we write the reference-frame quantities in
lower case, unless otherwise stated.

Figure 3: Schematic figure showing the observer’s future and past light cones
in $2+1$ spacetime dimensions. The other’s worldline is shown to indicate the
spacetime point that is seen by the observer.

###  3.1 Drawing the world on the observer’s past light cone

For an observer at a spacetime point $\overrightarrow{x_{\text{O}}}$, the
hypersurface consisting of possible light rays that can come to
$\overrightarrow{x_{\text{O}}}$ is the past light cone (PLC):

$\displaystyle\operatorname{PLC}\\!\left(\overrightarrow{x_{\text{O}}}\right)$
$\displaystyle=\Set{\overrightarrow{x}}{\left[\overrightarrow{x}-\overrightarrow{x_{\text{O}}}\right]^{2}=0,\quad
x^{0}<x_{\text{O}}^{0}}.$ (63)

For later use, we also define the future light cone (FLC):

$\displaystyle\operatorname{FLC}\\!\left(\overrightarrow{x_{\text{O}}}\right)$
$\displaystyle=\Set{\overrightarrow{x}}{\left[\overrightarrow{x}-\overrightarrow{x_{\text{O}}}\right]^{2}=0,\quad
x^{0}>x_{\text{O}}^{0}}.$ (64)

We say that a spacetime point $\overrightarrow{x}$ is on the _past side_ of
$\operatorname{PLC}\\!\left(\overrightarrow{x_{\text{O}}}\right)$ when
$\left[\overrightarrow{x}-\overrightarrow{x_{\text{O}}}\right]^{2}<0$ (time-
like separation) and $x_{\text{O}}^{0}>x^{0}$ ($\overrightarrow{x}$ is on the
past of $\overrightarrow{x_{\text{O}}}$). We also say that
$\overrightarrow{x}$ is on the _future side_ of
$\operatorname{PLC}\\!\left(\overrightarrow{x_{\text{O}}}\right)$ when
$\overrightarrow{x}$ is neither on
$\operatorname{PLC}\\!\left(\overrightarrow{x_{\text{O}}}\right)$ nor on its
past side. The observer can see the world sliced by its
$\operatorname{PLC}\\!\left(\overrightarrow{x_{\text{O}}}\right)$, i.e., the
observer can know things on
$\operatorname{PLC}\\!\left(\overrightarrow{x_{\text{O}}}\right)$ and its past
side. It is important that the PLC is Lorentz invariant in the sense that, if
a particle is on the PLC, it remains so in any Lorentz-transformed
frame.262626 More precisely, this is the case for the _proper orthochronous
Lorentz transformation_ that satisfies $\det\Lambda=1$ and
$\Lambda^{0}{}_{0}\geq 1$, where $\det\Lambda=\pm 1$ and
$\left|\Lambda^{0}{}_{0}\right|\geq 1$ follow from Eq. (30) generally. Any
Lorentz transformation is either proper orthochronous or obtained by
multiplying a _time reversal_ $\operatorname{diag}\\!\left(-1,1,1,1\right)$
and/or a _space inversion_ $\operatorname{diag}\\!\left(1,-1,-1,-1\right)$
onto the proper orthochronous one.  This is also the case for the notion of
the past and future sides of the PLC, and similarly for the FLC and both its
sides.

Let $W_{n}$ be the worldline of the $n$th particle:

$\displaystyle W_{n}$
$\displaystyle=\Set{\overrightarrow{x_{n}}\\!\left(\tau\right)}{\tau_{n}^{\text{ini}}\leq\tau\leq\tau_{n}^{\text{fin}}},$
(65)

where $\tau_{n}^{\text{ini}}$ and $\tau_{n}^{\text{fin}}$ are the initial and
final proper times of the worldline. The observer at
$\overrightarrow{x_{\text{O}}}$ sees this particle at the intersecting point
between $\operatorname{PLC}\\!\left(\overrightarrow{x_{\text{O}}}\right)$ and
$W_{n}$, which we write as

$\displaystyle\overrightarrow{x_{n}}^{\operatorname{PLC}\left(\overrightarrow{x_{\text{O}}}\right)}$
(66)

hereafter. How to determine the intersection in a concrete implementation will
be explained in Sec. 3.3.

An observer having a velocity $\boldsymbol{u_{\text{O}}}$ in the reference
frame $\Set{\overrightarrow{x}}$ sees the world in the _observer’s rest frame_
:272727 If one wants to place the observer at the origin, one may take, so to
say, a _central frame_
$\Set{\overrightarrow{X}}{\overrightarrow{X}=L\\!\left(\boldsymbol{u_{\text{O}}}\right)\left(\overrightarrow{x}-\overrightarrow{x_{\text{O}}}\right)}$,
which differs from the rest frame (67) just by a _translation_ , a constant
shift of the coordinate origin by the $D$ vector
$L\\!\left(\boldsymbol{u_{\text{O}}}\right)\overrightarrow{x_{\text{O}}}$; see
footnote 11.

$\displaystyle\Set{\overrightarrow{X}}{\overrightarrow{X}=L\\!\left(\boldsymbol{u_{\text{O}}}\right)\overrightarrow{x}}.$
(67)

Each of all the other particles, say the $n$th one, is seen by the player as
located at

$\displaystyle\overrightarrow{X_{n}}^{\operatorname{PLC}\left(\overrightarrow{X_{\text{O}}}\right)}=L\\!\left(\boldsymbol{u}_{\text{O}}\right)\overrightarrow{x_{n}}^{\operatorname{PLC}\left(\overrightarrow{x_{\text{O}}}\right)},$
(68)

where
$\overrightarrow{X_{\text{O}}}=L\\!\left(\boldsymbol{u_{\text{O}}}\right)\overrightarrow{x_{\text{O}}}$.282828
$\operatorname{PLC}\\!\left(\overrightarrow{x_{\text{O}}}\right)$ and
$\operatorname{PLC}\\!\left(\overrightarrow{X_{\text{O}}}\right)$ are the
same. We use the latter in the left-hand side of Eq. (68) so that all
quantities are given in the rest frame there.  Similarly, the velocity
$\overrightarrow{u_{n}}^{\operatorname{PLC}\left(\overrightarrow{x_{\text{O}}}\right)}$
of the $n$th particle at
$\overrightarrow{x_{n}}^{\operatorname{PLC}\left(\overrightarrow{x_{\text{O}}}\right)}$
is seen by the player as

$\displaystyle\overrightarrow{U_{n}}^{\operatorname{PLC}\left(\overrightarrow{X_{\text{O}}}\right)}=L\\!\left(\boldsymbol{u}_{\text{O}}\right)\overrightarrow{u_{n}}^{\operatorname{PLC}\left(\overrightarrow{x_{\text{O}}}\right)}.$
(69)

These are all needed to draw the world fully relativistically.

###  3.2 Discrete worldline

The program stores the worldline of each particle in the reference frame
$\Set{\overrightarrow{x}}$. Due to the iterations, each worldline becomes a
discrete set of its past spacetime points, just as in the Newtonian case (15):

$\displaystyle W$
$\displaystyle=\Set{\overrightarrow{x}\\!\left(s_{1}\right),\,\overrightarrow{x}\\!\left(s_{2}\right),\,\dots,\,\overrightarrow{x}\\!\left(s_{N_{W}}\right)}=:\Set{\overrightarrow{x_{1}},\dots,\overrightarrow{x_{N_{W}}}},$
(70)

where $s_{\texttt{t}}$ ($\texttt{t}=1,\dots,N_{W}$) is the parameter of the
worldline, which can be identified as the proper time of the particle—we have
abbreviated them as
$\overrightarrow{x_{\texttt{t}}}:=\overrightarrow{x}\\!\left(s_{\texttt{t}}\right)$—and
we always order from past to future: $s_{1}<s_{2}<\cdots<s_{N_{W}}$. The
velocity $\overrightarrow{u_{\texttt{t}}}$ between
$\overrightarrow{x_{\texttt{t}-1}}$ and $\overrightarrow{x_{\texttt{t}}}$ is
given as

$\displaystyle\overrightarrow{u_{\texttt{t}}}$
$\displaystyle={\overrightarrow{\Delta
x_{\texttt{t}}}\over\sqrt{-\left[\overrightarrow{\Delta
x_{\texttt{t}}}\right]^{2}}},$ (71)

where $\overrightarrow{\Delta
x_{\texttt{t}}}:=\overrightarrow{x_{\texttt{t}}}-\overrightarrow{x_{\texttt{t}-1}}$.

###  3.3 Intersection between worldline and PLC

As discussed above, it is important to compute the intersection between a
worldline and a light cone. Let us spell out the method to obtain the
intersection between the worldline (70) and
$\operatorname{PLC}\\!\left(\overrightarrow{x_{\text{O}}}\right)$:

  * •

From the past to the future $\overrightarrow{x_{\texttt{t}}}$ with
$\texttt{t}=1,2,\dots$, we check if $\overrightarrow{x_{\texttt{t}}}$ is on
the past side of
$\operatorname{PLC}\\!\left(\overrightarrow{x_{\text{O}}}\right)$; namely,
check if

$\displaystyle\left[\overrightarrow{x_{\text{O}}}-\overrightarrow{x_{\texttt{t}}}\right]^{2}<0\qquad\text{and}\qquad
x_{\text{O}}^{0}>x_{\texttt{t}}^{0}.$ (72)

The first point $\overrightarrow{x_{\texttt{t}^{\prime}}}$ that violates this
condition is the point that is closest to
$\operatorname{PLC}\\!\left(\overrightarrow{x_{\text{O}}}\right)$ in $W$ on
the future side of
$\operatorname{PLC}\\!\left(\overrightarrow{x_{\text{O}}}\right)$.

  * •

Between the adjacent points $\overrightarrow{x_{\tt t^{\prime}-1}}$ and
$\overrightarrow{x_{\texttt{t}^{\prime}}}$, the worldline is obtained by
linear interpolation:

$\displaystyle\overrightarrow{x}\\!\left(\sigma\right)$
$\displaystyle=\left(1-\sigma\right)\,\overrightarrow{x_{\tt
t^{\prime}-1}}+\sigma\,\overrightarrow{x_{\texttt{t}^{\prime}}},$ (73)

where $0\leq\sigma\leq 1$.

  * •

The intersecting point $\overrightarrow{x}\\!\left(\sigma\right)$ should
satisfy

$\displaystyle\left[\overrightarrow{x}\\!\left(\sigma\right)-\overrightarrow{x_{\text{O}}}\right]^{2}=0,$
(74)

i.e.,292929 The other point
$\sigma=\left(\beta+\sqrt{\beta^{2}-\alpha\gamma}\right)/\alpha$ gives the
intersection with the future light cone.

$\displaystyle\sigma$
$\displaystyle={\beta-\sqrt{\beta^{2}-\alpha\gamma}\over\alpha},$ (75)

where303030 be careful with the abuse of notation: $\gamma$ here has nothing
to do with the Lorentz factor.

$\displaystyle\alpha$
$\displaystyle:=-\left[\overrightarrow{x_{\text{O}}}-\overrightarrow{x_{\texttt{t}^{\prime}-1}}\right]^{2}>0,$
(76) $\displaystyle\beta$
$\displaystyle:=-\left[\overrightarrow{x_{\text{O}}}-\overrightarrow{x_{\texttt{t}^{\prime}-1}},\,\overrightarrow{x_{\texttt{t}^{\prime}}}-\overrightarrow{x_{\texttt{t}^{\prime}-1}}\right]>0,$
(77) $\displaystyle\gamma$
$\displaystyle:=-\left[\overrightarrow{x_{\texttt{t}^{\prime}}}-\overrightarrow{x_{\texttt{t}^{\prime}-1}}\right]^{2}>0.$
(78)

This value of $\sigma$ gives the intersecting point
$\overrightarrow{x}^{\operatorname{PLC}\left(\overrightarrow{x_{\text{O}}}\right)}$.

###  3.4 Short summary

At each moment, we draw all the objects as if each of them is placed at the
spatial position
$\boldsymbol{x}^{\operatorname{PLC}\left(\overrightarrow{x_{\text{O}}}\right)}$.
Once all the spatial positions are given, concrete implementation of the
drawing of the world is the same as in ordinary nonrelativistic 3D games. An
approximate treatment of a rigid body will be presented in Sec. 5.3.

##  4 Time evolution

We show how to take into account the relativistic time evolution of the
system, with an application to a first-person shooter (FPS) in mind. As
reviewed above, a game in Newtonian mechanics draws the world at each _equal-
time slice_. One problem is that such a time slice is not Lorentz invariant
and is not compatible with relativity. Instead we employ the foliation of
spacetime by the PLCs of the player, which is Lorentz invariant, as reviewed
above. A schematic diagram is shown in Fig. 4.

###  4.1 Player’s time evolution

Figure 4: Schematic diagram in $1+1$ spacetime dimensions for the time
evolution of the player and the $n$th particle under the PLC foliation.

What should the time evolution be? At each time step, the future-most surface
of the world that is perceivable by the player is
$\operatorname{PLC}\\!\left(\overrightarrow{x_{\text{P}}}\right)$, on which
the particle’s latest position $\overrightarrow{x}$ is located. In the next
iteration, the game program calls the real time passed, $\Delta t$, which is
identified as the player’s proper time passed, $\Delta\tau_{\text{P}}$. In the
iteration, the player’s proper time, position, and velocity move to,
respectively,

$\displaystyle\tau_{\text{P}}$
$\displaystyle\longmapsto\tau_{\text{P}}+\Delta\tau_{\text{P}},$
$\displaystyle\overrightarrow{x_{\text{P}}}$
$\displaystyle\longmapsto\overrightarrow{x_{\text{P}}}+\overrightarrow{u_{\text{P}}}\,\Delta\tau_{\text{P}},$
$\displaystyle\overrightarrow{u_{\text{P}}}$
$\displaystyle\longmapsto\overrightarrow{u_{\text{P}}}+\overrightarrow{a_{\text{P}}}\,\Delta\tau_{\text{P}},$
(79)

with

$\displaystyle\overrightarrow{a_{\text{P}}}$
$\displaystyle:=L\\!\left(-\boldsymbol{u}_{\text{P}}\right)\begin{bmatrix}0\\\
\boldsymbol{A_{\text{P}}}\end{bmatrix},$ (80)

where $\boldsymbol{A_{\text{P}}}$ is the acceleration of the player given at
its rest frame, determined by

$\displaystyle\boldsymbol{A_{\text{P}}}={\boldsymbol{F}_{\text{P}}\over
m_{\text{P}}},$ (81)

in which $\boldsymbol{F}_{\text{P}}$ is the ordinary Newtonian force felt by
the player in its rest frame, coming both from the player’s own input and from
influences from its environment and others. Concrete examples of how to give
$\boldsymbol{A_{\text{P}}}$ will be shown in Sec. 4.5.

We update the values of the player’s proper time, position, and velocity as in
Eq. (79). Now the player’s new position
$\overrightarrow{x_{\text{P}}^{\prime}}$ is determined, and we know the new
$\operatorname{PLC}\\!\left(\overrightarrow{x_{\text{P}}^{\prime}}\right)$
which is used to draw the world in the next iteration.

We add the new point

$\displaystyle\overrightarrow{x_{\text{P}}^{\prime}}:=\overrightarrow{x_{\text{P}}}+\overrightarrow{u_{\text{P}}}\Delta\tau_{\text{P}}$
(82)

to the last of the player’s worldline set, as described in Sec. 3.2. The
player may have also done some action at $\overrightarrow{x_{\text{P}}}$
before its move, e.g., have shot a beam from $\overrightarrow{x_{\text{P}}}$,
which will be treated later in Sec. 4.4.

###  4.2 Others’ time evolution

The $n$th particle at
$\overrightarrow{x_{n}}^{\operatorname{PLC}\left(\overrightarrow{x_{\text{P}}}\right)}$
determines its own move, and extends its worldline $W_{n}$, according to its
own acceleration and influences from others, until the extended $W_{n}$ hits
the new
$\operatorname{PLC}\\!\left(\overrightarrow{x_{\text{P}}^{\prime}}\right)$.
The new intersection point is drawn in the next iteration as above.

Now we show how to determine the moves of NPCs. Suppose that an NPC, say the
$n$th one, is at
$\overrightarrow{x_{n}}^{\operatorname{PLC}\left(\overrightarrow{x_{\text{P}}}\right)}$,
and has a velocity $\overrightarrow{u}$ and a proper time $\tau$, all in the
reference frame. The NPC can see the world sliced by its own
$\operatorname{PLC}\\!\left(\overrightarrow{x_{n}}\right)$, or, more
precisely, can know things on
$\operatorname{PLC}\\!\left(\overrightarrow{x_{n}}\right)$ and its past side.
According to the available information, we determine the NPC’s acceleration
$\overrightarrow{a_{n}}$ in the reference frame; see Sec. 4.5 for details. The
NPC’s move is

$\displaystyle\tau_{n}$ $\displaystyle\longmapsto\tau_{n}+\Delta\tau_{n},$
(83) $\displaystyle\overrightarrow{x_{n}}$
$\displaystyle\longmapsto\overrightarrow{x_{n}}+\overrightarrow{u_{n}}\,\Delta\tau_{n},$
(84) $\displaystyle\overrightarrow{u_{n}}$
$\displaystyle\longmapsto\overrightarrow{u_{n}}+\overrightarrow{a_{n}}\,\Delta\tau_{n},$
(85)

where $\Delta\tau_{n}$ can be chosen to be $\Delta\tau_{\text{P}}$, or else
whatever (fixed or variable) value according to the NPC’s reflexes. In
general, the resultant
$\overrightarrow{x_{n}}+\overrightarrow{u_{n}}\,\Delta\tau_{n}$ is still on
the past side of
$\operatorname{PLC}\\!\left(\overrightarrow{x_{\text{P}}^{\prime}}\right)$. We
iterate until it goes beyond
$\operatorname{PLC}\\!\left(\overrightarrow{x_{\text{P}}^{\prime}}\right)$,
namely, until the following condition is violated:

$\displaystyle\left[\overrightarrow{x_{\text{P}}^{\prime}}-\overrightarrow{x_{n}}\right]^{2}<0\qquad\text{and}\qquad
x_{\text{P}}^{\prime 0}>x_{n}^{0}.$ (86)

In each step, the NPC may also do some action, as will be described in Secs.
4.4. Note that the NPC at $\overrightarrow{x_{n}}$ sees the world cut by its
own $\operatorname{PLC}\\!\left(\overrightarrow{x_{n}}\right)$, and cannot see
further moves of others beyond it: Any other NPC, say the $m$th one, is seen
by the one at $\overrightarrow{x_{n}}$ as located at the intersecting point
between $W_{m}:=\Set{\overrightarrow{x_{m}}\\!\left(\tau_{m}\right)}{\text{all
$\tau_{m}$}}$ and $\operatorname{PLC}\\!\left(\overrightarrow{x_{n}}\right)$,
which we write as
$\overrightarrow{x_{m}}^{\operatorname{PLC}\left(\overrightarrow{x_{n}}\right)}$.
To repeat, the one at $\overrightarrow{x_{n}}$ can know things only on the
past side of $\operatorname{PLC}\\!\left(\overrightarrow{x_{n}}\right)$.

###  4.3 Aiming

Figure 5: Schematic diagram in $1+1$ spacetime dimensions for the aiming.

We show how an observer $O$ can estimate the future position of other objects.
A schematic diagram is shown in Fig. 5. The observer at
$\overrightarrow{x_{\text{O}}}$ sees the world sliced by its own
$\operatorname{PLC}\\!\left(\overrightarrow{x_{\text{O}}}\right)$, on which
the perceivable future-most position of another object, say the $n$th
NPC,313131 Here this “$n$th NPC” may indicate the player too.  is located as
$\overrightarrow{x_{n}}^{\operatorname{PLC}\left(\overrightarrow{x_{\text{O}}}\right)}$.
From the given information, $O$ wants to predict the $n$th NPC’s future move.

Let $\overrightarrow{u_{n}}$ be its velocity at
$\overrightarrow{x_{n}}^{\operatorname{PLC}\left(\overrightarrow{x_{\text{O}}}\right)}$.
We want to know the intersection between the FLC of $O$,

$\displaystyle\operatorname{FLC}\\!\left(\overrightarrow{x_{\text{O}}}\right)$
$\displaystyle:=\Set{\overrightarrow{x}}{\left[\overrightarrow{x}-\overrightarrow{x_{\text{O}}}\right]^{2}=0,\quad
x^{0}>x_{\text{O}}^{0}},$ (87)

and the would-be worldline of the $n$th NPC extended in the direction of
$\overrightarrow{u_{n}}$:

$\displaystyle\Set{\overrightarrow{x_{n}}+\tau\,\overrightarrow{u_{n}}}{\tau>0}.$
(88)

The value of $\tau$ at the intersection is obtained from

$\displaystyle 0$
$\displaystyle=\left[\overrightarrow{x_{n}}+\tau\,\overrightarrow{u_{n}}-\overrightarrow{x_{\text{O}}}\right]^{2}$
$\displaystyle=\left[\overrightarrow{x_{n}}-\overrightarrow{x_{\text{O}}}\right]^{2}+2\tau\left[\overrightarrow{x_{n}}-\overrightarrow{x_{\text{O}}},\,\overrightarrow{u_{n}}\right]+\tau^{2}\left[\overrightarrow{u_{n}}\right]^{2}$
$\displaystyle=2\tau\left[\overrightarrow{x_{n}}-\overrightarrow{x_{\text{O}}},\,\overrightarrow{u_{n}}\right]-\tau^{2},$
(89)

where we have used the PLC condition
$\left[\overrightarrow{x_{n}}-\overrightarrow{x_{\text{O}}}\right]^{2}=0$ and
Eq. (43) in the last step. That is, the projected location of the $n$th NPC
onto $O$’s FLC is given by

$\displaystyle\tau$
$\displaystyle=2\left[\overrightarrow{x_{n}}-\overrightarrow{x_{\text{O}}},\,\overrightarrow{u_{n}}\right],$
(90)

namely, at

$\displaystyle\overrightarrow{x_{n}}^{\operatorname{FLC}\left(\overrightarrow{x_{\text{O}}}\right)}$
$\displaystyle:=\overrightarrow{x_{n}}+2\left[\overrightarrow{x_{n}}-\overrightarrow{x_{\text{O}}},\,\overrightarrow{u_{n}}\right]\,\overrightarrow{u_{n}}.$
(91)

This point is nothing but the intersection with the FLC mentioned in footnote
29. The observer will see this coordinate in its rest frame at

$\displaystyle\overrightarrow{X_{n}}^{\operatorname{FLC}\left(\overrightarrow{x_{\text{O}}}\right)}$
$\displaystyle:=L\\!\left(\overrightarrow{u_{\text{O}}}\right)\,\overrightarrow{x_{n}}^{\operatorname{FLC}\left(\overrightarrow{x_{\text{O}}}\right)}.$
(92)

###  4.4 Shooting

We continue the discussion from the previous subsection. Now $O$ wants to
shoot a beam or bullet, $B$, at the $n$th NPC from the location
$\overrightarrow{x_{\text{O}}}$, when its velocity is
$\overrightarrow{u_{\text{O}}}$.

In $O$’s rest frame $\Set{X}$, we define the “future beam/bullet cone” (FBC):

$\displaystyle\operatorname{FBC}\\!\left(\overrightarrow{X_{\text{O}}}\right)$
$\displaystyle:=\Set{\overrightarrow{X_{\text{O}}}+s\overrightarrow{N}}{\overrightarrow{N}=\begin{bmatrix}V^{-1}\\\
\boldsymbol{\hat{D}}\end{bmatrix},\quad\left|\boldsymbol{\hat{D}}\right|=1,\quad
s\geq 0},$ (93)

where
$\overrightarrow{X_{\text{O}}}:=L\\!\left(\boldsymbol{u_{\text{O}}}\right)\overrightarrow{x_{\text{O}}}$
is the location of $O$ in its rest frame, $V$ is the speed of $B$ satisfying
$0<V\leq 1$, and $\boldsymbol{\hat{D}}$ is a possible direction in which $B$
can be shot.

In $O$’s rest frame, the would-be worldline of $n$th NPC (88) becomes

$\displaystyle\Set{\overrightarrow{X_{n}}+\tau\overrightarrow{U_{n}}}{\tau>0},$
(94)

where
$\overrightarrow{X_{n}}:=L\\!\left(\boldsymbol{u_{\text{O}}}\right)\overrightarrow{x_{n}}$
and
$\overrightarrow{U_{n}}:=L\\!\left(\boldsymbol{u_{\text{O}}}\right)\overrightarrow{u_{n}}$.
Its intersection with
$\operatorname{FBC}\\!\left(\overrightarrow{X_{\text{O}}}\right)$, if it
exists, is given by
$\overrightarrow{X_{\text{O}}}+s\overrightarrow{N}=\overrightarrow{X_{n}}+\tau\overrightarrow{U_{n}}$,
i.e.,

$\displaystyle X_{\text{O}}^{0}+{s\over V}$ $\displaystyle=X_{n}^{0}+\tau
U_{n}^{0},$ (95)
$\displaystyle\boldsymbol{X}_{\text{O}}+s\boldsymbol{\hat{D}}$
$\displaystyle=\boldsymbol{X}_{n}+\tau\boldsymbol{U}_{n}.$ (96)

From Eq. (95), we get

$\displaystyle s$ $\displaystyle=V\left(X_{n}^{0}-X_{\text{O}}^{0}+\tau
U_{n}^{0}\right),$ (97)

and hence

$\displaystyle\left[\overrightarrow{X_{n}}-\overrightarrow{X_{\text{O}}}+\tau\overrightarrow{U_{n}}\right]_{V}^{2}$
$\displaystyle=0,$ (98)

where we have defined the following (linear and bilinear) operations:

$\displaystyle\left[\overrightarrow{A}\right]_{V}^{2}$
$\displaystyle:=-V^{2}\left(A^{0}\right)^{2}+\boldsymbol{A}^{2},$ (99)
$\displaystyle\left[\overrightarrow{A},\overrightarrow{B}\right]_{V}$
$\displaystyle:=-V^{2}A^{0}B^{0}+\boldsymbol{A}\cdot\boldsymbol{B}.$ (100)

Note that this operation is not Lorentz invariant. Solving Eq. (98) as in Sec.
3.3, we get323232 Here
$\left[\overrightarrow{A},\overrightarrow{B}\right]_{V}^{2}$ is the square of
$\left[\overrightarrow{A},\overrightarrow{B}\right]_{V}$. Do not confuse it
with the norm (99): the distinction is made by the comma inside.

$\displaystyle\tau$
$\displaystyle={\left[\overrightarrow{X_{n}}-\overrightarrow{X_{\text{O}}},\,\overrightarrow{U_{n}}\right]_{V}+\sqrt{\left[\overrightarrow{X_{n}}-\overrightarrow{X_{\text{O}}},\,\overrightarrow{U_{n}}\right]_{V}^{2}-\left[\overrightarrow{U_{n}}\right]_{V}^{2}\left[\overrightarrow{X_{n}}-\overrightarrow{X_{\text{O}}}\right]_{V}^{2}}\over-\left[\overrightarrow{U_{n}}\right]_{V}^{2}}$
$\displaystyle=:\tau_{\text{F}}.$ (101)

It is possible that the would-be worldline (94) does not intersect with
$\operatorname{FLC}\\!\left(X_{n}\right)$, in which case the expression inside
the square root in Eq. (101) becomes negative. In such a case, $O$ may still
shoot in the direction given in Sec. 4.3, which always exists.

$O$ can shoot a beam/bullet whose worldline is given in $O$’s rest frame by

$\displaystyle\Set{\overrightarrow{X_{\text{O}}}+s\overrightarrow{N_{\text{F}}}}{s\geq
0}$ (102)

where

$\displaystyle\overrightarrow{N_{\text{F}}}$
$\displaystyle:=\begin{bmatrix}V^{-1}\\\
\boldsymbol{\hat{D}}_{\text{F}}\end{bmatrix},$ (103)

in which

$\displaystyle\boldsymbol{\hat{D}}_{\text{F}}$ $\displaystyle:={1\over
V}{\boldsymbol{X}_{n}-\boldsymbol{X}_{\text{O}}+\tau_{\text{F}}\boldsymbol{U}_{n}\over
X_{n}^{0}-X_{\text{O}}^{0}+\tau_{F}U_{n}^{0}}.$ (104)

In the reference frame, the beam/bullet worldline (102) becomes

$\displaystyle\Set{\overrightarrow{x_{\text{O}}}+s\,\overrightarrow{n_{\text{F}}}}{s\geq
0},$ (105)

where

$\displaystyle\overrightarrow{x_{\text{O}}}$
$\displaystyle:=L\\!\left(-\boldsymbol{u_{\text{O}}}\right)\overrightarrow{X_{\text{O}}},$
(106) $\displaystyle\overrightarrow{n_{\text{F}}}$
$\displaystyle:=L\\!\left(-\boldsymbol{u_{\text{O}}}\right)\overrightarrow{N_{\text{F}}}.$
(107)

###  4.5 Acceleration

Now we exhibit how $O$’s acceleration, used in Sec. 4.2, is determined. There
can be several sources for $O$’s acceleration:

  * •

To match ordinary human common sense, one may suppose that the spacetime is
filled with (fictitious) air or fluid that is static in the reference frame,
and may assume a friction force that is a function of the velocity of each
particle in the reference frame:

$\displaystyle\overrightarrow{a_{\text{f}}}$
$\displaystyle=\begin{bmatrix}a_{\text{f}}^{0}\\\
-f\\!\left(\boldsymbol{u_{\text{O}}}\right)\boldsymbol{\hat{u_{\text{O}}}}\end{bmatrix},$
(108)

where $f\\!\left(\boldsymbol{u}\right)>0$ can be any function of
$\boldsymbol{u}$, which is typically $\propto\left|\boldsymbol{u}\right|$ and
$\boldsymbol{u}^{2}$ for the _laminar_ and _turbulent drags_ , respectively.
Note that the time component can always be obtained from
$\overrightarrow{a_{\text{f}}}\cdot\overrightarrow{u_{\text{O}}}=0$:

$\displaystyle a_{\text{f}}^{0}$
$\displaystyle={\boldsymbol{a}_{\text{f}}\cdot\boldsymbol{u_{\text{O}}}\over
u_{\text{O}}^{0}}=-f\\!\left(\boldsymbol{u_{\text{O}}}\right){\left|\boldsymbol{u_{\text{O}}}\right|\over
u_{\text{O}}^{0}}.$ (109)

  * •

$O$ can accelerate in a direction that $O$ wants. That is, $O$ may self-
accelerate by a magnitude $A_{\text{s}}$ in a direction $\boldsymbol{\hat{D}}$
in its rest frame. Then $O$’s self-acceleration in its rest frame is given by

$\displaystyle\overrightarrow{A_{\text{s}}}$
$\displaystyle=\begin{bmatrix}0\\\
A_{\text{s}}\,\boldsymbol{\hat{D}}\end{bmatrix},$ (110)

and in the reference frame by

$\displaystyle\overrightarrow{a_{\text{s}}}$
$\displaystyle=L\\!\left(-\boldsymbol{u_{\text{O}}}\right)\overrightarrow{A_{\text{s}}}.$
(111)

See also Appendix D for a more elaborate rocket propulsion.

For example, $O$ may want to accelerate in the projected direction
$\overrightarrow{d}$ of the $n$th particle on $O$’s FLC given by Eq. (91):

$\displaystyle\overrightarrow{d}$
$\displaystyle:=\overrightarrow{x_{n}}^{\operatorname{FLC}\left(x_{\text{O}}\right)}-\overrightarrow{x_{\text{O}}}.$
(112)

The direction of acceleration,
$\boldsymbol{\hat{D}}=\boldsymbol{D}/\left|\boldsymbol{D}\right|$, in $O$’s
rest frame can be obtained from the spatial component $\boldsymbol{D}$ of the
vector

$\displaystyle\overrightarrow{D}$
$\displaystyle:=L\\!\left(\boldsymbol{u_{\text{O}}}\right)\overrightarrow{d}.$
(113)

  * •

We show how to implement a collision, namely, a repulsive force exerted by the
$n$th particle onto $O$, without contradicting causality. Suppose that the
$n$th particle is on
$\operatorname{PLC}\\!\left(\overrightarrow{x_{\text{O}}}\right)$, and we
write its and $O$’s locations as $\overrightarrow{X_{n}}$ and
$\overrightarrow{X_{\text{O}}}$, respectively, in the $n$th particle’s rest
frame. We write the corresponding velocities as
$\overrightarrow{U_{n}}=\begin{bmatrix}1\\\ \boldsymbol{0}\end{bmatrix}$ and
$\overrightarrow{U_{\text{O}}}=L\\!\left(\boldsymbol{u}_{n}\right)\overrightarrow{u_{\text{O}}}$,
respectively. We write the displacement vector from $n$ to $O$ in $n$’s rest
frame as:

$\displaystyle\overrightarrow{X_{n\to O}}$
$\displaystyle:=\overrightarrow{X_{\text{O}}}-\overrightarrow{X_{n}}.$ (114)

We assume that the $n$th particle exerts a strong repulsive force
$\overrightarrow{F_{n\to O}}$ when the distance in its rest frame is smaller
than its typical radius $R_{n}$:

$\displaystyle\overrightarrow{F_{n\to O}}$
$\displaystyle=\begin{bmatrix}F_{n\to O}^{0}\\\ \boldsymbol{F}_{n\to
O}^{0}\end{bmatrix},$ (115)

where

$\displaystyle\boldsymbol{F}_{n\to O}$
$\displaystyle=F\,\theta\\!\left(R_{n}-\left|\boldsymbol{X}_{n\to
O}\right|\right)\,\boldsymbol{\hat{X}}_{n\to O},$ (116)

in which $F>0$ is a constant and

$\displaystyle\theta\\!\left(x\right)$ $\displaystyle=\begin{cases}1&(x>0),\\\
0&(x<0),\end{cases}$ (117)

is the Heaviside step function. If this repulsive force is the only force
acting on $O$, it is proportional to $O$’s acceleration
$\overrightarrow{F_{n\to O}}\propto\overrightarrow{A_{\text{O}}}$, and hence
the condition
$\overrightarrow{A_{\text{O}}}\cdot\overrightarrow{U_{\text{O}}}=0$ determines
the time component of $\overrightarrow{F_{n\to O}}$:

$\displaystyle F_{n\to O}^{0}$
$\displaystyle={\boldsymbol{U}_{\text{O}}\cdot\boldsymbol{F}_{n\to O}\over
U_{\text{O}}^{0}}.$ (118)

Then the acceleration from this repulsive force is, in the reference frame,

$\displaystyle\overrightarrow{a_{n\to O}}$
$\displaystyle={L\\!\left(-\boldsymbol{u}_{n}\right)\overrightarrow{F_{n\to
O}}\over m_{\text{O}}}.$ (119)

We sum up $\overrightarrow{a_{n\to O}}$ coming from all the particles on
$\operatorname{PLC}\\!\left(\overrightarrow{x_{\text{O}}}\right)$.

In the end, $O$’s total acceleration is given by the vector sum

$\displaystyle\overrightarrow{a_{\text{O}}}$
$\displaystyle=\overrightarrow{a_{\text{f}}}+\overrightarrow{a_{\text{s}}}+\sum_{n\text{
on }\operatorname{PLC}\left(x_{\text{O}}\right)}\overrightarrow{a_{n\to O}},$
(120)

which is then put into Eq. (85).

##  5 Miscellaneous ideas

We show various ideas to make more realistically relativistic scenes.

###  5.1 Faraway scenes on the skydome

One puts a sufficiently large sphere that surrounds the player in the player’s
rest frame, and draws a background texture of the faraway scene on it: At an
angle $\left(\Theta,\Phi\right)$ on the sphere, we draw the corresponding
texture at $\left(S,T\right)$ in the texture coordinates. Let us see how
$\left(S,T\right)$ is determined for a given direction
$\left(\Theta,\Phi\right)$.

Let $\Set{\overrightarrow{x}}$ be the reference frame in which faraway
background objects are at rest. Suppose that the player and a background
object $O$ are at $\overrightarrow{x_{\text{P}}}$ and $\overrightarrow{\xi}$,
respectively, in this frame. In this subsection, we parametrize $O$’s position
by

$\displaystyle\overrightarrow{\xi}$
$\displaystyle=\left(t,x,y,z\right)=\begin{bmatrix}t\\\ x\\\ y\\\
z\end{bmatrix}.$ (121)

Using ordinary polar coordinates, the intersection between $O$’s worldline and
the player’s PLC can be parametrized as

$\displaystyle\overrightarrow{\xi}$ $\displaystyle=\begin{bmatrix}-r\\\
r\sin\theta\cos\phi\\\ r\sin\theta\sin\phi\\\ r\cos\theta\end{bmatrix},$ (122)

where we have assumed that $O$ is so far away that player’s position
$\overrightarrow{x_{\text{P}}}$ can be regarded as being at the spacetime
origin:
$\overrightarrow{\xi}-\overrightarrow{x_{\text{P}}}\approx\overrightarrow{\xi}$.
Conversely, we may write the zenith and azimuthal angles as

$\displaystyle\theta$ $\displaystyle=\arctan{\sqrt{x^{2}+y^{2}}\over z},$
$\displaystyle\phi$ $\displaystyle=\arctan{y\over x}.$ (123)

We may use texture mapping of the background image using the _equirectangular
projection_. For example, in OpenGL, the background scene at the angle
$\left(\theta,\phi\right)$ in the reference frame corresponds to the texture
coordinates $(S,T)$:

$\displaystyle S$ $\displaystyle={\phi\over 2\pi},$ $\displaystyle T$
$\displaystyle=1-{\theta\over\pi},$ (124)

where $0\leq S\leq 1$ and $0\leq T\leq 1$.

Let us consider light that comes into the player’s eyes from the
$\left(\Theta,\Phi\right)$ direction in the player’s rest frame. Let
$\overrightarrow{\Xi}$ be the position of the faraway object seen by the
player in the player’s rest frame:

$\displaystyle\overrightarrow{\Xi}$
$\displaystyle=L\\!\left(\boldsymbol{u}\right)\left(\overrightarrow{\xi}-\overrightarrow{x_{\text{P}}}\right)\approx
L\\!\left(\boldsymbol{u}\right)\overrightarrow{\xi}.$ (125)

We parametrize it as

$\displaystyle\overrightarrow{\Xi}$ $\displaystyle=\begin{bmatrix}-R\\\
R\sin\Theta\cos\Phi\\\ R\sin\Theta\sin\Phi\\\ R\cos\Theta\end{bmatrix},$ (126)

where $R$ is very large.333333 Be careful with the abuse of notation: This $R$
has nothing to do with the rotation matrix in Eq. (35).  How is
$\left(\Theta,\Phi\right)$ related to $\left(\theta,\phi\right)$, used to pick
up the drawn texture point $\left(S,T\right)$ in Eq. (124)?

Equation (125) implies that

$\displaystyle\overrightarrow{\xi}$
$\displaystyle=L\\!\left(-\boldsymbol{u}\right)\overrightarrow{\Xi}.$ (127)

For a given direction $\left(\Theta,\Phi\right)$, we determine
$\overrightarrow{\Xi}$ by Eq. (126) up to the overall constant $R$, and then
obtain $\overrightarrow{\xi}$ by Eq. (127). Once $\overrightarrow{\xi}$ is
known, $\left(\theta,\phi\right)$ are given by Eq. (123), and then the
corresponding texture coordinates $\left(S,T\right)$ to be drawn are obtained
by Eq. (124). Note that the overall normalization $R$ drops out of the final
expression since the coordinates $\overrightarrow{\Xi}$ always appear as
ratios in Eq. (123). In practice, we may put $R=1$.

###  5.2 2D background

2D games can be handled similarly. We explain how to draw a background using
orthogonal projection in the $3=2+1$D spacetime. We assume for simplicity that
the player’s view does not rotate with respect to the background. Suppose that
the background is at rest at the reference frame $\Set{x}$, where
$x=\left(x^{0},\boldsymbol{x}\right)=\left(x^{0},x^{1},x^{2}\right)$ is a
3($2+1$)D spacetime vector, whose spatial components consist of a spatial
vector $\boldsymbol{x}=\left(x^{1},x^{2}\right)$.343434 Recall that $x^{2}$
does not denote $x$-squared but the second component of
$\boldsymbol{x}=\left(x^{1},x^{2}\right)$ throughout this paper, unless
otherwise stated.

Let $\left(S,T\right)$ be the texture coordinates of the background, with
$0\leq S\leq 1$ and $0\leq T\leq 1$. Suppose that the background texture is
mapped onto a region $x^{1}_{\text{min}}\leq x^{1}\leq x^{1}_{\text{max}}$ and
$x^{2}_{\text{min}}\leq x^{2}\leq x^{2}_{\text{max}}$:

$\displaystyle S$ $\displaystyle={x^{1}-x_{\text{min}}^{1}\over
x^{1}_{\text{max}}-x^{1}_{\text{min}}},$ $\displaystyle T$
$\displaystyle={x^{2}-x_{\text{min}}^{2}\over
x^{2}_{\text{max}}-x^{2}_{\text{min}}}.$ (128)

When the player’s velocity is $\boldsymbol{u}_{\text{P}}$ in the reference
frame, we want to know which point in the texture coordinate
$\left(S,T\right)$ is picked up for a given point in the player’s rest frame
$\Set{X}$:

$\displaystyle X$
$\displaystyle=L\\!\left(\boldsymbol{u_{\text{P}}}\right)\left(x-x_{\text{P}}\right),$
(129)

where we have chosen the origin of $X$ to be the point corresponding to
$x_{\text{P}}$ in the reference frame.

The player sees the world sliced by its PLC. Therefore, a natural way to draw
the 2D world is to project the player’s PLC onto the $X^{1}$-$X^{2}$ plane.
Let the drawn region on screen be $X_{\text{min}}^{1}\leq X^{1}\leq
X_{\text{max}}^{1}$ and $X_{\text{min}}^{2}\leq X^{2}\leq X_{\text{max}}^{2}$.
A spatial point $\boldsymbol{X}=\left(X^{1},X^{2}\right)$ in this region has
the time coordinate

$\displaystyle
X^{0}=-\left|\boldsymbol{X}\right|=-\sqrt{\left(X^{1}\right)^{2}+\left(X^{2}\right)^{2}}$
(130)

on the player’s PLC. The corresponding point in the reference frame is

$\displaystyle x$
$\displaystyle=x_{\text{P}}+L\\!\left(-\boldsymbol{u_{\text{P}}}\right)\begin{bmatrix}-\sqrt{\left(X^{1}\right)^{2}+\left(X^{2}\right)^{2}}\\\
X^{1}\\\ X^{2}\end{bmatrix}.$ (131)

From this, we can read off the values of the spatial components
$\left(x^{1},x^{2}\right)$, which can be put in Eq. (128) to get the
corresponding texture coordinate $\left(S,T\right)$.

By this PLC formalism, one may improve the drawing of the world by an equal-
time slice in the player’s rest frame, employed, e.g., in Ref. [6].

###  5.3 Approximately rigid body

In the relativistic world, it is impossible to have an exactly rigid body, as
it violates the locality. However, a thing is usually introduced as a rigid
body, described by a set of polygons, in computer games. We show how to treat
such a thing approximately.

Suppose that a body $B$ has $N$ vertices that are specified by spatial $d$
vectors

$\displaystyle\boldsymbol{\xi}_{a}$
$\displaystyle=\left(\xi_{a}^{1},\dots,\xi_{a}^{d}\right)=\begin{bmatrix}\xi_{a}^{1}\\\
\vdots\\\ \xi_{a}^{d}\end{bmatrix},$ (132)

where $a=1,\dots,N$. Each $d$ vector $\boldsymbol{\xi}_{a}$ specifies the
position of the corresponding vertex measured from $B$’s reference point,
somewhere near its center. Hereafter, we call this point, somewhat sloppily,
$B$’s center.

Let $R_{\texttt{t}}$ be a $d\times d$ rotation matrix that represents the
orientation of $B$, which differs at each spacetime point
$\overrightarrow{x_{\texttt{t}}}$ that consists of the worldline
$\Set{\overrightarrow{x_{1}},\overrightarrow{x_{2}},\dots}$.353535 In
practice, one can also store $R_{\texttt{t}}$ along with each
$\overrightarrow{x_{\texttt{t}}}$ in the worldline data of $B$.  At each
worldline point $\overrightarrow{x_{\texttt{t}}}$, the object $B$ has the
velocity (71) that is uniform for all the polygon vertices (132): $B$’s
position in its rest frame is given by

$\displaystyle\overrightarrow{X_{\texttt{t}}}=L\\!\left(\boldsymbol{u}_{\texttt{t}}\right)\overrightarrow{x_{\texttt{t}}}.$
(133)

More precisely, $\overrightarrow{X_{\texttt{t}}}$ represents the position of
$B$’s center in its rest frame, at the tth point in $B$’s worldline.

We approximate that $B$ is a rigid body, i.e., $R_{\texttt{t}}$ rotates all
the vertices (132) simultaneously: The position of each vertex, say the $a$th
one, in $B$’s rest frame is given by

$\displaystyle\boldsymbol{X}_{a,\texttt{t}}$
$\displaystyle=\boldsymbol{X}_{\texttt{t}}+R_{\texttt{t}}\boldsymbol{\xi}_{a},$
(134)

when $B$ is at the $j$th point on its worldline. How can one determine its
time coordinate $X_{a,\texttt{t}}^{0}$? We approximate that each worldline of
the vertex is parallel in spacetime to that of $B$’s center: It is
proportional to
$\overrightarrow{X_{\texttt{t}+1}}-\overrightarrow{X_{\texttt{t}}}$. Then we
can obtain the intersection between the worldline of the $a$th vertex and the
player’s PLC from the condition

$\displaystyle\left[\overrightarrow{X_{a,\texttt{t}}}-\overrightarrow{X_{\text{P}}}\right]^{2}$
$\displaystyle=0,$ (135)

i.e.,

$\displaystyle X_{a,\texttt{t}}^{0}$
$\displaystyle=X_{\text{P}}^{0}-\left|\boldsymbol{X}_{a,\texttt{t}}-\boldsymbol{X}_{\text{P}}\right|,$
(136)

where $X_{\text{P}}$ is the player’s position in $B$’s rest frame. In the
original reference frame, the position of the $a$th vertex is

$\displaystyle\overrightarrow{x_{a,\texttt{t}}}$
$\displaystyle=L\\!\left(-\boldsymbol{u}_{\texttt{t}}\right)\overrightarrow{X_{a,\texttt{t}}},$
(137)

where the time and spatial components of $\overrightarrow{X_{a,\texttt{t}}}$
are given by Eqs. (134) and (136), respectively. This $x_{a,\texttt{t}}$ can
be transformed to that in the player’s rest frame as in Sec. 3.1 when the
world is drawn.

Rotation of the rigid body, or, more explicitly, the information on
$R_{\texttt{t}}$ above, can be most easily handled by using quaternions; see
Appendix E for a review. We specify the rotation of a rigid body from its
basic position by an angle $\theta$ around a direction
$\boldsymbol{\hat{\ell}}$ using the quaternion

$\displaystyle\Theta\\!\left(\boldsymbol{\hat{\ell}},\theta\right)$
$\displaystyle:=\cos{\theta\over 2}+\sin{\theta\over
2}\,\boldsymbol{\hat{\ell}}\cdot\boldsymbol{\mathbbm{i}},$ (138)

where $0\leq\theta\leq\pi$ and $\left|\boldsymbol{\hat{\ell}}\right|=1$. There
are three independent degrees of freedom in total in $\theta$ and
$\boldsymbol{\hat{\ell}}$, which coincide with the physical degrees of
freedom, namely, a unit vector to specify the front (upward, or whatever)
direction, and an angle to determine the rotation around that direction.

2D games can be handled similarly. Usually an object is drawn by a rectangular
picture. We may divide the picture into $N\times N^{\prime}$ cells, where $N$
and $N^{\prime}$ are appropriate numbers, typically of order 10 to 100. Then
we can treat the $NN^{\prime}$ vertices as above, and map the texture on each
cell.

###  5.4 Doppler effect

Light that comes into our eyes has a spectrum; namely, its intensity $I$ is a
function of the angular frequency $\omega$:

$\displaystyle I\\!\left(\omega\right),$ (139)

where $\omega$ is related to the frequency $f$ and the wavelength $\lambda$ by

$\displaystyle\omega$ $\displaystyle=2\pi f={2\pi c\over\lambda}.$ (140)

Here and hereafter, we recover $c$ from the natural units in the expressions
involving $\omega$. When light ray points in a direction
$\boldsymbol{\hat{n}}$, where $\left|\boldsymbol{\hat{n}}\right|=1$ is a unit
$d$ vector, it is known that the wave $D$ vector363636 In an nonrelativistic
context, the $d$ vector
$\boldsymbol{k}/c=\left(\omega/c\right)\boldsymbol{\hat{n}}$ is usually called
the wave vector.

$\displaystyle\overrightarrow{k}$ $\displaystyle:=\omega\begin{bmatrix}1\\\
\boldsymbol{\hat{n}}\end{bmatrix}$ (141)

is proportional to the photon’s $D$ momentum and that $\overrightarrow{k}$
transforms as a $D$ vector under the Lorentz transformation; see Appendix A.

Suppose that a source $S$ and an observer $O$ have their velocities
$\overrightarrow{u_{S}}$ and $\overrightarrow{u_{\text{O}}}$, respectively, in
the reference frame. Let us consider light of an angular frequency $\Omega$
pointing towards $\boldsymbol{\hat{N}}$ with
$\left|\boldsymbol{\hat{N}}\right|=1$ in $S$’s rest frame:

$\displaystyle\overrightarrow{K}$ $\displaystyle=\Omega\begin{bmatrix}1\\\
\boldsymbol{\hat{N}}\end{bmatrix}.$ (142)

The direction $\boldsymbol{\hat{N}}$ can be obtained as follows: When $O$ at
$\overrightarrow{x_{\text{O}}}$ observes the light emitted from
$\overrightarrow{x_{S}}$, then $\overrightarrow{x_{S}}$ must be on
$\operatorname{PLC}\\!\left(\overrightarrow{x_{\text{O}}}\right)$:

$\displaystyle\left[\overrightarrow{x_{\text{O}}}-\overrightarrow{x_{S}}\right]^{2}=0$
(143)

and $x_{\text{O}}^{0}>x_{S}^{0}$. In this case, $\overrightarrow{K}$ is
proportional to

$\displaystyle\overrightarrow{X_{OS}}:=L\\!\left(\boldsymbol{u}_{S}\right)\left(\overrightarrow{x_{\text{O}}}-\overrightarrow{x_{S}}\right).$
(144)

Then we obtain

$\displaystyle\boldsymbol{\hat{N}}$ $\displaystyle={\boldsymbol{X}_{OS}\over
X_{OS}^{0}}.$ (145)

The light (142) is observed by $O$ as the wave vector

$\displaystyle\overrightarrow{K^{\prime}}$
$\displaystyle:=L\\!\left(\boldsymbol{u_{\text{O}}}\right)L\\!\left(-\boldsymbol{u}_{S}\right)\overrightarrow{K}.$
(146)

The angular frequency $\Omega^{\prime}$ observed by $O$ is then the time
component of $\overrightarrow{K^{\prime}}$, namely $K^{\prime 0}$. Note that
$\Omega^{\prime}$ is proportional to $\Omega$:

$\displaystyle\Omega^{\prime}=C\Omega,$ (147)

where $C$ is a constant that can be computed from the above procedure. Then
the spectrum (139) is perceived by $O$ as a new spectrum $I_{\text{O}}$:

$\displaystyle I_{\text{O}}\\!\left(\Omega\right)$
$\displaystyle=I\\!\left(\Omega/C\right).$ (148)

This is all needed to determine the Doppler effect on light.

Most fundamentally, one should consult the above procedure. In practice, it
does not work. Why? In the RGB color model used in computers, a color is
specified by three numbers $\left(R,G,B\right)$ that roughly represent the
perception of three types of cone cells in our eyes. For a given spectrum
$I\\!\left(\omega\right)$, the values of $R$, $G$, $B$ are obtained, up to an
overall normalization of $\left(R,G,B\right)$, by

$\displaystyle R$
$\displaystyle=\int_{\lambda_{\text{min}}}^{\lambda_{\text{max}}}\text{d}\lambda\,\overline{r}\\!\left(\lambda\right)I\\!\left(2\pi
c\over\lambda\right),$ (149) $\displaystyle G$
$\displaystyle=\int_{\lambda_{\text{min}}}^{\lambda_{\text{max}}}\text{d}\lambda\,\overline{g}\\!\left(\lambda\right)I\\!\left(2\pi
c\over\lambda\right),$ (150) $\displaystyle B$
$\displaystyle=\int_{\lambda_{\text{min}}}^{\lambda_{\text{max}}}\text{d}\lambda\,\overline{b}\\!\left(\lambda\right)I\\!\left(2\pi
c\over\lambda\right),$ (151)

where the CIE standard observer color matching functions $\overline{r}$,
$\overline{g}$, and $\overline{b}$ are given in Ref. [20] and
$\lambda_{\text{min}}=380\,\text{nm}$ and
$\lambda_{\text{max}}=780\,\text{nm}$ in the CIE 1931 color space. If
$I\\!\left(\omega\right)$ were given to specify a color, instead of
$\left(R,G,B\right)$, then we could calculate the new values of
$\left(R^{\prime},G^{\prime},B^{\prime}\right)$ for $O$:

$\displaystyle R^{\prime}$
$\displaystyle=\int_{\lambda_{\text{min}}}^{\lambda_{\text{max}}}\text{d}\lambda\,\overline{r}\\!\left(\lambda\right)I\\!\left(2\pi
c\over\lambda C\right),$ (152) $\displaystyle G^{\prime}$
$\displaystyle=\int_{\lambda_{\text{min}}}^{\lambda_{\text{max}}}\text{d}\lambda\,\overline{g}\\!\left(\lambda\right)I\\!\left(2\pi
c\over\lambda C\right),$ (153) $\displaystyle B^{\prime}$
$\displaystyle=\int_{\lambda_{\text{min}}}^{\lambda_{\text{max}}}\text{d}\lambda\,\overline{b}\\!\left(\lambda\right)I\\!\left(2\pi
c\over\lambda C\right).$ (154)

The problem is that one needs the full spectrum $I\\!\left(\omega\right)$ for
the exact relativistic computation, whereas one cannot know the functional
form of $I\\!\left(\omega\right)$ from merely the three numbers $R$, $G$, and
$B$.

Here we present a naive procedure to mimic the Doppler effect. For blackbody
radiation, $\left(R,G,B\right)$ is known as a function of the temperature $T$.
That is, we know the functions

$\displaystyle R\\!\left(T\right),\quad G\\!\left(T\right),\quad
B\\!\left(T\right)$ (155)

for the blackbody radiation; see, e.g., Ref. [21] for possible approximate fit
functions.373737 The explicit form in Ref. [21] is  $\displaystyle
R\\!\left(T\right)$ $\displaystyle=\begin{cases}255&T<6688\,\text{K},\\\
329.70\left(T-6000\,\text{K}\over
100\,\text{K}\right)^{-0.133205}&T>6688\,\text{K},\end{cases}$ $\displaystyle
G\\!\left(T\right)$ $\displaystyle=\begin{cases}0&T<505\,\text{K},\\\
99.47\ln{T\over 100\,\text{K}}-161.12&505\,\text{K}<T<6503\,\text{K},\\\
287.12\left(T-6000\,\text{K}\over
100\,\text{K}\right)^{-0.0755148}&T>6503\,\text{K},\end{cases}$ $\displaystyle
B\\!\left(T\right)$ $\displaystyle=\begin{cases}0&T<1904\,\text{K},\\\
138.52\ln{T-1000\,\text{K}\over
100\,\text{K}}-305.04&1904\,\text{K}<T<6700\,\text{K},\\\
255&T>6700\,\text{K}.\end{cases}$ For a given set of $\left(R,G,B\right)$, we
may then naively compute color-specific temperatures
$\left(T_{R},T_{G},T_{B}\right)$ by inverting Eq. (155).383838 A color
function, say, $T_{G}$ may not be a single-valued function of $G$ but a
twofold one, as in footnote 37. Even then, one may in practice take the lower
(higher) value of $T_{G}$ when $R>B$ ($R<B$) for a given set
$\left(R,G,B\right)$.  Physically, a temperature roughly behaves as an energy,
which is the 0th component of the energy-momentum $D$ vector, proportional to
the wave vector (163) for photons. Therefore, the new color temperature for
$O$ would be estimated by $T/C$ for each color. Then one may get the naive
Doppler-shifted colors as

$\displaystyle R\\!\left(T_{R}/C\right),\quad G\\!\left(T_{G}/C\right),\quad
B\\!\left(T_{B}/C\right).$ (156)

We have shown how to mimic the Doppler effect within the RGB color scheme. As
said, the full treatment requires the inclusion of the spectrum of the light
for each pixel, instead of the current approximation using the three RGB
numbers. That will allow visualization of the currently invisible ultraviolet
and infrared lights when one is boosted significantly by a Lorentz
transformation.

##  6 Summary

We have shown how to implement special relativity in computer games. The past
light cone is used for the foliation of the world without violating causality.
This is the first realization of interacting nonplayer characters that
perceive the world and react to others, both relativistically without
violating causality, under fully relativistic time evolution. In the
formulation, the notion of the Lorentz-covariant velocity is extensively used,
instead of the more widely used noncovariant velocity. We have shown several
ideas to approximate the relativistic world such as the relativistic
generalization of the skydome, rigid body, and Doppler effect.

You may find an implementation of the ideas presented in this paper in Ref.
[15].

### Acknowledgements

The idea of a relativistic game occurred to K.O. while watching Ref. [22].
K.O. thanks all the participants of the class “Making relativistic games” at
Osaka University during 2009–2012 and 2015. The work of K.O. is partially
supported by JSPS KAKENHI Grant Nos. 15K05053 and 23104009.

## Appendix

##  Appendix A Relativistic energy and momentum

From the Lorentz-covariant velocity $\overrightarrow{u}$, we may define the
Lorentz-covariant $D$ momentum

$\displaystyle\overrightarrow{p}$ $\displaystyle=m\overrightarrow{u},$ (157)

where $m$ is the mass of the particle. Alternatively, we may give the $D$
momentum $\overrightarrow{p}$ first, and define $m$ to be its Lorentz-
invariant norm

$\displaystyle m$
$\displaystyle:=\sqrt{-\left[\overrightarrow{p}\right]^{2}},$ (158)

which is a fixed constant for each species of particle.393939 We have assumed
that $\overrightarrow{p}$ is either time-like
$\left[\overrightarrow{p}\right]^{2}<0$ or light-like
$\left[\overrightarrow{p}\right]^{2}=0$. A particle having space-like momentum
$\left[\overrightarrow{p}\right]^{2}>0$ moves faster than the speed of light,
and is the tachyon discussed in footnote 16.  The $D$ velocity is then given
as $\overrightarrow{u}=\overrightarrow{p}/m$ for a massive particle.

The time component of $\overrightarrow{p}$ is identified as the energy of the
particle:

$\displaystyle E$ $\displaystyle=p^{0}.$ (159)

From the definition of mass (158), we obtain

$\displaystyle E$ $\displaystyle=\sqrt{m^{2}+\boldsymbol{p}^{2}}.$ (160)

When the particle is at rest $\boldsymbol{p}=0$, its energy reduces to its
mass, and we get Einstein’s celebrated formula for the rest energy

$\displaystyle E$ $\displaystyle=mc^{2},$ (161)

where we have tentatively recovered the speed of light $c$. Note that the
ratio of momentum to energy gives the ordinary noncovariant velocity

$\displaystyle{\boldsymbol{p}\over E}$ $\displaystyle={\boldsymbol{u}\over
u^{0}}={\boldsymbol{u}\over\gamma\\!\left(\boldsymbol{u}\right)}=\boldsymbol{v}$
(162)

in any coordinate system.

For a massless particle such as a photon, of which light consists, the
velocity $\overrightarrow{u}$ cannot be defined, and rather its momentum
$\overrightarrow{p}$ is a suitable physical quantity. In quantum mechanics,
photon’s $D$ momentum $\overrightarrow{p}$ is related to the _wave $D$ vector_
$\overrightarrow{k}$ by

$\displaystyle\overrightarrow{p}$ $\displaystyle=\hbar\overrightarrow{k},$
(163)

where $\hbar\simeq 10^{-34}\,\text{J}\text{s}$ is the _reduced Planck
constant_ and, tentatively recovering $c$ from the natural units,

$\displaystyle\overrightarrow{p}$ $\displaystyle=\begin{bmatrix}E/c\\\
\boldsymbol{p}\end{bmatrix},$ $\displaystyle\overrightarrow{k}$
$\displaystyle=\begin{bmatrix}\omega/c\\\ \boldsymbol{k}\end{bmatrix},$ (164)

in which $\omega$ and $\boldsymbol{k}$ are the _angular velocity_ and the
_wave vector_ , respectively. Note that

$\displaystyle\omega$ $\displaystyle=2\pi f,$ $\displaystyle k^{i}$
$\displaystyle={2\pi\over\lambda^{i}}$ $\displaystyle(i=1,\dots,d),$ (165)

where $f$ is the frequency and $\lambda^{i}$ is the wavelength for the $i$th
direction. Note also that the photon momentum $D$ vector is light-like:

$\displaystyle\left[\overrightarrow{p}\right]^{2}=\left[\overrightarrow{k}\right]^{2}$
$\displaystyle=0.$ (166)

The relation (163) is used when taking into account the Doppler effect in Sec.
5.4.

##  Appendix B Lorentz contraction and dilation

We show that a measuring rod moving towards the observer looks _longer_ than
when it is at rest, because of the Lorentz “contraction”, due to the PLC
foliation. For simplicity, we work in the $D=1+1$-dimensional spacetime with
only $d=1$ spatial dimension.

We consider a measuring rod that has a length $\ell$ in its rest frame.
Suppose it stays at rest forever in its rest frame. Then its “worldsheet” can
be written in the rest frame as

$\displaystyle W_{\text{rod}}$
$\displaystyle=\Set{\overrightarrow{X}=\left(X^{0},X^{1}\right)}{-\infty<X^{0}<\infty,\quad
0\leq X^{1}\leq\ell}.$ (167)

We call $X^{1}=0$ and $\ell$ the left and right ends of the rod, respectively.

Figure 6: Schematic figure in the reference frame $\left(x^{0},x^{1}\right)$
in which the observer stays at rest at $x^{1}=0$. The worldsheet of the
measuring rod is collectively represented by the yellow band. Solid and dotted
diagonal blue lines are the PLC and FLC of the observer, respectively. Thin
dashed dark-yellow lines represent the rod’s rest frame. Blue dashed
horizontal lines are equal-time slices for the observer.

Suppose that the rod has a velocity
$\overrightarrow{u}=\left(\gamma\\!\left(u^{1}\right),\,u^{1}\right)$ in the
reference frame, where the Lorentz factor is

$\displaystyle
u^{0}=\gamma\\!\left(u^{1}\right)=\sqrt{1+\left(u^{1}\right)^{2}}\geq 1.$
(168)

Here and hereafter in this section, we do not make the unnecessary distinction
between $\boldsymbol{u}$ and $u^{1}$ as we work in the $d=1$ spatial
dimension. See Fig. 6 for a schematic plot. The reference frame
$\overrightarrow{x}$ is obtained from the rod’s rest frame
$\overrightarrow{X}$ by

$\displaystyle\overrightarrow{x}=L\\!\left(-u^{1}\right)\overrightarrow{X}$
(169)

where

$\displaystyle L\\!\left(-u^{1}\right)$
$\displaystyle=\begin{bmatrix}\gamma\\!\left(u^{1}\right)&u^{1}\\\
u^{1}&\gamma\\!\left(u^{1}\right)\end{bmatrix}.$ (170)

We see that the time coordinate of the rest frame is written as
$X^{0}=\gamma\\!\left(u^{1}\right)x^{0}-u^{1}\,x^{1}$ and hence

$\displaystyle x^{1}$
$\displaystyle=v\,x^{0}+{1\over\gamma\\!\left(u^{1}\right)}X^{1},$ (171)

where $v:=u^{1}/\gamma\\!\left(u^{1}\right)$ is the noncovariant velocity. In
the reference frame $\Set{\overrightarrow{x}}$, the rod appears to move with
the (noncovariant) velocity $v$, and its length measured in $x^{1}$ is
_contracted_ to be $\ell/\gamma\\!\left(u^{1}\right)$ as $X^{1}$ varies from 0
to $\ell$. That is, the worldsheet of the rod can be written in the reference
frame as

$\displaystyle W_{\text{rod}}$
$\displaystyle=\Set{\overrightarrow{x}=\left(x^{0},v\,x^{0}+\delta
x^{1}\right)}{-\infty<x^{0}<\infty,\quad 0\leq\delta
x^{1}\leq{\ell\over\gamma\\!\left(u^{1}\right)}},$ (172)

where $\delta x^{1}:=X^{1}/\gamma\\!\left(u^{1}\right)$. This is the
celebrated _Lorentz contraction_.

However, the contracted length $\ell/\gamma\\!\left(u^{1}\right)$ is the
length at an _equal-time slice_ $x^{0}=\text{const.}$, which is not really a
length measured on any observer’s PLC. The equal-time slices are represented
by the blue dashed horizontal lines in Fig 6. To see the real measured length,
let us prepare an observer staying at rest at $x^{1}=0$ in the reference
frame. We restrict ourselves to the case of a right-moving rod $u^{1}>0$
without loss of generality. The observer sees the rod from
$\overrightarrow{x_{\text{O}}}=\left(x_{\text{O}}^{0},0\right)$.

When the rod is moving away from the observer, $x_{\text{O}}^{0}>0$, the left
and right ends of the rod intersect with
$\operatorname{PLC}\\!\left(\overrightarrow{x_{\text{O}}}\right)$ at
$\overrightarrow{x_{\text{L}}}$ and $\overrightarrow{x_{\text{R}}}$:

$\displaystyle\overrightarrow{x_{\text{L}}}$
$\displaystyle=\left(\gamma\\!\left(u^{1}\right)-u^{1}\right)\begin{bmatrix}\gamma\\!\left(u^{1}\right)x_{\text{O}}^{0}\\\
u^{1}\,x_{\text{O}}^{0}\end{bmatrix},$
$\displaystyle\overrightarrow{x_{\text{R}}}$
$\displaystyle=\left(\gamma\\!\left(u^{1}\right)-u^{1}\right)\begin{bmatrix}\gamma\\!\left(u^{1}\right)x_{\text{O}}^{0}-\ell\\\
u^{1}\,x_{\text{O}}^{0}+\ell\end{bmatrix}.$ (173)

Therefore, the observed length of the rod is

$\displaystyle\ell_{\text{obs}}$
$\displaystyle=x_{\text{R}}^{1}-x_{\text{L}}^{1}=\left(\gamma\\!\left(u^{1}\right)-u^{1}\right)\ell.$
(174)

Using the identity
$\gamma\\!\left(u\right)-u=\left(\gamma\\!\left(u\right)+u\right)^{-1}$, we
see that this is _shorter_ than the Lorentz contraction
$\ell/\gamma\\!\left(u^{1}\right)$.

When the rod is moving towards the observer, $x_{\text{O}}^{0}<-\ell/u^{1}$,
the left and right ends of the rod intersect with
$\operatorname{PLC}\\!\left(\overrightarrow{x_{\text{O}}}\right)$ at
$\overrightarrow{x_{\text{L}}}$ and $\overrightarrow{x_{\text{R}}}$:

$\displaystyle\overrightarrow{x_{\text{L}}}$
$\displaystyle={1\over\gamma\\!\left(u^{1}\right)-u^{1}}\begin{bmatrix}\gamma\\!\left(u^{1}\right)x_{\text{O}}^{0}\\\
u^{1}\,x_{\text{O}}^{0}\end{bmatrix},$
$\displaystyle\overrightarrow{x_{\text{R}}}$
$\displaystyle={1\over\gamma\\!\left(u^{1}\right)-u^{1}}\begin{bmatrix}\gamma\\!\left(u^{1}\right)x_{\text{O}}^{0}+\ell\\\
u^{1}\,x_{\text{O}}^{0}+\ell\end{bmatrix}.$ (175)

The observed length of the rod is

$\displaystyle\ell_{\text{obs}}$
$\displaystyle=x_{\text{R}}^{1}-x_{\text{L}}^{1}=\left(\gamma\\!\left(u^{1}\right)+u^{1}\right)\ell,$
(176)

where we have used the identity
$1/\left(\gamma\\!\left(u\right)-u\right)=\gamma\\!\left(u\right)+u$. We see
that the observed length is _longer_ than $\ell$ when the rod is moving
towards the observer.

Figure 7: The blue solid line shows the observed Lorentz factor
$\gamma\\!\left(u_{\text{dep}}\right)-u_{\text{dep}}$ as a function of
$u_{\text{dep}}$ (left) and $v_{\text{dep}}$ (right). For comparison, the
conventional Lorentz factor $1/\gamma\\!\left(u_{\text{dep}}\right)$ is also
plotted in the yellow dashed lines.

To summarize, when we write the departing velocity of the rod
$u_{\text{dep}}$, which is $u^{1}$ and $-u^{1}$ in Eqs. (174) and (176),
respectively, the apparent length of the rod is

$\displaystyle\ell_{\text{obs}}$
$\displaystyle=\left(\gamma\\!\left(u_{\text{dep}}\right)-u_{\text{dep}}\right)\ell.$
(177)

In the left panel of Fig. 7, we show this factor as a function of
$u_{\text{dep}}$. We also show it in the right as a function of the
noncovariant departing velocity
$v_{\text{dep}}:=u_{\text{dep}}/\gamma\\!\left(u_{\text{dep}}\right)$.

##  Appendix C Evolution in co-moving frames

To cultivate physical intuition, it is instructive to formulate how the
player, in its rest frame at each moment, sees the motion of the others that
are always on the player’s PLC. The formulation in Sec. 4.2 is better than the
one in this section in the sense that it takes into account the time dilation
more accurately in the discretized time steps, while the formulation in this
section makes the time evolution more tractable in an analytic treatment.

Suppose that the player’s position and velocity at its proper time
$\tau_{\text{P}}$ are $\overrightarrow{x_{\text{P}}}$ and
$\overrightarrow{u_{\text{P}}}$, respectively, in the reference frame. After
an infinitesimal time $\Delta\tau_{\text{P}}$ felt by the player, we shift the
player’s proper time, position, and velocity as404040
$\left[\overrightarrow{u_{\text{P}}^{\prime}}\right]^{2}=-1$ holds up to the
$\mathcal{O}\\!\left(\left(\Delta\tau_{\text{P}}\right)^{2}\right)$ term
because $\overrightarrow{u_{\text{P}}}\cdot\overrightarrow{a_{\text{P}}}=0$.
Throughout this section, we shall neglect the quadratic and higher-order terms
of infinitesimal quantities. In an actual implementation with finite time
step, one may always reset any time component of the velocity $u^{\prime 0}$
to $\sqrt{1+\boldsymbol{u}^{\prime 2}}$ whenever necessary.

$\displaystyle\tau_{\text{P}}$
$\displaystyle\longmapsto\tau_{\text{P}}^{\prime}=\tau_{\text{P}}+\Delta\tau_{\text{P}},$
$\displaystyle\overrightarrow{x_{\text{P}}}$
$\displaystyle\longmapsto\overrightarrow{x_{\text{P}}^{\prime}}=\overrightarrow{x_{\text{P}}}+\overrightarrow{u_{\text{P}}}\,\Delta\tau_{\text{P}},$
$\displaystyle\overrightarrow{u_{\text{P}}}$
$\displaystyle\longmapsto\overrightarrow{u_{\text{P}}^{\prime}}=\overrightarrow{u_{\text{P}}}+\overrightarrow{a_{\text{P}}}\,\Delta\tau_{\text{P}},$
(178)

where $\overrightarrow{a_{\text{P}}}$ is the player’s acceleration at the
spacetime point $\overrightarrow{x_{\text{P}}}$ in the reference frame.

In the PLC foliation, all the other objects are located on
$\operatorname{PLC}\\!\left(\overrightarrow{x_{\text{P}}}\right)$: The $n$th-
particle’s position $\overrightarrow{x_{n}}$ satisfies
$x_{n}^{0}<x_{\text{P}}^{0}$ and

$\displaystyle\left[\overrightarrow{x_{n}}-\overrightarrow{x_{\text{P}}}\right]^{2}$
$\displaystyle=0.$ (179)

In the iteration (178), the $n$th particle moves onto

$\displaystyle\overrightarrow{x_{n}}$
$\displaystyle\longmapsto\overrightarrow{x_{n}^{\prime}}=\overrightarrow{x_{n}}+\overrightarrow{u_{n}}\,\Delta\tau_{n},$
(180) $\displaystyle\overrightarrow{u_{n}}$
$\displaystyle\longmapsto\overrightarrow{u_{n}^{\prime}}=\overrightarrow{u_{n}}+\overrightarrow{a_{n}}\,\Delta\tau_{n},$
(181)

where $\overrightarrow{a_{n}}$ is the acceleration of the $n$th particle at
$\overrightarrow{x_{n}}$ in the reference frame.

As the player has moved to $\overrightarrow{x_{\text{P}}^{\prime}}$, the
hypersurface seen by the player in the next step is
$\operatorname{PLC}\\!\left(\overrightarrow{x_{\text{P}}^{\prime}}\right)$.
The amount of the proper-time difference $\Delta\tau_{n}$ is determined by the
requirement that $\overrightarrow{x_{n}^{\prime}}$ is on
$\operatorname{PLC}\\!\left(\overrightarrow{x_{\text{P}}^{\prime}}\right)$:

$\displaystyle\left[\overrightarrow{x_{n}^{\prime}}-\overrightarrow{x_{\text{P}}^{\prime}}\right]^{2}=0$
(182)

with $x_{n}^{\prime 0}<x_{\text{P}}^{\prime 0}$. Concretely, we obtain

$\displaystyle\Delta\tau_{n}$
$\displaystyle=\left[\overrightarrow{x_{n}}-\overrightarrow{x_{\text{P}}^{\prime}},\overrightarrow{u_{n}}\right]-\sqrt{\left[\overrightarrow{x_{n}}-\overrightarrow{x_{\text{P}}^{\prime}},\overrightarrow{u_{n}}\right]^{2}+\left[\overrightarrow{x_{n}}-\overrightarrow{x_{\text{P}}^{\prime}}\right]^{2}}$
$\displaystyle=\left[\overrightarrow{x_{n}}-\overrightarrow{x_{\text{P}}^{\prime}},\overrightarrow{u_{n}}\right]-\sqrt{\left[\overrightarrow{x_{n}}-\overrightarrow{x_{\text{P}}^{\prime}},\overrightarrow{u_{n}}\right]^{2}-2\left[\overrightarrow{x_{n}}-\overrightarrow{x_{\text{P}}},\overrightarrow{u_{\text{P}}}\right]\,\Delta\tau_{\text{P}}-\left(\Delta\tau_{\text{P}}\right)^{2}},$
(183)

where we have used $\left[\overrightarrow{u_{n}}\right]^{2}=-1$ and Eq. (179),
as well as $\left[\overrightarrow{u_{\text{P}}}\right]^{2}=-1$, in the first
and second steps, respectively. Note that
$\left[\overrightarrow{x_{n}}-\overrightarrow{x_{\text{P}}^{\prime}},\overrightarrow{u_{n}}\right]>0$.
In the limit $\Delta\tau_{\text{P}}\to 0$, we get

$\displaystyle\Delta\tau_{n}$
$\displaystyle\approx{\left[\overrightarrow{x_{n}}-\overrightarrow{x_{\text{P}}},\overrightarrow{u_{\text{P}}}\right]\over\left[\overrightarrow{x_{n}}-\overrightarrow{x_{\text{P}}},\overrightarrow{u_{n}}\right]}\,\Delta\tau_{\text{P}},$
(184)

where $\approx$ indicates that the quadratic and higher-order terms of the
infinitesimal quantities are neglected.414141 In an actual implementation with
finite $\Delta\tau_{\text{P}}$, Eq. (183) is more usable than Eq. (184).

As in footnote 27, let us introduce the central-frame coordinates
$\overrightarrow{X}$ in which the player at its proper time $\tau_{\text{P}}$
looks at rest at the spacetime origin:
$\overrightarrow{X_{\text{P}}}\\!\left(\tau_{\text{P}}\right)=0$ and
$\overrightarrow{U_{\text{P}}}\\!\left(\tau_{\text{P}}\right)=0$. The
corresponding central-frame position vector $\overrightarrow{X}$ to the
reference-frame one $\overrightarrow{x}$ is

$\displaystyle\overrightarrow{X}$
$\displaystyle=L\\!\left(\boldsymbol{u_{\text{P}}}\\!\left(\tau_{\text{P}}\right)\right)\left(\overrightarrow{x}-\overrightarrow{x_{\text{P}}}\\!\left(\tau_{\text{P}}\right)\right).$
(185)

The central frame differs at each proper time of the player $\tau_{\text{P}}$,
and we call it the $\mathcal{C}\\!\left(\tau_{\text{P}}\right)$ frame; we also
call them collectively the co-moving frames. In particular, the player is
always at rest at the origin in the co-moving frames:
$\overrightarrow{\mathcal{X}_{\text{P}}}=\left(0,\boldsymbol{0}\right)$ and
$\overrightarrow{\mathcal{U}_{\text{P}}}=\left(1,\boldsymbol{0}\right)$. Here
and hereafter, we write the quantities in the co-moving frames in a curly
upper-case letter. We continue to write the quantities in the reference frame
and in each rest frame (at a particular moment) in lower and upper cases,
respectively. We consider the foliation by the player’s PLCs and formulate the
time evolution as always pulled back to the player’s central frame at each
moment.

At $\tau_{\text{P}}$, the co-moving-frame coordinates
$\overrightarrow{\mathcal{X}}$ are identified with the
$\mathcal{C}\\!\left(\tau_{\text{P}}\right)$-frame coordinates
$\overrightarrow{X}$:

$\displaystyle\left.\overrightarrow{\mathcal{X}}\right|_{\tau_{\text{P}}}$
$\displaystyle=\overrightarrow{X},$ (186)

where $\overrightarrow{X}$ is given in Eq. (185). For a given acceleration
$\overrightarrow{A_{\text{P}}}=\left(0,\boldsymbol{A}_{\text{P}}\right)$ in
the $\mathcal{C}\\!\left(\tau_{\text{P}}\right)$ frame, the player’s next
location and the velocity after an infinitesimal time $\Delta\tau_{\text{P}}$,
felt by the player, are424242 The reference-frame acceleration reads
$\boldsymbol{a}_{\text{P}}=\boldsymbol{A}_{\text{P}}+\left(\gamma\\!\left(\boldsymbol{u}_{\text{P}}\right)-1\right)\left(\boldsymbol{\hat{u}}_{\text{P}}\cdot\boldsymbol{A}_{\text{P}}\right)\boldsymbol{\hat{u}}_{\text{P}}$,
from which we may obtain the reference-frame velocity in the next step:
$\boldsymbol{u}_{\text{P}}^{\prime}=\boldsymbol{u}_{\text{P}}+\boldsymbol{a}_{\text{P}}\Delta\tau_{\text{P}}$.

$\displaystyle\overrightarrow{X_{\text{P}}}=\begin{bmatrix}0\\\
\boldsymbol{0}\end{bmatrix}$
$\displaystyle\longmapsto\overrightarrow{X_{\text{P}}^{\prime}}:=\begin{bmatrix}0\\\
\boldsymbol{0}\end{bmatrix}+\begin{bmatrix}1\\\
\boldsymbol{0}\end{bmatrix}\Delta\tau_{\text{P}}=\begin{bmatrix}\Delta\tau_{\text{P}}\\\
\boldsymbol{0}\end{bmatrix},$ (187)
$\displaystyle\overrightarrow{U_{\text{P}}}=\begin{bmatrix}1\\\
\boldsymbol{0}\end{bmatrix}$
$\displaystyle\longmapsto\overrightarrow{U_{\text{P}}^{\prime}}:=\begin{bmatrix}1\\\
\boldsymbol{0}\end{bmatrix}+\begin{bmatrix}0\\\
\boldsymbol{A}_{\text{P}}\end{bmatrix}\Delta\tau_{\text{P}}=\begin{bmatrix}1\\\
\boldsymbol{A}_{\text{P}}\Delta\tau_{\text{P}}\end{bmatrix}.$ (188)

Figure 8: Schematic plot to show the difference between the situations where
the $n$th particle is coming closer to the player,
$\boldsymbol{X}_{n}\cdot\boldsymbol{\hat{U}}_{n}<0$ in the player’s central
frame, and going away from the player,
$\boldsymbol{X}_{n}\cdot\boldsymbol{\hat{U}}_{n}>0$.

At $\tau_{\text{P}}$, every object is located on
$\operatorname{PLC}\\!\left(\overrightarrow{x_{\text{P}}}\right)$. In the
$\mathcal{C}\\!\left(\tau_{\text{P}}\right)$ frame, we may parametrize the
location of the $n$th particle as

$\displaystyle\left.\overrightarrow{\mathcal{X}_{n}}\right|_{\tau_{\text{P}}}=\overrightarrow{X_{n}}=\begin{bmatrix}-\left|\boldsymbol{X}_{n}\right|\\\
\boldsymbol{X}_{n}\end{bmatrix},$ (189)

due to the PLC condition $\left[\overrightarrow{X_{n}}\right]^{2}=0$, derived
from $\left[\overrightarrow{X_{n}}-\overrightarrow{X_{\text{P}}}\right]^{2}=0$
with $\overrightarrow{X}_{\text{P}}=0$.434343 One might think that the PLC
condition $\left[\overrightarrow{X_{n}}\right]^{2}=0$ leads to
$\left[\overrightarrow{X_{n}},\overrightarrow{U_{n}}\right]\stackrel{{\scriptstyle?}}{{=}}0$
by differentiating it with respect to $\tau_{n}$. This is not the case because
the $n$th-particle’s trajectory is not on the
$\operatorname{PLC}\\!\left(x_{\text{P}}\right)$ but away from it. That is,
$\left[\overrightarrow{X_{n}}\right]^{2}=0$ does not hold along the path of
the $n$th particle.  After the infinitesimal time evolution, the $n$th
particle moves onto
$\operatorname{PLC}\\!\left(\overrightarrow{x_{\text{P}}^{\prime}}\right)$. In
the $\mathcal{C}\\!\left(\tau_{\text{P}}\right)$ frame,

$\displaystyle\overrightarrow{X_{n}}=\begin{bmatrix}-\left|\boldsymbol{X}_{n}\right|\\\
\boldsymbol{X}_{n}\end{bmatrix}$
$\displaystyle\longmapsto\overrightarrow{X_{n}^{\prime}}=\overrightarrow{X_{n}}+\overrightarrow{U_{n}}\,\Delta\tau_{n},$
(190)
$\displaystyle\overrightarrow{U_{n}}=\begin{bmatrix}\gamma\\!\left(\boldsymbol{U}_{n}\right)\\\
\boldsymbol{U}_{n}\end{bmatrix}$
$\displaystyle\longmapsto\overrightarrow{U_{n}^{\prime}}=\overrightarrow{U_{n}}+\overrightarrow{A_{n}}\,\Delta\tau_{n},$
(191)

where we see from Eq. (184) that444444 As Eq. (184) is manifestly Lorentz
invariant, it is applicable in any frame.

$\displaystyle\Delta\tau_{n}$
$\displaystyle\approx{\left[\overrightarrow{X_{n}}-\overrightarrow{X_{\text{P}}},\overrightarrow{U_{\text{P}}}\right]\over\left[\overrightarrow{X_{n}}-\overrightarrow{X_{\text{P}}},\overrightarrow{U_{n}}\right]}\,\Delta\tau_{\text{P}}={\Delta\tau_{\text{P}}\over\gamma\\!\left(\boldsymbol{U}_{n}\right)+\boldsymbol{\hat{X}}_{n}\cdot\boldsymbol{U}_{n}},$
(192)

in which we have used $\overrightarrow{X_{\text{P}}}=\overrightarrow{0}$,
$\overrightarrow{U_{\text{P}}}=\left(1,\boldsymbol{0}\right)$, and
$\overrightarrow{X_{n}}=\left(-\left|\boldsymbol{X}_{n}\right|,\boldsymbol{X}_{n}\right)=\left|\boldsymbol{X}_{n}\right|\left(-1,\boldsymbol{\hat{X}}_{n}\right)$.
We see that a particle coming toowards the player,
$\boldsymbol{\hat{X}}_{n}\cdot\boldsymbol{U}_{n}<0$, spends a longer proper
time compared to a particle going away from the player,
$\boldsymbol{\hat{X}}_{n}\cdot\boldsymbol{U}_{n}>0$; see Fig. 8.

The Lorentz transformation from the
$\mathcal{C}\\!\left(\tau_{\text{P}}\right)$ frame to the
$\mathcal{C}\\!\left(\tau_{\text{P}}^{\prime}\right)$ frame is

$\displaystyle
L\\!\left(\boldsymbol{U}_{\text{P}}^{\prime}\right)=L\\!\left(\boldsymbol{A}_{\text{P}}\Delta\tau_{\text{P}}\right)$
$\displaystyle=\begin{bmatrix}\gamma\\!\left(\boldsymbol{A}_{\text{P}}\Delta\tau_{\text{P}}\right)&-\boldsymbol{A}_{\text{P}}^{\text{T}}\Delta\tau_{\text{P}}\\\
-\boldsymbol{A}_{\text{P}}\Delta\tau_{\text{P}}&\text{I}+\left(\gamma\\!\left(\boldsymbol{A}_{\text{P}}\Delta\tau_{\text{P}}\right)-1\right)\boldsymbol{\hat{A}}_{\text{P}}^{\text{T}}\boldsymbol{\hat{A}}_{\text{P}}\end{bmatrix}$
$\displaystyle\approx\begin{bmatrix}1&-\boldsymbol{A}_{\text{P}}^{\text{T}}\Delta\tau_{\text{P}}\\\
-\boldsymbol{A}_{\text{P}}\Delta\tau_{\text{P}}&\text{I}\end{bmatrix},$ (193)

and the co-moving coordinates $\overrightarrow{\mathcal{X}^{\prime}}$ at
$\tau_{\text{P}}^{\prime}$ are obtained from $\overrightarrow{X^{\prime}}$ in
the $\mathcal{C}\\!\left(\tau_{\text{P}}\right)$ frame by the following
Poincaré transformation:

$\displaystyle\left.\overrightarrow{\mathcal{X}^{\prime}}\right|_{\tau_{\text{P}}^{\prime}}$
$\displaystyle=L\\!\left(\boldsymbol{U}_{\text{P}}^{\prime}\right)\left(\overrightarrow{X^{\prime}}-\overrightarrow{X_{\text{P}}^{\prime}}\right)$
$\displaystyle\approx\begin{bmatrix}X^{\prime 0}\\\
\boldsymbol{X}^{\prime}\end{bmatrix}-\begin{bmatrix}1+\boldsymbol{A}_{\text{P}}\cdot\boldsymbol{X}^{\prime}\\\
X^{\prime 0}\boldsymbol{A}_{\text{P}}\end{bmatrix}\Delta\tau_{\text{P}}.$
(194)

Accordingly, any velocity $\overrightarrow{U^{\prime}}$ in the
$\mathcal{C}\\!\left(\tau_{\text{P}}\right)$ frame is transformed as

$\displaystyle\left.\overrightarrow{\mathcal{U}^{\prime}}\right|_{\tau_{\text{P}}^{\prime}}$
$\displaystyle=L\\!\left(\boldsymbol{U}_{\text{P}}^{\prime}\right)\overrightarrow{U^{\prime}}$
$\displaystyle\approx\begin{bmatrix}U^{\prime 0}\\\
\boldsymbol{U}^{\prime}\end{bmatrix}-\begin{bmatrix}\boldsymbol{A}_{\text{P}}\cdot\boldsymbol{U}^{\prime}\\\
U^{\prime 0}\boldsymbol{A}_{\text{P}}\end{bmatrix}\Delta\tau_{\text{P}}.$
(195)

Putting $\overrightarrow{X_{n}^{\prime}}$ and
$\overrightarrow{U_{n}^{\prime}}$ into $\overrightarrow{X^{\prime}}$ and
$\overrightarrow{U^{\prime}}$ in the above expression, respectively, we get

$\displaystyle\left.\overrightarrow{\mathcal{X}_{n}^{\prime}}\right|_{\tau_{\text{P}}^{\prime}}$
$\displaystyle=L\\!\left(\boldsymbol{U}_{\text{P}}^{\prime}\right)\left(\overrightarrow{X_{n}^{\prime}}-\overrightarrow{X_{\text{P}}^{\prime}}\right)$
$\displaystyle\approx\begin{bmatrix}-\left|\boldsymbol{X}_{n}\right|\\\
\boldsymbol{X}_{n}\end{bmatrix}+\begin{bmatrix}\gamma\\!\left(\boldsymbol{U}_{n}\right)\\\
\boldsymbol{U}_{n}\end{bmatrix}\Delta\tau_{n}+\begin{bmatrix}-\left(1+\boldsymbol{A}_{\text{P}}\cdot\boldsymbol{X}_{n}\right)\\\
\left|\boldsymbol{X}_{n}\right|\boldsymbol{A}_{\text{P}}\end{bmatrix}\Delta\tau_{\text{P}},$
(196)
$\displaystyle\left.\overrightarrow{\mathcal{U}_{n}^{\prime}}\right|_{\tau_{\text{P}}^{\prime}}$
$\displaystyle=L\\!\left(\boldsymbol{U}_{\text{P}}^{\prime}\right)\overrightarrow{U_{n}^{\prime}}$
$\displaystyle\approx\begin{bmatrix}U_{n}^{0}\\\
\boldsymbol{U}_{n}\end{bmatrix}+\begin{bmatrix}A_{n}^{0}\\\
\boldsymbol{A}_{n}\end{bmatrix}\Delta\tau_{n}-\begin{bmatrix}\boldsymbol{A}_{\text{P}}\cdot\boldsymbol{U}_{n}\\\
\gamma\\!\left(\boldsymbol{U}_{n}\right)\boldsymbol{A}_{\text{P}}\end{bmatrix}\Delta\tau_{\text{P}},$
(197)

where $\Delta\tau_{n}$ is given in Eq. (192).

To summarize, the basic evolution equation in the co-moving frames is

$\displaystyle{\text{d}\boldsymbol{\mathcal{X}}_{n}\over\text{d}\tau_{\text{P}}}$
$\displaystyle={\boldsymbol{\mathcal{U}}_{n}\over\gamma\\!\left(\boldsymbol{\mathcal{U}}_{n}\right)+\boldsymbol{\hat{\mathcal{X}}}_{n}\cdot\boldsymbol{\mathcal{U}}_{n}}+\left|\boldsymbol{\mathcal{X}}_{n}\right|\boldsymbol{\mathcal{A}}_{\text{P}},$
(198)
$\displaystyle{\text{d}\boldsymbol{\mathcal{U}}_{n}\over\text{d}\tau_{\text{P}}}$
$\displaystyle={\boldsymbol{\mathcal{A}}_{n}\over\gamma\\!\left(\boldsymbol{\mathcal{U}}_{n}\right)+\boldsymbol{\hat{\mathcal{X}}}_{n}\cdot\boldsymbol{\mathcal{U}}_{n}}-\gamma\\!\left(\boldsymbol{\mathcal{U}}_{n}\right)\boldsymbol{\mathcal{A}}_{\text{P}},$
(199)

where

$\displaystyle\left.{\text{d}\boldsymbol{\mathcal{X}}_{n}\over\text{d}\tau_{\text{P}}}\right|_{\tau_{\text{P}}}$
$\displaystyle:=\lim_{\Delta\tau_{\text{P}}\to
0}{\left.\boldsymbol{\mathcal{X}}_{n}^{\prime}\right|_{\tau_{\text{P}}^{\prime}}-\left.\boldsymbol{\mathcal{X}}_{n}\right|_{\tau_{\text{P}}}\over\Delta\tau_{\text{P}}},$
(200)

with
$\left.\boldsymbol{\mathcal{X}}_{n}^{\prime}\right|_{\tau_{\text{P}}^{\prime}}$
and $\left.\boldsymbol{\mathcal{X}}_{n}\right|_{\tau_{\text{P}}}$ being given
in Eqs. (196) and (189), respectively, and similarly for
$\boldsymbol{\mathcal{U}}_{n}$; we have used
$\left.\boldsymbol{\mathcal{U}}_{n}\right|_{\tau_{\text{P}}}=\boldsymbol{U}_{n}$
and
$\left.\boldsymbol{\mathcal{A}}_{n}\right|_{\tau_{\text{P}}}=\boldsymbol{A}_{n}$;
and we have abbreviated the symbol $\left.\mbox{}\right|_{\tau_{\text{P}}}$ in
the left- and right-hand sides of Eqs. (198) and (199).

The second terms in the right-hand sides of Eqs. (198) and (199) are the extra
contribution from the Lorentz transformation that pulls back to the player’s
central frame in every time step. When the player accelerates towards
$\boldsymbol{\mathcal{X}}_{n}$, the $n$th-particle’s apparent velocity (198)
receives the extra contribution
$\left|\boldsymbol{\mathcal{X}}_{n}\right|\boldsymbol{\mathcal{A}}_{\text{P}}$
that kicks the $n$th particle away from the player. If you accelerate towards
an object, its apparent position becomes farther away from you! On the other
hand, the Lorentz transformation affects the apparent velocity (199) by
$-\gamma\\!\left(\boldsymbol{\mathcal{U}}_{n}\right)\boldsymbol{\mathcal{A}}_{\text{P}}$,
so the $n$th particle’s apparent velocity tends to be pulled back to the
player. These two effects compete with each other, and should eventually bring
the $n$th particle back to the player if the player continues to accelerate
towards it.

Let us see this in the following way. For simplicity, we let the $n$th
particle stay at rest in the reference frame:
$\boldsymbol{\mathcal{A}}_{n}=\boldsymbol{0}$; see footnote 24. We consider a
constant acceleration of the player towards the $n$th particle in the player’s
rest frame:

$\displaystyle\boldsymbol{\mathcal{A}}_{\text{P}}$
$\displaystyle=a\boldsymbol{\hat{\mathcal{X}}}_{n},$ (201)

where $a>0$ is a constant. Note that
$\boldsymbol{\hat{\mathcal{A}}}_{\text{P}}=\boldsymbol{\hat{\mathcal{X}}}_{\text{P}}$.
Putting this into Eq. (199), we obtain

$\displaystyle{\text{d}\boldsymbol{\mathcal{U}}_{n}\over\text{d}\tau_{\text{P}}}$
$\displaystyle=-\gamma\\!\left(\boldsymbol{\mathcal{U}}_{n}\right)a\boldsymbol{\hat{\mathcal{X}}}_{n}$
(202)

We set the initial condition such that the player had also been at rest in the
reference frame before its acceleration. Then the direction
$\boldsymbol{\hat{\mathcal{X}}}_{n}$ remains constant throughout the time
evolution until the $n$th particle collides with the player, and the apparent
velocity of the $n$th particle is proportional to its direction:
$\boldsymbol{\hat{\mathcal{U}}}_{n}\propto\boldsymbol{\hat{\mathcal{X}}}_{n}$.
We parametrize the apparent position and velocity as

$\displaystyle\boldsymbol{\mathcal{X}}_{n}\\!\left(\tau_{\text{P}}\right)$
$\displaystyle=\mathcal{X}\\!\left(\tau_{\text{P}}\right)\boldsymbol{\hat{\mathcal{X}}}_{n},$
(203)
$\displaystyle\boldsymbol{\mathcal{U}}_{n}\\!\left(\tau_{\text{P}}\right)$
$\displaystyle=\mathcal{U}\\!\left(\tau_{\text{P}}\right)\boldsymbol{\hat{\mathcal{X}}}_{n},$
(204)

where $\mathcal{U}\\!\left(\tau_{\text{P}}\right)$ is positive and negative
when the $n$th particle appears to be moving away and coming back to the
player, respectively. Then Eq. (202) reads

$\displaystyle{\text{d}\mathcal{U}\over\text{d}\tau_{\text{P}}}$
$\displaystyle=-a\sqrt{1+\mathcal{U}^{2}},$ (205)

which has the solution

$\displaystyle\mathcal{U}\\!\left(\tau_{\text{P}}\right)$
$\displaystyle=-\sinh\\!\left(a\tau_{\text{P}}\right)$ (206)

under the initial condition $\mathcal{U}\\!\left(0\right)=0$. Putting this
into Eq. (198), we obtain

$\displaystyle{\text{d}\mathcal{X}\over\text{d}\tau_{\text{P}}}$
$\displaystyle=-e^{a\tau_{\text{P}}}\sinh\\!\left(a\tau_{\text{P}}\right)+a\mathcal{X},$
(207)

which is solved as

$\displaystyle\mathcal{X}\\!\left(\tau_{\text{P}}\right)$
$\displaystyle=e^{a\tau_{\text{P}}}\left(\mathcal{X}_{0}+{1-\cosh\\!\left(a\tau_{\text{P}}\right)\over
a}\right),$ (208)

under the initial condition $\mathcal{X}\\!\left(0\right)=\mathcal{X}_{0}$,
where $\mathcal{X}_{0}>0$ is the initial apparent distance. The apparent
velocity and acceleration read

$\displaystyle{\text{d}\mathcal{X}\\!\left(\tau_{\text{P}}\right)\over\text{d}\tau_{\text{P}}}$
$\displaystyle=e^{a\tau_{\text{P}}}\left(1+a\mathcal{X}_{0}-e^{a\tau_{\text{P}}}\right),$
(209)
$\displaystyle{\text{d}^{2}\mathcal{X}\\!\left(\tau_{\text{P}}\right)\over{\text{d}\tau_{\text{P}}}^{2}}$
$\displaystyle=a\,e^{a\tau_{\text{P}}}\left(1+a\mathcal{X}_{0}-2e^{a\tau_{\text{P}}}\right).$
(210)

We see that the particle indeed appears to be moving away from the player at
the beginning: The apparent velocity is positive while
$\tau_{\text{P}}<\tau_{\text{P}}^{c}$, with the critical value
$\tau_{\text{P}}^{c}$ being given by

$\displaystyle\tau_{\text{P}}^{c}$
$\displaystyle:={\ln\\!\left(1+a\mathcal{X}_{0}\right)\over a}={c\over
a}\ln\\!\left(1+{a\mathcal{X}_{0}\over c^{2}}\right),$ (211)

where, in the last step, we have recovered the speed of light from natural
units. The apparent distance at $\tau_{\text{P}}^{c}$ is, in nonnatural units,

$\displaystyle\mathcal{X}\\!\left(\tau_{\text{P}}^{c}\right)$
$\displaystyle=\mathcal{X}_{0}+{a\mathcal{X}_{0}^{2}\over 2c^{2}}.$ (212)

When the apparent distance is small, $\mathcal{X}_{0}\ll c^{2}/a$, we get
$\tau_{\text{P}}^{c}\to\mathcal{X}_{0}/c$. Then if one wants to see this
effect for one second, the apparent distance must be larger than $3\times
10^{8}\,\text{m}$, which is roughly the distance between the Earth and Moon
$\simeq 4\times 10^{8}\,\text{m}$. Even when the apparent distance is of that
order, an acceleration of the order of the gravitational acceleration on
Earth, $a\sim 10\,\text{m}/\text{s}^{2}$, elongates
$\mathcal{X}\\!\left(\tau_{\text{P}}^{c}\right)$ from $\mathcal{X}_{0}$ only
by a fraction of $a\mathcal{X}_{0}/2c^{2}\sim 10^{-8}$, i.e., by
$a\mathcal{X}_{0}^{2}/2c^{2}\sim 10\,\text{m}$. This is a tiny effect for the
distance and acceleration of everyday life. In computer games, one may
consider a very large distance and/or acceleration to see such a relativistic
effect.

The final proper time of collision is

$\displaystyle\tau_{\text{P}}^{f}$ $\displaystyle={c\over
a}\operatorname{arccosh}\\!\left(1+{a\mathcal{X}_{0}\over
c^{2}}\right)=\begin{cases}{c\over a}\ln\\!\left(2a\mathcal{X}_{0}\over
c^{2}\right)+\mathcal{O}\\!\left(\left(a\mathcal{X}_{0}\over
c^{2}\right)^{-1}\right)&\text{for $a\mathcal{X}_{0}\gg c^{2}$,}\\\
\sqrt{2\mathcal{X}_{0}\over a}+\mathcal{O}\\!\left(\left(a\mathcal{X}_{0}\over
c^{2}\right)^{3/2}\right)&\text{for $a\mathcal{X}_{0}\ll c^{2}$.}\end{cases}$
(213)

That is, the proper-time difference between the turnover and collision is

$\displaystyle\tau_{\text{P}}^{f}-\tau_{\text{P}}^{c}$
$\displaystyle=\begin{cases}{c\over a}\ln
2+\mathcal{O}\\!\left(\left(a\mathcal{X}_{0}\over
c^{2}\right)^{-2}\right)&\text{for $a\mathcal{X}_{0}\gg c^{2}$,}\\\
\sqrt{\mathcal{X}_{0}\over a}+\mathcal{O}\\!\left(a\mathcal{X}_{0}\over
c^{2}\right)&\text{for $a\mathcal{X}_{0}\ll c^{2}$.}\end{cases}$ (214)

The corresponding apparent speed is