Return Styles: Pseud0ch, Terminal, Valhalla, NES, Geocities, Blue Moon. Entire thread

Quake Con

Name: Anonymous 2011-08-06 5:13

John Carmack says embedded scripting languages with dynamic typing and hand-holding are bad for game development:

http://www.youtube.com/watch?v=4zgYG-_ha28&t=67m35s

Points to take away:

1) People who aren't really programmers shouldn't be able to make changes anyway, it just creates more problems than it solves, so need to cater to them.
2) Embedded language runtimes with GC, reflection, and dynamic typing aren't as scalable as C/C++ and have poor performance on modern cache coherent multi-core hardware.
3) Most existing scripting languages don't have designs that interface well with the fine-grained, high-performance task schedulers on modern multi-threaded game engines.
4) It's more difficult to perform large-scale static analysis on the code base to ensure a specific level of code quality using static analysis tools.
5) Functional languages aren't inherently bad, but it's difficult for large teams to adopt as most programming talent is more familiar with imperative/object-oriented/procedural programming. John Carmack says he's using Haskell and Ocaml in some of his own toy projects, but wouldn't even attempt to force the rest of the developers on an actual team project to adopt such a paradigm.
6) If no existing scripting language/runtime is viable, you have to create your own, but it takes a lot of man hours to build your own scripting language that meets all of your constraints and requirements, it's outside of the scope of most game development projects, so it's often just more productive to move most of your game code too the native low-level language that you're already using.

This is the real reason why many developers are dropping the ability to ship mods, because supporting mods means having a game that performs poorly and can't meet the designers and modelers visions.

Name: Anonymous 2011-08-06 5:23

>>1
dynamic typing ... more difficult to perform static analysis on the code base ... using static analysis tools.
GC, reflection, and dynamic typing aren't scalable and have poor performance
Carmack must be retarded. Never had any respect for this C++ jerk.

Name: Anonymous 2011-08-06 5:31

>>2
If you can't perform static analysis on large multi-million lines-of-code team projects, you're submitting yourself to a future with a lot of pain and suffering. Therefore, dynamic typed languages are bad.

Also, GC and reflection/dynamic typing does not scale. Do you think it scales? It doesn't. Time to perform a GC? Even with incremental so called real-time GC, it still needs to globally lock the heap when it performs a collection for it's given time-slice. And reflection/dynamic typing implies table lookups which implies cache misses, which leads to poor scalability.

It's obvious you don't know how modern hardware actually works.

Also, Carmack was a C only programmer for the longest time, he only came around to adopting parts of C++ mid-way through on Doom 3.

Name: Anonymous 2011-08-06 5:41

He said Rage is the best game they've ever made but it looks inferior to Quake 3. I bet you can't even rocket jump.

Name: Anonymous 2011-08-06 5:46

>>4
That's what I thought at first too, but it's actually the first game they've made with an open contiguous over-world and focused more on the game play, an in-depth story, much more adaptive AI, and 60 frames per second on all platforms including consoles. You can't fault them for focusing on the rest of the game other than graphics. You always hear people say "graphics don't matter, more game play." But as soon as you focus more on that, they turn around and are like "but what about the graphics, they matter!"

Name: Anonymous 2011-08-06 5:48

>>3
Please, learn about package interfaces and unit tests.

Name: Anonymous 2011-08-06 5:51

>>3
It's obvious you don't know how modern hardware actually works.
Nothing stops you from designing hardware supporting type-tagging and GC write-barrier. Don't see, why we should throw away good language design because of Intel's bad hardware design.

Name: Anonymous 2011-08-06 5:56

I hate SEPPLES but you have to admit that garbage collection is terrible. I think it's right to use it for intern development tools, but shipping programs using GC is disrespectful of the user.

Name: Anonymous 2011-08-06 6:01

>>8
hate SEPPLES but you have to admit that garbage collection is terrible.
Smart-pointers are even slower than GC.

shipping programs using GC is disrespectful of the user.
Manual memory management is disrespectful of myself.

If one prices his time and sanity more than CPU time, then one uses GC.

Name: Anonymous 2011-08-06 6:03

>>5
Graphics don't matter that much however looking good does and that's the artists' problem. For example I can safely say Super Mario World is a good looking game and so is Quake 3. Of course those game are also backed up by technical excellence since good artists typically work in places where good programmers also work.

While Rage does look good both visually and as a game it looks like it's playing it a little too safe. It's a modern shooter in a wasteland with some interesting weapons. The movement looks severely limited because it is a modern shooter. I doubt you'll ever see something as spectacular as this in Rage:
http://www.youtube.com/watch?v=RxVmWaprNDY
http://www.youtube.com/watch?v=r3xIglL3P_M

Name: Anonymous 2011-08-06 6:10

So, we'll see QuakeC 2011? Cool!

Name: Anonymous 2011-08-06 6:15

>>9
Smart-pointers are even slower than GC.
That's true, but proper and scarce manual intrusive reference counting performs very well. Of course, if you just use Boost pointers everywhere, it is to be expected to have terrible performance.

Name: Anonymous 2011-08-06 6:26

>>12
This, plus you don't even need to use reference counting for most things, you just enforce strong ownership rules and use reference counting only where needed.

Why do all of the enemy game entities in a game  need to be reference counted, for example, when their life time can be managed at the granularity of the level itself. When you unload the level, you destroy all of the game entities which are in an array or list or some other data structure.

Thinking you need reference counting is more of anti-pattern that is the result of too much object-oriented programming or programming with GC.

Name: Anonymous 2011-08-06 6:36

Not this thread again.

Name: Anonymous 2011-08-06 6:39

>>14
Yeah, the GC advocates just don't know when to stay down, they keep getting back up to get owned some more.

Name: Anonymous 2011-08-06 6:51

>>15
Not you again.

Name: Anonymous 2011-08-06 7:57

>>16
Not you again.

Name: Anonymous 2011-08-06 8:34

Not you again. ++;

Name: Anonymous 2011-08-06 8:47

S'funny that Apple added garbage collection, then immediately went fuck that shit and replaced it with compiler-instrumented automatic reference counting.

Name: Anonymous 2011-08-06 9:06

>>19
It's not compiler-instrumented reference counting, it's all done in the Cocoa base library with the NSAutoreleasePool class and the release method in the NSObject base class. People need to stop confusing languages with their libraries, this behavior is rampant in this board.

Name: Anonymous 2011-08-06 9:13

Name: Anonymous 2011-08-06 9:24

>>21
I see. Honestly, I wouldn't touch it, I prefer avoiding reference counting when strong ownership rules can be put in place, but at least they aren't brainwashed into thinking garbage collection is good.

Name: Anonymous 2011-08-06 10:24

Fuck I hate the antiGC retard, almost as much as the ``In Lisp'' guy.

Name: Anonymous 2011-08-06 10:27

ooc.lang.gc

Name: >>8 and >>12 2011-08-06 10:37

>>23
Unless I got severe schizophrenia, there are at least two anti-GC retards advocates.

Name: Anonymous 2011-08-06 11:08

>>1
um yeah, except python is the future

Name: Anonymous 2011-08-06 11:10

I dont think it would be possible to replace a scripting language in AI intentive games like GTA. They need need tons of level scipting and it would be too much to ask for them to do it in C++

Name: Anonymous 2011-08-06 11:59

>>27
Carmack just wants his c64 zx-spectrum experience back. He will code everything in pure assembly. Even scripts.

Also,
http://www.menuetos.net/

Name: Anonymous 2011-08-06 12:36

>>28
Carmack was an Apple-][ guy.

Name: Anonymous 2011-08-06 14:16

>>1
No wonder he's retarded. He uses Haskell and OCaml!

Name: Anonymous 2011-08-06 15:44

>>30
Carmack is GOD.

Name: Anonymous 2011-08-06 16:02

>>31
Yeah, the evil GOD of THEPPLETH.

Name: Anonymous 2011-08-06 21:13

>>29
Have you watched video?

Name: Anonymous 2011-08-06 21:15

>>23
Whats wrong with `In Lisp'' guy?

Name: Anonymous 2011-08-06 21:21

>>34
Apparently he's the same as the antiJew guy.

Name: Anonymous 2011-08-06 21:35

>>35
Whats wrong with antijew guy?

Name: Anonymous 2011-08-06 21:44

>>36
Apparently he's the same as the ``in Lisp'' guy.

Name: Anonymous 2011-08-06 22:03

>>34-37
Damn you /prog/. I love you ;_;

Name: Anonymous 2011-08-06 22:47

>>36
Apparently he's the same as the ultrafinitist guy.

Name: Anonymous 2011-08-06 23:14

>>39
Whats wrong with ultrafinitist guy?

Newer Posts
Don't change these.
Name: Email:
Entire Thread Thread List