Wednesday 20 April 2011

Screen-shot of the morning

Number 1659. Moment of Zen.




Cursors/Zones and offscreen-buffers

I was sent a detailed layout of how an XBOX 360 controller could be mapped closely to the CP/G handgrips for inclusion as default controller layout. What struck me was the predominance of the 'thumbstick' as an important interface component. For a while now "mouse to buffer" problem had been bubbling around my head, it was something I tried months ago but put aside for later. Well yesterday was that later and using a special mouse pick and taking the xyz (well xy anyway) from a valid pick on the virtual display surface, then subtract the local entity position, you get a valid relative co-ordinate you can simply scale to suit your display. It works much easier if you have a display co-ordinate system that has the origin in the middle of the display.

curpos = Vec3(mfdpick.x, mfdpick.y, mfdpick.z).Minus(mfdpick.entity.GetPosition(1)) ;
 mfd.SetCursorPos(curpos.x, curpos.y) ;


In SetCursorPosition() you'll need to multiply x and y by some scale to match world units returned by the pick and object width/height ratio).  Works independent of screen resolution. Our implementation allows you to  easily move the system mouse across and through many virtual displays. Who needs Scaleform?

Below is an example of the FLT page, all pages now sport automatic generation of hot zones (debug in red), the thumbstick/mouse controlled cursor is near the middle (green circle with 4 lines radiating out at 45 degrees). The system mouse is automatically hidden and shown when moving across virtual display surfaces.


This was needed not just for interior helicopter use, but it's also a big part for the mission planning and map interface.

Mission planning or command tent functions can be considered a "hub" activity. When not in your helicopter, this is where players should be spending the most time. So it needs to have a gravity, an environment to match this weight. Meanwhile AD worked on some ground objects to use for virtual display devices. The mission planning system will be run on a laptop. Using code developed for the Apache TSD with some interface elements added, you use these much in the same way you interface with everything else, walk up to it and use the darn thing.

Mission Planning furniture

The Xombat Laptop open

You can even close it but save your work

As a hub, mission planning needs to occupy enough virtual space to allow easy user identification as a place of importance and allow easy navigation with around 4 other players present. So we're looking at a whole walk-around table with laptops and assorted non-interactive furniture.

Mission planning on the laptop taps into the campaign engine and planning involves taking that route data identified by a snappy codename and assigning it to the player editing. The projector serves as a public viewing device, it is a read only interface that can select a single mission profile to view. This allows a single planner in the laptop interface to edit a mission profile while everyone else in the command tent can see and discuss. Missions are assigned to the player operating the terminal or attached to a specific aircraft on the pad. Missions are finally bound to aircraft when a player mounts as the pilot (assume sort of data cart upload on boarding).

Base radio set. Buttons work apparently

I'm finishing off the mouse/events for the TSD and FCR (symbols etc). They mostly just emulate existing MPD bezel button presses but it also needs to select glyphs such as individual Hellfires etc.

So, for that uber CP/G experience, an XBOX 360 joypad is the closest off-the shelf controller you can currently buy.

*update*

Gratuitous images of operating existing MPD functions with cursor controller. Just got the "mouse up" to sort out for drawing PFZs.





AD has been working on some refreshments and reading material...


The flight manual seems a little thin. My A-model binder is about 3 inches wide :)


*edit* Here's an original fresh-install locker from Longbow 2 complete with my favourite mug :)

Apache Helicopter Pilots Kill Mimes!

18 comments:

  1. It's really great to see it growing and on the other hand it's really hard not being able to ride it. ;)

    Continue the excellent work!

    By the way, nice website you have now. ;)

    ReplyDelete
  2. Wooow....Flex and AD and everyone who is working on this....this is totaly amazing!!! MFD pages look great, love that rich amount of objects on the desk and especially 1911. :-) I dont understand, how can You create something so much cool from nothing. I really admire Your work. Cant wait to walk to "my" Apache in the morning after briefing just like its on the first screen in this post. Beautiful. I dont think its really neccessary to have 600 pages manual for this. If its too thin, print it on 300g paper. :-))) Cant wait for some new screens and maybe videos about systems, MFDs etc? :-) Thanks.

    ReplyDelete
  3. One more thing....will be possible to exchange PFzs with wingmen?

    ReplyDelete
  4. PFZs yes. And other data. There's not much use for them. They were meant for high intensity warfare. Other things you can send over the battlenet include waypoints and target lists.

    ReplyDelete
  5. Cool! Thank You. When You mentioned it, its logical. Why use PFZs on 5 insurgents, 1 goat with cart and pickup truck. :-)

    ReplyDelete
  6. If You somehow keep this sim in the spirit of Gunship 2000 or Strike Commander, will You include lockers, where we will create pilot profiles? :-) I always loved those awesomely drawn menus with two-stage animations...

    ReplyDelete
  7. I wanted to add that no bitmaps are used at all for any of the the MPD pages. Only texture memory they use are the buffers they are rendered on.

    Once drawn they exist as chunks of pre-assembled geometry that sit on 3D card which makes them very efficient. That offsets the texture/buffer memory needed for the PNVS/TADS system.

    ReplyDelete
  8. We have a 3D locker with hinged door.

    I was talking about those the other week. The config files have pilot profiles.

    I keep trying to persuade AD to make me a 3D mug with the words "Apache Helicopter Pilots Kill Mimes" with the cross-hair over a sad smiley. That was in LB2 and always tickled me.

    Might have to get me one of those from CafePress.

    ReplyDelete
  9. Funny it should be mentioned, but only last night I was looking at the locker. It's a nice locker model but it doesn't look right in an aircraft hangar.

    I'll add a couple of them to the command tents on the herat map and put together that mug. It'll finish off the table scene nicely. Any screenshots available?

    Cheers

    ReplyDelete
  10. I love this sky, it is a specified quantity of the clouds, or is it completely random?

    ReplyDelete
  11. It cost several grand to get an SDK to do clouds like that real=time. It's a combination of painted sky and dynamic blending.

    Just firing up the Virtual LB2 PC to nab a piccy for you AD. Will glue to bottom of this blog entry.

    ReplyDelete
  12. Thats really funny, like the locker came on our minds. :-) I dont demand this, but I was just thinking, how will be pilots log done. It also can be an empty bad in barracks and when You create a pilot, handing helmet will appear or something like that. OK....forget it. :-)

    ReplyDelete
  13. No no, the locker method of choosing pilots was always on the to-do list. If there's no 3D object for it then it's hard to make these choices in a game that avoids the loading and downtime of traditional GUIs.

    ReplyDelete
  14. Fourteen hundred kills, 'Speed' was quite the pilot, he'll be missed. Can I have his mug and his compass?

    Cheers

    ReplyDelete
  15. Sorry...didnt know You've already mentioned it. :-) Is it possible to add picture here?

    ReplyDelete
  16. really looks great flex... you've been on a mad tear I see... lot of progress is happening lately.

    ReplyDelete
  17. It's a continual work effort on my part, it's only recently I've been able to commit full-time. I work 9 to 5 every day, sometimes the odd hour in the evening and sometimes on the weekend.

    AD's been on 'holiday' which is good from my point of view since I get more toys to play with. I have a backlog of objects that need some degree of integration.

    I sure look forward to NOT working on this so intensively. It's kind of wearing and I'm not getting paid for it either. Are we there yet?

    ReplyDelete
  18. aww C'mon... its ONLY been 10 years...

    ReplyDelete