Page 1 of 14

Holiday Project

Posted: 2009-12-23 10:53pm
by Starglider
Guilty confession; I really should be working on more AI stuff over the holidays (e.g. the web-based demos), but I'm kind of burned out with all the data mining I've been doing this month, so I'd really prefer to work on something else.

Here's one possibility; a while back when I needed to brush up on my C# and DirectX I made this program. It's a semi-realistic simulation of a red-tailed hawk. It uses an Xbox gamepad plugged into a PC - instead of the usual aeroplane controls, each stick moves one of the wings (the triggers are used for flapping). Flying is actually fairly challenging, because the aero model captures most of the basic instabilities, and you have to move the lift and thrust axes for each wing around to achieve the maneuvers you want. The objective was for the controls to feel somewhat like actually being a bird, and I think that works fairly well.

Image

Anyway it's not really in a fit state to release, but I could probably complete it over Christmas (e.g. add waypoint races, variable wind, thermals, sound, legs on the bird model, more species and landscapes). Anyone interested in playing it? The major problem is that it needs a wired Xbox360 controller or something very similar. I suppose in theory it would run on an actual 360, but that would require figuring out Microsoft's 'indie content' publishing scheme (plus I don't think you're allowed to release stuff on XBL for free).

Re: Holiday Project

Posted: 2009-12-24 04:22am
by salm
Heh, pretty cool. Too bad i don´´t have a 360 controller.

Re: Holiday Project

Posted: 2009-12-24 05:01am
by Starglider
salm wrote:Heh, pretty cool. Too bad i don´´t have a 360 controller.
Hmm, I don't suppose you have two mice then? I'd have to look up how to read from both USB mice independently...

Of course I could just disable all the physics and map yaw/pitch/roll to keys, but that would remove all the challenge and uniqueness.

Re: Holiday Project

Posted: 2009-12-24 08:48am
by salm
I´ve got two mice. Controlling a bird with two mice sounds cool, too.

Re: Holiday Project

Posted: 2009-12-24 11:53am
by Darth Paxis
Sounds interesting, I have a 360 controller, can I try this, please.

Re: Holiday Project

Posted: 2009-12-24 05:00pm
by Ace Pace
Another person with no controller, though it looks very nice.
While mapping to keys makes it easier, I suggest you try that, or look into the XNA API for mice with wheels that tilt left/right in addition to wheeling up and down.

Re: Holiday Project

Posted: 2009-12-24 10:50pm
by Hawkwings
This looks very cool and I would definitely try it out.

Re: Holiday Project

Posted: 2009-12-25 06:09am
by AMX
Starglider wrote:
salm wrote:Heh, pretty cool. Too bad i don´´t have a 360 controller.
Hmm, I don't suppose you have two mice then? I'd have to look up how to read from both USB mice independently...
Maybe an old-fashioned serial mouse (that is, for a 9-pin COM port) would be easier - that's what the "2nd mouse" profile in Serious Sam uses.
Of course I could just disable all the physics and map yaw/pitch/roll to keys, but that would remove all the challenge and uniqueness.
Basically turning it into a simple flight sim that happens to have a "bird" model instead of an "airplane" model, rather than the actual bird sim it is now?

Re: Holiday Project

Posted: 2009-12-25 07:42am
by Zixinus
Have a wired Xbox 360 controller, with a fairly powerful rig here. If anything, your project here sounds at least an interesting thing to try. So sign me up.

Re: Holiday Project

Posted: 2009-12-28 11:53am
by Starglider
Well, I did a bit on this today; youtube. Currently the physics are a fairly realistic simulation, and that works ok for mild maneuvers (as long as you constantly correct) but makes it very difficult to pull off hard maneuvers (e.g. you can stall one wing but not the other, which tends to result in spinning into the ground). I'll leave that in as an alternate control mode, but as I suspected I'm going to have to write a new flight physics kernel for gameplay purposes, targeting player experience rather than physical realism.

Re: Holiday Project

Posted: 2009-12-28 02:15pm
by weemadando
I'd like to give it a try and have a 360 pad to use.

Re: Holiday Project

Posted: 2009-12-30 05:29pm
by Starglider
Destructionator XIII wrote:I'd imagine that it would be very hard at first, but after playing it for a while, it will become easy.
I have got fairly good at it now, but the one thing I can't manage is inverting the bird. Almost every time I try that I lose control and crash, unless I am really high. It is nice as a sim program but it will probably be too frustrating for racing or dogfighting.
So yeah, count me in to try it too. Don't worry too much about having it all beautiful for release - I'd have no qualms about using pre-alpha programs just to play with.
Currently I am writing a proper terrain engine with tiling and variable level of detail, to replace the static polygon grid in the initial prototype.

Re: Holiday Project

Posted: 2010-01-04 03:39pm
by Starglider
Starglider wrote:Currently I am writing a proper terrain engine with tiling and variable level of detail, to replace the static polygon grid in the initial prototype.
Getting there though still not something you'd want to play yet. Alas I spent most of the Christmas break doing overdue DIY work on our house.

Re: Holiday Project

Posted: 2010-01-07 07:06am
by Starglider
Image

Looking a lot better with working trees and a proper sky renderer. Still not quite playable; crashing into anything tends to fling you in a random direction at approximately mach 8.

Re: Holiday Project

Posted: 2010-01-07 07:29am
by salm
How do you create the game world? Do you have some kind of editor or do you make it somehow different?

Re: Holiday Project

Posted: 2010-01-07 07:32am
by Starglider
salm wrote:How do you create the game world? Do you have some kind of editor or do you make it somehow different?
It's procedurally generated. I write an XML file defining key parameters, such as the physical dimensions of the bird, land to sea area ratio, the bumpiness of the hills and the branch angle of the trees. The program transforms that into a series of 3D models at runtime. About half the textures are procedural, the other half are photomanipulated stock images.

Re: Holiday Project

Posted: 2010-01-08 02:25am
by Starglider
Starting to add some enemies. These things look fairly repellent slithering around the sky. It should be good when a swarm of hundreds of them descend on the island and start eating all the trees.

Image

Re: Holiday Project

Posted: 2010-01-08 08:19am
by Zixinus
How about tasks like hunting then? Or human-made obstacles or other birds? One of the game's objectives could be to woe another owl?

Either way, this thing starts looking rather awesome.

Re: Holiday Project

Posted: 2010-01-08 08:38am
by salm
Since you´re mainly in the air other stuff in the air would make sense. Floating obstacles like hot air balloons and crap like that to make the air space more interesting.

Re: Holiday Project

Posted: 2010-01-08 08:53am
by Lusankya
Does the game include things like thermals that you can use to gain lift without flapping, or is it just assuming fairly generic atmospheric conditions?

It'd be cool if you could ride up high on thermals, or ride the wind up hill ridges or things like that.

Re: Holiday Project

Posted: 2010-01-08 05:07pm
by Sarevok
Starglider wrote:
salm wrote:How do you create the game world? Do you have some kind of editor or do you make it somehow different?
It's procedurally generated. I write an XML file defining key parameters, such as the physical dimensions of the bird, land to sea area ratio, the bumpiness of the hills and the branch angle of the trees. The program transforms that into a series of 3D models at runtime. About half the textures are procedural, the other half are photomanipulated stock images.
Is the procedural generation done by a library or your own code ?

Re: Holiday Project

Posted: 2010-01-08 05:12pm
by Starglider
"You will explain yourself immediately!"

"Well sir, we had multiple confirmed sightings of the extradimensional menace..."

Image

"...so I despatched Adept Sheppard immediately to erradicate the infestation..."

"His mission was to defend the island! Instead your man fires off some kind of unauthorised personal spell..."

"I believe he calls it the Mark 4 Mod 3 Super Plasma Implosion sir..."

"Don't interrupt! The point is, the entire island was destroyed, nothing but ash left!"

Image

"Well Sir, he said it was the only way to be sure..."

Re: Holiday Project

Posted: 2010-01-08 05:23pm
by Starglider
Either way, this thing starts looking rather awesome.
Thanks.
Zixinus wrote:How about tasks like hunting then? Or human-made obstacles or other birds? One of the game's objectives could be to woe another owl?
A few people have suggested challenges based on natural bird behavior, but I'm struggling to think of a way to turn them into compelling gameplay. Simulating stooping on rabbits, sparrows etc might be entertaining for ten minutes or so but if that was the main activity I'm pretty sure you'd get bored of it quickly. Thus the fantasy elements.

The trees on fire thing is actually intended as a check on the power of the fireball spell. It blows up shadow worms very nicely, but if you shoot downwards and miss you can take out a good chunk of the trees and structures you're supposed to be defending. Though I may include a high level enemy that can start forest fires; that would be a 'drop everything and intercept this now' challenge. The swan maiden character (that I am thinking of including) would have some sort of water spell to put them out again.
salm wrote:Since you´re mainly in the air other stuff in the air would make sense. Floating obstacles like hot air balloons and crap like that to make the air space more interesting.
I like the idea of balloons as 3D obstacles. I would like to make them magic energy collectors, then I can justify them being mirror-silver (opportunity for some cubic environment mapping) and tethered to the ground by long chains. Ideally there would be a particle effect of little points of light appearing on the sphere surface, sliding down to the base, then being conducted down the chain to some sort of storage artefact. Dogfighting in the middle of a field of those would be great, with all the particle reflections in the giant mirrored balloons. I'd probably have to dedicate a thread to updating the balloon environment maps though.
Lusankya wrote:Does the game include things like thermals that you can use to gain lift without flapping, or is it just assuming fairly generic atmospheric conditions? It'd be cool if you could ride up high on thermals, or ride the wind up hill ridges or things like that.
Yes, but they won't really be relevant in combat scenarios. You'll be able to play with them in free flight mode, maybe I'll add some Pilotwings style challenges of 'travel across the map without flapping' that use them.
Sarevok wrote:Is the procedural generation done by a library or your own code ?
My own code, except for an open source plug-in I'm using to do the tree trunk structure generation.

Re: Holiday Project

Posted: 2010-01-08 10:16pm
by Lusankya
Starglider wrote:Yes, but they won't really be relevant in combat scenarios. You'll be able to play with them in free flight mode, maybe I'll add some Pilotwings style challenges of 'travel across the map without flapping' that use them.
That would be interesting. Maybe something like a "pretend to be an albatross" challenge, where you try to keep aloft for as long as possible using only the lift generated by waves to keep you up.

I'm just thinking of my dad here. He's a glider pilot, and would absolutely love that kind of thing.

Re: Holiday Project

Posted: 2010-01-09 12:46am
by Starglider
Implemented another creature;

Image

This one will drop pods that release toxic goo, which slowly consumes the landscape if left unchecked. It's quite graceful though, with a slow turn rate and those waving flippers at the back. There will be a comedy element in that if you blow off one flipper, it is stuck going around in a tight circle, and if you destroy the other one it slides to a stop. However if you don't finish off the body within thirty seconds or so the flippers will regenerate.

The gameplay I have in mind now is something like a cross between Defender, Ace Combat and Defence Grid, with the unique and bizarre bird controls & physics, and most of the challenges from Pilotwings 64 as side missions. It is possible that I have become overambitious. :)