Author Topic: Where do I start?  (Read 6025 times)

Offline Gemzo

  • Full Member
  • ***
  • Posts: 137
Where do I start?
« on: September 14, 2012, 12:54:06 am »
Now I'm sure you can guess the scope of this topic from the title, but I'll throw in more details than that.

I've been considering becoming a game developer, and I suppose in order to fulfill that I need to know where to start. I suppose picking a programming language is the first thing? I've heard lots of great things about C# in these forums so I was considering starting there. Besides that I know you have to decide whether or not you want to make the game engine from scratch or not. I'm guessing I'd like to at least attempt starting from scratch to learn the language, but I can't really say for sure.

I've had some experience meddling with code in flash, so I can probably figure out things on my own/with Google once I get going. So to put those things together... For an aspiring game developer looking to create a game engine in C#, where do you start?

Offline Oralordos

  • Sr. Member Mark III
  • ****
  • Posts: 434
  • Suffering from Chronic Backstabbing Disorder
Re: Where do I start?
« Reply #1 on: September 14, 2012, 09:50:01 am »
I personally would start without the graphics. Starting off with something like mad-lib would teach basic console coding skills along with allowing you to learn the structure of your programming language. Moving up from that to a guess the number game would get you conditionals, loops, and the basics of a gameloop. Further up to a console based Tic-Tac-Toe would probably show functions and basic AI, not to mention it's a bit more complicated.

After that start learning the basic graphical stuff. Start off with an images that moves around with the arrow keys to learn drawing and keyboard input. Then perhaps one that moves with the mouse. Maybe one that moves with a controller but that would be optional. Once you know how to get input and print 2D output make something more complicated like a Tetris clone.

From there start branching off towards what you want to learn. A few things to learn mechanically would be networking for multiplayer, 3D graphics programming, or the file system for saving/loading. From a coding design standpoint there would be an almost infinite amount of things to learn at this point. AI, physics, and game engine design are all examples to learn around this point.

Offline Hearteater

  • Core Member
  • *****
  • Posts: 2,334
Re: Where do I start?
« Reply #2 on: September 14, 2012, 10:29:24 am »
One option for C# games is XNA.  XNA is a Microsoft library for writing games that can be used on Windows PCs, XBox 360 and Windows Phones.  It is easiest to start by making PC games, but you can do XBox games if you prefer.  Note that XBox games are a little trickier to set up (you need to be on a network with your XBox, so you can push code from your development PC to your Xbox for testing) and if you want to release it for anyone else to play, it will cost you money.

Getting Started Guide
Some getting started examples (read at least: Your First Game - XNA Game Studio in 2D)
Sample XNA games/code to learn from

Offline keith.lamothe

  • Arcen Games Staff
  • Arcen Staff
  • Zenith Council Member Mark III
  • *****
  • Posts: 19,505
Re: Where do I start?
« Reply #3 on: September 14, 2012, 11:00:34 am »
XNA is a good starting point for learning, yea.  A bit restrictive for commercial games due in terms of cross-platform and how to incorporate assets and various other things (it's often pretty difficult to "do it your way" in XNA, it's kind of the engine's way or the highway, though I admit it's been a while since I checked).  Anyway, a good starting point where you can actually tinker with something that fully looks like a game.

On the other hand, my own path of learning was largely based on doing a bunch of different kinds of programming for several years and then doing some game hobby projects and then jumping into professional game programming (where it really helped to have Chris to give me some pointers), so my bias is towards "if you don't know how to build each individual piece of a game engine, you're at a disadvantage".

I still only know a moderate amount about graphics programming and it kind of gets in the way, etc.  Audio programming, thankfully, one doesn't really need to know a whole lot the internals of nowadays (but audio library quirks can still bite you).  But with most of the other stuff I could probably take a good shot at telling you what's happening down in the ALU ;)  And I find that quite helpful in my job, actually.

So I'd suggest XNA for fiddling from "the top", but grab the free Visual C# Express (unless you own Visual Studio already, of course) and make a console project game of "guess a number", and then tic-tac-toe, or some progression like that.

Once you actually move into "ok, seriously, how do I deploy a game commercially?" you'd need to pick an engine and go with it.  You could build your own, and I kinda wish I was working with a custom engine because I like the control, but in reality Unity is better than our custom engine would be at this point while taking less development time to make work.

Once you have an engine you're serious about using, it's basically a matter of "settling in" and finding out a workflow process that works.  There will be tons of hurdles, barriers, workarounds, and facepalm-moments.  But generally you can find some way to get it working.  And you just keep whacking all the moles that pop up until you have an acceptable experience.  And then you run with it ;) 
Have ideas or bug reports for one of our games? Mantis for Suggestions and Bug Reports. Thanks for helping to make our games better!

Offline Draco18s

  • Resident Velociraptor
  • Core Member Mark V
  • *****
  • Posts: 4,251
Re: Where do I start?
« Reply #4 on: September 20, 2012, 11:31:47 pm »
Start with physical media.  It takes no coding to do, it takes no artistic talent, and is much more rules friendly.  You can write down anything and it becomes a rule.  No worrying about how the program needs to handle it, no data storage, no case statements.

Just text.  And a few saps friends.

Once you can put together a well thought out board or card game and have a concept of how things work (and haven't already decided to form a board game company) look into programming.  Building computer programs is a whole other world from board and card games, but the things you learn from the physical media can be applied to programming (a deck of cards is like an array, classes are like cards with their own properties and statistics, and so on).

Plus, any computer games you make, you could easily prototype with chits of paper.  Heck even a first person shooter.

Offline Coppermantis

  • Hero Member Mark III
  • *****
  • Posts: 1,212
  • Avenger? I hardly know 'er!
Re: Where do I start?
« Reply #5 on: September 24, 2012, 10:08:51 am »
I found an XNA Game Studio Guide disc a little after I read Hearteater's suggestion and after downloading the Studio and Visual C# it seems pretty nice; the guide helps you create simple 2D and 3D games. My only previous coding experience is one week of C++ classes, and I hear that that language is more difficult so XNA/C# is probably a better option for a beginner like me.
I can already tell this is going to be a roller coaster ride of disappointment.

Offline keith.lamothe

  • Arcen Games Staff
  • Arcen Staff
  • Zenith Council Member Mark III
  • *****
  • Posts: 19,505
Re: Where do I start?
« Reply #6 on: September 24, 2012, 10:22:06 am »
C++ is great if you know what you're doing.

I've never met a C++ programmer who truly knew what they were doing :)

C# code feels a lot easier to read and write.
Have ideas or bug reports for one of our games? Mantis for Suggestions and Bug Reports. Thanks for helping to make our games better!

Offline Hearteater

  • Core Member
  • *****
  • Posts: 2,334
Re: Where do I start?
« Reply #7 on: September 24, 2012, 11:27:47 am »
C# handles a lot of stuff for you, that C++ requires you do to manually.  You can get better results with C++ if you really really know your stuff.  Otherwise you will get at best equal results, if not worse.  But C++ will absolutely take you longer to write by a large margin.  Which reminds me, C++ header issues are just so archaic it is hard to justify dealing with them anymore.  When you start including 3rd-party libraries and such it can become such a nightmare just getting everything to play nicely together.

I love C++, it is just showing its age.

Offline Scorcher24

  • Jr. Member
  • **
  • Posts: 54
Re: Where do I start?
« Reply #8 on: October 19, 2012, 10:17:28 am »
Look at this if you program C++:
http://www.indielib.com/

Offline Mánagarmr

  • Core Member Mark V
  • *****
  • Posts: 4,272
  • if (isInRange(target)) { kill(target); }
Re: Where do I start?
« Reply #9 on: October 19, 2012, 11:04:13 am »
And I'm a Java noob. I feel puny :P
Click here to get started with Mantis for Suggestions and Bug Reports.

Thank you for contributing to making the game better!

Offline Wanderer

  • Master Member Mark II
  • *****
  • Posts: 1,579
  • If you're not drunk you're doing it wrong.
Re: Where do I start?
« Reply #10 on: October 22, 2012, 03:37:17 am »
hello
i am deep .i want to make a game in Java language.but i have no idea about it what i do ? where do i start ? can  anybody help me what will my first step?

 :o  ???  You probably really want to ask on... say... a Java programming board.  We're just game fanatics of Arcen.
... and then we'll have cake.

Offline Mánagarmr

  • Core Member Mark V
  • *****
  • Posts: 4,272
  • if (isInRange(target)) { kill(target); }
Re: Where do I start?
« Reply #11 on: October 22, 2012, 04:43:07 am »
hello
i am deep .i want to make a game in Java language.but i have no idea about it what i do ? where do i start ? can  anybody help me what will my first step?
These spambots are getting cleverer by the minute.

Constructive spambots.
Click here to get started with Mantis for Suggestions and Bug Reports.

Thank you for contributing to making the game better!