18,834 reputation
53788
bio website andrewrussell.net
location Brisbane, Australia
age
visits member for 4 years, 9 months
seen 7 hours ago

Hi! I am Andrew Russell. I'm an indie game developer from Australia. I'm a Microsoft MVP for XNA/DirectX.

Visit my blog at AndrewRussell.net or follow me on Twitter @_AndrewRussell.


I am currently lead engine developer for River City Ransom: Underground.

My other game dev project - currently on hold - is Stick Ninjas, a 2D multiplayer platformer-shooter. There is a weekly DevLog video series about it, which you can watch on YouTube.

My previous projects include:

  • ExEn, a cross-platform port of XNA that runs on iOS, Android and Silverlight
  • Light Blocks: cross-platform falling-block game to demonstrate ExEn
  • Dark: A 2D physics-platformer with fancy lighting effects (PC and Xbox 360)

Apr
8
comment Handle a canvas in a windows form application
@Riptide This answer is for a "Windows Forms Application".
Feb
5
comment How to correctly enable anti aliasing in XNA?
Also note that the default for MultiSampleAntiAlias is true, and it is true for the default RasterizerState for SpriteBatch.Begin. So in most circumstances you should not need to worry about it.
Feb
5
comment How to correctly enable anti aliasing in XNA?
See this answer about when to use ApplyChanges.
Jan
23
comment Drawing image with an angle
@Shiro DynamicVertexBuffer and VertexBuffer should behave the same, with one exception: DynamicVertexBuffer requires that you recreate the buffer on its ContentLost event (or when IsContentLost is true, or simply recreate it every frame before use). DynamicVertexBuffer performs better if you are changing its contents regularly. (SpriteBatch, for example, is built on top of a DynamicVertexBuffer.)
Jan
22
comment Drawing image with an angle
@Shiro Nothing great. Maybe try examining the code for roundline.codeplex.com - I think that uses it.
Jan
20
comment Drawing image with an angle
@Shiro Yes. For a particle system calling Begin for each particle is going to be horrible for performance. In your particular case you probably want to use a DynamicVertexBuffer to construct exactly the data you want (a full explanation is beyond the scope of a commment).
Jan
11
comment XNA texture garbage collection
It's worth pointing out that ContentManager is already basically a dictionary of strings to textures (and other resources).
Jan
6
comment XNA/Monogame inverting a BoundingBox
@SethBattin The subtlety is that the possible results of an intersection test are ternary (disjoint/intersects/contains), not binary. So applying a binary not operation might not give the desired result.
Jan
1
comment MonoGame SetRenderTarget is wiping the backbuffer
@James No worries. Regarding your second comment there: You have to set PreserveContents on the backbuffer to avoid the clear of the backbuffer during SetRenderTarget(null). The code you have there only avoids the clear of the render target when you call SetRenderTarget(renderTarget).
Oct
20
comment How to move vertices of matrix in order to cast a 2d shadow?
You should probably post a picture that shows what you are trying to achieve. "Affine" is a category of transformations (including things like rotation, translation), whereas "skew" is a specific type of affine transformation. See this answer for a discussion of how to create a skew matrix.
Oct
19
comment Why does GameComponent have an Initialize() method?
I'm not sure I fully understand the question. When GraphicsDeviceManager(this) runs, where this is a reference to Game, it inserts itself into the given Game.Services as both IGraphicsDeviceService and IGraphicsDeviceManager. This is how Game.Run is able to find the GDM to set up the GraphicsDevice. If you were so inclined, you could provide your own implementations of those two interfaces, and Game would work as expected. You could even skip Game all together and initialize GraphicsDevice yourself.
Oct
15
comment Incrase framerate in XNA
@Subsequent See this answer for how GraphicsDeviceManager works: stackoverflow.com/a/11287316/165500 (it's about resolution, but it applies to all settings, including vsync).
Oct
13
comment Emit light from items
Maybe a post a mock-up screenshot that shows what kind of effect you want to achieve?
Oct
6
comment Is it bad practice to add GameComponents and DrawableGameComponents outside of the main initialization method?
There is - what I would describe as - a bug in XNA, where the initialization mode switch-over does not happen until after Initialize returns. See my edit.
Sep
22
comment Processing periodical operations on the database
Here's a really old question that asks almost the same thing.
Sep
17
comment Can you offset the horizontal flip in SpriteEffects XNA?
Also it's best to use the parameters to Draw, rather than setting a matrix on Begin, for this particular case.
Sep
17
comment Can you offset the horizontal flip in SpriteEffects XNA?
If you use a negative scale, you also need to render backfaces (use RasterizerState.CullNone), otherwise you'll see nothing.
Jun
23
comment Loading a stream/asset on Android MonoGame without ContentManager
@craftworkgames Yep - that makes sense.
Jun
21
comment Is it possible to change the position of a Farseer joint tie point?
Look at the arguments for CreateRevoluteJoint. Like... really look. Step into the Farseer source code and see what they do.
Jun
19
comment How can I move bodies in Farseer, using touch input?
@Homer_Simpson Well, debug it!