The Moosader Community

Visit the IRC at irc.freenode.net #Moosader! Community dedicated to programming and game development! Moosader.com
It is currently Mon Nov 18, 2019 3:55 pm

All times are UTC - 6 hours [ DST ]




Post new topic Reply to topic  [ 45 posts ]  Go to page 1, 2, 3, 4, 5  Next
Author Message
PostPosted: Mon Sep 12, 2011 3:35 pm 
Offline
Koopa
Koopa

Joined: Mon Aug 15, 2011 1:27 pm
Posts: 32
I thought it might be valuable to collect everyone's advice for people wanting learn programming and game dev. While there are a lot of resources available to help advance your personal skills, the direction isn't always clear where to go or what to focus on. There are a million directions to go, so let's help give this theoretical newbie some perspective.

The simple fact that you are registered for this forum means that you are further along on your game development path than many others. Even if you feel that you are not far along on your track, there are others less experienced than you. For them getting to the same level as you is a great achievement.

Given that, what is the most best advice that you can give so this programmer can reach the point in game development that you are currently at?

_________________
---
Released a game for Android devices called Duck Carnage. Something like Duck Hunt would be if you had machine guns and grenades.
Android Game Duck Carnage+ +Version (ad free)
Android Game Duck Carnage Free Version


Top
 Profile  
 
PostPosted: Mon Sep 12, 2011 4:28 pm 
Offline
The Swordmaster
The Swordmaster
User avatar

Joined: Mon Feb 22, 2010 6:33 am
Posts: 540
If you've never programmed before, then get yourself Game maker. Seriously.

Start simple. Game maker is fantastic as it lets you mess around with game development without needing to get your hands dirty in hard code. When you've messed around with Drag'n'Drop, then you can use GML (Game Maker Language) to start coding your games and messing around with it. If you have fun with game maker, then you should really enjoy game development as a whole.

After GM, well, that's where things get complicated. To me, it really comes down to two languages - c++ and c#. c++ is alot more complex, but you're given alot more flexibilty. c# isn't that much slower then c++ at all, and you're given all the .net libraries, XNA, and so many other useful items. Of course, this means that you're a little restricted to Windows, although you can mess around with Mono, one of my favourite games (Osu!) is still yet to be ported.

If you love GM's simplicity and don't wish to make your own engine, I highly suggest you give unity a shot. You can code in C#, Javascript or "Boo" and it's not that difficult to get 2D games going on it once you get some things sorted out.

However, the best advice is simple.
Don't give up!
and also
Don't bite more then you can chew!
and also
Don't be afraid to ask for some help, but don't ask how to do every little thing either. You'll never get anywhere doing that.
and finally
READ THE FLIPPING DOCUMENTATION, TUTORIALS AND OTHER ONLINE HELP! Use google!

Game development is torture. It'll make you wish you've never been born at times, especially when you go down the more advanced routes such as c++, or making your own engine out of OGL/DX/etc. Until you're confident enough to tackle them, don't look at them, don't even think of them. Use the cross platform libraries such as SFML and SDL. They'll save your sanity as well as massive amounts of time. I believe they can be used on both c++ and c#.

Game development is also amazing fun. It's cool watching your game slowly shape itself, and it's an amazing feeling spending hours working on some complex system then seeing it all come to life when you debug and play it. You're creating something that's uniquely yours, and no one can take that away from you. No one. It's just kick-ass awesome seeing the thing you've created take life and play, and nothing beats hearing other people enjoy your game.

Game Development - It's one hell of a ride, but you've got to work for it.

_________________
Join the Moosader IRC Channel and chat!


Top
 Profile  
 
PostPosted: Mon Sep 12, 2011 5:24 pm 
Offline
Larc
Larc
User avatar

Joined: Fri Nov 19, 2010 6:11 pm
Posts: 314
Location: South Lanarkshire, UK
If at first you don't succeed then resume to tinker. Your ability will grow in your down time, as it's amazing what will remind you of programming and how suddenly some solutions can come. You can be eating your dinner and them BAM! You know what you need to implement. Another thing is to read material that might be a little too advanced for you as it puts words and phrases and new questions in to your head and as the pieces slide in to place your insight is surprising.

_________________
For sale: Baby shoes, never worn.
Arse That


Top
 Profile  
 
PostPosted: Mon Sep 12, 2011 6:51 pm 
Offline
Psychonaut
User avatar

Joined: Sat May 14, 2011 8:57 pm
Posts: 621
Location: Azle, Texas
Live-Dimension, Ploe...EEEPPPIIIIICCCC!!!

:mrgreen: :mrgreen: :mrgreen: :mrgreen: :mrgreen:

Absolutely the best advice to give, glad someone's on the right page :P . You two just inspired me to keep at it :D .

_________________
Take ctrl of your life, alt your future as you see fit, and delete all that stands in your way.
- Ctrl+Alt+Delete


Top
 Profile  
 
PostPosted: Mon Sep 12, 2011 10:58 pm 
Offline
Black Mage
Black Mage
User avatar

Joined: Fri May 07, 2010 4:52 pm
Posts: 174
Location: Akron, Ohio
This is my four fold path to game programming awesomeness.
(Notice: I am by no means an expert programmer or right most of the time this is just how I "Rose up" in game programming and why I logically think it is a good way)

Step 1: The journey begins

For your first step in game programming/development I would highly recommend learning Game Maker or some other such program. Game maker will teach you some of the core concepts of control loops, variables, scope, inheritance, object movement, basic path-finding, etc. in a small, simple, and easy to use package. You first learn how to manipulate objects with pre-made functions in gui form. As you progress you figure out relationships between things, how objects effect other objects and how to structure objects.

After this you should try out the built in GML. It is a simple language that introduces how to set variables, use functions, and control loops; all while in the comfort of a gui setting. This will get you prepared for when you must ditch the GUI.

Step 2:The beginning of the trials

After this I would recommend your second step being learning a simple language such as basic. This will allow you to figure out how to make programs similar to what you made in Game maker but without the fancy GUI's and resource management. You will learn how to visualize your program in an abstract way of concepts linking together to form a meaningful whole. You will also learn how to structure your game in a text only environment. You will probably learn loading of resources like sounds and images. Then how to manipulate these resources and form structures to manage and control them in an efficient way.

Step 3:Trial of fire

Depending on if you are hard core you may skip basic, or completely skip everything up to this point. I would warn against this because while C is hard to learn with a basic understanding of programming concepts, it is obviously extremely difficult to learn if you just "jump in".

So now that you can wield your fancy text editors and make nice little space invaders programs it is time to turn the dial up to 9 and1/2. C in comparison to Basic, while not an extreme jump in program structure, can be hard jump just the pure power you gain from C and it's libraries. In basic your could probably make a rogue like, space invaders, or maybe a neat little day planner. Once you enter the realm of C you can create anything from a simple hello world program to a complete operating system.

But as wiser heads have said "With great power comes great responsibility." This is so true in C because while you are learning such new and wonderful things like structs, functions, pointers, memory allocation, type casting, etc. you also have the ability to trash the heap, segment fault, overwrite non-owned memory, write viruses, and start World War III(or maybe that was in War Games), but my point is that you can screw things up majorly, and often times you don't have a single idea what you did wrong.

After you master these techniques with some form of accuracy you can still not make any games more complicated then like console things until you learn an API. Typically you will learn basic and powerful API or an API that does a large portion of the heavy lifting for you. If you want to be the person who wants to understand how pixle shaders work, how to make a A* path-finding AI, or the intricacies of a physics engine then I recommend the basic and powerful API because you can literally do anything. Now if you want to make a game that is fast and elegant, that can run on most systems, I would recommend you go get one of those fancy API's that will do the heavy lifting for you. They will make your life a ton easier and you can focus on your game a lot more then the technology, at the cost of knowledge.

Step 4: The Ascension (or decension depending on your view)

After you learn how to use C well, I would recommend learning C++. It gives you access to many useful tools like directly integrated OOP, templates, references, cleaner memory management, and vast standard library. The nice part is that most valid C is also valid C++ code so you can transfer many of your skills and syntax over from your C learnings. C++ will allow you to more easily make and manage a system of objects with inheritance, metamorphism and other wonderful OOP things that allow game development to become more modular and simple. Many of the concepts from game maker will come of use here due to game maker's heavy use of objects to create games.

Perhaps the only down side to this is that C++ really heavily imposed OOP design so if you want to do some other paradigm, you may have some trouble.

*****************************************************************

Well that is it for this post. As I said before I don't know everything about game programming/development, and I am often wrong so please feel free to critique my response. This is also not the only path to learn game programming/development, it just so happens to be the one I follow so far.

If you think Basic and C are to easy then you are obviously to hard core for me and my only recommendation is to go off and program a 3d world simulator on the Atari 2600. :D

Sorry for the long post, but I have nothing better to do then write long posts on message boards, so I am afraid you are stuck with me for a while ;)

~~~~~~~
Chris C.

_________________
The day you stop thinking is day you let people control you.


Top
 Profile  
 
PostPosted: Tue Sep 13, 2011 3:36 am 
Offline
Larc
Larc
User avatar

Joined: Fri Nov 19, 2010 6:11 pm
Posts: 314
Location: South Lanarkshire, UK
I would have to disagree about going for Game Maker - use the tool which has the most allure. For instance if you want to make a game with Flash, then go for it. TGF/MMF or Game Maker? Yeah there's that too. Is the mystique of C++ enough to compel you through enough of the learning process? If it is then that's the place to start. Use what interests you and always try to pique your interests by consuming new and varied information. When related ideas come together you'll be all like "Wow, it's all the same thing." That moment is priceless.

_________________
For sale: Baby shoes, never worn.
Arse That


Top
 Profile  
 
PostPosted: Tue Sep 13, 2011 5:03 am 
Offline
The Swordmaster
The Swordmaster
User avatar

Joined: Mon Feb 22, 2010 6:33 am
Posts: 540
Generally, new people have lots of issues starting off with anything else but flash/game maker/ and the like. If they want to try c++ and they learn it pretty quickly, all the more power for them. Most people who start game development generally haven't programmed before.

_________________
Join the Moosader IRC Channel and chat!


Top
 Profile  
 
PostPosted: Tue Sep 13, 2011 6:53 am 
Offline
Larc
Larc
User avatar

Joined: Fri Nov 19, 2010 6:11 pm
Posts: 314
Location: South Lanarkshire, UK
Live-Dimension wrote:
Generally, new people have lots of issues starting off with anything else but flash/game maker/ and the like. If they want to try c++ and they learn it pretty quickly, all the more power for them. Most people who start game development generally haven't programmed before.


I know that :lol: I was starting off too, once. My "career" went Game Maker to RM2K to Visual Basic and BYOND, all within a few months. After that I fell in to tinkering in ActionScript and C. My point is that I never really went back in to the maker applications once I'd cut my teeth on the sexy, real (the ones you type) programming languages.

edit

Ninjaboi wrote:
Live-Dimension, Ploe...EEEPPPIIIIICCCC!!!

:mrgreen: :mrgreen: :mrgreen: :mrgreen: :mrgreen:

Absolutely the best advice to give, glad someone's on the right page :P . You two just inspired me to keep at it :D .


I completely forgot to respond to your post Ninjaboi. The number of times I've given up programming, for good, and I gravitate back towards it is just obscene. You never really wanted to give up really, neither did I... You just needed an excuse to keep at it. Programming is a highly cerebral pursuit, and working on a project is a slow, accumulative process. Unlike music or drawing, where you have the product for feedback in front of you immediately, with programming you might not see anything resembling your vision for months.

_________________
For sale: Baby shoes, never worn.
Arse That


Top
 Profile  
 
PostPosted: Thu Sep 15, 2011 2:16 pm 
Offline
Koopa
Koopa

Joined: Mon Aug 15, 2011 1:27 pm
Posts: 32
Live-Dimension wrote:
However, the best advice is simple.
Don't give up!
and also
Don't bite more then you can chew!


I think there is quite a bit to this. You can't just whip through a tutorial and move on if you don't understand the whole topic and what makes it work. Being able to compile and being able to comprehend are two completely different things.

That said, I often push the limits of my add more pieces without a complete grasp on my the limitations of my previous bit. Defiantly some competing forces between 'move on to something more fun' and 'improve your code to be more solid'.

One test to determine how well you understand a given topic is to re-write the section. Can you remember how the function worked, or do you have to return to the reference material just to figure out what you did? Repitition may be tedious, but it really solidifies your knowledge and logical processes. Any problems you ran into before will be still in your mind and hopefully you won't repeat them. At least you will know how to solve it if you do accidentally make the mistake again.

_________________
---
Released a game for Android devices called Duck Carnage. Something like Duck Hunt would be if you had machine guns and grenades.
Android Game Duck Carnage+ +Version (ad free)
Android Game Duck Carnage Free Version


Top
 Profile  
 
PostPosted: Thu Sep 15, 2011 9:31 pm 
Offline
Black Mage
Black Mage
User avatar

Joined: Fri May 07, 2010 4:52 pm
Posts: 174
Location: Akron, Ohio
I would like to point out that while you should definitely not bite off more then you can chew, never put your self in a box. What I mean by this is don't believe something is impossible to do, it may be hard as hell but a lot of things are possible. I always liked this quote from the character of William Pitt in the movie amazing grace "We're too young to realize certain things are impossible. Which is why we will do them anyway."

*Edit*

Let me reiterate don't bite off more then you can chew. Just always be open.

_________________
The day you stop thinking is day you let people control you.


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 45 posts ]  Go to page 1, 2, 3, 4, 5  Next

All times are UTC - 6 hours [ DST ]


Who is online

Users browsing this forum: No registered users and 0 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron