Forgot your password?
typodupeerror
XBox (Games) Programming IT Technology

First-Gen Xbox 360 Games Single-Threaded? 158

Posted by Zonk
from the crying-shame dept.
Scott Gualco wrote to mention a report at The Inquirer indicating that, despite the 360 itself being capable of multi-threading, first generation 360 titles will be single-threaded. From the article: "Every new machine has a nasty first set of games as the programmers work up to speed on the hardware. In this case, the up side is that there is about 6x the CPU power available and coming to a console near you in the second generation of games. The scary part is that everyone tells me that the PS3 is harder to program for than the Xbox360, and the tools are nowhere near the quality of Microsoft's. That means that even with an extra six months of design time, the initial PS3 games may be worse." Commentary available at Joystiq.
This discussion has been archived. No new comments can be posted.

First-Gen Xbox 360 Games Single-Threaded?

Comments Filter:
  • Middleware (Score:3, Interesting)

    by Admiral Ackbar 8 (848624) on Thursday October 27, 2005 @05:23PM (#13892502)
    The middleware they all use probably isn't there yet. Once it is I think you will see more multi-threading.

    All I know is that doing it on you own is very challenging and adds so much complexity (race conditions and locking to name a few) that it's probably not worth the effort. Really all these systems need for great graphics is a kick butt graphics card!
  • by Reality Master 201 (578873) on Thursday October 27, 2005 @05:27PM (#13892528) Journal
    Threading well is harder than people seem to think. I've seen code written (not for video games, but for business applications) that makes extensive and very inappropriate use of threading such that the performance and scalability of the software is worse than if the programmers had just single threaded everything.

    And are there any consoles that support threading now? For that matter, how common is multithreading in PC games? Most gaming machines (PC) have single chips and don't do multiprocessing, so probably people haven't got much experience in writing efficient, performant code for games that uses threading capabilities.

    Not to say that threading games is impossible, or even particularly hard, just that when you bring a new technique/capability to a programming realm, it takes time to learn how to exploit it properly.
  • Sounds familiar (Score:4, Interesting)

    by nevergleam (900375) on Thursday October 27, 2005 @05:33PM (#13892587)
    I'm suddenly reminded of that Anandtech article from a couple months back about how developers were:

    1) Not enthusiastic about using multiple threads and
    2) Very disappointed in both the 360's and the PS3's single-threaded CPU performance.

    It was pulled pretty quickly, and the story is that the article was pulled to protect the anonymous source.
  • Not entirely true (Score:5, Interesting)

    by PIPBoy3000 (619296) on Thursday October 27, 2005 @05:48PM (#13892690)
    This has been discussed [evilavatar.com] on Evil Avatar for awhile now. It seems that for Oblivion at least, that statement isn't entirely true [elitebastards.com]

    Gavin Carter: The game's code takes advantage of the multithreaded nature of the Xbox 360 and multithreaded PCs to improve just about every aspect of the game. The primary function is to improve framerates by off-loading some work from the main thread to the other processors. We do a variety of tasks on other threads depending on the situation - be it sound and music, renderer tasks, physics calculations, or anything else that could benefit. Loading also gets spread across hardware threads to aid in load times and provide a more seamless experience for the player.

    That's not to say that writing software for multiple cores is easy. It's actually extremely hard to synchronize the various tasks that run on the different cores. I suspect that most early games will run slowly on a single core or somewhat inefficiently on multiple cores. It will be quite some time before developers can figure out how to use all of them efficiently enough.

    The developer's dream is a single processor console that has a very fast CPU. Unfortunately that's hard to manufacture, so they're stuck with something less than ideal that can be made cheaply with today's technology.
  • Developers said (Score:2, Interesting)

    by thegamebiz (925741) on Thursday October 27, 2005 @05:51PM (#13892723)
    Lots of developers said quite a while ago in something I read on either GameSpot or EGM that most, if not all, of the first generation Xbox 360 titles would be single threaded. Using multiple threads is still a new technology and one that many developers are still only beginning to learn. I remember them saying that around the third and fourth generation of games is when you'll begin to see them take advantage of multiple cores.
  • by Ayaress (662020) on Thursday October 27, 2005 @05:55PM (#13892748) Journal
    Sorry to reply seriously to a joke, but my guess is they'll have the same problem as early PS1 and PS2 games. They may have threading issues just like the Xbox360 as well, but I'm still betting on graphics being the one that'll hurt.

    Remember the early PS1 games? A lot of them were 2D or mixed 2D/3D (Final Fantasy VII had 2D environments with chunky, lego-man 3D characters, many others had 3D environments with 2D objects in them). It was a good while before good-looking fully 3D games were the norm, and even then, there were 2D games that came out like Valkyrie Profile and various fighters that looked much smoother than simmilar 3D games.

    Then the PS2. A lot of the early games looked butt ugly when compared to the recent releases. To look back at GTA3 next to San Andreas on the PS2, it's hard to believe they're on the same system. Do the same with the PC or Xbox, and although there's a difference, it's not nearly as marked.

    When the Game Cube and Xbox each came out, they both looked (at least to my taste) a fair bit better than the PS2. Before long, though, the PS2 games were a good match with the other consoles.

    With the lackluster screens being shown so far and the quantity of "bullshots," I don't think the PS3 titles will live up to the system's touted graphical power.
  • by Anonymous Coward on Thursday October 27, 2005 @06:08PM (#13892858)
    I remember when COLECOVISION first came out, everyone complained that the launch games were "written in Pascal" and so weren't as cool as games in assembly language. This was also something the apologists claimed to explain away the poor quality of the launch titles.. "yeah the games kinda suck, but that's because they're written in pascal. The next batch of games will be in assembly and will be a lot better". Then of course, the great fallout happened... "oops".
  • by Anonymous Coward on Thursday October 27, 2005 @06:10PM (#13892870)
    I've worked on almost every console over the past decade or so and worked on every area of game engineering - graphics,AI,physics, and even sound recently.

    It is clear to me that Microsoft is in full press damage control right now.

    I don't know where the hell this notion that "game developers will need to time to adjust to the scary new world of multithreading" came from. But wherever it did come from it is complete bullshit.

    Console game developers have been writing parallel code for a long,long time. Hell, I've been writing multi-threaded game code on my dual G5 for two years now. It took me maybe ten to fifteen minutes the day I got mine to look up how to spanw off a new thread in OS X and throw a huge chunk of code off in its own thread running on the second G5 chip resulting in a huge performance jump.

    Not only have we been writing parallel/multi-threaded code, it just isn't an area of game development that is that interesting. My latest console game we spent about a half day moving code around to maximize parallelism. And then we got right back to working on the actual difficult stuff in making a modern console game.

    The performance of the 360 has been shockingly underwhelming. The seemingly endless excuses about devkits or only using one core and so on indicate Microsoft knows they have really botched the 360 hardware and software tools. I am glad my company is skippng the 360 like we did with the Dreamcast.

    The PS3 is an utter dream machine for game programmers. The hardware and tools kick ass. If you do graphics programming, you NEED to find some way to get your hands on one. I'm not saying break the law to get your hands on one, but I'd understand if you did...

  • by radish (98371) on Thursday October 27, 2005 @06:12PM (#13892880) Homepage
    I've said it before and I'll say it again, what is it with the slashdot fear of threading? Otherwise intelligent people seem to consider it (a) amazingly hard (b) brand new and cutting edge (c) only any use if you have multiple cores and (d) not really very useful at all to be honest. All four are false.

    Using an appropriate language (for example, Java), and provided you know what you're doing, threading is not hard. One of the apps I am responsible for routinely runs 800+ threads on 16 processor boxes. I'm no rocket scientist, but it works. Threading is also not new, or rare. Taking a look at task manager on the XP box I'm using right now shows over 300 threads running, with some apps taking as many as 50. This is on a single processor box - threading works on a single processor because it allows you, the application programmer, not to have to write your own scheduler (for example, to handle blocking IO without locking up the GUI). The OS is usually better at these things than you.
  • by BeforeCoffee (519489) on Thursday October 27, 2005 @07:49PM (#13893473)
    I downloaded the PS3's SPU instruction set pdf from the IBM download page. After reading that doc I thought, "Wow, this instruction set looks FUN!" It kindof reminded me of when I moved from MOS6502 to Intel 8088 - how much more fun it was to bit fiddle with the 8088. I think PS3 games are going to be a lot of fun to write code for - for bit fiddlers and premature optimization freaks. Will it be harder to code PS3 for than the XBOX 360? Unless Sony does something amazing with their SDK, I would say yes. But the rewards will probably be much higher with the PS3. I read something about being able to drop code sequences onto a SPU stream for scheduling execution, I thought that was a nifty idea. There's all these nifty buses on the Cell processor, connecting SPU's, for data sharing. Complicated, but allows for sophisticated designs.
  • by digital.prion (808852) on Friday October 28, 2005 @01:08PM (#13897786)
    Interesting.

    I was just think about the same thing this morning which is a programming language designed from the ground up to be multi-threaded.

    Here's a few ideas, let's see if we can get some other intelligent folks to join in.

    ** Contracts
    I imagined having "contracts" much like C# has with interfaces. With a threaded "contract" code is checked at compile time instead of having runtime "gotchas".
    "Contracts" would prevent any piece of code from spawning a thread and those objects/functions that did spawn threads would have coinciding "contracts" for the object/thread being called.

    ** Intelligent IDE
    In Eclipse (not the best I know) there is a built in refactor. I can do all sorts of stuff like pull out a class, create stubs, infer generic types, convert anonymous to nested class and the like all with an automated process!
    Now imagine if the IDE could check a class for it's thread safety-ness(sp) all before compiling. All a programmer would have to do is highlight a section of code and select the TYPE of thread (1 processor/multi thread, Dual processor single thread,etc) and then the IDE would use game theory to adjust the classes members all on the fly! Possible?

    Ok that's just two, lol, but the whole emphasis is on:


    *Compile time, safety for threads

    *IDE on the fly thread contract correcting,regression and basic race condition checking

    *Intelligent compiler warnings regarding possible inappropriate thread usage

    *Thread Cases(?) - A restricted system of compile time thread safety where various *types* of threads have different access to other threads.. (private, public, protected) similar to classes. Prevents certain objects under this TYPE of thread from calling another TYPE of thread.. basically, more compile time safety

    *Thread hierarchy(?) a strict system of enforcing what threads and objects (within a given thread) can call or pass/share data with another thread and object in another thread. Helps the compiler know how to optimize and the programmer find tricky logic errors


    Ok that was wordy. Did it help to explain the vision I was having? Does this coincide with trends or ideas you had?

    Cheers!
  • Re:Sounds familiar (Score:1, Interesting)

    by rAiNsT0rm (877553) on Friday October 28, 2005 @01:56PM (#13898270) Homepage
    Yep. I was the submitter of that article to /., and I knew it would get pulled quick... however it was all true. I have worked in this industry for some time and have a number of developers that I speak with regularly, not a single one of them is excited or enthusiastic to work on the PS3 or 360. Almost to a tee they all give the same reasons why all this multi-thread talk is just crap. I've been saying it for months on /. and always get flammed and modded down, but lo and behold it is the truth *gasp* amazing.

    Wait until people start to see how slow the releases come out, and the massive lulls in new releases in times when gamers expect many. The cost and development times are just out of hand, and when sales don't keep up with the massive development costs the PS3 and 360 become expensive multi-media centers. The only true hope this round is that Sony and MS take huge financial hits (which they are already feeling, check out todays business news about MS and the stock issues and Sony cutting jobs left and right) Nintendo is perfectly placed to once again pick up a broken videogame industry and run with it. I wish them the best, and I hope for gaming's sake that innovation, fun, family, and gameplay once again become the core focus.

The one day you'd sell your soul for something, souls are a glut.

Working...