So I want to be a game developer....

Started by
48 comments, last by obizues 11 years, 9 months ago

You cannot skip C/C++ and go to C#, they are different languages with very different runtimes.


Karsten I may have not explained what I meant very well. I meant more for the time being, should I should skip learning C and C++ and just focus on understanding game design in 2D with XNA and C# rather than learning C all over again with more depth and then moving on to C++ and then going to C# with XNA.


If you already know C, there is no real reason for you to use C# since there many 3D libraries and solutions available for C without needing to be wrapped (by yourself or 3rd party).


I believe Simon and JWalsh recommended me using C# first to focus more on the actual game development and understanding of the process with a simpler and more familiar high level language before getting into the difficult industry standards. For example it was given to me as a "last step" to design a game with C/C++ and DirectX11



Otherwise using plain OpenGL with C simply isnt that hard anyway so I also recommend this route....


My C knowledge at this point really isn't at as high of a point that it should be, I would probably need to rehash through a giant book, and then do the same with C++. I realize I will have to do this anyways, which was pointed out about being employable, but I think I agree that before I get into relearning a language and a new language on top of that with API's on top of it I should probably do more top level things to get the premise and understanding of what I'm doing on a macro level.


Don't get me wrong I still really appreciate your input, and I would love to hear what you have to say about my responses.
Advertisement
obizues,

Fair enough although I wouldn't recommend starting from scratch in a completely new language just to focus on "actual game development". It seems counter intuitive. The majority of game development done today is done in C++ (With C libraries), so surely that is as good as it gets smile.png

I guess just make sure that you are learning C# because you feel it will help you the most rather than just because it happens to be today's latest trendy language.

As for DirectX11... Don't do it. OpenGL has a much brighter future on every platform under the sun. ;)
Edit: Just look at the latest efforts that Valve are putting in to extend to Linux. This wouldn't be the case if they thought the future was with Windows (DirectX).
http://tinyurl.com/shewonyay - Thanks so much for those who voted on my GF's Competition Cosplay Entry for Cosplayzine. She won! I owe you all beers :)

Mutiny - Open-source C++ Unity re-implementation.
Defile of Eden 2 - FreeBSD and OpenBSD binaries of our latest game.

The majority of game development done today is done in C++ (With C libraries)


That really depends on how you define "majority". If you count lines of code currently in production your statement is not untrue. However, according to market research, Objective-C is being used more than C++ now for new code. This is predominantly due to iPhone/iPad developers. While most gamers think of PC, Xbox 360, PS3, or Wii games as "the game industry", the reality is there is/are far more money/games in circulation now as a result of cell phones and iOS/Android tablets than consoles or desktops.

With that all being said, your point is not off base. Aside from a few small exceptions, it's unlikely that a game company would hire him without any C++ programming experience. But, C++ is a cumbersome language with many idiosyncrasies. It can be difficult to swallow for people coming from a higher level language. At the same time, game programming provides its own challenges. Most people who already know C++ ultimately give up on trying to become a game developer. Those coming from Java/C# often times give up learning C++ unless it's forced upon them. Combine those two, and it's unlikely someone coming from Java, wanting to learn to make games, would be successful doing so while learning C++ and game development at the same time.


As for DirectX11... Don't do it. OpenGL has a much brighter future on every platform under the sun. ;)


Except for Windows 8 Apps, Microsoft Surface, Windows Phone 7 and 8, or Xbox 360 (and beyond), you mean? But I suppose by "every platform under the sun" you meant MacOS, Linux, iOS, and Android. :) The truth is, OpenGL is great for the platforms it runs on. It's also true that DirectX 10/11 are great for the platforms they run on.

Ultimately, they're just API's and have nothing to do with your ability to be a good graphics programmer. If you're learning to program in C#, go with XNA (which uses DirectX 9c) or even SharpDX. If you're down in C++, it honestly doesn't really matter which you choose. They're very similar, and with OGL 4.2 they have almost identical features again. FWIW, I can't stand GLSL, I much prefer Cg/HLSL as a shader language, but that's personal preference. ;) The one thing to keep in mind, however, is there is a significantly larger user base of DirectX. This is mirrored by the number of resources available online and in books. So it's often easier to find the answers to your questions if the questions are about DirectX. Check the forum post counts here on GD.net. OpenGL forum: 4 million posts. DirectX forum: 10.5 million.


Edit: Just look at the latest efforts that Valve are putting in to extend to Linux. This wouldn't be the case if they thought the future was with Windows (DirectX).


Be careful about thoughts/statements such as this. The assumption that a single company somehow has insight into the future of the industry and is thus shifting their efforts is dubious at best. 90% of all PCs are still Windows. Not MacOS, and not Linux. Nobody - not Valve, Bungie, Blizzard, Arena, etc.... are abandoning Windows in favor of Linux. However, as the PC market gets more competitive, smart developers do broaden their user base by taking games to other platforms. Heck, Blizzard has almost always done simultaneous releases for Windows & Mac. And that's with MacOS having only about 5% of the market share. So Blizzard must develop their games strictly in OpenGL right? Nope. Their games use DirectX for the PC version and OpenGL for Mac. You *can* use the OpenGL API on PC, but nobody does, as it's buggy and there are performance issues.

The moral of the story, learn the language and API that will get you up and running the quickest, and will make your journey to becoming a game developer most enjoyable. Once you're there, pick your technologies as surgically as you can. Go to the companies you're most interested in working for, either directly or via job websites, and find out what tools/technologies those companies use. Then become a master of those and you'll stack very well against other candidates when the HR manager or dev lead is evaluating resumes.

Cheers!
Jeromy Walsh
Sr. Tools & Engine Programmer | Software Engineer
Microsoft Windows Phone Team
Chronicles of Elyria (An In-development MMORPG)
GameDevelopedia.com - Blog & Tutorials
GDNet Mentoring: XNA Workshop | C# Workshop | C++ Workshop
"The question is not how far, the question is do you possess the constitution, the depth of faith, to go as far as is needed?" - Il Duche, Boondock Saints

Be careful about thoughts/statements such...


Blizzard is looking into it.. And so is EA.. wow.. it would be naive to think the ecosystem isnt changing.. and quickly. Dont get left behind eh? ;)


But I suppose by "every platform under the sun" you meant MacOS, Linux, iOS, and Android. smile.png The truth is, OpenGL is great for the platforms it runs on. It's also true that

I guess you could shorten this further by just specifying "UNIX". That way you would also capture FreeBSD and Solaris ;)
http://tinyurl.com/shewonyay - Thanks so much for those who voted on my GF's Competition Cosplay Entry for Cosplayzine. She won! I owe you all beers :)

Mutiny - Open-source C++ Unity re-implementation.
Defile of Eden 2 - FreeBSD and OpenBSD binaries of our latest game.

Blizzard is looking into it.. And so is EA.. wow.. it would be naive to think the ecosystem isnt changing.. and quickly. Dont get left behind eh? ;)


I just want confirm what you're saying. You're saying Blizzard and EA are "looking into" abandoning Windows OS and only publishing on Linux? Is that what you're saying?
Jeromy Walsh
Sr. Tools & Engine Programmer | Software Engineer
Microsoft Windows Phone Team
Chronicles of Elyria (An In-development MMORPG)
GameDevelopedia.com - Blog & Tutorials
GDNet Mentoring: XNA Workshop | C# Workshop | C++ Workshop
"The question is not how far, the question is do you possess the constitution, the depth of faith, to go as far as is needed?" - Il Duche, Boondock Saints

I just want confirm what you're saying. You're saying Blizzard and EA are "looking into" abandoning Windows OS and only publishing on Linux? Is that what you're saying?


I am saying that less than 1 year ago, the idea that games companies are looking into anything other than Windows would have gotten completely ridiculed.
If this can change (and so suddenly) in 1 year, then it really means that anything could happen.

I am certainly suggesting (to the OP) not to tie yourself down to Windows platforms with DirectX.

And tbh, yes. I am going to be a maverick and say that in about 5 years I predict that we are going to see more games on Linux than Windows. It fits perfectly. A free platform for (commercial / paid) entertainment. Not to mention all those Windows XP games that die off once the business plebs at Microsoft decide to turn off the WPA 1.0 activation servers (April 2014 I think it is scheduled for). I think Linux is in an extremely good position. Although unfortunately I happen to be a FreeBSD developer/user exclusively because I am not a fan of the wild west, regression prone nature of Linux itself. (But gamers wont care about that) :)
http://tinyurl.com/shewonyay - Thanks so much for those who voted on my GF's Competition Cosplay Entry for Cosplayzine. She won! I owe you all beers :)

Mutiny - Open-source C++ Unity re-implementation.
Defile of Eden 2 - FreeBSD and OpenBSD binaries of our latest game.

I am saying that less than 1 year ago, the idea that games companies are looking into anything other than Windows would have gotten completely ridiculed.


Not even close to true. Several respected publishers have been releasing games on Mac and Linux for over a decade. It's good business to release your titles on multiple platforms if the cost of doing so isn't prohibitively expensive. The reason you're seeing so many new titles for Mac in the last year is because Aspyr and Feral Interactive have gone to the various publishers and offered to port their games to Mac for a very reasonable surcharge. It has nothing to do with EA, Activision, etc.. suddenly realizing how ripe the Mac and Linux marketplace are, and everything to do with them saying "wait, for only $X we can get our games on MORE OS's... sure, we'll sign on the dotted line." But there's a huge leap from "sure why not, it doesn't cost us much" to "we only want our games on Mac."


I am certainly suggesting (to the OP) not to tie yourself down to Windows platforms with DirectX.


Right, because choosing the frequently less powerful API with less community support, no hardware support aside from graphics, and diminishing support in Windows, solely because it's supported on the other 20% of operating systems is a fantastic suggestion.

The truth is, when you're on Windows, you're going to use DirectX anyways, if not for graphics than for XInput or XAudio. If you're developing for Windows, Xbox 360+, or Windows Phone 7+, you're going to want/need to use DirectX. If you're developing on another platform, then by all means, use OpenGL. But telling people to use OpenGL so they'll be ahead of the curve when Windows is suddenly no longer the predominant OS and everyone has fled to Linux... is just bad advice.


And tbh, yes. I am going to be a maverick and say that in about 5 years I predict that we are going to see more games on Linux than Windows.


If you don't seriously believe Linux will take over in 5 years, then you're trolling. We don't feed the trolls and attempting to troll a moderator is silly at best. Giving you the benefit of the doubt, and assuming you do believe Linux is going to take over in 5 years, let me point out a few problems....

Linux will not have more games than Windows because of the thousands of games already released exclusively on Windows. People aren't going to suddenly switch OS's if it means they can no longer play their favorite games currently available. Secondly, while the various Linux/Unix flavors are great power toys, they're just that. Until there is a unified interface, stable drivers supported by all popular hardware manufacturers, and an 800-number my mother can call for customer support, Linux will never topple Windows or Mac. People like stability and consistency. Neither of which exist in the *X environment. And lastly, Linux only accounts for a very small % of desktop OS's. That would have to change radically before publishers would publish exclusively for Linux. And as long as they're releasing on Windows AND Linux, it will be impossible for Linux to overtake Windows.


Not to mention all those Windows XP games that die off once the business plebs at Microsoft decide to turn off the WPA 1.0 activation servers


Current market research indicates the majority of Windows users have already moved off XP and are now on Windows 7. By the time that happens, there will be very few people still using Windows XP.


Although unfortunately I happen to be a FreeBSD developer/user exclusively because I am not a fan of the wild west, regression prone nature of Linux itself. (But gamers wont care about that)


Yes, they will.
Jeromy Walsh
Sr. Tools & Engine Programmer | Software Engineer
Microsoft Windows Phone Team
Chronicles of Elyria (An In-development MMORPG)
GameDevelopedia.com - Blog & Tutorials
GDNet Mentoring: XNA Workshop | C# Workshop | C++ Workshop
"The question is not how far, the question is do you possess the constitution, the depth of faith, to go as far as is needed?" - Il Duche, Boondock Saints

"wait, for only $X we can get our games on MORE OS's... sure, we'll sign on the dotted line."


And if the game was written utilizing OpenGL and other cross platform libraries, this will be a much less expensive operation. So why use DirectX ever if there is any chance you might want to cash in on other markets? Especially if new to the industry like the OP!


Right, because choosing the frequently less powerful API with less community support, no hardware support aside from graphics, and diminishing support in Windows, solely because it's supported on the other 20% of operating systems is a fantastic suggestion.


This seems a tad incorrect. Because OpenGL has been embraced entirely by the Open-source community you instantly have a community many times larger than the world of Windows (which also tend to have communities primarily made up of XNA or some sort of managed DirectX).
No hardware support aside from graphics is exactly what I would expect from OpenGL. For anything else I would use a specific API such as OpenAL rather than settle for a jack of all trades.

Diminishing support on Windows... Nah, they couldn't or like you suggested of all the thousand of games, many of them rely on it. OpenGL is easily going to be around longer than DirectX. Plus NVIDIA and ATI are quite happy with OpenGL and will be the ones putting support into their drivers.

The only issue I can see is with phones and tablet devices. I.e due to the locked down nature of Windows Phone (or any phone) they only support DirectX. (or rather XNA unless you have an expensive contract to build native code.). Once a fully open Linux tablet comes out, it will dominate the market. (which is why Microsoft has gone through such lengths to lock down their arm tablets.


and an 800-number my mother can call for customer support, Linux will never topple Windows or Mac. People like stability and consistency.


About 2-3 years ago, you would never have included Mac in that sentence. I really believe this shows how easily changed peoples opinions can be with regards to technology.


The truth is, when you're on Windows, you're going to use DirectX anyways, if not for graphics than for XInput or XAudio.


Well yeah, when dealing with a pure graphics API, people do tend to just use the native operating system libraries for everything else. I dont really see this as using DirectX, just that DirectX surrounds a lot of things in the Windows platform. Developers just put #ifdefs around this type of thing or just use a wrapper. For the record, I was talking about DirectX as the graphics part entirely, so Direct3D I guess. Like if you develop a 3D game on an iPhone, you need to use cocoa or carbon for the boilerplate stuff.. I still term this as developing an OpenGL app rather than a Cocoa app.


then you're trolling. We don't feed the trolls


Although I am not being a troll, I am unfortunately taking this thread off-topic. So my apologies.

I guess we can resume this thread in 5 years ;)
http://tinyurl.com/shewonyay - Thanks so much for those who voted on my GF's Competition Cosplay Entry for Cosplayzine. She won! I owe you all beers :)

Mutiny - Open-source C++ Unity re-implementation.
Defile of Eden 2 - FreeBSD and OpenBSD binaries of our latest game.
Like if you develop a 3D game on an iPhone, you need to use cocoa or carbon for the boilerplate stuff.. I still term this as developing an OpenGL app rather than a Cocoa app.[/quote]

It's funny how Microsoft keeps being the target of FOSS enthusiasts for not supporting open standards for development, but Apple somehow gets past their noses with their iOS devices. In some cases Apple is even more restrictive.

New game in progress: Project SeedWorld

My development blog: Electronic Meteor

JWalsh, hopefully you still follow this thread or will see this but I have a few more questions for you.

I'm currently finishing up my summer internship and because of downtime and completing a project faster than expected I'm basically killing time. We have access to Visual Studio C++ so I decided to hammer through my first big 700 page C book. I'm about 3/4 of the way through, and will most likely power through and finish it within today and the 8 hours I have tomorrow.

As I was doing this I've been researching a little more and more about the overview of steps I need to take to accomplish the steps you've laid out for me. I'm hearing from a lot of people that I should spend a good amount of time with the Win32 API before I tackle the DirectX API. Is this true? Or now with Windows 8 coming out with the DirectX11 being a part of the Windows 8 SDK should I be learning WinRT?

Can you explain a little more about step 4 where you reference the wrapper around DirectX that you suggested?

At home I've started a book on XNA, and so far I am understanding the basics. I understand the game loop, why it makes sense and how basic 2D sprites sheets work along with moving graphics around the screen. Hopefully I can make pong in XNA in a week or so when I have time. I don't see it as being too challenging, but a milestone and "completed" "game" none the less.

Thanks for all your help so far.

This topic is closed to new replies.

Advertisement