►
From YouTube: Carlo Supina: Making Rust more Accessible through Game Development [ENG] — RustFest LATAM 2022
Description
Video games inspire many young minds to learn about programming. My presentation will go over how we can work to lower barriers to game development and more effectively bring people into the Rust community.
https://rustfest.global/session/61-making-rust-more-accessible-through-game-development/
Español: https://www.youtube.com/watch?v=vdNYKMRi21s
A
So
with
us
today
is
carlo,
who
is
a
welder
who
runs
an
electronics
and
programming
education,
company
micronote.tech
and
in
his
free
time,
does
something
which
is
very
near
and
dear
to
my
heart
and
is
probably
the
like
guilty
reason
that
I
don't
admit
to
people,
but
the
people
who
know
me
know
why
I
love
rust
and
that
is
he's
been
making
some
he's
been
learning
rust
and
getting
to
work
more
with
rust
by
working
on
a
variety
of
small
games.
A
B
B
B
Of
course,
I
also
like
to
program
with
rust.
I
mostly
work
on
games
that
are
open
source,
but
I
also
enjoy
programming
embedded
devices.
I've
worked
on
a
variety
of
games,
but
I
also
have
a
few
long-term
projects
that
I
periodically
work
on.
An
important
thing
you
should
know
about
me
is
that
I
didn't
go
to
school
for
computer
science.
B
B
Here's
a
brief
summary
of
the
game.
Theta
wave
is
a
roguelite
space,
shooter
game
in
the
game.
The
player
selects
a
character
with
unique
stats
and
abilities
and
progresses
through
a
series
of
randomly
generated
levels
which
consist
of
a
variety
of
enemies
that
periodically
spawn
in
different
formations.
B
B
Some
items
are
simple
and
increase
the
stats
of
the
player
and
some
are
more
complex
and
affect
other
aspects
of
the
game,
such
as
physics
as
the
player
progresses
through
the
game.
They
will
accumulate
many
items
which
can
synergize
with
each
other
like
everything
else
in
the
game.
These
items
are
randomized
in
how
they
appear,
which
make
each
run
through
the
game.
B
B
Ecs
stands
for
entity
component
system
with
ecs
programmers
define
entities
as
a
collection
of
components.
Then
systems
containing
the
game's
logic
can
be
defined
that
query
for
components
and
access
and
modify
their
data.
Lastly,
events
can
be
created
to
share
data
between
systems.
Ecs
engines
then
can
optimize
and
run
these
systems.
In
parallel.
B
B
It
is
made
up
of
components
that
contain
its
core
stance,
sprite
and
allows
for
it
to
interact
with
physics.
Similarly,
entities
2
and
3
are
different
kinds
of
enemy
entities.
They
contain
a
different
component
containing
core
stats
for
enemies,
their
sprite,
a
loot
table
and
a
component
that
lets
it
interact
with
physics,
entity.
4
is
an
item.
It
contains
a
component
that
describes
what
effect
it
has
that
will
be
applied
to
the
player
character
when
it
when
acquired
entity
5
is
the
enemy
projectile.
B
It
contains
components
that
allow
for
it
to
move
and
describe
the
damage
it
will
do
to
the
player.
Should
it
make
contact
instead
of
writing
separate
chunks
of
code
that
describe
what
enemies,
players,
items
and
projectiles
should
do
with
ecs.
You
typically
write
concise
systems
that
manage
components,
data
and
interactions
between
different
components.
B
Before
beginning
work
on
theta
wave
in
amethyst,
I
had
never
experienced
ecs
before.
In
my
experience,
there
is
a
bit
of
a
learning
curve
to
understanding
how
to
effectively
organize
and
design
a
game
with
an
ecs
engine.
But
after
getting
past
this
initial
difficulty,
I
found
that
ecs
enforced
good
organization
and
chunking
of
game
logic
compared
to
previous
games.
I
had
worked
on
next,
I'm
going
to
provide
some
examples
from
thetawave
that
simultaneously
demonstrate
ecs
and
the
technique
I
use
to
make
one
aspect
of
the
game
as
modular
as
possible
in
the
game.
B
B
While
each
enemy
behaves
in
a
unique
way,
they
can
share
more
simple,
fundamental
behaviors
that
compound
into
one
unique
behavior,
for
example,
for
my
missile
enemy,
which
homes
in
and
moves
toward
the
player.
I
give
it
two
smaller
behaviors
one
to
rotate
to
face
the
target,
the
player
and
one
to
move
forward.
B
B
The
behaviors
of
the
strafer
are
called
move
down,
move
right
and
change
horizontal
direction
on
impact,
as
you
can
see,
both
of
these
enemies
have
a
shared
behavior
called
move
down.
These
behaviors
are
defined
as
rust.
Enums
that
are
stored
in
a
vector
that
belongs
to
a
component
that
is
used
in
all
enemies.
B
This
enables
people
new
to
programming,
rust
or
game
development
to
create
new
enemies
in
the
game
without
needing
to
understand
the
more
complicated
aspects
of
the
language.
One
of
the
games.
I've
contributed
to
in
the
past
year
is
called
fish
fight.
It's
a
really
ambitious
and
bold
project
in
the
rust
game.
Dev
community.
B
I
want
to
share
with
you
some
of
the
approaches
they
have
taken
to
make
rust
and
game
development
more
approachable.
First,
let
me
give
you
a
quick
summary
of
the
game.
Fish
fight
is
a
2d
shooter
platformer
game
made
by
studio
spicy
lobster.
The
game
can
be
played
with
up
to
four
players
either
locally
or
online.
B
B
I've
worked
a
lot
on
this
book
and
can
say
that
it
is
still
very
much
a
work
in
progress
and
can
at
times
be
challenging
to
maintain,
but
I
firmly
believe
that
having
a
solid
starting
point
for
new
contributors
to
get
familiar
with
the
game
is
essential
if
you
want
your
game
to
be
accessible
to
programmers
of
all
experience
levels.
This
brings
me
to
the
next
aspect
of
fish
fight
that
makes
it
an
exceptional
starting
point
for
new
rust
game
developers.
B
This
is
that
spicy
lobster
actually
pays
developers
outside
of
their
core
team
for
their
contributions
to
fish
fight
the
way
they
do.
It
is
by
identifying
people
who
have
shown
interest
and
understanding
in
the
game
by
making
contributions,
they
then
reach
out
to
them
and
give
them
a
small
gig
task
and
typically
provide
them
with
a
one
hundred
dollar
payment
for
their
work.
B
Of
course,
people
also
have
lives
and
jobs
outside
of
contributing
to
fish
fight.
So
expecting
them
to
commit
to
larger
tasks
and
hard
deadlines
would
be
challenging
to
account
for
this.
Spicy
lobster
is
intentional
about
the
tasks
they
give
to
outside
contributors,
avoiding
critical
tasks
and
tasks
that
block
other
work.
B
B
It
uses
difficulty
levels
with
suggested
contributions
that
help
programmers
ease
into
making
more
advanced
contributions
and
helps
them
explore
different
parts
of
the
game's
code.
The
idea
is
contributors
start
with
an
easy
contribution,
one
that
may
only
consist
of
adjusting
values
in
a
configuration
file
for
thetawave.
This
could
be
creating
a
new
enemy
by
copying,
an
existing
one
and
adding
removing
or
changing
a
behavior
that
is
already
implemented
in
the
game
for
fish
fight.
This
could
be
something
like
changing
the
musket
to
shoot
faster
and
have
more
bullets.
B
A
medium
contribution
level
for
that
wave
could
be
adding
a
new
type
of
enemy
by
writing
a
new,
simple
behavior
to
use
in
its
compound
behavior
for
fish
fight.
It
could
be
something
like
creating
a
new
weapon
that
is
similar
to
another
in
the
game,
but
different
enough
to
warrant
modifying
the
rust
code
instead
of
just
values
and
finally,
a
hard
contribution
in
theta
wave
could
be
adding
an
enemy
with
a
new,
more
complex
behavior,
such
as
spawning
other
smaller
enemies
in
fish
fight.
B
These
are
just
some
examples
I
thought
of
off
the
top
my
head,
but
these
levels
of
contribution
could
be
explicitly
defined
in
a
book
paired
with
the
games
to
give
valuable
guidance
to
those
looking
for
a
path
to
contribute
in
a
big
challenge.
Whenever
you
are
making
contribution
guides
for
projects
in
early
stages
of
development
like
theta
wave,
is
that
often
times
the
contribution
process
can
drastically
change?
B
There
are
some
solutions
to
this,
such
as
waiting
for
stable
releases
before
writing,
contribution,
documentation
or
otherwise.
Having
assurances
that
contributions
for
part
of
the
game,
such
as
enemies
and
thetawave,
aren't
subject
to
being
overhauled.
Even
if
other
parts
of
the
game
are,
I
don't
think
there's
an
easy
solution
to
these
issues,
but,
ultimately,
with
this
talk,
I'm
hoping
to
prompt
others
in
the
community
to
consider
solutions
to
these
issues
and
try
them
out
in
your
own
projects.
As
we
are,
I
interviewed
erland
the
lead
and
producer
at
spicy
lobster
in
preparation
for
this
talk.
B
He
emphasized
that
in
general,
the
rust
gamedev
ecosystem
simply
needs
more
learning
material
about
the
fundamentals
of
rust
programming.
I
completely
agree
whether
it
be
videos,
articles
or
contribution
guides
any
rust
game.
Dev
content
that
you
would
enjoy
making
would
be
greatly
appreciated
by
this
community.
B
B
Hands
on
rust
is
a
fantastic
book
on
rust,
game
development
by
herbert
wolverson.
That
brings
people
from
being
new
to
rust,
to
making
randomized
dungeon
crawler
games
and,
lastly,
tan
tan
creates
entertaining
programming
videos,
many
which
feature
rust.
Thank
you
for
attending
the
talk.
If
you
are
interested
in
my
work,
you
can
follow
me
at
carlos
subpoena
on
twitter.
I
hope
you've
learned
something
new
about
game
development,
rust.
A
Thank
you
so
much
carlo.
That
was
amazing.
I'm
that
was
so
cool
I
can.
I
can
like
I
don't.
I
don't
know
where
to
get
started
because
I
loved
all
of
it.
Just
you
know
how
you
were
sharing
the
different
diff.
Like
you
touched
on
so
many
subjects
I
care
about.
I
can't
focus
on
one
like
the
different
levels
of
contribution
to
get
people
contributing
or
how
important
it
is
to
pay
contributors.
So
they
can.
You
know,
like
people
have
lives
and,
and
things
to
do
that
was
so
cool.
Thank
you.
So
much.
C
Yeah,
it
was
a.
It
was
a
really
fun
talk
to
put
together.
It
was
I
I
I
interviewed
I
erland
just
like
two
days
ago
down.
He
gave
me
a
lot
of
great
insight
into
what
he's
doing
with
spicy
lobster
in
those
games.
So
it's
yeah,
there's
some
really
cool
things
happening
in
the
rust
game,
dev
community
for
sure.
A
But
the
compensation
to
me
is
something
that's
really
incredible
and
I
I
wish
we.
I
know
it's
very
difficult
to
actually
get
the
logistics
done
yeah,
but
that's
so
cool
the
fact
that
you
know
it's
also
enabling
people
who
want
to
work
in
that
field
to
have
that
on
their
cv
on
their
resume.
A
That's
so
cool!
I
don't
know
if
you
have
already
tweeted
out
all
of
those
resources,
okay,
cool,
because
then
we
can
and
we
can
retweet
them
on
the
on
the
main
account
yeah.
A
Perfect,
that
would
be
great
yeah
yeah.
If
you
don't
mind
me
asking
how
like,
because
I
I
I'm
trying
to
pinpoint-
I
think
you
shared
so
many
good
things.
What
would
you
say?
A
C
Yeah,
so
my
of
course,
in
the
first
game
I
showed
theta
wave.
That
was
all
my
game.
I
started
from
the
ground
up.
It
started
literally
as
a
hello
world
project.
C
I
had
no
idea
what
I
was
doing
in
russ
and
it
sort
of
turned,
and
I
met
someone
that
in
the
russ
community
last
or
I
guess
two
years
ago
now,
who
kind
of
really
taught
me
a
lot
about
being
more
professional
with
collaborating
and
those
kind
of
skills
that
I
certainly
didn't
learn
anywhere
else,
but
for
fish
fight.
C
My
first
contribution
for
that
was,
I
think
I
made
a
little
so
it's
I
made
some
armor,
so
it
wasn't
something
that
was
in
the
game,
but
it
was
a
very
simple
thing.
So
it's
basically
if
the
character
is
like
a
little
turtle,
shell,
that
the
character
wears
if
you
pick
it
up
and
you're
attacked
in
the
back
it'll
block
a
hit
where
usually
it's
just
a
it's
a
it's
a
insta-kill
or
something.
So
it
was
an
inch
it
was.
C
It
was
a
very
simple
one,
but
it
was
also
a
the
simple
contribution
was
very.
It
was
a
very
unique
thing
item
that
wasn't
in
the
game.
Yet
so
it
was,
it
was
fun
to
make.
C
It
was
great
yeah,
they're
they're.
They
were
very
open
to
ideas
at
the
time
they
were.
When
I
made
that
contribution.
They
were
just
saying:
hey
in
they
said
you
know,
come
in
the
discord.
Erlin
was
reaching
out
to
all
the
people.
You
met
through
various
game,
dev
projects.
He
said,
come
to
the
discord
pitch,
your
item,
we'll
okay,
it
probably
and
you
can
go
ahead
and
work
on
it
and
you
know
we'll
give
feedback
on
it.
It
was.
C
It
was
a
great
experience
and
since
then
I've
I
haven't
contributed
for
the
past
few
months,
but
I
sort
of
moved
on
to
writing
some
of
that
documentation
for
them.
So
I
wrote
a
guide
step
by
step,
how
to
add
an
item.
It
wasn't
the
turtle
shell,
but
it
was
like
it
was
like
a
rifle.
So
it
was
how
to
add
something
like
that
step
by
step,
and
it
was
mostly
just
changing
values,
not
really
you
know,
generating
new
code.
C
It's
mostly
just
copy
paste
change
values
and
you
have
a
new
item
in
the
game,
so
it
was
sort
of
like
a
what
I'd
consider,
maybe
like
a
level
or
sorry.
An
easy
or
medium
contribution.
C
Yeah
I'll
you're,
talking
about
like
the
the
guide
that.
A
C
For
yeah
that
that
book
is
yeah,
it's
hosted
on
a
on
github
pages
with
that
repository,
so
it
is
accessible
and
I'll
make
sure
to
tweet
that
out
too,
when
I
tweet
the
other
links,
yeah.
A
That
sounds
great
because
I
think
if
someone
does
have,
you
know
like
no,
not
any
holdups,
but
maybe,
if
they're
a
bit
more
scared
to
to
contribute
and
but
they
want
to
learn
stuff.
I
think
even
docs
on
how
how
it's
done
somewhere
else
are
so
valuable,
because
you
can
apply
the
same
principles
for
your
own
project
right.
A
Cool,
well,
you
know
we're
so
grateful
that
you're
here
we
haven't
gotten
anything
in
the
chat
yet,
but
I
I
guess
you'll
be
around
on
the
chat
and
you'll
be
on
twitter
as
well.
If
anybody
wants
to
to
reach
out
we'll
retweet
anything
that
you
you
send
our
way,
because
I
think
you
know
lots,
I
actually
got
asked
in
chat.
Someone
dm'd
me
and
said
you
know
like
hey.
I
I
thanks
for
sharing
the
conference.