Higher Education

C# and XNA – A Few Replies

There was quite an interesting response to my previous post with some very fair and valid points being raised here and in forums across the Internet. Rather than try and respond to them individually (it might take a while!), I though it would be appropriate to list and discuss some of the more common points that were brought up.

Studios Prefer People Who Know How To Make Games
Something that was mentioned in numerous places stated that games studios should prefer graduates who know how to make games (and have tried various techniques that may or may not be used in games), or have a good awareness of the game development process.

Simple answer to that is no, it is not preferable to have a graduate who ‘knows how to makes games’ than someone who knows how to program and program well. If someone is a great engineer, has a excellent understanding of how languages work and how to use the tools available to them, then learning the ‘development’ process of a game is not going to be a massive undertaking. A few days in a functional studio will give them all the ideas they need to build on in that respect.

Besides, there is generally no process to making games. Every studio (sometimes every team) will have their own processes and ideas on what is the best way to develop their titles. What is taught in Universities may not be applicable in the studio you end up in, but you will be using a general set of tools and languages wherever you end up.

*Just a note regarding the last point – I am not at all against team based exercises on Games Courses, in fact I think they can be the most beneficial aspect of them. I just wanted to stress that it is not a replacement to learning the tools of the trade.

Is The Technology To Blame?
No, not at all. The fact is I have a great respect for XNA and C# , have seen some fantastic things come out of them, and use C# personally when developing tools to work alongside out tool chain. I totally agree with the point that was made, in that it is the responsibility of the University to point the students in the right direction, showing them the tools that they need to better understand the environment and technology they want to eventually working with.

The amount of support that is provided by C# and XNA means they are doing exactly what they were designed to do. Just in this case I don’t believe it is in the most appropriate environment for them to be used.

Games Are About Fun, Nothing More Nothing Less
This was also mentioned in a few places, in that game development and making games should be fun and about making them fun, not about boring programming practices.

Games are (or should be at least!) about fun, and developing them should be fun too. A programmer on my team may be a great game designer, and have some fantastic ideas which improve the title drastically. Unfortunately, no matter what area of the game they are working on (effects, character controls, graphics or animation for example) they will need to use the same skill set, just in different ways and with a different amount of practical knowledge. Just because people are working on the ‘fun’ aspect of the game doesn’t mean they don’t have a hard programming job in front of them.

If you will allow me to geek out for a minute…
Game Programming != Game Design

Engineering Principles Don’t Apply To Game Development
This point is worth a whole discussion on its own, and I’ll respect that by not going into to much detail here, but hopefully this should cover the basics.

This was mainly in response to that idea that understanding the basic principles leads you to have a better understanding of and awareness of Software Engineering principles. It’s not always true in the strictest sense, but having that backbone of education allows people to apply the ideas presented to them in an efficient and useful way. There is a reason that development principles have been a mainstay in the world of large scale application development and there is no reason why they don’t apply to game development either.

Hardware can be a nightmare to work with especially when you’re developing across multiple platforms each with their own quirks. Combine that with the sheer scale of game development projects today, and you have a recipe for disaster if you don’t plan for and use ideas that have a solid base and are understood by more people than just yourself. Engineering ideas and practices enable software to be structured and organised in a more efficient manner, allowing them to be better understood and maintained by multiple people, something which is getting more and more important every day. Without the education to back that up, graduates are simply not in a position to work with and develop games in a way they need to be developed.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s