Jump to content

  • Log In with Google      Sign In   
  • Create Account


Where would you start?


Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • You cannot reply to this topic
11 replies to this topic

#1 Sir8BitHero   Members   -  Reputation: 114

Like
0Likes
Like

Posted 23 February 2013 - 04:40 AM

I'm currently trying to learn C# so I can eventually develop a 2D Platformer, I was learning how to use Java but once I noticed that it was probably going to be a huge waste of time I moved onto XNA. If anyone who has experience with this language and could maybe provide me with some links/advice (nothing outdated please!) that'd be great.
Thanks in advance.

Note: I do notice I put the bar quite high when I talk about creating a 2D platformer even though I haven't even started using XNA yet, I only included it incase anyone was curious for some unknown reason.

Also if anyone has skype and wouldn't mind adding me incase I had any questions during my "adventure" I'd be most grateful! 



Sponsor:

#2 Sploitz   Members   -  Reputation: 210

Like
7Likes
Like

Posted 23 February 2013 - 06:43 AM

First, Java is definitely NOT a huge waste of time.  Anything you learn from any language can usually be applied in some way to another.  And knowing more than one language is very useful.  As far as XNA though, I started with this tutorial series when I decided to do a Ludum Dare using XNA.  I had never used C# nor XNA, and started these tutorials about a week before the event.  I didn't finish the game, but it was a 2D platformer that was mostly complete.  It had enemies, shooting, scrolling levels, and collision detection anyways, haha.

 

http://rbwhitaker.wikidot.com/xna-tutorials



#3 kazisami   Members   -  Reputation: 542

Like
0Likes
Like

Posted 23 February 2013 - 07:09 AM

Both XNA and Java is good for your purpose. But as you said that, you are trying to learn C#, then aiming for a 2D platformer is not a very good idea. I know its hard, but have some patience and learn C# well. By the way, if you are planning to expand your game programming further with XNA, then just to inform you, Microsoft is not planning to release any further updates of XNA. You can see it here.

 

Choice intelligently :D


To follow the path:

look to the master,

follow the master,

walk with the master,

see through the master,

become the master.

http://kazisami.wordpress.com/


#4 Nercury   Crossbones+   -  Reputation: 766

Like
1Likes
Like

Posted 23 February 2013 - 07:19 AM

I can tell you that knowledge is definitely transferable to another language, especially between such similar languages like C# and Java. Heck, my first full-screen simulation of Windows crash was written with Excel Visual Basic macros and was Very popular. You can start having fun anywhere smile.png

#5 Dan Mayor   Crossbones+   -  Reputation: 1712

Like
2Likes
Like

Posted 23 February 2013 - 01:37 PM

Actually I have to correct you a bit on this one, XNA is the dead and dying technology as to where Java lives on.  XNA Is in itself outdated, it is no longer maintained and Microsoft will be announcing it's depreciation very soon (It's all related to the new "Durango" console they are releasing and the new Windows App Store all platform consolidation).

 

With that said I personally still prefer C# over any other language for numerous reasons mainly it's productivity out weighs it's performance loss (which is overstated in the first place).  I have a lot of experience in XNA and was quite upset to find out that Windows 8 only supports XNA in legacy mode, new Windows mobiles don't support it at all and that you can't even sell an XNA based game on the app store anymore (way to fail Microsoft).  However lucky for us the open source world has seen the potential of this great framework, there is also "MonoGame" which is the open source build of XNA that is not reliant on Microsoft technology!  Basically this means that it's an almost identical code base and framework that actually works on all Mono supported platforms (including windows, mac, linux PC's and android devices!).

 

So back to the actual question, learning C# and XNA (or Mono Game for that matter).  Your first step will be to go back to Java.  There are very few C# references for beginners, most if not all of the educational material related to C# assumes that you are coming from another language such as Java or C++.  Personally I am unaware of any sources that take you from 0 programming knowledge to using C#, someone else might help you find something of this nature.  However the core concepts of Java and C# are almost exactly the same, the true object oriented programming model.  This is why I say go back to java, once you are comfortable creating basic Java programs, managing variables, input and output then you can easily transition into C# (normally in the matter of a day or two).  There are vast amounts of Java for beginners resources out there that apply to the core concepts of C#.

 

Some final notes about technology to choose, C# is emerging and finally starting to catch up to other languages in that we now have a few (very poorly documented) options.  There is XNA which you can still use but as mentioned is no longer maintained nor will it be supported in the near future.  There is Mono Game which is the open source version of XNA that is maintained and will be maintained for the foreseeable future.  If you require a more direct approach or more performance from your game on windows platforms there is also "SlimDX" and "SharpDX" which are two different managed Direct X libraries.  SlimDX is a wrapper around the C++ Direct X libraries (which makes it slightly limited and means that the Direct X calling isn't "managed" or "safe").  Sharp DX is actually a completely different approach and is a managed build of the Direct X Libraries themselves which means that it is real Direct X in a managed environment.  However you will find documentation for Sharp DX says "Here's where all the functions are, go read how to use Direct X in C++ and figure it out".  Also if you are just interested in making a game and not fiddling around with the engine layer that is overly complicated and already done there is Unity which provides an amazing designer, supports C# scripting, has great tutorials and documentation and best of all for PC games is 100% free!  In My opinion these are your modern not outdated options and might be what you want to look in to, feel free to get in contact with me I sent my skype name in a pm.


Digivance Game Studios Founder:

Dan Mayor - Dan@Digivance.com
 www.Digivance.com


#6 Anri   Members   -  Reputation: 597

Like
0Likes
Like

Posted 23 February 2013 - 03:15 PM

Just focus on learning C# and the rest will come easy.  XNA is a bit uncertain at the moment, but I reckon MS will bring out something similar(better?) for its upcoming XBox machine.  That gives you some time to get up to speed on C#...

 

For learning C#, start off with a beginners book(HeadFirst, SAMs, Dummies etc) and then move onto a more advanced reference book such as "The Complete Reference C#".  Take it in stages, don't be too hard on yourself and keep at it...



#7 Sir8BitHero   Members   -  Reputation: 114

Like
0Likes
Like

Posted 23 February 2013 - 05:11 PM

Thank you for all the helpful information,

I'll probably go back to trying to create basic programs and then move on from there.



#8 Tom Sloper   Moderators   -  Reputation: 9099

Like
2Likes
Like

Posted 23 February 2013 - 05:16 PM

I was learning how to use Java but once I noticed that it was probably going to be a huge waste of time I moved on

 

Java is NOT a "huge waste of time."


-- Tom Sloper
Sloperama Productions
Making games fun and getting them done.
www.sloperama.com

Please do not PM me. My email address is easy to find, but note that I do not give private advice.

#9 JonathanJ1990   Members   -  Reputation: 166

Like
0Likes
Like

Posted 23 February 2013 - 05:25 PM

I started with a Game Maker and I here construct 2 get so much love i might recommend that as well. If this is the first visual game you ever programmed I know for me working with something like game Maker to give me training wheels was an important first step. the first tutorial games i wrote were like 25% code - 75% drag and drop, but when i started making my own games for class projects it started to skew more towards code-based games until i finally made my own short  2D platformer   which was like 80% code and 20% drag and drop if even that.  I would suggest you get into unity for C# programming as well, but unity is primarily a 3D engine and while I am making a 2D game using the engine myself, it is only after having done several 2d games before and learning a ton about textures and 2D images.



#10 Anri   Members   -  Reputation: 597

Like
0Likes
Like

Posted 23 February 2013 - 05:29 PM

I was learning how to use Java but once I noticed that it was probably going to be a huge waste of time I moved on

 

Java is NOT a "huge waste of time."

 

Agreed. One does have the option of developing for the Android system and with a flourishing games market on phones and tablets there is certainly an opportunity with Java.



#11 TheSasquatch   Members   -  Reputation: 452

Like
0Likes
Like

Posted 23 February 2013 - 05:37 PM

I'm currently trying to learn C# so I can eventually develop a 2D Platformer, I was learning how to use Java but once I noticed that it was probably going to be a huge waste of time I moved onto XNA.

Java and C# are so similar that you could learn Java exclusively, then jump to C#/XNA with only a few minor hiccups. That's how I did it, anyway. Most of what you're learning when you're learning your first programming language isn't the language itself, it's programming logic--it's transferable to any other language. The rest is syntax and libraries and such, which will differ, but in this case (Java to C#) not by very much. Depending upon how far you got with Java, you'll either want to read one of these free eBooks (not far at all) or this not-free reference (pretty far).

As others have said, yes, Microsoft dropped XNA (a bizarrely bad decision, IMO, but they seem to be making a lot of those lately). That doesn't mean it's not still a good way to learn game programming. Like others have said, MonoGame doesn't seem to be going away either. Even if it does, that's still not going to render any knowledge acquired while using XNA useless.
 

Note: I do notice I put the bar quite high when I talk about creating a 2D platformer even though I haven't even started using XNA yet, I only included it incase anyone was curious for some unknown reason.

That's actually exactly what I'm working on right now, although I made a few other games via an XNA tutorial book before starting (and before that, a text adventure and minesweeper clone in Java). There's nothing wrong with setting the bar a little too high, as long as it's within reason--you're more likely to keep working at something that's interesting but a little too advanced than you are something that's fairly easy but boring, in my experience. Start right out with "how do i maek skyrim," though... that doesn't end well.


Edited by TheSasquatch, 23 February 2013 - 05:37 PM.


#12 Nercury   Crossbones+   -  Reputation: 766

Like
0Likes
Like

Posted 23 February 2013 - 06:15 PM

One more thing to mention: if you choose XNA for your training ground, you will begin writing shaders for your graphics card VERY soon. And shader language is the same exact language used in DirectX. When you write that first code that calculates color for a single pixel and makes a sphere smooth and shiny, it feels very rewarding smile.png




Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.



PARTNERS