Where would you start?

Started by
10 comments, last by Nercury 11 years, 1 month ago

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!

Advertisement

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

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/

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

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.

Dan Mayor

Professional Programmer & Hobbyist Game Developer

Seeking team for indie development opportunities, see my classifieds post

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...

Languages; C, Java. Platforms: Android, Oculus Go, ZX Spectrum, Megadrive.

Website: Mega-Gen Garage

Thank you for all the helpful information,

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

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.com

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.

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.

Languages; C, Java. Platforms: Android, Oculus Go, ZX Spectrum, Megadrive.

Website: Mega-Gen Garage

This topic is closed to new replies.

Advertisement