
Announcing Handmade Quake - jhack
http://philipbuuck.com/announcing-handmade-quake
======
jhack
There are already several episodes uploaded. The playlist is here:
[https://www.youtube.com/playlist?list=PLBKDuv-
qJpTbCsXHsxcoS...](https://www.youtube.com/playlist?list=PLBKDuv-
qJpTbCsXHsxcoSSsMarnfyNhHF)

~~~
beyti
Thank you. I would love to see him use twitch for higher value & experience to
subscribers.

~~~
ablation
Confused by this. Can you expand on what "higher value" and "experience" the
audience would gain from this being on Twitch?

~~~
beyti
compared to youtube, twitch is a streaming experience with subscribers can
comment on chat instantly.

I think, allowing subscribers to ask or comment instantly in what the caster
does atm is an amazing opportunity. And not suggesting the streaming twitch
over youtube because of same time follow up (as told in another reply), agreed
that it would be really hard to simultaneously replicate him.

------
joakleaf
I feel compelled to link to Michael Abrash's amazing and inspiring series of
articles written when Quake was developed (don't know if there is a better
link):

Ramblings in Realtime:
[http://www.bluesnews.com/abrash/](http://www.bluesnews.com/abrash/)

I read this while I was in high-school and worked on my own 3D engine in
parallel (inspired by Abrash's articles).

As this was written while quake was under development, you get the reel
feeling of the challenges they went through during development. Through "beam
trees", z-buffer, to finally end at the PVS and sorted edge rasterization and
mip-mapping technique that made the whole thing wrong smooth enough in the
end.

There is a similarly lengthy description of the considerations they had
regarding shadow maps vs. e.g. gouraud shading.

Carmack and Abrash's experience is very much trial-and-error and that's
inspiring, because you realize that they went down many dead ends in order to
find the right way to solve the problems. It's not some sort of divine stroke
of genius, but far more their determination that solves the problems in the
end.

Of course Abrash also mentions some of the uglier hacks.

~~~
douche
Another very interesting exploration of the Quake source is Fabien
Sanglard'[1]. He has done reviews of several of the Id games that have been
released.

[1]
[http://fabiensanglard.net/quakeSource/index.php](http://fabiensanglard.net/quakeSource/index.php)

------
jackhack
This looks to be similar to the Handmade Hero project
([https://handmadehero.org/](https://handmadehero.org/)) which I love, but
rather than building a modern RPG in the case of HH, Handmade Quake seems to
be focused on rebuilding that familiar classic shoot-em-up, step-by-step, one
line of code (and presumably one concept) at a time. I'm sure the folks at id
would be pleased, as they routinely opensource their games to share knowledge
with others.

These two projects are as close to a game development masterclass as one can
get.

~~~
stagger87
If your goal is to learn about game development, I would avoid Handmade Hero.
Over 200+ days into the project, and he still has a rats nest of a 90's era
style Windows code base. It's clear he didn't put any pedagogical thought into
the project. Masterclass is the wrong word to describe HH.

~~~
krapp
I've learned a lot of useful stuff watching the Handmade Hero feed on Youtube
- but I stopped trying to follow along directly after the second week or so.
Casey seems to harbor grudges against C++ and object oriented programming
(both of which he will expound upon at length) that lead him to pile
obfuscations and abstractions into his code that make it difficult to approach
as a student, and difficult to separate what should be best practice from
"stuff Casey does because anything other than raw C is a big dumb stupid."

And now that the series is 200~ days in, I know it would be futile to start
again from the beginning (assuming I only do one "day" per day) because by the
end of the year I still wouldn't know how to make a basic game. So I've gotten
into the habit of just watching the particular parts i'm interested in (such
as tiling, or fonts) and implementing them with SDL so maybe I can finish
something decent within my lifetime (although I should probably just use
Unity.)

That said, it is still a very good series, as long as you accept that Casey
Muratori and his methods are very _opinionated._

~~~
agentultra
Yeah... if you disagree with his objections to object-oriented programming and
design-by-abstraction you're going to have a hard time getting through the
series.

If design patterns are comfortable and understandable for you then check out
Game Programming Patterns[0]. It's a decent book.

However I agree with Casey's philosophy and the wider data-oriented design
approach to programming. C++ is not a great language. Zero-cost abstractions
are a myth. We should be thinking about the data and not about how to write
clever, abstract code.

[0] [http://gameprogrammingpatterns.com/](http://gameprogrammingpatterns.com/)

------
AlexeyBrin
What I find a bit disappointing is that this won't be a remake in the sense of
writing the code in modern C99/C11, but rather a copy/paste with comments of
the original code according to
[https://www.reddit.com/r/programming/comments/3xy110/announc...](https://www.reddit.com/r/programming/comments/3xy110/announcing_handmade_quake/cy90vnl)
.

------
cbd1984
These two sentences seem to be in tension:

> It is named Handmade Quake thanks to the inspiration of the Handmade Dev
> community, and following the spirit of their manifesto, we will be starting
> with a blank Visual Studio project, nothing pre-written at all, and file by
> file, will turn it into the source code that id Software released to the
> world in late 1999.

> The main goal for this project is to show you how full video games are
> actually built.

Modern AAA games always seem to be written around a pre-written engine. Yes,
the engine had to be written at some point, but it was likely a modified form
of a pre-existing engine, and so on, iteratively, until you end up with a
blank project you're writing in Turbo C or something similar which existed for
MS-DOS in the later 1980s, pre-dating Quake.

My point is, modern AAA game development isn't clean slate. It's modification
of existing code, which is a topic that seems rather under-emphasized in the
introductory programming literature. It would be interesting to see some
series of videos which were all about making a non-trivial change to some
large codebase which has evolved for a few decades.

~~~
binarycrusader
If you're trying to argue "pre-built" on the basis that they started with some
existing code, that defines almost all software, so does not seems like a
useful definition.

I think most commenters here would generally associate "pre-built" with the
licensing of an existing engine available on the open market. Such as Unity,
UE4, etc.

The very top AAA game studio actually use their own proprietary engines. For
example, EA uses the Frostbite Engine in many titles:

[https://en.wikipedia.org/wiki/List_of_Frostbite_games](https://en.wikipedia.org/wiki/List_of_Frostbite_games)

Even if I were to accept the strict definition you proposed, many of the
upcoming titles on PlayStation 4, such as Dreams and Tomorrow's Children are
essentially completely new game engines.

They're breaking new ground in rendering and gameplay technology and are as
reasonably close to "from scratch" as you're going to get at this point.

------
stevebmark
"The series will likely be starting right around the beginning of 2016"

I really hope you do this. I also suspect you have underestimated the
incredible workload this will be, and this shouldn't receive any hype until
you start delivering. It will likely take 1-2 days to edit and produce 1 hour
of video, and making a full game along with making full, good quality videos,
will take, well...good luck!

------
thyagobr
So this is another Handmade series that you need to extrapolate knowledge if
you want to follow on Linux, right? Nothing against it, of course, but, since
I'm new to game programming, trying to learn SDL as I learned this stuff back
in Handmade Hero was a huge pain, I couldn't get past the 14th episode or so.

~~~
agentultra
The port to Linux will happen later. I forget the exact episode Casey
justifies this but basically the problem for game developers is that every
other platform other than Window is not a good target platform if you want to
stay in business. So he's showing people how to target Windows first and will
show us how to port later.

Just go look at the Steam hardware survey to find out why.

------
sutro
I would encourage Philip Buuck to call the series _Artisanal Quake_.

------
bcherny
seems that at some point source will be here
[https://github.com/philipbuuck/HandmadeQuake](https://github.com/philipbuuck/HandmadeQuake)

------
jokoon
I predict that this won't be for the feign of heart.

------
OliverSadie
_applause_

