Closed. This question is off-topic. It is not currently accepting answers.
Want to improve this question? Update the question so it's on-topic for Stack Overflow.
Closed 11 years ago.
Improve this question
I am starting out learning XNA and its going smoothly. However I wonder if I am shooting myself in the foot by learning 3.1 not 4.0?
I am aware of whats new: http://msdn.microsoft.com/en-us/library/bb417503.aspx, and that mostly seems to be phone, interfaces and video features - which I am not so interested in - I am more doing the core 3D stuff.
The sticking point is: I have Visual Studio 2008 professional already and do not want to get VS 2010 if there is little difference in the game programming in 4.0.
Has the world moved on? Is what I am learning in 3.1 going to be come redundant?
There are also code differences in libraries, but they are not major, many of them can be seen here: http://www.nelxon.com/blog/xna-3-1-to-xna-4-0-cheatsheet/, for instance this one which I had to figure out compared to Riemers Tut:
XNA 4.0
protected override void Draw(GameTime gameTime)
{
device.Clear(Color.DarkSlateBlue);
RasterizerState rs = new RasterizerState();
rs.CullMode = CullMode.None;
device.RasterizerState = rs;
effect.CurrentTechnique = effect.Techniques["ColoredNoShading"];
effect.Parameters["xView"].SetValue(viewMatrix);
effect.Parameters["xProjection"].SetValue(projectionMatrix);
effect.Parameters["xWorld"].SetValue(Matrix.Identity);
foreach (EffectPass pass in effect.CurrentTechnique.Passes)
{
pass.Apply();
device.DrawUserPrimitives(PrimitiveType.TriangleList, vertices, 0, 1, VertexPositionColor.VertexDeclaration);
}
base.Draw(gameTime);
}
XNA 3.1
protected override void Draw(GameTime gameTime)
{
device.Clear(Color.DarkSlateBlue);
device.VertexDeclaration = new VertexDeclaration(device, VertexPositionColor.VertexElements);
device.RenderState.CullMode = CullMode.None; // TODO only for testing!
device.RenderState.FillMode = FillMode.Solid;
effect.CurrentTechnique = effect.Techniques["ColoredNoShading"];
effect.Parameters["xView"].SetValue(viewMatrix);
effect.Parameters["xProjection"].SetValue(projectionMatrix);
effect.Parameters["xWorld"].SetValue(Matrix.Identity);
effect.Begin();
foreach (EffectPass pass in effect.CurrentTechnique.Passes)
{
pass.Begin();
device.DrawUserIndexedPrimitives<VertexPositionColor>(PrimitiveType.TriangleList, vertices, 0, 5, indices, 0, indices.Length / 3);
pass.End();
}
effect.End();
base.Draw(gameTime);
}
Yes. The world has moved on. XNA 3.1 is already redundant.
There are Major Architectural, API and under the hood changes for 4.0. The changes are significant, especially with regard to rendering. You are better off using VS2010 Express and XNA 4.0 than VS2008 Professional and XNA 3.1.
first time posting. There was a similar question posted in the game development stackexchange which can be found here (and reiterates what you said for the most part)
https://gamedev.stackexchange.com/questions/7553/difference-between-xna-3-1-and-4-0
As for my experience our team started developing in 3.1 and ended up porting to 4.0 about halfway through our project. 4.0 seems to force you into one of two specifications "Reach" which is the low end and has a lot of restrictions based on the mobile GPU for winPhone7 and "Hidef" which basically means Xbox and wouldn't start on any of our computers that did not have at least a DirectX 10+ card. I like the organization of 4.0 better than 3.1 however it is geared much more in tune with the winPhone7 and Xbox where as 3.1 has some features that are PC only. Since you're learning XNA the option is still open to use either, however if you feel the need to port from 3.1 to 4.0 in the future it may be somewhat difficult. I was developing the audio for our game and found a lot of the changes in 4.0 very useful however our team did have some hiccups converting a lot of the graphics. Hope this helped! cheers!
Related
Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 9 years ago.
Improve this question
As someone who has never developed an iOS app but hopes to soon and has never had a Mac (to date) the whole XCode and process for developing apps was a little lost on me.
To start: things like which languages are supported in development was one area I wasn't sure of:
I've seen C, C++ and Objective-C referenced as the languages used to write the apps. But I've also seen JavaScript` + HTML + CSS and .NET as options and a host of other compiled languages, with people arguing if you can or can't use them.
Another thing I wondered about was Xcode, does it support all the mentioned languages? Or is an IDE built for a specific language such as Cocoa ? If it is, then how would someone use JavaScript for example to write the app?
I'm sure this is a fairly simple answer to Apple users, but I had some struggle trying to relate from a non-Apple background.
Updated
Thanks for the great answers and insight, hopefully other this post will be helpful to others who don't have an Apple / iOS background
All three language alternatives that you mentioned are available to iOS application developers *.
Objective-C/C++ offers a way of making native apps for iOS, you produce machine code that runs on the devices. You use Xcode to develop in these languages.
You can build apps in JavaScript + HTML + CSS because iOS comes with a browser. Apple offers a mode that gives your apps a completely native look and feel, so they do look like first-class citizens.
You can build your apps in C# as well by using Mono Touch. This is different from .NET, although the language is the same, because your code is compiled into binary ahead of time. Although using Mono Touch eliminates the learning curve associated with the new language, you need to go through a fair bit of learning to adapt your knowledge of .NET to a different platform.
* Except Cocoa, which is not a language, but a collective name for Apple's frameworks for developing under OS X and iOS.
iOS' native language is Objective-C. While it's true you can use C++ to make apps (Cocos for example, is mostly written in C++) it isn't the 'native language'.
As for the other languages you mention, while it's possible to create apps using them they won't be 'native' normally relying upon another IDE/Library, phone gap or adobe air for example. Most of these also support cross platform development.
Where I work we also use HTML5 to create a 'faux native' interface/experience.
If you're new to iOS it's worth while checking out Apple documentation/sample code at:
https://developer.apple.com
There is a wealth of knowledge there that should set you on the right path. It ins't however, something I'd recommend if you don't have any experience with object orientated programming.
Coming from a C++ background myself, I didn't find it too difficult but have been working on iOS for about 3 years (on and off) and am only just starting to really become truly fluent in it's processes and conventions.
Hope this helps, let me know if you want to know anything specific.
This question already has answers here:
Closed 10 years ago.
Possible Duplicate:
Experienced in web development. How to get started with iPhone Game Development?
- Question
I am an iOS developer working on business applications. I want to start development of games for iOS. My Question is from where to start and what are required tools for games development and which resource is most important. So far i think that openGL and core Animations are required tools.
Please guide
You should take a look at the Cocos2d framework. Here's a great tutorial:
http://www.raywenderlich.com/352/how-to-make-a-simple-iphone-game-with-cocos2d-tutorial
I'd recommend a game development framework. This article is a bit dated, but does reference toolkits that still exist and are good:
http://maniacdev.com/2009/08/the-open-source-iphone-game-engine-comparison/
If you're not prepared to learn a lot of math/programming, then shoot for using a commercial engine like Unreal, where most of the heavy lifting is done for you. Their tutorials are a good place to start.
You should also want to start playing with Blender and/or Google Sketch-up. They will give you a better feel for the things you'll need to know in order to use a pre-built engine....and both are free.
The Unreal game engine also has a free edition.
So I am planning to start learning DirectX by grabbing Frank Luna's book "Introduction to 3D Game Programming with DirectX 10". But since I have a GeForce Go 7 graphics card, I am wondering will I be able to at least test the code from the book? Or should I take his older book about DirectX 9, which my GPU supports? But speaking about that, it would be a little pity to learn outdated stuff since I read that DX10 has introduced quite a lot of new concept, so I am totally confused at the moment.
On the other hand, perhaps with the hardware I have I would be more happier learning older version of OpenGL?
If you don't have the money to get updated hardware, get the book to match the hardware you have.
Most of what you will need to learn transfers from one to version to the other - if you get proficient with one version, you can move to another and keep most of your knowledge - because most of what you need for graphics programming isn't the API.
You just need to get started and get some code running as quick as possible!
If you have Windows 7 you could use WARP until you can get a hold of better hardware, but it will be much slower than using an actual DirectX 10 graphics card.
can anyone provide me more information about XNA Development? for what usages it is good for?
It is used to program games for the Xbox, PC and soon to be windows phone 7
Check out the XNA site for more info
XNA is a Microsoft programing environment for writing games that will run on both PCs and XBoxes.
XNA is a .net framework api build on top of directx, and is aimed primarily at game development. It is designed to provide a easier to use managed framework for working with DirectX. One of the advantages to writing games build with xna is that you can deploy your game to PC's, XBox360, Window Phone 7, and even zune.
And the best part is that it is free! The xna framework and GSE (Game Studio Express) are both provided completely free of charge.
Although the xna framework leans more on game development it is also a viable tool/framework for presenting 2D/3D graphics for any .net application.
Check out the XNA site for more info, code examples etc
XNA has been steadily gaining penetration in both the indie and commercial games market. And a yearly game competition has been running called Dream Build Play.
XNA is set of tools, based on .NET framework, used for game development for various platforms (PC, Xbox, Zune). What could interest you (among other things) is XNA Framework and XNA Studio. You can check those out on XNA homepage.
You should note that the future of XNA is currently doubtful:
Presently the XNA Game Studio is not in active development and
DirectX is no longer evolving as a technology. Given the status within
each technology, further value and engagement cannot be offered to the
MVP community. As a result, effective April 1, 2014 XNA/DirectX will
be fully retired from the MVP Award Program.
My zune just updated to 3.0 (didn't even realize they were releasing something new!) and the update came with two games, but the Zune marketplace does not have games.
Where do I go to get started, and what are the capabilities of the Zune in terms of games/apps?
Well, first, you must download the Microsoft XNA 3.0 CTP. Read the documentation, which will explain the capabilities. But, from memory:
No hardware accelerated 3d (obviously, you can create a software 3d engine and then render the result to a 2d sprite, but... Don't expect much in terms of performance ;))
No XACT, you must use a new sound API
Just an update but note that XNA 3.0 has been released. It requires some flavor of Visual Studio 2008.
I downloaded it and coded & deployed "hello world" to my Zune in no time at all. Very easy.
You should check out the blog of Rob Miles. He has a few chapters of his book on his site. Great place to start.
I was hoping someone here would have better resources, but as this seems to be a new area of development, here's one resource that appears to give all the steps for a newbie to get started (too many assume you already have Visual studio, etc).
I'm really interested in a better in-depth overview of the capabilities as well, though.
-Adam