A bit of questions about Unity.

Hey there.

I’m searching a nice game/Graphic engine to produce a 3D vertical scrolling shoot’em up. I put my eyes on Unity3D, but I don’t the answers to some questions in the documentation, so I’ll ask here instead. :]

1°) They will be some 2D objets, well… more like simple square drawn directly facing the camera and moving along 2 axis. Is their some supports for this kind of objets?

2°) I will need to split the rendering of my final image into some separated and stacked parts, somewhat like overlays. For exemple, one overlay for a scrolling 3D background, one overlay for my game objects moving in 2D, one overlay for some 2D bullets and a last overlay for the HUD. Is their some supports for this kind of feature?

3°) Related to the “overlay” feature, is their some way to apply coordinates transformation, for exemple, transform the position of an object on the background to project it on the game objects’ overlay?

4°) Is it easy to change, restrict and allow controllers (keyboard, gamepad) configuration for users? Like let them choose the key for the wanted action, and else?

For some history, I’m developping a 2D shoot’em up in C++, but I’m gatting fed-up with all the 2D rendering stuff, so I’m searching for something “ready to code” like Unity.

Here a short video of what is already done and what I would like to make the game look like, but in 3D : http://www.youtube.com/user/Spidyy?feature=mhum#p/a/u/1/mpgFU09Af98

All you ask for is possible but there’s absolutely no native tools to do this kind of game shipped with Unity3D itself. Since it’s all basic stuff, it’s not that hard to do by yourself or build upon an existing solution like Spritemanager2. But don’t expect to install Unity and start right away your 2D game.

You mean I can do all what I need through the Unity coding language (Like C#) and API?

That’s what I mean. Our current project which is also a 2D shooter is done with Unity3D and a home made C# library.

Wow, nice game you got there!

Thanks for your replies. :] I’ll start working on it.

Do you have some tutorial, source code or any kind of resources to get started to code my game from scratch with the UnityEngine API? I’m a good programmer in C++, but I never programmed with C#, and I don’t find any tips from the Unity reference.

If you know the basics of 3D :

  • data strucutre of meshes (vertices, faces, normals, uv)
  • what are uv coordinates
  • what are shaders and at least roughly how they work
    … you just need the Unity3D Scripting reference guide and the MSDN.

If you know C++ but have no background in 3D, you’ll need to read thoroughly every piece of documentation of Unity3D and maybe find some starters about basic 3D concepts. Unity’s documentation take for granted that you have at least a basic knowledge of 3D stuff.

The first open source version of the Spritemanager can be a good starting point though with the recent dynamic batching feature of Unity3D, you don’t have necesssarily to go through the pain of mergin all quads into a single object. If your game is targeted at PC and Mac and not iOS, there’s a pretty good chance in fact you won’t need to.

Oh wait!

I can edit new classes from the engine existing classes even using custom .dll, but whatever I do, I must use the editor to compile the game binaries, right?

Right. The editor serves also as a debugging / test / value tweaking environment for your project. You only need to do ‘real’ builds for the final product or to make performances tests not biased by the huge amount of resources sometimes swallowed by the editor itself.