[.net] 2D Prototyping Options

Started by
6 comments, last by Ezbez 15 years, 3 months ago
I'm prototyping a 2D multiplayer top-down shooter. I have a prototype client up and running in WPF. However, at least one random blog says the 2D performance just isn't there. Now that it's time to more forward from static colored boxes to animated sprites and particle effects, I'm evaluating other options. XNA/SlimDX would give plenty of performance, of course. However, this is a client-server game, all the fun/hard stuff is on the server. I'm trying to get the gameplay up and running ASAP so I can start iterating on it. Going down to this level would slow things down a lot (for a hobbiest project). None of the XNA GUI libraries I've peeked at look all that robust. I could port over the UI parts of one of the Starter Kits, but still... Torque X 2D? The demo won't install for VS Pro, and none of the public tutorials deal with the GUI. Does anyone who's used this think it would be a good fit? I don't need the Builder or anything (the world's streamed from the server after all). So, Does straight WPF have the performance I need? (Think Crimsonland graphics). What's the state of WPF/D3D integration? I like the bleeding edge, but... Can Torque X or another library help get me up and running quickly? (Particularly the GUI code). Or should I bite the bullet and set up an architecture in XNA/SlimDX? Know any good GUI libraries then? I just wanna spawn animated sprites with cool particle effects and hooks into say Farseer and an event-based GUI my web designer friend can make look real pretty. :D EDIT: And if XNA/SlimDX is the best option...then why not just write the client in C, with like HGE and WinSock, and greatly increase my target audience? Hmm... [Edited by - CadetUmfer on January 21, 2009 11:25:51 AM]
Anthony Umfer
Advertisement
exactly how much 2D graphics are we talking here? Are we talking about Space Invaders? Galaga? Ikaruga? What level of detail are we talking about? Because if it's not much more than scrolling backgrounds and ~50 sprites on screen at once, then WPF will probably be fine.

edit: never heard of Crimsonland before. You might be able to do something like that with WPF or GDI+. Just give it a try and see what happens.

[Formerly "capn_midnight". See some of my projects. Find me on twitter tumblr G+ Github.]

Quote:
EDIT: And if XNA/SlimDX is the best option...then why not just write the client in C, with like HGE and WinSock, and greatly increase my target audience? Hmm...

I do not understand this as you say it is a prototype. Prototypes are about trying ideas out quickly and blowing them away if you do not like them, so ideally a pre made engine would be best and who is your audience?

Common Game Prototyping Pitfalls
@dmail: I just meant that if I'm going to put in the work of writing a 2D engine and GUI in XNA/SlimDX, it wouldn't be THAT much more work to just write it with ID3DXSprite/Font or glut/devil/freetype.

I think I'm leaning toward what capn_midnight said. The target audience that can play an XNA game (dx9+) can probably handle the effects I need in WPF. I'd like the graphics to be able to handle ~100 animated sprites over a tiled background with particle effects for combat. Suppose I can substitute static animations for "real" particle effects though.

If prototyping goes well, I'll likely want the client playable on dx8-class hardware on spyware-infested eMachines, so XNA would be out anyway.

Thanks guys. I know this was more of an "I'm thinking out loud, nudge me in the right direction"-type thread.

Here's the level of graphics I'm talking about. Anyone have any good resources for doing graphically-intense WPF apps?
Crimsonland Graphics
Anthony Umfer
Quote:Original post by CadetUmfer
@dmail: I just meant that if I'm going to put in the work of writing a 2D engine and GUI in XNA/SlimDX, it wouldn't be THAT much more work to just write it with ID3DXSprite/Font or glut/devil/freetype.

I think I'm leaning toward what capn_midnight said. The target audience that can play an XNA game (dx9+) can probably handle the effects I need in WPF. I'd like the graphics to be able to handle ~100 animated sprites over a tiled background with particle effects for combat. Suppose I can substitute static animations for "real" particle effects though.

If prototyping goes well, I'll likely want the client playable on dx8-class hardware on spyware-infested eMachines, so XNA would be out anyway.

Thanks guys. I know this was more of an "I'm thinking out loud, nudge me in the right direction"-type thread.

Here's the level of graphics I'm talking about:
Crimsonland Graphics


This is details which has nothing to do with prototyping.
Please read the link.
Quote:
Solution - Use an existing engine: My recommendation is to use off the shelf or preexisting engines that have most major systems in place. Ideally, you can work at a higher level by manipulating pre-existing blocks of functionality and focus on roughing out the game mechanics.
...
Solution – Set strict time limits on architectural work: The goal is to create a prototype that can be critiqued, trashed and thrown away. The goal is not to create a finished product. There is a time and a place for spending copious time on your architecture and the prototyping phase is not it

etc etc
I very much agree with the article you posted, but I don't understand exactly what you're suggesting. I'm looking for the quickest way to get client behaviors up and running. Until now, WPF has been great. However, based on what I've been reading, I have some concerns about whether it's up to the task, now that I want to give the user more graphical feedback.

So, I'm trying to find any resources/experiences people have doing games or complex 2D effects in WPF, or whether I should start working with another graphics library. The rest of the post was just me rambling on about pros/cons to alternatives.
Anthony Umfer
remember.. you can very easily embed an XNA window into a Windows Form.. so you can do all graphics rendering & effects in this 'XNA Window'... then still have all your WinForms GUI controls used throughout the rest of the app.. this is a quick & easy way to avoid using a true XNA GUI.. and seems like your best option.. Check out the XNA website they have WinForms samples there, with a 'XNA Window' control that you can drop into your app...
FTA, my 2D futuristic action MMORPG
SFML has a .NET version. I, at least, think it's pretty fast to develop with and easy to learn. It would certainly have the performance required. But using what you know will probably get you the best results in the shortest time.

P.S. Crimsonland rocks.

This topic is closed to new replies.

Advertisement