Friday 28 January 2011

No game without cam-pain

I can do terrible blog title puns too.

Adding bits of the campaign code to the current game build (most code functions are written as stand-alone programs then added, this saves compilation time and lets me do some black box software testing on that module.

Now we have the campaign file loading and data structures initialising. This loads names, zones, base information, faction details and current unit deployments. Doesn't do anything else with them yet. Only Apache units are deployed currently. I've got some work to do on presentation. As you fly (walk etc.) into a controlled zone you're supposed to see some text (World of Warcraft style) naming the area and current security status (and like other game elements can be toggled). Needs a nice big outline font which I haven't picked yet, I'm using a flavour of "Boston Traffic" for some elements so I'll try that first.

After loading the campaign you spawn in the game world positioned in the command tent of your currently assigned base. A comms dish is right outside to quickly launch multi-player mode.

Apaches are positioned on the pads with a little added 'jiggle' to randomise position slightly for a more natural appearance. In the screen-shots you can see the floating 'helpers' over the helicopters, these display info on that vehicle, flight name, ID, mission and crew assignment. Now we have the campaign data to look at I'll add more data.

If I have some criticism of the game so far it's some of the z-clipping artefacts you see on foot. Again its something I see in AAA games too and there's not much I can do about it, Dave and I have tried to mitigate it as much as we can. It's going to be one of those things that will get mentioned no doubt. It won't get in the way of the game and a small cosmetic issue, but one that bugs me still.

Things I'd like to add later, clouds (multiple layers) and procedural grass when on or close to the ground. Maybe have one or two terrain texture layers generate some billboard sprites for a grass texture, I don't know if that can be done at shader level, I suspect not so my initial thoughts were a treadmill of 200-300 billboard sprites updated when you move close to the ground.


Command tent spawn

Multiplayer comms tower

Apaches assigned to base pads awaiting assignment

Walk up to one and arm / mount

Spooling up

Take-off over the base

North to Herat

Entering nearest zone, some popup text needed

Yank and bank

Need procedural grass / scrub I think

Fly using HUD alone, don't look at the helo


Might make good wallpaper...


Some of the random 'jiggle' might put the tail end close to the edge of the pad. Need to bring the centre point forward a bit for Apaches. The centre point for the Apache model is just under the rotor mast. We add 0.5 meter random offset and +-25 degree rotation.

Still working on the ground AI spec, it has a 'supergroup' structure meaning a number of vehicles are treated as a single entity but each individual vehicle object in the group is responsible for seeking out its position within that group. Road following has me stumped since it's a bigger problem than you might think, worthy of a whole lengthy blog topic.

The functions for the COIN and event generation are still at prototype stage and changes every time I look at them. Once I add the AI/mobs to the campaign loader I'll add some blobs on sticks to represent insurgents, see where that takes us performance wise. I'm kind of scared a little to go from prototype to in-game, it's harder psychosocially to make changes once that happens.



Last few weeks

There has been so many little things to do, so much it's paralysing to think about, the trick is to hunker down and just do one little thing at a time. When programming output stalls it's been back to editing and refining documentation. I've been scouting the job market again, had a few interviews for various positions, phone interview at Codemasters was a bit strange since they didn't quite know what to do with me and Unity apps were not what I wanted to work on (they would benefit a heck of a lot from my back-end experience). But there's a lot more C# opportunities locally now and my 10 years of web app / database development experience should count for something (lot of interest there).

It used to be that I wrote this blog for the benefit of other team members so they can see what I've been up to. Now I'm mostly using it to reinforce thought processes for my own benefit but I do get some great feedback from some of the regular readers. And I can't thank you enough.



Parting shot

I also got into trouble for suggesting that other sims were not paying attention to general gaming conceits and being player unfriendly.  The resulting attack left me dumbfounded at first, which now just left me angry, angry at myself for being so apologetic but I agree that in context I shouldn't have mentioned those games by name when I was talking about general concepts. Peer review is something integral to software engineering. Game developers commenting on games? Surely not. Gamasutra publish industry opinions blogs and analysis daily and each item is open to critique and feedback. I'm not the most tactful of people but I'm honest to a fault.

State of the game

Well, lots to so still. If we had the budget for full time work we'd be getting a demo ready for Easter by now. As it is we're still pushing forward. The game design is crystal clear in my head, the working code is close to how it should be, there's some front end elements to add and the whole mission cycle is missing. It's quite thrilling to see the campaign loading and things beginning to effect what used to be a static world. So it's getting there one build at a time. Easily another six months work.

18 comments:

  1. That'S a great work, keep it up !

    For the "Parting Shot" paragraph, i think that big corporations aren't much interested in sims because it's synonym of to few sales, the second fact is that a big part of gamers seems to be too lazy to read a manual and be involved in a simulation, i don't want to make a generalization but it's the feeling i have...And the casual/indie scene seems to push in this direction a bit more.

    Don't forget that most of gamers aren't gamers anymore but media consumers...

    Thanks to you and other teams (like for DCS with the A-10), simulations aren't dead yet.

    ReplyDelete
  2. Beautiful pictures! Especially the horizon in the distance:)
    Another great message from you will release a demo.
    I have weak English in order to understand the whole context, but I think the people who want to buy this simulator, and longs for the most difficult and realistic simulation.
    Easy simulators is a lot, I hope you do also the most complex simulation as possible,without any compromises for lazy people.Should be difficult, should be complex, may require a lot of clicking and avionics science! ;)

    ReplyDelete
  3. We're not interested remaking games like Armed Assault. Even though you can explore and interact with your environment on foot it's not intended to be an FPS at all.

    New choppers are planned if financially viable, work already started on the CH47D.

    The Chinook replaces the UH60 in our original design. The standard missions will be insertion, extraction, supply drops and casevac with Apache(s) as escort. There will be an AI CH47 in the release for these dutues.

    AI missions will be available for editing by players so they can decide who gets a supply drop from the limited available resources.

    ReplyDelete
  4. "Some grass like objects on the ground in a simple way would be nice. I guess it´s consuming not too much ressources but giving a great increase towards a living environment and feeling the speed when flying low."

    100% support! I miss the most in eech just lack a sense of speed, altitude and feelings.
    Any objects on the ground, let him repeat a half meters at very enhance the feeling of flight, and make it easier to fly.But maybe this is a completely different technology, engine, and it will not be as noticeable as the DX7.

    ReplyDelete
  5. I don't think there's a problem with the sense of speed in the air. Very early in the project I was using the engine vegetation system to place grass and it's easy to do it badly.

    In the Apache, due to your height and structure around you, at ground level grass needs to sit 2+ meters away (extending to 10 meters on the nose). In the air you're extending that to hundreds of meters and it really doesn't add that much. And looks like "yeah, grass objects that spawn close, seen it"

    I'll do a blog post on it in the near future as I've got a lot of screenshot references that illustrate the gulf between reality, what's possible in LE and who's done it well etc.

    It works well for when on the ground. If you examine foliage in Apache Air Assault, look at the scale of it. Take a good close look. You need to supersize everything to fill real estate which would be most noticeable on foot when the grass is taller than you.

    It's a matter of finding the right 'trick' and only using it where appropriate so it's subtle. I've not found the right trick yet. It may be that different rules for ground air and are needed.

    ReplyDelete
  6. I think effects DX9 assure smooth flight, and feeling the ground. If you can fly above the earth in CH dont wondering how much you have to ground,and not looking at the height indicator because you know, it's all ok ;)

    ReplyDelete
  7. I appreciate the dialogue Thomas. I wonder how they do the grass in A10, it sort of looks like our early grass using the Leadwerks engine (LE) but it's not procedural in LE.

    I don't have access to VBOs which is how you might add such details in OpenGL. They need to be part of the engine rendering pipeline. Only way I think I can do it is setting up billboards as entities or a group of entities which is a bit wasteful. Unless the emitter object can be used in some way....hmmm...now there's a thought.

    ReplyDelete
  8. I like where you are going with this. Keep up the good work!

    ReplyDelete
  9. "The other thought was that I always liked cockpits moved by G-forces in every sim I had. This adds immersion and enables you to "feel" the chopper a bit better because the sense of balance (or similar) deliveres no data to your brain in sims."

    I love too gforce head movement ;) if it is not a problem, it would be regulated in the cfg file or on the menu, as it is in eech , and each set himself such a value, what he likes.
    g-force_head_movement=6.0 # amount of head movement caused by gravitational force (wideview only) (n = Gs, 1.0 = normal, 0.0 = off) (default = 0.0)

    ReplyDelete
  10. In practice wobbly cockpits are a pain in the arse to click on. TrackIR makes them even more so, in the videos you can see me leaning forward just to hit buttons.

    It's on the list of features to cull so it will appear at some point. It's not an effect I like in sims, the IHADSS provides much better and accurate data on how the chopper is moving.

    Rotor blur is something that keeps coming up.

    A blurred rotor model will be added eventually. In videos the RPM isn't representative at all due to the way frame rates slow down during recording and rotation is tweened between actual frame time, it's an animation effect. Actual RPM is fairly consistent especially when it's frame rate locked at 30fps.

    Tress will get a distance LOD weighting from camera height, still to add. They are not a problem frame rate wise, it's the shadows on high LOD models that suck out performance. It's a trvial tweak I keep overlooking.

    ReplyDelete
  11. thanks for the reply:)
    the difficulty of hitting the button that's true, but most people do not use TrackIR(i ;)), and in this case,Such gforce give a true substitute for TrackIR(in the sense of feeling 3d cockpit)

    ReplyDelete
  12. looks good flex...

    I for one dont use g-force head movement due to it being unrealistic... your brain compensates for movement subconsciously. And I realize that using it in a sim is a way of compensating for no real G forces but it still doesnt feel right to me. I didnt have a track IR for many years and i still didnt like it. now that i have one it is pretty much out of the question.

    As far as grass goes... I feel its not needed for a flight sim. or just make it a heavily biased LOD so it goes away after 50 feet or so.

    As far as ARMA, I have to say I really like flying around in Chenarus... Yes its a laggy mess in the cities but holy cow it's something to behold isn't it? I love carving up the canyons at tree top level searching for AAA or infiltrating.

    Ive made 2 missions for choppers in Chenarus and I thoroughly enjoy them.

    All we need now is a killer apache with a good flight model.... maybe COMBAT HELO!!!

    I called nick cage for you flex... he said he will do the voice overs for the price of a free copy of the game and if you pay off his IRS debt of $40,000,000,000,000.

    Now get back to work.... we want a release candidate by Easter!

    Jeff

    ReplyDelete
  13. Jeff made a typo,He wanted to write :
    Now get back to work.... we want a final version by Easter!

    :D

    ReplyDelete
  14. Ok at the end this movie is perhaps best demonstrates what we think, together with Thomas
    http://www.youtube.com/watch?v=qvtnrNMtbLk&feature=player_embedded
    We all have high expectations for this simulator, and here you can also write some suggestions, and Flexman and so chooses what it seems to be the best and possible to implement;)
    About the realism, simulation, and the physics of flight i do not be afraid, because I know he will be very good, and what we write is a little important details are, but sometimes the details are important too;)

    ReplyDelete
  15. Just beautiful!!! Great progress.

    ReplyDelete
  16. Hey Flex

    You probably don't need to hear this (again) but I gotta say it - Combat Helo is looking awesome :p pretty much the only up-and-coming PC game I'm looking forward to at the moment. Reminds me so much of those old sims of the 90's - has that same 'handcrafted' look to it that those games (almost) always had. Also really looking forward to playing another sim with a decent dynamic campaign .. which brings me to my question; I'm thinking of developing a game myself and from what I've seen from looking around you are probably the guy(s) who are gonna be able to tell me if it's all going to be possible and if so what engine or whatever I would be best to use. As you can probably tell I know f**k all about game development but I'm keen to learn and have checked out a few different options like Unity, Ledwerks and Visual 3D but still don't really have any idea on which one to use or where to start. I have a pretty unique idea and you are the only Indie developers (I know of) who are already doing something similar (I'm not making a helo sim though, so don't worry I probably won't be going into (serious) competition with you guys ;)
    Anyway in a nutshell if I were to send you a design document or something and you could give me a bit of feedback that would be greatly appreciated.

    I look forward to hearing back from you..

    Take care, go well :)

    Tamrin.

    P.S. 'Hellfire' is an awesome book - about a British Apache pilot who flies in Afghanistan. You should check it out sometime :)

    ReplyDelete
  17. Oh - by the way .. I realise suggesting I send you my 'design document' was pretty stupid. lol. I wasn't really thinking. More like a general idea the game and some of the features I thought you might know a bit about :)

    Cheers

    Tamrin.

    ReplyDelete
  18. Well tfj, I'm not sure I'm the right person to talk to about such things anyway.

    Generally I'd advise going with Unity as it's more of an object tool. Games are objects with scripts that are strung together.

    With APIs like Leadwerks you really need to do a lot of nuts and bolts programming. I don't know what sort of game you had in mind but I'd stick with the right tool for the right job.

    As for competition. I honestly, sincerely hand on my heart do not see other games or developers in competition with each other. They churn out dreams and ideas that everyone can try. It's not like buying a car or laptop where the user can only typically afford to buy ONE. Games are more democratic, to the point of being disposable but they leave behind ideas and threads that can re-emerge later in other games.

    I will say this, presenation can be everything. Take Angry Birds, it's not that much different from Bannanas or Tanks but it's presented in such a charming way. Same goes for Little Big Planet, a visual game SDK that is loaded with charm and doesn't feel like programming system or editor at all.

    You can take really tired old ideas and present them in such a way you can earn fame and fortune. Simulators and simulations are no different. The trick is finding the hook.

    One of the things we're trying in Combat Helo is a more fluid type of game, not so much select / fly / land / repeat with load times between. It's possible to accept some assignments mid-patrol. So called 'ambient' quests will be triggered by sighting objects or via the radio.

    ReplyDelete