• Advertisement
Sign in to follow this  

Being it's almost 2009, c# or c++ for casual game?

This topic is 3293 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

I am comfortable with both languages and unfortunately have been away from game development for a few years. Is there still a good reason to use C++ over C# in casual game market? I'm not talking from developer's point of view, but from consumer's point of view. Is .Net 2.0 framework pretty well entrenched in Windows XP / Vista or is it still a burden to have to install for end user?

Share this post


Link to post
Share on other sites
Advertisement
Quote:
Original post by azherdev
Is .Net 2.0 framework pretty well entrenched in Windows XP / Vista or is it still a burden to have to install for end user?
Just bundle it with your installer, with the CLICK ONCE DEPLOYMENT option.

Share this post


Link to post
Share on other sites
I'm pretty sure it comes with Vista. Win XP users may still have to get it though.

Share this post


Link to post
Share on other sites
A lot of gamer's computers will already have the .NET framework by now, and it's not that much of a hassle to install if they don't. Pick whichever language you prefer as a developer and get to work!

Share this post


Link to post
Share on other sites
I'm trying to find if there are statistics as to the install base of .Net 2.0.

I understand that any of us can install it easily. But what about my mom that wants to play a tetris like game? How many moms will download a 10Meg game and then be hit up with a prompt to download something else called ".Net" and will be 20+ megs?

I deal in .Net a lot and therefore in a bubble of what an average consumer has. Not gamers who have 3 DVD Disc games.

Thanks for your nudges over to .Net. :)

Share this post


Link to post
Share on other sites
Well C++ does have the Playground SDK and the PopCap framework which are C++ casual game frameworks created by Playfirst and Popcap Games respectively. I personally use PopCap and it is a well tested framework for making casual games (Although Playground has some nice features).

With C#, I assume you would be using XNA. XNA is really nice and I enjoy working with it, but then your users will need the .NET framework and the XNA runtime as well as a graphic card that can support at the bare minimum shader model 1.1 afaik (which should be fairly standard by now though).

You have to remember that on average casual game players are not the most highly computer savvy customers, and it is important that the install process is simple... If they have to do a lot of installation steps because they are running on Windows XP Service pack 1.... Then they might get frustrated.

Share this post


Link to post
Share on other sites
Quote:
Original post by azherdev
I understand that any of us can install it easily. But what about my mom that wants to play a tetris like game? How many moms will download a 10Meg game and then be hit up with a prompt to download something else called ".Net" and will be 20+ megs?

So bundle it as a single 30 MB download. Anyone who can download 10 MB in a convenient amount of time can download 30 MB.

Seriously. Pick a language and get to work.

Share this post


Link to post
Share on other sites
I would lean to C++, purely because the distribution is marginally easier. Distribution makes a big difference to casual gamers, and you might be able to get away without an installer (or with just a quick DirectX update) with C++, static linked so everything's in the EXE. With C#, you risk having to get the .NET framework installed, which for a casual gamer might mean not bothering installing and moving on to the next game which 'just works'. If you want 10 minutes of light entertainment, you don't want that to be spent installing frameworks, and if you're still on dialup 30mb is a big deal.

It's a minor point and fast getting even less important, with the existing widespread distribution of the .NET framework, broadband, and if your game has a large filesize and installer already then you can shrug it off. But for quick, double-click-and-it-runs casual gaming, I think C++ has a slight edge.

Share this post


Link to post
Share on other sites
Look at all the successful casual games of 2008, categorize them according to programming language. Choose the one with the overwhelming majority of games written in it. That way you get something with a proven track record and which you know won't be the reason for an eventual failure. Otherwise you'll be asking yourself "what if".

Share this post


Link to post
Share on other sites
Pick the language you're most comfortable with. It really doesn't matter at all. Programming languages are simply the tools with which you build your applications. Use whatever will make your development faster and easier.

Share this post


Link to post
Share on other sites
The programming language choice is going to affect you far less than the Platform / API choices you make (which third party libraries to use, whether you use someone else's engine, or write directly to DirectX or OpenGL).

I think you should spend a few weeks researching existing libraries / APIs / Game Engines so you can decide for yourself if any of those are heading the direction you want to go. The fact that you are proficient with both C++ and C# should mean that all important game libraries and engines are available to you, because they are almost all written in either C, C++ or .NET.

Once you pick a platform / engine to use or extend ... then your language will be dictated by that.

If for some reason you we're going the completely from scratch route, I think C# will be slightly easier for you to manage you project in (and it is absolutely standard on Windows ... it is part of the "windows update" set of updates, it is required by ATI's Video Driver control panel, it will already be installed on 85% of the machines that people might download your game from (assuming you are targeting Windows XP and DirectX). C++ is absolutely fine, but C# is a little cleaner for doing the main interfaces and game engine in. You can still interact with C++ if you need to from C# (I've written little C++/CLI wrapper classes for C++ libraries a few times, it's easy - if the library is small).

Good Luck

Share this post


Link to post
Share on other sites
Quote:
Original post by asp_
Look at all the successful casual games of 2008, categorize them according to programming language. Choose the one with the overwhelming majority of games written in it. That way you get something with a proven track record and which you know won't be the reason for an eventual failure. Otherwise you'll be asking yourself "what if".


The question was whether to go with C++ or C#, not Flash.

Share this post


Link to post
Share on other sites
Quote:

The question was whether to go with C++ or C#, not Flash.

Is Flash really a viable commercial market outside of for the hosters? I could see a game which is heavily tied into a server work pretty well but I doubt a casual shareware type game model would work very well. Do you have any examples?

That said, if you're developing a game and you just want people to play it and don't care about the money, Flash in an awesome solution and it really proves how valuable a low barrier to deployment is.

Share this post


Link to post
Share on other sites
I think you should focus on the language you are more proficient. Complete the game and if someone finds it appealing they will do whatever it takes to install it. Choice of language or deployment method is not significant.

Share this post


Link to post
Share on other sites
Quote:
Original post by asp_
Quote:

The question was whether to go with C++ or C#, not Flash.
Is Flash really a viable commercial market outside of for the hosters? I could see a game which is heavily tied into a server work pretty well but I doubt a casual shareware type game model would work very well.
Yes, it is, although in most cases the money is in sponsorships and/or pre/in-game advertising rather than upselling a full version of the game (which isn't to say that doesn't also work and get done as well).

Quote:
Do you have any examples?
Sure:
Quote:
from Wikipedia: Desktop Tower Defense
As of July 2007, the game had been played more than 15 million times since its inception in March of the same year. The game has made over $12,000 in ad-revenue and donations according to its creator. Most of the revenue generated by the game is through the online ad-service AdSense.
Note that this information is relatively old and I believe pre-dates the game being sponsored by Kongregate, which would have been another reasonable-sized (sponsorships typically range from a couple of hundred to a few thousand dollars) up-front payment to the developer.

Quote:
from Lost Garden: Fishing Girl Prototype Results
Over the past month or so, Andre built a version of Fishing Girl in Flash. He quickly built out the original design and then iterated upon it until he had something playable. A bit of data:
-My wife played it and she likes it. It passed the Wife Test.
-Played by about 280,000 people...100,000 in the last day.
-Rating on New Grounds: 4.1 out of 5
-JayIsGames has a review up at http://jayisgames.com/archives/2008/12/fishing_girl.php
The best bit of news is that Andre was able to sell the Fishing Girl game for $4000 + a performance bonus.


Flash as a platform for casual games is very viable.


Quote:
Original post by Oluseyi
Seriously. Pick a language and get to work.
Precisely, you'll make no money at all (or get no players if you're not in it for any cash) from a game you havn't made whilst trying to pick the ideal language.

Share this post


Link to post
Share on other sites
Quote:
Original post by asp_
Quote:

The question was whether to go with C++ or C#, not Flash.

Is Flash really a viable commercial market outside of for the hosters? I could see a game which is heavily tied into a server work pretty well but I doubt a casual shareware type game model would work very well. Do you have any examples?

That said, if you're developing a game and you just want people to play it and don't care about the money, Flash in an awesome solution and it really proves how valuable a low barrier to deployment is.


If people are willing to play your game you should be able to make money from it, one way or another, for casual games advertising might actually be your best income source. (Its hard to actually sell casual games since the amount of free high quality games is quite large, (There are some casual games that have sold fairly well, but most don't)

Uploading a flash games to sites such as kongregate or using a solution like MochiAds (http://www.mochiads.com/) should help you get some revenue from your flash games.

Share this post


Link to post
Share on other sites
I'm actually going to have to argue against the majority of responses thus far in regards to the viability of using a .NET language in a casual game. This is assuming you will be making a downloadable game, and that you want to make as much revenue as possible. (Which of course assumes you can complete a game worthy of selling.)

But, the real deciding factor is whether or not you hope to make it onto the portals (such as BFG, Reflexive, etc.) which generate the most massive slice of casual games revenue, or if you will only sell the game from your site. If you are only going to sell the game from your site, then pick the language you are most comfortable with in regards to making games, and get to it.

However, if you have hopes of getting your game distributed through casual portals, I would strongly recommend against requiring your game to need use of the .NET redistributable package. I know first hand of a game, written in C#, that was snuffed from portal distribution because of this dependency in 2008. If you visit indiegamer.com, and search around a bit, there are several threads with statistics of OSs posted by [successful and non-successful] indie dev studios. You will also find that Mac sales can be a large slice of revenue, and thus C# is limiting your potential audience again.

This is all needless speculation, however, if you don't actually finish a game. If you're serious about the business side of it, choose your target market and then it will be more clear how you should proceed. Don't forget the 'finishing the game' part - it's important :)

Share this post


Link to post
Share on other sites
Quote:
Original post by TTK-Bandit
c++ if you want high performance,
c# if you want less development time.


You say that but it depends very much on what you are doing; it's possible to write slow code with C++ just as it's possible to write fast code with c#. The biggest factor is that it is easier to write incorrect C++ code than it is incorrect C# code.

For many games and in many cases C# will be 'fast enough' which when added to how easy it is to make correct code and, as you say, faster development makes C# more of a win.

The focus on 'speed' is a false one and for most people always will be. Frankly, imo, if you are asking if a language will be 'fast' you are currently not at a level to require that 'speed' you think you need. I mean, if speed matters that much everyone would be coding games in wonderfully handcrafted assembly now wouldn't they...

Share this post


Link to post
Share on other sites
Consider that C# is a viable language only under Microsoft Windows desktop operating systems. The vast majority of computers in the world are not capable of running a Microsoft Windows desktop operating system. This is 2009, do you really want to target the casual gamer market of 2001?

Share this post


Link to post
Share on other sites
Quote:
Original post by Bregma
Consider that C# is a viable language only under Microsoft Windows desktop operating systems. The vast majority of computers in the world are not capable of running a Microsoft Windows desktop operating system. This is 2009, do you really want to target the casual gamer market of 2001?


That's actually patently false. C# will run not only on Windows XP, Vista, and Windows 7, but also on the Xbox360 and the Zune, mobile devices via the Compact Framework, Linux and Mac on Mono, and even the iPhone and the Wii via Mono as well. That seems to cover at least 90% of any system someone might want to play a game on, no?

Share this post


Link to post
Share on other sites
Quote:
Original post by Bregma
The vast majority of computers in the world are not capable of running a Microsoft Windows desktop operating system.

You mean the 90% of desktops that do run Windows, as well as the 100% of desktops that can? Yeah, they're so not capable of doing what they already do.

Computers that can't run Windows aren't general-purpose computing platforms, buddy.

Share this post


Link to post
Share on other sites
Quote:
Original post by Bregma
Consider that C# is a viable language only under Microsoft Windows desktop operating systems. The vast majority of computers in the world are not capable of running a Microsoft Windows desktop operating system. This is 2009, do you really want to target the casual gamer market of 2001?

Are you referring to the mobile phone market? I'm a bit curious as it wasn't explicitly spelled out in your post.

Regardless, even for desktop computers if you're going indie casual it's worth being cross-platform - targeting both Mac OS X and Windows at the least. Most indie sales figures for the cross-platform games I've seen have at least half their sales for the Mac. It's one reason why I'm still wary about C#. I know about Mono, but everything I read about the language is extremely .NET based.

Share this post


Link to post
Share on other sites
Quote:
Original post by Trapper ZoidMost indie sales figures for the cross-platform games I've seen have at least half their sales for the Mac. It's one reason why I'm still wary about C#. I know about Mono, but everything I read about the language is extremely .NET based.


That is a strange statistic. Unless they were specifically marketing to a Mac user dense demographic it would seem to imply that Mac owners are far more likely to buy indie games than PC owners. Which I am not arguing or trying to explain, just a curiosity I am erm curious about. heh

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement