Does XNA GS enough to make 2D online game?
I mea开发者_运维知识库n,I've seen amount of game engines which based on XNA.
Is XNA GS itself a game engine?If not what is the different and should I use game engine?
XNA is a framework for making games and is currently part of the Windows Phone SDK. (The name is somewhat misleading- you can make programs for PC, Xbox 360 and phone platforms but MS recently decided to push the phone market more). Frameworks usually indicate that adequate programming knowledge is required, and there is little "drag and drop" work done.
The design of the framework has been made from the ground up to be used for games, though recently it's been also become adapted for Windows Phone 7 apps. That said, it provides a lot of helper functionality for games like built-in timers, sprite rendering and complex mathematical functions. This leave the programmer more time to focus on the game logic and more complex implementations for rendering, audio, etc.
So it's easy enough for an experienced programmer to dive right in and create games more quickly, but it's not restrictive and it won't hold your hand all the way through. The variety of engines available for it shows the flexibility of XNA. The best engines are pretty powerful and capable of producing AAA-caliber graphics, and there are also specialized engines for audio (like Xact built-in) or physics (like BEPU or LibJigX).
XNA is a game library.
A game library is at the code level. It is something that packages a bunch of useful graphics, sound, and other game-related CODE (classes, methods, etc.) for you to call and integrate within YOUR code. You are still, at large, designing the entire code (classes, methods, etc.) for your game, but having a useful library makes it more convenient (a lot more - this way you wouldn't have to communicate with the graphics card directly). XNA has some pretty complex helper code, like it will create billboard matrices for you, etc. But even that...YOU are still responsible for placing that helping code in the right spots.
A game engine is basically an APPLICATION that you're using. You can define certain parameters and they generally provide a good amount of freedom and flexibility (via a scripting language usually) with what can be done, but ultimately, you are not writing the base code for the game. This means you can only go so far and change so much. You can't mess with the game loop, you can't write your own algorithms for certain low-level things (not sure what they let you change, probably varies per engine). They handle a lot of collision and stuff automatically...but this means limitation of freedom.
Depends on what you mean "online".
If you meant Browser based - then NO. Flash/Silverlight/Unity is the way to go.
If you meant online-interaction, then Yes - Your game will be an XNA application running at the client side. Be aware that the client/user "must" be on windows based environment ( PC / Win phone ) in such cases.
精彩评论