• Advertisement
Sign in to follow this  

C# Learning Sources

This topic is 1958 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Good day, everybody

The website and community here are wonderful! (Just had to get that out my system.smile.png )

I am a beginner who is going to start learning C# today. That's right: Why wait? After looking online and at local public libraries, I have enough now to launch this C# stage. I am ahead of schedule according to my goals, by the way, and much thanks to everyone here who made posts and provided information at this site. Because of you I am having a nice opening stage in my career.

Please guide me to C# beginner and tool making resources which you would highly recommend from personal experience. I am looking for both books and online information. Though I have enough to start, I am seeking favored publications recommended by C# programmers which is good for game development skills. Please keep in mind that this is very much based on opinion and personal preference, but every referral will be seriously considered by me.

If anyone needs to know, I will tie C# tool making to C++ and/or Python game implementation in multi-platform. Some good stuff was found by me here at gamedev, so all I need now is recommendation from personal experience.

As always, any and all comments, information, and criticism is welcomed in my threads.

Two minutes of your time may help a bunch of readers, too.


3Ddreamer
Keep a dream alive and you keep direction in your life. Edited by 3Ddreamer

Share this post


Link to post
Share on other sites
Advertisement
Right now i am reading the book "Visual C# game programming for teens". I am not overly enthusiastic about this book, since it skips a lot of the concepts instead of explaining them in depth. If focuses more on creating a game, provided you already know some C#.

When i first started with C#, coming from Visual Basic, i used the following website which was useful to learn the very basics.

Hope this helps!

http://www.homeandlearn.co.uk/csharp/csharp.html

Share this post


Link to post
Share on other sites
Your first step should be to visit the official learning site...

http://msdn.microsoft.com/en-us/vstudio/hh341490.aspx

Download the free Visual Studio Express (if you don't have Visual Studio already)...

http://www.microsoft.com/visualstudio/en-us/products/2010-editions/express

Make sure you watch the free learning videos...

http://msdn.microsoft.com/en-us/vstudio/bb798022

It's amazing how many of the learning resources are completely free. After 10 years of being a .net asp.net developer I am learning .net MVC and I try to watch one video and read a chapter in a book every day.

If you want to spend some money and want to learn very fast then I recommend the site http://www.pluralsight.com. It's $29 a month and well worth it.

Share this post


Link to post
Share on other sites
Hi, everybody


I looked at everything you suggested. My goal of going open source and no cost as much as possible in early stages still stands, but I haven't made too big an issue of it because if something is good enough then it would be reasonable to consider buying it.

Here I am in the library today with two books:

[color=#008080]"Essential C# 4.0" by Mark Michaelis - Microsoft .NET Development Series, Recommended by Charlie Calvert, Program Manager, Visual C#, Microsoft

The qualifications of Mr. Michaelis may be summerized here http://intellitect.com/mark-michaelis/ , but other sources seem to confirm that this person is a leader in the C# field, no exaggeration.

It is about 900 pages and seems comprehensive. Some of the things which attract me, personally are "Hello, World" (well known in the programming field), Syntax, Console Input and Output, Classes, Inheritance, Interfaces, Lambda Expressions, and building Custom Collections - all caught my attention for tool creation. It has the largest multi-threading sections which I have seen anywhere so far.


[color=#008080]"C# 2010, ALL-IN-ONE, for Dummies" by Bill Sempf, Chuck Sphar, Stephen Randy Davis, but monster software architect Bill Sempf seems to be the core of this publication (Look online for his career description and you'll see what I mean.) with significant contribution to over 200 applications, some of which are commonly used by the public.

With these two leading authors, both the industry leaders of C# development and the leaders of C# software architecture for end users may be represented, I am hoping. These public library books are sitting in front of me at this moment , so the price it right.

As far as game development and C#, does anyone have suggestions on what will be least likely and conversely what I will likely need in game dev? Please include C#.net in this.

Some information on C# 5.0 is out there. Would studying 4.0 be much different than 5.0?


3Ddreamer - "Dream on!"

Share this post


Link to post
Share on other sites

Some information on C# 5.0 is out there. Would studying 4.0 be much different than 5.0?


If you are going to use .NET 4.5 and plan to take advantage of the new threading features then reading up on C# 5.0 / .NET 4.5 is necessary, theres other features too but the main thing (or at least what I consider main) was the new asynchronous features.

You dont need a book for this ofc, MSDN is a good enough resource for the new sections so you can read books based on .NET 4.0 then once you are done read up on .NET 4.5 features.

Another great book is O'Reilly - "C# 5.0 in a nutshell" (4.0 will do too), it doesnt cover everything but for what it does cover it explains nicely

Share this post


Link to post
Share on other sites
Cool.

Over the weekend, I began practicing things in the books that I have. I'll be looking at the online stuff, too.

Thanks, everyone smile.png


3Ddreamer

Share this post


Link to post
Share on other sites
As a beginner I found the Yellow Book of Rob Miles verry helpful. He explains everything very well and throws a joke here and there. And it's free. It's nice to have it in addition to what you already have ;). Good luck!

Share this post


Link to post
Share on other sites
My homework today has me homing into target areas and some good stuff I have here.

Here I learned that when people mention C# they often really mean Visual C#. I also did not realize that Visual C# is "by far the one most commonly used" implementation and should have expected that.
http://en.wikipedia...._Visual_C_Sharp

Visual Studio C# compiler: "The compiler produces executable (.exe) files, dynamic-link libraries (.dll), or code modules (.netmodule)." This I expected but got confirmation here.
http://msdn.microsof...d(v=VS.71).aspx

This wikipedia page really helped with a ton of useful information. Now I have a general vision of what happens in the flow of things. The criticism of .NET Framework was enlightening. The diagram of the CLI and other details were very helpful. The C# is a major part of this, of course.
http://en.wikipedia..../.Net_Framework

I forgot to mention, Visual Studio seems to be very powerful for making applications which are built in C# but implement in another language, such as C++. Python was even listed as one of the languages supported for implementation.

It looks as though I picked a winner with C#! biggrin.png

Eventually I am going to be concerned with memory leak and undetected loops, but for now I am happy to be studying the books and online about C#. Soon I hope to have several simple applications made to show for my study. I am still in the crawling stage but one happy baby. LOL



3Ddreamer

Share this post


Link to post
Share on other sites
My favorite for learning C# was "Head First C#".

I think a really good option for learning game development in C# is "C# Game Programming For Serious Game Creation". Go all the way through this and you will have a great starter engine for game development. It uses the Tao libraries for OpenGL, which are no longer being maintained, but still work great, and the author is active on his blog at http://www.godpatterns.com ... After going through the book you should be prepared to start modifying the game engine for your needs, making a wrapper so you can use DX if that's your desire, or replacing Tao with something else. He does not go much in to 3D, but I really feel like your first game should be 2D anyway. =D Hope this helps.

Lance...

Share this post


Link to post
Share on other sites
Lance,

That is perfect timing. Actually, everything so far that I have read here at gamedev has been perfect timing.

Yesterday and the day before I spent a few hours researching framework.

Today I spent a couple hours studying scripting languages. All this in the context of game development has helped much.

Now I see that OpenTK has overtaken Tao Framework, but a lot of useful stuff can be learned in Tao and it is still viable, too.

Interesting to me that today I continued looking for information specifically on using C# for game making and look what you brought! smile.png

Yesterday and today I searched for people in the web who make attractive games with C# and there is a sea of them. I even found a major developer who uses C# for making their game engine but I can't remember the name. The game is implemented in C++ which affirms what people say here in these forums that it matters more how the language is used over which language is preferred.

Great stuff!


3Ddreamer

Share this post


Link to post
Share on other sites
OpenTK is of course an OpenGL binding (with some other bits thrown in). 4 other options for you:

slimDX - DirectX binding (versions 9, 10 and 11) on windows only.
SharpDX - Another DirectX binding on windows much like slimDX. Some people prefer to use slim, some prefer sharp, entirely upto you.
XNA - A high level DirectX binding and games framework for windows, xbox-360 and windows phone 7.
MonoGame - Much like XNA (near identical to the end user infact) using OpenTK instead of DirectX, supports mac, windows, linux and with the relevant licenses iOS and android. Monogame projects can easily be ported to be XNA projects allowing xbox-360 and windows phone 7. Good luck finding tutorials though, generally its better to learn how to use XNA and then work out Monogame from there.

As for using C# for engine and implementing in C++, your misunderstanding alot here. I'm assuming it was the unity engine which is written in C++ but game code is in C#, its never the other way around (for performance reasons). You are right in it mattering more about how the engine is used though. Badly written C++ will probably give poorer results than well written C# or java, the potential for better performance is still there with C++ though (its just more difficult to exploit).


I do advise learning how to write console applications and getting all the basics of C# down before looking at any of the above libraries otherwise your just going to get confused. Edited by 6677

Share this post


Link to post
Share on other sites

I do advise learning how to write console applications and getting all the basics of C# down before looking at any of the above libraries otherwise your just going to get confused.


Typically, in the context of my early stage here, that would mean Visual Studio and .NET Framework, I understand.

Yes, you are right that I got the cart before the horse with C# and C++. Thanks for correcting me. It was indeed Unity.

This is getting good. biggrin.png


3Ddreamer

Share this post


Link to post
Share on other sites
I'm using Tao ATM, and it's doing great for me. I imagine I'll convert to OpenTK or something else later, but for now... well... "If it ain't broke..." =D

I'm glad I brought something to the table that was useful to you. Let me know how your projects go!

Lance...

Share this post


Link to post
Share on other sites
OpenTK is forked from tao anyway, monogame then uses OpenTK under the hood aswell, so really the best graphics API's for mono all stem from tao.

Tao's development has basically stopped but it works, if you want to use it you can but documentation is probably a little scare. OpenTK doesn't seem to have alot going on either but hasn't quite stopped completely. Monogame is in full swing but isn't as low level as the other 2. Most XNA tutorials probably apply to monogame too but its probably a good idea to use XNA first before trying to learn monogame, it's not quite 100% identical and doesn't have many tutorials of its own.

Share this post


Link to post
Share on other sites
It's baby crawling for me at this early stage, but I am happy. Right now I am looking at how I can alter "Hello World".

Thanks,

3Ddreamer

Share this post


Link to post
Share on other sites
Looking for portability? Hard to go wrong with Tao, or Unity3D if you're willing to lay down some cash.

I'd recommend XNA for now, actually. Like I told you in another thread, I found it to be an excellent API, with its downside being a general lack of portability. But don't worry about portability now -- get the experience first, portability is easy enough later.

EDIT: Just did some quick research on OpenTK, and it seems like a decent library. Edited by nfries88

Share this post


Link to post
Share on other sites
nfries88,

Actually since you mentioned it, I am trying to get everything together at no cost if possible, at least for the first few months. As experience and need demand it, I will probably aquire some paid programs. If I can find a way to go my whole course in game development with no paid programs, then I will but we all know that is very unlikely.

Tao, Unity 3D, and XNA are still on the table. My self-imposed deadline for deciding on a game engine for learning purposes is the last day of this month, this coming Friday. Yes - I am still looking at OpenTK, too.

I am convinced by what many people said that I really can't go wrong with whatever choice I make for a system at this very beginner stage. Some are urging me in different threads to start now, but I feel a whole month of August is reasonable to research and make a decision, so I am sticking to it.

One way or another, I will let people know about my choice for a game development path.


3Ddreamer

Share this post


Link to post
Share on other sites

What do you think of this game engine,


I think that you got hello world working 4 days ago. Getting the programming, program design, and debugging skills needed to work with any engine effectively is still at the very minimum, a few months off.

Worry about it then.

Share this post


Link to post
Share on other sites
Hey, this is Natescham.

Anyways, this is a great post.
I just wanted to say that.

Anyways, I like the replies here.
I have many, many computer science and electrical/computer engineering and math books ymself.
So I have many books on C# and related materials.

I was just wondering.
What version of VIsual Studio are you using,
and what is the current cersion of C# that you are learning??

Now, I wanted to add,
if you want to get good with C#, and this won't be so bad ifyou already know VC++ or Visual Basic, ASP.NET, etc,
but wouldn't it be very, very useful to get a book on the latest version of .NET??

That is what I do,
and also you should try to learn more about the compiler that you are using, and how VIsual Studio works,
but mainly hwo t compiler works the best that you can as you get more comfortable with programming.

I mean, after I learned C programming, which was my first language I choose to learn,
I started learning FOrtran, then C++, but at the same time, I read an overview of cComputer Science and Electrical Engineering,
ten I went onto a Software Engineering book, Discrete Mathematics, Computer Organization, then Computer Architecture.
Right now I am on Compilers myself, whcih has helped tremendously.
I am all about making my code more efficient, and always readable!!! lol, you knwo what I eman guys, lol.

Oh, and for your second tier of learning,
I mentioned Computer Organization and Discrete Mathematics, but htere are two or three subjects you shoudl also work on in this time period or skill level, maybe oen or two more, depending on what you woudl liek to study.

First, learn another programmign language, or start.
I mean, I learned ANSI/ISO C/C99 first,
so my second language was Fortran (but I also worked on C++ afer that, now I am workign on .NET and C#).
During this time, work on a secodn subject.
I would first suggest Computer Organization.
This will teach you sooo mcuh about low-level, assembly language and more about the science behind different languages and types of languages.
I think that anyone can work on two books at a time. If you want to do three or four, etc, that is up to you.
Now besdies COmputer Organization, work on soe of your math....
I KNOW IT SUCKS!!! lol, but seriously, work on Boolean Algebra, Discrete MAthematics, set theory, etc.
It is the other main branch of Analysis that you are working on, the other being Calculus, which isn't as useful for you at this time, generally! lol.

Now, once you work on that, there are other subjects in tier 2 that you can work on.
Oh, I shoudl mention that if you are liek me, and liek Computer Engineering, you may want to elarn mre about Electrical ENgineering and Hardware,b ut you do not have to, but please learn more about Hardware, Video Cards, RAM, and especially GPU's since htis is game programming.

Anyways, you shoudl elarn assembly language.
Now I first learned assembly language for the PIC16 and 18, which are microcontrollers, but you can work on others, RISC or CISC.
I should mention though, that x86 or Intel/AMD is a lttle tougher to learn at first. And if you are not into COmputer Engineering, do not learn it first.
You should elarn assembly because it will teach you so much about computers and how progammign and languages work. At tier 3 you will need it and you can elarn about COmpilers to roudn things off. And makign your own compiler is the BEST way to learn any language, trust me.
Also, if you want to learn a simple assembly language, try the book, "How COmputer's Do Math".
It teaches you a simple instruction set and shows you how computers work, and you will make a calculator.
It is one of the ebst books I have ever read to elarn fro initally. Trust me.
Oh, and "Bebop to the Boolean Boogie" is anotehr book by the same auther, which introduces you to Electrical/Computer Engineering.
Then you can move onto Digital Design or DIgital Logic or Digital Logic Design, or whatever it may be called in thsi matter.

Now for you programmers, thsi is a HUGE subject that you will want to work on: Data Structures! and Algorithms!
Trust me, in tier two of learning, you MSUT learn this stuff.
And with Algorithsm, you will unerstand why I emphasized mathematics.

Oh, and lastly, you will want t read about software engineering for sure.
It will teah you hwo to work in a group, which is necassary and standards,etc. (Also make comments!!!! lol)

Now, if you are learning C#, you will want to learn more about Microsoft, Windows and Windows SDK, MASM, .NET, etc.

Oh, and if you wantto starttier 3.
Rememebr to look into COmputer Architecture and Compilers.
This will really help you learn.
If you can do all of this, all you need to do is learn to work in a group.
I suggest forming a team online of programmers and graphic designers/ artists, evensound people, writers,etc.
I have done this in the past, and it was sooo much fun!!!

Well, I hope that you guys will research soem fo the topics that I mentioned.
If you are into C#, please look into .NET right away.
Let me knwo if you want much more detailed information on any subject up to tier 3, or about working ina group.

I am always willin gto help.
Also, if you want to start a group, let me know, I am willing to start one or join so that we can practice together.
We can elarn much from each other.
I also have like 6 book cases full of books, so if you want a lsit of books on any subject,
please let me know!!!
I will give you a detaield list of the book's title and author(s).

Well, take care guys.
And hopefully we work together it eh future on learning and projects.
Cya!

-Natescham

Share this post


Link to post
Share on other sites

Good day, everyone

What do you think of this game engine, Axiom:
http://www.axiom3d.n...x.php/Main_Page

Any possible challenges that you see with it?


3Ddreamer


I generally advise newbie game developers against using complete game engines because that limits your ability to learn. If you use a game engine, you never learn how to write reusable game code yourself. That takes away one more developer from possibly creating the next great game engine of the future.

Just program -- really, just program. That's all you need to be doing at this stage. Doesn't really matter what it is. And I hope you're at least toying around with those libraries we've suggested. That's the only way you'll know you've chosen the right one for yourself. Edited by nfries88

Share this post


Link to post
Share on other sites
[REMOVED RESPONSE TO OFF-TOPIC POST (but it's been quoted in the new topic)

Back ontopic.
Axiom is supposedly alright, not amazing. Its a full port of Ogre3d to C# (yes that is right, it isn't a binding it is a full source code porting). Its slower than MOgre (which is a binding to Ogre3d) but is also porting an older version (MOgre is only 1 release behind ogre3d, axiom is an ancient release of ogre). From what I here it doesn't work on mono too well either (which is the only disadvantage on paper for MOgre). Its generally not the best library unless there is a specific reason for not using Ogre. Ogre3d (the original C++ graphics engine) although is nowhere near as complex as raw openGL or directX (with C# that would be through tao or slimdx or sharpdx) still isn't terribly easy to use, it also doesn't provide anything other than graphics, its not a full game engine. Ogre I think is meant to be object orientated graphics rendering engine, so no sound or physics or anything. MOgre/Axiom would be a pretty good choice for a AAA quality game in C# but not for a newbie. Of the 2 MOgre is almost universally better than Axiom. Edited by jbadams
: Removed response to off-topic post which was split into a new discussion.

Share this post


Link to post
Share on other sites
Hi, everyone


What version of VIsual Studio are you using,
and what is the current cersion of C# that you are learning??


Just to get into it as soon as possible, I searched a bunch of local libraries and chose books on C# 4.0 because they were the latest available on the shelf. I am learning Visual Studio Express 2010 because it matches the books and also Axiom was using it. This all is only temporary. Once I reach the point of needing it then I will get more and better! smile.png

The C# is fun! I really like it a alot and it does seem relatively easy to learn.

I am on vacation, but will get back in the water here, so to speak, in a couple days.


Have a good day, everyone,

3Ddreamer Edited by 3Ddreamer

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement