|Carry on learning XNA or something else?||Locked|
|Jun 17 2012, 8:21pm Anchor|
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
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
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 ) 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 ) 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
|Jun 17 2012, 8:28pm 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, 6:21am 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...
|Jun 18 2012, 7:15pm 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, 8:54pm 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... ) 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.
|Nov 14 2012, 1:44pm 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.
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:
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, 8:17pm 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
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.