Forum Thread
  Posts  
Carry on learning XNA or something else? (Forums : Coding & Scripting : Carry on learning XNA or something else?) Locked
Thread Options
Jun 17 2012 Anchor

Hi everyone.

yea i think i went through a time of posting alot about topics such as learning new programming languages, etc. I have been learning how to use XNA in conjunction with VB.NET, (the language i have been learning at school for about 2 years) so that i can make my own games and be able to publish them on the xbox 360 eventually.

The question i ask here though is whether to carry on with this, in terms of carry on learning XNA, using the Visual Basic language, or start seriously learning about game engines, i.e. a specific game engine, but just the programming side of it, or how to make certain objects in the game engine, not including code. Basically i think of learning how to use a specific game engine, e.g. Unity, UDK, etc great and im sure i would enjoy using it, but i dont really want to be too specific and limit myself in terms of only being able to sort of make games using a certain engine, etc. Also in terms of programming, would it be best to use game engine's in order to get a real experience of
game programming, or would it be better for me to learn C++ and learn OpenGl/DirectX, etc?

The main and general outline to this and the questions i have asked are would it be better in the long run (and short term) for me to carry on using VB with XNA, (even though there isn't much support around atm, and im not holding my breath or waiting a long time for there to be more help available so that i can eventually learn how to
make 3D games in XNA) or learning something such as C++/Java for game programming. I am obviously aiming at learning something that is not necessarily too specific, (if thats not a good thing) but so that i can learn for e.g. C++ and go onto learn about Opengl or something where i could actually help out a team, so be a part of it and using my knowledge that i have gained.

I am aiming to create a portfolio, which would obviously include things/examples of different concepts in a game, e.g. collision detection, so as i have asked before, is it better to learn another language as well as VB, (so could it be suggested that there isn't as much support for serious game programming in VB, limitations, etc?).

I have considered learning C# (and then i didn't :S) but i am revisting this thought as there is more support for it when it comes to XNA and it is used in Unity, etc.

I also am starting to get the feeling of not necessarily enjoying the syntax of VB, as it seems too english like, etc but thats probably me just being a bit mental... lol so i wont waste any of your time, as i may have just reiterated alot of things already in this post (i really do apologise if this is the case :()

Before i forget, just another sort of question/notice.... :) (if im allowed, lol i have asked too many questions tbh :S) but if there is anyone that would like to learn game programming, so in C++ or using XNA with VB, etc then that would be great if i could learn along side, as it seems that whatever i am learning, i feel it would be better if i either worked in a team and learnt on the job (to put it that way, even though a team would require knowledge already....) or just following a tutorial creating a game, and adding features to the game, which is better in a team situation, only alot of the teams i see posting for positions on here are already working on something, or are experienced in what they do. It may seem not ideal for some, but i think multiple people following a tutorial, learning a new p. lang or how to use a game engine/programming part, etc is good and different ideas, easier to learn possibly would be the advantages of this.

Thanks very much for reading and i look forward to hearing people's suggestions on this, that is if all of this makes sense and that i haven't annoyed anyone that has previously answered my questions on something like this in the past :)

You have all been great helping me with all my other posts btw, so thanks very much again to everyone there, i will stop writing now..... :)

Edited by: Raxsta

--

I wrote: "The solution to any problem is to break it up into smaller parts and attack it with logic"


I wrote: "I hate the term 'coding', as it's being thrown around alot by what seems to be the code monkeys, as oppose to the others that stand back and try to solve the problem logically first. FYI I prefer the term 'programming'.

This seems to be an interesting read: Thomasinterestingblog.wordpress.com. This also shows the a programmer requires more skill than is required for a coder, so a programmer would therefore be a more valuable asset to a team compared to a coder."

User Posted Image

Jun 17 2012 Anchor

first off i hate vb, we used to use it a lot in college in a course. You should just use c# in xna. To be honest with you, it depends on how serious you are? like do you want to make game as a hobby or as a profession. In terms of learning. Learn C++/C# first before learning the actual game program and understand the concepts especially classes and data structures. With that being said, in XNA try 3D programming first then move onto engines. But all honestly ditch VB its a language because its way to simple and it doesnt help you become a better programmer in my experience

Jun 18 2012 Anchor

Thanks for the reply.

Yea i wouldnt have chosen VB initally but it was the language that was taught on the computing course at my school. I have been taught about OOP, data structures and algorithms, and alot of other things. At the moment, i would like to make a game/demo that i can put on my portfolio. I ultimately want to be a game developer, so it would be as a profession, so yea i am serious about it, but the only thing at the moment holding me back from this is obviously learning a language and using the right software to help me create my own games, e.g. XNA, Opengl, etc.

I think i may be able to learn C# a bit easier than C++, as some of the syntax and features in C# is similar to VB, however i am currently reading a book on C++ ('C++ without fear') so i can learn the fundamentals before rushing straight into game programming.

The only real reason i am using VB is as stated before i have been learning it for 2 years at school, therefore i have been using it for XNA, even though i would have prefered to start off with a language like C, C#, Java or Python, (i feel C++ would take too long to just get into and start learning the concepts of programming, so i havent included it as a language that would be best to learn first... for me anyway :)).

Another thing against VB is the lack of support with XNA atm, as i think there is only one book specifically for VB using XNA that i am reading atm, so i do worry about how much support for 3D programming in XNA for VB, but im sure i will just end up learning C# anyway.

Thanks for the reply and i will try the things out that you have suggested... :)

--

I wrote: "The solution to any problem is to break it up into smaller parts and attack it with logic"


I wrote: "I hate the term 'coding', as it's being thrown around alot by what seems to be the code monkeys, as oppose to the others that stand back and try to solve the problem logically first. FYI I prefer the term 'programming'.

This seems to be an interesting read: Thomasinterestingblog.wordpress.com. This also shows the a programmer requires more skill than is required for a coder, so a programmer would therefore be a more valuable asset to a team compared to a coder."

User Posted Image

Jun 18 2012 Anchor

also what i recommend is after becoming familiar with c# with the xna framework move onto the unity3d engine which will be a piece of cake because you would have knowledge in c#. but during that time learn c++ get familiar with that, then move onto something more difficult such as cryengine3 and udk

Jun 18 2012 Anchor

cool, thanks for the advice, i will try and stick to that path.

Also for game demos, so producing stuff to put in your portfolio to show game companies, do you know what sort of programs people may use to do this, so would they specifically use game engines to show collision detection, etc? Would using software such as Ogre3D or Opengl and SDL be another thing to consider, i mean which in your opinion would you think is best to use, or to learn first/last, (meaning either the game engine or the opengl+sdl stuff).

Do you know if UDK actually uses C++, or does it use UnrealScript, (i suppose this is just the equivalent to a scripting language... is that correct?). For using C# with Unity, do you know if its as simple as writing code as normal, or would you have to create actual graphical characters/objects and then assosicate a class/code with that object, so in effect binding an object in the game to the peice of code you have written, or would the modeller/artist do that for you, (would you say it is best as a programmer to learn how to create models and objects in Unity/the game engine i am using and to learn how to use the game engine in general or would it be better if i let someone else, i.e. the artist or modeller do this part)?

Do you know if the logic in a game engine, e.g. UDK will provide the logic of the game to be written in UnrealScript or all of the game has to be written in C++ and as its a game engine, i am assuming there would be some form of library, i.e. graphics, input etc already in place for me to just implement in my code.

Wow, i really do apologise if there are possibly too many questions (if thats even possible... :S) but i sort of got different ideas/questions as i started to write this response.

Thanks very much for your help :)

Also.... would you say its ok if i just learn a certain game engine by myself, or as a team. I ask because some things as i may have mentioned before i will not be able to do whilst using the engine, e.g. the graphics/models, so i am assuming i should learn how to use the engine in general and also learn how to use my own code with it and then get some experience using the selected engine by joining a team.

--

I wrote: "The solution to any problem is to break it up into smaller parts and attack it with logic"


I wrote: "I hate the term 'coding', as it's being thrown around alot by what seems to be the code monkeys, as oppose to the others that stand back and try to solve the problem logically first. FYI I prefer the term 'programming'.

This seems to be an interesting read: Thomasinterestingblog.wordpress.com. This also shows the a programmer requires more skill than is required for a coder, so a programmer would therefore be a more valuable asset to a team compared to a coder."

User Posted Image

Nov 14 2012 Anchor

I am an a 8-year .Net Developer (VB and C#) who's spent the last several years experimenting with several different game engines. I definitely agree that you should move on from VB and think C# is a good place to go. You can pick up C# very quickly coming from VB. The libraries are all the same, it's just a different syntax. You can also go to google "c# equivalent of XXY VB function" and get help on just about anything. C++ is very different. It's a different way of thinking and a lot more work. The real difference is in performance. Using C# you will come across things you can't do that you could do in C++ but C++ has harder learning curve and requires more work for similar results (in my opinion). And the list of things that you can do in C++ that you can't in C# is shrinking by the day.

The game engines people use depend on what kind of game they want to make. Ogre3D would be awesome for a first person shooter or a 3d side scroller or something, but it would be way too much work to make a 2D game with. People looking for a 3D game would probably love someone with Ogre experience while a team making a 2d puzzle game won't gain anything from your experience. It's all about what you want to do and what you enjoy. There are two things all developers are going to want to see in your portfolio:

1) Finished games on any platform. They want to know that you can start and finish a project. Finishing projects is VERY important. Even if the game is crappy. Having a released game in your portfolio is a big deal.
2) A understand of game programming basics. Every game engine has it's own way of dealing with collisions, graphics, effects and controls. (A 2D side-scroller has much different needs than a 3rd person shooter.) But there are basics in every game (game loop, screens or scenes, sprites..) that are valid in every engine.

What I would do is carefully choose an engine you are interested in and make a few simple games in it. Use your experience with this engine to get you into another team. Things to look for in an engine:
1) Popularity. Popular engines have more documentation, more questions answered (better support), fewer bugs (usually) and more samples and tutorials.
2) Games finished with the engine. Check a list of the engines finished games. Do they look nice and run well? These can be good indicators of the engines performance.
3) Check the want adds in the forum. Are there people looking for a developer with these skills?
4) Of course a language you either know or can learn easily. You have a lot to learn already. Don't go from VB to Java and expect to pick it all up quickly.

Unity3D is definitely a good choice. (I don't know anything about UDK). In Unity you create your graphics in another program (like Blender or Maya) and import them. The C# code manipulates the objects via commands the engine provides you. So for example if you have a 3d character in Unity, your C# code controls what happens to that character every frame. You have to check for user input, apply a forward force if the user is telling it to go forward, tell the character to step forward the walking animation.. It's mostly very basic C# code and objects with Vector math and physics thrown in. (Two good things to learn btw)

I hope this helps. You have a lot of options. Now is a wonderful time to get into game programming. Indie games are becoming big and game development is going through a new revolution. Jump on and enjoy!

Nov 14 2012 Anchor

1) Drop VB. It's too specific. C# is fine

2) Dont worry about XNA being cancelled or Microsoft reliant. Monogame solves that

3)UDK uses unrealscript only unless you have a very expensive commercial development license

Reply to thread
click to sign in and post

Only registered members can share their thoughts. So come on! Join the community today (totally free - or sign in with your social account on the right) and join in the conversation.