Episode Transcript
Transcripts are displayed as originally observed. Some content, including advertisements may have changed.
Use Ctrl + F to search
0:00
Blasphemous and Blasphemous 2 are
0:02
Metroidvania action-adventure games developed by the
0:04
Spanish studio The Game Kitchen. The
0:08
games have a stunning, distinctive pixel
0:10
art style and atmospheric world which
0:12
is inspired by Spanish folklore and
0:14
religious themes. They are known
0:16
for their challenging combat and intricate level design.
0:19
David Arroza is the lead producer
0:21
and Danny Marquez is a senior
0:24
programmer on Blasphemous David
0:26
and Danny join the show today
0:28
to talk about designing the game
0:30
systems, the game's development framework, engineering
0:33
character movement, console optimizations, and more.
0:35
Joe Nash is a developer,
0:37
educator, and award-winning community builder
0:40
who has worked at companies
0:42
including GitHub, Twilio, Unity, and
0:44
PayPal. Joe got his start
0:46
in software development by creating mods and running
0:48
servers for Gary's mod. And
0:50
game development remains his favorite way to experience
0:52
and explore new technologies and concepts. Welcome
1:07
to Software Engineering Daily. I'm your host for
1:09
today's episode, Joe Nash, and today I'm joined
1:11
by David Arroza and Daniel Marquez of
1:13
The Game Kitchen, creators of Blasphemous and its
1:16
recent sequel, Blasphemous 2. David
1:18
and Daniel, welcome to the show. Thank you for joining
1:20
me today. Hi. Thank
1:22
you. David. I
1:26
am the producer for Blasphemous 2.
1:29
With us is Danny. Danny.
1:32
Yeah. I'm Daniel. Danny.
1:35
I'm one of the programmers of the game. Awesome. Thank
1:37
you for putting out your job titles as well. Very helpful and
1:39
very excited to talk to you today about Blasphemous 2, which I've
1:42
been playing quite a lot of in the lead up to this.
1:44
So I guess to kick us off, you know, you mentioned
1:47
your roles there. We've got a producer and a programmer. Can
1:49
you talk a little bit about what it is you do
1:51
at The Game Kitchen and also on Blasphemous? Well,
1:54
I always joke by describing my
1:56
job as I Try
1:59
to prevent people. The ball from.
2:01
You. Know. Tearing. Each.
2:03
Other about. The
2:06
police or Raleigh's trying to
2:08
get in sync every of
2:10
the different aspects that are
2:12
involved in game development so
2:14
you have to know a
2:16
little bit about programming. A
2:18
little bit about our tiny
2:21
may show audio to the
2:23
very non off how all
2:25
these different areas are related.
2:27
during the development of a game. And
2:30
the dependencies that are. Involved.
2:33
And to get to agreements
2:36
with our publisher in order
2:38
to keep everyone happy. About
2:40
the progress of the game. So.
2:43
Let's. Say that it's my
2:45
fault. better angle differ. Everything
2:48
that is sense really working.
2:50
That's mine. Responsibility.
2:53
Survey. Relevancy with Les mis your the
2:55
tennis and once had a whole seat
2:58
while I was on the premises for
3:00
a blessing was one that was Modi
3:02
see Oh please the court and Ceo
3:04
and director of to to the of
3:06
I did the troll for blessings to.
3:09
Awesome! And. Danny urls the
3:11
program yeah well as a programmer
3:14
race a wide variety else. Stuff
3:16
but mainly in this game.
3:19
I was responsible for Sistema.
3:22
Let's say architecture. Yeah we
3:24
know we also rendering the
3:26
stuff too, but mainly systems
3:29
and architects of. Also
3:31
has launched into that sucks you haven't
3:33
played for the games, can introduce bus
3:35
miss to toss and I guess the
3:37
wider world of blasphemous as I would
3:39
be so. Little. Blossom is.
3:42
the second game is so
3:44
much we've been yeah game
3:46
the first one was more
3:48
on actual performance some people
3:50
call it ah souls like
3:52
game that wasn't really the
3:54
original intention but you know
3:56
people gave it's that description
3:58
but blossoms do pure
4:01
metroidvania game that
4:03
is based on a
4:05
lot of this Spanish culture.
4:08
It's a dark
4:10
fantasy inspired by Spanish
4:13
painting, architecture, or
4:16
religion. In spare, we
4:18
try to avoid direct, you know,
4:21
direct references to any kind
4:23
of religion, but the inspiration
4:25
is in there. Awesome. Yeah, I
4:27
have to confess, I didn't know about a
4:29
lot of the associated iconography before I played
4:31
the game. And when you know, while I
4:33
was like looking at other interviews about the
4:35
game, and Levi saw you comment on Spanish
4:37
Holy Week and another one, and I looked
4:39
at the images in Spanish Holy Week, I
4:41
was just like, Oh, okay, I get it
4:44
now. I understand. I understand the aesthetic vibe.
4:46
I'd highly friendly listeners haven't seen it. Definitely
4:48
look it up. Definitely.
4:50
So I guess on to the implementation of the game. What
4:53
is Thomas to built in what we talking in terms
4:55
of engine and technologies? Well,
4:58
it's built upon Unity engine.
5:01
We are using pretty okay,
5:03
some plugins here and there, but
5:05
almost everything is with the bias
5:08
from scratch in unity. Yeah,
5:11
that's we told
5:13
from zero. Okay, we didn't
5:15
reuse anything from the first part. I
5:18
had to say I was in on the first
5:20
last month. So we
5:22
build this from the ground up upon
5:24
unity. Awesome. Yeah, I mean, that was
5:26
one of the areas I was really interested in that as
5:28
you approach a sequel, you know,
5:31
especially when there's a lot of shared aesthetic,
5:33
it's still you know, they're to decide to call the
5:35
platform and etc. How you think about code reuse? How
5:37
you think about, hey, are we building on the previous
5:39
game? Is it starting scratch? What was that process like
5:41
with going from last month's one to two? What
5:44
I have to say, like, just because I
5:47
wasn't there on the first one, I
5:50
can answer really with much,
5:52
you know, I
5:55
don't know the truth or the correct answer,
5:57
but this one from we
5:59
are making I'm sure
6:01
this one is reusable. Okay.
6:04
So we didn't make the same mistake again.
6:07
I know the reason because I
6:09
was there during the development
6:11
of the three DLCs. When
6:14
we made the decision to
6:16
start the sequel, one
6:18
of the discussions was, of course, what do
6:20
we do? Do we reuse
6:22
the old framework that we
6:24
built for the first game? Or
6:28
should we start from scratch?
6:30
And this is a really
6:32
tricky decision because, of
6:34
course, on one hand, you have
6:37
the whole game already built. Most
6:40
people will think that this is just a
6:42
matter of, let's say, switching assets. But
6:45
the harsh truth is that we
6:47
wanted to explore many design
6:49
paths that would
6:52
be maybe not impossible but
6:55
really difficult to implement
6:57
using the old framework. For
7:00
example, we only had one weapon in
7:02
Blood famous one, and we have three
7:04
of those in the sequel. And that's
7:06
something that I find I
7:09
can even start imagining how would
7:11
that be implemented. Also,
7:14
there were many really
7:16
important things for the
7:18
gameplay feeling, mainly the
7:21
controller of the character, that
7:23
were not great in Blood famous
7:25
one. When the game was
7:27
released, we are aware that it could
7:30
be really improved and the controller was
7:32
improved for the DLCs. But
7:35
we knew we could do
7:37
that better. But the
7:39
only way to do it was to start
7:41
from scratch. This is
7:43
something that we are asked about quite
7:46
frequently. Why did you start
7:48
a new project from scratch instead
7:50
of reusing Blood famous code? It's
7:53
something that we can't really recommend
7:55
to everyone. It's a
7:58
risky decision. And
8:01
we can guarantee that
8:03
everyone would success in
8:06
making this. So it's not something that we
8:08
would recommend. We took the
8:10
risk and it turned out okay,
8:14
but it could not
8:16
have been this way. Yeah, it's very interesting. I
8:18
think a lot of folks would
8:21
be surprised to hear that like adding extra weapons is such
8:23
a huge constraint. But I guess if you've got a design
8:25
of a game that's, you know, not assuming there's any
8:27
reason to switch weapons from the start, it's ready by
8:29
10. As
8:36
a listener of Software Engineering Daily, you
8:39
understand the impact of generative AI. On
8:42
the podcast, we've covered many exciting aspects
8:44
of gen AI technologies, as well as
8:46
the new vulnerabilities and risks they bring.
8:49
HackerOne's AI Red teaming addresses the
8:51
novel challenges of AI safety and
8:53
security for businesses launching new AI
8:56
deployments. Their approach involves stress
8:58
testing AI models and deployments to make
9:00
sure they can't be tricked into providing
9:03
information beyond their intended use, and that
9:05
security flaws can't be exploited to access
9:07
confidential data or systems. Within
9:09
the HackerOne community, over 750
9:12
active hackers specialize in prompt hacking
9:14
and other AI security and safety
9:16
testing. In a single recent engagement,
9:18
a team of 18 HackerOne hackers
9:21
quickly identified 26 valid
9:23
findings within the initial 24 hours, and
9:26
accumulated over 100 valid findings
9:29
in the two-week engagement. HackerOne
9:31
offers strategic flexibility, rapid deployment,
9:34
and a hybrid talent strategy.
9:36
Learn more at hackerone.com/AI. That's
9:39
hackerone.com/AI.
9:50
I want to follow up on something that
9:52
Danny said, and to your last point there
9:54
that you wouldn't recommend starting Code from Scratch.
9:57
Danny, you mentioned that Blasphemous 2 has been
9:59
built to... be reusable into the future. Can
10:01
you talk a little bit about some of the ways that
10:03
that's happened? Okay, let's say
10:05
we build the features around,
10:09
how can I say, let's use
10:11
the term that Unity make
10:13
it trendy, like the data
10:15
oriented dots technology, something like
10:17
that, which you
10:20
said in our framework, it's
10:22
okay, don't take me like
10:25
expert, but it's like an array of
10:28
stuff. Okay, and we built
10:30
our engine around
10:32
modules. Okay, let's say the managers of
10:34
system, but just manage
10:36
stuff. Okay, and you let's
10:39
say you just have to add or remove
10:41
modules in order to
10:43
implement a feature this way, for example, let's
10:45
say some basic example.
10:49
And say you want platforms that
10:51
when the player stand on it on
10:53
them, they dissolve,
10:55
they collapse, we build this
10:58
module, okay, that's the component
11:00
of that
11:02
when the player stand still, that
11:04
will disappear. Okay, so we want
11:06
to remove it, just we
11:09
don't our, let's say config table,
11:11
we remove that module. And
11:14
nothing is executed. So
11:16
that's our first stepping
11:19
stone. Let's say like, this
11:21
way, with that in
11:24
mind, build all
11:26
the features, okay, so we can
11:28
build features that in the
11:30
end, they are easy to remove. Okay,
11:34
maybe we made a little harder to implement.
11:36
But then it's just a
11:38
tool, okay, I don't want this feature
11:40
anymore. So remove it from the core
11:42
of the game. So
11:44
that's one of the basis
11:47
on how we build the
11:50
framework. Okay, awesome. Yeah, we
11:52
could say that plus one was
11:54
like monolithic kernel show, plus two
11:56
is more modular. Okay, yeah, I'm
11:58
more like I know. that's
12:01
oriented like, okay, you got
12:03
a system, you got components, and the
12:06
system will be internally implemented
12:10
how hard that you want, but it's
12:12
like an array of components. So then
12:14
you have the game is nothing more,
12:16
our logic engine, our logic
12:19
game is nothing more than a for loop with
12:22
a deterministic order of modules,
12:24
okay, that platforms that
12:27
disappear, okay, player movements, input,
12:30
reading input, et cetera, et cetera, awesome.
12:40
Let's face it, no one likes writing
12:42
or maintaining documentation, but when you start
12:44
a technical project or pick up a
12:46
new task, missing information can cost you
12:48
valuable time. Gitbook is a technical knowledge
12:50
platform that fills that information gap, making
12:52
it easy for your team to capture,
12:54
maintain, and find information from a single
12:56
source of truth. Here's a couple of
12:58
examples. With Git Sync, you can set
13:00
up a two-way sync between your repo
13:02
and Gitbook, so you can turn markdown
13:04
files into awesome user-friendly docs. And if
13:06
you make a change in your code
13:08
base or a technical writer updates the
13:10
docs in Gitbook, the edits sync between the
13:12
two automatically. Or what about when you need
13:14
to find something in your knowledge base? Forget
13:16
about searching, just ask Gitbook AI, you'll get
13:19
a neat summarized answer sourced directly from your
13:21
docs. Those are just a few examples of
13:23
what Gitbook can do, but it has plenty
13:25
more tricks up its sleeve. So why not
13:27
give it a try? Head to gitbook.com to
13:30
find out more. So
13:39
it's been a little while, I don't think I've touched
13:41
Unity properly since 2016, but
13:43
it sounds to me, the Unity.sync sounds to
13:45
me like an entity component system, is that
13:47
correct? This is everything from the VCS? Awesome,
13:50
perfect. I understand, awesome. That's great. So
13:53
with that in mind, I guess like when you're thinking
13:56
about we want this game to be reusable, and this might be
13:58
a question that I'm not allowed to ask, but is that... just
14:00
for future DLCs or are you talking like
14:02
other games entirely outside the blasphemous universe? Is
14:04
that or is it like you know we
14:06
just want to make sure we do another
14:08
blasphemous we're not writing from scratch without committing
14:11
to doing another blasphemous. That would be the
14:13
ideal situation. But
14:15
theoretically in other games too in
14:17
fact some modules are are
14:20
being reused in our prototypes. Awesome
14:23
very cool. So during that David
14:25
you mentioned the movement which was one of the
14:27
things that like when you look at you know
14:29
blasphemous players talking about blasphemous 2 certain people are
14:31
talking about the control and the movement being like
14:33
super improved. You said that was you know a
14:35
bit of a complicated process. Can you talk a
14:37
little bit about what the problems were with like
14:39
the control in blasphemous 1 and how you overcome
14:42
those for 2? I'm here
14:44
I about the same situation that
14:47
Danny I wasn't doing the development of
14:49
blasphemous 1. I was one of the backers
14:52
of the Kickstarter and I already knew that. That
14:54
is awesome that is a journey. Yeah
14:56
no we were friends we knew each
14:59
other I already knew Danny as well
15:01
on that time but I've heard about
15:04
that and I had to deal with
15:06
the code during the DLCs. So
15:09
the reason is that blasphemous
15:11
was the first platformer
15:14
game that was made in the
15:16
game kitchen. The previous game the last
15:18
door is a point and
15:20
click adventure game which has nothing to do
15:23
with this kind of games. So
15:25
this code was written by
15:27
Paco who I hope doesn't
15:30
listen to this but
15:32
he's the one that tells this story.
15:35
So it was made you
15:38
know like they could it's not something
15:40
that they had experience with it was
15:42
the first game that Paco made so
15:44
that was the best effort that
15:47
could be put into the
15:49
game with the resources that
15:51
they had which were not
15:53
many you know. I'm money
15:57
even having a Kickstarter that was
15:59
successful. It's not as
16:02
much money as people think. Money
16:04
flies when you talk about
16:06
game development. It's
16:09
something that we really
16:11
wanted to improve in the sense that,
16:13
hey, now we know what we want
16:16
to do with the controller. And
16:18
I think that we could, Danny,
16:21
correct me with this, but I think
16:23
that we got even a little bit
16:25
obsessed with the controller or the character.
16:28
I can do it a little trick
16:31
if I hope I try my best
16:33
again with the language where the character
16:35
controller can, let's say, something of
16:37
its basic implementation is
16:39
the character with the controller, obviously.
16:42
The character is like
16:44
the physical appearance, the
16:46
locomotion and the animation support, that's
16:48
the character. Then you've got the
16:51
controller, that is the
16:53
inputs, and the logic
16:55
you do with that input and with
16:58
the queries from the locomotion and from
17:00
the chart. So we
17:03
wanted to improve
17:05
this a little. As I said,
17:08
let's go
17:10
in a little deeper and say, okay, character
17:13
controller, not the character,
17:15
not the character, just this,
17:17
another module. Let's say locomotion,
17:20
say animation, inputs, say
17:23
the logic you do with that thing. And
17:26
then that logic we
17:28
divided with something we
17:30
call abilities and
17:32
these abilities are nothing more than
17:34
states that can
17:37
be executed concurrently or
17:39
exclusively. So we got
17:41
what I call, I
17:44
think I didn't invent
17:46
it, like hierarchy, finite,
17:48
concurrent state machine. Okay.
17:52
The controller itself, what
17:54
it does is manage
17:58
these abilities. Like,
18:01
for example, jump,
18:03
when you jump, you cannot
18:05
crouch. When
18:08
the ability of jumping
18:10
is executed, it blocks
18:13
the ability to jump. But,
18:16
for example, you can
18:18
attack, so that can be
18:20
executed concurrently along with
18:22
the jump. This
18:24
way, you've got kind
18:26
of flexibility. You can
18:29
scale and match the complexity of the
18:31
controls, because then
18:34
inside each ability, on
18:36
each stage, you can implement it as
18:39
a stable chain to say so. That's why
18:42
it's hierarchical. But inside that
18:44
ability, you can do more or less
18:47
whatever you want in order to do
18:50
the behavior or make the character
18:52
do what you want. So
18:55
we've got the inputs,
18:57
the locomotion, the animation part,
19:00
and the abilities. And just
19:03
our control, just manage,
19:06
then you
19:08
can execute right
19:11
now, but you can interrupt this
19:13
one with this ability, and
19:15
things like that. So
19:18
with that approach, I think we
19:20
made something that
19:23
works pretty well. Yeah. Much
19:26
better. In Blasphemy 1, for
19:28
example, I remember the ladder climbing
19:31
ability. For trying to find
19:33
a book on the ladder
19:35
climbing, you had to check on
19:37
three or four different places, including
19:39
the animator state matching, which
19:43
was a nightmare, because I
19:45
think that Paco did, but
19:48
it was almost impossible for
19:50
anyone that was in Paco to try
19:52
to deal with the controller issues. Now,
19:56
with the architecture that Danny
19:58
and the rest of the team made. It's
20:01
way more easy. I
20:04
was going to say to fix issues, but
20:07
there are no issues. WorkOS
20:17
is a modern identity platform built for
20:20
B2B SaaS. It provides
20:22
seamless APIs for authentication, user identity,
20:24
and complex enterprise features like SSO
20:26
and SCIM provisioning. It's a drop-in
20:28
replacement for Auth0 and supports up
20:31
to 1 million monthly active users
20:33
for free. It's perfect for B2B
20:35
SaaS companies frustrated with high costs,
20:37
opaque pricing, and lack of enterprise
20:40
capabilities supported by legacy Auth vendors.
20:42
The APIs are flexible and easy
20:44
to use, designed to provide an
20:46
effortless experience from your first user
20:48
all the way to your largest enterprise
20:51
customer. Today, hundreds of high-growth scaleups are
20:53
already powered by WorkOS, including ones you
20:55
probably know, like Vercel, Webflow, and Loom.
20:58
Check out workos.com/SED to
21:00
learn more. Thank
21:58
you. that
22:01
game because it's really
22:03
cool how the interruptions of
22:06
each attack are done. And,
22:09
excuse me, I wanted that
22:11
kind of flexibility that, okay,
22:14
you can interrupt this ability. For example,
22:16
the dash, you can, from this frame
22:18
to this frame, you can interrupt that
22:20
with the jump. Or you
22:22
can interrupt this with this attack. So
22:25
you can do, I don't
22:27
know the, that I try
22:29
to do, you know, the, like
22:32
the, the lunch, lunch, lunch, and things
22:34
like that. We
22:37
made that, okay, we built a
22:40
bunch of tools around the frames,
22:43
like the heat frames or the
22:45
cancellation frames. That
22:48
was part of the main
22:51
objective. That's awesome. Yeah, I started
22:53
with the big mace, Verdicto. And
22:56
then the first weapon I unlocked was
22:58
the pair of rapiers. And it really suddenly
23:00
felt like I went from like, oh, you
23:02
know, I'm just going around smashing stuff. And
23:04
that's a relatively simple to like, oh, suddenly
23:07
I need to be caring about interrupts and,
23:09
you know, doing fancy tricks with when I
23:11
pull off different attacks and dashes and lunges.
23:13
It was a really like striking, striking gameplay
23:15
transition, which actually, I guess, do you want
23:18
to introduce the three weapons and how they
23:20
influence the gameplay, whichever one works? Something
23:23
that we knew for sure, we had
23:25
a lot of, you know,
23:27
doubts about what we want
23:29
to do with the sequel, but something
23:32
that we knew for sure was about
23:34
having multiplayer weapons. We
23:36
weren't sure how many of
23:38
those, but that is
23:40
something that we definitely wanted to
23:42
explore. And also
23:44
the community have asked about that
23:47
a few times. Hey, it would
23:49
be cool if we could use different weapons. And
23:52
it was really hard trying to do
23:54
something that could compare to
23:57
the weapon of the first game because
23:59
that's where. mea culpa was
24:01
kind of iconic to the game. So
24:04
we had to try to
24:07
find something that matches that
24:09
sense of wonder of the
24:12
first weapon. And that's
24:14
where the answer we,
24:16
you know, code names for the weapons
24:18
and the elements of the game are
24:21
stuck in our head. And yeah, I
24:23
have to think a lot about the
24:25
real, you know, the public names
24:27
of the weapons. Is that
24:29
the same thing? The single source
24:32
that's the pair
24:34
of rapiers. We
24:37
call rosary blade is the
24:39
internal name for the rosary
24:44
blade. Yeah. Awesome. We
24:46
have a lot of game development is full
24:48
of silly
24:52
names. Yeah. I don't
24:54
see this sometimes. So
24:57
that weapon is kind of
25:00
like that causing of the mea culpa
25:03
because they really
25:05
share the move set. So
25:08
there we had the, let's
25:10
say, mea culpa. But
25:13
then we wanted to have
25:15
more variety of gameplay.
25:17
So that means we need
25:20
something really powerful, but
25:22
slow. So you have to
25:24
really commit when you decide to attack
25:26
with it. That's the, ah,
25:29
the sensor. That's the
25:31
rosary blade. Okay. So the one big sword, the rosary blade,
25:46
is the replacement for mea
25:48
culpa. Okay. Yeah. Yeah. It's
25:51
really embarrassing when you come
25:54
to these interviews and you don't know
25:56
the real name of the stuff in
25:58
your game. or as
26:00
a big fan of name driven development, I'm
26:02
really enjoying hearing the internal code names and
26:04
picturing how they came about. But
26:06
sometimes people ask us about something and
26:08
we are like, I don't know what
26:10
you're talking about. So yeah,
26:14
I forgot the name again.
26:16
The sensor is really heavy
26:18
and it punches with a
26:21
lot of power and it's really powerful
26:23
and it has this spinning
26:25
that acts that feel
26:28
really nicely, but it's
26:30
kind of slow. So you have to be careful
26:32
when you use it because once you
26:34
commit to attacking with it, you
26:37
are, we say that you are
26:39
sold to the enemy. You are
26:41
at his mercy. On
26:43
the other side, we have the pair of
26:46
repairs, which are which is
26:50
blazing fast, but deals
26:53
a little bit less damage.
26:56
And that's, you know, the three
26:58
approaches that we wanted to try
27:01
with the three weapons. We
27:03
find the three is a proper amount of
27:05
weapons to have in this kind of game.
27:08
We could talk during
27:10
hours about the weapon
27:13
switching feature. Yeah,
27:16
that was the first moment when I realized
27:18
how quick it wants to change weapon and
27:20
how you were expected to change in midair
27:22
to continue moving. For example, that was the
27:24
moment where I was like, oh, the skill
27:26
ceiling on this game is so much higher
27:28
than I had appreciated so far. Like it
27:30
suddenly feels very, yeah, like you have to
27:32
understand a lot. The mechanics for
27:34
changing the weapon, I think, correct
27:36
me, Danny, was it four
27:39
or five iterations of
27:41
the weapon exchange? I
27:44
don't remember, but I have to say that the difficult
27:47
part wasn't the technical,
27:50
it's like the feeling was
27:53
more like, okay, that doesn't feel
27:56
great. Let's try another thing. And
27:58
then another thing. and let's try
28:01
stopping the game for, you know,
28:04
half a second or let's slow
28:06
down time. Let's pop up this
28:10
wheel, this selection. I
28:13
guess just to give an example for listeners who
28:15
haven't played, so like a case where this might
28:18
come in, for example, the pair of rapiers, you
28:20
can use those to ride these like currents of
28:22
light. And then at the end of that, there
28:24
might be a bell you have to smash with
28:26
the sensor. So you have to, while you're mid-air,
28:29
change from the rapiers to the mace really quickly
28:31
after having done this jump. So I can see
28:33
why you'd be experimenting with, you know, delays or
28:35
wheels, et cetera. That's really interesting. Yeah, but
28:38
that introduce, you know, for
28:40
example, slowing down time introduce the problem
28:42
of, hey, people can
28:44
use these two-bit bosses way
28:47
easier that we intended because they
28:49
can slow down time and have
28:52
time to dodge projectiles or
28:54
to think about what to
28:56
do. So this
28:59
was maybe one
29:01
of the most challenging aspects
29:04
of the game, one of
29:07
the most not. We'll
29:09
come back to what the most was, but I
29:11
guess one, while we're on the weapons, one thing
29:14
that I think is really interesting, you know, you
29:16
described the games of Metroidvania. So, you know, this
29:18
idea of gaining equipment and abilities to unlock new
29:20
areas, but you do that through the weapons as
29:22
well. They're not just like, hey, I've got weapon
29:24
in my inventory. I have a new style of
29:26
tack. They're also your navigation ability, your obstacle clearing
29:29
ability. And then you can choose any of them
29:31
to start with. So like that just seems like
29:33
a whole heap of design problems, like the layout
29:35
of the world, which areas can people do
29:37
first? What order do they get the weapons in?
29:39
How did that decision to give the players that
29:42
much flexibility came up, come about? And how on
29:44
earth did you start dealing with that? That's
29:46
one of those situations in which
29:50
maybe you make the decision before knowing
29:53
the consequences. Truth
29:55
is that we knew what we
29:58
were assuming when we decided to
30:00
play. give players that selection
30:02
of weapons. It
30:05
was quite a challenge for the whole
30:07
team and design because
30:10
they had to take into account that
30:12
players could go three
30:14
or four different bosses when they
30:16
started playing the game. So you have to be
30:18
able to traverse the world with any
30:21
of the weapons. And you have
30:23
to be able to beat the
30:25
three first bosses with any of
30:27
the weapons. It was an interesting
30:29
challenge, but I think
30:31
that it was worth it. Yeah,
30:34
I would definitely say so. Yeah, it's one of those things where
30:36
as you're playing a game and you realize kind of what is
30:39
happening and how things
30:41
would play out if you restarted the game, it was
30:43
one of those elements where I was like, oh, this
30:46
is very interesting. So you mentioned that the weapons weren't
30:48
the hardest technical challenge you faced, which I have
30:50
to ask, what was the hardest challenge? Don't
30:53
get me wrong, but we are doing a
30:55
little indie game. We are not doing a
30:57
higher AA game. So just just take it
30:59
with a grain of salt. Maybe
31:02
the one of the things I found difficult
31:07
was we weren't in
31:09
charge of the port, but Switch
31:13
has some memory
31:15
limitations. Our
31:18
artists tend to use
31:21
really large textures.
31:23
So that was a
31:25
little challenge. And
31:28
also remember
31:31
that 5.6 weren't as smooth as we wanted, but
31:38
that was not in
31:40
Switch, that a little, but
31:43
it was just with simple optimizations and level
31:45
of detail with 5.6. That
31:47
was more than, okay, but in
31:51
PlayStation 4, that
31:54
was really interesting. Truth be
31:56
told, I didn't know how
31:58
much optimization to do.
32:02
Luckily, one of the guys
32:05
from the 14 team got an answer
32:07
from Unity, which I
32:10
don't know how it works
32:14
because it was like, use
32:16
that instead, move the 5.6 thread
32:20
on a different thread. Because
32:22
they were facing with the issue of having
32:25
zones of the game which
32:27
were running at 60FPS
32:30
on the Switch that
32:32
dropped to 40 on the PS4. Wow,
32:35
that's not the order round I would have expected, yeah. That
32:39
was our reaction. We were, you
32:41
know, the Xbox One and PS4 version
32:43
were released a couple of
32:46
months after the release of the game and
32:48
we were pretty confident about
32:50
the performance of the game on
32:52
those platforms. But when the
32:55
producer of the console port told
32:57
me, hey, we are hitting a severe
33:00
raindrop on many zones
33:03
of the game on PS4, I thought that
33:06
he was joking, you know. Ah,
33:09
this is a console programmer
33:11
joke that he's making fun of
33:13
me. But no, he showed
33:15
me the benchmarks of the different zones.
33:17
It was true. There was a huge
33:19
drop in performance on PS4. And
33:22
when you don't know the
33:25
reason, it's something that when I
33:27
read it, I was like, I
33:30
have no idea. I don't know how
33:32
much or how, I
33:34
don't know what to do in order to help them. It
33:37
turned out to be, as you said, something
33:39
from the internals of
33:42
Unity, how it managed different threads or
33:44
something like that. I
33:46
can't do any less retest or
33:48
I can't do any
33:50
less use of the physics.
33:54
We implemented like, okay, it was very basic,
33:56
but it was a level of detail. Okay.
33:58
When the enemies are not on
34:01
screen. Like they likely
34:04
pop it just either or they use a
34:07
little, for example, is that five
34:10
or three rate as just one
34:12
and it's just
34:14
the bare minimum we can do anything
34:17
more. Because if we do less,
34:19
it's like the leaf NPC
34:21
or the enemy just ill
34:23
and the player will notice it. The
34:27
world freezes when you're off when you're not on that screen,
34:29
right? Yeah. Fascinating. Yeah. Console
34:31
porting has been widely discussed on
34:33
social media and stuff recently because
34:35
of Godot and Godot not having,
34:38
not coming with like facilities for
34:40
compiling the console like Unity does.
34:42
And it just seems so
34:44
many obscure complexities that you need to ask
34:47
the console developers or porting houses to help
34:49
with, right? That seems like
34:51
an impenetrable issue. Fascinating. So
34:54
earlier you mentioned the bosses and I wanted to
34:56
ask a little bit about that because in this
34:58
type of game, with the combat system and I
35:00
guess like the, as you said, players have kind
35:03
of given it a soul's like label on the
35:05
first one. Obviously players are very sensitive to boss
35:07
design and building a satisfying boss as a whole
35:09
thing. Like how did you approach the boss design
35:12
for this game? Did you have a particular ethos
35:14
on what you wanted them to feel like? This
35:17
is kind of hard to answer
35:19
first because it's not our direct
35:22
area, but I can
35:24
say that basically
35:26
the whole team is
35:28
always involved in nearly every aspect
35:31
of the game. Art
35:33
enemies, how the game feels. Bosses
35:36
is one of those places
35:38
in which everyone has something to say,
35:41
mainly from the creative
35:43
direction of the game where
35:45
we strive for the bosses to be related
35:48
to the song. They are appearing trying
35:50
to be meaningful for
35:53
the whole story, the
35:55
game for the lore. So we try
35:57
to approach those in a way. that
36:00
they add to the game. They are
36:03
not in there just for the
36:05
sake of being a boss in
36:07
the middle of a palace or in the
36:09
middle of a basement. They have
36:11
a reason to be there and they
36:13
contribute to the lore of the whole
36:15
game. So the design
36:18
has to be something that is
36:20
split between creative direction
36:22
and game design. And they work
36:25
together into defining what's
36:27
going to be the aspect of this boss,
36:29
what role does it play on
36:31
the story that we are telling. From that
36:33
point, they keep working together to
36:36
define how it should be. Should this
36:39
be a humanoid, a human sized
36:41
boss? Should it be huge? Does
36:44
it fly? Does it have multiple? I
36:47
think we don't have flying. Well, yes,
36:49
we have one flying boss, which
36:52
is, I don't know the real name,
36:54
but it's Susone. Maybe it's Susone,
36:57
the real name. I think
36:59
another one was the... I
37:02
was going to say the
37:04
girl in the elevators. I
37:07
don't remember the name. It's not a girl,
37:09
but a ghost. Ghost girl, okay.
37:12
Yeah, I guess it also depends on
37:14
your definition of flying. The embroidery, I would
37:16
just does a flying thing at points, right?
37:18
Yeah, that's a really popular
37:20
boss. And I like her a
37:23
lot. We have our
37:25
favorites as well in the studio. As
37:29
an interior feature, I remember
37:31
with the bosses and enemies,
37:33
for example, in the game, you can
37:35
change because when you build
37:37
a boss, maybe you can try some
37:41
behaviors in order to see if
37:43
the animations are the incorrect leader or something
37:46
like that. The game has a
37:48
hidden feature that you can change the
37:51
controls to that character
37:54
and play a little, test
37:56
it a little. Also, it wasn't
37:58
really useful. It
38:00
was there and I used maybe
38:02
twice, but it was there. Awesome.
38:07
Just to say, another
38:09
feature we had in
38:11
order to test the bosses. That is great to
38:13
hear. There are so many, you know, you spoke about
38:16
the iterations for things like the movement and the controls
38:18
and the weapons and things like,
38:21
you know, bosses and platforming
38:24
segments or another area where I imagine there
38:26
must be so much testing and
38:28
iteration for feel. As like, you know,
38:30
as you mentioned, as like an indie studio, as a
38:32
smaller studio, what does that testing look like? Like, I
38:34
think people tend to imagine focus groups and, you know,
38:37
huge open betas and that kind of thing. But what
38:39
does it look like for a studio of your size?
38:41
Well, it's
38:43
not until the game is mostly
38:46
done that we don't
38:48
start testing in the studio. I
38:50
think that the first play testing suggestion was a
38:53
year before the release. I think it was August
38:55
22. That
38:58
was the first time we had someone
39:00
from outside of the studio to come
39:02
and play the game. And
39:06
that was some point in which you
39:08
are supposed not to be
39:10
changing many things because
39:13
we had the content complete and
39:15
the gold version. The content complete
39:18
was in April, maybe
39:20
23. And what was the
39:22
total development time? It was 37 months.
39:27
Very producer answer. I
39:29
remember that people tend to say three years,
39:31
but it started in July.
39:34
So no, it was 37. So
39:37
it was in August and the
39:39
content complete was set
39:42
for February or April 23.
39:46
And the gold version for
39:48
I think it was May, 1st
39:51
of May, something like that. So
39:53
there wasn't really a lot
39:56
of time to make important
39:58
changes. So,
40:00
we did change things based
40:03
on that playtesting session. Well,
40:06
of course, a playtesting is not the
40:08
same as a QA session. The
40:10
publisher starts with
40:12
the QA of things
40:15
very early in the development
40:17
process, but we, you know,
40:19
that's technical testing.
40:21
We wanted to see the reaction from
40:24
players. Yeah. Making sure the
40:26
game doesn't break and that kind of thing, right?
40:28
Yeah. What we wanted to
40:30
test was the reaction of people
40:32
who hasn't been playing the game here
40:35
in front of their faces
40:37
for two years because
40:40
it's because you have been playing the game
40:42
forever. You lose perspective
40:44
of the game and
40:46
you fail to see the
40:48
mistakes or the things that could
40:51
be improved. So, there's this moment
40:53
in which you need fresh eyes
40:55
on the game. So, we brought
40:57
people to the studio. I
41:00
think it was like 12 people,
41:03
people that we knew. Most
41:05
of them we knew personally. But
41:08
when you make these kind of testing
41:10
sessions, you don't need a
41:12
fan who will be
41:14
happy with whatever they
41:16
play because they are excited to
41:19
try the sequel of the game so
41:21
everything will look great. Well,
41:23
we wanted to have people who
41:25
are really brutally
41:27
honest. I hate
41:30
her. Yeah. Excellent.
41:34
So, yeah, we contacted these
41:36
people who were, some of them were
41:38
friends of us, asked them
41:40
to be brutally honest with the game.
41:42
And from that session, we
41:44
got a lot of
41:47
good feedback that we implemented. As
41:50
long as the feedback that we got was related
41:52
to the weapon change system, I
41:55
remember we give them pen and paper
41:57
so they can write down their... thoughts
42:00
and their comments, then they
42:02
feel a form online with
42:04
their thoughts. And there
42:06
was something, one of the players left
42:09
the paper on the desk and
42:12
there was this comment. I'm trying
42:14
to translate it. Sorry for my friends in
42:16
here, but it said,
42:18
weapon changing, motherfucker.
42:21
Excellent. So
42:23
when we saw this, we were suspecting
42:25
that the system wasn't
42:27
really what people expected, but
42:31
that phrase, that comment, confirmed
42:34
it. That was in
42:36
August and then we have another
42:38
playtesting session in February. I
42:41
think it was February, barely a month
42:43
before the content complete, which
42:45
was really risky. It
42:49
was barely a month before
42:51
delivering the alpha of the
42:53
game. So there was not enough
42:55
time to make huge changes.
42:59
But being as we
43:01
are, we made big
43:03
changes in some systems
43:05
that we weren't really happy about
43:08
like some things that maybe
43:10
people take for granted like, when
43:12
did you save the game? But
43:15
if I have explored this
43:18
huge amount of the map and then I die,
43:21
do I have to go through the whole
43:23
map again or is this progress saved and
43:26
you keep every item that you already found? Because
43:29
this, which seems pretty obvious,
43:32
wasn't that obvious during development.
43:35
That's one of the things that we
43:37
changed with that playtesting session. I
43:40
think that we weren't saving the progress. After
43:42
dying, people got really angry
43:45
about that during the playtesting session
43:47
because you had to remember, ah,
43:49
if I went to this place
43:51
and I picked this item and
43:54
then I had, I don't know, money
43:56
in this place and this boss is
43:58
over here. We entered
44:00
in kind of a crisis
44:02
state in the team because
44:05
we needed to fix that, but
44:08
we weren't sure what
44:11
to do. At the end,
44:13
it's like with the weapon chains,
44:15
the solution, the final decision is
44:18
something that after it's made, it
44:21
looks pretty obvious, simple,
44:24
but it wasn't. One of
44:26
the versions of the When
44:28
Saving Game was the
44:31
classic Metroid or Castlevania
44:33
approach that if you
44:35
save on a broom, or
44:37
the play idea in our case,
44:40
and when you die, you appear there
44:42
like you were never there except the
44:45
guild. So it was
44:47
like this is a little weird. You
44:51
restore the state, but the guild is there. That
44:54
doesn't have much sense. Because the guild
44:56
is on a song of the map that you
44:58
haven't discovered yet because we were removing
45:00
the progress on the map. That
45:03
was one of the first versions. Yeah, I get it. Okay,
45:07
for listeners, so when you die in Lastmas
45:09
2, you gain guilt and that changes like
45:11
mechanics and different like what abilities you have
45:13
and how much mana, etc. Yeah.
45:16
Okay, that makes sense. Yeah. Yeah,
45:18
sorry. For a moment there, I was like,
45:20
I thought you were saying that the guild always appears somewhere you
45:23
haven't been and I was like, wait, did I just completely miss
45:25
that on my playthrough? No, I understand. No,
45:27
I mean, you roll back to that progress. Yeah,
45:30
okay. But it was like, okay, the idea
45:32
now sounds obvious, but a lot
45:34
of games implement like we did,
45:37
like we tried them and
45:39
it just works. But when
45:41
we tried, it didn't work for us. Yeah.
45:44
So it changed enough for the Metroid formula
45:46
that you've broken a standard element of it.
45:49
That sounds obvious, but it's not so obvious
45:51
because if for Metroid
45:53
works, why it doesn't work for
45:55
us? Yeah. And you've ended
45:58
up with, I guess, a checkpoint system that I... I
46:00
guess is the only souls-like, well,
46:02
one of the most souls-like remnants where you kind of
46:04
have this like, you know, you save at a checkpoint
46:06
and that's where you come back and then you have
46:08
to go get your pick up your guilt in a
46:11
very kind of, you know, yeah. Awesome way. Perfect.
46:14
Wonderful. We are getting close to time. So I wanted
46:16
to ask a couple of questions to wrap up and
46:18
I guess the first one, do you keep an eye
46:21
on the speed running scene for the last most two?
46:23
You mentioned earlier that players, you know, being conscious that
46:25
players will break things. Do you pay attention to what
46:27
they're up to? Honestly, I
46:29
keep an eye on the community
46:32
in general, mostly Reddit. Most
46:34
of the people from the team are not
46:37
really, don't really interact with the
46:39
community, but there are people who
46:41
are constantly interacting with social media,
46:43
but most of us don't. We
46:45
see what people comment about the
46:47
game and what they want us
46:49
to do with the game. This
46:52
morning, I sent the lead programmer
46:54
thread from Reddit in which someone
46:56
was talking about the progress of
46:59
the rapier and dagger and
47:01
hey, check this and see how
47:03
much reason this person has. But
47:05
for the speed running scene, I
47:08
haven't seen anything just for Blastmas
47:11
2. Okay. We
47:13
did for Blastmas 1 and I
47:15
remember that the first speed
47:18
run that we saw as a team, I
47:20
was cooking on the kitchen and
47:22
I had my iPad on the side
47:24
and I was checking the speed run and
47:26
I was like, how is he
47:29
doing that? Okay. What
47:31
was that jump? Because there was a
47:33
book on the jumping,
47:36
let's say system because Blastmas 1
47:38
didn't even have proper systems that
47:41
allow players to jump in an
47:43
infinite amount of distance.
47:46
But I haven't seen that for Blastmas
47:48
2. It's not that it
47:51
doesn't exist. I'm sorry. I
47:53
don't know. Now I'm curious.
47:55
When we finish this, I will go
47:57
and check. this
48:00
run, there was a really fast run that
48:02
got submitted for games done quick. But I
48:04
believe the reason it got rejected was because
48:06
you patched it. And I don't think you
48:08
patched it intentionally, but a patch you released
48:11
fixed the run. So there is
48:13
some there's some quick runs. We made only
48:15
one update to the game. And
48:17
honestly, I don't remember. It
48:19
was a sub 40 minute run. And then
48:21
the first the patch fixed it, which is
48:24
Yeah, I remember it. It was something like
48:26
pass the game when the Ah,
48:28
the room switching. When you do
48:30
the launch attack with Rosary blade,
48:33
you could use or something like
48:35
that. Or with prayer that with the time.
48:38
Yeah, I remember that. And I
48:41
did that myself when I saw
48:43
it, which sends you off words.
48:45
Yeah. Yeah, that's when
48:47
we passed. Yeah. Yeah. Amazing.
48:50
So I guess inevitable question. And it's totally okay
48:52
if you can't. But can you share anything about
48:55
what's next to Blasphemous 2 or you know, what
48:57
else the game kitchen is working on? As
48:59
a company, I can say that the game
49:01
kitchen is working on multiplayer projects. Some
49:04
of those are public like the
49:06
VR platform that has been built.
49:09
But sadly, or likely,
49:12
most of the games are not most
49:14
of the projects are not public yet.
49:17
As for Blasphemous 2, after
49:19
the release of the game and the
49:21
update, we took a
49:23
really long holidays.
49:27
Most of the team, those who could afford, I'm
49:30
sorry for that because he's one of
49:32
the people who couldn't and I didn't
49:35
took as many days as
49:37
I suppose to
49:40
have. Blasphemous 2 started really soon after Blasphemous
49:42
1, right? There wasn't much gap between
49:44
the two of them. That's something that we
49:46
didn't talk about. But Blasphemous 2 started the
49:49
development where we were working on the
49:51
three DLCs. Yes,
49:53
you were long overdue holiday. So Blasphemous 2
49:55
started in July 2020. Yeah. The first DLC.
50:00
was released, you can't
50:02
remember. I made a presentation not long
50:04
ago and I had to check all
50:06
the dates because I totally forgot. I
50:09
think it was February 21. I think it was more
50:13
than a year or maybe September 2020, October.
50:16
I'm sorry, I can't remember. I had to
50:19
check Wikipedia the last time. So
50:21
yeah, we overlapped the
50:24
two developments. Yeah, very overjoyed. You
50:27
took a lot of time after last semester and
50:29
still thinking about that. When we came back from
50:31
holidays, then we started talking with
50:34
Mauricio and with our publisher about
50:36
the future of the game. We
50:38
haven't behind anything yet. If
50:41
we had, I couldn't say so. Absolutely. Had to try,
50:43
had to try. Yeah, I
50:48
know. I know. For sure, there's always
50:50
things that teams
50:53
want to add to a
50:55
game. I don't know who said
50:57
this, but games are not finished,
50:59
but abandoned. So we
51:01
will not abandon it
51:04
yet. That
51:06
feels truer than ever in the
51:08
age of games being patched online. Long
51:10
gone are the areas where you shipped a cartridge
51:12
and didn't have to think about it ever again.
51:14
Perfect. Well, thank you both so much. This has
51:17
been delightful. It's always nice to learn more about
51:19
how the games we play are built. So thank
51:21
you both for your time today. Thank you, Joe.
51:23
Thank you for having us. Thank you for
51:25
having us.
Podchaser is the ultimate destination for podcast data, search, and discovery. Learn More