►
Description
Interactive live stream chat with the creator of PaddlePunks, the "underground fighting tennis" game written in Rust. Learn more about how the sausage is made, and ask your questions live!
https://rustfest.global/session/54-directors-commentary-paddlepunks/
A
Welcome
to
the
the
second
session
of
the
day,
something
that
I'm
also
like
really
really
looking
forward
to
with
me
here
is
felix:
hey
felix
hi
felix
is
a
student
from
finland
and
we'll
be
going
like
yeah
on
an
adventure,
because
felix
made
a
underground
tennis
battle
game
in
rust
and
we're
just
like
gonna
see
what
this
is
all
about,
I'll
be
like
felix.
He
would
just
like
start
playing
walk
through
the
game.
Tell
us
a
little
bit
about
it.
I
may
ask
them
questions.
A
I
will
also
keep
an
eye
on
the
chat,
if,
like
questions
pop
up
in
real
time,
I'll
try
to
relay
them
to
you
and
then
we're
just
gonna
have
like
a
good
old
time
right.
If
you're
ready
with
your
screen
share,
we
can
switch
that
over
sweet
all.
B
Something
I
rendered
out
earlier
of
me
playing
with
a
friend
because
that
was
tricky
to
coordinate
to
happen
online.
So
it's
a
basically
it's
it's
a
sort
of
pawn
light
game
with
extra
steps.
The
sort
of
start
of
the
idea
was
that
I
actually
wanted
to
experiment
with
a
netcode
netcode
model
called
a
rollback
netcode,
and
I
figured
that
I
wanted
a
sort
of
a
simple
game
to
start
off
with.
You
know
something
something
easy.
B
So
I
figured
pong,
that's
nice,
a
simple
two-player
game
and
then
I
sort
of
kept
adding
elements
and
it
sort
of
got
out
of
control.
But
it's
it's
pretty
pleasant
to
play
now,
at
least
so.
I've
got
that
going
for
me,
it's
entirely
written
in
rust,
oh
yeah,
sorry
about
the
the
dress
code.
Actually,
the
thing
to
go
to
after
this
I'm
not
dressed
up
entirely
just
for
this,
although
it
is
very
exciting
to
be
here.
B
B
B
Yeah
but
yeah,
it's
so
yeah,
it's
a
multiplayer
thing
written
entirely
in
rust,
and
I
guess
I
could
show
off
a
bit
of
the
features
that
I
have
actually.
Where
did
I
put
my
notes
there
put
that
over
there
so
right,
it's
just
tell
me
if
the
audio
is
too
loud
or
too
quiet.
That's.
B
Yeah,
so
it's
it's
sort
of
modeled
after
like
fighting
games
where
you
have
a
pretty
diverse
roster
of
characters
with
different
sort
of
abilities,
and
I
knew
that
one
of
the
characters
that
I
wanted
to
have
early
on
was
somebody
who
just
doesn't
let
you
play
pong.
So
I
wanted
somebody
that
could
just.
B
Force
you
to
play
breakout
and
stuff
like
this
sort
of
thing,
is.
B
I
had
in
mind,
and
in
general,
I've
been
trying
to
keep
keep
keep
it
possible,
keep
it
open
to
the
possibility
of
lots
of
different
sort
of
varied
abilities
that
break
the
game
in
different
ways.
I'm
pretty
sure
it's
not
balanced,
but
I'm
not
actually
sure
which
character
is
the
least
balanced
right
now,
so
it's
balanced
in
a
way,
at
least
so
yeah
there's
a
few
different
characters.
There's
an
ai
with
a
bunch
of
different
difficulty
levels,
there's
netplay,
which
is
quite
functional.
B
Despite
my
attempts
otherwise
and
yeah.
I
guess
I'll
I'll
talk
a
bit
about
the
sort
of
bits
that
make
it
up.
A
There's
already
the
question
about
the
handling
of
netcode:
do
you
want
to
jump.
B
Right
in
on
this
yeah,
I
can
do
that
yeah,
because
this
was
gonna,
be
like
a
more
interactive
thing.
Of
course
yeah.
I
don't
really
have
that
much
prepared
other
than
this
all
right,
so
yeah.
The
first
question
was
then
from
I
assume
people
can
see
the
chat,
maybe.
A
Maybe
I
can
also
just
like
read
out
the
entire,
so
angel
on
fire
asks.
Oh
I'm
interested
to
hear
how
you're
handling
that
code,
and
I'm
just
like
that-
is
the
spoilers
for
a
later
session.
So
I
will
not
read
the
rest
so.
B
Okay,
yeah,
I
so
the
sort
of
there's
two
layers
to
it
on
one
hand:
there's
the
sort
of
underlying
transport
layer,
which
is
the
sort
of
semi-reliable
udp
thing,
which
is
not
very
good
if
the
game
is
an
open
source
right
now,
it's
partially
just
because
of
that,
I
don't
want
anyone
else
using
that
and
making
something
bad.
B
I
promise
I'll
swap
it
out
at
some
point,
but
the
other
part
is
the
the
sort
of
rollback
part
and
that
that
part's
mostly
solid-
and
this
is
a
net
networking
model.
That's
it's
been
pretty
popular
recently-ish
in
fighting
games.
B
And
isn't
really
used
outside
of
that?
It's
basically
it's
a
lockstep
networking
model
where
you
have
two
different
simulations
of
the
game
and
you
run
the
same
inputs
on
both
of
them
and
they
both
do
the
exact
same
thing.
So
your
game
needs
to
be
fully
deterministic
for
this
to
work.
B
The
sort
of
the
problem
with
that
kind
of
model-
and
I
mean
it-
works
quite
well
for
games
like
real-time
strategy
games,
where
you
don't
really
need
a
direct
response
from
your
input
like
you,
can
click
a
guy
and
tell
him
to
move
somewhere
and
like
50
milliseconds
later
he
starts
moving
and
that's
fine
because
you
know
you
need
to
wait
for
the
command
to
get
down
to
the
other
guy
and
back
again.
B
A
B
B
So
with
ropepak,
you
have
the
sort
of
speculative
execution
layer
on
top.
So,
instead
of
immediately
or
instead
of
having
to
wait
for
the
sort
of
input
to
come
from
your
opponent,
you
you
just
assume
that
the
opponent
is
gonna,
send
the
same
input
as
they
did
last
time,
and
then
you
just
simulate
with
that
assumption
in
mind.
B
And
if
you
are
wrong,
no
problem,
you
have
the
old
state
saved,
so
you
just
roll
back,
that's
the
name
to
that
previous
state
and
just
tick
through
the
inputs
again,
and
this
of
course
needs
a
couple
of
things
which
rust
helps
quite
a
bit
with
one.
Is
you
need
your
game
to
be
like
deterministic?
B
If
your
game
runs
differently
on
different
computers,
I
mean
that's
a
no-go
from
the
start.
You
need
you
need.
People
to,
you
know,
run
the
same
game.
Otherwise,
you
put
in
the
same
inputs
and
you
get
divergence
immediately
and
that's
just
doesn't
work
and
the
other
thing
is
you
really
want
to
sort
of
separate
your
different
components
like
in
when
you
update
your
game?
You
can't
also
render
it
at
the
same
time
where
you'd
be
rendering
like
five
frames
or
whatever,
when
you
do.
B
The
sort
of
rollback
and
speculative
execution
stuff
and
rust
really
helps
with
that
stuff,
and
I
can
actually
show
the
I've
got
a.
I
think
this
is
the
file.
I've
got
a
there,
we
go.
B
So
I've
got
actually
a
trait
here,
and
this
is
all
I
need
to
sort
of
implements
a
game.
My
sort
of
network
layer
is
entirely
divorced
from
the
the
game
itself,
which
is
another
huge
benefit
of
this.
Like
most
games
when
you're
networking
things,
you
need
to
really
think
about
the
networking
for
all
the
different
abilities
like
how
should
just
this
be
shown
on
the
server.
How
should
this
be
predicted
locally
for
players?
B
Things
like
that
in
this
case
I
can
run
the
game
or
program
the
game
and
just
completely
ignore
how
the
netcode
works,
which
is
fantastic,
also
for
the
implementing
abilities
and
things
like
that,
like
normally,
you
might
have
a
headache
when
you
like
sort
of
introduce
a
new
entity
and
it
needs
to
be
synchronized
across
clients,
and
here
I
I
really
just
don't
care,
it's
lovely
and
all
I
really
need
this
is
get
the
winner
and
like
knowing.
B
If
the
game
is
over
is
like
a
convenience
thing,
it's
nice
to
know
when
the
game
should
end,
but
otherwise
it's
really
just
a
single
function,
that
sort
of
advances
the
game
state
and
returns
the
new
game
state.
I
put
in
inputs
and
I
get
a
new
game
state
out,
so
it's
it's
very
sort
of
functional.
In
that
sense,
yeah.
A
B
And
then,
of
course,
I
need
to
be
able
to
clone
the
game
stay
too
and
there's
trait
bounds,
because
things
need
to
be
sent
over
the
network
and
things
like
that
really.
B
Just
a
pod
type,
but
I
don't
know
if
there's
like
a
pod
super
trait
in
rust.
That's
that's
really
what
I
want.
A
Cool,
I
think
this
this
answered
the
question
very
thoroughly,
but
it's
super
interesting
I'll
go
with
like
a
lighter
question.
Next,
what's
your
favorite
character
to
play,
as
we
already.
B
Saw
the
wizard
and
that's
a
hard
one,
because
I
mean
I
like
them
all
in
their
own
way.
Like
obviously
you
like
your
own,
you
like
your
own
babies
like
that's,
you
can't
pick,
but
if
I'm
gonna
do
I
mean
conceptually
like
default?
Is
maybe
the
least
interesting
like
she's
really
fun
to
play
as,
but
also,
this
is
like
literally
the
first.
B
That
I
added
actually
I
well,
she
does
have
curveballs
and
some
supers
and
things.
B
I
can
actually,
I
have
a
folder
here
of
she's,
actually
the
sort
of
the
oldest
stuff
in
the
game
I
actually
have.
Where
did
I
put
that
folder
somewhere
on
the
desktop?
That
was
a
mistake.
B
There
we
go
so
this
is
actually
defaults
being
played
here.
You
can
tell
she's
got
the
curveballs,
which
she
still
has
make
that
a
bit
bigger
but
yeah.
The
visuals
here
aren't
quite
as
meaningful,
which
is
a
big
problem.
I
found
that
once
I
added
sprites,
the
game
made
a
lot
more
sense
to
people
different
colored
circles,
just
really
aren't
great
at
conveying
hitting
a
ball
or
being
hit
by
a
ball
things
like
that,
but
yeah.
B
So
that's
like
the
oldest
one,
but
I
really
like
playing
as
her
and
she's
got
some
really
tight
things
I
really
like,
which
recently,
though,
actually
I'll
do
training
mode.
No,
because
that's
going
to
reset
things,
I
think,
let's
see
this
is
by
the
way,
a
fantastic
feature
to
have
just
the.
B
A
mode
where
you
can
just
sort
of
mess
around
like
just
having
being
able
to
sort
of
set
up
whatever
scenarios
you
want,
it's
really
helpful
for
debugging
and
reproducing
things
so
this
one
you
can
sort
of
like
launch
these
arrows
and
then,
if
you
press
a
button
again,
you
relaunch
them.
Well
that
wasn't
supposed
to
happen.
B
It's
supposed
to
hit
the
ball.
So
there's
a
bug
there
other
worked.
Okay,
maybe
there's
some
sort
of
rendering
offset
here
or
something
which
I
like
conceptually
a
lot,
I'm
terrible
at
it
so
far,
because
you
have
to
remember
which
arrow
corresponds
to
what,
but
I
think.
B
Yeah
the
numbers
are
sort
of
numpad
notation
so
like.
If
you
look
at
a
number
pad,
you
can
see
that
okay,
three
is,
in
the
bottom
bottom
right
hand
corner
it's
a
convention
that
they
use
quite
often
for
fighting
games,
because
otherwise
it
gets
sort
of
wordy
talking
about
like
bottom
right
corners
and
like
a
quarter
circle
from
left
to
down
or
something
like
that.
B
B
That's
my
favorite
character
conceptually
so
far,
although
well
I
like
a
lot
of
the
powers.
It's
it's
hard
to
choose.
Okay,.
B
Well,
I
mean
I
do
talk
to
people,
but
I
do
also
like
I
keep
a
sort
of
running
running
documents
of
sort
of
different
ideas
that
I
can
sort
of
go
together
and
I
do
try
to
keep
my
my
sort
of
design,
brain
and
code
brain
separate
because,
like
I
find,
if
I
don't
it's
very
easy
for
me,
sort
of
I
mean
I
suppose,
a
lot
of
people
that
are
going
to
be
writing
things
in
rust
and
making
their
own
engines
have
a
sort
of
engineering
mindset
where
it's
like.
B
Oh,
this
is
a
really
cool
problem
like
this
is
the
sort
of
thing
I
want
to
do
and
that
sort
of
restrict
creativity
in
a
way
I
mean
it
lets
you
do
some
interesting
things,
but
I
also
find
that
it's
nice
to
sort
of
separate
my
design,
brain
and
code
brain
and
have
the
designer
think
about
whatever
dumb
ideas
he
has
and
then
the
code
code
has
to
say:
oh
no,
how
am
I
going
to
handle
time
travel.
B
That
was
a
big
issue,
because
I
can
I
can
roll
back
to
well
quite
late,
quite
cheap,
a
bit
here
and
give
myself.
This
is
also
cheat
menus
are
fantastic.
They
do
break
replays,
but
they're
really
convenient
for
showing
things
off.
I
can.
I
can
time
travel
and
run
the
game
backwards
for
a
bit.
B
Which
is
fun
and
like
you
can
you
can
you
can
rewind
losses
and
wins
for?
If
you
really
once
it's
on
someone,
you
can
rewind
and
win
again,
but
that
obviously
causes
well
not.
B
Obviously,
I
suppose
it
depends
on
how
you
have
things
set
up,
but
it
does
cause
issues,
especially
when
you
want
your
game
state
to
be
very
copyable,
because
the
netcode
involves
storing
a
bunch
of
game
states
and
then
each
of
those
game
states
also
involves
storing,
like
the
500
past
game
states
before
it.
So
that
ends
up
multiplying
out
and
it's
a
lot
of
copying.
B
I
I
try
to
keep
my
game
states
up
very
flat
as
a
result,
so
that
it
can
just
be
sort
of
blitted
rather
than
having
to
actually
go
and
chase
pointers
and
boxes
and
clone
all
of
those
but
yeah.
What
else
was
there.
A
Yeah,
I
think
like
when
there's
a
yeah,
a
question
about
like
the
your
design
process,
but
I
was
like
yeah
mark
with
the
queue.
How
did
you
go
about
the
art
and
did
you
make
it?
Oh.
B
Yeah,
is
it
an
article
nope?
The
art
is
all
the
art
is
all
taken
from
itch.io.
It's
a
fantastic
website
for
people
making
indie
games
both
to
sort
of
share
them.
That's
where
the
game
is
hosted
right
now
they
have
a
really
nice
pipeline
for
deploying
to
it
too,
and
it's
also
a
marketplace
for
assets,
and
things
like
that.
B
So
there's
a
bunch
of
really
cool
stuff
on
there
and
basically
at
some
point
like
the
problem
was
you
usually,
I
do
a
lot
with
programmer
art
and
that's
mostly
fine,
but
for
this
I
really
needed
the
the
sort
of
conveyance
that
you
get
with
actual
sprites
and
it
really
does
help
the
game
a
lot.
I
do
intend
on
replacing
it
all
eventually,
but
for
now
I'm
quite
happy
with
it
like
you
can
really.
A
B
And
hitting
balls,
it
works
out,
yeah.
A
B
Kind
of
it's
it's
a
mix,
so
I
guess
the
first,
the
design
stuff,
I
guess.
Well,
maybe
I
just
start
with
finding
a
sprite.
I'm
not
sure
at
this
point
it's
a
mix.
I
do
have
like
some
sort
of
concepts
that
I
want
to
do,
but
what
I
end
up
doing
is,
I
do
have
basically
characters
are
config
files,
but
there's
also
a
lot
of
hard-coded
elements.
So
if
I
bring
up
say
what
do
we
have
wizard?
No,
that's
the
witch
we
could
do
the
witch.
B
So
I
use
a
ron
which
is
a
sort
of
I
think
it's
ron
rusty,
object,
notation,
which
is
a
sort
of
json-like
thing,
that's
more
in
line
with
the
rust
data
model,
so
it
has
like
native
representation,
forms
and
stuff.
You
also
don't
need
to
put
quotes
in
front
of
all
your
properties,
which
is
really
pleasant.
There's
trailing
commas,
you
can
add
comments
which
is
fantastic
if
you're
like
actually
doing
sort
of
significant
stuff
with
configs-
and
I
know
I
think,
review
at
least
also
uses
ron.
B
I
know
a
few
other
people
use
it,
I'm
a
big
fan.
So
I
do.
I
have
sort
of
basic
properties,
that's
sort
of
what
you'd
expect.
There's
some
accelerations
some
speeds
some
and
then
I
have
sort
of
this
animation
system,
which
is
really
a
sort
of
wild
scripting
system,
where
really
I'm
just
using
enums
for
everything.
I
I
step
through
a
list
of
enums
and
do
stuff
based
on
which
enum
is
the
sort
of
current
thing.
B
So
for
like
an
animation,
I
have
this.
This
display
sprite
number
zero
for
six
frames
and
well
it
does
that
and
then
it
goes
all
the
way
down
here.
It
hits
the
end
and
it
looks
and
sees
that.
B
Oh,
this
was
a
loop,
so
it
just
starts
over
and
a
lot
of
stuff
is
pretty
generic
like
showing
sprites
is
pretty
generic
and
then
there's
a
sort
of
slightly
less
generic
things
like
setting
the
velocity
and
the
velocity
target
things
like
that,
then
there's
you
can
do
some
sort
of
basic
math
stuff
here
too,
because
there's
actually
a
couple
of
different
nums
that
I
will
show
off
and
then
a
lot
of
stuff
gets
hard-coded
too,
like
the
witch
has
the
this
is
my
terrible
subroutine
system,
instead
of
like
actual
functions
that
you
can
call,
because
I
do
still
want
the
game
state
to
be
very
copyable,
and
this
includes
this.
B
The
scripting
system
to
be
sort
of
simple
I
just
have
like
four,
I
think
registers.
So
if
I
want
to
do
an
attack
in
direction
one
I
just
set
the
first
register
to
be
45
and
then
execute
it,
and
it
uses
that
it's
it's
it's
silly,
but
it
works
quite
well,
but
yeah.
So
for
some
other
things,
it's
not
generic.
Like
I
don't
I,
like
writing
rust.
I
don't
really
want
to
use
a
scripting
language
unless
I
sort
of
have
to
for
things
like
showing
off
sprites
in
sequence.
B
Rust
is
really
not
a
natural
language
like
it's.
You
need
something
like
very
co-routiney
and
like
super
stateful,
to
be
able
to
handle
that.
So
for
that,
like
it's,
it's
a
nice
sort
of
thing,
but
for
things
that
are
sort
of
more
complex,
like
entity,
descriptions
and
like
what
spawning
entities
means
is,
I
just
add
a
new
sort
of
instruction
for
it.
B
So
the
spawn
dorito
thing
here,
which
is
what
the
witch
spawns
they're
not
really
dorito,
shaped
yet,
but
I
think
they
will
be
eventually
if
eventually
they'll
be
dorito
shaped
so
yeah
here
you
can
see
my
giant
list
of
genomes,
so
this
is
just
an
enum
case
which
takes
a
float
and
two
vects
two
vectors
and
another
float,
which
means
something.
I
should
probably
comment
that,
but
maybe
not
and.
B
There's
just
a
giant
switch
case
where,
okay,
you
can
see
that
it's
a
dorito
idea,
which
is
a
float
because
I
don't
have
integers
it's
kind
of,
like
I
guess,
lua
and
does
stuff
based
on
that
and
there's
it
just
sets
different
things.
B
I
do
have
this
thing
too,
where,
instead
of
being
just
a
float
directly,
it's
a
d
float
which
I
think
stands
for
dynamic
and
you
can
do
this,
which
is
really
just
another
genome
which
could
be
either
a
constant,
a
one
of
my
registers,
a
v
for
variable
or
some
operation
or
just
a
property
of
the
game.
B
So
I
can
take
a
float
and
then
multiply
it
by
another
float,
for
example,
and
that
sort
of
works
out
it
sort
of
ends
up
being
sort
of
like
a
weird
strongly
typed
lisp,
where
you
can't
actually
do
any
of
the
cool
lisp
things
at
least
there's
a
lot
of
parentheses.
That's.
B
I
think
so
I
I'm
not
I'm
not
a
computer
scientist
but
I'm
pretty
sure
that's
how
lisk
works.
A
Sweet,
let
me
quickly
check
if
there's
more
questions
actually
like
another
thing
that
I
know
you
did
that's
kind
of
like
interesting
is
the
the
resolution
of
the
game.
B
Oh
yeah
yeah
yeah,
so
it's
yeah,
so
I
can
actually
show
that
the
game
is
actually
a
sort
of
native
360p
and
I
ended
up
going
for
this
partially
just
because
a
lot
of
the
resolution
is
dependent
on
like
what
you
need
to
show
right
like
there
needs
to
be
the
biggest
playing
field
middle
of
them.
B
You
need
to
show
off
some
stuff
at
the
top
and
bottom,
and
the
sort
of
initial
size
was
just
what
was
comfortable
to
show
on
my
screen
in
a
window
and
also
like
sort
of
just
arbitrary
values.
I
think
the
playing
field
was
800
no
400
by
200
no
800
by
400.
So
there's
like
two
400
by
400
sides
for
like
each
player,
which
was
comfortable
on
my
screen
and
also
is
really
terrible
to
like
multiply
to
anything
else.
B
So
nobody
makes
like
400
tall
screens
or
800
or
whatever.
So
I
ended
up
needing
to
resize
it
to
something
else,
and
I
went
to
a
lot
of
thinking
about
different
resolutions
like
there's.
There's
a
lot
of
options.
Well,
not
that
many
options,
but
there's
decent
options,
but
you
want
to
you
want
to
be
good
on
1080p,
and
you
also
want
to
look
good
on,
or
at
least
for
my
case.
B
So
you
ideally
want
something
that
scales
up
nicely
to
that
as
well
and
for
pixel
art
like
it's
not
great
to
scale
up
by
like
one
and
a
half
times,
because
you
know
you
get
a
lot
of
sort
of
different
artifacts,
so
you're
sort
of
almost
bound
to
do
360p
then,
because,
then
you
can
2x
scale
up
to
the
sort
of
108
720p
thing,
which
is
actually
what
I
usually
run
the
game
in
just
because
it's
a
well,
it's
a
comfortable
window
size
and
you
can
also
do
3x
for
the
1080p
experience.
B
B
So
if
you
rescale
the
entire
game
by
two-thirds,
I
think
it
was
that
has
some
unfortunate
effects
on
all
the
data
that
you've
already
done.
So
I
needed
to
go
through
and
change,
basically,
every
value
to
be
multiplied
by
two-thirds.
I
was
thinking
about
maybe
like
just
having
that
be
the
sort
of
internal
resolution
be
like
the
the
400
p
or
whatever
I
had.
I
suppose
it
was
like
600p
something
like
that.
It
was
very
silly,
but
I
decided
that
that
I
could
not
live
without
being
in
the
code
base.
B
So
I
just
had
an
evening
where
I
sat
and
went
through
every
single
script
and
multiplied
all
the
values
by
two-thirds
to
make
them
good,
and
I
missed
some
of
them
so
like
in
some
tutorials.
You
would
spawn
off
screen
until
somebody
thankfully
reported
it
to
me,
but
mostly
it
worked
out.
There
are
some
really
strange
values,
though
in
the
sort
of
configs.
B
Now,
as
a
result,
though,
like
I
would
not
normally
like,
I
don't
try
to
do
like
super
tight
balance
stuff,
I
do
pretty
extreme
things
and
then
sort
of
tweak
it
afterwards,
but
now
because
I
didn't
want
to
like
rebalance
things
as
I
rescaled
the
game,
there's
a
lot
of
things
that
are
like.
Oh,
this
thing
moves
at
5.66,
pixels
per
frame
and
that's
yeah.
A
A
B
I
do
I
do
want
to
have
a
full
release
for
this
eventually
it'd
be
nice
to
sort
of
get
a
publisher,
or
something
like
that.
Just
so
that
not
not
so
much
for
the
game
itself,
but
because
it'd
be
nice
to
be
able
to
have
a
proper
soundtrack
and
art
for
the
game.
I
think
that
could
be
very
fun.
B
I
do
have
some
people
in
mind
for
music
and
art
that
I
would
like
to
be
able
to
pay
to
do
that,
and
so
would
be
nice
and
I'd
like
to
I'd
like
to
try
and
support
it
to
get
as
decent
of
a
player
base
as
it
can
like.
It's
obviously
a
pretty
niche
thing,
it's
a
pond
with
extra
steps,
but
quite
a
few
people
who
have
played
it
have
enjoyed
it
quite
a
bit.
B
So
I'd
like
to
sort
of
make
it
easier
to
do
that,
but
that's
the
that's
the
sort
of
longer
term
plans.
I
don't
have
anything
like
sort
of
immediately
planned
it
is
it's
not
feature
complete,
it's
very
rough
still,
but
it's
it's
almost
there
like.
I
have
a
lot
of
the
sort
of
basic,
that's
working
quite
well,
it's
it's
a
lot
of
the
polish
and
then
art
and
music
and
sound.
That's
still
missing.
B
A
B
Yeah
frameworks
and
stuff
that
you
have
to
use
what
do
we
got
together?
There's
no
there's
no
frameworks
per
se,
it's
actually.
What
do
I
got?
The
the
sort
of
base
of
the
game
is
actually
it's
sdl
too,
for
a
sort
of
windowing
and
input
handling,
which
is
a
a
c
library,
but
the
bindings
are
quite
nice.
B
I've
heard
bad
things
about
this
sort
of
image
drawing
stuff,
but
I'm
not
doing
any
sort
of
rendering
with
it,
I'm
just
using
it
for
window
handling
and
that
all
seems
to
work
quite
nicely
and
that's
also
something
that
it
deploys
on
a
lot
of
platforms
like.
I
know,
for
example,
that
sdl2
works
on
the
switch.
B
So
if
that's
something
I
can
actually
do
in
the
future,
I
know
that
this
is.
This
would
be
a
way
of
handling
it,
although
all
of
the
stuff
is
pretty
modular
and
divorced
from
each
other.
So
I'm
not
too
worried
about
that.
B
The
rendering
is
done
via
gliam.
I
was
considering
doing
vulcan
for
a
while,
because
I
mean,
if
you're
doing,
cool
tech
stuff
in
rust,
like
vulcan,
is
a
pretty
obvious
choice.
That's
what
a
lot
of
people
do,
but
I
just
couldn't
justify
to
myself
knowing
the
sort
of
sprites
and
the
graphics
that
I
knew
that
I
was
going
to
do
like
I
would
be.
B
I
knew
that
I
would
spend
a
lot
of
time
to
draw
like
a
triangle
and
then
I
would
need
a
second
triangle
and
that'll,
be
it
like
all
the
it's
just
they're,
just
quads,
it's
very
unexciting
in
terms
of
rendering.
So
it's
so
I
just
went
for
glim
for
that,
because
it's
a
nice
opengl
wrapper
despite
the
warning
on
the
github
page,
and
I
had
some
familiarity
with
opengl
before
so
it's
it's
quite
nice.
What
else
have
I
got?
B
I
use
a
bunch
of
things
for
sort
of
resource
loading.
I
think
gluten
and
hound
are
both
related
to
audio.
I
think.
Actually,
maybe
hound
is
for
encoding
wave
files,
because
I
do
that
as
well.
I
I
have
a
video
export
from
my
replay
viewer,
very
primitive,
but
nice
for
sharing
content.
B
I
do
recommend
like
if
you
have
a
game
where
you're
making
a
game
engine
having
tools
built
in
for
sort
of
exporting,
video
and
stuff
from
the
game
is
very
helpful,
especially
if
it's
with
replays,
because
if
something
cool
happens,
you
don't
need
to
have
like
obs
or
whatever
running
as
you
as
you
sort
of
do
it
yeah.
You
can
just
go
in
afterwards
with
the
replay
viewer
and
sort
of
check
out
that
specific
part
also
good
for
debugging.
B
B
A
discord
in
tokyo
are
for
the
sort
of
discord
thing
that
pops
up.
I
had
a
user
ask
me
to
have
that
because
he
wanted
to
show
off
the
game,
which
was
fantastic
to
hear,
so
I
needed
to
spend
an
evening
doing
that
for
him
yeah
a
lot
of
a
lot
of
sort
of
different
things,
bin
code
great
for
sending
stuff
over
the
network-
maybe
probably
not
actually,
the
way
I
do
it,
but
it's
working
for
now
at
least
and
yeah
ron
ron
is
great.
B
This
is
a
weird
branch,
with
a
feature
that
I'm
using,
but
otherwise
yeah
ron
is
ron
is
fantastic.
Free
verb
is
well
reverb
thing
that
I'm
actually
not
using
at
all
right
now.
I've
made
an
audio
engine
for
something
else,
and
it's
part
of
that.
So
it's
it's
in
there
waiting
to
be
used
at
some
point.
There
will
be
different
atmospherics
for
different
places.
A
Sweet
cool,
I
think,
we're
like
kind
of
at
our
time
limit,
so
I
would
like
to
wrap
this
up.
A
Do
you
have
a
discord
yeah
like
yeah.
B
I
do
not
know
a
shortly,
I
don't
know.
Okay,
we.
A
Cool,
thank
you
so
much
felix.
It's
awesome,
I'm
looking
forward
to
every
release
and
with
that
I
declare
the
session
over
yep.
Thank.
B
You
this
is,
this
was
a
fun
time,
I'm
looking
forward
to
seeing
the
rest
of
the
thing.
I
will
be
gone
for
about
an
hour
or
two
here
in
the
middle
okay.