Results 1 to 13 of 13

Thread: Unity or XNA for my hobby development project

  1. #1
    Social Worker
    Join Date
    Feb 2005
    Location
    Duvall, WA
    Posts
    4,318

    Unity or XNA for my hobby development project

    So being a tools programmer in the game industry is fun, but I'm a little removed from the magic, for better or worse, and I'm starting to feel the itch to program a small hobby game on the side in my copious amounts of non-existing spare time.

    I've narrowed it down to Unity or XNA, as C# is my chosen language. (Though I haven't completely written anything else off, I case someone knows of something I missed.)

    I'm shooting for a simple turn-based tactical game, which colors my choices a little further.

    Unity's Pros/Cons
    +In game editor
    +GUI editor built in
    +my work uses Unity, so it could come in handy for work
    +lots of built-in stuff, Physics, Particle Editor -- but these aren't necessary for the game, only if i ever get to the point where i want to make the game pretty would I want to ragdoll a character on death, or whatever.

    -Expensive for a pro license (on sale now for $1200?)
    -missing features w/o a pro license (like no render to texture, which I planned on using, and some basic geometry call functionality is missing)
    -its not actually C#, its mono. (Unity 3 has better support for C# but isn't available yet)

    XNA Pro/Cons
    +true C#
    +cheap pro dev license ($100)
    +xbox development for pro license
    +more familiar with the dev environment (Visual Studio)
    +possible to put upon the 360's indie game listings (pipe dream really)

    - less built-in features.
    - less support in general

    I have more experience with XNA overall, just from past tooling around with it, so that's what I'm currently leaning towards. I think if i was going for a more modern game style, Unity might be better, as it seems like it would be easier to crank out a 3d platformer or FPS with it, but for TBS, I'm not sure its worth the effort, and the dev license price difference is huge, if unity had full coding features I might be more inclined to go that way or if the license was in that more throwaway dollar value.

    But I'm curious what other people may think, and what experiences they've had with the two dev platforms.

  2. #2
    New Romantic
    Join Date
    May 2006
    Location
    San Diego, CA
    Posts
    9,119
    I've used both and would recommend going straight C#/XNA for a TBS game if you're already a programmer and doing this as a hobby anyway.

    Unity is an awesome product for what it is but it is very opinionated on how everything is structured which is awesome if you're a designer with a bit of programming experience and just want to tool around until something like a game pops out but it can be rather constricting if you're a programmer with your own opinionated views on how things should be structured.

    Either would be fine, so I'm not really anti-Unity here, but in your situation I'd just go with straight C#/XNA.

  3. #3
    Social Worker
    Join Date
    Feb 2005
    Location
    Duvall, WA
    Posts
    4,318
    Yeah, Unity already drove me nuts with, "Everything must be a game object, and ALL game objects MUST have a transform."

    I figure worse comes to worse, I could try porting it over once I get anywhere, TBS game logic would be mostly platform independent. But I also tend to have the bad habit of getting distracted by other things, so it may all be moot if I don't make any progress.

  4. #4
    Neo Acoustic
    Join Date
    Apr 2006
    Posts
    1,682
    What about using FlashDevelop and one of the popular Flash game frameworks like Flixel or Flashpunk? Means you can deploy online, plus you can author UI and stuff in Flash rather than rolling your own GUI library.

    You could even earn some bucks by selling licenses to the game from somewhere like Flashgamelicense.com, which I've got good experience with so far.

  5. #5
    Account closed New Romantic
    Join Date
    Sep 2007
    Location
    Canton, GA _______ XBL - Adree1 PSN - Adree_1 @adreeadree
    Posts
    5,255
    Flash is on it's way out. Unity is just a pig. So of the choices you present, XNA.

  6. #6
    How To Go
    Join Date
    Nov 2006
    Posts
    14,135
    What's replacing Flash?

  7. #7
    Neo Acoustic
    Join Date
    Apr 2006
    Posts
    1,682
    Apparently HTML5, in about a decade or so. No way Flash web apps and games are going away until there's a replacement for the distribution infrastructure (Flash game portals), all interest in current social games die out and there's a superior set of tools and libraries available that consigns Flash to the dustbin of history.

    That's not happening until the most popular browsers have very close to equal support for HTML5. As of now, Canvas isn't really a realistic alternative yet. Might be some day, but with hardware accelerated Flash on phones and tablets, I don't see it happening any time soon. Apparently, there's like 800 million Flash users out there, and you can rely on Flash 10 to work the way it's supposed to work even if your user is on IE6. That's quite handy when you're doing social or casual games.

  8. #8
    Account closed World's End Supernova
    Join Date
    Apr 2003
    Location
    Toronto, Ontario
    Posts
    15,264
    XNA may have less bells and whistles out of the box, but there's plenty of samples and documentation. Plus you can use the worlds best dev tools for free as part of it. Hooray!

    Plus if you are a tools programmer already, whipping up your own shit to tack on with windows forms or WPF should be a breeze.

    Frankly, I've been leery of using licensed engines. I've paid for two in the past ten years, and both times got fucked. The first when the company decided that the engine was no longer available for use (yay?) and the second when all the promised upcoming features ended up being released as a different license on a different version number.

    XNA has MS behind it. Nuff said, really.

  9. #9
    Spinning Toe
    Join Date
    Nov 2006
    Posts
    553
    Just be aware that XNA has a lot of holes in it, things like text input and menus and other GUI widgets. At least it did when I was fiddling around with it around 2.0/3.0. I ended up going from Java/Java3D to XNA to finally settling on Python/PyGame/Panda. You might look into the Python stuff - it's a great language that is very easy to pick up. I don't think of Unity when I think turn based tactical game.

  10. #10
    Goodluck!!
    Join Date
    Jun 2006
    Location
    Phoenix, AZ
    Posts
    136
    Unity has been awesome for us. If you really want to, you can create objects that are completely decoupled from their gameobject/component paradigm (although you probably don't want to do this).

    If you want to be a game engine programmer, avoid Unity. If you want to make games it's a great choice ;)

  11. #11
    Social Worker
    Join Date
    Mar 2006
    Location
    Raleigh
    Posts
    2,192
    With regards to C# and Unity or XNA... I've done a moderate amount of programming in ruby, python, and futzing around in processing, and I feel pretty comfortable with OOP concepts. I won't pretend to be a good programmer, but I have fun messing around with it as a hobby. I don't know any C#, however. I'd like to try to make some simple games.

    Don't both Unity and XNA use C# for scripting?

    What resources would you suggest for learning C# and either Unity or XNA?

  12. #12
    World's End Supernova
    Join Date
    Jun 2002
    Location
    Aurora
    Posts
    15,929
    Unity can use C# and other .NET languages for scripting. XNA uses C# for everything, not just scripting -- it's a regular .NET library.

    I haven't used either, but you can find XNA resources at Microsoft's new App Hub, and the first Google hit showed a pretty nice tutorials collection.

  13. #13
    World's End Supernova
    Join Date
    Jun 2002
    Location
    Aurora
    Posts
    15,929
    Quote Originally Posted by Khoram View Post
    Just be aware that XNA has a lot of holes in it, things like text input and menus and other GUI widgets.
    For my own hobby projects (written in C# and targeting PC only) I'm moving to SlimDX. The SlimDX library wraps DirectX so you can issue D3D drawing commands in C#. And the new WPF D3DImage class in .NET 3.5+ allows hosting a D3D9 surface in a regular WPF Image control, so you can superimpose WPF widgets on that surface -- that takes care of text and GUI controls. Pretty neat combination, although I'll have to learn some Direct3D to use it properly.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •