Jump to content


difference between C# C++ and Basic


38 replies to this topic

#1 krayziez

    New Member

  • Members
  • Pip
  • 5 posts

Posted 10 February 2011 - 02:26 AM

I wanted to create a game, maybe MMO or at least a single player 3D game, or possibly a 2D game and wanted to know if I can do it in VB? I wanted to avoid C++ or anything similar just because I've had better experiences with VB. I remembered my VB classes were so much more fun than C++. I was able to create the programs much faster. I just really don't like C++ all that much just because it more tedious and isn't as easy as Basic. But I heard that VB is not powerful enough for powerful games, only for simple programs that you want to program real fast. Let me know your take on these guys for the programmers who program games only.

Also, on another point, I may hire programmers to program the game, and was wondering if it's a good idea that the employer (me) should know programming so that it's more effective to communicate with the programmers what to do. I really want to just tell the programmers what to do without having to learn how to program but if that limits the power of the program (or game) then I may have to learn at least the basics of programming. Let me know your thoughts on this. I'd rather use my own time to do what I do best (retail business) to make money to use that money to hire someone else to program.

#2 TheNut

    Senior Member

  • Moderators
  • 1718 posts
  • LocationCyberspace

Posted 10 February 2011 - 03:44 AM

It seems to me it's not really VB you like most, but rather the availability and ease of use of tools to make games. FYI VB is deprecated and Microsoft recommends you update to .NET. In .NET, you can chose VB.NET or C# language (and there are many others too).

It's difficult to give you advice because you ask two questions that are complete opposites to each other. If you want to be a developer, you have to get your hands dirty. You need to be technically minded and willing to solve complex problems. Even the best game editors out there will require technical involvement. Since you mentioned you are more in line with the business side of things, I recommend you stick with that unless you're looking for a career change. Having technical knowledge of game development is a real advantage, but if it's something you don't already possess then you will need to gain experience along the way. Your best source of experience will come from the professionals you hire.
http://www.nutty.ca - Being a nut has its advantages.

#3 fireside

    Senior Member

  • Members
  • PipPipPipPip
  • 1616 posts

Posted 10 February 2011 - 04:05 AM

If you are trying to make a commercial game, I think you are in trouble because of your lack of experience. It's a cutthroat market with lots of failures. You should think it over carefully because employing programmers and artists can get very expensive. Most MMO's fail and they require the largest up front investment.

It doesn't make much sense to do a hobby game hiring help, unless possibly a small 2d game or something. If you want the experience of designing a small game, I would suggest looking at Gamemaker and design small 2d games, but if you want to do something large and hire people, I think you are going to get taken to the cleaners. At least do yourself a favor and design a small game to start with, then use Gamemaker or some other 2d engine, and possibly hire artists once you get the game play worked out.
Currently using Blender and Unity.

#4 krayziez

    New Member

  • Members
  • Pip
  • 5 posts

Posted 10 February 2011 - 01:37 PM

Well when I say "VB" I mean vb.net of course. So the question still remains: is VB.net still good to program these complex games? I'm going to learn to program simple ones first of course, but eventually I wanted to get into complex games. I wanted to get myself technically savy with all of this as well, that's why I wanted to train myself a bit. However, if the industry standard is with C++ then I'd have to learn that instead of VB.net. I really was hoping I'd learn VB first though but I don't want to waste my time with it if it's going to be useless in the future.

Also, when you say 2D, do you mean real 2D or semi-3D ish? Like for example, Warcraft 3 or Starcraft 2 where when the player zooms in, it's 3D however it's not first person 3D really. It's still 2D the way you play it, but it's turned into 3D just for looks. You don't really move the camera left or right, just up and down. That's something I could be interested in doing for now.

I consider myself semi-technically savy because I built my online retail company from the ground up and learned alot along the way. I hope to achieve this as well with the game I'm going to create, just learning as I go, which to me is the best way to go as I can see the results as I learn.

#5 krayziez

    New Member

  • Members
  • Pip
  • 5 posts

Posted 10 February 2011 - 01:51 PM

fireside said:

If you are trying to make a commercial game, I think you are in trouble because of your lack of experience. It's a cutthroat market with lots of failures. You should think it over carefully because employing programmers and artists can get very expensive. Most MMO's fail and they require the largest up front investment.

It doesn't make much sense to do a hobby game hiring help, unless possibly a small 2d game or something. If you want the experience of designing a small game, I would suggest looking at Gamemaker and design small 2d games, but if you want to do something large and hire people, I think you are going to get taken to the cleaners. At least do yourself a favor and design a small game to start with, then use Gamemaker or some other 2d engine, and possibly hire artists once you get the game play worked out.

You mentioned these game making tools, but what programming language should I learn in order to make these games? I'm assuming there's programming needed of course. But do these tools use VB? I just really want to know where I should start. I'm ready right now to learn VB.net however I really don't want to have to go through it if it's not industry standard and if C++ or C# is the only way to program complex games in the future. I would much rather just stick to VB.net at least for now because that will motivate me in at least starting off. Possibly in the future, I'll do some C++ once I get used to programming.

I know it will take a long time for me to get to the MMO point, but I think I'll do some small games for now. Thanks for your input.

#6 alphadog

    DevMaster Staff

  • Moderators
  • 1716 posts

Posted 10 February 2011 - 02:56 PM

VB.NET and C# perform as well; they both get reduced to similar intermediate language, which gets run on the .NET.

The reason to learn C++ is primarily because it is the dominant language of the game industry. Also, it is a lower-level language than C#/VB. With that comes more flexibility, power and fine-grained control at the expense of ease of use, learning curve and maintainability.

Eventually, if you continue to learn the field of software development, you will (hopefully) know more than one language; C#, C++, Python, C and some assembly will be the likeliest ones you'll encounter.

As for hiring, your challenge is that you seem to be ready to flood yourself with too much new stuff and burn out like a shooting star. Secondarily, not knowing how to code means not knowing a good coder from a bad one. Not a huge issue, but one to think about as you layer challenge over challenge.

Anyways, get a book on game development, and read up on the field. Make sure you want to do this, as it is much more challenging a field than configuring a shopping cart.
Hyperbole is, like, the absolute best, most wonderful thing ever! However, you'd be an idiot to not think dogmatism is always bad.

#7 TheNut

    Senior Member

  • Moderators
  • 1718 posts
  • LocationCyberspace

Posted 10 February 2011 - 03:26 PM

krayziez said:

I really was hoping I'd learn VB first though but I don't want to waste my time with it if it's going to be useless in the future.
When it comes to .NET, it doesn't matter what language you use. Everything translates to a common intermediate language. Although the majority of developers use C#, so I would recommend you lean more towards that language to make things easier for you down the road. VB devs are also usually mocked at :lol:

I wouldn't worry about C++. I can tell you want to stay as high level as possible, so don't kill yourself over C++. You have access to Win Forms, Windows Presentation Format (WPF), and DirectX in .NET. Whether you want 2D or 3D, you're going to have an easier time accomplishing your goals with .NET. If you're interested in 2D games, look into WPF. It's an amazing UI framework. Microsoft also has a tool called Blend that will help you build and even prototype your games with ease. There is a couple of other powerful frameworks out there for you to eventually try as well.
http://www.nutty.ca - Being a nut has its advantages.

#8 fireside

    Senior Member

  • Members
  • PipPipPipPip
  • 1616 posts

Posted 10 February 2011 - 04:09 PM

Quote

You mentioned these game making tools, but what programming language should I learn in order to make these games?

I would start with C# rather than vb because a lot of engines don't offer vb as a choice. Unity, for instance. From what you say, I would not learn c++ because it's a picky language and you can write games without it these days, even large 3d games, by using an engine. It can lead to a lot of debugging time that is better spent in design. You can choose either 2d or 3d. If you do want to learn 3d, I would recommend picking up Unity's free engine. There are many tutorials for it and it's a lot of fun from what I've tried. Most of the tutorials are in Javascript, which isn't much different, but I would still recommend picking tutorials with C# instead.

For a 2d game, I would recommend visual C# and XNA.
2d is 2d. There are tricks to make it appear 3d but they are for advanced programming. You are better off just doing simple 2d games to learn game programming and then going to 3d if that's the look you want.

The tutorials on this page are in C# for a hack and slash type game in Unity which would be good after the initial tutorials on interface.

http://www.burgzerga...engine-tutorial

I've seen one MMO written with Unity on cartoon network, so it is possible, but it probably isn't the best engine for one, but it's an excellent design tool, so a good first engine and a way to get your ideas across. Unity is one of the most fun engines I've tried.
Currently using Blender and Unity.

#9 krayziez

    New Member

  • Members
  • Pip
  • 5 posts

Posted 10 February 2011 - 05:30 PM

Thanks for all the responses. One quick question, is C# almost the same as C++ in terms of complexity and level? I heard it's a low level language like C++ right? I've never delved into it before so I don't know, but I do hope it's as fun as VB.net. I'll pick up a book on C# today.

#10 fireside

    Senior Member

  • Members
  • PipPipPipPip
  • 1616 posts

Posted 10 February 2011 - 05:59 PM

Quote

I heard it's a low level language like C++ right?

No, it's not a low level language. Any language that is doing memory management can't be considered low level. However, C# is derived from C, so the structure of the language is largely the same. It's just better designed and it takes care of memory, which makes it also slower. Normally that doesn't have much effect because most of the engines like Unity and XNA are written in C++ or C, so 90 percent of the code is being run at low level.
Currently using Blender and Unity.

#11 alphadog

    DevMaster Staff

  • Moderators
  • 1716 posts

Posted 10 February 2011 - 06:01 PM

C# is more approachable than C++, has less of a learning curve to get functional with it. However, it can get very complicated too. For example, while generics are similar to templates, they aren't as powerful, but they are pretty darn complicated for a newbie!

C# is a higher-level language than C++, because it abstracts more of the machine (ex: memory management).

I see VB going the way of Pascal and COBOL. Always will be there, but generally at a low-level, and probably not present in game development.
Hyperbole is, like, the absolute best, most wonderful thing ever! However, you'd be an idiot to not think dogmatism is always bad.

#12 krayziez

    New Member

  • Members
  • Pip
  • 5 posts

Posted 11 February 2011 - 12:38 AM

fireside said:

No, it's not a low level language. Any language that is doing memory management can't be considered low level. However, C# is derived from C, so the structure of the language is largely the same. It's just better designed and it takes care of memory, which makes it also slower. Normally that doesn't have much effect because most of the engines like Unity and XNA are written in C++ or C, so 90 percent of the code is being run at low level.

OK so if I go with C# then you're saying most of the engines won't be written in this language right? Only in C++ and C? I might have misunderstood you when you say "most of the engines are written in C++". You mean the software itself is written in C++ but we can still use C# or other languages to write codes on it?

I do hope some popular game engines will allow for C# programming and also C# programmers won't be mocked like VB programmers :) I wouldn't be mocked by my employees if I only know C# right? I just want to avoid C++ and C like the plague.

I have the C# program ready and the book ready so if you guys give me the go-ahead, I'll start on C# now. Thanks!

#13 fireside

    Senior Member

  • Members
  • PipPipPipPip
  • 1616 posts

Posted 11 February 2011 - 03:34 AM

Yes. The engines are written in c or c++, so they are fast, but a lot of them are made to script with c#, so you'll have your choice of quite a few 3d engines that you can program whatever type of game you like. It's really the better way to go if your main focus is on game design because it will save you time in writing code and debugging, and in learning the language in the first place, and there is normally only about a 5 percent drop in speed, so unless you are doing an extremely processor intensive game, it will be unnoticeable. It's common even for high end professional games anymore, because it allows artists, etc, to add game levels.
Currently using Blender and Unity.

#14 victory08

    New Member

  • Members
  • Pip
  • 7 posts

Posted 15 February 2011 - 08:52 AM

As for me, I think that the difference between them is not so important, because a lot of engineers had chosen one language and it became like a habit in using. But the difference is clear and consists of convenience, speed and the result.

#15 juhnu

    Valued Member

  • Members
  • PipPipPip
  • 292 posts

Posted 15 February 2011 - 08:59 PM

Lots of people tend to focus too much on performance differences and choose C++ purely on that basis, but is it the only thing to consider?

C++ superiority might very well true if a project is given infinite amount of development time and resources, but that's hardly ever never the case and thus modern and more productive languages can often be a better choice as they let developers to create better code in shorter time.

This practically means that when C++ programmer is wasting time on building application framework, compiling code and doing low-level "optimizations", other developers using a modern language such as C# can focus their time on working on gameplay and doing high-level optimizations - things that will give better ROI in the end.

I would personally choose C# or another modern language for making a new game (AAA) any day.

#16 alphadog

    DevMaster Staff

  • Moderators
  • 1716 posts

Posted 15 February 2011 - 09:01 PM

Generally agreed, except that if you are making a game pushing the envelope, you don't have libraries and/or performance is an issue. This isn't an issue solely for AAA games.

That's why C++ isn't going anywhere. However, it's dominance isn't what it used to be...
Hyperbole is, like, the absolute best, most wonderful thing ever! However, you'd be an idiot to not think dogmatism is always bad.

#17 Mihail121

    Senior Member

  • Members
  • PipPipPipPip
  • 1059 posts

Posted 15 February 2011 - 10:17 PM

juhnu said:

Lots of people tend to focus too much on performance differences and choose C++ purely on that basis, but is it the only thing to consider?

C++ superiority might very well true if a project is given infinite amount of development time and resources, but that's hardly ever never the case and thus modern and more productive languages can often be a better choice as they let developers to create better code in shorter time.

This practically means that when C++ programmer is wasting time on building application framework, compiling code and doing low-level "optimizations", other developers using a modern language such as C# can focus their time on working on gameplay and doing high-level optimizations - things that will give better ROI in the end.

I would personally choose C# or another modern language for making a new game (AAA) any day.

C# is even too much as the developer is overwhelmed with some heavy syntax if not professional in that language. I would definetely go for the .NET platform providing vast number of tools, but probably pick IronPython/Boo/LUA.NET or something similar as language of choice. C++ is forbidden at the place I work for, after a number of idiotic revisions, it has become absolutely unusable. No one is willing to maintain such code and I understand that. Also, as software engineers, we must be aware that the compiler can optimize for me quite nicely as I enjoy advanced technologies and tools as LINQ. For everything low-level, there's now C1X.

#18 alphadog

    DevMaster Staff

  • Moderators
  • 1716 posts

Posted 16 February 2011 - 01:22 PM

Mihail121 said:

after a number of idiotic revisions, it has become absolutely unusable.

While it is definitely one of the more complex languages out there, I don't know of any revision that makes the whole language unusable. There are, however, a lot of semantics that many will never need.
Hyperbole is, like, the absolute best, most wonderful thing ever! However, you'd be an idiot to not think dogmatism is always bad.

#19 .oisyn

    DevMaster Staff

  • Moderators
  • 1842 posts

Posted 16 February 2011 - 01:37 PM

Maybe he's referring to their own C++ codebase? Or a specific compiler?
C++ addict
-
Currently working on: the 3D engine for Tomb Raider.

#20 TheNut

    Senior Member

  • Moderators
  • 1718 posts
  • LocationCyberspace

Posted 16 February 2011 - 03:32 PM

.oisyn said:

Maybe he's referring to their own C++ codebase?
:lol:

I ported my engine to quite a few languages and the effort involved in making anything is roughly the same. It all comes down to code quality and frameworks, both of which are independent of the language.
http://www.nutty.ca - Being a nut has its advantages.





1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users