logo
Main

Forums

Downloads

Unreal-Netiquette

Donate for Oldunreal:
Donate

borderline

Links to our wiki:
Wiki

Walkthrough

Links

Tutorials

Unreal Reference

Usermaps

borderline

Contact us:
Submit News
Page Index Toggle Pages: [1] 2  Send TopicPrint
Hot Topic (More than 10 Replies) Ramblings of a bird flight watcher (Read 2213 times)
Buster
Global Moderator
*****
Offline



Posts: 1486
Location: BC, Canada
Joined: Jun 8th, 2005
Gender: Male
Ramblings of a bird flight watcher
Jul 16th, 2018 at 4:27am
Print Post  
Ever since I was a little kid I've been interested in the flight of birds. Not all the regular things associated with bird watching, but all the little details on how they fly. When video games were first invented I hoped my dream of flying like a bird in a game may happen, and I got Joust. One of my favorite games. Spent the allowance of my youth a quarter at a time on Joust, don't get me wrong, but birds don't quite flap and move like that. Every time I hear mention of flying like a bird in a video game I hope it's not just a tap and flap with aircraft flight-stick controls. It usually is, or even less complicated than that, which isn't how birds actually control their flight. I know. I've spent over 40 years, as much as possible, watching birds fly.

And I've thought a lot about how this should be translated into a video game/simulation. A sort-of avian flight evolution simulator, which can be used to simulate all the different types of bird flight. A humming bird flys different than a sparrow flys different than a crow flys different than a goose flys different than an eagle, for a quick example. One day soon I'm going to put my notes together and toss them out into the cyber wind, and see if they'll fly.

If anyone finds themselves grabbing a piece of paper blowing by on the breeze, just because, let me know. I'll toss a full sheet or two up into the wind, something a bit more substantial than this little piece of scrap paper.
  

Gatherstone - Unreal by Design
https://gatherstone.oldunreal.com

OK - he falls
Keep it Unreal !!
Smiley_~
Back to top
WWW  
IP Logged
 
han
Global Moderator
Unreal Rendering Guru
Developer Team
*****
Offline


Oldunreal member

Posts: 572
Location: Germany
Joined: Dec 10th, 2014
Gender: Male
Re: Ramblings of a bird flight watcher
Reply #1 - Jul 16th, 2018 at 11:45am
Print Post  
Will it include a Boid Royale mode?
  

HX on Mod DB. Revision on Steam. Löffels on Patreon.
Back to top
 
IP Logged
 
Hyper
Board Moderator
Betatester
*****
Offline


It's Unreal.

Posts: 3001
Joined: Oct 11th, 2002
Re: Ramblings of a bird flight watcher
Reply #2 - Jul 16th, 2018 at 12:31pm
Print Post  
Code
Select All
Log: Bird14 flew out of the world! 

  
Back to top
WWW  
IP Logged
 
Buster
Global Moderator
*****
Offline



Posts: 1486
Location: BC, Canada
Joined: Jun 8th, 2005
Gender: Male
Re: Ramblings of a bird flight watcher
Reply #3 - Jul 17th, 2018 at 10:02am
Print Post  
As for the boid, thanks for the info. The flock behavior that it simulates is normally the behavior that only smaller birds seem to have, those types which usually use a 'closed wing-rest position' and a 'multiple burst wing-flap sequence' to create the type of avian flight capable of the quick turns needed to 'swarm'.

In other words, the boid is useful if a player wants to join the swarming flock. It could be set up like a 'follow' function used in Red Dead Redemption. Just get yourself into the flock and generally go with the flow, then hold the follow key. It's an idea to add for those specific types of birds, if you wish to simulate them. But there's not that many types of birds that boid.

I've seen really huge flocks do that, creating an incredibly intricate dance in the air. It's a fantastic thing to see, especially when 2 swarms interact with each other. It's almost like watching two galaxies collide, without all the potential extinction events.

If I had to pick a single type (species) of bird to simulate it would be a regular crow. A good name for the crow simulation game (I've thought of this before) is A Murder of One.

Smiley
  

Gatherstone - Unreal by Design
https://gatherstone.oldunreal.com

OK - he falls
Keep it Unreal !!
Smiley_~
Back to top
WWW  
IP Logged
 
Buster
Global Moderator
*****
Offline



Posts: 1486
Location: BC, Canada
Joined: Jun 8th, 2005
Gender: Male
Re: Ramblings of a bird flight watcher
Reply #4 - Jul 17th, 2018 at 10:13am
Print Post  
I'm not rambling on about all this stuff because I'm working on this simulation idea. I don't have the C++ or even UScript knowledge needed to make such a thing. The last time I did any kind of real coding was using Hex subroutines with Basic, or Assembler later on.

It's just that I'm getting older, and I've already had a minor stroke, so I want to get a few of the ideas I've had in writing. And a good place to write them down is here on Oldunreal. Maybe somebody here will have the vision and skill to bring these seeds to root. I have only the vision, but lack in the skills.

Plus my laptop is still on its last legs. Trying to save some of my notes before it dies.

Smiley
  

Gatherstone - Unreal by Design
https://gatherstone.oldunreal.com

OK - he falls
Keep it Unreal !!
Smiley_~
Back to top
WWW  
IP Logged
 
Buster
Global Moderator
*****
Offline



Posts: 1486
Location: BC, Canada
Joined: Jun 8th, 2005
Gender: Male
Re: Ramblings of a bird flight watcher
Reply #5 - Jul 18th, 2018 at 3:41am
Print Post  
Now to sound like a crazy man...

Tongue

The first things to consider are the differences in the way a fixed-wing aircraft flies and a dynamic-wing bird flies, and how it relates to the way a person controls its flight. The only thing that an aircraft and a bird have in common is the basic shape of the wing, that which creates lift. It's all a matter of manipulating the flow of air above and below the surface of the wing, and the differences in their pressure. To do that the basic cross-section of an aircraft wing and a bird wing are basically the same.

The ways in which the air flow is manipulated to crontrol the flight path of the aircraft is not anything like the ways a bird flies. Both types of wings need a speed of air flow that will create lift. An aircraft has its engine that thrusts the wing up to the need lift velocity. Birds use manipulations of its wing and the natural velocity of air to create the needed air speed, and by using the differences of the air preassures above and below the wing, along with the dynamic movement of the wing itself, a bird thrusts itself throught the air. Look at it like rowing a boat or maybe a sail and rudder is a whole lot different than a motor and propeller. A bird almost rows through the air, and creates the air velocity over its wings, and in that way creates lift.

To change its path of flight an aircrat has to drastically change the direction of the wing's air flow by changing the shape of the trailing edge of its wing, and that is what then changes the direction the body of the aircraft will take. Manipulating the direction of the air flow over a bird wing is done by slightly twisting the direction of the body itself, which changes the shape and angle of the wing, and that is what changes the direction a bird will thrust (row) forward. The natural velocity of the air itself and the velocity of the wing as it is thrust (flapped) is what a bird uses to create the velocity of the air flow over the wing that makes lift. No engine and no throttle.

To control an aircraft in a simulation you need hit the throttle to the right speed to start creating lift, then change (pull back on the stick) the air flow to push down on the back edge of the wing, which lifts the aircraft upward. To control a bird in a simulation you need to twist (angle) the body of the bird that will have the wing thrust through the air at an angle that will propel the whole bird forward. And then you tap the throttle (flap the wing).

A way to sum all this crap up is this: An aircraft is thrust (throttle) and then twist the wing (stick). A bird is twist the body (stick) and then thrust the wing (throttle).

Now, all this is just for a generic bird. which has a general wing shape and way to flap. As I've already stated, a sparrow flies different than a crow flies different than an etc etc), which means that to simulate a crow you'd have to twist your body slightly different and flap your wings in a different way, from a different 'rest-wing position' than you would if you wanted to simulate a swallow. A quick example of this is a sparrow and a goose. A sparrow flaps (thrusts) through the air, but it's wings start close to the body and are usually tucked in close while they briefly soar between flaps. A goose needs to already spread out its wings to be able to flap properly for flight. That is what I mean by the different 'rest-wing position.' Open or closed. Now both birds (sparrow and goose) use both types of flaps (open or closed), but only for a very limited reason. In other words, a sparrow will hold out its wings and glide, but not very often, and only for the briefest of moments. While a goose has a special half-wing flap it uses, which is how they're able to thrust their wings while in a glide (open or stretched) position. Very little energy is used to flap this way, and is why geese can travel as far as they do, being as large as they are. A sparrow uses lots of energy just to twitch its tiny little wings. This difference in energy usage is, of course, another part of any avian flight simulation.
  

Gatherstone - Unreal by Design
https://gatherstone.oldunreal.com

OK - he falls
Keep it Unreal !!
Smiley_~
Back to top
WWW  
IP Logged
 
han
Global Moderator
Unreal Rendering Guru
Developer Team
*****
Offline


Oldunreal member

Posts: 572
Location: Germany
Joined: Dec 10th, 2014
Gender: Male
Re: Ramblings of a bird flight watcher
Reply #6 - Jul 18th, 2018 at 5:21am
Print Post  
I know your last post might be some more serious thought, but even before I had this frame in my head of having Octodad'esk control mechanics. Your post didn't help to get that out of my head..
  

HX on Mod DB. Revision on Steam. Löffels on Patreon.
Back to top
 
IP Logged
 
Buster
Global Moderator
*****
Offline



Posts: 1486
Location: BC, Canada
Joined: Jun 8th, 2005
Gender: Male
Re: Ramblings of a bird flight watcher
Reply #7 - Jul 18th, 2018 at 1:19pm
Print Post  
Octodad. Just looked it up, and got a giggle out of it.
  

Gatherstone - Unreal by Design
https://gatherstone.oldunreal.com

OK - he falls
Keep it Unreal !!
Smiley_~
Back to top
WWW  
IP Logged
 
Buster
Global Moderator
*****
Offline



Posts: 1486
Location: BC, Canada
Joined: Jun 8th, 2005
Gender: Male
Re: Ramblings of a bird flight watcher
Reply #8 - Jul 18th, 2018 at 3:50pm
Print Post  
I guess it's time to mention the basic interface, or in other words, which keys do what.

The first thing to mention is that birds seem to have an auto-level. An internal gyro. It's very, very rare that a bird does 'barrel rolls' or flys upside-down. There are exceptions, of course. One of the cool exceptions is with younger crows. Sometimes, when a younger male crow is trying to impress a younger female crow, the male will fly beside the female, make a quick series of throaty clicks, and then suddenly tucks in one wing which makes it flip over onto tis back (while in mid-air), and just as quick flips back upright. Not quite a full 'barrel roll', but its still a bird briefly flying upside-down. The male will do this several times in a row, repeating the flip every 5 or 6 wing flaps. I've only seen specific young males do this, so I'm not sure if its common with the species, but it does catch my attention when it happens. Anyways, my point is that a bird will slightly extend or retract a wing, which subltely changes the drag on one side, and prevents the body of the bird to rotate onto its back. This also means that birds don't usually do fancy loops like you'd see planes do during an airshow.

The first thing you'll need to control is position of the body of the bird. How it's positioned during flight dictates the basic direction the bird will thrust forward when it flaps its wings. Twisting the body slightly to lean forward, or backwards will manipulate how much of the velocity (of the wing flap) is directed towards thrust instead of lift. A forward lean will make flatten out the rise of the bird during the flap, and will thrust to bird forward a little quicker than the 'home' or default body postion. Leaning backwards while the flapping will slow down the forward momentum. So, leaning forward or backwards (and not just the rate of flapping) is how a bird controls its air speed. Continuing a series of leans (while continuing to flap) will not cause the bird to start a downward dive, like it would for an aircraft, but instead it will slightly increase the forward velocity of its flight.

The keys already used for movement (in Unreal for example) are the WSAD. W for leaning forward (increase forward velocity). S for leaning back (decrease forward velocity). This now brings us to the twisting of the bird's body left and right (the strafe left A key and the strafe right D key). Twisting the body sideways will cause a sort-of strafe (slipping sideways in the air), but it also will cause a slight banking (roll) of the bird in that direction. The bird will auto-level to an extent, unless the wing on the side of the roll is tucked in, which will cause the bird bank (roll) sharply.

A quick point. Twisting the body to the right (for example) basically has the effect of slightly shortening the extention of the wing on the right side, which slightly decreases the forward thrust and lift of that wing. This will manipulate the flight path to turn and slightly bank to the right.

Part one of the control mechanics done. Next is a look at the different types 'rest-wing positions' and different types of wing flaps, what they do to the flight path of a bird, and what interface is best (at least in my twisted little mind) to simulate them. It's not just a matter of a left mouse button click-fest. After all that is said, I'll move on to take-offs from ground level and landings. I'll keep this initial discussion to my default crows. All the subtle differences of all the different types of birds (sparrow flight different from goose flight, etc) are supposed to be discovered as a player learns to fly as that specific type of bird.

One last thing before I end this entry. The bird flight simulator idea I've mentioned is all based on the idea that there were two types of dinosaurs. The avian and non-avian. Everyone had heard about the non-avian ones. T-Rex, etc. But most people don't consider that avain dinosaurs didn't go extinct. They were very tiny as compared to their non-avian cousins, their feathers (which were there for body heat regulation, because dinosaurs weren't cold-blooded lizards) evolved into different types for other uses besides body heat. And while the non-avian dinosaurs all died out, the avian ones became what we call birds. In other words, avain dinosaurs are masters of the skies today. I'll bet there's one outside right now, no matter where in the world you're sitting. Except the South Pole. The avian dinosaurs that call the South Pole home don't fly in the air. They fly in the water. But that's another evolutionary story.
  

Gatherstone - Unreal by Design
https://gatherstone.oldunreal.com

OK - he falls
Keep it Unreal !!
Smiley_~
Back to top
WWW  
IP Logged
 
Buster
Global Moderator
*****
Offline



Posts: 1486
Location: BC, Canada
Joined: Jun 8th, 2005
Gender: Male
Re: Ramblings of a bird flight watcher
Reply #9 - Jul 19th, 2018 at 6:19pm
Print Post  
Quick note on take-offs and landings. First thing to mention is it's all a matter of air speed over the wings. Lift takes place when the air speed over the wing surface is sufficient to change the pressures above and below the wing.

Keeping this in mind it's easy to imagine that the first avian started to fly by chance. A moment when the wind blew hard enough, their feathered arms were stretched out, and all of a sudden they rose off the ground. OR more probable yet is the increase of airspeed caused by gravity during a fall. Controlling the flight came over a long period of time. Also, the ability to take-off from the ground developed over time too.

Different birds take-off in different ways. Some need a running start, some need to jump, some need to expend huge amounts of energy and flap like crazy. All have one thing in common, just different ways to do it. Get the airspeed over the wings high enough to create lift.

And this brings me to landings. It's the same thing as the take-off, just in reverse. A controlled decrease of airspeed over the wings until the lift is lesser than gravity. The trick is to do this at an altitude that won't break you. Basically you fly to the ground, timing it so lift stops just before you touch down. Simple.

With an aircraft you have a throttle and flaps for drag. With a birds you have twisting the body backwards to decrease airspeed and lift. Some birds position themselves almost upright so their wings flap as if they're trying to fly backwards. It's the way they've found to rapidly decrease their airspeed enough to land.

There's as many ways to take-off and land as their are wing shapes, body weights and flapping styles. Part of the challenge of a bird flight simulator is finding the one that works for that specific type of bird. Sparrow or goose or crow, etc.
  

Gatherstone - Unreal by Design
https://gatherstone.oldunreal.com

OK - he falls
Keep it Unreal !!
Smiley_~
Back to top
WWW  
IP Logged
 
Buster
Global Moderator
*****
Offline



Posts: 1486
Location: BC, Canada
Joined: Jun 8th, 2005
Gender: Male
Re: Ramblings of a bird flight watcher
Reply #10 - Jul 25th, 2018 at 8:22pm
Print Post  
Okay, I'm back. Sort of.

A quick review of the 'twist the body' keys, and how they change the flight's direction.

The keys already used for movement (in Unreal for example) are the WSAD. W for leaning forward (increase forward velocity). S for leaning back (decrease forward velocity). This now brings us to the twisting of the bird's body left and right (the strafe left A key and the strafe right D key). Twisting the body sideways will cause a sort-of strafe (slipping sideways in the air), but it also will cause a slight banking (roll) of the bird in that direction. The bird will auto-level to an extent, unless the wing on the side of the roll is tucked in, which will cause the bird bank (roll) sharply.

This is the primary way a bird turns etc while they are soaring, or what I call static wing flight. Not all birds do this, but common with birds of prey. It's used to conserve energy on long duration flights, like hunting. The wings are usually in an almost locked position, both of the 2 parts of the wing stretched wide open.

Shifting the body (ADWS) does assist turning during dynamic wing flight (flapping), but only in that it sharpens the turn, which decreases the turn radius. To do a really sharp turn a bird will draw in the tip of the fore-wing inward, and the drag that makes will cause that wing too slightly slow down. It's sort of like a basketball player pivoting around one foot. Hawks and crows do this very well.

The only bird that has lots of dynamic movement of the wings while gliding (or soaring) are owls. They are really cool. They hunt in wooded areas, down low, not like eagles who are way up there. Owls also fly silent. They have special feathers that actually reduce any vibrations in the air. They also can pull in a single wing (even while flapping) so they don't touch any branches or twigs, and they don't miss a beat. I've seen slow motion footage of an owl flying through a maze of branches. It never touched a single twig, and didn't make a sound. Very cool.

Well, it wasn't much, but it's something. I'll move on to dynamic-wing flight in my next post.
  

Gatherstone - Unreal by Design
https://gatherstone.oldunreal.com

OK - he falls
Keep it Unreal !!
Smiley_~
Back to top
WWW  
IP Logged
 
Buster
Global Moderator
*****
Offline



Posts: 1486
Location: BC, Canada
Joined: Jun 8th, 2005
Gender: Male
Re: Ramblings of a bird flight watcher
Reply #11 - Jul 26th, 2018 at 6:28am
Print Post  
Real quick.

There are 2 parts to the wing, let's call them the upper and fore wing. With some birds the 2 parts are quite apparent. Each wing, for birds like seagulls, has the 2 parts angled at the elbow so it almost looks like a boomerang. There's reasons for that I'll get into later. The upper and lower wing are roughly the same length. With crows, who also have a distinctive 2 part wing, the upper being slightly lesser in length than the fore, and the mid-wing angle is not as severe. With other birds like sparrows the upper is really short. The flashes of wing you see when a sparrow flies by is the fore-wing. It's a big part of why their 'rest wing position' is closed.

With that said, the wing flap is basically the storing of energy in 2 groups of muscles, one each for the upper and fore wing. When that energy is released the wing flaps. During that release there's a small excess of energy (after being lost to lift, air resistance, friction and drag) which the wing converts to thrust. In brief, the excess energy pushes against, and slightly increases, the pressure under the wing. The reaction to that energy being passed to the air under the wing is that thrust.

The reason I'm going into this kind of detail is, to know how the POV of the player will appear when being the bird (I envision the sim as a first-person view). And all this stuff affects the POV, in unique ways depending on the flying creature, so I try and be detailed.

This obsession started with Atari's Joust, but in my mind I wasn't fly a bird. Why be a bird when you can be a dragon. All the different kinds of dragons man has dreamt of throughout history, too.
  

Gatherstone - Unreal by Design
https://gatherstone.oldunreal.com

OK - he falls
Keep it Unreal !!
Smiley_~
Back to top
WWW  
IP Logged
 
Buster
Global Moderator
*****
Offline



Posts: 1486
Location: BC, Canada
Joined: Jun 8th, 2005
Gender: Male
Re: Ramblings of a bird flight watcher
Reply #12 - Jul 28th, 2018 at 6:58pm
Print Post  
Quick note on wing shape, and the seagull for example. I mention above that the seagull wing is quite long, tapered and thin, with a bent shape like a boomerang. Flying out in the open, above the oceans and seas etc, the seagull is almost always exposed to the wind. They also need to fly into that wind. Their wing shape is very efficient at converting the natural airspeed (wind) going over the wing to lift and thrust instead of resistance and drag. In a sense, the shape of a seagull's wind allows them to 'tack' into the wind like a sailing ship. The sharp angle (boomerang shape) of their wings positions the wing to best use the wind, which decreases the tacking angle, and in turn decrease energy usage.

Over time, because of the continual mobility needs of that type of bird, their wing evolved a unique (very efficient) shape to better their chance of survival, etc. This sort of thing is why I think it'd be cool the play an "Avian Dinosaur Flight Evolution Simulator" (ADFES, or what I have titled, "Feathers"), which is the main reason for all this detail about wing shapes and flapping styles. Learning to fly a certain way is influenced by the mobility needs of finding food (mating, evasion, etc) and the overall geography/ecology. The physiology of the critter slowly shapes itself into a unique species.

Is it possible to play a little fluff covered dinosaur with 6 feathers in such a way that it becomes a crow? On purpose, that is. It'd be neat to find out, after barely surviving anyway you could, all plans to become a crow shattered, what kind of bird you became.
  

Gatherstone - Unreal by Design
https://gatherstone.oldunreal.com

OK - he falls
Keep it Unreal !!
Smiley_~
Back to top
WWW  
IP Logged
 
Buster
Global Moderator
*****
Offline



Posts: 1486
Location: BC, Canada
Joined: Jun 8th, 2005
Gender: Male
Re: Ramblings of a bird flight watcher
Reply #13 - Aug 2nd, 2018 at 5:37pm
Print Post  
Well, I guess it's time to continue my rambling.

Time to discuss the key bindings that might be used for flapping. As I briefly mentioned, the flap is the loading up of energy in the wing muscles, and its release. At the top of this topic I also mention the 'rest-wing' positions. A quick example: sparrows start their flap with the wings very close to the body, geese start their flap with the wings opened up. A sparrows default in-flight flap is almost full (body to full spread), and geese have a default in-flight flap that is quite shallow with their wings almost completely spread out.

So, the first thing that needs to be adjusted is the 'rest-wing' position. During the take-off (and some landings) the flaps are fuller, which means the rest-wing position is more 'closed'. Once lift is achieved the body flattens out, the wings are in a default in-flight position, which is usually more open (wings spread out) and the flaps shallower (using less energy). This rest-wing position can be set with a toggle key, similar to tapping a key to go from walk to prone to crouch to run, etc. Or it can be adjusted with 2 keys, one to increase wing spread, the other to decrease it. Sort of like adjusting the trim on an airplane. Maybe the mouse wheel could be used for this.

The next post will be about the flap itself, and more on the key binds etc.
  

Gatherstone - Unreal by Design
https://gatherstone.oldunreal.com

OK - he falls
Keep it Unreal !!
Smiley_~
Back to top
WWW  
IP Logged
 
Buster
Global Moderator
*****
Offline



Posts: 1486
Location: BC, Canada
Joined: Jun 8th, 2005
Gender: Male
Re: Ramblings of a bird flight watcher
Reply #14 - Aug 4th, 2018 at 8:02pm
Print Post  
Now for the flap itself. As mentioned above, the flap is basically the loading of energy into the muscles, and that energy's release. Each wing can be loaded individually or both wings at the same time. Depends on how advanced you want the controls.

Also, the smaller the wing the quicker the flap. With most of the smaller birds the flap is so fast that it would be impossible for a player to click-per-flap fast enough, so each 'click' would actually be loading the energy for a series of flap. The importance is the resulting 'flight path' that the flap produces. The simple flap control is the left mouse button is used for both wings. The length of time you hold it down regulates how much energy is loaded, which regulates how full or deep the flap is. That energy is released when the button is released. With a controller you could use the trigger, and have it set up that the further you press the trigger the more energy goes into the flap. The shifting of the body (ADWS keys) are used to manipulate the drag on one wing, which is how a bird turns, etc.

Of course, each series of clicks is rather quick. In other words, holding down the button for 0.7 second would be a full flap. This does depend on the overall length of the wing, to an extent.

An advanced form of this is using both the left and right mouse buttons (both triggers). One for each wing. Holding one button slightly longer than the other will produce the effect of increasing the drag on the wing with less energy, so the bird with yaw in that direction. It'd take a bit of getting used to, but it could result in some pretty cool moves.

I know all of this stuff isn't all smoothly worked out, but since my minor stroke I'm just grabbing little bits of ideas that survived the 'bad sectors' in my head.

I hope I've been able to describe enough to get the basic idea of what I see in my head. Next I'll post on the game ideas I've had that all this bird flight stuff is for. I've already touched on a couple of them. Being a crow, game called 'A Murder Of One.' And the avian-dinosaur flight evolution simulator, game called 'Feathers.' And a first-person view version of the old Atari game Joust, except you fly dragons.

Smiley
  

Gatherstone - Unreal by Design
https://gatherstone.oldunreal.com

OK - he falls
Keep it Unreal !!
Smiley_~
Back to top
WWW  
IP Logged
 
Page Index Toggle Pages: [1] 2 
Send TopicPrint
Bookmarks: del.icio.us Digg Facebook Google Google+ Linked in reddit StumbleUpon Twitter Yahoo