• Announcements

    • khawk

      Download the Game Design and Indie Game Marketing Freebook   07/19/17

      GameDev.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.
Sign in to follow this  
Followers 0
Fixxer

Professional Games Made In C#?

96 posts in this topic

Does anyone know of any? I think I may want to get into C# more than C++ because for one, The windows forms designer is great, and #2 its a bit easier. Are there any professional games made in C# or is C# too slow to be used on a professional level. I decided I needed to upgrade to VS 2005 and leave 6.0 behind and im debating on whether to buy books for C++ or C#. It seems to me that there are more newer books on directX 9.0 and networking for C# than for C++.
0

Share this post


Link to post
Share on other sites
I recently made the same move as you and have never looked back - i can't list any engines as such, but from tutorials i have seen there are no huge drawbacks.
0

Share this post


Link to post
Share on other sites
Hi,

In my opinion, C# and MDX are great.

I know there was one AAA game that was made with C#, but I can't recall the name.

Here are links (straight from my bookmarks) for some C# engines. Enjoy!
Tzu 3D Engine (also check the video section)
Haddd Engine (also check the download section)
Flight Simulator
Purple#

Don't forget that many people are starting to use C# so you should see more stuff in the future. I am myself doing a FPS demo in C# from scratch.

Darkneon
0

Share this post


Link to post
Share on other sites
I dont know why, but I just enjoy C# more.
Perhaps because its a lot easier, and has the form editor.

Thanks for the input.
0

Share this post


Link to post
Share on other sites
Speed is not a question. Familiarity is however.

It took years before game programmers moved from assembly to C, with lots of "C is too slow" whining. It took years still (~1995 and later), long after everyone else had moved, to get to the game industry to C++ (the age of "using objects would be too slow" is still fresh in my mind).

You won't get professional C# games until there is a large enough pool of experienced C# programmers from outside the game industry (and crossing over into it) to allow companies to choose C# as their language without forcing employees to start over again. Learning a new API is one thing (and often API's are just incremental improvements). Learning a whole language is more complex then just knowing the syntax - you need to discover what works well and what doesn't. This process of really understanding the nuances of C# is still underway.
0

Share this post


Link to post
Share on other sites
Quote:
Original post by comedypedro
Visual C++ 2005 has a forms editor too but Im not sure how it compares to VC#


Form editor works the same, as long as you don't mind the ugly hacked together "Managed C++" code syntax.

Yeah, I wouldn't use managed C++ if my job depended on it... I'd get a job doing C# :)
0

Share this post


Link to post
Share on other sites
Thanks for the info. And nice game btw. My high score was 711,000 I killed my self cause I started to get bored at level 3.
0

Share this post


Link to post
Share on other sites
Another reason many game companies do not switch to C# is that fact that by doing so they can kiss portability goodbye.
I don't know about XBox360, but I don't think PS3 will have .NET on it.
Ye another reason is that there are many libraries written in C/C++ as well as many pieces of C/C++ code that can be reused from previous projects.

I never switched to C# (or even to C++) because personally I find C easier than both. But let's not get into a C vs C++ vs C# flamewar, ok?
0

Share this post


Link to post
Share on other sites
First off, I want to say that I love C# and I'm not a C++ zealot. I use C# all the time for a variety of tasks.

Secondly, nobody uses the forms designer in a game anyway so what does it matter?
Reasons to use C#:

The language is nice.

Reasons not to use C#:

It's slower than snails. Lots of benchmarks say it's not. Sure, you can get 90% of the speed of C++... in certain situations, but overall with a game engine you're going to see at least a 50% framerate hit what you could have acheived if you had written your game engine in C++.

Why is this? You'll need to look at what the JIT generates and see for yourself. But look closely at how poorly it inlines anything, if at all. Look at how well (or not) the FPU optimization is. Compare it to what the C++ compiler generates.

C# also basically requires you to use unmanaged C++ anyway to get 16-byte aligned data, if you want to effeciently use SSE instructions. Okay you say well you're going to write all of your vertex skinning in C#. Have fun with that, buddy.

The bottom line is, you're not going to get the next Unreal or Doom engine in C#. The hard-core stuff is going to stay in C++ for a while. As soon as I can get an engine that runs 95% as fast as it does in C++, I'll switch right over. But this means they're going to have to get their act together with the inlining, the memory alignment, and the FPU optimization.

Yes, I'm posting as AP, because as we all know posting a rant is bad for your rating. :D
0

Share this post


Link to post
Share on other sites
thanks for your rant :D
I know im not going to get the next unreal... even if i did use C++ =p
So long as the frames per second on a Celeron D with 512 mb of ram is more than 33 fps, it should be fine.

With that said, do you know of any books that are for C++ that cover DirectX 9 and engine design and such? That would have examples that work in VC++ 2005? The main reason I was liking C# was all the new books out for it.
0

Share this post


Link to post
Share on other sites
Quote:
Original post by Michalson
It took years before game programmers moved from assembly to C, with lots of "C is too slow" whining. It took years still (~1995 and later), long after everyone else had moved, to get to the game industry to C++ (the age of "using objects would be too slow" is still fresh in my mind).


Its not just whining, its code reuse

If you have a working game engine and libraries for texture loading, input, and so forth is it worth rewriting it just for a few "new" features

So if they already have tonnes of reusable code and all the libraries they need why should they dump years of work and start from scratch just for garbage collection and a few syntactic short cuts.
0

Share this post


Link to post
Share on other sites
Ahh but im making my own engine and starting my own code base so that doesnt really effect me :-P
0

Share this post


Link to post
Share on other sites
I don't see any reason for a forms editor to be useful in game dev unless it is a desktop game or something like that, well games like that could even have been done with delphi or visual basic anyways.

It would be useful for tools maybe but not for the game development itself.

And what language to choose I am staying with C++, I don't really find C# much easier. but it depends on the programmer, seriously.
0

Share this post


Link to post
Share on other sites
The Zbuffer has a list of popular games written in C# here. Many of them are successful commercial games like Arena Wars. It basically comes down to your project. If you aren't making the next Unreal or Doom, you should strongly consider C# and Managed DirectX for its great productivity.
0

Share this post


Link to post
Share on other sites
Quote:
Original post by Anonymous Poster

It's slower than snails. Lots of benchmarks say it's not. Sure, you can get 90% of the speed of C++... in certain situations, but overall with a game engine you're going to see at least a 50% framerate hit what you could have acheived if you had written your game engine in C++.


That is such BS. Why don't you post this code? MDX is at least 95% the speed of DX (I beleive the number was higher), so don't post random numbers.
0

Share this post


Link to post
Share on other sites
Quote:
Original post by Vexorian
I don't see any reason for a forms editor to be useful in game dev


yeah if my understanding of forms is correct then WRT an actual game theyre about as useful as a condomvending machine in a nunnery
0

Share this post


Link to post
Share on other sites
Quote:
Original post by Fixxer
Ahh but im making my own engine and starting my own code base so that doesnt really effect me :-P

(Kaze)
not sure about the speed and C# dosent have as much support as C++ yet so you prorbaby wont be making "teh most uber 133t fps ever" but if your a independent developer and want to make a game engine in C# go ahead.
0

Share this post


Link to post
Share on other sites
I agree that for the most part adoption is going to be slow for C# - its just built into code jockies that whatever technology they have embraced is THE technology and everything else is too slow/stupid/etc.. I too remember the "C++ is too slow" Bravo-Sierra and still dont understand blind adherence to a tool.

I looked at C# a while ago and like it, but not enough to make a full jump. Since the 2.0 spec some features were added into the language that makes that an easier decision. The tools surrounding are awesome to use and windows UIs can now finally be built they way we wished they could. I have tried to embrace java several times and just cannot stand it (the directory/package coupling just irritates the hell out of me) but there is no arguement about some of the useful features it has. C# to me allows me to express my ideas in a format that is familiar and without some of the hassles of java - its win/win in my mind and I see it becomming a go-to tool. The only real complaint is its platform independence and how reliable the linux inititives actually are.

While constructing an engine entirely from C# is still questionable for various reasons (speed in SPECIFIC areas, the bulk of existing code, expertise, etc...) I do think that the technique the Reality Engine guys took makes a lot of sense. They built the bulk of the engine in C++ and then "wrap" it with C# in a "Managed/Unmanaged" dll. There are a couple of things that are instantly cool about this"

1. Your scripting IDE is now visual studio 2005 (express would work in this case) and you get all the bitchen debugging and coding tools that come along with it.

2. Its fast, and pretty easy to wrap the library.

3. Your game editor, which there is no reason why you wouldn't make use of the forms designer for C# because its easy as hell, can now use cool language features like reflection to provide access into objects in the designer. This makes it about as simple as you can get when you add an "event" or "handler" for a game object and want it to show up immediately in the UI.

If your a C++ bigot and just cannot come to terms with using the mixed /clr stuff and C#, you could obviously just implement your game code in C++ as well - although I think you lose a lot in that regard. However using this approach provides a nice 'bridge' and C# is by far a better scripting language then anything else out there imho - all things considered mind you.


0

Share this post


Link to post
Share on other sites
From what I understand, most games still write their own memory managers, especially on consoles, so I doubt any language heavy on GC will win for a little while yet. ( Although it might eventually, in a non-locks/mutexes threading-oriented language, perhaps. Erlang anyone? )

Without GC, I don't see any real gain to C# over C++ with good libraries. Especially since, as was said earlier, C++ is fairly well understood now ( if you ignore the craziest template stuff >;] ). Although C# wont take as long to be understood, it's still new. Not that that's a bad thing -- think of how much C++ development changed once RAII and STL were understood.

( And personally, I find Java-style references-that-are-really-pointers-in-disguise to be more confusing than just having pointer-type syntax. Even if the pointers were heavily restricted, I like the separation between the syntax for accessing a thing and accessing a thing by its address. )
0

Share this post


Link to post
Share on other sites
Quote:
Original post by Michalson
Speed is not a question. Familiarity is however.

It took years before game programmers moved from assembly to C, with lots of "C is too slow" whining. It took years still (~1995 and later), long after everyone else had moved, to get to the game industry to C++ (the age of "using objects would be too slow" is still fresh in my mind).

You won't get professional C# games until there is a large enough pool of experienced C# programmers from outside the game industry (and crossing over into it) to allow companies to choose C# as their language without forcing employees to start over again. Learning a new API is one thing (and often API's are just incremental improvements). Learning a whole language is more complex then just knowing the syntax - you need to discover what works well and what doesn't. This process of really understanding the nuances of C# is still underway.

yup! what you said "This process of really understanding the nuances of C# is still underway." makes sense since the game loop for a game in C# is still being worked on http://www.thezbuffer.com/articles/185.aspx
0

Share this post


Link to post
Share on other sites
Well I my self am not the creme de la creme of programmers :P
The higher level of C# will actual help me out a lot.
0

Share this post


Link to post
Share on other sites
Games are often ported to other vendors than just Microsoft products (Windows/Xbox). The majority is written in C++, assembly, and a large amount of previously written COM objects. The rest is just the graphics library that each system supports. Transfering DOOM III from the PC/Mac (OpenGL) to XBox (DirectX) would have taken longer if they had to not just convert the graphics library, but also convert the core language! It's extra work, no real benefit in speed increase, stack bloating, and most would stay with C++ for its portability. Remember, with all the possible C++ systems you can program on, C# is a Windows-specific language. No, MONO won't work, you on-going wishers :)

On other notes, if C# is 1% or more slower than C++/Unmanaged DirectX, no game company going for tomarrow's games would switch to it. No longer can you use high-leveled languages to produce tomarrow's top games. I only say these because those wanting to go pro, you'd be better off to keep studying C++/DX. When your documented project has a target for the Windows platform, use .NET's managed extensions if you need them (Managed C++). You don't need to convert to an entire different language to see the same results. I hope this helps. If anyone is doing games as a hobby, I don't care what you use. C# is a great language, but you don't have to use C# to take advantage of the .NET framework.
-1

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0