Jump to content
  • Advertisement
Sign in to follow this  
Chris27

What framework do you use?

This topic is 4027 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've been trying to deciede what framework to use to write games. If you use C# it seems you can only use the .net framework which will slow things down due to converting code to Itermediate language which can work on most plateforms. In C++ you can make a Native Win32 application that doesn't use the .net Framework at all and it runs faster so that seem the way to go. I guess a third option would be Microsoft Foundation Classes. I don't believe that would be much better then .net though I don't know a whole lot about it. C# has the easiest syntax to handle because it's based solely on the .net framework and doesn't need differnt syntax. C++ requires differnt syntax due to being part of the ANSI C++, Win32 C++, MFC C++, and .NET C++. C# also uses managed directx which is easier to browse via the object browser and you don't have to worry about include/lib directories/files. Which do you guys think is the best language and framework for building games in? Thanks

Share this post


Link to post
Share on other sites
Advertisement
I'd say C# is a good choice. Sure, C++ can be faster if you are very careful and care to spend a lot of time making sure you're writing optimized code. The question is, what do you need the extra speed for, and are you ready to sacrifice a lot of your own time for say, a 20% increase in frames per second?

If you're an indie game developer or a hobbyist it's unlikely that you'll gain anything much by using C++, while a managed language like C# will allow you to be more productive.

I myself would use Java, since I'm comfortable with it, it's multi platform (C# won't be if you use XNA) and I can run small games in the browser etc.

On a side note, the .net bytecode will be compiled to native code before it's run via a JIT compiler. Java does something similar. The runtime overhead stems from other sources.

Share this post


Link to post
Share on other sites
Quote:
Which do you guys think is the best language and framework for building games in?


Flash.

Count the number of games written in ActionScript, and compare that to all other games. Numbers speak for themselves. It is de-facto best game making language, surpassing probably all other languages, platforms or frameworks ever made.


Quote:
C++ requires differnt syntax due to being part of the ANSI C++, Win32 C++, MFC C++, and .NET C++.


This is very wrong. There is no Win32 C++, MFC C++ or .Net C++. All of that is C++ mostly (especially since MVS2005) standard compliant C++.

All the rest is Windows Platform API. .Net includes additional libraries for higher level functionality. Syntax for all is exactly the same - C++ compliant.

The only "framework" that C++ provides is Standard C++ library.

Quote:
which will slow things down due to converting code to Itermediate language


Pointless. There's too many threads here about why this simply isn't true.

Share this post


Link to post
Share on other sites
Quote:
Original post by Chris27
I've been trying to deciede what framework to use to write games. If you use C# it seems you can only use the .net framework which will slow things down due to converting code to Itermediate language which can work on most plateforms.


actually in C# you can use binding to various Software framework written in c/c++ like directx(microsoft supported .net bindings) tao(opengl bindings) and ogre(rendering engine) that make any difference in execution speed between c# and machine code languages insignificant

Share this post


Link to post
Share on other sites
Quote:
Original post by Antheus
Quote:
Which do you guys think is the best language and framework for building games in?


Flash.

*snip*


Flash is slow and ActionScript is dynamically typed. That's why you mainly see small and amateurish games in it.

It's a fine animation framework, but a lousy game framework mainly useful for rapid prototyping.

In conclusion, quantity is irrelevant. Quality matters.

Share this post


Link to post
Share on other sites
Quote:
Original post by Ahnfelt
Quote:
Original post by Antheus
Quote:
Which do you guys think is the best language and framework for building games in?


Flash.

*snip*


Flash is slow and ActionScript is dynamically typed. That's why you mainly see small and amateurish games in it.

It's a fine animation framework, but a lousy game framework mainly useful for rapid prototyping.

In conclusion, quantity is irrelevant. Quality matters.


Really?

Quote:
Which do you guys think is the best language and framework for building games in?


ActionScript is, without doubt, the best language to for building games.

It is however sub-optimal for developing cutting edge 3D games. The quality doesn't matter. Because only games that sell are those that make money. And there it doesn't matter if the game (or any product) is much inferior in quality. As long as it meets target market's demands.

I'd also like to point out that some of the biggest MMOs and virtual worlds (5+ million users) use Flash front-end.

In addition, ActionScript is a tool that anyone with no programming experience, or only limited high-level language experience (Java, C#) can pick up, and instantly produce a playable game, that is painlesly published on the internet.

As for quality - history has proven beyond a doubt, that quality does not matter. All superior products (techonology or "quality"-wise) have failed and have been superceeded by "inferior" products. Starting with operating systems, down to every single application we use today. Nobody remembers "quality" products, since those were too expensive.

The only quality that does matter is user's enjoyment. And with a very high-level framework, your developers and artists spend 98% of the time working on content, rather than 80% of the time coding, bug-fixing and platform-testing.

Get the job done

That's what matters. And getting job done means delivering the product to your customers, complete, tested and enjoyable.

Not one customer cares what the game is written in, if it's fun and accessible.

Share this post


Link to post
Share on other sites
Thanks for the input. I'm still new so sorry for being a little off regarding some things. There is a lot to learn. I think perhaps systax was the wrong word to use.

For instance in this book it says there are many differnt keywords for string in C++ and they are ugly to look at. char*, LPTSTR, string, CString, CString(WTL Version), wchar_t*, OLECHAR. This happens because of the additions to C++ over time addapting it to work with the new Additions to the language. This makes the keywords look confusing.

On the otherhand C# apparently doesn't have such difficult to look at keywords because it's new and made to work with the .net framework.

Anyway I'm going to go with C# like most of you suggest. C++ is a bit more in depth then what I'm interested in and it seems the performance gain isn't very big.

Thanks

Share this post


Link to post
Share on other sites
Your book is wrong: the majority of those are Microsoft string classes, and not synonyms for 'string' in C++.

If your book is so glaringly wrong so early, you should pitch it in the skip and buy a proper C++ book. Thinking in C++ is free and highly recommended.

Incidentally, I'd love to know which book it is, so I can add it to my giant list of terrible C++ books.

Share this post


Link to post
Share on other sites
Quote:
Original post by Chris27
For instance in this book it says there are many differnt keywords for string in C++ and they are ugly to look at. char*, LPTSTR, string, CString, CString(WTL Version), wchar_t*, OLECHAR. This happens because of the additions to C++ over time addapting it to work with the new Additions to the language. This makes the keywords look confusing.


First: Choose the language you'll be learning.
Second: Start slowly with Hello World style applications, and examples which demonstrate functions, methods, classes, and everything else.


Keyword (reserved word in some languages) is part of language. for, while are examples of keywords.

char is a primitive (basic, integral, built-in) type. Along with int, bool, long, ....

CString, (std::)string are classes. That a completely different construct altogether.

LPTSTR and wchar_t are type definitions, or aliases (I think, not sure right now).

Many of those you mentioned are Microsoft specific implementations, which are problematic for completely other reasons.

As you can see, there's a lot of completely difference concepts. With regard to those, C++ is hard. But do not go into C# thinking those are irrelevant. Each of these is like apples to oranges to anything else.

Understanding these differences belongs to syntax of the language. Make sure you learn the language first, and are clear about these concepts.

The book you're using right now is way above your level. Start small, choose *any* language you want, but choose *one* only. Do not go with C++, C, C# and something else for good measure.

Share this post


Link to post
Share on other sites
Quote:
Original post by Antheus
Quote:
C++ requires differnt syntax due to being part of the ANSI C++, Win32 C++, MFC C++, and .NET C++.


This is very wrong. There is no Win32 C++, MFC C++ or .Net C++. All of that is C++ mostly (especially since MVS2005) standard compliant C++.


I agree with most everything else you said, but there are EXACTLY 2 C++ languages. standard C++, which nearly all CURRENT compilers get nearly correct. and C++/CLI the microsoft modified version of C++ made to support all of the .NET framework idioms. The reason you cannot call C++/CLI "standard" C++ is that it adds completely new keywords, and therefore a small but notable amount of valid C++ programs will not work in C++/CLI. Other compiler extensions are built in standards compliant ways (and if you use MSVC 2003 or 2005 in non-.Net projects there are standar C++ too).

C++ and C++/CLI are different in the same way that C# 1.1 and C# 2.0 or Java 1.2 and Java 5.0 are different ... they have additional language constructs and minor changes.

Share this post


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

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

Participate in the game development conversation and more when you create an account on GameDev.net!

Sign me up!