Game Development XNA

Game Development XNA framework

Introduction about game development with Microsoft XNA game studio

Microsoft® XNA™ is composed of industry-leading software, services, resources, and communities focused on enabling game developers to be successful on Microsoft gaming platforms. Microsoft provides advanced technology that allows professional developers to quickly enable games on platforms like Xbox 360 and Windows. Simultaneously it provides authoring, development, debugging, and profiling tools, while the libraries provide superior performance and an amazing depth of features.
Zatun has developed the “The Legend of Vraz”, a 2D action packed adventure arcade game for Windows PC. The legend of Vraz is the first 2D arcade game in India created with Microsoft XNA Game studio. It is also one of the earliest Microsoft XNA games developed in India and one of the first games in India from an Independent developer. It is also the first game ever made on Indian Miniature painting style.

Background Study

Before starting the actual game development the team prepared the game design document. Two teams were created which worked in parallel. One team worked on the graphics development which looked for the miniature art and the other team, game programming team, was searching for a particular platform and different game engines. During this period the team checked out other game engines but finally decided to work with XNA.

Game Development

One of the most important phase of the game development was finished; information gathering. After finalization of the platform we started looking on how we can utilize the XNA for the game development with its best. We started from the home page for the XNA and move forward from there looking at different samples and tried to figure out the best optimized solution for that. The learning curve for the XNA seemed to be very low as we had an expertise in C, C++ and C# as well as different graphics library such as Open GL and DirectX.

The following were the base requirements for us to develop a game.

  • Game Menus
  • A graphics library which would give us direct access to the hardware which is available with XNA.
  • A Game world designer, Map Editor, that would help us in faster production of different Levels and Worlds.
  • A Character Animation Editor, Character Editor, which would assist in the developing faster animations with better results.
  • Ease of development of physics that can be included in the game.
  • Ease of implementation of the artificial intelligence inside the game.
  • Applicability of the special effects. Game Menu

Game Menus

Now we are on board the ship of hardcore coding and have just started sailing. We are now ready with the GUI of the game-the menu of the game which handles the game parameters.

Game menu

We started building it from scratch by taking reference from book- Beginning XNA Programming, from Novice to Professional by Alexandre Lobao and others.

We made a general menu initially which gave us the idea about the functioning of menu. We took the approach of Game Components in which every screen was added to the game as a game component. Through this we acquired the knowledge about important features of XNA like Game Components and Game Services.
We also got to know about controlling Sound, display modes and keyboard controls. Dealing with File input/input and mouse was also a part of the learning process so now we were familiar with that also.

Then we began the main programming of our game specific menu but by following the reference as mentioned above we were facing memory issues as every menu screen was added as a game Component which consumed some space in memory and the code would get more and more complex as the number of menu screens would increase. So now we had to think of a very simple way to develop and handle menu because if menu itself would be so complex then mounting the whole game would lead severe memory issues.

We took the approach of a controller which controls the rendering and hiding of menu screen and passing controls to respective screen. The only game component added was the controller which when required to display a screen, would load its contents on run time and would display the screen. This reduced a lot of memory overload as only the visible contents were loaded in game and others are not. This also made our code very simple as in from only a single class – the class of the controller we could manage all the game screens.

Having a simple skeleton ready for the menu, adding the different functionality was not a major task as due to prior knowledge of the audio, display, mouse etc, it was just like fixing the spare parts of the motor engine in proper place. This reduced the development time and effort. Now we will move on to developing the first level of the game.

Map Editor

Map Editor is a utility that allows the faster development of the game levels or the game world. As we have stated in the Introduction section that the game will be a platformer, action and adventure game so obviously we lots of jump and multiple path for the wondering around. We have different layer depths for different images and tiles.

We have even allowed placeholders for different collectibles and the NPCs as well as for the enemies too. This map editor application allows us to draw the collision detection path where player can run on. Bounding boxes are helpful to assign the collision with different objects during the game. We can assign these boxes in the game too.

The NPC characters allow moving during the game into their patrolling area and also able to take appropriate action when the player comes into visibility area. It is more advantageous to assign them in the editor rather than into the game itself. So the Map editor allows us to do this on the fly just on the click on a mouse button.

Once we will finish with one point we can run the application and even check how this thing looks in the real game. Once we found any issues we can straight away go there and sort that issue very easily.

map editor level 4

level 4 2D arcade game

Here it shows different interactive objects which can be directly add into the map editor and then on the fly we can load them into the game.

Game AI (Artifical Intelligence)

Artificial Intelligence is one of the important factor that make the game looks like a real game and the gameplay looks very interactive, the game is engaging the player and make them think.

First of all the game characters should move on the path assign to them and do the patrolling. This means that the character should move on the platform and when they are on the platform they just stand still and play the appropriate animation.

In the other case we have to take appropriate decision when the player character comes in to the visibility of the NPC they have to take appropriate action such as changing the direction, attack the player or dodge if the player is attacking and some other like this. This is a part of the AI. But in this case we have different types of enemies and they have different physic so we can’t take a generic decision. In this case the langur baby can jump as it is light in weight where as the soldier can’t as he has heavy Armour on his body so we have take decision based on this kind of situations.

Even to make the game more realistic we have included different expressions like happy, sad, angry, die and so on. If the NPC can hit the payer twice then they will be happy and miss then sad or angry.

Game Particle System

Particle system is one of the important factor that give realistic look to the game. We have applied particle systems at few many places like in different interactive objects like fire flame, volcano and arrow fire.

For the particle system we have make the particle system manager by our self and use the different objects on them. This manager will take of updating the look and feel of each and particle by make sure that a particular particle requires update. This way we can optimize the thing effectively.

Summary

Game development is a dream of team Zatun. The experience with XNA is also good that we have deliver what we want. XNA is good development platform with lots of resources available on the internet with few dedicated site too.

Advertisement

Indie Game Developer

Become a Successful Indie Game Developer – Tips that Work!

Game development is an interesting and increasingly popular career. It has certain glamour about it. Being a game developer is something like being called a techno geek, who can think out of the box. This always attracts those who wish to make a name in the field of game development. However, there are lots of challenges in this specific sector and becoming a successful Indie Game Developer is not an easy affair. But if you have really made up your mind then here is a list of tips that would definitely help you click.

Learn from Mentors

This is any day better than learning from pdf documents or articles. Industry veterans can help you learn the nitty-gritty of the process of game development. While you may learn the software’s by taking up courses, there is nothing like turning to mentors for the real world ideas. But you may have to be a bit careful when you associate with the veterans as it is normal with every other industry, even successful game developers can turn out to be evil. They may not want yet another indie game developer trying to give them competition. So, stay away from such people who would do anything to keep the newbie from doing good.

Make Smart Deals with Big Game Portals

You must make a clever and smart deal when you sign up with bigger game portals. Though tying up with these game portals can help you achieve popularity faster, there are chances that you may not get as much profit as you may expect. At the same time, there would be many new games released by these websites which can actually reduce the number of people playing your game looking through the large number of games available on these portals. That means you may get even lower benefit with lower number of players. But in case you have to go for any of these portals, you must go with a smart deal. Get rid of all the confusing or low income generating factors from the contract and negotiate well. As an indie game developer, asking for an advance would never do you any harm. Just don’t get carried away with the website popularity.

Monitor Latest Trends & Popular Games

It always pays to start analyzing the current trends in the popular games to get fair idea about what are the games are making fans crazy. Developing such games would place you in a better position. Rather than trying to rectify your previous games, try working on newer projects and keep honing your skills. Only talent and passion for developing games are not enough, having enough understanding of the gaming industry and the gamers’ psychology would help you become a successful indie game developer. If you do not want to tag your games as free, you must look at your products and business from a strict financial aspect.

Though these tips are sure to help you make your career as an indie game developer, you may want to keep your long term goals in mind. Keeping milestones always helps to achieve target easily. There is nothing like die hard perseverance and talent to develop games but being smart and intelligent about your products would do you much good to help you grow.

If you want to get a taste of how capable indie game developers can be, you can check out Zatun Games. It boasts of a team of expert game developers with a passion to develop interesting games that can appeal to every age. While keeping some of the captivating mythological themes intact, it develops games that attract the masses.

Game Wallpapers

Game Wallpapers

Game wallpapers become a most eye catching part of game industry either we talk about the 2d video game or 3d games for any computer or console. It is good to have wallpaper which we can set on game desktop with a good background. It is more attracting to users to have some sound effect and the moving images on game background when they play with the game. Video game desktops, also known as wallpaper and it consists of large images that are used as the backgrounds on the computer screen, especially when there is no program open. By selecting video game desktop, user can customize the look of the game and its more feel and more fun to have on the computer screen. For example one use to play and fun with game like, The legend of Vraz, Mario and Nintendo etc., one can quite easily find game wallpaper or the pictures which is large enough to cover the whole computer screen.

There are quite most popular video game desktops among the gamers. Vraz and Nintendo have been so popular around the world and spark a lot in front of numbers of people. If you are a fan of Vraz, named the full title ‘the legend of Vraz’, which is creation of Zatun; where there are so many game wallpapers available to set on game desktop which completes your computer setup by getting a wide range of video game desktops. It has a great collection of high-quality video game wallpapers to download freely. It is help to create a great fun for you and more enjoyment towards game. It provides the realistic and the real experience on game while playing with the games using sound, background and video images to set as game wallpaper. The best part of such video game desktops is that they are normally free and quite easy to find. One can find and download the latest pictures of the game ‘Vraz’ on http://www.zatungames.com. This professionally-designed website has some shot of latest video game changed into some radical -looking desktops. In addition to video game wallpapers, this website also has all sorts of images and ads on this website. One of the best things to observe is the game wallpapers available free to download here! It’s all looking pretty good with high resolution.

A good part of video game wallpaper is not only contain the image or different color combination on image as background but it is all have the advertisements and some message which use to get more popular the site and have more number of users to have on site and aware of the games. One can create their own game wallpaper using a photo manipulation program and with the images it is also possible to create backgrounds which can decorate the desktop. For computer games, it is simple to take single snapshot by print screen option. For console and handheld games, user can use a digital camera with enough lighting and then easily transfer the images to the computer systems.

Below is our latest video showcasing game play and interactive objects in the palace level.

If you are looking for “The Legend of Vraz” wallpapers, you will find them under “Downloads” .The game screens support all type of monitor resolutions and we have Iphone wallpapers for our fans as well.

Game Menu

Game Menu

Now we are on board the ship of hardcore coding and have just started sailing. We are now ready with the GUI of the game-the menu of the game which handles the game parameters.

We started building it from scratch by taking reference from book- Beginning XNA Programming, from Novice to Professional by Alexandre Lobao and others. Our Intern programmer from DDIT was assigned this task to learn how to go about building the menu and his contribution did help us.

menuflowchart4

We made a general menu initially which gave us the idea about the functioning of menu. We took the approach of Game Components in which every screen was added to the game as a game component. Through this we acquired the knowledge about important features of XNA like Game Components and Game Services.
We also got to know about controlling Sound, display modes and keyboard controls. Dealing with File input/input and mouse was also a part of the learning process so now we were familiar with that also.

Then we began the main programming of our game specific  menu but by following the reference as mentioned above we were facing memory issues as every menu screen was added as a game Component which consumed some space in memory and the code would get more and more complex as the number of menu screens would increase. So now we had to think of a very simple way to develop and handle menu because if menu itself would be so complex then mounting the whole game would lead severe memory issues.

We took the approach of a controller which controls the rendering and hiding of menu screen and passing controls to respective screen. The only game component added was the controller which when required to display a screen, would load its contents on run time and would display the screen. This reduced a lot of memory overload as only the visible contents were loaded in game and others are not. This also made our code very simple as in from only a single class – the class of the controller we could manage all the game screens.

Having a simple skeleton ready for the menu, adding the different functionality was not a major task as due to prior knowledge of the audio, display, mouse etc, it was just like fixing the spare parts of the motor engine in proper place. This reduced the development time and effort. Now we will move on to developing the first level of the game.