Sign in to follow this  
Mercenarey

Andre LaMothe and his dangerous focus for upcoming game developers

Recommended Posts

Mercenarey    103
I just noticed an ad on GameDev today, for André LaMothe's XGameStation (xgamestation). And a year ago I read his book "Tricks of the Game Programming Gurus". His book was very technical, and he tended to mix up the levels of software when he moved along. He would be explaining some high-level programming stuff, and then suddenly without warning you would find yourself in the nitty-grittiest of details. The book goes beyond standard "Learn yourself Game Programming in 14 days", but IMO he is moving in the wrong direction. He wants to teach people the BARE METAL, and actually generate a rasterizer from the ground, instead of using OGL or DX. And instead of treating alot of important topics, like collision detection, animation, schene graphs and other really important game building elements, he writes 900 pages on something quite irrelevant, unless you are an engineer and is going to work on the next graphics cards, or an engineer working on the next lowlevel rendering API. And now this xgamestation thing. With it he is actually taking people back to the age of Ataris, lol. And that on a HARDWARE level! Does he have any idea what it requires to be a modern game developer? Did he hear about API's? ------------------------ Generally, André LaMothe is lost in his age. Engineers needing to know the bare metal is a thing of the past in the game development world. Today as programmers, we have API's taking care of all that lowlevel stuff. We don't need to worry about it, and IMO it is a waste of time, when there is so much to learn to become a game developer. My greatest worry is, that new people, who are interested in joining the business, are lead astray by LaMothe, and start out with a wrong focus in their learning process. And Im afraid LaMothe scares away alot of people with his confusing and technical-ridden texts. Reading them gives people the wrong idea what it requires to be a game developer. I advise any newcomers to stay clear of LaMothe.

Share this post


Link to post
Share on other sites
Alpha_ProgDes    6936
i disagree i'm a newbie and was able to follow most of what he wrote. and when i couldn't knew it wasn't because he was describing nitty gritty low level stuff but i didn't have a good enough grasp of the language i was using, which at the time was C.

also remember that he gives alot of theory and concept than just laying out a basic game plan and giving you 30 pages of cut and paste. most of what he shows/teaches can be applied to console game programming as well as windows game programming. so for the money you're paying i'd say that you're definitely getting your money's worth.

but i do agree, he did jump around alot from topic to topic. the book could have been a little more flowing or coherent (pick whatever word applies to how you think of his writing style)

edit: but i do advise any total newcomers to progrramming without a grasp of data structures and basic level programming (ie. CS I, CS II (which tends to be data structures), and a very good grasp of the language of his/her choice) to stay away from his books until they gained his knowledge. those of you who are beginners to game programming but veterans to programming in general feel free to dive in.

Share this post


Link to post
Share on other sites
bobstevens    204
Quote:
Original post by MercenareyI advise any newcomers to stay clear of LaMothe.


I concur, but perhaps for slightly different reasons.

LaMothe has found a market niche and is doing everything he can to exploit it. That niche is people of late middle school to high school age that want to become game programmers. His books aren't very good, but they're regarded highly by those in this niche. Why? Because they make you think you're learning things, when you might not actually be learning anything useful.

Aside from that, the man comes off as egotistical. There are much better books out there, so don't waste your money on anything in which LaMothe is involved.

Edit: I've only read one actual LaMothe book, but it's pretty obvious that all the rest of them are in the same class. The only useful one might be the one on 3D rasterization, actually. The class of books that suck is not limited to LaMothe's stuff either. Anything that promises you anything should be avoided. ("Learn C in 23 minutes", "Become a Game Developer in Six Easy Steps", etc)

Share this post


Link to post
Share on other sites
MindWipe    940
THAT IS THE BEST THING ABOUT ANDREW LAMOTHE!

Seriously, THAT'S WHY I bought his book on 3D and THAT'S WHY I ordered the XGameStation!

I don't know about the rest of you, but I want to understand what really happens when I write I program, not just use some premade library that does everything for me. I don't want the computer to remain some abstract magical machine that can do all sorts of stuff that I have no clue how it works. I think it's very important gamedevelopers actualy know the hardware and not just the APIs. And from a "I just want to make games and don't care about the hardware" - person's view, knowing how the hardware works helps you optimize your code. Making a simple 3D game using a 3D API isn't hard, it isn't rewarding in the same way as being able to say "I know exactly how this works", although you could be refering to a much simpler game than the one made using a 3D API.

And about the XGameStation. I want it because it will give me the chance to follow every step off my program/game which is close to impossible on today's hardware and it also gives me a chance to study the elecronics behind it all.

I STRONGLY DISAGREE WITH YOU.

/MindWipe

Share this post


Link to post
Share on other sites
Toolmaker    967
I strongly disagree with the XGameStation stuff. Andre is showing people what it takes to build a simple machine such as the Atari. I suggest you take a few Computer Architecture classes.

Modern processors, memory and all the busses that connect them, are very complicated. Starting out with a simple, dated gaming station, is the best start. You think CA students start out by designing the next P8 5000Ghz? No, they start out with a "simple"(Which it isn't) 4-bit CPU.

Using a dated gaming station is the best opportunity to learn the basics from the ground up. If you feel he's doing it wrong, just develop your MGameStation, which uses a next generation CPU, and hardware layout. I bet you'll go nuts, and even if you make the release, noone ever gets how it works(Except the pros)

Toolmaker

Share this post


Link to post
Share on other sites
Mercenarey    103
Mindwipe:
Maybe you could move faster learning this, if you did pretend it was a "magical black box"?

Why learn the engineering level, when it is unnecessary to make games? Unless you want to be an engineer on a console yourself, of course.

And why do you need to know the hardware? If you write an optimization outside the API, you can not be sure it will work on the next version of the machine. And without an API, you will have to write your optimization to each and every kind of machine you want the game to run on. You will be right back to 1990 and the trillion drivers problem of PC's. And crossplatforming would be a nightmare.

You really think it would be worth the tiny optimization (which you probably can't make better than the DX/OGL guys anyway)?


Im not saying the lowlevel stuff is not interesting. Of course it is.
It is just not necessary to become a game developer. An engineer, yes, but not a developer.

Share this post


Link to post
Share on other sites
Mercenarey    103
Toolmaker:
If you are an engineer, then this might just your be thing. And it sounds like you are.

My problem is, that André is writing for Game Developers, and what he is writing about is more engineering than game developing.

Share this post


Link to post
Share on other sites
PurpleAmethyst    335
Quote:
Original post by Mercenarey
And now this xgamestation thing. With it he is actually taking people back to the age of Ataris, lol.
And that on a HARDWARE level! Does he have any idea what it requires to be a modern game developer? Did he hear about API's?


There are a lot of tricks that are still useful in "modern" software development that "modern" programmers don't know because they sacrifice efficiency because of the huge amount a processing power available.

I have built a 8 bit computer from scratch beacuse I am interested in the concepts behind how all computers work, even nowadays graphics cards still crunch numbers the same way a Z80 did, they just are faster and have more space. It is important to learn these concepts, so you understand software at every level.

Share this post


Link to post
Share on other sites
Aldacron    4544
I've got 5 LaMothe books on my shelf, including the latest Tricks. I bought it because I've never taken the time to learn how to write a software renderer (Black Art was quite dated by the time I got my hands on it). I think it's valuable knowledge for anyone interested in 3D graphics. Nothing dangerous at all about it.


Share this post


Link to post
Share on other sites
snk_kid    1312
Quote:
Original post by bobstevens
Quote:
Original post by MercenareyI advise any newcomers to stay clear of LaMothe.


I concur, but perhaps for slightly different reasons.


I concur on all levels, they guy is on a different planet (or universe).

Really if people wont to know these kind of things they should be looking into the subject of computers graphics not games development specifically, and get bible books on the subject such as:

Computer Graphics: Principles and Practice in C (2nd Edition) (i wish they would make a new edition of this)

then go for:

Real-Time Rendering (2nd Edition)

Share this post


Link to post
Share on other sites
CaptainJester    523
Quote:
Original post by Mercenarey
You really think it would be worth the tiny optimization (which you probably can't make better than the DX/OGL guys anyway)?


Im not saying the lowlevel stuff is not interesting. Of course it is.
It is just not necessary to become a game developer. An engineer, yes, but not a developer.


The difference between a game developer and a good game developer is a good one learns the low level stuff. Not because he thinks he can write a better API or optimize code better, but since he knows how APIs like OGL and DX work, he can write more efficient code to use those APIs.

The purpose of Andre's book is not to get you to write all your programs with a homemade software renderer. It is to get you to understand what is going under the hood. Anyone who tries to write all this stuff from scratch will not finish a single game. But anyone who knows what is going on will be able to write better more efficient code.

Share this post


Link to post
Share on other sites
Ravyne    14300
There is alot to be gained by knowing the low-level stuff, the shortest path is not always the one of most value. I can learn an API and create a game just fine from that, but knowing whats going on behind the scenes gives me a much more intuitive grasp of how the API will behave, where performance bottlenecks may occur, etc.

If you take 2 programmers, one API-minded and one low-level minded, the low-level programmer will always be the more skilled of the pair. For example, a Direct3D programmer may have no understanding of the internal workings of rendering, but someone who has written their own renderer will feel very comfortable with Direct3D and has insight about why things are set up the way they are, why certain types of calls are slower than others and a host of other things. A LOT of colleges teach Computer Graphics by writting a software renderer for this very reason. Then again, APIs are more practical and many teach OpenGL. Personally I think a responsible institute would at least offer both, but thats another story.

Also, you learn so many other things in the process, alot of algorithms used in computer graphics, for example, are helpful in other areas of the code such as animation, physics and AI.

Long story short: APIs are practicle for everyday use, but a deeper understanding will never harm anyone, in fact it is a great benefit. More knowlege can never lead you astray.

I got into games through LaMothe's books and I wouldn't be where I am today without them. My only complaint is that many of them cover the same material, but I guess thats to be expected since they are stand-alone books for the most part.

Share this post


Link to post
Share on other sites
Mercenarey    103
Captain Jester and Ravyne:

When I talk about an API, I mean you use what is most necessary. In my system I don't use DX' Vector or Matrix classes, I have implemented my own. And with them all the methods to manipulate them.
And I use my own mesh and animation classes as well.


However, I would NEVER begin implementing rasterization methods myself. IMO it would be folly to spend so much time and gain absolutely nothing from it.

Just because you use an API, doesn't mean you have to use all of it. But for the most important things (like rendering in the case of DX and OGL), it is imperative, unless you want to bog yourself down with details, that do you no good learning, if you want to become a game programmer.

---------------------

PS: CaptainJester, you say the good programmers go for the low levels. Apart from that being BS IMO, I just want to ask you who is the target group for LaMothe? Is it already established game programmers, who want to be "good"?
No, it is newbies. And they simply don't need what he provides. By now I am myself fairly capable in the game development, and I would never delve into LaMothe to improve myself. And I doubt many established game programmers would.

Share this post


Link to post
Share on other sites
MindWipe    940
Quote:
Original post by Mercenarey
Captain Jester and Ravyne:

When I talk about an API, I mean you use what is most necessary. In my system I don't use DX' Vector or Matrix classes, I have implemented my own. And with them all the methods to manipulate them.
And I use my own mesh and animation classes as well.


However, I would NEVER begin implementing rasterization methods myself. IMO it would be folly to spend so much time and gain absolutely nothing from it.

Just because you use an API, doesn't mean you have to use all of it. But for the most important things (like rendering in the case of DX and OGL), it is imperative, unless you want to bog yourself down with details, that do you no good learning, if you want to become a game programmer.

---------------------

PS: CaptainJester, you say the good programmers go for the low levels. Apart from that being BS IMO, I just want to ask you who is the target group for LaMothe? Is it already established game programmers, who want to be "good"?
No, it is newbies. And they simply don't need what he provides. By now I am myself fairly capable in the game development, and I would never delve into LaMothe to improve myself. And I doubt many established game programmers would.


I don't think many game programmers would implement their own rasterization anymore. But knowing how the hardware that does it (Or kind of...) helps to be able to optimize your code. I'm talking about the fundation of hardware 3d graphics, not some small detail that differce for hardware to hardware.

Also, I belive that someone who's truly passionately about programming (gamedev, apps whatever...) really do want to know how stuff works. And Andre LaMothe's book on software 3D is perfect learning how 3D hardware does it's "magic". I really admire him for writing such a book and not a book on how to make a 3D game fast using Direct3D. Nobody else has written such a book, that explains things so good and that really makes you want to learn. Sure, you'll probably find the same info in a few other BOOORING books on 3D math and similar, but that's not what I want. Hence I have bought LaMothe's book.

The XGameStation is also aimed at schools that teach hardware engineering and it's perfect for that purpose - So much more fun to learn from it. I also admire the XGS team for doing this as I'm sure it won't give a them a huge profit, I think they are also doing it because that's what they really love to do.

There's allways an easy way for everything, but most often the hard way is more rewarding. Atleast that's how I feel about this.

/MindWipe

Share this post


Link to post
Share on other sites
Kyle N    176
This low-level stuff is actually incredibly useful in many circumstances. The thing is you never know when one of these old "useless" techniques might suddenly become very useful in a modern engine on modern hardware. As a quick example, the writing of a software rasterizer can be utilized to generate occlusion maps as Yann L has demonstrated. By choosing to disregard these techniques simply because the API hides them, you are cutting yourself off from a huge amount potential performance optimizations and useful tricks.

Kyle

Share this post


Link to post
Share on other sites
The Alchemist    348
just a few things...
first sure if you gonna code for PC, doing your own rasterization instead of using OGL or DX is stupid, but who said that it is THE only plataform, nowadays cellphones have enough power to do basic 3d and you will have to do your our rasterization and probabily other limited plataforms will appears with time, that kind of knowledge is never useless

also while i agree that lamothe books realy arent the best thing after sliced bread... when you just finished learning C you probabily very lost on how the heck u gonna use that for game, lamothe books are realy good on that aspect

i realy dont see why such fear of lamothe, is not like hes teaching people that they should use gotos instead of functions or anything :/

Share this post


Link to post
Share on other sites
zarthrag    152
LaMothe may be a bit too into writing for profit, but his books do have a place.

I too bought the book over software rasterization. I found myself enjoying the chapters over culling and such, but that's about it. However, having a book over that can be useful - processors are so fast and GPUs so expensive nowadays that they may make a (very welcome) comeback!

The XGamestation is a stepping stone to the world of console programming. Is it a bit antiquated? Maybe. But the same principles of "limited resources" still apply. If you can write on it, learning to deal with the infernal Playstation 2 hardware won't suck quite as bad. Those are real skills that are dying out because we're *too* comfortable with APIs and the like.

I also own his Direct3D and OpenGL books. Which is pretty much the same book with different APIs and too much basic programming lessons.

The game scripting mastery book is another enjoyable- it was enough to deter me from writing a scripting language and has quick guides over embedding Lua, Python, and Tcl.

Despite his intentions, these books are better than nothing at all. While I may prefer New Riders/Charles River Media, these books help fill the void.

Share this post


Link to post
Share on other sites
Dom77    122
Actually there are people out there, that write their own software rasterizers for games:
http://www.radgametools.com/pixowhy.htm

Share this post


Link to post
Share on other sites
andrewk3652    252
I agree on most points.

I hav a few of LaMothe's books (Special effects programming with DX, Game Developer's Market Guide, Tricks 2nd Ed, and Java 2 Game Programming), and I find them to be dissatisfying in general. By and large, they're just a bunch of code listings with sparse comments about what the programmer is doing with the API. This is not a good way to learn the fundamentals of game programming. If you've already programmed a long time, like some of us, then it will be much easier to pick and choose what's good in there and what's the crap - but newbies won't know. Hell, half the source in most of his books won't even compile.

That being said, however, his books do have SOME merit. Namely, the Game Developer's Market Guide was $40 and I don't really regret paying full price for it (I never pay full price for the other Lamothe books tho). Game Scripting Mastery was actually pretty good; coupled with a real book on compiler design, you might be able to produce something that's not crap. He writes books for two classes of people: 1) those that just want to learn the API and be done with it, and 2) those who have been programming for a long time and are looking for a few nibbles of interesting technique. To be honest, the guy doesn't really write for serious developers.

As for software rasterizers, there's still plenty of market for them. Pixomatic by Rad game tools was written recently, and these guys were *serious* about their bare metal x86 optimizations. Pixomatic came out as good as it did because of the fact that they knew all the low level stuff about the x86 architecture and how to twist and wring that last little bit of performance out of it. Having said that, however, as long as you're developing for a PC, you'll most likely never have to write your own rasterization code. But as someone else pointed out, if you're developing for a new game console, cell phones, or what have you, you could quickly find yourself dropped into a world where you need to fully understand the base hardware and how to take advantage of it.

(Bitch: The CLDC security model. It really makes it hard to optimize for a particular phone, especially when the manufacturer's libs suck. /rant off)

As for the XGameStation, well, let's just say you'll never catch THIS developer laying down $200 for an 8-bit CPU, some controller ports and an EEPROM burner. No thanks. While yes, it does teach game developers a few important concepts, they are not concepts that can't be tought just as easily on a PC or homebrewing for a modern game console. If you want to learn to develop for constrained devices, I seriously suggest cell phone or PDA development, since those are the most "constrained" devices you'll see nowadays (and even they're not very limited in some models). The XGameStation really is one of the worst ideas I've seen jump off of Lamothe's plate in a while.

All that being said, HOWEVER, LaMothe has still contributed a good deal to this industry as a whole. Without his push to bring game development to the masses, it would still be a dark art cloaked in mystery, practiced only behind the closed doors of game development industry giants and mad scientists' bedrooms. So I can thank him for that, if nothing else.

... Now then, if you want to do some REAL game development, I suggest getting something different from (or at least in addition to) Lamothe's books. For example, on my physical bookshelf I've got a couple of Sam's "teach yourself" game books, the afforementioned 3 LaMothe books, and "Programming and Problem Solving with C++" (amongst other non-related IT books). But on my Safari Bookshelf, I've got:

Quote:

Core Techniques and Algorithms in Game Programming, by Daniel Sánchez-Crespo Dalmau
Developing Games in Java, by David Brackeen, Bret Barker, Laurence Vanhelsuwé
J2ME game development, by MARTIN J. WELLS
Micro Java Game Development, by David Fox, Roman Verhosek
Programming Wireless Devices with the Java 2 Platform, Micro Edition, Second Edition, by Roger Riggs, Antero Taivalsaari, Jim Van Peursem, Jyri Huopaniemi, Mark Patel, Aleksi Uotila, Jim Holliday (Editor)
Thinking in Java, Third Edition, by Bruce Eckel President, MindView, I


MY advice about books: If you thumb through it at the store and see more than 1 in 10 pages completely covered with code, don't buy it, unless you are SPECIFICALLY looking for code dumps. Code listings should be on your screen while you follow along in the book; the book is for explanation of the code, not for showcasing how much code you can cram into one "how-to" book. Which is why I don't buy most of LaMothe's books.

Share this post


Link to post
Share on other sites
MindWipe    940
Quote:
Original post by andrewk3652
If you want to learn to develop for constrained devices, I seriously suggest cell phone or PDA development, since those are the most "constrained" devices you'll see nowadays (and even they're not very limited in some models). The XGameStation really is one of the worst ideas I've seen jump off of Lamothe's plate in a while.


It's not about getting money now. Developing for the XGS means:
- Assembly
- Few operations (no MUL or DIV for example)
- 4k memory
- Learning things like generating a NTCP or PAL signal.

Developing for a cell phone or PDA is a piece of cake. No problem at all, there are compilers and APIs, not harder then developing for the PC in general, you're only limited to less resources and power.

It's not about learning to develope for costrained devices, it's about knowing what happens and how it all works. Think about being able to build a little robot with a uber-simple AI that still works, without having to add a whole computer with an OS to it.

/MindWipe


Share this post


Link to post
Share on other sites
Guest Anonymous Poster   
Guest Anonymous Poster
No need to spend $200 on the XGS when you can spend $20 on a cheap book about ASM programming and programming on a constrained device emulator.

Sorry, the XGS is just not worth it in my opinion. Maybe if he was charging less than $100, it'd be worth it. But otherwise, eh, no.

Share this post


Link to post
Share on other sites
bobstevens    204
If you want to learn about an antiquated console system, the original Gameboy is probably a better and cheaper choice. Many microprocessors classes still teach Z80. I realize that part of the draw is building your own console, but I think the XGameStation is overmarketed. "Learn how to poll for input and you'll be better at PS2 programming!" Doesn't anyone see how ridiculous that is?

It's the same promise of all of LaMothe's books. "I'm letting you in on a bunch of secrets. All it takes is knowing the secrets, so you'll become a game developer in no time."

They're introductory level books. You won't get far on them alone. I'm sure his publishing place has some gems in there buried beneath the crap, but at this point in my career I find papers off citeseer/acm just as useful as books.

Share this post


Link to post
Share on other sites
Puppet    181
LaMothe gets the job done for those who want to get started. He got me going in 1997 or so. He was giving people the tools to get some sprites drawing on the screen and be inspired to make something better. I don't like his coding style and for me today his books contain too many code listings. That didn't bother me at the early days of learning though. I've worked some years in the game's industry and he's got all the credit for getting me on that path. That's not to say that I didn't move beyond his writings to get there.

The XGS isn't about making games. It's about understanding a piece of hardware inside out. With a too busy scedule to take electronic classes, I'd consider getting the XGS for educational purposes.

Share this post


Link to post
Share on other sites
ontheheap    798
Quote:
Original post by Mercenarey
I just noticed an ad on GameDev today, for André LaMothe's XGameStation (xgamestation).

And a year ago I read his book "Tricks of the Game Programming Gurus".

His book was very technical, and he tended to mix up the levels of software when he moved along. He would be explaining some high-level programming stuff, and then suddenly without warning you would find yourself in the nitty-grittiest of details.

The book goes beyond standard "Learn yourself Game Programming in 14 days", but IMO he is moving in the wrong direction. He wants to teach people the BARE METAL, and actually generate a rasterizer from the ground, instead of using OGL or DX.


A rasterizer from the ground up? I might take a look at this book now [smile]

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this