Andre Lamothe Launches XGameStation
TheAdventurer writes "Andre Lamothe, author of many popular video game programming books, has released his XGameStation. The initial offering, the XGameStation Micro Edition, is a retro level hardware platform, similar to the old Atari and NES systems, designed to teach enthusiasts and students the elements of console hardware design and effective low level programming skills. The unit comes with an e-book written by Andre on how to develop on the platform using its assembly language IDE (included) and how to make your own extensions to the device. It is priced at $199."
Very cool -- even if we don't build a Beowulf cluster of them.
-- I could tell right away that she was impressed with my HUGE Slashdot Karma.
Cheers,
Erick
http://www.busyweather.com/
This is a good way to get a new generation of engineers going. I know many of us probably got our start with games, computers, etc at an early age. It seems like it was easier back then because the systems weren't as complicated as they are now. Back then we had nice breadboards, through-hole components, eeproms, etc that made hardware hacking and learning easier. Now with all the SMT, it's hard to jump in and learn from scratch.
A new device such as this with eduction in mind from the start surely sounds like a nice hobby experience.
Buy your tech gear for much less.
How many people out there do you think there are that would want to learn assembly? I learned it when I was young and tinkering with a C64... but now a days, you ask any young programmers, 95% of them don't want to bother learning assembly...
Don't get me wrong, I do embedded development, and use of ASM is frequent, but modern consoles don't need such low level programming, the API's handle almost everything... I doubt that this is so much about learning to program consoles, as it is learning to develop for embedded systems... modern consoles don't qualify in my books...
---
Programming is like sex... Make one mistake and support it the rest of your life.
If you cannot do that sort of stuff on a modern computer (which you can, to an extent), what's the point in learning about it? Is it just for people who want to learn ASM, with the prospect of being able to use it in embedded devices or something? These days alot of the graphical things are handled by the GPU anyway, meaning much of what you learn is rather useless in terms of modern game programming, plus any of your creations have a rather limited distribution market. Though it is rather cool if you DO want to make things in ASM larger than your normal bits of inlined stuff, I guess.
Its like a console, but you can make your own games for it, and its not attached to Microsoft! Yay!
A bit of background on Andre....
I'm posting this AC because I know this will get modded down as flamebait.
I've been working in the game industry as a programmer for 15 years, and have never regretting purchasing a single technical book (and I've bought hundreds) until, one day when I was at Barnes & Noble, buying six by Andre Lamothe thinking they might be useful.
Not only are his books terribly tied to specific platforms (he wouldn't know how to program if sample code wasn't handed to him on a platter by Microsoft--most of his sample code is taken STRAIGHT out of Microsoft's examples), but he can't write a paragraph without factual errors to save his life.
I remember a whole section where he was talking about 56 Kbps modems having a total of 56 Kbps of bandwidth split between incoming and outgoing data, and if you sent more, you could receive less. And another where he dismissed NAT because IP addresses on the internal network would conflict with those on the Internet and the idea would never catch on (he'd never heard of reserved netblocks, apparently).
He has become just a name and a marketing tool; do NOT rely on him for actual game programming tips and information.
and more powerful as well.
Around $25 for the system on ebay, then a quick search for a bootdisk.
Plus, it can be made bootable, so other people can play your game without any modifications to the DC.
~~~
Click here, you know you wanna!
His Tricks of the Game Programming Gurus books were great intros to game development, but when I saw his name as the editor of the lousy prima tech game development series, I thought he'd given up. It's encouraging to see that he's still interested in sparking new things in homebrew game design and not just sitting on his success to make money.
I wish we had this when I was in school, it would make a good course, imho
Maybe he should have gone with something more powerful than an 80 MIP RISC processor. I mean, they give those away in CrackerJacks now, don't they?
Lawrence Person (lawrencepersonh@gmailh.com (remove all "h"s to mail)
http://www.lawrenceperson.com/
The XGS was changed beyond recognition. Before, it had a Super NES style GPU. Now it has one more similar to that of the Atari 2600, where the CPU has to output each pixel one by one.
The design of the xgamestation is almost *exactly* like the arcade hardware that we're using at work.
This little bit of hardware might seem to be underpowered, but I can tell you from experience that this is the kind of stuff that a lot of professional game developers are using today.
With the arcade business being what it is today, the challenge is to fit the most amount of game into the smallest (meaning cheapest) hardware. The game I'm working on right now runs on hardware (similar to the xgamestation) that only costs about $40 for each unit. It's basically a 66mhz Z80 cpu, 4mb of texture memory, and an fpga that is really good at moving around memory, and it's a childrens redemption piece (ticket spitter) that's going to sell like hotcakes.
When I applied for my current job, I was one of the only guys who had any non-pc game development experience (through the sony net yaroze). This little box should open the door for a lot of aspiring game programmers.
Between Torque and the XGameStation, young programmers have no excuse for not having a kick-ass game for their demo reels.
for great justice, this sig has been moved
He may have built this more for people who want to learn for the sake of learning, not for any particular glory or power. True, APIs are great, but you cannot be a truely great programmer unless you know what the API is doing, and could at least theoretically craft it your self. Doing it all your self once for the sake of learning it will make you a better programmer when you retrun to useing the APIs because you will know how the internal algorithm is working, and can make your code intergrate better.
The article says "built in programmer".
I knew the Japanese people were small, but this is ridiculous.
You can learn to program on DOZENS of the best "classic" arcade platforms (as well as more modern stuff like Dreamcast) and it won't cost a dime. Download MAME and an assembly language manual for the machine of choice and have at it.
Its great to see someone using their skills to educate other people instead of just trying to make money....
/.'ers probably do, but I used to hate it becuase I was rasied being told it was 'hard' and that i wouldnt want to do it etc....
I really consider the main problem with America in whole to be that we stress the point of our exsistance to 'live for whatever we want to' for our own desires etc, instead of living for the better of humanity, society, earth as a whole, or anything... I myself enjoy learning, as most
The American ideal is that school is work and hard and you shouldnt want to be there, if I wasnt raised with that set of ideals I probably would of gained my love for learning and knowledge when I was alot younger instead of now when im not in an enviornment where I can learn as often/much as I like....
Wow that turned into a rant... But yeah, great to see something like this, ESPECIALLY when hardware enginering/hard coding just ISNT popular like common applicaiton programming is today(how many kids do you know hardware engineering, and how many that knowsome c++?), things like this will help it to catch on...
Spend $199 and hours of time to learn obsolete skills? Games aren't programmed in assembly anymore... things have changed in the last 20 years.
It would appear you have completly missed the point here. First they do plan on making compilers for C and basic.
second on of the main ideas here is to learn how to be a GOOD programmer, the limitations of the system will force you to code well. this wont be like a desktop where you can have super sloppy code, but Ghz of power to force it to run.
Third, one of the things this is designed to teach is the hardware side of things. Its designed to be a completly open system to let you hack, tinker, and create. It comes with a book that teaches you the entire EE side of designing such a system. The idea being that if you dont like this system (or just think it might be fun) you can build your own system, and make it do whatever you want.
200$ is a bit expensive for a hobby video game programming system. Why not just pick up a dreamcast for cheap and use it?
There are plenty of resources for it and some good examples of homebrewed games and applications already out there.
Not to mention it's a lot more modern and you can use some nice rendering hardware.
Linkage:
Dreamcast Programming
Dreamcast Homebrew
Dreamcast Emulation
...you got modded down for speaking against the hivemind.
Anyone know if this has enough horsepower to run the original Doom?
That thing looks awful like a FPGA...
/b
|f(x)dx = F(b) - F(a)
I guess it all depends on what you mean by a "good programmer". Is a good programmer someone who writes efficient code, or one who writes readable, easily understandable code? Usually the two are mutually exclusive, unless you have an excellent programmer.
It was supposed to be 10 times more powerful than a SNES and the controllers were those of the PS2. I don't know what happened.
They just outsourced it to Nintendo and changed its name to "GameCube with a Game Boy Player accessory, a nYko Play Cube controller adapter, and an MBV2 cable". And that's what I'm sticking with for the foreseeable future.
...three...two...one...
Honey, I shrunk the Cygwin
Go Wesley Go
RIP my man...
------------------------------ SirPhreak - "It's Thinking..."
The only thing that really gets me on the thing is this price. Would it be cheaper to homebrew your own console? I mean you can still get 65C02s and memory in such small amounts shouldn't be that expensive, right?
Anyway this thing is off to the right start I think. It even has a demoscene, which to me shows how interested people are in this thing. I might get one of these in the near future and mess around with it.
I remember a whole section where he was talking about 56 Kbps modems having a total of 56 Kbps of bandwidth split between incoming and outgoing data, and if you sent more, you could receive less.
This is true of some of the phone lines I've encountered.
Get an Atari/NES like system or..go buy a GP32. I think I'll stick with my GP32. Yes, I'm sure that it's good to learn about "efficient programming" and various platform specific features, but the former you learn to some extent regardless while the latter you only really learn if you actually use the destined platform. I'd rather "waste" my money on a more commonly developed system which I can get joy out of anyways because it's a cool little system.
Eurohacker European paranoia, gun rights, and h
You are a complete and total moron. Do not spew such complete and utter bullshit when you have absolutely no idea what you are talking about. Your phone line does not have the capability to know whats going over it, much less care. And phone lines have send/recieve pairs, so its not like it has to send or recieve, it can do both at the same time.
"And phone lines have send/recieve pairs"
. ht m
There are "complete and total morons," and then there is you. Phone lines do not have "send and receive pairs". There are just two wires (one pair) in most telephone systems in the world. Some European systems may carrry a high voltage ring signal on an additional wire, bur that's not necessary.
May I suggest you take a quick google before you "spew" yourself:
http://electronics.howstuffworks.com/telephone2
-S
It would appear that you know little about good programming.
Programming on obsolete equipment doesn't teach you to be good at anything. The only thing it teaches you is to leave out features that you would otherwise implement on a faster platform.
When I'm looking to buy a program, I don't say "I'm not going to buy this program because it won't run well on a 25MHz cpu". Performance on obsolete hardware is irrelevant. We don't live in a world of 25MHz cpus anymore.
And how does purchasing a system that someone else designed teach you how to design it?
It's a nice idea, but compared to a mini ITX solution it's expensive and incompatible.
I've looked through a couple of the many, many books with his name on them.
When I saw his name on this story, my first thought was "Oh, no!"
Imagine a Beowulf cluster of XGameStations Micro Edition that would ... suck compared to a Pentium I. Nevermind
"on of the main ideas here is to learn how to be a GOOD programmer, the limitations of the system will force you to code well."
To get the best performance out of limited hardware you are going to have to be a very BAD programmer. Out of code ram for that special effect loop? just change a couple of bytes in a similar one and call it. Need to make sure to update the sound DAC every 100 cycles? put in a call to the DAC check between every other call and in long loops.
The system is great for learning what hardware and APIs do for you, but to be a good programmer you need to work with a complicated system. Different tasks require different skills and game programming have many different tasks. If you program for any of the current consoles you are going to have to learn about writing efficient code, because you will always need to do more with less cycles.
All code is readable with the proper documentation.
And there is no definate relationship between a person who writes efficient code and someone who writes readable code so don't say that they are mutually exclusive.
Actually if you find a EE who doesn't know much about CS then you might get efficent unreadable code, a CS major who doesn't know much about the hardware and you will probably get well organized overly engineered yet easy to follow code, but if a CS major knows a lot about the underlying hardware then theres no reason why he can't write efficent yet readable code(and vice versa for the EE).
no thanks, i'm gonna wait for the phantom game console!
i've always been interested in homebrew game development.... but $199? for that price, i could buy a gamecube, max-drive-pro, nintendo ethernet card, and datel keyboard. the ideal gc-linux setup, ready for all the low (or high) level programming you want. plus, the hardware's a lot more capable.
There will ALWAYS be a place for telling a processor exactly what you want it to do, step-by-step. Yeah, we all thought that processors had finally gotten fast enough that we weren't going to need to write in assembly any more. Then the invention of the GPU pushed that idea out of the forseeable future. Writing a vertex or pixel shader is functionally working in assembly language. These skills aren't going away any time soon.
Because he is shipping ebooks with it that "assume" the reader knows nothing about harware design, and if you go through the book from start to finish, you'll be able to make the unit yourself. Of course, you'll learn how to make that system, and maybe it'll teach you how to make your own system, as well.
Thanks,
Leabre
I've always thought it would be fun to write a homebrewed MAME game, but has anyone really documented it for any driver in particular? It isn't just about knowing Z80 (or whatever CPU) ASM -- you would have to know how to handle sound, graphics, and input for the emulated arcade hardware.
A few thoughts:
1. If you want to design games, you are probably more interested in the implementation rather than learning low level programming. Use a high level language/libraries so you can focus on the game.
2. If you are interested in embedded programming (both high and low level), there are several less expensive eval boards that are immensely more powerful.
3. Even if they do eventually provide high level language compilers, you will be at their mercy for additional features/libraries. Most current eval boards are supported by GPL compilers, stacks, libraries, etc.
Just my 2 cents.
but will it run Longhorn?
If you really want to get a cross section of programming expertise, why not go with a PowerPC board? They're a popular embedded cpu, and they scale upwards quite well-- the cube uses something similar, and the next iteration of Nintendo and Microsoft intend to go that route as well. In terms of employable skills, it certainly beats the x86 and SPARC ASM I was taught in class.
Its quite funny to read the technical prospectus on this thing. " 4-Deep instruction pipeline (Fetch, Decode, Execute, Write)". Wow. " Multiple interrupt sources." What technical marvel.
I Browse at +4 Flamebait
Open Source Sysadmin
Seems at first to be an Atari 2600, little more or less. I was going to ask why, when emulators for the 2600 are exceedingly close to the real thing due to the thousands of games by unconnected programmers that they must successfully run, anyone would take this approach. But on closer inspection there's 128K of "fast 15ns static RAM" in there, and he mentions that it's fast enough to use as a conventional graphics framebuffer. So you don't necessarily have to take the pure Atari 2600 approach.
Also, the CPU is much faster -- it's probably inaccurate to say 80 times faster because I don't know whether the instruction set is more or less primitive than that of the 6507, but I doubt it could be much more primitive.
That's probably the reason why there is no sprite hardware (*): you can program your raster-on-the-fly graphics fast enough without it. (Yes, even the 2600 had one-dimensional sprites which you could reposition or alter between scanlines.)
(*) If something they would have burned into an FPGA should really be called hardware. Firmware, I guess. For programmer purposes it certainly is part of the hardware.
So this is sort of a super Atari 2600 on steroids, if you ignore the easy way out of simply using the static RAM as a framebuffer or using somebody else's prewritten subroutine for doing so. Apply the same freaky scanline by scanline tricks the 2600 programmers did, but accomplish more with them! In that sense, it's a really neat machine, and I wish him luck with this.
Still, I think writing new games for the 2600 appeals to me more. Not that I'll never do it. Hell no. When it comes to assembly, I'm strictly a voyeur and a dilettante.
"Oh look, Geoffrey. The 6507 programmers are sweating as they seek to save a single clock cyle with a cleverly placed jump instruction. Oh my yes, that is quite admirable. I do work up a thirst watching another man work. Another martini? Why thank you..."
Check out the Apostrophe open-source CMS: http://www.apostrophenow.com/
Aren't people missing the intentions of the XGameStation? From reading the XGameStation forums a while ago, and looking at the current About page, I got the impression that the point was to learn about both software AND hardware. Buying a $200 XBox isn't going to teach you a lot about its hardware, and about console design in general.
I wonder though if there are cheaper ways to learn about console design. And once you have any basic console you can learn a tonne about the programming.
Graphing Calculators can provide a similar (and much cheaper) tool. Beginners can start off with BASIC programs, and although these require some tweaking to run smoothly, that's part of the fun. (I goofed around with one myself a little while ago). More advanced assembly programmers have achieved some amazing stuff (such as greyscale on a black-and-white screen and a very accurate port of Bubble Bobble. The specs are all there for the asking.
Sure, calculators aren't as cool or powerful as what Lamothe is putting out there, but they do force you to be creative and do a lot with a little. Besides, making something happen on a little box just seems cooler - you tend to take having complex software for granted with PC's.
I produce electronic music and write little games. Have a look.
I work at a game company and the title we're working on is going to be out for PC, xbox, PS2, and GC. The lead guy is doing the PS2 port and we have one dedicated guy doing the GC port. It's all on a single codebase with the makefiles deciding what platform to target. We use C++ with GCC and VectorC for the consoles and Intel's compiler for the PC.
Very little is actually coded in assembly. The main things coded in asm relate to graphics: VU's on PS2, the shitty microcode for GC, and the shaders for xbox. I'd be hard pressed to find any asm on the PC port, mainly because many of the intrinsics are already included in the compiler already.
second on of the main ideas here is to learn how to be a GOOD programmer, the limitations of the system will force you to code well. this wont be like a desktop where you can have super sloppy code, but Ghz of power to force it to run.
Actually, you got it backwards. On a 2GHz machine, you can write simple, elegant code. On a small microprocessor, you will have to create kludges on top of kludges to get it to run. Your code will be buggy and unmaintainable, with hidden bugs that will take weeks to find and fix.
Good code means code that is completely free of bugs, and easy to read, modify, extend, and port. This can be done only with very high levels of abstraction, which does tax the hardware more.
It sounds like most of the people responding here are PC programmers. The XGS isn't about teaching people to program for the PC, but for game consoles (of which only the XBox and to a less extend Dreamcast are programmed similarly to a PC). Writing games for consoles is a completely different beast than programming for PC - you have a different mindset, far more limitations. And since the system doesn't get more powerful year after year, your coding has to constantly get more powerful, more optimized, pushing the system's limits beyond what it was designed for. Which means making your own non-API functions which access the hardware directly, often using Assembly. Which is something you can't really do on a PC, because each system is completely different, even with different CPU's. You are pretty much stuck using API's for everything, or forcing your users to have a specific piece of hardware. Now, I program mainly for handheld game systems. And I can tell you, they are *very* similar to the XGameStation. Not as limited, sure, but still plenty of limitations, and a game programmer really needs to learn to program within extreme limitations. Just yesterday I was looking into assembly-coding a function because that function was too slow, and when I traced through it the C compiler was doing a horrid job. I know people in my company who have never programmed in Assembly before, or only very limitedly, and wouldn't even think of that answer. Even in C, if you've only ever programmed for nice hefty PC-like systems before, you know very little about optimizing for space and speed. I can honestly say that I would be a far worse programmer if I hadn't had the experience trying to push the Gameboy Color to its limits (including cramming every little feature we wanted into that small cartridge). And some of the best games come from companies that formed out of demo groups, the kind that show how far they can push a system. The XGS is also about making your own game system, from the initial design phase all the way to having the motherboards manufactured. According to the site, its e-book goes step by step through the process, and if you ever wonder about any step, you can look at the finished product to see how that step ended up, what it's purpose was. And maybe you could hack the system, change part of it or add something to it - like a hard drive interface. This is something I'm really looking forwards to - I know almost nothing about electronics, and there's always seemingly stupid decisions made about game systems that I'd like to either understand better, or make my own system that has no such problems. So to me, the XGS sounds like a bargain. If I hacked an XBox or Dreamcast, that could teach me basic console programming, but I wouldn't learn very good optimization techniques. And it definitely wouldn't even start to prepare me for making my own game system.
***"We are the Music Makers, and We are the Dreamers of Dreams",Willy Wonka quoting Arthur O'Shaughnessy
Why not just buy a GBA and flash cart instead? You know, something that is usable for more than just learning (play GBA games), a modern architecture (ARM), and can be teamed with C, C++, or ASM. At the very least you'd get more useful skills.
they are at cgexpo which is absolutely cool. there it one more day left tomororrow. if you are in the bay area, i would recommend going. there is also a bunch of other cool stuff there like 8 bit weapon and a cool lego thing at the MobyGames booth. So much fun!!!
Honestly... you can pick one up for just over a hundred bucks (even cheaper used), plus a flash cart for about the same or less, and you can develop software for a decent, popular console. It's definitely a more old-school style platform (has a nice, traditional sprite-based VDP) and in order to do anything really fancy, you pretty much have to write some code in ARM assembly (which is, BTW, a joy... the ARM has a *really* nice ISA).
As for documentation, the GBA is only rivaled by the Dreamcast in terms of how well documented it is and how large the homebrew development community is. And much like the DC, you can use the standard GNU toolchain for development. And, of course, you can still run regular ol' games on it, so it doesn't *have* to be just a development platform.
So, why would anyone bother with this thing?
Got any good cheats? Not that I would teach my kids to cheat, but that doesn't stop Daddy from "winning" the reels of tickets needed to get anything worthwhile.
"As God is my witness, I thought turkeys could fly." A. Carlson
So many developers these days, even after graduating with a computer science degree, don't have the faintest idea of what goes on inside the boxes on their desks which they are supposedly so obsessed with. It's black magic. Doesn't anyone else find this a touch distressing? How can you possibly call yourself a computer scientist without understanding how computers actually work?
People who are saying, "It's so much easier and cheaper to just buy a Dreamcast or a GBA or a modded XBox or an Atari 2600 and it'll perform better too!" are missing the point. The point is that you are taken, step by step, through how this hardware platform works. It's low-tech because it's interesting to learn how to interface with a television. It's *fun* to be a programmer with a soldering iron. You understand every layer of abstraction, you know precisely what is happening as your cube rotates on your TV, and it is *cool*.
It's important to see through layers of abstraction to what's actually going on, sometimes.
Can I have sex with you, now please. Your thinking makes me wet.
You analysis about what is wrong with America is so stupid I cant even begin to tell you. You take something as complex as an entire society and characterize it based on your assholically narrow window into the world. You did no research, you never did studies on the various demographics, I certainly dont see you as the type who grew up in a ghetto, yet you can solve all of America's problems in Three fucking paragraphs? What the fuck is wrong with you?
First off, Star Trek is a TV show. There is no society now or that ever was that has people living for the "greater good."
If people didnt want to go to school they wouldnt fucking PAY to be there, now would they? And now you blame your parents for bad ideals when it comes to liking school? Fool.
Now, in the world we live in, if one cannot capitalize on whatever is invented, its useless. There are plenty of potential anti-cancer and other drugs that never see the light of day: $1000/per dose means ITS NOT USEFUL. Get it though your fat head, that if technology isnt economically viable, be it MONEY or what money represents, LIMITED RESOURCES, then its fucking useless.
And if tangible technology isnt the goal of all your armchair thinking, then what's it good for? Making crap movies or TV series about fantastic fluff that doesnt exist, but could in your DRASTICALLY oversimplified view of the universe?