Would appreciate a language/graphics recommendation

Discussion in 'Game Development (Technical)' started by Glen Pawley, Feb 12, 2006.

  1. Glen Pawley

    Original Member

    Joined:
    Feb 10, 2006
    Messages:
    58
    Likes Received:
    0
    First off, since this is my first post to the forums - Hello all! This looks like a great community. :)

    I'm a long-time hobbyist games programmer who has recently decided to take the plunge and produce my first finished game which I hope to market. I've put in a lot of solid work already on a project, but I've currently hit a bit of a wall. It's an issue I'm sure you've all encountered or discussed before, and I've put my 48 hour enforced lurking period to good use in catching up with what has been said here about it in the past. However, I'd like everyone to once more sound off their opinions on the matter in 2006.

    I'm working on a semi-casual game and I'm still trying to determine my final development language/platform. I initially programmed the prototype in C#/GDI+. My reasoning being that I could whip together a finished prototype in a very short amount of time to test the game concept, and then switch to a more robust language/rendering platform once I had the basic framework and game design fully sketched out. This approach has worked well so far, but now that I need to consider my final product I'm faltering...

    I really want to keep C# as my base language, mostly for rapid development reasons. However, I can't find *any* recent reports of market penetration for the .NET framework. If I do keep C#, that limits me to either DirectX 9 (and I'm pretty sure the penetration for that is pretty low in the casual market), or OpenGL using something like CsGL (as an aside - could anyone who has used CsGL speak up on it's pros/cons).

    So, reworded - you're starting development on a semi-casual game that won't near completion for another 3-6 months (before tackling marketing/distribution), and as a first-timer you DON'T already have a bunch of written frameworks/tools or access to expensive ($100+) third party products to make your life easier. .NET or not? C#/DX9 or C#/CsGL? C++/DX or C++/OpenGL? Am I missing other options?

    Thanks all.
     
  2. Sybixsus

    Original Member

    Joined:
    Aug 2, 2004
    Messages:
    959
    Likes Received:
    0
    I'm in a similar position, in that I haven't really done much 2d before. Both my biggest games are 3d. I'm going with Haaf's Game Engine, though the preference over PTK is pretty small. I did have the option of a good-looking C# framework, but as you say .Net and DX9 is quite a big ask for even a semi-casual game. The gap between DX7 and 8 penetration seems quite small, but the gap between 8 and 9 certainly doesn't.

    But you said that $100+ third party libs weren't an option, so I think ( without checking ) that would dismiss PTK as an option.

    EDIT: Technically, I'm not using C++, I'm using BlitzMax as I find the syntax much more readable. The interface between HGE and BlitzMax is C++ though.
     
    #2 Sybixsus, Feb 12, 2006
    Last edited: Feb 12, 2006
  3. digriz

    Original Member

    Joined:
    Mar 24, 2005
    Messages:
    532
    Likes Received:
    0
    The main issue you'd have with C# is the fact that people may have to download it from Microsoft. It's around the 23Mb mark the last time i checked. While this may not be an issue for a lot of people, it could be a reason for people to not download your game.

    If you know C++, why not check out ptk or the popcap engines. The popcap one is free.

    Or, like Sybixus you could try BlitzMax, there are some very successful developers on here that have used that for their games.
     
  4. Mark Currie

    Indie Author

    Joined:
    Jul 28, 2004
    Messages:
    136
    Likes Received:
    0
    I believe it's possible to have the .NET framework embedded into your game, so that you don't have to worry about whether the end user has it. A friend of mine works at Xenocode, which offers a product called Postbuild that does this. He was telling me it would add something like 15 MB to the size of your game, depending on how much of the .NET runtime that your game uses.

    See the "Native x86 executable generation" and "NET Framework library embedding" feature from this page:
    http://www.xenocode.com/Products/Postbuild/Features.aspx

    I'm not sure if they support embedding of the managed directx stuff, but if not, I think they will be adding that. As my friend told me, at some point, they it will allow you to include anything else you want to embed, including your art assets. The idea is that you would have a single EXE that has everything it needs, so you don't even need to create an installer.
     
  5. svero

    Moderator Original Member Indie Author

    Joined:
    Jul 27, 2004
    Messages:
    3,392
    Likes Received:
    6
    Personally, I don't think C# is quite ready for the online game market. Might be fine of a game on CD where you can include all the required files, but if you're planning to sell it strictly online, then I'd avoid using it.
     
  6. illume

    Original Member

    Joined:
    Jul 27, 2004
    Messages:
    206
    Likes Received:
    0
    pygame.

    http://www.pygame.org/

    If you want to do a 2d game, then pygame could be a good choice. It is based on SDL, and supports directx, and GDI on windows. It also runs nicely on macosx, linux/*nix, even on nokias, and handhelds like the psp, and the gp2x.

    There have also been a number of successful shareware, and open source releases made with it.

    The language is python, so you may need to learn something new. However I have seen people learn enough in two hours to make a basic tic tac toe game as a test.

    Good luck, and remember that what tech you choose is not as important as getting something finished and out the door.

    * disclosure... I work on pygame, so my view is obviously biased.
     
  7. princec

    Indie Author

    Joined:
    Jul 27, 2004
    Messages:
    4,873
    Likes Received:
    0
    Insert usual semi-tired rant about Java here.

    http://www.java.com - Sun JDK, free
    http://www.eclipse.org - best IDE ever, free
    http://www.lwjgl.org - OpenGL, OpenAL, FMOD, DevIL, DirectInput for Java, all free. There are other alternatives.
    http://www.javagaming.org - friendly bunch of devs who code in Java

    You can embed the JRE in your game. Expect similar productivity boosts to those offered by C#. MacOS has the JRE built in.

    Cas :)
     
  8. MrPhil

    Original Member

    Joined:
    Aug 4, 2004
    Messages:
    671
    Likes Received:
    0
    You should also look at Land of Legends. It was done in C# and the developer posts on this forum under the name Hiro_Antagonist. See his annoucement thread: http://forums.indiegamer.com/showthread.php?t=4776

    C# is doable, but you must be willing to accept the trade-offs. If the framework forces you to narrow your audience, but makes you more productive such that you make more games in a shorter time you might come out ahead. And who know that forth game you make might be cool enough to make more people get the framework.

    I also suggest looking over Torque, see this thread:http://forums.indiegamer.com/showthread.php?t=5977&highlight=Torque+T2D
     
  9. POedBoy

    Original Member

    Joined:
    Jul 27, 2004
    Messages:
    9
    Likes Received:
    0
    I am using c#, and my own opengl based engine( using tao.sdl/tao.opengl ). Seems like a lot of people are quick to shoot down c#, but with mono available, I believe its a viable option.

    I've done a small test( based off of a previous thread on here-- can't be bothered to dig it up though ;) ), and mono added about 4mb to the zip size( opposed to the 23 mb .Net framework ). That was just grabbing the mono.exe, and whatever dll's were needed. I haven't tried embedding it yet, but that it is something I will explore in the future.

    If you were to compile mono yourself, I'm guessing you can trim it down-- but not sure( yet ). The one downside is out of the box, mono won't work for win98.. apparently that is something you can also take care of when you compile it.

    *EDIT* also, afaik-- CsGl has been more or less suceeded by Tao_OpenGl. Tao seems to have pretty active development... I haven't really checked out CsGl in a long while though. *EDIT*
     
    #9 POedBoy, Feb 14, 2006
    Last edited: Feb 14, 2006
  10. digriz

    Original Member

    Joined:
    Mar 24, 2005
    Messages:
    532
    Likes Received:
    0
    Like MrPhil said, there is nothing wrong with C# so long as you're prepared to make the trade off.

    I use C# to code new tools for myself all the time mainly because, for me, it's a reduced devtime and i know it will work on my PC here.

    If you're comfortable with C# and it's your first project, then why not stick with that.

    If you're up to learning a new language then try java, it will certainly be less platform dependant. It's not as tricky as you might think and it might give Cas someone to talk to about it, he won't stop bothering us with it ;)
     
  11. dmikesell

    Original Member

    Joined:
    Jan 10, 2006
    Messages:
    146
    Likes Received:
    0
    +1. Python and Pygame are a dream to program in, at least for me. I come from a C, C++, and Java background.
     
  12. gosub

    Original Member

    Joined:
    Sep 10, 2005
    Messages:
    151
    Likes Received:
    0
  13. Glen Pawley

    Original Member

    Joined:
    Feb 10, 2006
    Messages:
    58
    Likes Received:
    0
    Much thanks to those who took the time to weigh in. I ultimately decided to stick to C#. I checked out the alternatives you guys proposed, but my ultimate reasoning is the simple one that finishing my first commercial project is more important at this stage then worrying about maximizing my market. I'm using OpenGL(CsGL) for graphics and I've developed a makeshift, feature-limited replacement for the C# Forms GUI. Was harder than I thought, but quite satisfying.
     

Share This Page

  • About Indie Gamer

    When the original Dexterity Forums closed in 2004, Indie Gamer was born and a diverse community has grown out of a passion for creating great games. Here you will find over 10 years of in-depth discussion on game design, the business of game development, and marketing/sales. Indie Gamer also provides a friendly place to meet up with other Developers, Artists, Composers and Writers.
  • Buy us a beer!

    Indie Gamer is delicately held together by a single poor bastard who thankfully gets help from various community volunteers. If you frequent this site or have found value in something you've learned here, help keep the site running by donating a few dollars (for beer of course)!

    Sure, I'll Buy You a Beer