Sign in to follow this  
ShadowPryde

[HELP]: learning decision

Recommended Posts

ShadowPryde    100
I started learning C# and allready have Visual C# 2010 and XNA .

I've heared many different points and arguments regarding C++ vs. C# but i thought i'd stick with C#. I feel good with it.

Now to my point. I plan on heading into the direction of making a game (in the distant future maybe) that plays like Homeworld 2 and has the destruction physic's of something like star trek bridge commander.

It's not because i'm dreaming about the next big hit but because those 2 have rather interessting game mechanics that cover very much anything you'd have in every other 3D game in some way.
What i'm most interessted in are rather realistic destruction physics like in bridge commander. This is the goal. The point of this topic is the way going there.

I thought by having a goal it would give me an easier way of laying the way towards it.

So i started with C#..got a very good book on it. Over the course of learning it i want to make a calculator and expand it to have a proper UI...graph functions etc. Suppose this will give me a great deal of knowledge and can expand in any way i want.

What my question to you would be. What should i learn after i covered C# and XNA to go steady towards my goal.
Can anyone give me a step by step learning plan who has more insight in this whole stuff.
I just don't whant to get the wrong turn by choosing stuff to learn that wouldn't be usefull.




Share this post


Link to post
Share on other sites
Postie    1559
I don't want to discourage you, but C# and XNA are not things you're likely to become an expert on in a short amount of time. They are both huge topics that will take a serious investment in time and practice to become really proficient in. If "in the distant future" (your words) you end up developing the homeworld 2 like game of your dreams in C# and XNA you'll still be learning new things in both until the last line of code is written.

The only thing that will get you where you want to be is practice. Create as many projects as you can in C# and XNA. Start small, increase complexity in manageable chunks. Make mistakes and learn from them.

Share this post


Link to post
Share on other sites
TSlappy    121
Sometimes it is better to "jump on running train" - maybe you should ask some team and join them.
You will stand in front of the real problems and you can learn a lot of really important stuff...
Creating simple apps will not move you so far as dealing real problems... (my opinion)

But that approach requires at least some experiences with C#, total n00b is probably not possible to solve difficult tasks...
Have patience and you will be successful :)

Share this post


Link to post
Share on other sites
ShadowPryde    100
You are very much speaking truth but because i'm at the total beginning of everything i think it's best to make some apps like a calculator first to start of with learning C#. After i've done this i will have more experience in C# and can go up to more complex tasks or even start doing a couple of small games to get a grasp at 2D,3D then maybe networking,Ai etc.

I know there are librarys for nearly everything out there but to know some stuff is better than to know nothing. Because i'm a working adult i can focus on learning programming in my spare time and don't have to rush anything.

I just want to take the right steps. I don't even know how far i can get with XNA or how capable it is thou it seems that there can be much made with it.
I aslo don't know if C#in managed form is powerfull enough to go the full distance or if i have to go unmanaged at some point.

I'm very much standing in the dark because i have no experience of the stuff ahead of me and thus trying to lay out some way to make it clearer for me on what i should focus while learning.

Trying to get into a team would be a benefit for anyone because i really am at the start and can help anyone.

I thought by having a goal it would be easier to determine what stuff i should learn step by step. I just don't know what steps to take and that's a problem.

I'm very much learning how to use the console and that's very much easy but that also makes me a total noob at present.

Share this post


Link to post
Share on other sites
Tom Sloper    16062
The best learning path is not necessarily the shortcut path. The stuff one learns in the longer mainstream pathway is always useful at some point. You can miss out on a lot by always taking shortcuts.

Share this post


Link to post
Share on other sites
Khaiy    2148
C# is plenty powerful enough for you. XNA is as well.

I really wouldn't worry about learning something because you think it might turn out to be "useless". I used to think similarly, but I've discovered two things: While you're learning something new, you'll still be sharpening your coding skills, which will benefit you no matter what, and you never know what skill might come in handy. Working on some particular thing might even help you later in a totally indirect way, like thinking about a problem in a way you otherwise might not have.

Making a calculator is a great early project, because you already know what it should do, so you can focus on figuring out how to make the language actually do those things. As for projects after that, anything will do really. Text based games are common, starting with something easy like "guess the number" and then moving on to hangman or tic-tac-toe. These will help you understand the general structure of a game, and how to make C# work within that structure.

After text based stuff, you can start looking at a program with graphics. XNA will certainly do, as will libraries like SFML. Once you've worked your way through tutorials to get a feel for whichever library you choose, you can make a simple game (Pong is a nice starter project).

The biggest thing is to keep at it. Programming in general is something that you're only going to get better at by actually doing it. It's not a fast process no matter what you do, and it [b]only[/b] gets longer if you dither about what to learn rather than actually learning/practicing.

Share this post


Link to post
Share on other sites
MeshGearFox    158
Shadow:

If you're really enamored with 3D and C#, give Unity a shot. It's a free-for-non-commercial-use 3D engine that can use C# as a scripting language and all the cool cats out there in awesome city tell me it's pretty beginner friendly.

Share this post


Link to post
Share on other sites
ShadowPryde    100
[quote name='Khaiy' timestamp='1302804222' post='4798488']
C# is plenty powerful enough for you. XNA is as well.

I really wouldn't worry about learning something because you think it might turn out to be "useless". I used to think similarly, but I've discovered two things: While you're learning something new, you'll still be sharpening your coding skills, which will benefit you no matter what, and you never know what skill might come in handy. Working on some particular thing might even help you later in a totally indirect way, like thinking about a problem in a way you otherwise might not have.

Making a calculator is a great early project, because you already know what it should do, so you can focus on figuring out how to make the language actually do those things. As for projects after that, anything will do really. Text based games are common, starting with something easy like "guess the number" and then moving on to hangman or tic-tac-toe. These will help you understand the general structure of a game, and how to make C# work within that structure.

After text based stuff, you can start looking at a program with graphics. XNA will certainly do, as will libraries like SFML. Once you've worked your way through tutorials to get a feel for whichever library you choose, you can make a simple game (Pong is a nice starter project).

The biggest thing is to keep at it. Programming in general is something that you're only going to get better at by actually doing it. It's not a fast process no matter what you do, and it [b]only[/b] gets longer if you dither about what to learn rather than actually learning/practicing.
[/quote]

Thanks that was all very helpfull. Now i have a bit of clearer imagination what path to take :)

Share this post


Link to post
Share on other sites
altras    114
A quick recap from my experiece with flash xD But actionscript3.0 != C# and the learning curve for both technologies is different.

Start with [b]pong[/b] - basic collision and keyboard navigation
Next is [b]tetris[/b] - more complex collision and mechanics. You can make it color matching if you love difficulties
[b]Pacman[/b] - basic AI and path finding after you learned collision
Platformer like [b]mario[/b] - basic level design, camera movement and timed events (boss fights etc.)
[b][url="http://www.youtube.com/watch?v=J-rAY1VSVNY"]Tank wars[/url] [/b]<- something like this. Basic geometry and terrain morphing
End with thing like [b]geometry wars[/b] - basic effects
After all this is [b]up to you[/b] what to start :)

You can make it like a marathon (sprint development). 7 days = 1 game. Complete the course for less than 30 days :D "Completeness" is a term that defines that you know how to build and deploy the game. It's obvious that your first games will never be completed and the worst case is abandoning the project. For that reason start small and build your skills up. Good luck ^_^

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