Unity3D without ingame editor?

Hi,

i am currently evaluating Unity3D for our new game which will target Windows PC and the Iphone. But i am a littlebit annoyed by the editor. Is this the only way to use Unity3D? Or can we code the game without using it at all simply by using the libraries? What we need are the cross plattform ability and the engine functionality. We don’t want to use this drag&drop kind of thing. Is this possible?
Or is Unity3D more for beginning game “developers”?

Regards,
Daniel

I wouldn’t touch the ‘drag-n-drop’ = beginners comment! :slight_smile:

And no, it’s not the aim at all, although it definitely has that as a strength.

You will need to use the editor for some things but depending on how you make your game, you can do most of it in pure code. I will tell you though there is a natural sweet-spot where if you try to avoid the editor too much, you’ll be fighting the engine.

I do understand your comment though but I think you’ll find most of what you use the editor for is things you’d want anyway (if you have static levels, then it’s great for placing objects in that level, etc).

My project uses the editor for only a couple things as my world is created by a server and Unity just displays what the server describes. But the editor is still needed for the creating models, cameras, and GameObjects to hold my code.

Hope that helps!

I didn’t want to attack anyone :slight_smile:

And you are right - it would become handy to use the editor to create levels and objects. But what i am really missing is the game loop, a way to render things in my own order, write dirty shaders etc… :wink:

I thought the fact that you can run c# code on the iphone using unity means, that it uses some kind of early binding. So that it is a “real” executable. No IML code - that wouldn’t be allowed by apple. Am i right? So i thought that in the best case there is a way to code with visual studio (it’s simply a better editor) AND the power of Unity3D. Could you give me more insight in how you do that? And maybe one of the mods could clarify some things - i would appreciate it.

Thanks,
Daniel

Keep in mind that Unity is the game engine; you have access to the script-able hooks to make it do what you want. So you don’t write your own game loop (it’s buried inside the Unity engine).

It takes a bit of mind tweaking but I am finding it works great after getting myself to look at it from its point of view.

For example, if you want something to happen every frame, you just write a script with an Update() function handler and place whatever you want in there and then add that script to the level in the editor.

I find it’s a great way to avoid having huge function handlers in loops. You can separate out each ‘job’ on a per-class basis, each doing their own Update() handling. Much easier at keeping things agile actually.

As far as the iPhone versions go, I can’t give any insight personally. Generally the script code is all compiled by Unity so there’s no script-parsing going on at run-time. As far as using VisualStudio, you can for an editor (I prefer Emacs and TextMate myself, so anything works). But again, keep in mind that Unity is not a library but an engine that you hook into. It’s a different mindset than other libraries/frameworks out there, for better and worse.

Indeed, Unity on the iPhone uses AOT compilation to ARM assembly, as opposed to Unity on the desktop, which uses JIT.

And you do want to use drag’n’drop for at least some things, because it simplifies the process and doesn’t take away any power. It’s more understandable after you’ve Unity for a while.

–Eric

Thank you two for your feedback. I am still not sure if this would be what we want. But the cross plattform ability too sexy to just drop this idea… :slight_smile:

@Timmer: Yes, i can add this to the update loop but what if i need more control - if i have got a dynamic number of objects. I am not sure if it will actually make thinks more complicated. But may be i simply have to test it. And that’s what i will do.

But still makes me headaches is the fact that i think that you can’t really add more features. Like a more flexible particle engine we developed in the past.

But ok, you helped me a lot. I will try and tell you what the result was, if you want :slight_smile:

Daniel

You have missed the entire point of Unity.

I think i didn’t. But i thought that it maybe can be used in a more “manual” way. To just use its core components and be free to implement some parts in a different way. I thought it wouldn’t hurt to ask :slight_smile:

No, you totally have. The entire point of Unity is to avoid many of the “manual” things you are trying to do. It is still highly extensible–you could write your own particle system if you wanted to, for instance–but you’re going to have to give up on the notion of one master update loop doing game ticks on the objects of your choice. There is no solitary entry point to any behavior in Unity; any component could be triggering logic in Update, or OnCollisionEnter, or any number of other things.

It seems like you’re asking how to use Unity’s “library” with a single entry point/loop you control, and that just isn’t the way it was meant to be used.

Unity is ideal for teams that want to develop games. If you want to develop a game engine then you’re probably not going to like what you (likely misrepresent) as Unity’s “limitations”.

It’s actually less complicated:

Yep. :slight_smile:

You can certainly create your own particle system. It wouldn’t be quite as fast as altering the source code, but unless you’re really pushing things, that’s unlikely to make much difference in practice.

–Eric

You can do that.
But you can’t hack around in the rendering code, you focus on making the game instead and write the aspects and components required for that while the rendering and core is handled by Unity. Thats actually what game engines are meant to do even if some lower priced engines don’t seem to understand that and enforce the user to touch even the main loops and other things, stuff thats in any well designed engine never meant to even be looked at unless you want something totally different (and then you better use a totally different as you won’t have any joy with unity)