Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

ArtOfWarfare

macrumors G3
Original poster
Nov 26, 2007
9,710
6,304
I'd like to make an iOS game that plays in 3D but only has 2D graphics. Does anyone know of a good existing engine I should use or should I roll my own starting from SpriteKit?

To clarify, I want a fixed 3D person viewing angle that's mostly straight on like 2D side scrollers but tilted slightly up so the player can see some depth to the levels and can move into and out of the the levels.
 
I'd like to make an iOS game that plays in 3D but only has 2D graphics. Does anyone know of a good existing engine I should use or should I roll my own starting from SpriteKit?

To clarify, I want a fixed 3D person viewing angle that's mostly straight on like 2D side scrollers but tilted slightly up so the player can see some depth to the levels and can move into and out of the the levels.

Unity would do exactly what you need.

http://unity3d.com
 
Hmm... Alright. I'll look at those tutorials. I've been meaning to look into Unity for awhile anyways (I just wasn't planning on using it for anything other than full 3D games.)

I used to use it for 2D all the time. Games like Zombieville USA were done in Unity.

Corona SDK is great for 2D too but I'm not sure if it can handle the 3D perspective you're talking about.
 
I made Mal Function which has the 2D but with some depth you described by using the example Spriter code from Apple (very simple). The 3D look of the robots and room is purely flat 128x128 tiles in a single PNG file. They get scaled slightly as they move from top to bottom and the shadows are done with a simple Z order to keep them on the floor.

SpriteKit looks great so I would start there.

Unity or Anarchy engines are both impressive but for me were somewhat overwhelming!

On the other hand Blender is fantastic, well worth the day or so it takes to get used to it.

MJ

I'd like to make an iOS game that plays in 3D but only has 2D graphics. Does anyone know of a good existing engine I should use or should I roll my own starting from SpriteKit?

To clarify, I want a fixed 3D person viewing angle that's mostly straight on like 2D side scrollers but tilted slightly up so the player can see some depth to the levels and can move into and out of the the levels.
 
I made Mal Function which has the 2D but with some depth you described by using the example Spriter code from Apple (very simple). The 3D look of the robots and room is purely flat 128x128 tiles in a single PNG file. They get scaled slightly as they move from top to bottom and the shadows are done with a simple Z order to keep them on the floor.

SpriteKit looks great so I would start there.

Unity or Anarchy engines are both impressive but for me were somewhat overwhelming!

On the other hand Blender is fantastic, well worth the day or so it takes to get used to it.

MJ

Wow - I hadn't realized that was all 2D graphics. I had assumed it was all 3D models getting rendered in real time.

Regarding Blender, I learned how to use it and spent about a month putting together an iOS game with it + Ogre3D. At the end of the month I had controls and a HUD working, plus the player model, an enemy model, and a collectable model. I abandoned the project though because it was taking me so long to make models. Whereas I can throw together a set of sprites for an item in a game with 2D graphics in a day, I average on taking a week to do the same thing as a 3D model instead. Thus why I'd rather make a 2D game than a 3D game. The issue with that, though, is that I don't like limiting myself to building areas with only two dimensions... a lot of the ideas I have require the player to be able to move into and out of levels. Thus 3D mechanics.

Anyways, I think I'll be looking into Unity. I've been meaning to look into it for a while and this seems like a wonderful excuse to do so.
 
Thanks. Look forward to seeing what you create with Unity.

Wow - I hadn't realized that was all 2D graphics. I had assumed it was all 3D models getting rendered in real time.

Regarding Blender, I learned how to use it and spent about a month putting together an iOS game with it + Ogre3D. At the end of the month I had controls and a HUD working, plus the player model, an enemy model, and a collectable model. I abandoned the project though because it was taking me so long to make models. Whereas I can throw together a set of sprites for an item in a game with 2D graphics in a day, I average on taking a week to do the same thing as a 3D model instead. Thus why I'd rather make a 2D game than a 3D game. The issue with that, though, is that I don't like limiting myself to building areas with only two dimensions... a lot of the ideas I have require the player to be able to move into and out of levels. Thus 3D mechanics.

Anyways, I think I'll be looking into Unity. I've been meaning to look into it for a while and this seems like a wonderful excuse to do so.
 
You can do 2D with it just fine. Its actually really really easy to use.

Take a look here for awesome free tutorials for Unity: http://www.walkerboystudio.com/html/unity_training___free__.html

Just wanted to say thanks for the link. I'm through the first 30 (of 332!) videos. Looks like I'm on track to be underway making my game by early October... if development of my game goes as rapidly as I hope I might be able to put the game on my resume when I start applying for jobs early next year (I graduate in late April next year.)
 
Just wanted to say thanks for the link. I'm through the first 30 (of 332!) videos. Looks like I'm on track to be underway making my game by early October... if development of my game goes as rapidly as I hope I might be able to put the game on my resume when I start applying for jobs early next year (I graduate in late April next year.)

No problem!

Unity also just announced a HUGE amount of new features specifically for 2D gaming.

I didn't get to watch these yet but here is the keynote:
http://www.youtube.com/watch?v=2-9S2fNdH6E

And here is the 2D stuff:
http://www.youtube.com/watch?v=B1F6fi04qw8
 
Now I'm through the first 75 videos (also aced the first 3 exams.) Seem to be maintaining a track for finishing all of this material in about 2 weeks.

I noticed a few odd things though during the javascript parts:

var varName : varType = varValue;

I've never seen Javascript code mention types like that before... is it actually standard Javascript or some kind of Unity extension?

Also, they used private variables... I can't say I've ever seen Javascript with privacy modifiers like that.

The syntax at another point looked odd... they declared an array using

Code:
Array(objects);

Are these things actually standard parts of Javascript? (Admittedly, I've never had formal training with Javascript before... about all I ever did to learn Javascript was read a few pages from W3Schools then read and wrote Javascript code and post questions about it as they came to me.)
 
I'm now through the first 122 videos. As a follow up on my prior post, though the narrator refers to the language as "JavaScript" and the application itself calls the language "JavaScript", it isn't actually JavaScript. Which is good - it was making me feel as though I didn't actually know JavaScript.

There's a wiki page here that describes the differences between JavaScript and what the wiki's author calls "UnityScript":

http://wiki.unity3d.com/index.php/UnityScript_versus_JavaScript

Edit: Through with the first 136 videos, meaning that I'm now at the point that the first project's videos are over. I'm going to now attempt to do everything they did myself.
 
Last edited:
I'm now through the first 175 videos and I finished the first project. I've posted it online here:

https://dl.dropboxusercontent.com/u/60354330/CrazyClickGame/CrazyClick.html

The goal is to double click as many shapes as you can in 30 seconds. I've managed to get 13. A friend managed to get 22.

Edit: Actually, just played it again and managed to get 18 this time. And I played again. 23. I'm getting better at my own game. Or I happened to randomly get easier variables.
 
Last edited:
It might be a bit late, but the only difference to fake the 3D view you
describe is only parallax on the layers at different depths,
and since you want a fixed "sub-top down" view,
their z axis can be faked by slightly varying the Y axis.
If the layer is further back, it has a slightly lower value on the 2D Y axis.

In simpler words, I think you could do it with a 2D library.

I'm now through the first 175 videos and I finished the first project. I've posted it online here:

https://dl.dropboxusercontent.com/u/60354330/CrazyClickGame/CrazyClick.html

The goal is to double click as many shapes as you can in 30 seconds. I've managed to get 13. A friend managed to get 22.

Edit: Actually, just played it again and managed to get 18 this time.
 
It might be a bit late, but the only difference to fake the 3D view you
describe is only parallax on the layers at different depths,
and since you want a fixed "sub-top down" view,
their z axis can be faked by slightly varying the Y axis.
If the layer is further back, it has a slightly lower value on the 2D Y axis.

In simpler words, I think you could do it with a 2D library.

I thought about this, but I don't want it to be as flat as I described. As I went over some of the concepts I have, I realized many of my environments have perspective to them. I just want organic objects to be 2D sprites (because I'm much quicker at making those than doing everything required for 3D characters) that explore a 3D world.

A 2D library could be used as you described if I really wanted what I initially described.

In any event, I'm really enjoying Unity. It seems to me that it's definitely possible to whip together games as quickly as I'd like by using it.
 
If you look at a vector GPS such as Tom Tom with 3D view
you'll notice the objects at the back of the view get tighter than the
front because they are further away (something I failed to consider).

zdnet-tom-tom-go-live-1000_4d056866c9aa4.jpg


If you had a rectangular or tiled background for top down view,
you'd probably be wanting the image width of the background to appear
shorter at the bottom of the image resulting in some deformed rhombus.

Easy trick with a vector drawn GPS screen (which I think still are 2D libraries),
but might be a bit trickier with imagery.



I thought about this, but I don't want it to be as flat as I described. As I went over some of the concepts I have, I realized many of my environments have perspective to them. I just want organic objects to be 2D sprites (because I'm much quicker at making those than doing everything required for 3D characters) that explore a 3D world.

A 2D library could be used as you described if I really wanted what I initially described.

In any event, I'm really enjoying Unity. It seems to me that it's definitely possible to whip together games as quickly as I'd like by using it.
 
If you look at a vector GPS such as Tom Tom with 3D view
you'll notice the objects at the back of the view get tighter than the
front because they are further away (something I failed to consider).

Image

If you had a rectangular or tiled background for top down view,
you'd probably be wanting the image width of the background to appear
shorter at the bottom of the image resulting in some deformed rhombus.

Easy trick with a vector drawn GPS screen (which I think still are 2D libraries),
but might be a bit trickier with imagery.

No, I want to be able to have the character walk from indoor to outdoor areas (without loading between) and for you to be able to see the wall from both sides. So I definitely need some 3D. But it'll be trivial 3D - I just need a plane with some windows and doors cut out.
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.