Andrew Russell

Brisbane, Australia

andrewrussell.net

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)
Mar
15
awarded Yearling
Mar
1
awarded Famous Question
Feb
8
comment How do I create a player movement system in Farseer?
@JensB I can't really add any more than what is explained in the linked video. I determined the ground height below the player, I determined whether I should snap to the ground based on that distance (and whether jumping, etc), and then, if a snap was required, I'm pretty sure I simply directly set the object's position.
Feb
3
awarded Informed
Feb
3
awarded Generalist
Jan
14
awarded Enlightened
Jan
14
awarded Nice Answer
Jan
12
awarded Nice Question
Dec
29
comment How to instance a C# class in UNmanaged memory? (Possible?)
@sebas Yeah, I think this approach is "fun only". Aside from the obvious safety issues, I think it is a dead-end. For the serialization case, as soon as you want to do something like write to disk, send across the network, add versioning, etc, etc - you have nowhere to go. Whereas a serializer that simply does an object walk, you have room to add those things. Definitely worth the performance hit to leave those options open.
Dec
29
comment How to instance a C# class in UNmanaged memory? (Possible?)
@sebas This question isn't really about avoiding allocations or GC. This is all about avoiding serialization costs for memory-only serialization (a fairly narrow problem domain, and ultimately I ended up simply writing a very fast serializer). For avoiding GC, there are much simpler approaches - largely involving pre-allocation and maybe pooling.
Dec
9
comment Making game totally from scratch
Re: "it's impossible" -- someone had to write those libraries. So obviously it's not impossible.
Dec
9
answered Making game totally from scratch
Dec
8
revised What are the cons of using DrawableGameComponent for every instance of a game object?
edited body
Dec
8
comment What are the cons of using DrawableGameComponent for every instance of a game object?
I have deigned to post another answer that will hopefully fully illustrate my point. I am keeping the old one as-is for historical reasons. I am a little miffed about having been nerd-sniped. Hopefully this is the last time I have to touch this pernicious subject.
Dec
8
answered What are the cons of using DrawableGameComponent for every instance of a game object?
Dec
8
comment What are the cons of using DrawableGameComponent for every instance of a game object?
If anyone is interested in questioning the legitimacy of my answer on the basis of upvotes: while it is true that (GDSE being aflush with aforementioned novices) VeraShackle's answer has managed to acquire a couple more upvotes than mine in recent years, don't forget that I have thousands more upvotes network-wide, largely on XNA. I have implemented the XNA API on multiple platforms. And I am a professional game developer using XNA. The pedigree of my answer is impeccable.
Dec
8
comment What are the cons of using DrawableGameComponent for every instance of a game object?
DrawableGameComponent is part of the core XNA API (again: mostly for historical reasons). Novice programmers use it because it is "there" and it "works" and they don't know any better. They see my answer telling them they are "wrong" and -- due to the nature of human psychology -- reject that and pick the other "side". Which happens to be VeraShackle's argumentative non-answer; which happened to pick up momentum because I didn't call it out immediately (see those comments). I feel that my eventual rebuttal there remains sufficient.
Dec
8
comment What are the cons of using DrawableGameComponent for every instance of a game object?
I can condense my answer here as follows: "Using DrawableGameComponent locks you into a single set of method signatures and a specific retained data model. These are typically the wrong choice initially, and the lock-in significantly hinders the evolution of the code the future." But let me tell you what is happening here...
Nov
10
awarded Caucus
Oct
4
comment Clean-up by downvoting? A ridiculous user experience
@gnat Those seem like reasonable responses where (A) the user is concerned about preserving rep, and (B) the downvotes are occurring naturally, based on the post's content. But neither of those is the case here.
1 2 3 4 5