I think the frustration that some on this thread have with HMH is that, on the spectrum of infinite engine-feature creep to shipping a working game - HMH seems (to many of us) to be leaning towards the former. And yeah I get the explanation that it's all about the tech, so who cares when it ships? But this approach totally ignores the concept of momentum and its role in human psychology. In order for followers/potential followers to get pulled in and not lose interest, the project needs some kind of momentum, a beginning-middle-end. If people sense that it's derailed, somehow "staled", or has no ending in sight, then they're far more likely to lose interest or never come around in the first place. I greatly love and enjoy HMH and just want to see it stay on track and continue to flourish.

NelsonMandella In order for followers/potential followers to get pulled in and not lose interest, the project needs some kind of momentum, a beginning-middle-end. If people sense that it's derailed, somehow "staled", or has no ending in sight, then they're far more likely to lose interest or never come around in the first place.

People not following (or stopping following) Handmade Hero because they don't want to spend time doing engine programming is good, not bad! This is not a popularity contest. We are not measuring Social Media Engagement Metrics(TM).

Engine programming is not for most people. Handmade Hero's engine has now had approximately 15 weeks of development time total. Including explanations. That is around, oh... maybe 1/100th of the number of man-weeks that go into a real game engine? So anyone who thinks 15 weeks is long in the tooth should steer wide and clear of engine development, that is for certain! If you think Handmade Hero has too large an engine codebase, or that it has "feature creep", or that it doesn't have "razer-sharp focus", heaven help you if you become a developer on a major game engine. The number of features in a general-purpose engine like Unreal or FrostBite is an order of magnitude larger than what we are dealing with here and several orders of magnitude more lines of code.

cmuratori People not following (or stopping following) Handmade Hero because they don't want to spend time doing engine programming is good, not bad! This is not a popularity contest. We are not measuring Social Media Engagement Metrics(TM).

It's a false dichotomy to equate a thoughtful consideration of follower numbers, engagement and accessibility (for your target audience), with the pandering of a popularity contest. These things exist along a continuum and all streamers are forced to consider them to some degree.

cmuratori Engine programming is not for most people. Handmade Hero's engine has now had approximately 15 weeks of development time total. Including explanations. That is around, oh... maybe 1/100th of the number of man-weeks that go into a real game engine? So anyone who thinks 15 weeks is long in the tooth should steer wide and clear of engine development, that is for certain! If you think Handmade Hero has too large an engine codebase, or that it has "feature creep", or that it doesn't have "razer-sharp focus", heaven help you if you become a developer on a major game engine. The number of features in a general-purpose engine like Unreal or FrostBite is an order of magnitude larger than what we are dealing with here and several orders of magnitude more lines of code.

Obviously the codebase is miniscule in absolute terms. But we're here talking in the context of a finite streaming series that, in theory, will conclude someday. And you can't meaningfully compare the number of man-weeks that go into a real game engine, with the length of a streaming series about game engine programming, in order to then suggest that your target audiences' attention spans can handle it.

cmuratori if you just want to ship something that is the same as something else

Where'd this come from. Nothing of the sort was said or implied.

cmuratori it seems like a lot of work to do if you only cared about shipping a game and that game didn't need to do anything new?

False premise. Last time it was about wanting to be a part of a cog machine.
This time about wanting to ship something that does nothing new.

Peculiar that it gets brought up - since it can be argued on similar grounds, that HMH is "cranking out just another general purpose engine" straight from the cog machinery. There are plenty of those!

And how exactly does that enable creating "something new" as opposed to making tech which fits a particular game to a T?

At the moment, I don't see how HMH inherently comes distinctly ahead in either of those aspects.

The parts "which make Unity appealing" are exactly the parts which enable rapid prototyping (of both tech and gameplay) - instant feedback and fast turnaround times.
Tech which fosters creativity and experimentation.

Those are exactly the kind of tech parts which I purport are the ones worth doing (when making a game without using an engine!). Not the schmancy lightning or other purely "tech for the sake of tech", general-purpose kinds. Unless the lighting or shadows are a fundamental part of the gameplay or a key part of the aesthetic art direction.

But enough of that. The message has been heard loud and clear that HMH is indeed a general-purpose game engine programming thing. Skewed heavily toward the triple-A side of things. And it is really good source for that.

Casey's decisions make perfect sense if the objective is creating a general-purpose engine thing, not a game. And that's a perfectly valid direction to take.

On the surface level HMH presents itself as a "make a game from scratch without libs" kind of show. That's the source of confusion. As (a) "making a general game engine" vs (b) "making a game from scratch without using an engine" are quite different.

While the later involves fair amount of tech code (and there is some overlap), the focus ultimately is on the game and as such tech choices are way more tailored for a specific game at hand.

The parts "which make Unity appealing" are exactly the parts which enable rapid prototyping (of both tech and gameplay) - instant feedback and fast turnaround times.
Tech which fosters creativity and experimentation.

Do you work for Unity? I ask because you keep mentioning them and what you say sounds exactly like their marketing spiel.

There was an engine forum I used to post at several years ago, where this lurker would emerge to defend Unity whenever it was criticized. Just before the owner closed his forum off to non-paying customers, the lurker admitted he was an engineer who worked for Unity.

I mention it because I've been told that Unity spends a lot of money on this behavior, where they send their people out to competing engine forums, to try to lure their customers away to Unity. Unity's behavior reminds me of what Casey said in relation to C++, that marketing a bad product works better than making a better product.

I had two tries at using Unity among several other engines over the years and found it to be very shallow on features compared to something like Unreal. What Unity are really about is not selling their engine, they are about getting addictive personality types hooked on buying half price goods from their Asset Store. The store is where Unity makes the real money, not their engine, so the Unity engineer admitted, before the engine forums I mentioned above were closed off for good.

Unity's business plan appears to be similar to casinos, where it is only 2% of their customers, the gambling addicts, that make the casino profitable.

Casey, for the love of god please do not listen to those who question the direction of this series and are looking for a definitive 'end'. The content you continually post is absolutely invaluable and something which I have not seen in any other stream/video/book/whatever. Coming from a strictly C++ background, this series has given me some much needed perspective and has really shown me what is possible with not only game engine programming, but programming in general. I just wanted to throw in my 2 cents and hopefully help give you the fuel needed to keep this series going!

pragmatic_hero Casey's decisions make perfect sense if the objective is creating a general-purpose engine thing, not a game. And that's a perfectly valid direction to take.

It's not so much "general-purpose" per se, it's "difficult tech". The point of new programmers making a game from scratch is so that they learn how to do difficult things instead of needing to grab libraries or engines to do them for them. That's the point.

So I don't care if people learn how to make things "general-purpose", but I do care if they learn to dig in and explore technical topics. Handmade Hero probably won't do anything that is as hard as a real cutting-edge technical problem, just due to the time constraints, but hopefully it will show a lot of things that show the way to approach, experiment, iterate, etc. like you would need to do in a real scenario.

the focus ultimately is on the game and as such tech choices are way more tailored for a specific game at hand.

I am updating the Handmade Hero home page soon, and I can definitely add some text that makes it clear that this is not what we do on the series, so there's no confusion. Something that explains the goal is to be a stepping stone for serious engine programmers (not necessarily "general purpose", but definitely AAA-level), even though obviously we are not going to be making a AAA game for obvious reasons :)

Mór I get why the workflow of 3D engines is helpful, where you can drag and drop things visually, but when it comes to 2D those editor engines just get in the way.

I've also come to the opinion that 3D engines are a big waste of time, because the little indies can't afford competitive assets, and even mid-tier devs with millions more to spend, regularly complain that AAA companies run them out of business using superior production values. 3D is good for dreams, but little else.

I disagree with the notion that 3d engines are a big waste of time for indies. Look at the "competitive assets" of Minecraft, or Stephens Sausage roll. You don't need expensive assets to make something look appealing.

I disagree with the notion that 3d engines are a big waste of time for indies. Look at the "competitive assets" of Minecraft, or Stephens Sausage roll. You don't need expensive assets to make something look appealing.

An Indie has about as much chance of making another Minecraft, as he has making a hundred million playing the lottery. Exceptions don't disprove general rules, they prove them.

I have never heard of a Sausage roll, but I know players turn their noses up at games that don't have excellent production values. With 2D it is possible to compete with almost anyone on production values. With 3D it isn't possible to compete unless you work at a mega corp that makes FPS clones.

If you want to spend your youth on 3D that is okay by me, but I have been there done that and am no longer interested. Something I picked up from Casey is his love of simple methods and tools. I have extended that to games as well, so I'm now interested in simple 2D, so I can focus not on the art, or the tech, but on the game.

Edit:
If I had a time machine I would go back and tell my younger self these things: Don't monkey around with object oriented or C++ under any circumstances, just learn plain procedural C, and don't go near 3D. Then I'd give myself Casey's videos. Ha!

I have never heard of a Sausage roll, but I know players turn their noses up at games that don't have excellent production values. With 2D it is possible to compete with almost anyone on production values. With 3D it isn't possible to compete unless you work at a mega corp that makes FPS clones.

I don't think this is true at all, if anything the prevalence of successful 2D indies with very basic and simple graphics proves the opposite to be true. But maybe your idea of success is to realiably sell millions of copies, otherwise I don't understand why you are talking about "competitive production values". If anything I think simple or retro 3d-styles haven't been explored enough and offer opportunities for innovation and new styles of graphics.

I don't think this is true at all, if anything the prevalence of successful 2D indies with very basic and simple graphics proves the opposite to be true. But maybe your idea of success is to realiably sell millions of copies, otherwise I don't understand why you are talking about "competitive production values". If anything I think simple or retro 3d-styles haven't been explored enough and offer opportunities for innovation and new styles of graphics.

Yes, I am talking about selling copies. Reliably getting more out of it than what you put in.

I've already mentioned I've watched mid tier companies who made the kinds of games I used to enjoy, regularly complain they can't sell enough copies to stay in business, because they can't compete on 3D production values, and frankly I am bored with hearing it. They have been doing the exact same thing since the early 2000s expecting a different result and its really dumb.

Like most of the industry they've been fixated on 3D since Doom came out. They say it saves them time, yet their teams have been growing exponentially, their games look awful compared to their richer competitors, and they've been teetering on the edge of bankruptcy ever since.

Their games were far better in the late 1990s when they still used 2D, their teams were tiny by comparison and their business were still viable. Now these formerly successful people who used to run big companies have been reduced to e-beggars on the Internet and they have failed at that as well.

I found this thread while thinking about Handmade Hero in the context of my current game development life. I'm developing a fairly popular (~250,000 owners currently) Early Access game on Steam and have been working on a large aspect of the game that can't be released incrementally for about a year now with some periodic breaks for other updates and additions to what's already in the game. I get asked constantly about the state of the game and when's the thing we're working on coming. "What's taking so long?" "Is it abandoned?" Etc.

I've been thinking to myself having watched Handmade Hero on a side screen from when it started to now while I work that it seems to have stalled, gone of the rails, etc for quite some time. These is just the offhand thoughts I've had without really thinking much about it.

When people ask me those questions about how my games development is going I tell them the truth, we're working on the game every single day as much or more than ever and some things just take a long time.

With the features that seem to be taking a long time in Handmade Hero (e.g. 8+ months on lighting so far), I think this is a great example of what actual game/engine development is really like. Of course the episode count isn't that high as the frequency has gone down over the years, but in the context of casually watching the episodes it feels like a long time.

Casey might think differently about all this as he's thinking more about the actual man hours spent on the features vs the length of real world time, but regardless I appreciate that for people thinking about it how I was, perhaps this gives a good example of the difficulties and time-frames involved in game development. Particularly in the context of developing original technical concepts and ideas and the inherent exploration required within.

Most of us would probably love nothing more than for HMH to continue on forever, and at the current rate it's looking like it might. Every choice of what feature to include, and of how far to take it, involves a tradeoff. Lately HMH is leaning heavily towards technical/aesthetic purity and seems to be making very few compromises between doing things "right" and doing them in a reasonable amount of time (stream time, not man hours). Now perhaps I'm wrong, but I don't see anything resembling working gameplay of any kind coming together for at least another couple of years - which is just fine by me as I enjoy the deep dives into very narrow technical areas.

NelsonMandella Most of us would probably love nothing more than for HMH to continue on forever, and at the current rate it's looking like it might.

The only part about it going on forever that bothers me, is I would like to use parts of his code as a library to make 2D games. Unlike other libs out there it is possible to understand every line of it by watching Casey explain it. Also using his compression oriented method with his library, would satisfy my OCD. Since that isn't going to happen any time soon, I have resolved to get over it.

Every choice of what feature to include, and of how far to take it, involves a tradeoff. Lately HMH is leaning heavily towards technical/aesthetic purity and seems to be making very few compromises between doing things "right" and doing them in a reasonable amount of time (stream time, not man hours).

I couldn't discuss that as I will probably never get that far into it, however I'm quite satisfied with using the brilliant search feature to find the areas I'm interested in.

Now perhaps I'm wrong, but I don't see anything resembling working gameplay of any kind coming together for at least another couple of years - which is just fine by me as I enjoy the deep dives into very narrow technical areas.

If you re-watch Day 27 he discusses the design goals. The game is going to be procedural, with combinatorics and a fancy renderer, so I would not expect the gameplay part to be intellectually challenging nor take very long to cover, since it appears he has covered all the required components. However he did say combinatorics is hard to get right, so I can't be sure.

Perhaps if you say exactly what you want to be covered in the game play part. Gameplay covers a ton of things. Pew-pew!, collecting things, getting past things, talking to things, matching things, finding things, AI, etc, etc, etc.

#14933 Where is this headed? 7 months, 1 week ago
Edited by
Todd
on April 12, 2018, 9:45 a.m.

I've been following the series loosely (I don't watch every weekend but probably a stream per month or so and I've watched large numbers of streams in the past on YouTube) and I agree with both sides of the main argument here:

1. I agree with the OP in that, when I originally discovered/pre-ordered HH, the message I remember receiving from the web page and intro video was "we're coding a complete game from scratch." So I could see how now after 3-4 years of streams with lots of detail-oriented engine tweaking, people may be beginning to wonder what's going on.

2. On the other hand, I actually like the fact that this is the case. So, instead of seeing how this show ended up as a bad thing, I see it as a good thing because frankly, I find engine programming and the type of problems that Casey has had to solve on the stream to be interesting, entertaining, and educational.

I also find that I learn many general problem-solving skills, programming techniques, ways of looking at things, and even a sense of pace, despite the fact that Casey is obviously working slower as he has to explain everything.

I also appreciate the Q&As immensely.

So I guess my main point is, the fact that this is essentially a game-engine programming show could have been made a lot more clear at first, but, I can forgive that because I've enjoyed the show anyway and learned A TON...

I've learned so many things from this show that it has literally helped change my life and career - for the better. I've never even met the man and he's arguably done more for my life than many of my closest friends have.

Each episode is a mini lesson and I loved for example the episodes on Order Notation, SIMD, CPU Model, multithreading, etc...

In the grand scheme of things, programming is solving problems and I don't think it's valuable to sit around and carry on over the details... Yeah, it may tickle your pickle to see Casey solve problem X instead of problem Y, but you're still watching him solve problems with C programming whch IMO is the main attraction here.

I'm the smartest man in Athens because I know that I know nothing. ~ Socrates