Free YouTube Transcribe

Video transcript

I suck at finishing my games

Странный Кодящий Чувак · 1,565 words · 8 min read

Want to search this transcript, jump the video from any line, or download it as TXT, SRT, or VTT?

Open in the transcript tool

Full transcript

0:00You don't know how to finish your games.

0:03I know, controversial, but I do think

0:05that's a problem. And it's a problem

0:07that affects most aspiring game

0:08developers. Yeah. Yeah. I can't finish

0:10games either. See, we are alike.

0:12Smoothly gained your trust, didn't I?

0:14Let's take my case. I wanted to make a

0:162D survival game, so why not add a

0:18necessary procedural generation to it? A

0:20pointlessly complex character model.

0:22Cacti. How the hell did they even get in

0:23here? Project abandoned. And despite

0:25that, it seemed too simple to me. Even

0:27though in reality, it's completely not

0:29the case. So, I went to make another

0:30game, reading the board. This one I

0:32finished, released, and a lot of people

0:34actually liked it. Hell, even I myself

0:36when I have absolutely nothing to do,

0:37whether in the subway, an airplane,

0:39taking a will occasionally open up

0:41the game to beat high scores on the

0:42levels. Reading the board seems like a

0:44black ship in this context, but soon

0:46everything will fall into place. For

0:47now, let's talk about my current

0:49project. It doesn't have a name, but

0:51that's not the point. The point is that

0:52in one form or another, I've been

0:54working on it for almost 2 years at the

0:56time of writing the script. And if it's

0:57somehow not obvious, the game does not

0:59look like I've been working on it for

1:00almost 2 years. I'm terrified that this

1:02project will meet the same fate as the

1:04game before last and the games I made

1:05before that. I don't want that. So, I

1:08wondered what made reading the board

1:10stand out so much. Why was it the only

1:12one I managed to create from start to

1:13finish? I believe the main reason for

1:15this is adding a wider range of tasks

1:17and ideas to the game that I could have

1:19implemented on my own or in the word

1:21over scope or rather the opposite

1:23absence. Back in the very first video

1:25about reading the board, I said it was

1:27just a remake of the most generic and

1:29remarkable mobile time killer. It was

1:30called Ryder. Ryder is a small game with

1:32a simple idea. It already has a finished

1:35form. And copying something complete is

1:36incomparably easier than creating

1:38something of your own from scratch, as

1:40you know, or you think that you know,

1:41most likely. A lot of people

1:43underestimate the insane amount of time

1:45required to polish an idea that's

1:46completely new to them. What's more,

1:48even an idea that's been thought through

1:49from beginning to end often turns out to

1:51be less interesting after implementation

1:53than it seemed at first. And once that

1:55becomes clear, one of two things usually

1:57happens. Either you pile and plan

1:58changes and additions onto that already

2:00fully polished implemented idea. Things

2:02which by definition will have little

2:03connection to the core of the original

2:05idea or you remove the implementation

2:07from the game entirely. In the second

2:08case, it's obvious where the time is

2:10wasted. Come up with an idea, let it

2:11marinate, implement it, realize it

2:13doesn't fit the game, delete it. And in

2:15the first case, the time is wasted in

2:16all the unforeseen additions. Because no

2:18matter how hyper modular,

2:20object-oriented ECSbased JavaScript

2:22artificially intelligent your game is.

2:23You simply won't be able to bolt on

2:25functionality you didn't plan for

2:27beforehand as efficiently as you could

2:28if the whole thing had been designed

2:30from the start. And by the way, when I

2:32say waste time, I mean time wasted in

2:33the context of developing a specific

2:35game. Obviously, every time you

2:37implement something new for you, you

2:38gain invaluable practical experience

2:40that they couldn't have gotten any other

2:41way. That's not what I'm talking about.

2:43I'm talking about how by constantly

2:45piling new functionality on top of your

2:46ideas like this, you unknowingly

2:48multiply, and I'm not exaggregating,

2:50multiply the total amount of time you

2:52need to invest into making the game. And

2:54that's only one source of overcore. I

2:56haven't even mentioned the most obvious

2:57one. A huge number of major difficult to

3:00implement ideas right from the planning

3:01stage. And you remember what tends to

3:03happen to them after implementation,

3:04right? It's worth noting that for the

3:06most part, even ideas that seem trivial

3:08at first will gradually start creating

3:10new problems once you actually start

3:11typing them out. And solving those

3:13problems will often take more time than

3:15implementing the idea itself. That's how

3:16so many projects made by so many

3:18different people end up in the trash.

3:20And my projects are no exception. And

3:22now using all this information, let's

3:24think once again. Why was I able to

3:26finish already in the board? Yes, I

3:28added a few mechanics of my own,

3:30improved and fixed the things that

3:31annoyed me in the original, but at its

3:33core, it's copying a finished idea. And

3:36I believe it was exactly this simplicity

3:38that allowed me to finish my game. I

3:40didn't have to design the flow of the

3:41core mechanics, the gameplay loop, all

3:43the countless smaller ideas. Most of

3:45that work had already been done before

3:46me. Let's take something really simple

3:48as an example, almost primitive. Pong.

3:51>> Everyone knows Pong. It's basically one

3:53of the first video games ever. So, it's

3:55simple as a pair of cheap underwear.

3:56There is nothing to invent there.

3:58Whatever game logic existed half a

4:00century ago remains exactly the same. In

4:02a couple of days, in between bathroom

4:03breaks, I wrote Pong. I got into this to

4:05test my theory. Would even the simplest

4:07possible game turn out to have a

4:09disproportionately large number of

4:10unexpected problems during

4:11implementation? And oh boy, yes, the

4:14theory was confirmed on the surface.

4:15What do we have? Two paddles and a ball

4:17with a score counter. But it's unlikely

4:19that the first thing you thought about

4:20was calculating the ball's bounce angle

4:22of the paddle, which by the way

4:23shouldn't just equal the angle of

4:24incidence, or the opponent's paddle

4:26movement logic, because simply following

4:28the ball's Y value would be way too

4:29boring and predictable, or any of the

4:31many other pitfalls, some of which I'll

4:33tell you about right now, I won't. I

4:35wrote a script where I went into great

4:37detail about most of the non-obvious

4:38problems that came up, explained how I

4:40solved them and all that But then

4:41I somehow snapped out of it and realized

4:44that well that's not what the video is

4:46about. It's just a regular punk. But

4:48just to put things in the context,

4:49here's what I added. Smooth paddle

4:51controls, opponent movement logic, which

4:52actually turned out pretty interesting.

4:54Bouncing the ball at different angles,

4:56increasing difficulty over time,

4:57scoring, frame rate independence, and at

4:59this point you're good listening to me,

5:01so I'll stop. And if anyone is still

5:03interested in seeing the implementation,

5:04even though I'm pretty sure there are

5:06like a million different points on

5:07GitHub, I left a link to the repo in the

5:09description. However, to have something

5:11to actually analyze as an example, let's

5:13look at the controls. Not even the

5:14controls themselves, but one corner

5:16case. In some games, if you hold forward

5:18and then hold backward, you keep moving

5:19straight. In some, you start moving

5:21backward. In some, you come to a

5:22complete stop. And what happens if you

5:24release the backward button after that?

5:25What if you release the forward button?

5:27These are all questions whose answers

5:28need to be well thought out because

5:30there simply is no single correct

5:31answer. Each option fits its own case.

5:33For me, for example, the most suitable

5:35model was to have the paddle keep moving

5:36in the direction of the last key

5:38pressed. But for your particular game,

5:39the answer could be anything. Did I

5:41think about this beforehand? No. The

5:43need to think about it only appeared

5:45after I already implemented paddle

5:46movement. Adding the logic I described

5:48might be easy. But the problem is that

5:50there are going to be so many little

5:51additions like this things you never

5:53even realize you need that they will be

5:55enough on their own to make you wonder

5:57is this game even worth finishing? I

5:59certainly didn't expect a game as

6:00primitive as punk to require that many

6:02little additions. Now imagine how many

6:04there will be in a more complex game.

6:06And you have to understand that in a

6:07more complex game those additions

6:09themselves are going to be much more

6:11complex. Therefore, to fill all of this

6:13for yourself, I recommend each of you

6:14who has the same problem as me to write

6:16something simple, something that already

6:18exists. That same punk, Space Invaders,

6:20Breakout, Asteroids, Flappy

6:22Bird. Why not? Not an MMO RPG, please.

6:24And then when you see that project

6:26sitting in your repository, you'll know

6:28that it's a finished piece of software.

6:29You can add something of your own to it,

6:31but it's no longer necessary because

6:33it's a complete thing. You made it from

6:35start to finish. Only start working on

6:37projects that seem much simpler than

6:39what you think you can handle because

6:40along the way you're going to run into

6:42time-conuming problems that you couldn't

6:44possibly have thought of beforehand.

6:46That's like the moral of the video.

Recently added transcripts

Browse the whole transcript library

This transcript was generated from the captions YouTube publishes for this video. Get the transcript of any YouTube video atfreeyoutubetranscribe.com, free, unlimited, no sign-up.