♪ [MUSIC] ♪ [CIRO] All right. Here we go. [CHEMA] Hey. Hello, everyone.
[AMEL] Hi, everyone! How's it going? I think
I'm sending my audio as well. There we go.
Now, it should be good. Welcome, everyone.
Welcome to this first episode of Open Projects: The Journey. We called it The Journey because
it's going to be a long journey, and we're going to tell you
why in a second. My name is Ciro Continisio, and I'm the Head of Creator
Advocacy for the EMEA region for games at Unity. And with me there's Chema and Amel. Hey, everyone. I'm Chema.
I'm Creator Advocate in the EMEA region as well.
[CIRO] Wait, Chema, one second. We'll have time
to introduce ourselves. Okay.
[AMEL LAUGHS] Actually, you want to introduce
yourself? I'll give you the floor. Yeah, I can start.
As I said, my name is Chema,
it didn't change. [LAUGHS] I'm a Creator Advocate
for the EMEA region. I started to work in the industry
almost eight years ago, seven as a game developer and
for the past year as an advocate. I think that the first version
I used of the Editor was like 3.5 back in the day.
[CIRO] That thing. The first version.
[CHEMA] Yeah. [LAUGHS] Bragging. [CIRO] Yeah. I see. Amel, What about you?
What version did you use? Well, I would say version 4
when I was still at university. My name is Amel,
and I'm also a Creator Advocate for the EMEA region at Unity. I'm based here
in Copenhagen in Denmark, and before joining Unity,
I was a student at the Engineering School in Paris. I moved from Paris
to Copenhagen to join Unity. I have a couple of experience
working on Unity mainly when I was a student, so I hope that we have a lot
of students here watching us today. And a special welcome
for you all. [LAUGHS] My name is Ciro. As I said,
I'm the Head of Creator Advocacy at Unity, so I manage
EMEA in my team. A bit about me, I guess,
I'm not going to say the version, I don't play this game.
[LAUGHTER] But I was a game developer, an indie developer,
before joining Unity. I made a couple of commercial games
and I was also a tester in my previous life
at Electronic Arts. But now what I do is,
well, I used to do, and what we used to do as a team
is we used to travel the world to talk about Unity,
to present about new features, and to connect
with the community, right? [CHEMA] Right, yeah. [LAUGHS]
We used to do that. We used to do that. Yes. And because we don't do it anymore, we actually came up
with this initiative that we're going to present today,
which is the Open Projects, right? [CHEMA] Yes, exactly.
[CIRO] What is Open Projects? Do people know in the chat?
I can't see the chat, actually, but I'm curious to see. If you can put just a Yes or a No,
if you already know what it is and you just came
to see the updates, or you don't actually know. We're going to give you
a small introduction. Yeah, we already got
a few Yeses in the chat. Some people have no idea,
which is also good because now they're going
to know more about it. [LAUGHS] [CIRO] We're here for that.
[AMEL] But I see a lot of Yes. [CHEMA] You're in
the correct place. That's great. [LAUGHS] Shall I introduce the initiative? [AMEL AND CHEMA] Yeah.
[CIRO] As I said, what's the point? The point is that we
cannot travel anymore so we can't see you all in events. We used to go
around Europe mainly, and then we went to all events,
like GDC, Gamescom, and stuff, and connect with the community. Now, we can't do it anymore so we
thought, "Okay, what can we do?" Obviously, the first thought
is to stream online and do talks. But then we wanted
to give it a small spin. So we came up with Open Projects. What is Open Projects? I'm going
to start by showing a small video, which is concept art,
while I explain what it is. Open Projects is an initiative
where we, Unity, make a small game, starting with a first small game
together with the community, with you, and we do it
in an open-source way. It means that everything we make
is open and is accessible and is downloadable,
but also modifiable right now. We started Open Projects
a couple of weeks ago, we did an announce trailer. And since then, people just
jumped in straight away, there was a super, really good
response from the community. At that time we opened up
the doors for this first project, which you're seeing
the concept art for on-screen, when we opened the doors,
we really had just very little more than the concept art. We had
a Unity project already set up but not much more,
and I'll show you what we had because we're actually
still in the first phases. I guess, the concept art
that you're seeing on-screen, this is actually the main character
right now that you're seeing. And I'm going to stop on it
for a second. The first game
is about this character, this pig character,
which is like a chef, and he's a traveling chef,
so he wants to go around the world and discover new recipes,
new tastes, new flavors, and this traveling
takes him everywhere. And then for the purpose
of this demo, we're going to this island
where the chef has landed and he's going to join a... Basically, the island
is running a cooking festival and the chef is there
to impress the local head chef, which runs the cooking festival. That's kind of like the story
which is very short terms. Chema, Amel, do you want
to add some more details? I'm actually looking at the chat to
know if there are some questions. I think you covered
almost everything, but do you want us to talk on
how to get involved on the project? Yeah, of course.
I meant about the story if you had some more details
to add that I forgot. I don't think so. [LAUGHS]
Not that I recall. For now, I think that the story
is being reworked, if I understand. Exactly. That's a good point. Basically, we started
with a story for this game, which was a very small draft,
I would say, because we wanted
to have something. But we presented it on the forums and already we have
changed some details. We received some feedback,
some good feedback and so we made some changes and
the feedback was really correct. I invite you to go and read
the feedback on the forums. There's a thread about that called
Dialogue and Narrative, right? [AMEL AND CHEMA] Yeah.
[CHEMA] That's the awesome thing with having something
that is collaborative is that you have some insight
that you couldn't see while doing it alone. But if you have some other people
that contribute, you have another perspective
on the matter. That was really nice to have. For us, it was kind of like
an act of balance, I would say. At the beginning, I was really
unsure on what to provide upfront, and what to let the community
create instead. We really had to kind of
walk this very thin line and say, "Okay, we give some story
but at the same time we let people give feedback on the story."
And the story thread, in particular,
is exploding. [AMEL] Yeah. Definitely.
[CHEMA] Yeah. Exactly. It slowed us down a little bit
because now, we're reworking the story,
we had to stop art production, we had to stop some
programming tasks as well. But we're getting there. Yeah, we're getting there
and having people that contribute, as I said, is like giving them
the possibility to be included in the story more than just in
the coding or in the end product. It's like being included
in the story. I think it's really good. [AMEL] Yeah, totally.
[CIRO] Yep, definitely. Chema, do you want to give us
an introduction to the actual. I mean, I explained the story,
but where does this project live? Actually, this is a great question. It's simple really.
We tried to plan this project the same way you do
in a game development project. The starting point was to create
a roadmap for our project. To do so, we used Codecks, I don't
know if you can open it, Ciro, for us to check.
[CIRO] Of course. Sorry, one second. There we go. [LAUGHTER] It's a great project
management tool. It's based on cards and decks,
and it allows us to create a public and clear roadmap
for everyone to follow. Each deck represents
a part of the project. Some of the decks
are for documentation, for example, the Readme
and the Game design wiki, we can see those cards here. Also, Game flow
and Game element are decks that contain micro-tasks
that represent states for the game. For example, locations or menus. When we open them,
we find cards that are Hero cards that contain sub-tasks. If we open, for example, the cards
that are linked to a Hero card, we will see that it contains
some sub-tasks. Some of them are done, so in green,
and some of them are being done. If we click on the card,
we can see the description on it. If we go for Up for discussion,
for example, the Up for discussion deck
contains ideas and topics that we'd like your input on. The first one, I think,
is the Game title. If we click on the Game title,
we can see a link to the thread. We can click on the link.
[CIRO] Should I click it? Yeah, just to see a bit, to see where we are for the title. Yeah, exactly.
[AMEL] This is my favorite thread. [CHEMA LAUGHS] Yeah, we have
a lot of input on that. We can go back to the roadmap now. [CIRO] Mm-hm.
[CHEMA LAUGHS] The other decks, for example,
we have the Bugs, which contains. [CIRO] Sorry, just to mention,
for example, the Game title we're also kind of stuck because
we're still defining the story. That's why we haven't closed
the discussion yet. [CHEMA] Yeah, exactly. Also, the other decks, for example,
the decks that are in green, are the decks that contain tasks
in the form of cards. If we open the deck for Code, we can find each card
representing an action, a task that has a description
with a link to the thread that represents it in the forum. It will also be assigned
to someone, either to the community
or to someone from the Unity team. You can see the blue icon
is for the community, and the black icon is for
someone from the Unity team. If a card is assigned, it will be
in bronze, in the gold color. If it's already being worked on,
it will be in blue. If you want to work on something
that hasn't been assigned yet, you can look for something
that is in gray, it has the gray bar on the bottom. And that means that this task
hasn't been assigned to anyone so you can start to work on it,
start a discussion on it on the thread or start to work on it... We will see later,
how to start to work on that. [CIRO] I want to say
one thing, Chema, I don't know if you wanted
to say it after this, but the blue cards, the ones
that have the community icon, that doesn't mean
that you cannot work on this task because you know how it works
with the assignment. [CHEMA] Yeah, of course. It can be assigned to someone, and if it's assigned, you can
participate to the discussion and try to participate
to the solution that is in the thread
in the forums. I don't know if you want to add
something else, Ciro, about this? [CIRO] No, I mean,
you said it right. The way we see the participation
to this project is not just to anonymously jump into a task
and make it on your own. But it will be lovely if you could
jump instead in the thread and have a discussion
with the other members because it might be that maybe... Miscommunication kills projects. If you can communicate with
the others, then it would amazing. As we were saying, the idea is
that, basically, two or more people could actually work
on the same task and kind of come up
with different solutions, and then we have
the very difficult task to choose which one to pull in.
[LAUGHS] [CHEMA] Yeah, exactly. Yeah, and when a task is finished,
the card becomes green, and it's repositioned
in the release deck it belongs to. The last two decks, the ones
with the number of the version contain the finished task,
the finished card. As you can see here,
I can treat them... [CIRO] This is the initial
concept art. [LAUGHS] Yeah. It's the concept art and
that contains all the cards that have been finished
when we released the public reveal. [CIRO] And these are the ones that
we're working right now, right? Yeah, exactly. Right now, the current
Game flow is blocked. As you can see there is an icon
in the Game flow. It means that
there's a problem there, there's a block there.
You can open it and we can find that this card is blocked because
we are reworking the story. But for now, it contains
the Game flow for the previous story
that we have. If we open the link there... [CIRO] Just one second, Chema.
One thing I want to mention, cards also have conversations. In the conversation, we will
leave some notes about the cards. For example, this is telling you
that this particular card is blocked because of,
and then it links to other cards. You can also follow
the evolution of some tasks. You will see cards
that have conversations. That was a blocked one, but usually,
they should have an icon. They should have an icon, yeah. [CIRO] Maybe they only have it
in the private one. [CHEMA LAUGHS]
[CIRO] You were saying the link. Yeah, so I was saying
the link for the Game flow, you can open it
and it will bring you to Miro. We are using Miro
to represent the game flow. It represents the logical states
as moments. I don't know if we opened
the right link. [CIRO] It's a good question.
Let's try. [LAUGHTER] If we open Miro and we go to
our Game flow representation, we will see it has... Yeah, I think we should... [LAUGHS] [CIRO] I don't know.
Seems like Miro is down. Miro decided it's not time to.
[CHEMA] Ah, yeah. [LAUGHS] Awesome. Thank you, Miro.
We will see you later maybe if it works.
[CIRO] Oh, it's loading. [AMEL] Yes, it's working.
[CHEMA] [LAUGHS] Nice. [AMEL] Now we'll see about Miro.
[LAUGHS] Yeah. [LAUGHS] As I said, it contains
the flow of the game. For example, you can have moments, you can have places
of the game that you can see. For example, here, the game begins,
then we have the initial cinematic, and then we go to tutorials,
and it triggers something else, and something else, and we follow
the logic until the end of it. We have, also,
I think there's a UI flow here also in the top.
[CIRO] Yes, it's here. Yeah. We can see the flow between
the screens that we will have, but also I think there is another
part in this Miro graph with the positions. [CIRO] The physical location, yeah.
[CHEMA] The physical location. [CIRO] Basically,
while this part here is more like the logic of the game,
so it's kind of like the story, and in fact, you can see it has
more or less a linear progression. It's not an MMO, right?
[CHEMA] Yeah, exactly. [CIRO] But this one
is the physical locations. And I want a precise, for example, this one
would be Forest environment and this means that it's connected
to this other environment. But I want to precise that
because we're reworking the story, this structure
is kind of old, right? We want to redo it from scratch once we have
the story set in stone. Yeah, exactly. It could be one of the cards
that you can create again. But we already have the card
for the Game flow, and it's being reworked
with the story right now. We can see another card again
just to check the threads, the link to the threads,
so let's open a card in the Code. The first one, yeah. Every card will have
a link to a thread in the forums. The thread will be marked Official. That means that it's linked
to a task, and everyone can contribute
to the discussion, as we said, even if it's assigned, you can
participate to the execution. This helps us gather all
the information about the subject in the same place without having
to go into separate threads. In addition to those threads
that are marked Official and that are linked to cards,
you can also find suggestions or queries or contributions
that are not in the roadmap yet that we can add later and add
the label Official to them later. Now, once we have this,
once we have the thread, once we are discussing it,
how do we contribute? [CIRO] One second, Chema.
There's a question from the chat that I wanted to address right now. Somebody was asking,
"In the case of audio, it's all assigned to someone
in the Unity team." And they say, "Will that change?" And this kind of brings up
the discussion on these very fundamental tasks, which I wanted to briefly mention. Yes, that will change. We want to open up
every aspect of this game. The reason why audio
is assigned to the Unity team and actually,
let me share... this one. Also, you will notice
in 3D and Shading, you have a bunch of 3D models, specifically for
the main character, assigned to the Unity team,
is because we wanted to kind of give a direction to the project. It's going to be very challenging
if we opened it up from the very beginning, and then ten people want to make
ten different characters or have a different idea
of the graphics for the characters. Five people make
different audio themes. We want to give a bit
of direction to the project and then we're going
to open up the contribution to these very fundamental things,
like sound and graphics. That's the reason.
[AMEL] Yeah. [CIRO] And then, other questions... [AMEL] Yeah, do we...?
[CHEMA] Yeah. Is there any age restriction
to the contribution? [CIRO] Good question. I don't know. [LAUGHTER] [CIRO] I think this goes with
the age restriction around Unity. Unity does have an age restriction which is specified
in the Unity Guidelines. When you download Unity, it has
some guidelines for downloading, and I think that also
applies to this project. The project in itself doesn't have
any age restriction, but if you're creating
a Unity account, then you have some which is specified
in the guidelines. [CHEMA] Okay. Yeah. Shall we move on? [CHEMA] Yeah. Actually,
I was about to ask Amel how to... I was about to ask Amel how to
use GitHub and how to contribute. I think it's the time to,
once you set up, as Chema mentioned, in Codecks, you choose the card
you want to work on, and you also mention that
in threads, so you can start discussion with other people
that are interested also in the same task.
We get to this interface, which is the GitHub repository
of the project and where the project
is actually open for everyone. Carol will put the link in the chat
so you can access this. You can also access it
from the threads or from Codecks. Here we have a preview
of the Readme file. I just wanted to mention the
Contribution Guidelines document that maybe Ciro can open quickly
to give you an overview. Here, there is in details
the Contribution Guidelines if you want to go through it,
but I'm going to give a glance now, somehow how to actually
contribute on the project. If you want to start now,
what do you do? Let's go back to GitHub, and first thing that you need to do
is to fork this repository. There is the fork on the top,
on the right. [CIRO] What does fork mean? Fork means that you have
your own copy. Instead of Unity Technologies on
the top next to the Open Project, it will become your GitHub username
next to the project. Here if you open your copy
or the one you forked, it's going to be "ciro-unity"
I believe, yeah, Open Project. Now, you can make any changes
and then push them to your repository. For instance, let's modify
the Readme file, something maybe easy to do now. Let's say like, "Hey, everyone,
we're streaming now, it's live." [LAUGHS] [CIRO] "We're live!!!" Yes. And now you can choose
the commit message, etc. You can use, of course, any
GitHub tool that you use usually, like GitKraken or SourceTree, or there is also
a desktop version of GitHub. Whatever tool you are using or
command lines, feel free to use it. Now, we have this change.
If we go to the commits of your Git repository, Ciro, we should see this appear
as one of the latest changes. [CIRO] This one?
[AMEL] Yeah. If you press Code on the top on the left to see the commits
of your repository. All the commits
of your GitHub repository. [CIRO] Ah, on Code, sorry. Here, you can see
that you are actually ahead of the branch you have forked from, which is the one
that we have in Unity. Let's say, you make this change
and you're sure you want to show this to the rest
of the people in the project, you can do what we call
a pull request. Here, you are like asking us
to merge the changes that you have made
in your forked repository into our repository,
which is accessible for everyone. You need to do
pull request first. [CIRO] And of course,
I need to sign in 75 times. [LAUGHTER] Yeah, this is quite like the usual. [CIRO] Which is the thing
that I didn't want to do, but it's inevitable. Yeah, and now what you will do is you need to actually
do the pull request and just wait, basically. But just to go through this
comparing changes, as you can see, here you can choose from which
branch of your Git repository you are sending your work
to which other branch of the other Git repository,
which is the Unity one. Here we are sending
from master to master, but if for some reason
you were working on another branch, for instance, the Scene-Loading
or whatever other feature, it's totally flexible and you can
choose the branch that you want. Let's commit it
maybe from the master. [CIRO] You will notice here that
sometimes it will tell you that you can't automatically merge
if you make changes that also kind of overwrite
what something else has written. But anyway, this is just
a very simple example. I could potentially do it this way
and then create a pull request. Now you just create
the pull request, and you can see that you have some
text already written for you. That's like a template
that we created. That asks you some
basic questions like, "What are you trying to achieve
with this pull request? or "What issue did you try to
solve?" All these kind of things. And it's super helpful for us
to be able to decide why this pull request was useful. You can also put pictures,
screenshots, links to the thread, for instance,
that you have worked on, etc. Here, once you have this ready,
you just press... Yeah, you generate
your pull request and it is done. Now, you just wait, and I want
to show you what happens actually behind the scenes.
For us, Unity, what do we see? We see this list of pull requests,
which you also can see. And let's take any other
example, Ciro... [CIRO] These are changes
that people sent, right? Yeah, these are all changes
that people sent and want to merge into.
[CIRO] We have 46 closed. And 17 currently.
[AMEL] Still open. Yeah. Let's open one just to see.
[CIRO] We need to take a look at at some point. [LAUGHS]
[AMEL] Yeah, totally. I will mention why, actually,
it takes a bit of time because every change you guys
submit and we approve it in the repository, which is like
the repository for everyone, everyone who clones
the project or forks it, they will get this version.
We always try to be as careful as possible
to avoid having bugs later that will somehow
impact all the users. That's why it takes some time,
we're sorry, but this is how it works.
And sometimes, as you said, we have a lot
of different solutions and we need to somehow see
which one fits better. As we said, it's always better to see if someone
already started working and work with them in the threads
so we can have one final solution. This is a good example
of a state machine implementation. Here we have pictures,
we have a description of what exactly
we are trying to achieve. You can see also we have comments so other people,
not only people from Unity, other people can comment
on each other's pull requests and can actually give some
feedbacks, suggestions, and the discussion is always open. This is one of the great things
about the Open Project. "Looks great!!" It is. Everything
looks great in the project. [CIRO] I'm very excited today.
[AMEL] That's great. Yeah, very excited. [CIRO] And this is where we
basically can approve it or not, or provide some feedback to you. And the discussion goes on
until we then decide whether to merge it
or close the pull request. Yeah, totally. We take some time
to test this in the engine and make sure
that everything works, etc. In the Contribution Guidelines,
you can see more about what is allowed
and what is not allowed. For instance,
you can't add new packages or change the Unity version, etc. But all these, you can find details
in the guideline. Also, I wanted to mention, if you
want to see the different steps of the contribution in details,
you can see the video that Dapper Dino, our friend, made, and it has a thread
in the Unity Open Project. Yes, if you can show it quickly,
Ciro, that would be great. You can see in details
if you want to look into that. [CIRO] It's just called
How To Contribute - Video Guide and it's pinned at the top.
It's a really good video that guides you through
the whole process in a very quick way.
[AMEL] Totally, yeah. It shows you how to do everything
from the commits, from everything. That's a really good way and
more details than what I said now. You can watch it. Ciro, you might ask me a question: If I'm not a programmer,
or I'm not a 3D artist, or I have no Assets to contribute, how can I...?
[CIRO] Then what do you do? You can do something, actually,
you can do a lot of things. Actually, even people
now in the chat, they are helping. They are here to give ideas,
to give feedback, and that's like, people are already
contributing by doing this. But one thing I want to point is,
for now, maybe we don't have a first version of the project yet,
but probably in a few months, like two or three months,
we'll have a first version, and you guys can test it
and can see if there's any issues or something you find
not comfortable in the gameplay. You don't have to have
any technical knowledge or skills. You only need to test it and say,
"I saw this issue or this problem." And then when you notice this,
you can go to the GitHub, so if we show GitHub again, Ciro, you can find this tab
called Issues. And let's open the first one.
It's a good example actually. "Camera can clip..."
Yes, this one. You can see this is an example of
an issue where we show the behavior and how to actually reproduce it. We have a screenshot.
This is perfect. This is a very good example
of how to open the issue. Maybe let's try to open one, Ciro,
now, if we go on the top. [CIRO] Do you want
to create an issue, Amel? I want to create an issue now.
[LAUGHS] Here, again, you can see that
we have this text already made, which is the template
that asks you a few questions, like what's the issue.
"Amel causes trouble." [LAUGHS] And asking you how to reproduce it. You can put screenshots. You can give all the details
that can help us reproduce it and make sure
that we can solve this. If you go on the right, Ciro,
there is also Labels. I love this one. Yeah, the Labels. You can decide which one, like
it's a critical bug or it's minor, or if it's just an enhancement so we can know
which tasks to prioritize or which issues to work on first
and try to solve them first. [CIRO] By the way, actually,
this template comes straight from my experience at EA
when I was a tester. [AMEL] Oh.
[CIRO] Certification tester. Yeah. I kind of reused those steps. One of the points
of the bug reports at the time was that you want to be concise. You don't want to write
a lot of details that are repeating the same thing
over and over again because, obviously, you might have
a lot of bugs to read, right? [AMEL] Mm-hm.
[CIRO] Yeah. Yeah. This one goes straight
to the point, which I really like. [CIRO] The three words were
concise, precise, and standardized. Those were like three slogans
for the bug reports. It's like pro tips from Ciro.
I love this. [LAUGHS] [CIRO] Anyway,
"Amel causes trouble": critical. Critical, of course. [LAUGHS] How can we reproduce this, Ciro? [CIRO] Somebody added
an issue right now. [AMEL] Oh, that's great.
[CIRO] "Rename default branch from 'master' to 'main'."
[AMEL] Okay. [CIRO] We'll look at that later.
[AMEL] Totally. [CIRO] This is how interactive
this project is. This project is super interactive.
I love this because sometimes you start working on something
and then you see something pop up, I'm like, "Oh, I'm actually
doing this with other people, and they see me and I see them,"
that's really great. Actually, I'm thinking we should
probably get away from the GitHub before somebody writes some...
[LAUGHTER] some very weird thing on-screen. You were too late.
[LAUGHTER] Too late. [LAUGHS] Yeah, we can maybe check if we have
any new questions in the chat. Yeah, I can see folks
are super excited here. I think I have some questions. Someone asked about
the version variations. I think we have something
in the guidelines that we don't change the version,
we use only one. [AMEL] LTS.
[CIRO] That person is a genius. [AMEL] Yes. [LAUGHS]
[CIRO] I'll tell you why. Because you gave me the chance
to specify that. Or do you want to do it, any of
you? I'll give you the full screen. [CHEMA] No, you can.
[AMEL] Go on, Ciro. You volunteer. So yes, the version of this project
is 2019.4 LTS, Long Term Support. It's going to be like that,
it's not going to move, we're not going to update to 2020. The point is to stay
on a stable version that is good for production because we want to simulate the
experience of making a full game. We also want to simulate
what a company would do, which is not like
be on the latest beta, but stay a bit behind
and take this more stable version. To be fair, some companies
do use betas in production when they really want something
which is like bleeding edge, like a new package
or a new feature. But here we don't.
Here, we're trying to do something which is kind of
a classic in a way. So 2019.4 is perfect for us. Right now, we're on 2019.4.11, and there's a new patch
that came out yesterday. We're going to upgrade
the project soon, but please, don't upgrade the project,
don't upgrade packages, we'll do it, otherwise, we'll have
like a million PRs open. Yeah. [CHEMA] Yeah, exactly. I have another question. Someone asked,
"What can I learn from this? What skills can I improve by this?" [CIRO] That's a good question.
[CHEMA] It's a very good question. [CIRO] Do you want
to answer, Chema? You can learn everything. [LAUGHS] Actually, Ciro, I think you have
a better answer to this. [CIRO] Me?
[CHEMA] Yeah. Sure. It is true, you can
learn everything. What that means,
I think it means that... you can take it as a programming. [CHEMA] The project. Exactly.
[CIRO] Sorry? The project has
a lot of different features that can be developed, and if
you are interested by anything, you can develop this feature
or the other feature. You can participate in other people
that are developing, you can see the execution
of other people, like Amel showed, you can see
the PR of other people, and things like that. There are so many features
to learn from this Open Project. We will have, I think, Ciro,
one stream per two weeks with a new feature
explained each time. Yes. I want to add that every aspect
can be educational. Even the discussion
that goes on the forum about why to choose one solution,
why to choose another solution, and if you see it in real time,
then you see it evolving, and you understand the reasoning
behind these decisions. I want to say, and hope
that in a couple of months we will have made
some change to the project, and then maybe
we will have reverted it. Sometimes we will take
some decisions and for some reason,
we will look back and say, "You know what?
That wasn't the best decision," and we change it,
which is something that happens in production sometimes. And obviously, it has a higher cost the further you go
in the production. We will try to be very careful. But I think this is like a safe
space to experiment in some way because this is not
a commercial game so we don't have
those restrictions and timelines
that commercial games have. Hopefully, to answer that question, you're going to learn
something from this and use it when you work
on something commercial or your own project,
your hobby project, whatever. There's many, many aspects to it. Yeah, exactly. Cool. One last question. Okay. There's a question
about the initiative: "Are you planning to do
more Open Projects?" [LAUGHS] Yes, but let's see
how the first one goes. [AMEL] Yeah, if we survive
the first one. [LAUGHS] If we survive it. The initiative is called
Open Projects so it's plural. So yes, that's the idea. Also, want to touch
on another aspect. Thank you for these questions.
These questions are perfect. The reason why we're doing
this project as well is because we believe that
we can't really offer a tutorial which is higher level,
like a more complex tutorial, without specializing it
into one type of game. And this is the type of game
we chose as the first game, but there's other types of games. My idea is to probably
make a second game as a mobile game, that's the idea. And then a third game,
and then we'll see, like VR. I'm not promising anything,
we'll cut this one from YouTube. [LAUGHTER] We'll cut it in post-processing.
[AMEL] Post-process. [LAUGHS] But yeah, that's the plan. Yeah, and for those who are asking
about the Discord channel, there is a link, I think,
that we can send you. I think there is a link
in the thread. I'm not sure.
Just correct me if I'm wrong. A link in the thread. Which thread? Or we will create
the link in the thread. [LAUGHS] For the Discord channel. Yeah, we have a thread
for the Discord channel so I believe they can find
the link there, and I think also, Carol, yeah,
she just put it in the chat, so you guys can find it
in the chat now. Otherwise, I really suggest you
to look at the forums, and if you take a look at this
thread called News and updates, there's usually this kind of stuff,
and exactly, Carol linked the Discord channel. Through this thread, we're going
to give news every now and then. As you can see here,
when we upgrade Unity, and milestones,
and important events. Just keep an eye on it. [CHEMA] Yeah. Awesome.
[AMEL] Yeah. We also have another
question, Ciro. The question is,
"Will there be documentation on the organization
of code and Assets? I'm assuming pull requests
will be rejected if they don't conform
to some standard." And I believe we have
a document for this, right? Yes, which is linked...
Where is it linked? [AMEL] Yeah.
[CHEMA] In the forums? Yeah, in the forums
it's linked I believe so. Yeah, that's a good point.
We need to link it in the Readme of the... Yeah, maybe we should add this
as well in the Readme file for the Git repository. And yeah, it should be there. But it's also in the threads
on the forum. Yeah, we will link it a bit
everywhere, to be honest. We just made it so it's not
very well-connected or visible. [AMEL] Mm-hm.
[CHEMA] Yeah. Awesome. Now that we know everything about
this, can we see the project, Ciro? Yeah, we want to have
a glance at least. [LAUGHS] All right. Let me open Unity. Let's go here. The project looks like this. It's very unappealing,
I will say, for now. [CHEMA LAUGHS]
[AMEL] For now, yeah. [LAUGHS] Yeah, we're really working
on the foundations. We are basically, again,
laying the foundations, especially with code, and this is
actually one of the first tasks that I started working on. It was the Character Controller.
[LAUGHS] You can see the initial
experiments with physics. It went really wrong,
so that was literally the first task
that I was working on. This is the project
that you can download now. You'll see this scene which is
kind of like a playground to test the Character Controller. If I press Play, going to give it some space, then you can start testing
the Character Controller by moving around. There's ramps,
there's little steps, and there's slopes so you can try
to move up the mountain. You can't. And actually,
this is one of the things that was contributed
by the community already. There's also a bit of Cinemachine,
you can move the camera closer. But again, it's very rudimentary. I understand that this doesn't look
like the most appealing, but that's how games start. We're trying to get the foundations
pretty correct. [CHEMA] Yeah, some people say
you definitely need us artists so, yeah, I think so. [LAUGHS]
[CIRO] Yeah, we do. Wait one second because
I have a surprise for later. I just wanted to mention that,
as I was saying, initially, the character could just
walk up the mountain by jumping, and then one of the very first
contributions we got was somebody fixed that bug. You will notice that
if I'm walking up the mountain and I try to jump up like this, then the character will slide down
and face the other way, so they implemented
this interesting sliding mechanic into the Character Controller,
which is quite cool. You see if I walk down here,
at some point, you will start sliding down and that's why you don't have
the ability to jump, and this prevents you from
jumping up the mountain. Actually, I want to point out
there's still one bug open that somebody reported, which talks
about being able to get stuck on a surface like this. I'm trying to reproduce it
right now, but I think it was fixed. The reason why I left that bug open
is because, again, in line with the tradition
as a tester, you don't just close bugs
because you don't see them once. If you do that,
then you forget about them, and they will pop out one second
before the release, right? I prefer to leave
a bug card open and kind of keep an eye on it, and maybe every now and then
test the bug, and then if I really
think it's fixed, then we'll mark that card
as resolved. Actually, when I was working at EA, fun fact, the bugs
had like a lifetime, and when the bug was open,
and then you will test something and kind of close it, us, testers, we couldn't mark the bug
as resolved. We would mark the bug
as claim fixed. It's like we claim it's fixed. But it doesn't necessarily
mean it is. And then they would run
an extra round of QA and they would mark the bug
as fixed verified, which was another state where QA
has put the signature and said, "Yes, it is actually fixed." I'm trying to reproduce the bug
and I can't do it. I'm pretty happy with the fix
that we merged into the project. Nice.
[AMEL] Looks nice. [CHEMA] Awesome.
We can claim it as resolved now. I had a video,
you're watching the video of, I think it's the fix that we
implemented from one of the users, dstasio, and he created
a very nice testing ground to check that the character
would slide down. One of the very first
contributions to the project. [CHEMA] Mm-hm.
[AMEL] This looks great. Can we take just a question, Ciro,
before we move to the next part? [CIRO] For sure.
[AMEL] Yeah. We have a question:
"Where could I get the Assets like the 3D models
of the player and all?" Everything is in the Git repository so people should
be able to get them because it's
open for everyone. But just saying that these are not
the final Assets so we're going to,
of course, update them when we have the real final Assets. You can get this version,
if you want, of the project, of course, but we will also update those 3D Assets for you all
so you can have them. Actually, I don't know
if anybody noticed, but those Assets are coming from... [CHEMA] The Karting game.
[CIRO] The microgame, yeah. Karting Micrograme.
[AMEL] I love that game. You have the tree
and there's structures. [AMEL] Yeah, I use it
a lot as well. I just put them in here
as a placeholder as I was prototyping. [AMEL] Yeah. There's also
another quick question: "Is it possible to contribute
if I'm still learning C#? I already know programming,
I'm just new to C# and Unity." Well, yes, I mean,
the most important goal, I would say, of this project
is to learn. If you want to learn,
this is the opportunity, just jump into the boat with us
and go on. Yeah, I also want to mention,
there's a very interesting activity on GitHub in the pull requests where other members
of the community are reviewing other people's code. Sometimes, we might
not accept your PR, so your code doesn't make it
into the game, but somebody else might give you
a review of the code, so you learn also through that. It's a really interesting
phenomenon. And I have to say,
I'm really thankful to those users. I don't remember all the names
and I don't want to make a list because then I forget somebody.
[AMEL] Yeah, true. <i>@HyagoOliveira</i> is one
that comes to my mind. He's been so active in the reviews,
super nice, and super helpful to me and to us as well
because he helps us get rid of a few wrong
lines of code and mistakes that would have bitten us later on. Thank you so much
for that everyone. Yeah, thank you, all. Cool. Do we want to see something
more visually appealing? [CHEMA] Yes. I think so. [LAUGHS]
[AMEL] I'd love to. I think that people want to see
something that is better. [LAUGHTER] Something that is better. Yeah. Better than
the graphic there. I think that some other graphics,
do you have that, Ciro? Yes. I want to talk about
the Toon Shading, which is like another front
on which we started. Again, like Character Controller
and then on the other hand, we're working on the shading
of the project. [CHEMA] Awesome.
[CIRO] The thing you're seeing here was me making some
early experiments. And we're going for a toon look, cartoony look,
some people call it ramped. People call it different ways
and it's basically the idea of having the lighting as
two or three shades. Instead of having a smooth
transition from light to shadow, the transition is harsh
and is like a painted line, which you usually see in some
cartoons and especially manga. Right?
[CHEMA] Yeah, exactly. Here, you're seeing a little demo
of the things that I was doing. But I can show you
directly in the project. Let me open... There's actually
several parts to this technique, and I really wanted to give you
a bit of an overview of what I'm doing. Part of it is... Let me see. Let me go in this Scene here. This is exactly the Scene
that you were seeing in the video. It's kind of like my playground. Here I have this series of spheres,
here to the left, which I think they're static. These ones are dynamic. And then you have a bunch
of spheres casting static shadow
on these ones. And then you have
a series of lights. Basically, I was trying to simulate
all lighting scenarios. You have mixed lights,
you have some other lights, which are mixed with shadow,
mixed with no shadows, and this is kind of like
the testing ground. I was working on this Shader,
which basically has, this is for the character,
and as you can see, this is a dynamic object so
if I move it, the lighting changes and the shadow follows. This is trying to replicate
the style that we had in the... in the concept art.
[CHEMA] In the concept art. Exactly. Thick black lines
on the outline, lines on the inside, and then the shadows
are like Toon, as I said. And what else? And then
the black shadow on the ground. So this resembles...
[CHEMA] That's so awesome. I want to show you very quickly. [CHEMA] It looks like it's drawn. Yeah. That's the
concept art, right? [AMEL] Yeah.
[CHEMA] Yeah, exactly. And then this is
kind of the result. But actually, this model
was a placeholder as well. You'll find it in
the project right now. If you download the project,
you'll find this model inside. By the way, it's not rigged yet. [CHEMA] Will we find
also this Scene? Yeah. Everything is in there. [AMEL] We have a question
in the chat, sorry to interrupt, but people are asking
if you made this with Shader Graph. Maybe you want to answer them. Actually, I wanted to give
a small demo. Let me give you a small demo
of how we made it. If I select a character,
and I open the Material, and I click Select Shader,
I have here a CharacterToonV2. Actually, let me show you
something else first. I did this process in steps. The thing that I was doing first
was to try and recreate a Shader in Shader Graph that will
allow me to control lighting. For that reason I created
this first draft, which, as you can see,
is called Custom Lighting. And this is not Toon yet,
this is not a cartoony shader. This is just taking the lighting
from the Scene and putting it in a pipeline
where I have full control over what I'm doing with it. If you see here from the left,
we have a Custom Function node, which harnesses the Main Light
of the Scene, which is the Directional,
and kind of sends this data off. The lighting model is a dot product so I'm working with the vectors and where the light
hits the surface is white, where it kind of goes
tangential, it's 0.5 and then on the other side
is black, zero. And, again, I take these data
and I send it off to this thing, which multiplies the shadows
with the color of the light, which comes from the node
we saw previously. Here we have some
additional lights. This basically allows me
to have all of these lights that you see here. The additional lights,
which are not directional, and then we have real-time shadows
on baked geometry, which means this character, the shadow that he's casting
here on the plane. And then we have baked GI. And then finally, we go to
the final node which is Unlit so this is not PBR material,
it's not a PBR workflow, it's just kind of like flat shaded. But then because I do all
of these transformations, I make it lit. This is kind of like the base
thing that I started from. And then I kept working on it. And put, for example,
an extra step in here. If this is the shadow
that goes to this node, before I use this shadow,
I transform it and I make it cartoony. If you open the CharacterToonV2... Three, two one, there we go. This is actually the Shader
that we're seeing in the Scene. So it's not that complicated,
although, I did use Subgraphs to get rid of a bit
of the complications. Basically, the idea is the same. Here we have
the main light contribution. Here we have the baked GI. Here we have the additional lights. And all of these are passed
through a gradient. You see here Sample Gradient,
Sample Gradient, Sample Gradient for the baked GI. Basically, I have several gradients
that I'm sampling, and with those, I'm creating the
custom look that I'm looking for. The main light, one gradient
that goes from white here to a certain shade of gray here. Then we have the shadow
on the ground, which goes from white here to black here so it just goes from
black, white to black directly. You can see it here. Where is the shadow? Subtractive shadow ramping,
there we go. This one, I can just say
that this is this shade of gray, save, and now it's a gray
and it's not a black. Now you have full control
over the lighting. [AMEL] Interesting.
[CIRO] Put it back, save. Go back and there we go,
and so forth. And then you have
the additional lights. I want to show you how cute it is
when we actually... What did I do here?
Point Light. For some reason, the gizmo has...
decided to go crazy. But you can see how
the Point Light comes in and creates an additional ramp
on the character, and then you have the specular
that comes in. The specular is this little spot
here, which is also ramped. [AMEL] That looks great. Still working on it. Grab the project
and give us some input. Play around with it and if you
come up with a better solution, we'll take it.
[AMEL] Yeah. [LAUGHS] Again, Open Projects, right?
[CHEMA] Yeah, exactly. [AMEL] Also, Ciro, since we are
talking about graphics, we have a good question here:
Are we using a GRP or URP or none? We are actually using URP,
the Universal Render Pipeline. This allows us, of course, to use
a lot of tools like Shader Graph because they are compatible
with the SRPs, and we didn't need to use a GRP
for this project because the graphics that we have, we think that URP is just as
sufficient for that, I guess. Do you have anything to add, Ciro,
maybe on this aspect? [CIRO] Yes.
[AMEL] Yes. [LAUGHS] And we have,
"How long will this project take?" This is another question. We foresee a good
six months of work. We think that we will
be done in March. And when I say done,
we're talking about... Let me put my big face
on the screen. We are talking about kind of like,
and don't get me wrong, this is not a full game,
we specified it in many places. What we are aiming for here
is kind of create a vertical slice. [AMEL] Vertical slice. [LAUGHS]
[CIRO] I really love my... [AMEL] Yeah, I love this move.
[LAUGHS] But they removed it
from the trailer. But yeah, Ciro used to show this
in the trailer, but unfortunately, it was cut,
so I'm glad he did it live now. [LAUGHS]
[CIRO] We will have a... I can do it here actually.
A vertical slice, which you can
see it as a small game demo. Like, imagine you're launching
a Kickstarter campaign or you're creating something
which you want to take to a game show and you want
to show to publishers, that's what we're trying
to create here. The finishing line,
we hope to get there around March. By March, we.
[CHEMA] And... yeah, sorry. Tell me, Chema. Tell me everyhing. [LAUGHS] The other
question actually, to continue on what you said is, "Will we be publishing
these games?" Yeah, that's the plan. Let's see. If it turns out terrible, I will
personally block the publishing with my body.
[CHEMA] Yeah. [LAUGHS] But also, with the same body,
I will make sure that it doesn't, so yeah, we hope to do that. And then with that, we also want to credit everyone
who contributes on the project. I'm actually maintaining
a super long list of people who already jumped
on the code, on the art, but also people who review code, and people who put issues in,
you will all be credited. We plan to credit everyone who puts
their contribution in the project. Because it's all important, right?
[AMEL AND CHEMA] Yeah. Amel, you mentioned the QA before, so towards the end of the project,
we will do a lot of QAing and some people will just download
not even the GitHub project, they will download the executable
and put an issue on GitHub, and we will credit everyone. Of course, totally. And I'm looking here,
some people are also asking if we decided the title yet.
Guys, you're not late to the party. You can still contribute.
You can go to the thread and you can contribute
and give your name suggestion because as we said
earlier in the stream, we are still making sure to fix the
final idea of the game and scenario so we will decide the name
just afterward. Feel free to go to the thread
and suggest a name for the game. And it's super honest,
I don't even have an idea of what kind of title, seriously. I haven't thought about it,
and I don't have a favorite. The only thing I would say is that
I want the pig to be named Hamlet. Hamlet.
[LAUGHTER] [CIRO] That's my request.
[AMEL] Yeah, I saw that. [CIRO] And that's it.
[LAUGHTER] Otherwise, I'm out. I will try to take this into
consideration when we review it. [LAUGHTER] Ciro just disappeared and... [LAUGHS] It's like...
come back again. [CHEMA] We should continue. I'll just show you a few extra
things on the Toon Shading. So where are we? Oh yeah, the outline, actually.
[AMEL] Yeah, that's a good point. The outline is also part
of the Shading. As you can see,
it's like an extra pass on top of the Toon Shading. And I had a different Scene
to test it out. The outline is basically done by having
the Universal Render Pipeline output an extra pass with a texture that shows
depth and normals. And I don't have a way
to show the texture right now, but you will see
Settings > Graphics... here, that the Renderer used
in the pipeline, as you can see here, it has a
Depths Normal Feature, which is like a new pass,
which is outputting this texture. And I want to thank Alexander Ameye who made a fantastic tutorial
about it on his website. I took a bit of that.
This is also an open contribution. And, of course,
he put it open as well. I didn't steal. Not this time. With that texture,
then we can create this Outline. And if you see here,
the Shader actually has two values. One is called Depth Sensitivity, and one is called
Normals Sensitivity so you can individually control
how much the depth and the normals affect the creation
of this Outline. For example, if I were to go
all in with the depth, you will notice that places
where the depth changes, for example, the band
on the head of the pig, create a black line. If I do the opposite, normals,
then you will see the change only where the normals
differ a lot. For instance, here on the
attachment of the nose, you see a line.
If I go with the depth, you see no line because this
is not a big change in depth. But if you play with a bit of both, then you get some
really nice result. We will need to tweak these
a bit further. When you use this one, you
combine it with the other Shader. If I go back to the Scene, Toon Shading, and I find the pig, in the Shader that
I showed you before, which is the final version, here, again, I have
the Outline contribution, which is multiplied on top
of the Toon Shading, and that's the result
that you get, right? [CHEMA] Mm-hm. [CIRO] And finally. Chema, tell me.
[CHEMA] Yeah, and. Actually, I wanted to remind
everyone that they can find this project in the GitHub if they want to play around
with the values, see the Shader, or anything. Good.
[CHEMA LAUGHS] And finally, I want to show you
one final thing, which is some Assets
which just came out from the Asset Pipeline. We're working with some artists
to create some initial Assets. Again, we want to define the look,
we want to define the direction. Once we have this direction,
we can start accepting contributions on the art. One of the things I'm asking
the artists to do, and they really hate me for that,
is like simplify. Like, let's have only albedo so that people can just
make a model and paint the texture, and then put it in the project.
They don't need to go through any complicated pipeline. That's my request. And as you can see, we have these
little rocks, we have this tree, which we're still working on, and they also sport a Toon Shading. They also have some extra details.
[CHEMA] That looks really awesome. And then we have the pig,
and you will notice that this is actually
like the final version. You like it?
[CHEMA] Yeah. [LAUGHS] [AMEL] It's so cute.
I love it. [LAUGHS] The other one was a bit...
It was okay. I think it was nice, but the other
one was actually done very quickly. If I copy it
and I put it in here, you can see the two cousins
next to each other. [AMEL] Mm-hm.
[CHEMA] Mm-hm. There we go. This was the original one,
which was pretty nice, but it was more flat. [CHEMA] Yeah,
it was lacking some details. Yeah. This is the final one, which has a bit more extra details,
extra shading, so it's really nice. Again, it just came in
so we're still rigging it, but I will push this to
the repository pretty soon, and then you can grab it
from the Assets. So yeah, this is the protagonist,
this is the background. As you can see, it has no lines. It could have lines,
but it has no lines. And now it's not working.
Ah, yes. Outline Thickness. [CHEMA] Awesome. That's the idea. Yeah? [CHEMA] Awesome.
What are the next steps now? The next steps... Let me think. Shall we show the roadmap? Yeah, we could. The next steps, I think,
let me just give an intro, I guess. I would say, again, we've been
working on the basics, on the Character Controller,
on the style, we have art Assets
coming in, finally, so I think the next
few steps for us is going to be starting
for real on the art, and, again, opening it
to the community. I'm going to soon push
these Assets to the repo. Sorry for the delay. And I'll update you
on the forums about that, and then you can start
to take them and dissect them, and start contributing and making your own additions to the game because we have a certain set
of Assets coming in, but we would need more.
It would be nice to have more. And I was thinking, actually, one
thing that we didn't think about, because this is more or less
like a cooking game as well, a set of kitchen utensils
would be super cool. [CHEMA LAUGHS]
[AMEL] Yeah. Like pots and frying pans,
I think they're going to be super useful to decorate
the environment since we have a cooking festival
going on in the game. And again, if you want to know
what I'm talking about, I'm talking about the story, which
is accessible on the roadmap here. Ciro, so we see now
the roadmap, right? What are you going to do now
is show us the current state, and then maybe talk about
what's coming up next, right? Yeah. Sorry, I wasn't
showing the roadmap. I'm showing it now. So as I was saying,
the next steps are these. We have next steps
on the Code as well. We are working on deciding
what to do about the State Machine. We have, actually,
five or six PRs in flight about the State Machine.
Super good contributions. They're very complex so they're
taking me a while to figure out. But we have Proryanator, Neonage, kcastagnini also made one, there's a few of them. Now we need to kind of decide
which one to take in and it's proving to be
a bit challenging because we really need
to make sure that it works, that it's a bit future-proof. But we'll do that.
[CHEMA] Yeah, it's maintainable. Yeah, we'll do that, and then
we'll start connecting the pieces, and we'll unlock more
programming tasks. But I do have some tasks
that I can unlock right now. Should I do it?
[CHEMA] Oh, yes, please. [LAUGHS] Other cards to add. [AMEL] Showing your cards.
That's great. [LAUGHS] Just give me one second. While you are doing this,
we have a question: "Are we going to implement
Dialogue for characters?" Yes, and there's a card there,
tasks for it. You can find them, I think, in,
I don't remember the correct deck, but I think it's
Dialogue and Narrative. I think it's
Design and Narrative. Yes. Design, sorry, yes.
There are some dialogues. There's already a thread
open for that. But don't forget, the dialogues are
inherently connected to the story. Because we're reworking the story,
we haven't started dialogues yet. But I think we have
a good draft for the story now. You can actually go in
and create some mayhem, I guess. [CHEMA] [LAUGHS] Yeah. I'll show you very quickly
the private part of Codecks, which is this one. You see this is the public one
that you see, and then this is the private,
like the backend that I use. Now, I'm going to unlock
a few tasks. To do that, I basically hid them
here in the... as what do you call them...
archived cards. I'm going to take
and unarchive them. One, Audio system.
I'm going to unarchive these ones. [AMEL] Whiteboxing, yes.
[CIRO] One, two, and three. Whiteboxing,
we're going to work on that next. Now that we have a vague idea
of the environment, we can start whiteboxing
some stuff. And then I wanted to also start
working and discussing about skyboxes.
I'm going to unlock these ones, and then this is a bit explorative, it's about the icons
for the inventory, like what should they be. I'll unarchive this one as well. And then the Game logo,
I archived this before so I'm just going
to unlock it again. This is a bit of a long-term task,
I would say. If we don't have the title, we are not going
to be able to create a logo, but we can start making
experiments on the art style. And then what do we have next? The UI Wireframing, Chema,
this is your specialty, right? Yeah, I'm happy to do this
as soon as possible, actually. I want to start working on that.
Do we have a thread for it? [CIRO] Yes.
[CHEMA] Oh, okay. [CIRO] I created it
so it's linked here. Yeah, I'll discuss it
with the community and see what they're expecting
and things like that. [CIRO] And I think that's it.
[CHEMA] Also, I think, it's... I don't know if we said it or not, but I think it's good if we say that we don't assign
the cards to a person, we don't assign a task to a person, we assign it to the community if one of the community
wants to partcipate on it. We don't say like,
"You have to do it." It's just that if someone
wants to contribute to it, we say that it's assigned
to the community, and we start a thread for it for everyone that wants
to work on that. [CIRO] Yeah. Very good point. Yeah, it's something
to keep in mind. We can't accept
everybody's contribution. We will have to choose at the end,
but we encourage making a few variations.
And that's actually why I always point out,
number one, discuss, so instead of making it first,
you bring your discussion. Number two, make small things
because then you can see if they make sense. In some way, you also have
a bigger chance to get in if you make a smaller thing. If you make a huge thing,
then I and the team, Chema, Amel, we need to think
about it for a while. The smaller you make something, the easier it is for us
to approve it. It's not any kind of threat
that I'm doing or something. It's just, that's the way it is, that's the way this project works. It's unfortunate, but we need
to read into every single PR and contribution. And we have a question: "What is the license on all
the code written and art created? If I see code or shaders I like,
can I take it and reuse it?" Yes, you can because
this project is provided. You find the license here
in the repo. If you go here, you will notice
there is actually just a regular Apache License 2.0, so it's a classic
open-source license. And here you can see all the
permissions and the limitations. Basically, what this is saying is,
yes, you can use it for what you want,
even for commercial work. You can't trademark it, so you
can't trademark what we made. And you just...
I don't remember what this is. But yeah, go read it,
it's all written in here. Anyway, it's an unmodified
Apache 2.0 License, which if you contribute
something to the project, your something also becomes
open source like this. Everybody else can also use it. It's like you give it me,
I give it to you kind of thing. [AMEL] Great.
[CHEMA] Yeah. We have another question:
"Can we vote for contributions?" "Can we vote for contributions?"
What does this mean? When you see pull requests,
for instance, you can comment that or you can put a thumbs up
if you want. As we showed earlier
in the pull requests, let's open an example
and you can see, you can react to each other's
comments on pull requests, you can put some comments. Somehow you can
vote if you want, like if you approve the idea,
feel free to mention that, or if you have things
to suggest or modify, you can do this as well, I guess. I would say it's also good
to do it in the forums. In official discussions
you can always do that. And by the way,
I unlocked the cards but I didn't unlock the threads. [AMEL] Let's do it.
[CIRO] Shall I do it right now? [CHEMA] Big reveal. [LAUGHS]
[CIRO] This is all mine? Yes. [AMEL] Now it works. [LAUGHS]
[CIRO] Approve Threads. Done. [AMEL] And you're good to go.
[CIRO] Now, we can discuss. [AMEL] Press F5 to refresh.
[LAUGHS] Press F to refresh, yeah. Cool. I think we're getting
close to the end. Now, it's really the time
for questions. If you have questions, some
final questions on the project. I think we are answering
the questions, I mean, throughout
the presentation. I don't think that we have anyone. People are saying hello.
Hi, everyone! [AMEL] Hi. "Can I participate
as UX/UI designer?" I think you can
if there's a card for it, yeah. I literally just unlocked
the card. Where is this? In Design and Narrative. It's actually behind the tag,
but you can see it here, UI Wireframing,
so that's one way to participate on the conception of the UI. You're going to be
challenging Chema. [AMEL] Yeah.
[CHEMA] [LAUGHS] Exactly, yeah. [CIRO] You're going to be
challenging this person. [LAUGHS] Hi. No, we're not going to be
challenging each other, we're going to be working
with each other, we're going to be contributing
in the same task. I also see a question...
I'm anticipating Amel. No, you did it.
[CHEMA LAUGHS] "Will it be totally single player?" Was that the question
you also were referring to? [CIRO] Yeah, so Rahul is asking "Will this game
be totally single player?" Yes, it will be. We didn't want
to complicate things too much. It would be super challenging
to make a multiplayer game, because if you think about it,
every time you want to try it, you will have to kind of spin up
a server or have some players. For this first edition,
we wanted to keep things simple, and we wanted something
that you can literally, like in the middle of the night, I mean, it's never night
everywhere, but you can just download and play on your own machine
from start to finish. Even if you're new to the game,
you just download the project or the executable,
and I don't know why I have Amel on-screen
as I'm talking. [LAUGHTER] And you test the whole thing
from start to finish. In the future, let's talk,
let's have a chat. [LAUGHS] Let's get to the end
of this project, and then we can talk about the
next steps and the next projects. Will be cool to make a multiplayer
game, for sure. Yeah. Awesome. So yeah,
if we have other questions. Yeah, the project is made in URP. I think we discussed it
when we showed the Shader Graph. Yes. If you want to know
which packages we're using, if you're curious, let's see,
how do I show you this? I can show you
the Editor, actually. Where is my Package Manager? [CHEMA LAUGHS] ♪ <i>Give me the packages</i> ♪ This one. Come on. Do you see my screen?
Ah, there we go. I see it now. We are using Addressables, we still need to implement it for Asset loading,
making builds faster. We're using Cinemachine, of course. It's an action-adventure,
you want a camera that feels nice. We're using the new Input System. And actually, I have it here,
I haven't used it for the demo, but the game supports gamepads
and we want to make it like a central way
of controlling the game. Awesome. That will be
with the new input system? [CIRO] Yes.
[CHEMA] Oh, great. Then we have Polybrush;
ProBuilder and ProGrids to model things and whitebox;
Settings Manager; TextMeshPro, of course, for the UI; we have Timeline because we're
going to make plenty of cutscenes; and yes, URP, and that's it. And then we have the integration
with the two... how do you call it? ID to make code editing better. [CHEMA] Awesome.
[AMEL] Yes. This looks great. Great. Thank you, Ciro,
showing us the Package Manager and all the packages
that we are using. I think that one of the things
in the contribution is that people don't need
to upgrade the packages, and don't need to add packages,
and we should take care of that just so that we don't have a lot of pull requests, push requests?
I don't know. [LAUGHS] I'm not the one
to talk about GitHub. [LAUGHS] Pull request. If for some reason we need to
upgrade any version of a package, we will definitely announce this
and we will do it from our side. Anyway, we are, again, on 19.4
so we're not chasing updates. We want to upgrade
only if it makes sense, and if it doesn't break anything,
and if it brings us some kind of improvement
in performance or bug fix. But I don't think we will have
a lot of issues upgrading things. That's the nice thing
of staying on LTS. If we get to a point next year
when it's like March and 2020 LTS is out, let's talk about it.
Maybe we want to upgrade the game. But I would say let's focus
on finishing it and wrapping it up, and then we'll talk about bringing
it to a newer version, which will unlock like a playground to test everything
that's new in 2020.4. [AMEL] Definitely.
[CHEMA] Yeah. We still have a lot of people.
That's nice. [LAUGHS] Wow, how many? I'm not sure about the number.
[LAUGHS] No worries. I was just curious. Any more questions?
We're getting towards the end. We don't have much more
to show for now in terms of the project. Yeah, we remind you
that we will be here in two weeks. We will have another livestream. We will talk about another feature,
and we will show the steps that we've already finished and the new steps that we will do. Yeah. The road is still long. That's why this show
is called The Journey. It's not Open Projects: The Instant
or Open Projects: The Day. It's The Journey
so it's going to take a while, which is the beauty of it, I think. Going back to one of the first
questions that somebody asked at the very beginning,
"What can I learn from this thing?" You could potentially not touch
anything on the project and still learn from the whole
journey and see how it goes. Just browse the forums
and see the drama. [LAUGHS] [AMEL] Yeah.
[CHEMA LAUGHS] We will give an update
every two weeks through this livestream so if you
just come for every two weeks, you can see what are
the progress that we made. Or just watch this thing, exactly.
That is a good point. You don't like to read?
[LAUGHTER] We will vocalize it for you. Vocalize it for you and keep the
best of the two weeks. [LAUGHS] [LAUGHTER] Nice. Yes. I guess we don't have any
final questions. "Is it 2D or 3D?" It is 3D. It's 3D, yes. With the Toon Shading
like we've shown earlier. I'll put some more concept art
in the meantime as we take the question, even if it has just
my dirty face on-screen. Now it has you as well.
[CHEMA LAUGHS] Let's play.
[CHEMA] Awesome. That looks so cute. And by the way, this is the chef.
This is the... oops Come back. This is the
resident chef of the town that you're trying to impress
with your cooking skills. And this bunny here
is the Bard Hare, which is one of your companions. You're going to fight these
little critters in the forest as you're looking
for ingredients and plants. And then this is an old concept art
for alternative characters. This was an old concept art for
enemies and Zelda-style enemies. And again, old concept art
for the critters. When I saw old, I mean,
just the first version, but some of these evolved
into the second version. [CHEMA] Yeah.
[CIRO] Cool. No more questions? I think people are asking
about the name. You can contribute
to the name in the thread. We are looking for
the title right now. I remind everyone about that. Yeah, I think we don't have
any other questions. I guess. And of course,
if you have any question, you can ask it as well
in the forum on the threads, so feel free. This is not
the end of the questions. You can still ask.
[CIRO] Actually, we're going to keep the stream
going for another maybe 10 minutes, and then you can still
hang out in the chat. We're going to actually answer some questions
in the chat as well. But we're going
to just turn off the cameras and start chilling, I guess. Somebody's asking,
Code Monkey's asking if we will accept contributions
made with Bolt. We're deciding about Bolt.
Could be that we introduce Bolt. The other thing I want to say is
if we don't upgrade the package, please don't contribute things with
introducing Bolt into the project. We will make the decision and then
once we decide that we have Bolt, yes, we will accept
contributions with Bolt. And I think the doubt here
is that things with Bolt are a bit hard to compare because when you look at
the comparison view, and the comparison between
two versions on GitHub, you don't immediately see
what the code is doing because it's in the State Machine
so you need to pull the code and check what's being done. While with code,
you just immediately see like, "Okay, this line changed.
They're doing this." That's I think where
the question is coming from. There's a thread on the forums.
It's called State Machine, I think. Go make your arguments
against or for Bolt in there because that's where
the discussion is happening. Can we start a thread for that? Do you think it's possible
to do that? You want to start the thread for? To discuss either Bolt or not Bolt? I think it depends on like...
[CHEMA LAUGHS] It's as easy as this. [LAUGHS] Do you want to create a new thread? [CHEMA] I don't know.
I was wondering. [AMEL] ...trying to achieve. If it becomes easier to use Bolt,
for instance, for State Machine or any other feature,
feel free to just say that in the thread of that feature,
and maybe we can decide if, for some reason,
we need to integrate that, right? Yeah. People can create the thread
themselves and start a discussion. It's fine. We're not
shutting down any thread. The only thing we ask you is, if you want to create
a thread for a task, make sure that there's
not one already. And when I say one already,
I mean the ones that have the Official tag. How do you know that?
You go on Codecks, you open a card, and then you see if there's a forum thread
linked here. If there's a forum thread,
that's going to send you to the Official thread. [CHEMA] Mm-hm.
[AMEL] Yes. Cool. We're three minutes
from an hour and a half. Do we still have people watching us
or am I speaking to myself and you? [CHEMA] I think we still have.
[AMEL] People are actually watching which is great.
[CIRO] Okay. I don't know if you
still have questions, but I think we can
start wrapping up. Can you actually hear the music?
[CHEMA] I had 750... You had what? Yeah, I'm lagging. [LAUGHS] No, it's okay. I saw
the stream speed going down. Okay, I think we're going
to wind down, I guess. Yeah, okay. We'll still be there
in the chat and as we said, you can still find us
in the forums. Totally. Okay. Maybe it's the time
to wrap up and say thank you all for joining us. That was really nice.
[CIRO] Thanks from Amel. [LAUGHS] Yeah. Goodbye, everyone.
[CIRO] Thanks from Chema. Thank you, everyone. And from me. Goodbye, everyone. Thanks for joining.
It was super cool to stay together
for such a long time. And again, we remind you,
in two weeks, we're going to be live again. Same channel, same place, Open Projects: The Journey,
Episode Two. [AMEL] Yes.
[CIRO] Bye-bye! [CHEMA] Bye.
[AMEL] Bye. ♪ [MUSIC] ♪