Wednesday 19 October 2011

Don't Panic

Yes Panic.

When you're rushing to get a reasonable build ready for hammering out problems I'm finding I'm making all new problems. Going over the HMD code I realise how badly it needs rebuilding, there are existing elements that need updating, a few new ones that require adding. There's no way to rebuild the HUD in time.

Another problem. LUA in the Apache entity. Works in the first instance, but fails in subsequent entity spawns resulting in the inability to mount the aircraft. It's an issue relating to LUA accessing keys stored in the model. I want to rip out all the LUA code from models except for the model initialisation that puts on pylons and attaches the rotor models. Not much time to deal with that either.

Dual Seat configuration.


The interaction between front and rear seat was not well thought out early enough, instead I opted for a 'duality' where all features could be operated from either seat with just some interface differences. I should have opted for a strict seat A can do xxxx and seat B can only do yyyy. This was a mistake in my attempt to simplify control but ended up introducing more complex logic.

It's not too late to undo this but a difficult process to start. If I have to design this game all over again I think I would probably nail down all of these problems from day one. Hindsight being wonderful.

TrippleHead - lot more pixels to post process, looks great but a GPU strain




16 comments:

  1. Good old hindsight....

    Im surprised that the .Lua stuff is failing for you. I thought it was considered the best thing in game programming lately. Although, I do know A-10 has been having some issues with it, but, then again, these programs aren't "Usurper" are they. LOL.

    How much rewriting time do you think you have to spend?

    ReplyDelete
  2. Coding conundrum. As you find new ways to code a particular system you find that you could have applied that to earlier coded systems. As a perfectionist its a horrible dilema and difficult no doubt to leave it alone.

    Nice triple head shots, also nice to see is exported MFDs which is where lua is handy.

    I dont think anyone expects to you to release the Range Apache completely bugless or perfectly modelled for that matter so I wouldn't worry too much Rich. Get it out, so development can continue on the finished version !

    ReplyDelete
  3. Hi!
    I assume the situation is not as simple as it appears to an outsider but the most important thing is that you don't rush and create a quality product instead with the "it's done when it's done" mentality. I know this will be just a preview version but the community can wait and support your efforts in creating this awesome sim!
    This already looks amazing!
    Thank you!

    ReplyDelete
  4. LUA is as good as it's implementation.

    See, if I do something like place Apaches in a map at load time, the LUA initialises OK. If I create Apaches post load time, LUA access to keys within the model work.

    There should be no difference, at load time any Apache entities are replaced with a spawned Apache entity as the spawn code initialises a lot of game related classes for simulation.

    This manifests by spawning an Apache, approaching then attempting to board, you'll get a message that reads "No slots free". Slots being player positions defined in the model. It's part of the system where we can add new vehicles and specify in the LUA where and what role each position has. I might as well create another data file for a vehicle to do this and then it further separates our game data/assets from the engine (as the LUA is bound to the Leadwerks engine implementation).

    It's not a show stopper by any means, just one more little frustration that will require a bit more time to fix up. One more file to add when I shouldn't have to.

    On the other hand adding a vehicle crew file means I can add and edit camera views more easily than hacking a breakable LUA.

    ReplyDelete
  5. And I wish I had a top end video card that can run tripplehead resolutions at 60fps, sadly it drops to 20-30fps for me, all those extra pixels being post processed :/

    But it IS a breathtaking in cockpit experience, I do have to remind myself sometimes that this is something we made. I'm used to less than pretty views of flat test maps with gaudy colours in a little window. Going from that to tree-top skimming at sunset with surround views. Ugh, a delight. Gimmie a projector and a big screen.

    ReplyDelete
  6. Flex, let me ask from the other end of the graphic spectrum - how extensive will the graphical trimming be - to be able to run this beast on slower machines?

    I know you spoke of Crysis-like machines for optimum performances, if I remember correctly, but what about the least powerful ones?

    Do you already have any plans as to what can be tweaked for higher FPS?

    ReplyDelete
  7. Sorry for OT, just saw that one:
    Arrgh, they got all the access they needed...:
    http://www.youtube.com/watch?v=4i2jqX9Jd9Y&feature=feedu
    Would they allow a little team of indi developers
    to do the records? I guess, money plays a huge role?

    ReplyDelete
  8. We already have recordings of an Apache from a Dutch airbase, they are not perfect, conditions were not great (windy despite having a dead cat fitted to the mic) and we'd love to have more of the stuff like doors (which we do have but from a different ac).

    One thing I'd love to get but is the hardest to work out, is a clear single shot audio recording from the 30mm cannon. Only recordings I've heard are from camera tapes which are poor quality internal recordings of multi-round bursts.

    We were working with a sound engineer who was organising a trip to Fort Rucker for recording but there was a terrible shooting incident on another base which made access politically much harder at the time.

    Additionally our engine doesn't let us have sound cones so we can't put in as much fidelity but sound *IS VERY* important to me. Right now I have glossed over it with placeholder audio, it's something I'll be putting a lot of effort into during the course of the project.

    ReplyDelete
  9. @Jožo Kundlák

    The thing about the 3D engine we're using is that there is a really high initial cost (in performance), but scene complexity doesn't have as much impact as does in traditional forward rendering engines.

    The biggest factor is how many pixels there are and how many times they need to be processed (for post processing effects like full screen alias, HDR, bloom).

    bigger resolution = more video card fill rate

    Removing detail from our game wouldn't have much effect until you remove a lot. Compare my test area which is like a flat green table-top with some trees and vehicles. It doesn't run that much slower than the Gunnery range, it just loads a lot faster.

    But there are optimisations still to be done.

    It is a modern 3D engine and according to Steam hardware statistics (which samples millions of PCs) our game will run on 88% of those based on published data.

    Happy with performance unless I'm using post-effects in tripplehead resolutions. That's not something I can do much about except add a more recent 3D card (I use a 460 GTX which is getting a bit old now). Optimisations in HUD/MPD rendering won't have as much effect on that, shaving a few instructions in the FXAA shader or HDR will.

    Removing normal maps from the cockpit can have a big effect since it's a complex entity that covers a lot of screen area. That's something that can be done fairly easily at the cost of making the cockpit appear more shiny.

    ReplyDelete
  10. Thx Flex!

    An answer I was hoping for :)
    Anything you can do on the optimization front, will surely be helpful for older machines (though I understand that newer tools need newer hardware and we are not in Longbow2 era anymore).

    Way to go!

    ReplyDelete
  11. Just saw that YT video of the sound recording... Shame, such "detail" for such "shit" arcade game... just my opinion!!!

    I noticed though they were working with AZNG. I remember Matt Wagner had worked with PANG. I wonder if National Guard units are more lenient to this kind of interaction...

    ReplyDelete
  12. By the way, I would like to see a CH video to the music of The Island soundtrack by Steve Jablonsky :) Track # 3 Title Sector 6 to be specific :)

    ReplyDelete
  13. http://www.youtube.com/watch?v=4i2jqX9Jd9Y

    I didn't see the part where the Apache does a barrel roll :/ did I miss that?

    Great audio work, expensive.

    ReplyDelete
  14. The thing with Arcade games is, that flying, target id, shooting and all that stuff is simplyfied. So what to make playing more attractive and competitive for the arcade crowd? Yes, Apache is dodgeing SAM`s with barrel rolls, endless enemys with endless missiles. Flying with Fighter Jets trough skyscrappers.. and so on.
    Though, I really like story driven flight games. If they would make AC for PC, I would give it a try.
    It seems that a realistic flight simulation, with a story, a great Soundtrack, Dynamic Campaign + actual graphics isn`t doable or would cost to much money. So I will continue to jump from one game/simulation to another... :-/

    My comments have nothing to do with CH. I just like to discuss it with you guys. :-)

    ReplyDelete
  15. I loved that movie, "The Island", total rip-off of an old b-movie called "Parts - The Clonus Horror". Ewan was great in it I thought.

    Nice soundtrack. Might add this to my collection.

    ReplyDelete
  16. @Eagle

    I love games, all kinds of games so my beef with the latest Ace Combat is not that it's a shooter but how bad it played compared to the previous Ace Combat game which I thought was an excellent production.

    We've seen the blend of story, simulation (more so that Ace Combat) and flying over cities with Origin Systems "Strike Commander".

    Apache Air Assault was another well executed game. Story is hard to do, but even in Combat-Helo I think we can make you feel connected to what you do IF we had the budget to add all the little touches need to do that.

    ReplyDelete