Directions!

Started by
6 comments, last by BCullis 11 years, 1 month ago
So i've been sniffing around this site for sometimes and there's alot of hard stuff that I dont understand. I've taken my time through the beginning c++ through game programming and I think I have a pretty well understanding of the basic concepts by now. So where should I go next. Which book should I read to improve my skills. I plan to do some serious programming so I think I dont want to learn a specific engine. I heard that XNA is being abandoned and next will be DirectX and my friend suggested me to go for OpenGL. Can you guys help me point out a direction that I should take which can benefit me in the long term. I'm not in a rush or anything, just want to slowly build up the experience and skills.
Advertisement

What stuff do you not understand?

What basic concepts do you already know?

What do you mean by "serious programming"?

What is your long term goal?

You can always write tic-tac-toe with both OpenGL and DirectX and compare them. Just an idea.

thank you for your reply, i read the C++ through game programming and i think i understand almost everything that are mentioned in the book. i have yet to learn directx and opengl. that's why i come here and ask where should i go from here. what i meant by 'serious' is that i planned to program game for a career not just a hobby cuz i know there're a lot of hobbist programmer too. i dont know what to learn next, which book to read etc. i hope you can help me find the way. i'm still a high school students so this is my own work and that i dont have someone close to guide me. i went through the tutorial on the gamefromscratch site and i planned to go for XNA, but then the owner of the site said that XNA is no longer being developed so what are my options now. Please HELP and thank you in advance

I plan to do some serious programming so I think I dont want to learn a specific engine.

"Learning" an engine usually involves coming to understand the usage paradigms, in other words "how did the engine developers plan for you to use their tool effectively?" It will still involve a lot of serious programming if you want anything non-trivial to work. In the case of Unity or UDK, just because you're "scripting" doesn't mean you won't apply multiple algorithms and solve complex problems with code. All programming experience is good experience.

If you mean "serious" as in low-level engine development, that's a much bigger project to tackle, and I think there's a bit of a misconception on your part. There are plenty of jobs in game development (programming-specific) that don't require you to have the experience necessary to write engine-level code. Scripters, gameplay programmers, tool development, web development, etc. So don't worry about doing the "right" kind of serious programming, it's all important, and any* algorithm is implementable in any* language, so your choice of language won't impact you much either.

*Some sanity loss may occur depending on certain language-family/algorithm combinations.

i planned to go for XNA, but then the owner of the site said that XNA is no longer being developed so what are my options now.

It's no longer being developed, but it's not like it's been deleted from the internet. There are a lot of great resources for XNA, it's easily portable to MonoGame once you get something working that you like, and I found it to be an understandable framework and a great boost to my initial game development efforts. I stay stick with XNA, follow some tutorials for it, and get the experience under your belt of having built a simple-to-substantial game that works like you intend.

I guarantee that after working out all the bugs and riddles that your first game will throw at you, you'll be much better equipped to do more of that "serious" programming you're on about :)

Hazard Pay :: FPS/RTS in SharpDX (gathering dust, retained for... historical purposes)
DeviantArt :: Because right-brain needs love too (also pretty neglected these days)

thank you for your help. So you suggest that i should work on XNA right? I'm very blur right now so I will just follow your guide.

Thanks again

P/S: I said serious to mean that I can devote a lot of time to learn whatever needed to improve my skills and there is no intention of comparing with others about how serious I am into this

As the guy who said that, I guess I should chime in.

Yes, XNA is dead, and knowing Microsoft it's most likely going to get deader, when they decide to pull the plug on XNA game studio. I hope this day doesn't come soon, but its a faint hope. This is such an epic disappointment too, as XNA was in many ways the perfect starting point for a potential game developer. An integrated IDE, library and content pipeline that was well documented and had a vibrant community, there was little more you could ask for. When Microsoft took it behind the shed and put in the bullet I weeped inside.

But it's not all doom and gloom though, as there has been a project all along for bringing XNA to non-Microsoft platforms such as Android, iOS, Mac and Linux. That project is MonoGame and they are doing a very good job. It will be interesting to see where that project goes now that Microsoft is no longer calling the shots. MonoGame leading the project is a double edged sword. The positive is, they can move away from some of the limitations of XNA, the biggest of which was it's dependence on DirectX9 and the fixed graphic pipeline. ( Don't worry if that doesn't make sense to you for now... just realize it was a serious limitation on XNA that has been removed ). The negative is, its not an all in one solution like XNA was... you need to get your own IDE, I dont believe there is full content pipeline support, that kind of stuff. Don't worry, IDEs are available, as are content pipeline work arounds; it is simply an additional difficulty for an aspiring developer that makes it slightly harder to recommend XNA for newcomers.

Is XNA still viable? Certainly! In some ways it's more viable now that it's been freed from Microsofts control, allowing you to develop for non-MS platforms like iOS and Android.

Is it a good recommendation for a beginner? That is where it gets trickier. It's not as easy as it once was, it doesn't have a multi-billion dollar company backing it. Also, the ability to target iOS and Android come with a price tag... literally. 300$ a platform. MonoGame is certainly still a great choice, but it's not the no brainer decision it used to be, especially for beginners.

Will you be making a mistake to go with MonoGame/XNA today? Certainly not!

However, when I wrote the guide in question, it was the most obvious answer for a new developer to start with, the answer isn't so clear cut now. I guess I need to write a version two of that guide one of these days, as since it was written, the indie developer world has changed A LOT.

That however is the good news... while XNA might not be the clear cut choice it used to be, part of that is because the competition has gotten a whole lot better! There are a number of very good choices for new developers starting one. One thing to certainly consider are the Lua based game engines. They are incredibly good choices for people looking to create a 2D game ( out of luck if thinking 3D ) and Lua is a great little scripting languages that teaches some very good habits. It is also one of the most commonly embedded scripting languages, so you can easily take your skills with you. JavaScript and ActionScript ( JavaScript for Flash ) are both rising in popularity, as is HTML5 development, although frankly I dont really recommend HTML5 all that much if you don't have prior web experience... to many warts.

In that period of time, Unity also has become more popular; as a direct result more books are available than ever before... and I think there are a few new releases I need to update. Never under-estimate the power of a good book or two, especially when starting out. In Unity, you can work in C#, JavaScript or Boo (Python) and there is a completely free option available. Another advantage to Unity is similar to XNA's... its an all in one solution... you download and install Unity and... go. GarageGames also released their 2D and 3D game engines available, open source.

Simply put, these days there are so many options for people starting out, so many before even just a year or two ago.

So, while XNA might not be the no brainer solution it used to be, part of that is due to Microsoft dropping support, but a lot of it is because there are so many viable alternatives now.

the limitations of XNA, the biggest of which was it's dependence on DirectX9 and the fixed graphic pipeline

Just a clarification, XNA (and DX9) don't rely on the fixed pipeline (in fact, XNA doesn't support it at all - it's all done through the programmable pipeline).

the limitations of XNA, the biggest of which was it's dependence on DirectX9 and the fixed graphic pipeline

Just a clarification, XNA (and DX9) don't rely on the fixed pipeline (in fact, XNA doesn't support it at all - it's all done through the programmable pipeline).

This. XNA was my first introduction to shader programming. Now I'm addicted.

Hazard Pay :: FPS/RTS in SharpDX (gathering dust, retained for... historical purposes)
DeviantArt :: Because right-brain needs love too (also pretty neglected these days)

This topic is closed to new replies.

Advertisement