davidn: (rant)
[personal profile] davidn
I went through the setup process for Xbox independent game development today, which went surprisingly smoothly for something completely unfamiliar to me. You have to set your account up with an App Hub membership, download an application that links your computer to your Xbox over the network, type in the key that it gives you on your PC, and... really, that's it - overall it's about a million times less complicated than the equivalent Kafkaesque profiling/provisioning iOS procedure, and there's something very backwards about this considering the two companies' respective reputations.

But most importantly - Special Agent runs on the Xbox! Once again I'm amazed at how quickly I was able to get something running with Clickteam's exporter. I went through the game I'd written six years ago - a horrifying experience, as any programmer will be able to tell you - ripped out the keyboard controls and replaced them with some Xbox controller actions, "compiled" it (what's the term for when a procedure takes source code and produces different source code?) and only had to change a couple of fonts the Xbox didn't support before I saw the "Building..." indicator change to "Deploying...". With no further complaints, it eventually indicated that it was running the project in debug mode.

I could definitely streamline my testing and deployment process a little, because the Xbox in the bedroom is up two flights of stairs from the PC, building in a period of anticipation as I made my way up for the first time. I really couldn't believe it when I saw the television was displaying the Special Agent title screen, and was amazed by how far I could play into the game's first level before I eventually encountered a crash due to some use of multiple movements on the same object.

As for problems, the frame rate doesn't seem quite as smooth as I'd expect from the Xbox, but the game definitely runs acceptably and it's possible that running at 50fps on NTSC has something to do with it - I'm not sure if the game's given frame rate makes a difference in the XNA runtime. Otherwise, I really was very surprised by how little I had to do before I had something workable, and by working with them to fix the remaining problems, I should be able to polish and release something really very rapidly!

Date: 2012-09-06 03:04 am (UTC)
From: [identity profile] ravenworks.livejournal.com
Going from source code to anything else is still compiling :) Just, compiling to bytecode (or I guess more properly, managed code?)

Also, the Xbox is a funny beast - it's very powerful in a lot of ways, but it also has some tremendous bottlenecks that you have to know about beforehand or else they'll clobber your frame rate. Unfortunately, this is likely something that's more in Clickteam's hands than yours...

Date: 2012-09-06 01:15 pm (UTC)
From: [identity profile] ravenworks.livejournal.com
Oh, shoot! I misunderstood what you meant - you're right, it is compiling source code into source code when you go from Gamema-- MMF, to XNA... I thought you meant how 'compiling' from XNA doesn't actually compile to native code, sorry :) But yeah, MMF is still (literally) compiling all your files into one cohesive relational thingy internally, even if its next step is then to split it back up into other files in a new format....

As for optimizing it, I think it's probably pretty fundamental things to how the engine works, unfortunately -- it's things like how there's a performance cost (that doesn't occur on normal PCs) every time you change what buffer you're rendering to, but I'm not sure whether that would even be an issue for a strictly 2D, back-to-front system. (There's no sort of 'cached' graphics in MMF, is there? Where you would generate an intermediary bitmap on the fly, and then treat that bitmap as though it were a normal graphic asset in your scene?)

Anyway, it might do to actually measure the frame rate internally, if there's any way to actually hook into the difference between a logical "frame" and an actual drawing to the screen... Maybe you're just responding to any input lag that your TV is causing? (It could be a noticeable amount, and it would probably be the first time you've felt that on one of your own games...)

Also, come to think of it, try making a 'release' build instead of a debug build. There is a ton of overhead in constantly leaving a little breadcrumb trail for itself through the program, and updating that state on your PC so it'll be ready in case of a crash, that it can not bother with if it's not a debug build; I'm not sure if that would make the difference, but it couldn't hurt to try!

Date: 2012-09-06 06:17 pm (UTC)
From: [identity profile] james mclaughlin (from livejournal.com)
Actually, the CCH also contains your events (as proprietary bytecode). You can see the VM responsible for interpreting the events in the C# code, but nothing specific to your game.

Date: 2012-09-06 06:57 am (UTC)
premchaia_pre4: [Plain question mark.] (Default)
From: [personal profile] premchaia_pre4
"compile" is valid, especially if the resulting source is in some way lower-level or more unstructured than the original. "translate" is also used, and in fact is official terminology in some languages even for source-to-object-code compilations: last I checked (I haven't kept up with the 2011 standard) the C++ standard specified that source code was organized into "translation units" that usually correspond to files but could theoretically be anything. "transpile" is a less common coinage presumably aiming to distinguish the case where the output is still human-readable; I find it ugly and mostly avoid it.

Date: 2012-09-06 07:10 am (UTC)
From: [identity profile] terrana.livejournal.com
"Transpile" sounds like it should mean moving an unorganised mess from one place to another. Not unlike compiling some programmers' code.

Date: 2012-09-06 05:34 pm (UTC)
premchaia_pre4: [Plain question mark.] (Default)
From: [personal profile] premchaia_pre4
It reminds me of the ebobgf fuhssyvat cvyrf bs qveg nebhaq ba gur Zbba gb znxr vg ybbx yvxr fbzrbar jnf gurer in Star Control 2.

Expand Cut Tags

No cut tags

May 2020

S M T W T F S
     12
3456789
1011121314 15 16
171819 20 212223
24252627 28 2930
31      

Most Popular Tags

Style Credit

Page generated Jun. 25th, 2025 06:48 pm
Powered by Dreamwidth Studios