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

A Basic Question

3 posts in this topic

I want to start programming computer games. I already have my language picked out (c#). I know that there are other programs that need to be involved to do so. I just don't know what I need and which ones i should choose.

A very flabbergasted noob, thanks in advance.

Griffitti
0

Share this post


Link to post
Share on other sites

Game making and learning to program are separate goals, and there are ways to fast track game making without learning a language.

 

But for learning a language, the way to go is simple: get a book. Read each chapter, do the oversizes at the end or practice the skills learned at every step. Then create a game with the skills you learn. You don't need to read the book before starting on the game, but you should practice the things in the book that are not immediately relevant to your project.

0

Share this post


Link to post
Share on other sites

Other than the obvious ones like an Integrated Development Environment (probably Microsoft Visual C# + XNA, since you want to use C#), here's a nice list of free resources maintained by Ludum Dare, a site that holds 2-day "build a game from scratch" competitions: http://www.ludumdare.com/compo/tools/

 

Keep in mind that learning to program doesn't happen overnight, and it'll likely be months before you're ready to actually do anything with these tools (as far as incorporating them into a game, anyway--you could start drawing sprites tonight). Now, the link I'm about to post is dedicated to Java programming practice, but Java and C# are very similar and the exercises focus on basic programming logic that applies to any language (loops, arrays, string manipulation, etc.). http://codingbat.com/

Edited by TheSasquatch
0

Share this post


Link to post
Share on other sites

C# is starting to get more popular among all platforms with Mono.  I recently switched from Visual Studio C# and .NET / XNA to Mono Develop C# and Unity.  Mono Develop is much cleaner, much higher performance than Visual Studio, is also free and creates code to run against the cross platform Mono libraries as opposed to the Windows specific .NET libraries.  People will argue that not all of .NET is supported in Mono and this is correct, there are many aspects of windows only stuff that Mono simply doesn't do.  However in my experience everything comes with limitations and the trade off of productive cross platform coding vs not having some windows specific features that .NET provides is acceptable.

 

In short, everyone has preferences and there are ton's of tools out there that help you build code and assets for games.  In the C# world we are a bit limited as not many big companies have jumped on board yet.  Being that your choice is C# I would recommend looking in to Unity if you want to fast track a game with a nice visual editor.  It will come with Mono Develop to write your C# logic scripts in, Unity will handle the rest.  It's pretty easy and you'll be surprised how quick you have something like a game working with little to no programming experience.  Unity provides ample tutorials that teach you their scripting commands and options, from there you will need to learn some general programming and C# related data management and logic methods to actually make your game smart.

 

If you prefer to take a more code based approach you have a few options in C#.  XNA, it's great but it's dead and or dying.  It's Microsoft only, it uses Direct X 9 or 10 (depending on if you go with XNA3 or XNA4).  Mono Game (the cross platform open source version of XNA created by NOT microsoft people).  This is regularly maintained and is NOT dying, it's actually growing.  Haven't done too much with it but it is also very promising in my opinion.

 

Then you have Sharp DX.  This is a unique managed build of Direct X (8 - 11 I believe).  It is actually giving you direct access to the hardware in a managed environment but outside of the .NET libs.  It is best that you research this yourself to see what all it means with the better technical description but in short it's how you can use the real direct x from C#.  Many C++ / Direct X people will probably talk bad about this and say that it's still under performing, that it's a hack so forth and so on but it's worth noting that even some Microsoft employees are quite impressed with what the author did.  He basically wrote a program that re-engineers the API calls in a managed system, it's not a hack wrapper of the Direct X dll's.  Do note however, there is little to NO information on Sharp DX.  The idea is "It's managed Direct X go ahead and use it".  The author assumes that you are already a Direct X master coder and don't need any help.  I strongly urge against this as a beginner because you will need to learn Direct X in C++ and then apply that knowledge to C#'s implementation.  It's difficult, very difficult.

 

Beyond that there's many different "what if's" that go into deciding what you need to work with and or no.  The first and in my opinion most important is what platform do you want to target.  As a beginner pick just one and life will be so much easier.  Windows has the widest variety of choices, mobiles don't support C# (although mono is on android and growing), new windows phones don't support it anymore (whats up with that Microsoft, C# was your baby for the longest time...), Apple is anti anything that Microsoft supports so it's not likely they will be allowing / supporting anything C# related any time soon BUT mono could bridge that gap.  Legal issues are probably the most pressing on that and I would just say if your a C# coder don't expect to ever make an iOS game.  Mac and Linux support C# through Mono and this pretty much limits you to Mono Game (or Unity which uses an integrated C# scripting system).  Anyway, pick what platform you want to start with and go from there.

 

Once you pick the platform and you know your language now you can look for what frameworks, api's and engines are available.  Unfortunately as I touched on us C# guys aren't always well supported when it comes to high end graphics.  There are a few XNA engines that quite frankly are pretty horrible with the exception of Flat Red Ball which is quite advanced but it's tool set is VERY lack luster (and remember XNA is a dying MS only tech).  Then we have Mono Game which is a frame work that you can code your own engine around, you will want to check this out yourself but I don't think there are many or any engines built on this yet.

 

Once you've gone through all of that you will have ideas of what frameworks and or API's are available for the platform and the language (the code bases you can work with to make things happen).  As a beginner be prepared to be overwhelmed and dissatisfied with your options as many will appear unsuitable without extensive programming knowledge.  Once you have gotten good and frustrated check out Unity, and I mean REALLY check it out.  In my opinion Unity is something of a holy grail for coding in C# and making a game although it happens at a different level than most might think.  No it's not as powerful as say the C4 or Unreal engines but unless you can afford hundreds of thousands in license fee's and go with C++ you can't use them anyway, (not to mention there are only a small handful of games that actually require that much power).

 

All in all my recommendation is first do your research on what is available for you, key searching terms will be "windows C# game engine"  or "mac C# game engine" and so on (depending on what platform you chose).  This will start leading to things that don't particularly look relevant and I believe it's important that you read up on them and see what the truth is.  It will be confusing, it will be frustrating and it will start to look like a dead end street but I personally don't think that's true.  I more so believe that C# is just the new kid on the block (in relation to other major coding languages).  In windows C# is actually faster than Java, on everything else through Mono C# is about the same performance as Java and it's only a matter of time before the stigma of it all wears off and more big companies start getting in to it.  For now you kind of have to take what you can get and what you can get is severely limited.  That doesn't mean you can't do it, it just means you have to do it with what is available.

1

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