Sorry your browser is not supported!

You are using an outdated browser that does not support modern web technologies, in order to use this site please update to a new browser.

Browsers supported include Chrome, FireFox, Safari, Opera, Internet Explorer 10+ or Microsoft Edge.

Geek Culture / Development Options

Author
Message
Oolite
19
Years of Service
User Offline
Joined: 28th Sep 2005
Location: Middle of the West
Posted: 8th May 2010 06:32
Before I get started, this is not a 'i'm leaving DBPro for another engine bcuz it sux' thread, i still use DBPro for rapid prototyping of game mechanics and my project management tools(that i've become so reliant of lately).

I've been using Unreal for a while now for my big, dream project. As much as I love the flexibility of Uscript and the ease of use in the editor itself, I realise I will be quite limited if it does actually take off. (I've got to keep my options open, eh?)
UDK itself has limits on selling the final product and the engine has become a bit of a pain as of late, due to the lack of documentation. It's proving time consuming to be trawling through existing code, just to find something that works in a similar way to what I want to achieve.
So i've been browsing around looking for different languages or editors to switch my project into.
I've come up with two options, one is XNA.
I have a years trial with the XNA developers community due to Microsoft's dreamspark program, which allows me to create games and test them out on my 360, which in itself is pretty cool. The language is nice, i've dabbled around with C# in the past and recently gotten back into it, so it feels comfortable for me. It also gives me the opportunity to get it onto XBLA in the future.

I've heard many things about Microsoft regarding the content on XBL, some good, some bad. Both times though, I have heard it can be quite difficult to actually get it there in the first place.
If anyone has any experience, or knows anyone that has and can enlighten me I'd be quite grateful.
The next option is Unity, I don't know what the limitations are on the free version, regarding selling, but the pricing is a lot more fair, something I'd be willing to purchase for this project if I get used to the program. It also supports c# so I can jump into programming relatively quickly

I'm trying to weigh out the pros and cons of both of my choices.
The way I see it, Unity would generally be easier to use, but limit my development to the PC, whereas XNA would give me the option of developing for the Xbox.
I do believe the only reason i'm concentrating on XNA is purely for allowing me to develop for the xbox, i think it would be a much better way of getting my game out there than searching for my own PC publishing deals, or self publishing my game.


Needless to say I will be testing out both of these extensively to see what is best for me, doing quite a bit of research on both aswell.

Any opinions on either product, or what you think might be best in the long run, especially XBLA and dealing with Microsoft would be nice.

Cheers

Nilloc
15
Years of Service
User Offline
Joined: 14th Nov 2009
Location:
Posted: 8th May 2010 06:40
you could use source sdk also its great and i love it you can edit the scripts build levels test it ect. i love it

Wat a signature?
Interplanetary Funk
15
Years of Service
User Offline
Joined: 19th Apr 2010
Location: Ipswich, United Kingdom
Posted: 8th May 2010 07:21
Heard of torque? It supports multiple platforms (you need a license for each one though) and is apparently quite decent.
BearCDP
15
Years of Service
User Offline
Joined: 7th Sep 2009
Location: NYC
Posted: 8th May 2010 08:05
No me gusta Torque, So much money now, and using the engine has always felt like you were hacking one game into another, like a really awkward mod. Maybe they've improved it recently, but v1.4 left a bad taste in my mouth.

I'm working on an XNA project right now, and from what I've read the only way to move from XBLA to XBLIG is to win some recognition in game festivals like Dream Build Play, IGF, etc. then have Microsoft or another company show interest in putting your game on XBLA. XBLIG is also a big race to see if your game can break top 20, since that's how many games it shows per page, and very few people look past the first page unless they're making games themselves. Even the guy who developed "1 M4D3 4 G4M3 W17H Z0MB135 1N 17" didn't get an XBLA deal until he'd won awards for The Dishwasher: Dead Samurai.

That being said though, XNA is just so awesome to work in as a framework, so all the competition is worth it to me. C# has won me over.


I downloaded Unity, but haven't used it much. The main thing that bugs me is that you have to pay for a pro license to get a way to implement version control. I usually work with at least one other person and make heavy use of my home server and the SVN repos I get from my webhost, so that's the main dealbreaker for me. If you don't use version control of course, it's a non-issue.

Another issue with Unity is market penetration if you want to make it playable in a browser. Not many people have installed the Unity plugin, and the Unity player doesn't work in Chrome for me. BUT, while you may not get the option of releasing to a console like XNA, it allows you to release on OS X, which is a market that's hard to ignore for indies.


Just my own thoughts and things I've read. Are you hoping to monetize your games?

Check out this WIP flash game from the Global Game Jam!
Darth Kiwi
20
Years of Service
User Offline
Joined: 7th Jan 2005
Location: On the brink of insanity.
Posted: 8th May 2010 13:38
I know that Introversion (http://www.introversion.co.uk) only managed to get Microsoft to support Darwinia for XBL after they'd won a slew of IGF awards for it. Once they had Microsoft on their side, however, Microsoft continued to support the porting of the game (it was never suggested that they'd pull out and leave introversion hanging), but they did have very high quality standards which had to be met by the game before it was released.

Secretary of Unknowable Knowledge for the Rock/Dink administration '08
NickH
17
Years of Service
User Offline
Joined: 19th May 2008
Location: Nova Prospekt, North Yorks, UK
Posted: 8th May 2010 13:48 Edited at: 8th May 2010 19:11
All we need is DarkBASIC pro 5 times more efficient, bug-free, a command overhaul, support for DX10 + DX11 and hyperthreading

I've considered other development packages too, but I've spent money on DBpro and can't go much further than more plugins for it right now.

EDIT - And bought Lightwave
David R
21
Years of Service
User Offline
Joined: 9th Sep 2003
Location: 3.14
Posted: 8th May 2010 15:03 Edited at: 8th May 2010 15:04
Not relevant to XNA or XBLA, but I recently had this toolkit dilema too. Building stuff from scratch and using Irr/Ogre w/ C++ just wasn't cutting it in terms of development time. It was interesting but supporting multiple platforms (even with a platform agnostic 3D API) is pretty tricky and quite tedious.

I went through most of the stuff you've mentioned: XNA in particular. Personally I couldn't get past the fact that XNA is glued to Windows/DX. There's a Mono runtime for XNA in the works but it isn't mature.

I ended up settling on Java.

It seems a weird choice: Most people's instant reaction is "LUL ITZ SLOW" but so far I haven't managed to bog it down while using GL. I even did some pretty retarded collision systems as tests (with nested multi-maps) and it still didn't slow down noticeably

But yeah, Java is certainly my weapon of choice at the moment. Closer to C++ than C# (I personally think so at least - C# changes some keywords for the sake of it) cross-platform and some really good mature dev. tools (NetBeans + JUnit is amazing) that are also cross-platform

Obviously it's useless for consoles / anything that disallows VMs. But I suppose my actual point is to try lots and lots of different tools, because some languages/toolkits which you don't immediately think of as being good for games, can actually be very very good. Be prepared to compromise though

09-f9-11-02-9d-74-e3-5b-d8-41-56-c5-63-56-88-c0
draknir_
18
Years of Service
User Offline
Joined: 19th Oct 2006
Location: Netherlands
Posted: 8th May 2010 15:15
XNA and Unity are both great, but they differ a lot. Here are my observations from personal experience:

XNA with C# gives you more flexibility and low end control over what you're making. There are metric f-loads of tutorials out there for every feature you could possibly want. Also, .NET offers a lot of windows libraries for even more options. On the flipside, you will have to write a lot of code. You may have to write your own dev-tools such as model viewer and level editor. Publishing an XNA game onto XBLA is very difficult. There is another channel for indie games (not sure what it's called) which doesn't have those strict Microsoft checks; but in all honesty, it gets very little attention.

Unity is a more streamlined development tool which is wonderful for quick prototyping (quicker than DBP in my opinion) and is much more artist friendly. The built in editor is powerful, and you won't have to bother with the implementation of basics like lighting and physics. Publishing options are fairly good, but no consoles. The main downside is that any project of significant size will become quite complex with many interlinking scripts. The code is harder to manage.

If you are looking for a serious development tool, I would personally choose C# with XNA. For a demo/proof-of-concept project I would pick Unity.
draknir_
18
Years of Service
User Offline
Joined: 19th Oct 2006
Location: Netherlands
Posted: 8th May 2010 15:18
@ David R:
I've recently also had my eye on Java + openGL, particularly after seeing this game: http://www.minecraft.net/

It's quite impressive. What kind of games are your developing in Java?
David R
21
Years of Service
User Offline
Joined: 9th Sep 2003
Location: 3.14
Posted: 8th May 2010 15:32 Edited at: 8th May 2010 15:32
Quote: " What kind of games are your developing in Java?"


Only really done a few tests so far. Did a millipede clone with full model/view/controller separation that worked quite nicely. (Millipede was also the first game I made in C so it was sort of a good way to test and compare)

I'm currently building up the base of a simple platformer/schmup type game.

2D only at the moment though. I've used some 3D in GL with it, but not enough to get a decisive 'speed judgement' out of it

09-f9-11-02-9d-74-e3-5b-d8-41-56-c5-63-56-88-c0
Oolite
19
Years of Service
User Offline
Joined: 28th Sep 2005
Location: Middle of the West
Posted: 8th May 2010 18:18
Nilloc: I haven't touched Source in years, another thing i didn't really mention was I wouldn't like my game labelled as a 'Total Conversion' or a 'Game mod'. Which is another reason i'm straying from Unreal.
BearCDP: It is my one concern with XNA that I may never actually get my game up onto XBLA or XBLIG. That being said, if i code both the PC and 360 settings into my program, i have the option of compiling it for use on the PC, but then the problem is how XNA works from a selling point on the PC. I agree with you on torque, exactly how it felt for me. Each moment with the program felt like a struggle, maybe it has improved lately but it's not going to get me rushing back into it.
While my dream project is really just for me, I can only hope it is good enough to actually sell. I just want to keep my options open if the situation does arise in the future and with UDK, my hands are tied.

Draknir_: I never thought of using both of them together, it would make sense seeing as i'd code in both programs using c#, which would make porting code to XNA a lot easier than if i prototype inside DBPro.
I've been looking at various engines in XNA to build my game upon, i've looked at OX and FlatRedBall at the moment, anyone have any suggestions as where to look? I like the editors included, something that allows easy manipulation of objects, doesn't have to be a full level editor, but something that will help when putting my levels together inside XNA. Has to be 3d though

Zotoaster
20
Years of Service
User Offline
Joined: 20th Dec 2004
Location: Scotland
Posted: 8th May 2010 21:03
I think anything that runs on a VM isn't entirely appropriate for game development. But if I had to choose between C# and Java, I would go with C#, since it supports stack objects (and thus doesn't have to garbage collect everything), and you can make native applications with it using NGEN.


When it comes right down to it, I wish there was something straight-forward enough but also flexible for C++. I like it's speed, and I like doing manual memory management. But there's the problem with cross-platformness, but that's not a huge problem mostly.

"everyone forgets a semi-colon sometimes." - Phaelax
David R
21
Years of Service
User Offline
Joined: 9th Sep 2003
Location: 3.14
Posted: 8th May 2010 21:13 Edited at: 8th May 2010 21:17
Quote: "But if I had to choose between C# and Java, I would go with C#, since it supports stack objects (and thus doesn't have to garbage collect everything), "


Java supports primitives which exist on a stack as well

EDIT: In either language though, any kind of declaration/definition uses memory, so literally everything is garbage collected in either case. The 'stack' in both of them is a syntactic difference (not explicitly having to build the instance)

Since they aren't references/pointers as per everything else, I suppose it could be said they aren't garbage collected in the same way. But they are still 'managed' like a garbage collected object

09-f9-11-02-9d-74-e3-5b-d8-41-56-c5-63-56-88-c0
General Jackson
User Banned
Posted: 8th May 2010 21:14
Go for Unity.
Download the free version and try it out.
You'll love it.

Zotoaster
20
Years of Service
User Offline
Joined: 20th Dec 2004
Location: Scotland
Posted: 8th May 2010 22:23
The difference is that garbage collection requires a separate algorithm to run under the program you're writing. Even if more of the garbage collection can happen in a separate thread, the actual collection part requires your application to pause.

At least when you manage your own memory, everything is deterministic and runs as part of your program.

As for Java's primitive types, that's fair enough, but I was mostly talking about aggregate types (anything really that would require some kind of allocation, in the heap or stack). C# has structs, which are like classes but objects are put on the stack, and are copied by value.

"everyone forgets a semi-colon sometimes." - Phaelax
David R
21
Years of Service
User Offline
Joined: 9th Sep 2003
Location: 3.14
Posted: 8th May 2010 23:13 Edited at: 8th May 2010 23:19
Quote: "The difference is that garbage collection requires a separate algorithm to run under the program you're writing. Even if more of the garbage collection can happen in a separate thread, the actual collection part requires your application to pause.
"


Memory alloc/dealloc is a blocking operation per thread in any language. I don't really see your point

Quote: "At least when you manage your own memory, everything is deterministic and runs as part of your program.
"


GC has absolutely zero effect on application's state because something is only garbage once it is completely inaccessible. GCing does not make the application any less deterministic than manual memory management (and in fact it will exhibit far more consistent behaviour because manual memory management is error prone and often poor)

09-f9-11-02-9d-74-e3-5b-d8-41-56-c5-63-56-88-c0
Zotoaster
20
Years of Service
User Offline
Joined: 20th Dec 2004
Location: Scotland
Posted: 8th May 2010 23:35 Edited at: 8th May 2010 23:37
Quote: "GC has absolutely zero effect on application's state because something is only garbage once it is completely inaccessible. GCing does not make the application any less deterministic than manual memory management (and in fact it will exhibit far more consistent behaviour because manual memory management is error prone and often poor)"


Sorry but almost all of that is false. The process of identifying garbage is often completely undeterministic (especially with tracing garbage collectors, such as mark-and-sweep and all it's variants, as used by Java, C#, and other such languages) are run at seemingly random times, such as when there is enough pressure on memory. The process of identifying garbage is then performed by working through the working set of memory, and, essentially, 'ticking' off all used memory (a very basic model). The 'unticked' objects are garbage, and can be reclaimed. You essentially get linear time to determine the garbage, and linear time to delete it. Of course, there are many variations to this for optimization, etc, but the fact remains: garbage collection is not deterministic, and it doesn't run at specific times.

"everyone forgets a semi-colon sometimes." - Phaelax
David R
21
Years of Service
User Offline
Joined: 9th Sep 2003
Location: 3.14
Posted: 8th May 2010 23:41 Edited at: 8th May 2010 23:46
Quote: "are run at seemingly random times,"


If you think the GC is running 'non-deterministically' (which is rubbish, it has an extremely strict set of parameters which control when and why it runs) run a profiler on it

There is no such thing as a non deterministic garbage collector

EDIT:
If you mean you cannot know when the GC will be invoked exactly (which is not the same as determinism what-so-ever - saying it's non deterministic implies it does not do the same thing given the same input per run) this is also partially incorrect

09-f9-11-02-9d-74-e3-5b-d8-41-56-c5-63-56-88-c0
Zotoaster
20
Years of Service
User Offline
Joined: 20th Dec 2004
Location: Scotland
Posted: 8th May 2010 23:47
There is no such thing as a non-deterministic... well... anything really.

My point is that it's not done when the programmer want it to be done most of the time (unless it's under some very specific circumstances), and, when it's done, it must still work through all (or, almost all) the memory your program is using. If you use manual memory management, you only work with a single piece of memory, which is faster for obvious reasons.


And by the way: http://en.wikipedia.org/wiki/Garbage_collection_(computer_science)#Determinism

"everyone forgets a semi-colon sometimes." - Phaelax
David R
21
Years of Service
User Offline
Joined: 9th Sep 2003
Location: 3.14
Posted: 9th May 2010 00:04 Edited at: 9th May 2010 00:14
Quote: "My point is that it's not done when the programmer want it to be done most of the time (unless it's under some very specific circumstances), and, when it's done, it must still work through all (or, almost all) the memory your program is using. If you use manual memory management, you only work with a single piece of memory, which is faster for obvious reasons."


Irrespective of 'determinism' (which IMHO is the wrong term for it - or at least it should be qualified with respect to time not just whether it behaves deterministically) I don't see why this is a problem. If you were manually managing memory and had a GC on top for some reason, the point at which the GC is invoked would obviously matter. But because in Java and C# et al. there is nothing 'bad' you can do that would kill your app due to GC timing, I don't see why its timing is any kind of disadvantage. It's not as if the GC is ever going to kill 'live' objects or leave valid references dangling/pointing at nothing.

Especially considering that (even with the comparison of scanning entire memory vs. small pieces) it is still very, very fast. I profiled a DB app recently that built 117,000 objects and left them dangling after pumping their respective fields into a table. The GC hit was about ~5ms.

EDIT:

Also, there is a special garbage collector for real time systems which is completely [time] deterministic. So that pretty much closes the book on that problem

09-f9-11-02-9d-74-e3-5b-d8-41-56-c5-63-56-88-c0
Zotoaster
20
Years of Service
User Offline
Joined: 20th Dec 2004
Location: Scotland
Posted: 9th May 2010 01:00
There are ways that the GC can actually pause the app for significant amounts of time. If you have many large, short-lived objects, this can cause slowdowns from time to time.

But I agree, timing isn't always a big deal, but the pauses are. For real time systems, they can become a problem.


Quote: "Also, there is a special garbage collector for real time systems which is completely [time] deterministic. So that pretty much closes the book on that problem"

I'd like to find out more about this actually. I've searched around for this kind of thing and I don't know of any.

"everyone forgets a semi-colon sometimes." - Phaelax
BearCDP
15
Years of Service
User Offline
Joined: 7th Sep 2009
Location: NYC
Posted: 9th May 2010 06:13
Quote: "BearCDP: It is my one concern with XNA that I may never actually get my game up onto XBLA or XBLIG."


You can always get your game up on XBLIG for anyone to download, it just needs to pass the "community test" where people play your game and check off if it has serious game-destroying bugs or not. If you browse the list you'll see that there are a lot of crap games out there ("massage software" which just vibrates the controller and displays a pretty picture for instance). So getting it on XBLIG is not the problem, the problem is how many people actually go looking through the XBLIG section.

Quote: "There are ways that the GC can actually pause the app for significant amounts of time. If you have many large, short-lived objects, this can cause slowdowns from time to time."


This is important. It's silly to argue about whether or not realtime GCs exist. We ran into this issue on the Xbox 360 today with XNA.

We had a dumb little prototype running with two player ships going around firing projectiles (which were just untextured ship models). The "bullets" disappear and thus are nulled out of the update array, after a few seconds, and thus were marked for garbage collection.

Unfortunately, we weren't pooling our objects, so even this simple game where we just screwed around shooting at nothing (not even collision detection yet), there were regular noticeable points where the game froze for half a second because the garbage collector kicked in.

Check out this WIP flash game from the Global Game Jam!
Sid Sinister
19
Years of Service
User Offline
Joined: 10th Jul 2005
Location:
Posted: 9th May 2010 09:27
As long as you follow the checklist, you should be okay with XNA: http://forums.xna.com/forums/t/30487.aspx

However, if your game is wider in scope than an arcade game, I wouldn't use XNA. I'm not saying the language can't handle it, it's just that the target market that usually purchases XBLA titles do it for the quick game sessions. There are a few titles on there, such as Shadow Complex, that have sold well... but that was by a triple A company.

I don't know much about Unity or Torque anymore. I thought Unity was cross platform too though? I guess not.

I wonder if developing your own engine at this point would be better. Mastering the DirectX API would be a challenge, but there's nothing more fit for the job than that. Maybe even OpenGL. Basically, if there's not a tool right for you, make your own. You could always look into Ogre and other open source engines as well.

So tired, goodnight z.z

"If I have seen a little further it is by standing on the shoulders of Giants" - Isaac Newton
Current Project: http://strewnfield.wordpress.com/ (Last updated 06/11/09)
Oolite
19
Years of Service
User Offline
Joined: 28th Sep 2005
Location: Middle of the West
Posted: 11th May 2010 20:27 Edited at: 11th May 2010 20:31
First of all, apologies for the late response.(i'll also get round to updating my tutorial thread sometime soon)
So after checking out the XBLIG section and how to get my game up on it, i am quite disappointed. I thought it would be a little more controlled than it is. The quality of the games uploaded there is just atrocious, definitely has dampened my spirit. Xbox Live Arcade would be a nice goal to achieve though, even if I do have to shovel a few small games onto XBLIG.

I am rethinking XNA over, i'm still intending to learn the language as it can't hurt to have that under my belt, but like you said Sid, it probably will be best to write my own engine anyway. There is one problem with that, this is my dream project, but it's also tied onto my entire university degree. Writing my own engine will take far too long and restrict the amount of time I have to concentrate on story and art assets.
I'm now thinking of working on both in tandem. Creating what would be my prototype in Unreal for university, whilst also creating my own engine in either C++ (with/without GDK I don't know yet) or XNA, depending on how much I get into the either language.
It seems i've made twice as much work for myself this way, but it also guarantees that my work, is my own and all content I make for the Unreal game will easily transfer over to my own engine, with a little tweaking of course.

kBessa
18
Years of Service
User Offline
Joined: 8th Nov 2006
Location: Manaus, Amazonas, Brazil
Posted: 11th May 2010 21:35
AFAIK, Unity will soon support all platforms.

For now Windows, Mac, iPhone(iPod Touch/iPad) and Nintendo Wii are all supported, plus web deployment. I've seen comment on Unity forums saying they are porting to Xbox 360 and PS3 also, but I can't search for the posts right now.

Anyways, I'm very busy right now because of the final project of my Bsc degree, but I'm thinking about giving up on DarkGDK.NET and migrating to Unity3D (I have it installed on my Mac), as I'm a bit more interested in iPhoneOS dev and don't think I'll be building a 3D engine from scratch.

[center][center]
That Guy John
15
Years of Service
User Offline
Joined: 30th Apr 2010
Location: United States
Posted: 11th May 2010 21:50
Not to interupt discussion, but I think this question fits here.

Are there any other game engines that has an IDE quite as dumby proof as FPSC?

ThatGuyJohn.com (personal blog)
Proposal for new forum section - The Business End - http://forum.thegamecreators.com/?m=forum_view&t=169868&b=39
Oolite
19
Years of Service
User Offline
Joined: 28th Sep 2005
Location: Middle of the West
Posted: 12th May 2010 01:08 Edited at: 12th May 2010 01:20
I know unity is c# and XNA is c# and i have wondered about porting, i'd like to ask around the correct places to see if this is actually possible in a relatively easy fashion.

John: There are loads of engines around, check here for a start and then look at the included IDE's. It might be best to have an engine ready for use and just use a map editor. Try the editors included for some release games, do a bit of modding. You have an engine there already and you can concentrate on the art side.
EDIT: This is probably the best site for engines

BearCDP
15
Years of Service
User Offline
Joined: 7th Sep 2009
Location: NYC
Posted: 12th May 2010 03:15
If you could abstract enough functionality in Unity and XNA to make a compatible API, that would pretty much be the coolest thing ever.

And I didn't realize you could do also script in C# with Unity! I'm gonna have to start playing with that more.

Check out this WIP flash game from the Global Game Jam!
That Guy John
15
Years of Service
User Offline
Joined: 30th Apr 2010
Location: United States
Posted: 13th May 2010 16:47
Thanks Oolite

ThatGuyJohn.com (personal blog)
Proposal for new forum section - The Business End - http://forum.thegamecreators.com/?m=forum_view&t=169868&b=39
David R
21
Years of Service
User Offline
Joined: 9th Sep 2003
Location: 3.14
Posted: 13th May 2010 16:52
Quote: "I'd like to find out more about this actually. I've searched around for this kind of thing and I don't know of any."


Sorry, forgot to actually specify in my post: It's Sun's "RTGC" for Real time Java. If you Google RTGC you should find the docs/info for it

Also, this is quite surprising. The Real-Time tools allow "immortal memory" which is not garbage collected and is controlled in a similar way to malloc and free

09-f9-11-02-9d-74-e3-5b-d8-41-56-c5-63-56-88-c0
draknir_
18
Years of Service
User Offline
Joined: 19th Oct 2006
Location: Netherlands
Posted: 14th May 2010 01:50
Oolite: Porting code between Unity and XNA is not feasible. They are very different and you would end up writing a lot of code twice. In Unity you write scripts which you attach to entities (objects, lights), which are handled internally. In XNA you handle everything yourself.

Login to post a reply

Server time is: 2025-05-24 10:16:11
Your offset time is: 2025-05-24 10:16:11