Not logged in, Join Here! or Log In Below:  
News Articles Search    

Submitted by Charles Bloom, posted on April 17, 2002

Image Description, by Charles Bloom

These images show a little particles system running on an XBox. The particles are time-evolved by the GPU in a vertex shader; that is, the CPU creates particles and then never touches them again. The particles live in memory only once (in the vertex buffer), there is no system memory copy. Particles can be added to this circular buffer by the CPU without stalling the GPU on the XBox.

I get about 30 million particles per second when their size is set to zero, but in practice particle systems are fill-rate limited. As usual, it looks much better in motion, but I'm afraid you need an XBox dev kit to run the demo ;^)

Image of the Day Gallery


Message Center / Reader Comments: ( To Participate in the Discussion, Join the Community )
Archive Notice: This thread is old and no longer active. It is here for reference purposes. This thread was created on an older version of the flipcode forums, before the site closed in 2005. Please keep that in mind as you view this thread, as many of the topics and opinions may be outdated.

April 17, 2002, 01:52 PM

Charles: I get about 30 million particles per second when their size is set to zero, but in practice particle systems are fill-rate limited. As usual, it looks much better in motion, but I'm afraid you need an XBox dev kit to run the demo ;^)

So, where can I download it then? (:

Cheers, Altair

Jason King

April 17, 2002, 01:53 PM

The xbox will do quite well for a couple of simple reasons.

1. Porting from PC to xbox to PC is trivial and costs the developer relatively nothing. So to enter both markets, all you have to do is port to one and you have the other. Therefore the content will always be there because the cost is minimal.

2. Microsoft is in it for the long haul and they have the deep pockets to withstand any amount of competition and will not simply drop the system (like sega and the dreamcast). Microsoft entered this buisness for multiple reasons. Money? Eventually, but also name brand recognition. IBM did the same thing in the early 1980s. They figured if the average person could use an IBM computer then big business will continue to use IBM mainfraims.

3. All the consoles are capable of very similar games. In general, it will be easier to make an xbox game look good than it will for both the GameCube and PS2. That's not to say that those systems won't have the same look, it simply will be easier.

Personally, I like the xbox system the best (I also use it as a DVD), but I prefer the PS2 controller and my favorite game is on the GameCube, but will likely be ported to the other systems (or at least someone will make a similar game).

Sebastian Sylvan

April 17, 2002, 01:57 PM

The similarities it has to a PC internally is ALL GOOD FOR DEVELOPMENT.

It's faster than your regular console. It's more flexible than your regular console, and it's easier to develop for than your regular console. So what's so bad about it being similiar to a PC internally?


April 17, 2002, 01:59 PM

Because it's Hardware ?!?

Ron Frazier

April 17, 2002, 02:00 PM

I cant help but feel sorry for all of the people whose IOTD discussion goes off on wild tangents like this one.

Note to self: put "XBOX" on the list of words and phrases not to use when I submit my IOTD.


April 17, 2002, 02:06 PM

The demo you idiot (:

Cheers, Altair

Jason King

April 17, 2002, 02:13 PM

Oops, my mistake, I also wanted to add this comment about the IOTD:

It looks cool, reminds of one of the original AfterDark screensavers. Any chance the code could be converted to a screensaver?


April 17, 2002, 02:34 PM

Good points. Like with all situations (especially that of windows), anything containing tremendous _support_ for development will help the growth of a product.


April 17, 2002, 02:34 PM

I have an Xbox devkit sitting next to me, can I run the demo? :)



April 17, 2002, 02:38 PM

This is one of the most interesting and innovative IOTD I've seen in a long while and its very depressing to see people having the old x-box good/bad discussion rather than actually talking about the image and the methods behind it.

It would be nice to get some more info on how exactly this is done.
I haven't thought about it too long but here's my guess:

Velocity/Forces/whatever is stored in the vertex stream just like position would be.
The vertex shader basically does something like:
Position += Velocity * time constant
Velocity += Acceleration * time constant

or do you use more complex formulas?

Not sure how you make them disapear with time though. I guess you could adjust alpha over time to make them invisible?

The only annoying thing I find with particle systems is that on their own you can do some incredible effects, but with the rest of a game running at a high detail, too many particles kills performance really badly. Especially if the particles need depth sorting.


April 17, 2002, 02:47 PM

its not important if he uses more or less complex functions to integrate, more important is if he can stream the result out in some buffer to reuse this for the next time as input.. else he has to integrate for himself algebraically and just solfe f(t) for every t.. wich can be done damn easy but is boring.. cause then its not programmed;)


April 17, 2002, 02:59 PM

A couple weeks back Dr. Dobbs technetcast aired the Xbox postmorten talk given at GDC. I thought it was interesting to hear about what went in to putting it together. The short of it is that the Xbox OS is a stripped down version of W2K - no gui stuff, no multithreading - nothing that would "get in the way" of a game - just the kernel. Kurt posted the link on the front page so dig around in the past links archives if you're at all interested in listening to the talk.

I have to say those graphics look pretty sweet, like a rainbow lollipop.


April 17, 2002, 03:19 PM

Oh yeah, listen to bloody Sega - they know what they're doing ;)


April 17, 2002, 03:26 PM

He may not change the contents of the vertex buffer directly, but if dx8 vertex shaders are anything like opengl vertex programs, then there are constants that you can change, plus vertex state programs.
It's good, mind you. The demo someone mentioned on the nvidia site is nothing more than aligning quads towards the camera to do billboarding on the Gpu - the physics of the particles are done on the Cpu not the Gpu which is what we have here.
Anyway, why would you need a xbox dev kit to run it? Surely a geforce3 or 4 on a PC would do the trick?


April 17, 2002, 03:32 PM

How many years has Microsoft been making games? Ok, aside from Age of Empires and Flight Simulator, Microsoft hasn't put out practically any big games.

Now, Nintendo has created and marketed games since 1980 (with video games). Each system that they released sold big (except for the VirtuaBoy) from 8 bit to 16 to 32 to 64 bit, and now the GameCube is 128 bit. They have released more good large games for a _CONSOLE_ than I can count, and have made their newest system so as to be easier to program than other systems.

Microsoft may be able to survive in the console market, but only as a competitor with GameCube.


April 17, 2002, 03:44 PM

I agree, all the current consoles have some aspect that could be considered "PC." If you call the X-Box a PC without a keyboard, then you have to call the GC a Mac without a keyboard (Gecko processor), or the GBA a PDA without a stylus (ARM processor, used in PDAs like the iPaq). A PS2 with a Linux kit is a lot more similar to any PC (in terms of usage, not architecture) than an X-Box is. Even though the X-Box is very close to a PC style architecture, and uses PC parts doesn't make it a PC.


April 17, 2002, 03:44 PM

The Xbox has an Intel chip based on the PIII, an NVIDIA NV2A graphics chip which is extremely similar to the GeForce3, an NVIDIA audio chip, and a PC hard drive. It differs from PC architecture most in that it has shared memory between all devices and really fast RAM.

There is no operating system-- you statically link against the Xbox libraries, which look like Win32 SDK + DirectX + Xbox specific stuff. Your app runs in kernel mode, and you can develop it under VisualStudio with some extra plugins.

This setup is exactly what I want from a gaming machine as a developer, so I think the architecture was brilliant-- unlike Sony and Nintendo, Microsoft put the developer's needs first.



April 17, 2002, 03:49 PM

you know, it has unified memory, and as far as i know you can directly stream the output of a vertexshader in an array.. like that you could do the physic-updates with help of doublebuffering (two buffers, one for t0 and one for t-1)


April 17, 2002, 04:15 PM

So you have an X-Box SDK ? argh... :)


April 17, 2002, 04:15 PM

I read a post that said that 50% is graphics in a game.
Then, something has to be done in the industry.
Playabilty count's minnum 70%. I can't get my self to play boring games with good graphics. the thing that count's is playability and "feeling"
under the "feeling" part, graphics and music and the combinations of how the game is wrapped up comes in play..

Any way, the particle system looked cool

Dan Fekete

April 17, 2002, 04:17 PM

Khmm ... yes, I did messed up with that processor thingie. I think that everybody realized it already, XBox is hated just because it's a product of Microsoft. You know the rule, everything looks just like we look at it. There is no reasons why to hate MS, about XBox, Sony's marketing strategy is much more "hardcore".


April 17, 2002, 04:23 PM

Wild Tangent? Is that a subtle pun (Charles Bloom)? Heh.


April 17, 2002, 04:28 PM

Actually, Nintendo did a pretty good job with the dev tools for GameCube, after getting reamed by developers for the N64...Not quite as nice as the XBOX...But they at least provide good libs that are easy to pick up for anyone who has had any OpenGL experience (though its not quite OpenGL).

Sony had great dev tools on the PSX, but with the PS2 they pretty much told developers 'well screw you guys, we don't really need to give you any help because you'll write for our platform anyway thanks to our great brand'..and all-in-all they were right...The PS3 is looking like it might be even worse for developers, based on "grid computing" and such...If developers complained about the 2 processors in the saturn or the ps2, wait 'til they are coding against 10s of processors...

Matthew Harmon

April 17, 2002, 04:32 PM

There IS multithreading, but not multiTASKing.

Neo Quietus

April 17, 2002, 04:33 PM

Spaceman 40, you are mistaken. True, Mircosoft has only a few killer games made by them, but that is not the point. They simply need to do what they are "good" at, that is to make a popular OS. (Good being defined a large market share). After making/obtaining the afore mentioned OS, they simply need to wait for people to make games for it. Oh, also Microsoft has been making "games" from day uno, if you choose to call the orignial minesweeper a "game", which I would.

Post #0


April 17, 2002, 04:34 PM

The XBox SUCKS!!! Well, not really, it ROCKS!!! but but but Game Cube will win because it's the best and it has the (worst) games ..... thinking in it I bet the PS2 have the most friendly way to make programs but Halo is great game well suited to the capacity of such a shit like a Pentium III undercached and BLAH BLAH BLAH BLAH BLAH BLAH BLAH BLAH BLAH BLAH BLAH BLAH BLAH BLAH BLAH BLAH BLAH BLAHBLAH BLAH BLAH BLAH BLAH BLAHBLAH BLAH BLAH BLAH BLAH BLAHBLAH BLAH BLAH BLAH BLAH BLAHBLAH BLAH BLAH BLAH BLAH BLAHBLAH BLAH BLAH BLAH BLAH BLAHBLAH BLAH BLAH BLAH BLAH BLAH

Poor Charles Bloom IOTD. Almost nothing related with it in this thread. Really sad. Charles works so hard to give us an magnificent example of moving computation from CPU to GPU and the result is the "always the same neverending discussion" (SEGA Vs. Ninteno, Consoles Vs. PC, Capcom Vs. SNK, .... and so on).

Nice work (as usual).



April 17, 2002, 04:36 PM

I have seen one that you can buy.


April 17, 2002, 04:37 PM

You're absolutely right about developer support being important. Everyone gripes now about Microsoft's monopoly in the OS sector...But how did they get it? It wasn't a government granted monopoly like AT&T...They got it because from early on Microsoft has had great 3rd party developer support when compared to the other players... Developer support means apps, which eventually means users, which eventually means more apps, which leads to intertia against changing platforms due to all the apps being for that platform... On the other hand Apple has consistently shit on developers, and now they're pretty much a niche player with a very limited set of developers creating good software.

Of course, in the console market things are a bit different...There's some nationalism and politics involved, due to the post-NES history of successful consoles coming from Japan...And as has been reported, Microsoft's been getting hammered a bit in Japan on the XBOX... But if they keep wooing the developers and sinking their billions of dollars in cash into the XBOX, as I'm sure they will, I can't imagine this not turning around by the time period of the next generation consoles.... As a long time gamer, I love Nintendo, but I wouldn't be surprised if this turns into a two-horse race (MS and Sony) by the next gen, with Nintendo going Sega's route of multi-console software development... And who will win in the end (MS Or Sony)? I don't know, but it will be interesting to watch...


April 17, 2002, 04:42 PM

Consoles are not about Operating Systems or tiny 15-minute programming jobs like minesweeper. Console games are about speed and size. They're about addicting a user and keeping them there until the game is finished with great gameplay, a shallow learning curve, and a good game concept - not the smiley face you get when you complete a successful game of minesweeper.

When Microsoft can make a game on its own (props for Age of Empires, but Halo was created by a company that used to make Macintosh games and was bought by Microsoft) then I'll acknowledge its presence as a gaming console worth my time.

That and when they change the size of their loser controller.

Tim Aidley

April 17, 2002, 04:43 PM

Oh fer flip(code)'s sake. You think that because the GC has a PPC processor that makes it a Mac? You think because the PS2 has a MIPS processor that makes it an SGI?


*ALL* of these systems have a CPU, RAM, a BUS I/O etc... Consoles are (and have always been) nothing but nicely packaged computers.
In fact one of these has a quite cool unified memory system that fits the console concept very well. It's the XBox. Three of these have Hard Drives (Xbox, PC, and PS2 (sort of) ) and two have firewire ports (PC (if you're lucky) and PS2).

Any of these could be called PCs if they ran a general purpose operating system - and which console is it that can run Linux? (A PC operating system) - yup! the PS2...

The main difference between the XBox and the other two consoles is that they haven't bothered spending any money on ensuring that it's small. But hey, it's made in America, and everything is big there, right?

This thread contains 125 messages.
First Previous ( To view more messages, select a page: 0 1 2 3 4 ... out of 4) Next Last
Hosting by Solid Eight Studios, maker of PhotoTangler Collage Maker.