text:
Download the Game Design and Indie Game Marketing Freebook 07/19/17GameDev.net and CRC Press have teamed up to bring a free ebook of content curated from top titles published by CRC Press. The freebook, Practices of Game Design & Indie Game Marketing, includes chapters from The Art of Game Design: A Book of Lenses, A Practical Guide to Indie Game Marketing, and An Architectural Approach to Level Design. The GameDev.net FreeBook is relevant to game designers, developers, and those interested in learning more about the challenges in game development. We know game development can be a tough discipline and business, so we picked several chapters from CRC Press titles that we thought would be of interest to you, the GameDev.net audience, in your journey to design, develop, and market your next game. The free ebook is available through CRC Press by clicking here. The Curated Books The Art of Game Design: A Book of Lenses, Second Edition, by Jesse Schell Presents 100+ sets of questions, or different lenses, for viewing a game's design, encompassing diverse fields such as psychology, architecture, music, film, software engineering, theme park design, mathematics, anthropology, and more. Written by one of the world's top game designers, this book describes the deepest and most fundamental principles of game design, demonstrating how tactics used in board, card, and athletic games also work in video games. It provides practical instruction on creating world-class games that will be played again and again. View it here. A Practical Guide to Indie Game Marketing, by Joel Dreskin Marketing is an essential but too frequently overlooked or minimized component of the release plan for indie games. A Practical Guide to Indie Game Marketing provides you with the tools needed to build visibility and sell your indie games. With special focus on those developers with small budgets and limited staff and resources, this book is packed with tangible recommendations and techniques that you can put to use immediately. As a seasoned professional of the indie game arena, author Joel Dreskin gives you insight into practical, real-world experiences of marketing numerous successful games and also provides stories of the failures. View it here. An Architectural Approach to Level Design This is one of the first books to integrate architectural and spatial design theory with the field of level design. The book presents architectural techniques and theories for level designers to use in their own work. It connects architecture and level design in different ways that address the practical elements of how designers construct space and the experiential elements of how and why humans interact with this space. Throughout the text, readers learn skills for spatial layout, evoking emotion through gamespaces, and creating better levels through architectural theory. View it here. Learn more and download the ebook by clicking here. Did you know? GameDev.net and CRC Press also recently teamed up to bring GDNet+ Members up to a 20% discount on all CRC Press books. Learn more about this and other benefits here.
Content count88
Last visited
Community Reputation1223 Excellent
About BrentMorris
BrentMorris replied to godmachine33's topic in General and Gameplay ProgrammingThe differences are all the same to me, except that .NET Core can run on Linux! In a cloud environment Linux installations are also leaner and cheaper than on Windows.
BrentMorris replied to Norman Barrows's topic in Graphics and GPU ProgrammingIf you only care about swaying and not wind patterns in a global sense, you could probably determine swayage using the value noise that shader-toy is fond of. https://www.shadertoy.com/view/lsf3WH You can use it to generate a cheap approximation of perlin-noise on the GPU. It's bound to look better than a trig wave, and I believe (don't quote me on this) that it's cheaper than sampling from a gradient texture too. You could probably layer a couple samples together to get erratic results that look like gusts. You can do all of the classic noise-combination tricks like sampling them at different scales, translating the sample positions at different speeds, multiplying normalized samples together, etc. There's going to be some magical franken-combination that looks good I think. Edit: I messed around with it a little out of curiosity. I think this could look pretty good. Paste this into shader toy: // Created by inigo quilez - iq/2013 // License Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License. // Value Noise (http://en.wikipedia.org/wiki/Value_noise), not to be confused with Perlin's // Noise, is probably the simplest way to generate noise (a random smooth signal with // mostly all its energy in the low frequencies) suitable for procedural texturing/shading, // modeling and animation. // // It produces lowe quality noise than Gradient Noise (https://www.shadertoy.com/view/XdXGW8) // but it is slightly faster to compute. When used in a fractal construction, the blockyness // of Value Noise gets qcuikly hidden, making it a very popular alternative to Gradient Noise. // // The princpiple is to create a virtual grid/latice all over the plane, and assign one // random value to every vertex in the grid. When querying/requesting a noise value at // an arbitrary point in the plane, the grid cell in which the query is performed is // determined (line 30), the four vertices of the grid are determined and their random // value fetched (lines 35 to 38) and then bilinearly interpolated (lines 35 to 38 again) // with a smooth interpolant (line 31 and 33). // Value Noise 2D: https://www.shadertoy.com/view/lsf3WH // Value Noise 3D: https://www.shadertoy.com/view/4sfGzS // Gradient Noise 2D: https://www.shadertoy.com/view/XdXGW8 // Gradient Noise 3D: https://www.shadertoy.com/view/Xsl3Dl // Simplex Noise 2D: https://www.shadertoy.com/view/Msf3WH float hash(vec2 p) // replace this by something better { p = 50.0*fract( p*0.3183099 + vec2(0.71,0.113)); return -1.0+2.0*fract( p.x*p.y*(p.x+p.y) ); } float noise( in vec2 p ) { vec2 i = floor( p ); vec2 f = fract( p ); vec2 u = f*f*(3.0-2.0*f); return mix( mix( hash( i + vec2(0.0,0.0) ), hash( i + vec2(1.0,0.0) ), u.x), mix( hash( i + vec2(0.0,1.0) ), hash( i + vec2(1.0,1.0) ), u.x), u.y); } float fbm( in vec2 p) { mat2 m = mat2( 1.6, 1.2, -1.2, 1.6 ); float f = 0.0; f += 0.5000*noise( p ); p = m*p; f += 0.2500*noise( p ); p = m*p; f += 0.1250*noise( p ); p = m*p; f += 0.0625*noise( p ); return f; } float norm( in float f ) { return 0.5 + 0.5 * f; } void mainImage( out vec4 fragColor, in vec2 fragCoord ) { vec2 p = fragCoord.xy / iResolution.xy; vec2 uv = p * vec2(iResolution.x/iResolution.y,1.0); float time = iGlobalTime; uv *= 8.0; vec2 uv1 = uv * 0.5 + vec2(time * 0.3, time * 0.7) * 0.15; vec2 uv2 = uv + vec2(time, -time) * 0.23; float f1 = norm(fbm(uv1)); float f2 = norm(fbm(uv2)); float f = f1 * f2; fragColor = vec4( f, f, f, 1.0 ); } You would just evaluate something like that at each grass position.
BrentMorris replied to george7378's topic in Graphics and GPU Programming1) Detect edge vertices when generating a mesh. 2) Detect which edge vertices are 'odd', these are the ones that mismatch with the next LOD and create holes. 3) Get the neighboring even-vertex-edge positions. 4) Set the odd-vertex position to the average of the two neighboring even positions. This should close your cracks. The higher-LOD vertices follow a straight line between the two even positions, where the more detailed mesh just has another sample point at the half-way mark. Then your next problem is knowing when to close the cracks on a side. The most straightforward approach is probably to regenerate a mesh whenever a neighboring mesh changes LOD. There is another approach where you store two positions per vertex (the main position, and an edge transition position) and a bitflag mask for which edge a vertex is on (or zero if it isn't on an edge), and then when you render the mesh you pass in a bitflag for which edges of the mesh are bordering higher LODs. In the shader you check the edge mask of the vertex against the neighboring LOD bit mask, and if the vertex is on the edge with the higher LOD you set the output position to the transition position. The extra vertex data isn't that bad in the grand scheme of things, and this lets you use the same pre-generated mesh without having to recalculate it every time a neighboring LOD changes. All you have to do is pass in the neighboring-higher-LOD bitmask.
BrentMorris replied to Glass_Knife's topic in Coding HorrorsUse [Alt + Print Screen] to take a screenshot of the active window instead of everything. Especially useful if you ever need to take a specific screenshot and you have 2+ monitors. Edit to fit the topic: I was caught cropping a screenshot of a specific window out of a 3 monitor Print-Screen when I was told about it.
BrentMorris replied to widmowyfox's topic in Graphics and GPU ProgrammingMy guess is that you are doing one-bit alpha on the grass, and that the grass texture is mipmapped. The mipmap downsampling is producing results that make your 1-bit alphas disappear in the higher mip levels. In the past I have fixed this with distance field alpha instead of a 1-bit interpreted alpha channel. As long as you are using a 1 bit alpha you can adjust your threshold to make the further mips 'thinner' or 'thicker'. Both versions tend to look bad! A thinner threshold will make grass disappear like you are seeing. Here's the paper. http://www.valvesoftware.com/publications/2007/SIGGRAPH2007_AlphaTestedMagnification.pdf You use that technique but for grass instead of text. A distance field is much more tolerant of the mip downsampling.
BrentMorris replied to Eric F.'s topic in Graphics and GPU ProgrammingSomebody correct me if I'm wrong, but if every path in a shader takes the same branch it is nearly (not entirely) the same cost as if the changes were compiled in with defines. If you are rendering an object with a specific set of branches that every thread will take it may not be a big deal. If threads take different branches you will eat the cost of all branches.
BrentMorris replied to IsItSharp's topic in Math and PhysicsThose Y's look correct mirrored vertically (over the X-axis) to me. What rendering API are you using? Your data is correct, but you might be interpreting the rendering side of it incorrectly. Most "draw circle/line" API's work where positive Y values move downwards instead of upwards; The top left of the screen is (0, 0) and the bottom left corner is (0, height). Try rendering those points at (x, imageHeight - y) and see if they match up to the circles.
BrentMorris posted a topic in Graphics and GPU ProgrammingI understand why the ternary operator branches on the GPU if there is any in-line computation, like: // Branching on the (value+1)! float value = 3; value = (value < 4) ? (value) : (value+1); but.. if the ternary operator is literally switching between two variables should it necessarily branch? // Why should this branch? float value = 3; float valuePlus = value + 1; value = (value < 4) ? value : valuePlus; // It should be equivalent to: float value = 3; float valuePlus = value + 1; float values[2]; values[0] = value; values[1] = valuePlus; int valueIndex = (int)(value < 4); value = values[valueIndex]; // And no branching! At least in my head it should just be an address offset between two values. I know this is a nitpicky branching concern, but it's an interesting mini-optimization depending on the usage. Does anyone know if GPU drivers detect and make this sort of optimization or is this a non-concern?
BrentMorris replied to Naruto-kun's topic in Graphics and GPU ProgrammingCan you kick that river texture up to an 8 bit texture? You could do a proper gaussian blur on the texture and have some falloff. It will still be that blocky, but at least it won't be a 1-bit abrupt dropoff.
BrentMorris replied to Naruto-kun's topic in Graphics and GPU ProgrammingReally? I would at least expect soft blending over the span of a single texel from your river texture with any kind of *linear blending. The size of a river texel from your screenshot looks pretty huge, so it should make some kind of a difference! The blend range should be on par with the blending you see between the river/land outside of the helicopter. How are you blending the river texture with the other grass texture in your shader? If this really can't be solved with a texture sampler, you might have to stream in high resolution textures for smaller areas. Depending on your needs you could go with a more sophisticated geomipmapping solution if you really need some draw distance. If not that maybe you could do some kind of percentage closer filtering, where you take a number of river texture samples around a sample position and get the average of them. It could look noisy depending on how you do it, though.
BrentMorris replied to Naruto-kun's topic in Graphics and GPU ProgrammingIt looks like that river texture is being sampled with a point texture sampler. The nearest river pixel value is returned, which gives it the blocky look. You need to use a texture sampler with filtering that returns a blend of nearby river pixel values. Try using a bilinear texture sampler. If that doesn't look good enough generate mipmaps (as mhagain mentioned) and use a trilinear/anisotropic texture sampler to make it so the texture values are blended together smoothly.
BrentMorris replied to NumberXaero's topic in Graphics and GPU Programminghttp://vulkan-tutorial.com/assets/Khronos-Vulkan-GDC-Mar15.pdf The events thing sounds pretty awesome. Command buffers can fire off completion events! You can query an event to see if it has been completed yet, or you can join/wait for an event to finish if you need to. We can finally do GPU->CPU readback without stalling the driver until it catches up! That's a whole lot more assuring to me than "it will probably be done in ~3 frames!"
BrentMorris replied to Platzak's topic in For BeginnersI consider an intermediate level to be when you are comfortable enough with a language that you fight with concepts instead of the language that you are working with. When your thought process becomes "How does this work, and what's the best way to make it happen?" instead of "How do I do this, and why is it not compiling?". You are 'intermediate' when you can comfortably express your thoughts in code, and you are more concerned about the concepts behind making a piece of code work the way you want it to. You will know the right questions to ask to accomplish roughly anything that you want to do. Beyond that I consider an advanced level to be when you have specific knowledge about different types of programming. These can include graphics, networking, front/back-end web development, etc. You start to learn the best practices, interesting ways of doing things, and the specifics of a field. It's best not to put a label on how "advanced" you are, because at this point it really just depends on what you know.
BrentMorris replied to Pikkolini's topic in Graphics and GPU ProgrammingI don't completely follow you! Are you saying that the wave geometry is showing up on the reflection, and you don't want it to be there? Or that the reflection from the surface isn't reflecting how you think it should be? A screenshot would be helpful to illustrate the issue.
BrentMorris replied to rAm_y_'s topic in Networking and MultiplayerI don't think this has been done, and there's probably a good reason, but does it seem feasible to use a cloud service to augment your own servers? If your net code was built to mirror a particular cloud service you could build an abstracted "spin up an instance" function to prefer your own servers over the cloud service servers if they aren't busy. This might not work very well if the game in question requires a lot of interaction between your own instances and cloud instances though. I think it could work well as a means of keeping your game available to as many people that want it while having time to expand your own server capabilities.


text:
neetam b Clothing Designer
Atomik Photography - Umbar ShakirPhotographer Female London, England, United Kingdom
My Website: Atomik - Photography by Umbar ShakirMy MM URL: http://www.modelmayhem.com/atomicsparkle
Mayhem # 130505
About Me
Hello - I'm Umbar (pronounced Amber) a.k.a AtomicSparkle, an experienced SW London based female Fashion & Beauty Photographer.
You can check out my work at:
I do test from time to time so message me if you're interested in working with me.
I love to exceed expectations, drink lots of fruit smoothies, and photograph interesting people in cool locations!
Umbar Shakir
+44 (0) 7841 947 119
Have you worked with Atomik Photography - Umbar Shakir? Add Credits for Atomik Photography - Umbar Shakir! >>
neetam b Clothing Designer
Nimisha Modi Makeup Artist
Jassy at NuLook Beauty Makeup Artist
Crystal Truehart Model
Lara Jean Model
Emma Ledbury Model
Loading Content

subset: commoncrawl


text:
Aloukik Rahasya- Year 1-5 Edited by Kshirod Prosad Bidya Binod in Bangla ebooks pdf
ebooks name- Aloukik Rahasya- Year 1-5
Editing – Kshirod Prosad Bidya Binod
Format- PDF
eBook quality- Good
Kshirod Prosad Bidya Binod (April 12, 1863 – July 4, 1927) was a prominent playwright of British India and educationist. His father's name was Gurucharan Bhattacharya and born khardoho, 24-Pargana, West Bengal. From an early age he was devoted to literature. In 1885, his Rajnoitik Sannasi (two volumes) narrative was published when he was only twenty-two years old. He wrote 58 books, some of these books are novels and short stories. The most popular drama Alibaba wrote in 1897. In 1899, he wrote plays 'Babhrubahan' and he awarded by the title 'Bidyabinod'. From 1909 to 1915 he edited a monthly magazine 'Aloukik Rahasya'. Now I want share with you ebooks pdf of Aloukik Rahasya- Year 1 to 5.
Aloukik Rahasya- Year 1
Size- 42, Pages-599
Aloukik Rahasya- Year 2
Size-34 , Pages-480
Aloukik Rahasya- Year 3
Size-40 , Pages-578
Aloukik Rahasya- Year 4
Size-42 , Pages-572
Aloukik Rahasya- Year 5
Size-33 , Pages-462


text:
Golf's Ryo Ishikawa on Adversity and Recovery
As 19-year-old golf prodigy Ryo Ishikawa grows up in the glare of being one of Japan's biggest sports stars, he already has a philosophy for dealing with pressure in the face of adversity. "The question is how you recover from…mistakes," he says. From Japan Real Time


text:
|Message view
|« Date » · « Thread »
|« Date » · « Thread »
|Allahbaksh Mohammedali Asadullah <Allahbaksh_Asadul...@infosys.com>
|Getting Payload from Hits
|Mon, 11 Feb 2008 13:46:07 GMT
Hi, I have saved payload in my index. When the user types the query I get HIT document. From HIT document how I can get the value of Payload for particular tree. For example _analyzer = new PayloadAnalyzer(); _writer = new IndexWriter(new File("d:/test1"), _analyzer, true); for (int i = 0; i < 10; i++) { Document d = new Document(); d.add(new Field("f1", "This field has no payloads", Field.Store.NO, Field.Index.TOKENIZED)); d.add(new Field("f2", "This field has payloads in all docs", Field.Store.YES, Field.Index.TOKENIZED)); Integer i1 = i; byte []payLoadData = null; payLoadData[0] = i1.byteValue(); _analyzer.setPayloadData("f2", payLoadData); _writer.addDocument(d); } writer.optimize(); // flush writer.close(); String queryString = "payloads + doc"; System.out.println("Reading Payload Data will begin now"); _parser = new QueryParser("f2", new PayloadAnalyzer()); _searcher = new IndexSearcher("d:/test1"); Query query =_parser.parse(queryString); Hits hits = _searcher.search(query); for (int i = 0; i < hits.length(); i++) { Document doc = hits.doc(i); Here I want to get the value of payload for the field.. Please let me know how I can get value of payload for a field from Hits } Thanks in Advance Warm Regards, Allahbaksh **************** CAUTION - Disclaimer ***************** This e-mail contains PRIVILEGED AND CONFIDENTIAL INFORMATION intended solely for the use of the addressee(s). If you are not the intended recipient, please notify the sender by e-mail and delete the original message. Further, you are not to copy, disclose, or distribute this e-mail or its contents to any other person and any such actions are unlawful. This e-mail may contain viruses. Infosys has taken every reasonable precaution to minimize this risk, but is not liable for any damage you may sustain as a result of any virus in this e-mail. You should carry out your own virus checks before opening the e-mail or attachment. Infosys reserves the right to monitor and review the content of all messages sent to or from this e-mail address. Messages sent to or from this e-mail address may be stored on the Infosys e-mail system. ***INFOSYS******** End of Disclaimer ********INFOSYS***
|View raw message


text:
Bobby Bowden talks about life away
For the past week, former Florida State coach Bobby Bowden has been traveling the country to promote his book "Called to Coach." He has spent most of his tour talking about being forced out by ex-FSU president T.K. Wetherell after winning two national titles and having 33 straight winning seasons. That's the juiciest segment of the book, co-written with ESPN.com college reporter Mark Schlabach. You can see that discussion in the video above.
But, we're Page 2, so we went off-the-board with our questions.
Here's 10 things you might not have known about Bowden:
1. Bowden realizes he will be criticized for only talking about his treatment at FSU in the book. "If I would have won more games, they wouldn't have let me go. I know that. But I wanted one more year. I started talking now instead of back then because I didn't want to make a scene. My children kept telling me I should have said it back then. I didn't want to embarrass anyone. So I wrote it all down."
2. Bowden still wakes up at 4 a.m. "For me to sleep in, that's 4:30. It's the best time to read. I go down, make the coffee and start reading. Then the newspaper shows up and I read that too. The phone starts ringing around 7 a.m. I tried sleeping late, but my body can't do it."
3. Bowden has a huge list of honey-do projects. "I had to change a tag on my car. That's the first time in 50 years I've had to do that. I had a flat tire. I didn't know what to do. I've always been given a courtesy car. If it doesn't work, you get a new one. It always was a first time for me to screw in light bulbs."
4. Bowden can play more golf. "You know for the first time I played golf in August. I've never done that. I've always gotten ready for the football season. I'm also going to get to play more in the fall. I don't hit the ball very far but it's straight. If I play from the senior tees, I might shoot 75. Last week, I had six birdies and an eagle."
5. Bowden never wants to see bad news. "I learned to handle criticism a long time ago. It's been tougher on my family. They hear about it at the post office. I don't want to hear it. I tell my staff not to tell me. It's amazing. Coaches are sheltered. I told my secretary not to put any bad stuff on my desk and not show it to me. I don't want to get mad."
6. Bowden isn't setting foot on campus this year or going to any games. "Most of the people who wronged me are gone, but I'm not going to any games this year. I think when I do come back, I'm sure it won't be strange. It shouldn't be."
7. Bowden will still watch college football on television: "For the first time in my life, I can watch my son play. On Saturdays, I can lay back, get a bite to eat and cuss at the TV."
8. Bowden and his wife, Ann, eat out most nights of the week. "We have a place in Tallahassee and Panama City and we bounce back and forth all week. We just love to go out. And our phone number is still listed in the Tallahassee phone book. Most people have been respectful about that."
9. Bowden now knows how to use a computer. "Last Christmas, I got a laptop. I knew nothing about it. Now I know how to get e-mail and I know how to send e-mail. I can look up anything I want to now. I've learned a lot of things. I spend a lot of time on my laptop."
10. Despite what you might think, Bowden says he must still work. "Five years ago, I thought, 'Boy, what are they going to do for me when I retire? I know they are going to be so good to me! What am I going to do with all that stuff they'd give me?' Well, it didn't happen that way. The only thing they gave me was a suitcase to pack my bags! But I still have to work. Ann and I invested in real estate and we can't do a thing with it. All we're doing now is paying taxes and making repairs. I hope they come back. So that's why I have to work. And Ann likes me to get out of the house too!"
Lynn Hoppes is Senior Director for Page 2 and Commentary for ESPN.com. He can be reached at email@example.com.


text:
Page 2A
Feds want local police to require body armor
Justice Dept. threatens to withhold aid
By Kevin Johnson
WASHINGTON � The Justice Department is threatening to withhold millions of dollars in federal aid to local police departments unless they adopt policies that require uniformed officers to wear body armor.
The requirement, which takes effect this month as local agencies apply for as much as $37 million in federal aid to purchase bullet-resistant vests, comes in the wake of a recent surge in fatal shootings of police officers.
Jim Burch, acting director of the department's Bureau of Justice Assistance, said the new policy is in response to the spike in violence � a 44% jump in fatal police shootings over the same time last year � and research showing that 41% of police agencies do not require their officers to wear body armor.
"What struck us is the number of agencies that don't have a mandatory policy … a potential huge vulnerability," Burch said. "If we're investing federal dollars, we should require agencies to have policies."
Last year, the Justice Department distributed $37 million to reimburse 4,127 agencies large and small, from Anchorage and Boston to Chicago, Los Angeles and New Orleans, for the purchase of 193,259 vests.
Justice officials began contemplating changes to the vest program after a 2009 review by the Police Executive Research Forum, a law enforcement think tank, found that 41% of departments do not require officers to wear body armor at least some of the time. The federal program would mandate that officers wear the vests while in uniform.
Among the other findings in forum report, which surveyed 782 agencies: fewer than half of the agencies that required armor had written policies addressing the issue. The overwhelming majority of the agencies � 90% � do not regularly inspect the equipment to ensure that it fits or has been properly maintained.
"There is no good reason … for not requiring it," said Chuck Wexler, the forum's executive director. "This is an appropriate role for the federal government."
The Justice action has prompted a number of police officials to re-evaluate their own policies or risk losing access to federal funding at a time when local government budgets are being slashed and services, including law enforcement, are being cut back.
Sacramento Police Chief Rick Braziel said he doesn't believe the federal government should dictate how local police operate, including whether officers should be required to wear vests.
Under his department's policy, all officers must have vests. Braziel said he will now require that officers wear vests, if only to ensure federal money keeps flowing. Last year, Sacramento received $45,412 for 360 vests.
"Decisions like these are better left to individual departments," Braziel said. "But right now we're scraping for every dime we can get. We'll be making a quick change" in policy.
Milwaukee Police Chief Ed Flynn said his department is drafting a policy to meet the new federal rules. "It wasn't about the money," Flynn said, adding that Justice's action motivated him to focus more attention on officer safety, and he plans to beef up security at police stations.
Seven Milwaukee officers have been wounded in the line of duty in the past two years. All but one was wearing body armor.
Flynn said officers now need to know that armor should be regarded as necessary equipment. "It's a second skin," he said. "It's part of the job. It's what you do."
Alarmed by the spike in officer fatalities, U.S. Attorney General Eric Holder last month convened a meeting of law enforcement officials. He said vests purchased through the federal program helped save the lives of six officers this year. "Our law enforcement officers put themselves in harm's way every day to ensure the safety and security of the American people in cities and communities across the country, and we need to do everything we can to protect them."
Page 2A
About USATODAY.com: Site Map | FAQ | Contact Us | Jobs with Us | Terms of Service
Privacy Policy/Your California Privacy Right | Advertise | Press Room | Developer | Media Lounge | Reprints and Permissions
News Your Way: Mobile News | Email News | Add USATODAY.com RSS feeds | Twitter | Podcasts | Widgets
Partners: USA WEEKEND | Sports Weekly | Education | Space.com | Travel Tips