So I like games and I'm at uni studying IT. I'm majoring in Software Design & Development and I have electives I have to fill each semester. Well the last semester I took Games 1: Game Design and it absolutely blew my mind. I never realised how much work really went into games and their creation. Now I'm more invigorated to design games as my hobby.
I've taken many programming classes over the years. I know the basics and have a fairly good understanding of them. I've looked at VB, Pascal, Python, Java & a little c++ on my own. So anyway I have a game concept I created for my class and I want to turn it into a working game but as beginner somewhat I'm not really sure where to begin. If you can tell me where to start I'd be greatful!!

If you want to design a game it would be a good idea to keep art and code creation at a minimum. Therefore either choose a very low technical entry level (i.e. an ascii game), mod an existing game to try out your game ideas or choose an existing engine (UDK, Unity,CE) and code it yourself. But keep always in mind, that you will most likely not get your hands on free art which suits your vision (every hobby coder stumbles over this obstancle) and that you will underestimate the real effort to develop a game.

So, keep it as small as possible and try to use none or very abstract art to develop your game.

If you have experience in programming, you need to think about what type of games you want to create and which platform you wish to target.

If you're looking to create casual games for mobile platforms or web, you should look into programming for iOS, Flash/AS3 and HTML5.

If you're thinking about getting into 3D games for consoles, high-end computers or 3D games for mobile devices than unity or UDK is a good place to start.

My advice to you is to start small - if you want to design games as a hobby, casual games that you can create by yourself will be the way to go until you decide to make a career out of it - or find a team of creative people that wish to collaborate in their spare time.

Game design is very cool and creative hobby ;)
I personally like to draw class diagram, and rarely use case diagram (when my project is big). Creating such diagram helps you think what you realy need, how to optimize it (in terms of code size). I started my journey with opengl with c++, and now I am using C# with XNA, which is very easy
It's hard for me to recomend some engines because I like to write whole thing by myself, and it also depends on language you prefer.

First thing I'd like to get straight is the distinction between "Game Design" and "Software Design for Games".

In Game Design you design the rules and mechanics of the game. You create a concept of the game and ideally create something that is fun to play - tested in your head, on paper, or maybe even in a working prototype.

Software Design means, like you will most probably know, creating an structure or architecture for the code of the game or other piece of software. The goal is to make development easier and to make the software robust against later changes.

These are two different roles in game creation, and you can make rocket science out of both ;) So what is it you're interested in?

If you already have a concept, I'd suggest prototyping it to see if it's working out the way you imagined. Start with paper if possible, or use your coding skills and make a simplified, quick and dirty, unoptimized version of the game that you will throw away before development really begins. Simplification as far as necessary is key here. If your concept involves 3D graphics, think about testing it in 2D or even text.

If you feel that the concept is working, you should specify the details as far as possible. Then you can start your software engineering work. Decide which 3rd party libraries you want to use, or maybe even use a full-fledged game engine. It depends on how much effort you want to put into it and how much you want to learn from it.

In addition you will need someone to create the assets of the game - graphics, textures, 3d geometry, sound, music...

Maybe you can find one or two friends, or soon-to-be friends to work with, and you can all learn together? I mean, if you're in school there may be like-minded people around you. Doing stuff together can increase work moral, and you'll have someone to support you if you get stuck.

Also, google sure is a good friend for developers. Most anything you need to know (or borrow) is out there.

Sorry about my first comment I should have said that one needs a deep passion to drive a game design from start to finish as a hobby. with that said I think your previous programming skills will definitely help. I agree with antiHUMANDesigns, because if you can find some other people that are wanting to be apart of a new game design, having people to work with can help move your design forward. It is also very fun to work with others. It also helps when working with others to over come obstacles. I think with your back ground you can potentially work with opengl or directX as an graphic API. I have found online tutorials on both that are very user friendly to get you started. Such as NeHe which will teach you the basics of opengl. also the opengl red book is online for free and it is a great source of info that can help you get started with making games with opengl. I find working with that language very rewarding although im sure directX is just as rewarding. But depending on how ambitious your design is you may want to bring on friends to help you out. But again sorry for potentially being seemingly discouraging. I think game design is very much rewarding personally and I think you can have much fun with it.