• 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
QBTAS

XNA to C++

14 posts in this topic

I've been searching about this for days, but I can't find a clear answer.

I recently started with XNA, I haven't made anything that is ready to be shared. I enjoy the XNA framework, but I don't see a future in it - XNA is dead, how reliable is MonoGames? And if I'd like to proffesionally work with game programming, I need C++, from what I've read.

 

I'm having a hard time deciding between continuing with XNA or go to C++.

Since I won't lose alot of experience in XNA when I go to C++, it might be better if I change to C++ asap.

What do you think?

0

Share this post


Link to post
Share on other sites

XNA is dead, in that there won't be any changes to it.  But why is that?

 

XNA is based on D3D9.  XNA serves as a bridge to Xbox 360 hobby development.  Neither D3D9 nor X360 libraries are going to change.  So there is no need to modify XNA.

 

 

That does not mean XNA or D3D9 or X360 projects will suddenly cease to work.  They will continue to work.

 

If you want to use XNA, then do so.  It is not going anywhere.

I want to focus on Windows computer games, like an RPG game. What do you think about that?

My future goal is to, in many years, make a multiplayer game like this:

https://www.youtube.com/watch?v=5oJqgeOxU7

 

I don't want to have worked in XNA for years and then every computer runs on D3D10(?) and my game doesn't work.

Edited by QBTAS
0

Share this post


Link to post
Share on other sites

It's answers like the one frob gave that make the time spent on gamedev.net such a joy :) He's absolutely right, so to add my two cents I would also say it is probably more important to learn to create a game first, from experience I have found it's a lot easier to pick up other languages after a while, but learning to make a game is difficult whichever you choose.

 

On the compatibility track, MonoGame for the most part is making a good effort to make sure people who learn XNA can port their games, there are still a few niggles, but nothing that would stop you making your game for Windows 8 for example.

 

Aimee

0

Share this post


Link to post
Share on other sites

 

I don't want to have worked in XNA for years and then every computer runs on D3D10(?) and my game doesn't work.

 

 

There are no plans to drop support for them any time soon. There is backwards-compatible support for all the old versions.

 

In fact, you can still run games that were written back in 1996 that used the first versions of DirectX. They run just fine because the video drivers still support very old versions.

 

The current version is 11.2, which many people thought would be numbered 12.

0

Share this post


Link to post
Share on other sites


I don't want to have worked in XNA for years and then every computer runs on D3D10(?) and my game doesn't work.

 

That's not, in general, a real concern. You don't need D3D9 hardware to run a 3D39 app, you need D3D9 hardware or better. I suppose at some far distant point, Microsoft might cull very old interfaces from the DirectX runtime, but AFAIK they support them all the way back to the beginning currently, except In Windows Store and Windows Phone apps where you have to use the D3D11 interface, but can target the Direct3D9 feature level.

 

APIs come and go -- just because the world has moved on doesn't suddenly invalidate everything you've learned. What about D3D 7, 8, and 9 programmers? Were their efforts wasted? Of course not. Just go learn whatever speaks to you, and learn how it works, not just the API calls you copy & pasted from some tutorial.

1

Share this post


Link to post
Share on other sites

And if I'd like to proffesionally work with game programming, I need C++, from what I've read.

 

The difference between a professional and an amateur - Professionals get paid.

 

You can be a professional with any toolkit/language you want. Personally, I have been challenged about what you're struggling with too, but it came down to these things for me:

 

1. I would rather spend time making a game than worrying about a bad pointer or memory leak in my amateur C++ code. 

2. C# is "easier" to pick up and a lot of the frameworks in place make it simpler for you to get started and learn some great concepts in programming and games. 

3. I would rather spend time doing anything else besides worrying about a bad pointer or memory leak in my amateur C++ code. 

 

With the ramp up in indie development lately, going "AAA studio professional" should be less of a focus. However, I would think being a master at C++ would be awesome to help you get into that field, as I have read too. I think C++ is "needed" in the fields because they need as much control over their product as possible because they are either doing crazy stuff that pushes the limits, or crazy stuff no one has done and made a kit for. 

Edited by tharealjohn
0

Share this post


Link to post
Share on other sites

It's also important to note that "XNA" isn't a language, it's an API.

 

C# is the language usually used with XNA, and C# support hasn't ended. Just because one API of your language has been feature-frozen, that doesn't mean you need to abandon the entire language. You could switch to the open-source replacement for XNA, called MonoGame, or you could switch to something like Unity Engine, which is heavily used and heavily supported, and continues to be developed.

 

As for as developing your skills go, it'll be more beneficial to use the tools available to you to complete projects, than to switch languages whenever it seems like the language is being ill-supported. Until two years ago, it seemed like Microsoft had abandoned C++ to support C#. Now it seems (at the surface level) like Microsoft has abandoned C# to support C++. Chances are they'll release XNA 2.0 shortly after the XBox One launches.

 

Ironically, I had a similar 'crisis of faith' in C++ about two years ago, as all the programming news I was hearing was shouting "C#, C#, C#!".

A good tool is a good tool, and it's sometimes confusing when the winds of media hype for different technologies blows counter to the direction you were heading in.

 

I ended up deciding to stick with my current language, because I realized it's more important to actually finish a project, then it is to make sure that that project uses Company X's favorite language of the week. C# isn't dead, even if XNA has been sunsetted. XNA != C#

2

Share this post


Link to post
Share on other sites

If you know the XNA api you might want to try SharpDX. It's more or less a clone of the DirectX api, like XNA is, but it currently supports up to DirectX 11.1. Also most of the library locations are somewhat similar so it's not too bad to convert.

I can't remember the name but I think there is another C#/DirectX based library if SharpDX doesn't float your boat.

 

EDIT: I was thinking of SlimDX, but it is out of date.

Edited by Earthmark
0

Share this post


Link to post
Share on other sites

SharpDX, and to a lesser extent SlimDX, is a very minimal communication layer between Managed code and DirectX, which is normally only accessible to native code. The managed code environment is about as much as either of them have in common with XNA, which offers a simplified, higher-level API and other high-level game development features. MonoGame is an XNA clone, and offers mostly the same functionality.

0

Share this post


Link to post
Share on other sites

I was on this boat last December, to continue working with XNA/C# or to go into C++. XNA isn't really dead as many have mentioned. For me, the main reason for using XNA was that the kind of projects that I was interested in is good in the console and porting over to XBox is really easy (from what I heard) with XNA. Now that it is not an option anymore, using XNA become less relevant. 

I think the tool is not important, but how you good you are with the tool. If you are not deep into XNA yet, I would suggest SFML for C++ if you want to try C++.

However, if you are already very comfortable with XNA, then stick with it.

 

Just my 2c.

0

Share this post


Link to post
Share on other sites

Thank you for your answers everyone.

I think I'll continue with XNA for now :)

0

Share this post


Link to post
Share on other sites
I caught this kind of late, but I wanted to say something. I've seen this question asked once or twice a week on this forum for as long as I can remember. The answers are always the same: "It's all the same. Just go with what you like. It'll be viable in the future." Well my answers to that are no it's not, no you shouldn't, and no it won't. There are some very good XNA games coming out that have been in development for a couple of years. However, if you’re going to start a game from scratch right now it would severely limit you to go with XNA. One big reason is because XNA will have no future support. Yes there will be support from the community to keep it alive, but you can do much better with an alternative. If you already have a game you've created with XNA and your deep into development then I can understand staying with it. Also, yes C++ is a pain to program with and learn, but there is a ridiculous amount of support for it out there and it will always be viable. There will always be support for it, there will always be a highly active community developing it, and most importantly, you have direct control over your game! How many times have you had to find some crazy workaround in XNA to get something to work that is akin to duct tape because you couldn't get into the code and make it work the right way? Anyway, it's a great language to learn in order to get into game design, especially 3D. However, I can't say it's a very good framework to stick with. Before anyone says anything about XNA being a framework, not a language, I think C# itself is a good language to program business apps with. But the level of control is not there for game development unless you are just going to keep it as simple as possible. Just my opinion. I know it goes against a lot of the devs here. But I have a question to you guys. Do you program in XNA? If not, would you start? If you were going to start developing with no knowledge of XNA or C++ would you choose XNA/C# or C++? I’m guessing the majority wouldn’t with good reason. Thanks that’s all I’ll say. Like I said this has been in my Google news for years and I just had to say something after all this time. Thanks, Chris
2

Share this post


Link to post
Share on other sites

Note that not everyone is saying 'Stick with XNA'. A lot of us (about half) are saying, 'Stick with C#'. C# is not XNA, XNA is not C#.

 

If the headlight on your car breaks, you replace the headlight, not the car. C# is supported. C# is not dying.

Even if XNA is dying, there are other APIs for C# to use.

 

It's only when people think, "Use C#? Okay, I'll use XNA.", or "XNA is dying? I should abandon C#.", that good advice accidentally turns into bad advice.

1

Share this post


Link to post
Share on other sites


And if I'd like to proffesionally work with game programming, I need C++, from what I've read.

 

It depends what you call proffesional.  If you mean console games then yes.  However there are many games studios these days using all kinds of wierd and wonderful languages.  Flash, HTML5, Objective C, Java, Python are all used in several large studios that I know of.   Also C# is still the language of choice for writing windows based tools.

0

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