Sign in to follow this  
TheC00L1

Designing for an XBox

Recommended Posts


Programming/technical design wise?

Xbox1: base your renderer on Direct3D8; it's a Win32 platform, many of your favourite APIs are there, some aren't; get used to working with limited memory; your file access needs to be sane to be fast enough for DVD; look at XACT and XInput in the latest DirectX SDK to get a feel for some of the non-'Direct' APIs; it has a Pentium3 based x86 CPU so you can rely on stuff like SSE being there; there's a hard disk in every box.

Xbox360: base your renderer on Direct3D9; it's a Win32 platform, many of your favourite APIs are there, some aren't; get used to working with limited memory (it has more than Xbox1, but you'll soon find uses for it); your file access needs to be sane to be fast enough for DVD; look at XACT and XInput in the latest DirectX SDK to get a feel for some of the non-'Direct' APIs; it's a big endian platform, make sure your data is; it has a Power PC based CPUs so you can rely on [most] stuff like VMX/AltiVec being there; there isn't a hard disk in every box; multiple CPUs and multiple cores per CPU means multi-processing/multi-threading is important and that's both good (parallelism) and bad (you have to be very careful about thread safety).


Game design wise:

To release a game on either Xbox, it has to have passed Microsoft quality assurance testing. MS have what is known as a "Technical Requirements Checklist" where you have to pass on all items (from the obvious like "game doesn't crash" to things like naming conventions and safe areas of the screen).

Biggest general thing I'd say is don't treat it like a PC from a game design point of view. Such as just because the controller has say 10 buttons, you don't need to use them all, and keep things consistent and context sensitive such as the A button always performs "Action", or, don't have lots of setup and configuration screens - consoles are more like an extension of the arcade than an extension of the home computer.

Play lots of the good console games and you'll see what to do right. IMO some of the bigger Nintendo developed games have the user/control experience spot-on.

Share this post


Link to post
Share on other sites
Wow i didn't know it was sooo simple. But similar to the PS in that you have to get permission.

Now when you say:
[quote]
To release a game on either Xbox, it has to have passed Microsoft quality assurance testing. MS have what is known as a "Technical Requirements Checklist" where you have to pass on all items (from the obvious like "game doesn't crash" to things like naming conventions and safe areas of the screen).
[/qoute]

Does it mean i have to have permission to say, like have my freinds play with it on their xboxes, but no real sale to like walmart(just saying)?

Any so it basically doesn't need that much tweaking if it was designed in MS VC++?

Share this post


Link to post
Share on other sites
Individuals don't get devkits, nor are they able to produce games that run natively on the XBox. You can install Linux on the xbox and use that, but it won't take advantage of the best features of the graphics hardware.

That is the only way you'll be able to write a game yourself and let your friend play it on their box.

Established game studios can jump through hoops to get devkits, and later to sell the game commercially. It is not cheap, and requires several successfully released titles before they are willing to work with the company.

Share this post


Link to post
Share on other sites
I wouldn't say it requires several succesful titles to get consideration from Microsoft for publishing an XBOX title. Look at Alien Hominid. That game was originally just a simple web-based app. It was an amazingly good one though, and thus it was picked up by PS2 and XBOX for publishing.

If a game is good enough, they will pick it up. However, this is an _extreme_ circumstance, and is very, very improbable.

Share this post


Link to post
Share on other sites
Quote:
Original post by TheC00L1
Wow i didn't know it was sooo simple. But similar to the PS in that you have to get permission.


Well it is and isn't sooo simple [smile]

An experienced Xbox programmer could develop something like Tetris or Pong in less than a day or an experienced DirectX/Windows programmer without Xbox experience could do it in about a day.

But a full scale AAA game can take a team of 100 over a year! - a full game requires a wide variety of artwork which requires a lot of artists; a full modern game also has a wide range of technology so requires quite a few programmers: AI, mission system, physics, graphics, core libraries/systems, networking, audio, tools, etc.

Once you have that many staff on a game, you need to include managers, admin staff, etc - and things take far longer than "one guy coding Tetris" because people need to have more meetings to agree on things, spend more time communicating with colleagues, and spend more time stalled waiting for someone else to finish a piece of work.


Quote:

Now when you say:
Quote:

To release a game on either Xbox, it has to have passed Microsoft quality assurance testing. MS have what is known as a "Technical Requirements Checklist" where you have to pass on all items (from the obvious like "game doesn't crash" to things like naming conventions and safe areas of the screen).


Does it mean i have to have permission to say, like have my freinds play with it on their xboxes, but no real sale to like walmart(just saying)?



To publically release, distribute (even for free), or sell an Xbox game, you need to be a registered/licensed Xbox developer.

To develop a proper Xbox game, you need to have the official Xbox development hardware (devkit) and software (XDK).

You also need to be a registered/licensed Xbox developer to obtain the official development kit (like a retail Xbox, except with double the memory, no region lockout, a special development kernel/BIOS, and some extra debugging stuff) and XDK (Xbox software Development Kit - special plugins for Visual Studio, header files, library files, some special utilities & plugins for communicating with the Xbox devkit, documentation, samples, etc)

To become a registered Xbox developer, you need to convince Microsoft that your company is capable of making and releasing a commercial quality Xbox game. In this case "capable" means: financially capable (e.g. can you afford $10k per devkit, and staff salary for a year), experienced enough team (i.e. have developed commercially released games before), publishing/manufacturing support, etc


Now if you found some way to develop an Xbox game without being a registered/licensed developer, and without the official development software/hardware, then you probably could show the game to your friends in the privacy of your own home and not get any comeback. But if you distributed it at all (download off a website, making copies for friends, etc), then you might enter dodgy legal territory (depending on how exactly you developed the game...).



Quote:
Any so it basically doesn't need that much tweaking if it was designed in MS VC++?


Visual C++ is just the compiler for the programming language you'll use, it doesn't provide anything specifically for Xbox. Making an Xbox executable (XBE) capable of being run on an Xbox requires special tools and the library files from the XDK.

If you wanted to make a game on PC that could be easily ported to Xbox, then yes, developing it in VC++, using the [PC] version of Direct3D in your graphics engine, and plain Win32 calls for things like file access would be a good idea... Learning XACT and XInput from the latest publically available [PC] DirectX SDK would be a good plan too...

Share this post


Link to post
Share on other sites
Quote:

Learning XACT and XInput from the latest publically available [PC] DirectX SDK would be a good plan too...


Yeah, i'm learning XACT, because i don't want to deal with DirectX 9 Sound, and DirectX 8 music.

It seems i won't be doing XBox games for while(if ever).

I'm it's not "soooo" simple, but i though it would be much more difficult. It was difficult in a different way.

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