• 0

Game Development Language Choices


Question

Hey everyone. I'm a web developer with experience in PHP, MySQL, Ruby, JavaScript to name a few and have reached a point in time where I have plenty of free time to branch out into things I *really* want to do - specifically game development. I have a fantastic artist wife that can handle any artistic side of the project, so that leaves me to handle the development side of things. Now, I'm not going crazy saying that I want to be a one man team making AAA games... however, I do want to put some basic indie titles together (think Cave Story, Fez, Braid) eventually with a few friends (I know a few programmers that would probably jump on the opportunity - though their skills are spread out over a wide spectrum of languages/fields).

So yeah, I'm thinking 2d, maybe some isometric 2.5d stuff. Side scrolling, top down, NES style games to start.

What language should I look into learning? I've heard conflicting opinions on each option.

C# - Most will tell me to jump straight into C# and work with XNA, but that leaves mutli-platform out of the question. I'm not too concerned about multi-platform, but I think it's a good option to leave open.

Java - So, that would lead me towards Java. I'm not a fan of Java, as a user. VM always seemed bulky and slow, with tons of vulnerabilities.

C++ - C++ might be a little bit too much of an undertaking, but I can see the benefit of learning proper memory management out of the gate. However, it might add too much time to development where, say, C# has XNA that handles a lot of the work out of the box.

Python - I see Python as an alternative, but I'm not sure I want to venture too far off the beaten path. Python is a very elegant language that I could pick up rather quickly, but the games I have seen developed in Python leave me wondering how capable it -really- is.

Would love to see some opinions here. Hopefully I didn't come off as too optimistic. :)

Link to comment
https://www.neowin.net/forum/topic/1110503-game-development-language-choices/
Share on other sites

Recommended Posts

  • 0

From a beginner's perspective, XNA is way easier: you can jump straight into your game-specific, there's no creating a window, acquiring a device, setting up buffers, writing an update/draw loop, loading assets; you new up a SpriteBatch and tell it where to render your sprites and that's it. Also, unlike SharpDX, XNA is platform-agnostic: it has already been succesfully ported to OpenGL mobile devices and soon it'll run under DX11 in Windows 8; SharpDX ties you to a specific API and you'll have to perform any porting manually.

  • 0

Learn C++ first, but you also need to know C#. C# is not only great for coding tools, but engines that support it offer a great way to compile once and deploy to multiple platforms.

Yep! That's my plan.

This is just such a polarizing issue, I figured it would be interesting to see the varying opinions. I really like the C++ -> C# route now. :)

  • 0

2D? I'd start Python + pygame or Flash or a game building front end. There would be much less for you to learn while getting started.

Personally I would look at what games you enjoy were written in, as a short list of 2D platformers:

VVVVVV: Flash

Super Meat Boy: Flash (then rewritten in C++)

Spelunky: Game Maker

Cave Story: looks like C++

Castle Crashers: Flash and C++

Terraria: C# using XNA

Angry Birds: C++

  • 0

I agree with you Dr_Asik. Honestly, I found that giving advice to start with C++ is a bad idea. A lot of people do not want to deal with not only the stuff you just mentioned, but they also do not want to worry about memory management themselves as a first step in programming.

My advice? I would go for Java or C#/XNA. I would not worry about multi-platform at this stage (though there is Mono and MonoGame for C#/XNA). You will not be building Crysis 3 as your first game so either one of those languages will be more than enough power to fit your needs.

I am personally going to stick with C#/XNA for a while. Why? XP and 7 will still be top dogs for a while, and it still works in Windows 8 in desktop mode. I am a 2D game programmer so XNA is more than powerful enough for me.

If you want to make a career out of this, the probability that it will be C++ is very high. But programming is programming. Start with an easier language to get you in the mindset of programming and how to implement algorithms and game related functions. Then you will just have to deal with the complexities of C++ later when you move to it.

  • 0

From a beginner's perspective, XNA is way easier: you can jump straight into your game-specific, there's no creating a window, acquiring a device, setting up buffers, writing an update/draw loop, loading assets; you new up a SpriteBatch and tell it where to render your sprites and that's it. Also, unlike SharpDX, XNA is platform-agnostic: it has already been succesfully ported to OpenGL mobile devices and soon it'll run under DX11 in Windows 8; SharpDX ties you to a specific API and you'll have to perform any porting manually.

Are you talking about 2D? Because I don't see how tha would work with 3D. You'd have to rewrite your shaders; other differences also prevent even higher code from being shared. Even content cooking wouldn't work unless Mono developers ported everything to OpenGL and created 3D model and audio loading facilities into their implementation, which I doubt.

  • 0

Are you talking about 2D? Because I don't see how tha would work with 3D. You'd have to rewrite your shaders; other differences also prevent even higher code from being shared. Even content cooking wouldn't work unless Mono developers ported everything to OpenGL and created 3D model and audio loading facilities into their implementation, which I doubt.

This isn't finalized but right now they convert HLSL to GLSL and they rely on XNA's content pipeline to build the content. I'm not too savvy about how they do it and what the ultimate plans are.
  • 0

2D? I'd start Python + pygame or Flash or a game building front end. There would be much less for you to learn while getting started.

Worst advice ever, all programmers need to start off with C/C++ because if you know C you can learn anything from there on out.

  • 0

[/color]

Worst advice ever, all programmers need to start off with C/C++ because if you know C you can learn anything from there on out.

No not all programmers need to start with C/C++. They should start with a language that is easier than that. My path was with Visual Basic -> Java -> C++ -> C# -> Python. The worst advice I have ever given people is to start with C/C++.

  • 0

2D? I'd start Python + pygame or Flash or a game building front end. There would be much less for you to learn while getting started.

+1 for Python / pygame. It's easy to pick up, fun, and quite powerful. It also runs on just about every platform.

  • 0

Worst advice ever, all programmers need to start off with C/C++ because if you know C you can learn anything from there on out.

Well, the learning curve for C++ is pretty steep, and it's not a particularly good language anyway. C is much easier to learn, so I agree that it can be helpful.

As far as Python is concerned, it's good for getting something up and running quickly, especially with an interpreter you can run live code in for testing purposes. I'd actually recommend learning both C and Python. C forces a programmer to learn real programming, instead of relying on sprawling, opaque libraries to do the work for them. It's also simple to learn due to the small std library and small number of keywords / syntactic constructions. Python allows one to operate on more modern OO and language concepts.

  • 0

A quick question - is XNA dead?

No, it is still used for XBLA, XBoX and Windows game development. MS Hasn't released a new XNA Framework in a while, but it may just not need any critical updates.

  • 0

Don't limit yourself with XNA. Check out Unity. It's free, lets you program using C# or Javascript(not java), can compile to run on most systems, to include Android, iOS, Xbox, Windows, Mac, etc. There are tons of guides online for it. The list of games made with it is pretty impressive. Zombieville USA, which I played on iOS and was a well put together side scroller, was made with only two people.

- Zombileville USA game play.

- Zombieville USA 2

http://unity3d.com/g...unity/game-list

  • 0

A quick question - is XNA dead?

I never understand why people panic (I am not saying you are, I just had to deal with a lot of developers who were in a panic because they were in the middle of development of a large project) and think a framework can be dead. I had to respond to a lot of emails and worried developers about this. And they always say a blog post said XNA was dead or an article somewhere. Here is the response I usually give:

Do not be worried about using XNA. One of the biggest indie games ever was made in Java (Minecraft), which probably has less support than XNA (especially for 3D stuff). If XNA is more than enough for your needs, you do not need to be worried about using it.

Also, with XNA right now, you can make the game for Windows XP, Vista, 7, and yes 8 in Desktop mode. You also get Xbox 360 and WP. I do not use it on the phone, but I heard it is supported on WP8. Once you build it for one of those to create the XNB files (for your assets), you can use MonoGame for cross platform. I honestly think it is way too soon to jump ship and only focus on one Operating System (Metro apps) and the phone. On the flip side, now might be the best time to develop for the new apps on Windows 8. But you can develop for XNA for a desktop program, then use MonoGame to make a metro version of it.

We have not heard anything one way or another. Metro/Modern uses Direct X 11, XNA is Direct X 9 (they only took state object designs from DX 10/11 according to Shawn Hargreaves). Likewise, Xbox 360 is only DirectX 9, which is what XNA is primarily used for. We do not know if they are making a new XNA for DirectX 11 to go along with a new Xbox (which will require some time) or if they will abandon it. Why dedicate resources to make an XNA version with a new DirectX when we still have the Xbox 360? Plus supporting both types would be a nightmare. They are probably waiting until the next Xbox to perform such an upgrade to XNA. This is entirely possible. It is just as possible that they will not. But a framework can only be dead if Microsoft stops providing download links for it. I assume they will let the download live for years. You can still download XNA 1.0. Since MS seems to be focusing a lot on C++, they might make the next XNA (if there is one) C++, which will require even more time to develop. I would love that!

How is it considered dead but you can still write Windows 8 desktop programs with it? Even if 4.0 is the last XNA version, it is still a decent gaming framework that will work on the latest almost-released Operating System in the desktop environment. It could PROBABLY work on Windows 9 too, but we will see when we get there what MS decides to do. You have a lot of target audiences that way.

Unity is good too, I personally prefer XNA over unity because I do not get much time to develop, but if I did I would use Unity.

Even though a lot of hate is toward Java now, I still think it is a good learning language. If you install Java, just disable support for it in your browser (NOT Javascript, but Java).

I would avoid Visual Basic. The syntax still annoys me to this day...

Finally, I would go with C/C++ (if you want to) after you learn the basics and use an easier language to begin with.

  • 0

Leaves multi-platform out of the question? Dude, XNA is the only way to make indie games for a game console, (in this case the Xbox 360,) without hacking the console, & it works with a lot of other platforms too! (Windows, Windows Phone, & the Zune. Of course, the Zune is for older versions of XNA & Windows Phone is for newer versions, but, still...)

  • 0

Leaves multi-platform out of the question? Dude, XNA is the only way to make indie games for a game console, (in this case the Xbox 360,) without hacking the console, & it works with a lot of other platforms too! (Windows, Windows Phone, & the Zune. Of course, the Zune is for older versions of XNA & Windows Phone is for newer versions, but, still...)

Should say... leaves anything not Microsoft out of the equation (though there is MonoGame)

  • 0

The number of people blindly recommending C++ is frighting. If you're not going to be making AAA titles, and you don't require massive performance, then there is almost no reason what so ever to learn and use C++.

If you are SERIOUSLY considering making a game, C++ is the way to go. The power is almost limitless....

Performance wise, Java and C# are going to be close

I HOPE that this is a joke. Performance wise, C# (in fact nearly any .NET language) kicks Java's ass. Excuse me; almost ANYTHING kick's Java's ass in performance.

I know this because I devlop in Java; It is the most disgusting slowest memory hogging piece of **** ever created. Multiplatform? Yes. Of course. Is it worth it? Hell ****ing no. The thing that most ****es me off is that there has been 17 years to improve it and STILL the performance is horrible. And Im not even going to start on the security portion.

No not all programmers need to start with C/C++.

I completely disagree. C is almost mandatory to at LEAST have coded in ONCE. Even as a school project. Even as agenda that stores a person and certain attributes such as name, numer, etc. It shows so many low level concepts on programming that nowadays with IDEs using mostly OOP (C#, Java, even C++) that you lose core fundamentals.

They should start with a language that is easier than that.

I again disagree with your opinion. Its easier to start from a hard language © then work your way to a easy language (VB.NET)

My path was with Visual Basic -> Java -> C++ -> C# -> Python. The worst advice I have ever given people is to start with C/C++.

Wow you started with two of the most easiest and horrible languages. The only thing C++ has in common is that it is OOP.

Bottom line: If you want to make a serious game, C++ without a doubt. Serious as in you want it to get noticed and hell, even sell a few copies. That being said, like many had said, there is a learning curve

If you want to start with game development and make a simple cheesy game, C#. Development will be quicker and the learning curve is basically null

  • 0

Bottom line: If you want to make a serious game, C++ without a doubt. Serious as in you want it to get noticed and hell, even sell a few copies. That being said, like many had said, there is a learning curve

If you want to start with game development and make a simple cheesy game, C#. Development will be quicker and the learning curve is basically null

I whole heartedly disagree with this statement, particularly the part about selling a few copies. There are numerous, successful game developers who have sold games written in something other than C++. And, further to the point, there are those that have gotten their start in languages beyond C++.

I stand firmly with my belief that starting with something like AS3, which is still OO, and doesn't have the added complication of managing memory is the place to start.

  • 0
If you want to start with game development and make a simple cheesy game, C#. Development will be quicker and the learning curve is basically null

I disagree wholeheartedly. The game I'm developing in C# is nothing close to cheesy. It runs on multiple operating systems, such as Linux and Windows, is not slow* (I can run it on a netbook with an Atom processor and ION graphics at 30 FPS), and it was written in a fraction of the time it would take to write in C++. Your post reminds me of how far technology has come; we aren't reliant on writing assembly software rendering routines anymore. Computers are more powerful and hence I can spend less time pulling my hair out over C++ "features" and more time programming a solid game.

Just to point out, my game features resolution independent vector graphics. The framework I built is component based, and thanks to the power of the .NET framework, I am able to generate entire levels using reflection. I admit, given more time and resources, I very well could develop it in C++...but that's it! I don't have the time or resources! And most hobbyist game developers don't either.

*: By slow, I mean C# is not the limiting resource. It's the graphics card.

  • 0

I'm not a game developer but... why not a mix of C/C++ and python? C for the stuff that needs to be done quickly, and python for the stuff that can be tweaked/used to mod?

For a PC game that might make sense, but not for a game that has to run on a mobile platform or console.
  • 0

pes2013, you are missing the point of being new to programming and game programming too.

Lets take mathematics for example. Would you recommend I learn Calculus first before learning algebra? That might be a bad question since you need algebra to do calculus. How about learning how to create a formula before I use it? Here is an example: I used the mathematics formula for the area of a triangle long before I took calculus. One of the things we did in calculus is to PROVE the formula. So in Calculus I learned how to MAKE the formula that I have been using for years with the integral.

It is the same way with programming. If you are a beginner, you do not need to worry about the nasty stuff. You are a beginner, you do not need to worry about memory management, dealing with pointers. Even more so can be said with game programming. Lets take XNA for example. There is A LOT of core Direct X stuff you would need to implement and call yourself to get everything set up. Again, you do not need to worry about this as a beginner. You can just use a framework like XNA or use something like the Java Game Library (what Minecraft uses) or Unity or something to help you.

I again disagree with your opinion. Its easier to start from a hard language ? then work your way to a easy language (VB.NET)

No it is not. A lot of people get extremely frustrated when languages require more from you. This is their first few programs they ever developed. Why do they NEED to start with a harder language? Why is it easier for a new programmer to learn from a harder language than something that is much easier? An easy language gets you thinking like a programmer and not have to worry about the advanced topics like memory management and setting everything up yourself. When you are thinking like a programmer, the advanced languages would be much easier.

Wow you started with two of the most easiest and horrible languages. The only thing C++ has in common is that it is OOP.

Uhhhh yeah.....You start out learning math with 1+1. Your point that I STARTED programming with an EASY language is what exactly?

I will agree that Visual Basic is horrible, I just cannot stand it. BUT when I was young, it got me in the programming mind. Even if it did teach me some bad habits, which I quickly switched out of when I moved to Java, it still made my mind think like a programmer.

seethru: AS3 is another good choice.

Veiva: I assume you are using XNA since you said C#? If you said it in an earlier post, I apologize. I agree and I think C# will be more than enough for the beginners first five or so games they make. Not to mention if you like sticking with 2D, it has more than enough power for you. Why would I need C++ if XNA is MORE than enough for my game's needs? One of XNA 3.0's starter kits is a 3D racing game that runs at 60 fps. I say C#/XNA has more than enough power for a beginner's first several games.

This topic is now closed to further replies.
  • Posts

    • Microsoft Flight Simulator's City Update 15 enhances Midwest cities by Pulasthi Ariyasinghe The third major city update of the year has landed for the original Microsoft Flight Simulator and the 2024 release. The latest drop is upgrading the visuals and regional accuracy of three metropolitan regions in the American states of Illinois, Minnesota, and Wisconsin. The 15th city update is adding eight new areas of interest that have been enhanced with high-fidelity TIN (triangulated irregular network) surface texturing in the mentioned regions. The free update highlights Chicago, Elgin, Cicero, and Arlington Heights in Illinois, as well as Minneapolis, St. Paul, Bloomington, Duluth, Brooklyn Park, Woodbury, Lakeville, Plymouth, and Blaine in Minnesota. In Wisconsin, the development has also upgraded the lands and buildings of Milwaukee, Madison, and Racine. The update lands just as one of the world's largest enthusiast flight simulation conventions, FlightSimExpo, kicks off in downtown St. Paul, Minnesota, on June 14. The Flight Sim development team's 40-minute keynote at the event can be watched here. At the same time, Microsoft is bringing the 6-seat, single-engine, multi-use light civil airplane Piper M600 into the game as a part of its Expert Series 2 program. This premium plane can be purchased from the in-game marketplace for $24.99. City Update 15: The United States Midwest is now available in Microsoft Flight Simulator, as well as the newer Microsoft Flight Simulator 2024, as an optional download. It can be accessed across Steam and the Microsoft Store for PC, Xbox Series X|S, and PlayStation 5, as well as Xbox and PC Game Pass subscriptions. Xbox One, mobile, and PC players can also jump into the new content using Xbox Cloud Gaming if they have a Game Pass Ultimate membership. The game must be updated to the latest version to download this free update from the in-game marketplace.
    • Five things you might have missed during Apple's WWDC 2026 by Aditya Tiwari Image: Apple Apple's annual developer event, WWDC 2026, happened from June 8 through June 12. We have already covered several new features and updates that the iPhone maker unveiled during the official keynote. Apple took Google's help and finally announced the upgraded Siri AI personal assistant, which now comes with an app. Moreover, a truckload of Apple Intelligence features took the center stage. That said, this year's WWDC is a bit different, and you might have noticed or missed the following stuff: Apple's ongoing unification of platforms Image: Apple One thing Apple is widely known for is its seamless hardware-software ecosystem. The company added a new chapter in 2020, when it began the Apple Silicon transition and launched macOS 11 Big Sur with native ARM support. Some major changes happened last year as well, when Apple renamed all of its operating systems to version 26 and introduced the Liquid Glass design language. Until WWDC 2025, Apple keynotes had dedicated segments for iOS, iPadOS, macOS, watchOS, and other operating systems, in which the company discussed each in detail. The WWDC 2026 keynote was different, and Apple allotted most of the screen time to Apple Intelligence and Siri. It didn't even publish separate press releases on its website for different operating systems. While it might seem surprising at first, it shows how Apple plans to move forward with its software ecosystem. Be it the Liquid Glass changes, child safety updates, or other features, they are mostly rolling out across multiple platforms. In other words, Apple is slowly blurring the line between its operating systems and achieving feature parity wherever possible. It's easy to rule out that someone in Apple's marketing team forgot to press the publish button. Everything is a calculated move when it comes to a company like Apple. Putting Apple Intelligence left, right, and center hints that the OS itself is no longer the product anymore. It's Siri, not Pepsi Time and again, various Apple products have been compared to unrelated things and turned into meme material. You might have heard about the "cheese grater" Mac Pro or the "trash can" Mac Pro, to name a few. It's Siri's turn this time. The upgraded AI assistant got a fresh logo, and people have started comparing it with Pepsi. There are other contenders, such as the Sony Ericsson logo and the Yin and Yang symbol. Shot on iPhone. Edited on Mac Image: Apple Apple has been putting the iPhone's camera muscles to the test on various occasions. Even NASA astronauts took it to Space earlier this year and captured some out-of-this-world photos. Recently, Apple TV streamed the first major live sporting event shot entirely on iPhone 17 Pro: an MLS match featuring the LA Galaxy vs. the Houston Dynamo FC. The 'Pro' iPhone has also been used to shoot Apple events in recent years. It's "Scary Fast" Mac event in 2023 was among the earliest attempts, and the tradition trickled down to the WWDC 2026 keynote, which ended with the tag line "Shot on iPhone. Edited on Mac." It's unsurprising to see Apple flexing the camera capabilities of its Pro models, especially when it has been baking professional-grade features, including ProRes RAW and Genlock. Hints for the foldable Apple has been sitting on the foldable iPhone for so long. There is still confusion over when the company will make it official. A recent report said that the iPhone Fold might get delayed as Apple is struggling to perfect its hinge mechanism. But Apple has been dropping hints here and there. A developer dug into the iOS 27 beta code and found internal references about device folding states. As verified by Macworld, the code includes references to "foldState" and "angleDegrees" internal status values, which are apparently designed to tell apps if a device is folded and at what angle. As of now, no other Apple device uses these states. The publication also found internal code suggesting Apple has been testing a device with both Touch ID and Dynamic Island, a combo that doesn't exist today. Last event as Apple CEO Image: Apple Tim Cook's bond with Apple is now almost three decades old, having started in 1998 as the SVP of Worldwide Operations. Back in August 2011, Steve Jobs stepped down as Apple CEO months before his passing, and Cook took charge. Now, the baton has been passed to the hardware chief, John Ternus, who will take over the role on September 1. WWDC 2026 is the last major Apple Event for Tim Cook as CEO. We have seen so much during Cook's tenure over the years, much of which defines Apple as we know it today. From new hardware product lines like Apple Watch, AirPods, Apple Vision Pro, and Apple Silicon, to boosting Apple's services business with Apple Music, Apple TV, Apple Pay, Apple Arcade, Apple Fitness+, Apple Care One, and more. That said, the first developer betas for Apple's latest operating systems are now available. You can check if your device is supported on iOS 27, iPadOS 27, macOS 27 Golden Gate, watchOS 27, and other platforms. What's your favorite feature that Apple announced this year at WWDC 2026? Tell us in the comments.
    • Trailer park trash “sport “, fits the current White House
    • KataLib 5.3.0.0 by Razvan Serea KataLib is more than just a music player — it's a complete audio suite designed for music lovers and creators alike. It combines a powerful audio player, a flexible metadata editor, a capable audio converter, and a music library manager into one streamlined application. Core Features: Audio Player Enjoy seamless playback of virtually any audio format or even streaming video files. DJ Mode lets you mix tracks with manual or automatic crossfades. You can also load and save WinAmp-style playlists for quick access to your favorite sets. Audio Converter Convert between a wide range of audio formats effortlessly. Trim or normalize your output automatically, and even extract audio from streaming video sources. Ideal for preparing files for different devices or platforms. Metadata Editor View and edit ID3v2 tags and other metadata. Batch edit multiple files at once, and fetch missing information directly from the MusicBrainz database. You can also apply or update album art with ease. Music Library Manager Organize your entire audio collection, search across tracks instantly, and download cover images from the internet — or use your own custom artwork. KataLib makes it easy to keep your library tidy and enriched with useful info. Supported Formats: KataLib supports a wide range of both lossy and lossless audio formats: Input: OPUS, AAC, FLAC, M4A, MP3, MP4, MPC, APE, AIF, MKV, AVI, MOV, FLV, WEBM, Ogg Vorbis, WAV, WAVPack, WMA, AC3, OGA, MP2, MPGA, MPEG, DTS, M4B, DSD (DFS) Output: OPUS, FLAC, M4A, MP3, Ogg Vorbis, WAV Under the hood, KataLib uses the trusted FFmpeg engine for audio conversion and media playback, ensuring compatibility with virtually all mainstream media formats. KataLib 5.3.0.0 changelog: Added Option to select the Zoom level of the Oscilloscope visualizer. The taskbar button of the app now displays the progress of its processing tasks. The metadata text of the Visualization Video can now be aligned by the user. We can now reorder the order of the Visualizers and Metadata, in the Visualization Video Setup dialog, by removing any item and adding it again. It will be added at the end. Changed The font size of the Visualization Video can now be more than 30 points. Updated yt-dlp library to version 2026... Fixed Opening the Visualization Video Setup dialog could fail if the settings were wrong. Sometimes there were false duplicates in the Rename Tracks dialog. Tracks without metadata appeared without title in the Recent menu. Download: KataLib 5.3.0.0 | 90.0 MB (Open Source) Links: KataLib Home Page | Github | Screenshot Get alerted to all of our Software updates on Twitter at @NeowinSoftware
  • Recent Achievements

    • Week One Done
      ssd21345 earned a badge
      Week One Done
    • Contributor
      MarkHughes4096 went up a rank
      Contributor
    • Dedicated
      jordanspringer earned a badge
      Dedicated
    • Rookie
      Rimplesnort went up a rank
      Rookie
    • One Year In
      Markus94287 earned a badge
      One Year In
  • Popular Contributors

    1. 1
      +primortal
      486
    2. 2
      +Edouard
      173
    3. 3
      PsYcHoKiLLa
      138
    4. 4
      ATLien_0
      94
    5. 5
      Steven P.
      79
  • Tell a friend

    Love Neowin? Tell a friend!