Occasional Gamer

XNA development blog of Elbert Perez

Recent comments

Authors

Disclaimer

The opinions expressed herein are my own personal opinions and do not represent my employer's view in anyway.

© Copyright 2010

Neo Terra is being ported over to Windows Phone 7

My real time strategy game is being ported to Windows Phone 7. I have already accomplished the framework to support basic gameplay. Now work will begin to actually make it into a shippable game for Windows Phone 7 platform. The game will support multi touch, different levels of AI opponents, a campaign mode, as well as a skirmish mode. Here is a video of the current build running against the CTP Windows Phone 7 Emulator.

 


Posted by Elbert on Tuesday, March 30, 2010 2:05 AM
Permalink |

5 Tips to make your 2D XNA game faster

Hello everybody! (in a fake Simpsons Doctor voice)

I guess it is time for me to share some nuggets of wisdom about 2d game development in XNA. I'm saying 2D because I primarily work with 2D games, and going into 3D goes through a whole new set of tips. Although I am sure some of these can apply to alot of 3D based games as well. 

So here goes the tips!


1. Simplify your particles. I know this might sound stupid, but most 2D games don't need 1000 particles swimming around the screen, this effect can be done with just 1 sprite. Have it scale, alpha, and rotate to achieve around 90% of the effect with just 1 draw call! I really don't see a need for complicated particle systems because the user  usually won't perceive this as just 1 sprite being scaled. Hopefully the user is too busy enjoying your game to notice that you cheated and only have 1 particle displaying instead of 1000.

2. Pool your objects! Nothing drags a game slower than having to load content each time you want to spawn a enemy. This is all fine and dandy on the PC because of the sophisticated Garbage Collection the full .net CLR has. Pooling can be a pain in the butt if you have multiple objects not residing in the same inheritance hierarchy that means creating even more objects! 

3. Keep it simple. The less you have to call in your update functions the faster your game runs. Remember players will probably not notice very subtle and complex interactions in your game. So if you program your game keeping in mind what the player actually perceives then most of the time it will come out simpler.

4. Preload all your content if you can. Hitting the harddrive in the middle of a gaming session to load up a texture is generally a bad idea. So you probably want to load up your sounds, and textures at the loading level so you never hit the hard drive.

5. Test early, and test often on your target platform. Since the PC version of the CLR has better performance than the mobile and xbox versions it is really important that you deploy to those target platforms and check for performance issues. Better to catch them early than late in the game where it might seriously threaten your game shipping in time.

That is what I learned from working on the Xbox 360 and Windows Phone 7.!

 


Posted by Elbert on Monday, March 29, 2010 1:20 PM
Permalink |

CharZero now has support for Farseer Physics

I've recently ported over Farseer Physics to work with CharZero Framework on the Windows Phone 7 emulator. I also have added support for 2d animations, and particles. 

 


Categories: X List | CharZero
Posted by Elbert on Thursday, March 25, 2010 1:06 AM
Permalink |

Started work on the CharZero Framework for Windows Phone 7

I've been using the GumDrop framework for Xbox and PC based XNA games. However this does not lend well to the Windows Phone 7 environment. Now I am currently working on my 2nd gen framework called CharZero. This will feature most of what I had in GumDrop like object pooling, object management, etc ... But optimized for Windows Phone 7. Here is a current demo of it running.

 


Categories: Windows Phone 7
Posted by Elbert on Wednesday, March 24, 2010 1:09 AM
Permalink |

The value of user testing XNA games

I know that the indie scene on XNA is fairly new but that does not mean we need to forget how important user testing is on our games. We as developers often fall into the trap that if it feels good to us then other people will love the game. However this is a misguided form of thinking as we have intimate knowledge of the inner workings of our games. All the subtle rules and interactions that we know about most likely does not translate well in the eyes of a new user. So I just want to call out that each XNA developer should:

 

  1. Get as many friends/family to try out the game in it's different phases/milestones. The higher the frequency the better
  2. Test on the target platform. PC and Xbox have different user experiences and with WP7 coming out the need to test on mobile devices is needed too
  3. Make sure the people who play your game are familiar as well as unfamiliar with the genre. The different view points from each of these groups are really important in determining if your ideas/systems are being perceived as you intended

 


Posted by Elbert on Wednesday, March 17, 2010 12:49 PM
Permalink |

Active Movement System for Scribble Defense

I decided to give the game's philiosphy a name. That is the Active Movement System, with this philosophy the player should never sit idle for long periods of time waiting for things to happen in a tower defense game. The player's direct involvement is crucial to winning the game. Having the player dynamically upgrade and pick up money are core components to the game. Also having certain nodes be movable adds another dimension to a already crowded tower defense genre.

 


Posted by Elbert on Tuesday, March 16, 2010 1:37 AM
Permalink |

GDC Day 2 and Start of Day 3

GDC Day 2 started with more tutorials and summits. I attended the Microsoft Developer Days as they talked about DX11 and Windows Phone 7. Microsoft demonstrated how easy it was to create a quick accelerometer enabled game. It used a windows logo that reacted to tilting and was created in around 5 minutes. It showed the trivial amount of work needed to get something on the screen, granted that it was Michael Klutcher (Dev lead for XNA) who made the program. The most frustrating part of it was the limited amount of information they were allowed to tell us because they had to wait for MIX10 next week. Even the developers I talked to were frustrated that they could not reveal anything to us during GDC. 

GDC Day 3 kicks off the start of the main conference, this is where the madness begins. I expect for things to get this sign in front of them :)

 

 


Tags: ,
Categories: Business of Games
Posted by Elbert on Thursday, March 11, 2010 10:41 AM
Permalink |

First day report on GDC 2010

The first day of GDC concluded with a very interesting trend. I have seen the social game tutorials and summits fill up, with around 400 people listening to industry leaders talk ab out social games. That is is a big change from the last GDC where there were social games summits but nothing quite this big. Also I have been able to talk to someone from the Microsoft lobby who explained that Silverlight and XNA will initially not mixable in the same mobile 7 application. Today I will be doing the Microsoft Developer Days tutorial and hopefully learn alot about XNA 4.0 and how it will work across all three platforms.

 

It's a me Wario! 

Posted by Elbert on Wednesday, March 10, 2010 10:39 AM
Permalink |

Scribble Defense @ GDC

I will be demoing Scribble Defense during GDC, but for those who won't be at GDC to see the game I posted up a video of the Build that I will be showing off. Here are the following changes since the last video:

  1. Added tower placement UI, the towers are not hard coded to specific keys/buttons anymore and now are handled through the new UI
  2. Added support for up to 3 separate creep paths. Creeps can come from all over the place! :)
  3. Added a Area of Effect Tower that can harm all creeps within its range. Good for whittling down enemy health en masse
  4. More tower/creep specific animations
  5. Added support for high scores

 


Posted by Elbert on Monday, March 08, 2010 12:46 AM
Permalink |

Introducing Scribble Defense

After weeks of trying to find a name for my new tower defense game I have settled for the name Scribble Defense. I chose this name because the game reminds me of scribbles I made when I was younger. Mixing contrasting white lines on a black background, as well as having colorful towers to accentuate and add colors to the game.

Currently I added some new concepts to the game. First of all the game now supports 2 player co-op. Having two players in the game will increase the challenge level to account for the added player. Also I have added a money drop system, money no longer automatically add to the player's bank, but has to be picked up by either player to be added to the bank. This makes the game more dynamic as the player has to constantly move around in order to get money he needs to buy more towers.

 


Posted by Elbert on Friday, March 05, 2010 2:12 AM
Permalink |