PORTING FROM XNA 3.1 to XNA 4.0
so, this (above) is what I've been doing over the Christmas holidays!...
well, it was actually only an hour or two's work, but here's a summary of things that we had to do:
we've moved to the latest version of Box2D.XNA, which is XNA 4.0... I'm not sure when they switched, but I just grabbed their latest source. There was only really one change I had to make here, relating to the raycast callback function.. other than that, it "just worked". Great!
There are minor changes to XNA's graphics API - most of these seem sensible ... vertex buffer's contain their vertex declaration, so less chance of a programmer slip-up.. and the way in which you change the current 'render state' / 'blend state' etc.. has been changed slightly.
I haven't gotten on to updating our save game save/load functions - but it looks like there are a few changes there.less of a headache than expected, so far! NEW UI
Some of the feedback we got for EGV1 was relating to the text-based UI... it didn't match the rest of the feel of the game, and (while perfectly functional) felt a little tacked on.. we're addressing this in the sequel by changing to an 'icon based' expandable context menu..
as you move near an object/NPC you can interact with, it lights up.. if there is only one interaction you can make - pressing SHIFT will start this interaction.
if there are a number of interactions you can make (e.g. twist right, twist left, use breadknife), pressing SHIFT will expand the menu to show all possible options.. pressing left/right will change the selection from the interactions, and pressing SHIFT again will perform the selected action.
actions you cannot currently perform (because you don't have the inventory item, or whatever) will not be visible.
so far it's looking much more flexible, and easier for a new player to understand... there is no longer a concept of "currently selected inventory item", as this is not really necessary.ANIMATED MOUTHS
(possibly not final images!)
we've got animated mouths! EGV1 didn't have this. EGV2 does.
for the majority of dialogue situations, the mouths just open and close non-stop while the player is talking (not sync'd to words)... but for a couple of more key/dramatic moments - we've actually got the opening/closing of the mouths in time with the speech.. this is really noticeable in the opening sequence of the game.
we've got a tool for recording the timings for this - which means it's very quick to knock up lip-sync data for the ComponentMouthCoordinator to read.
it's amazing the difference this had made already...it's a lot clearer who is speaking at any given time (in EGV1, the heads would 'bobble' as characters talked).. and it allows us to have characters speaking while running, sitting, or doing anything else, without worrying that it may be unclear who is speaking. GREAT.
we found that moving the whole of the chin caused the characters to LOSE THEIR SOULS
, and look like puppets. it was really freaky..kinda creepy.
but by moving just the lower lips (angling slightly), adding a few teeth (taken from someone else.....), and using a couple of frames - we can actually create quite a nice cartoony talking effect...with the characters still looking 'alive'.... although I'd imagine it's hard to see that from just the heads, out of context... - in the context of the game, it looks really neat! (and not at all creepy)