GnomeTankWhat the what?Portland, OregonRegistered Userregular
edited November 2010
So last night, I thought of an interesting way to make 2D games in Unity.
Now the most obvious way is to have an orthographic camera, give a near plane of 0.0 and a far plane of 1.0, and then sticking a plane in front of that camera where you draw all the sprites. You can then use a sprite manager to move the sprites around, scroll the background, whatever. This would work exceptionally well for bullet schmups, for instance.
But what about something like Metroid, where the map is a giant series of rooms or corridors? Wouldn't it be much cooler to design the entire map in the Unity tools, rather than an image editor. To do this, you could design the entire map, in the Unity editor, as a giant set of texture quads. You would layout the map just like it exists in game, then attach your orthographic camera to the character sprites. As your character sprite moves through out the level, it's truly moving in the 2D world and the camera is following it, moving around your big 2D world. It's basically exactly how you would build a 3D game, only you are removing the Z axis from the equation.
So going to look into this. I've been wanting to create something for a while now and now is as good a time as any.
ProtoSound on
0
Options
MrVyngaardLive From New EtoileStraight Outta SosariaRegistered Userregular
edited November 2010
Downloaded this a few days ago after a friend recommended it. I'm quite far from being able to anything with it since my knowledge of programming was uh, Turbo Pascal a very long time ago in highschool... but I'll dig up some tutorials and perhaps teach myself some things.
MrVyngaard on
"now I've got this mental image of caucuses as cafeteria tables in prison, and new congressmen having to beat someone up on inauguration day." - Raiden333
0
Options
GnomeTankWhat the what?Portland, OregonRegistered Userregular
edited November 2010
So I learned something cool last night. How to keep an object and it's state intact between scene loads. Why is this cool or useful? Because in any advanced game, you're going to need some kind of game wide state. This could be the players inventory, their stats, what bosses have been killed. Any number of things.
To do this, you need to create an empty game object (I called mine "GameState"), and attach a small component script like the following:
C#
public class GameState : MonoBehaviour {
void Awake() {
Object.DontDestroyOnLoad(this.gameObject);
}
}
Now, every scene that has a GameState object with this GameState component attached to it will be transient, meaning it will hold it's data between scene loads.
I've extended my GameState class as such:
public class GameState : MonoBehaviour {
void Awake() {
Object.DontDestroyOnLoad(this.GameObject);
}
public static GameState Current {
get {
GameObject state = GameObject.Find("GameState");
return state.GetComponent<GameState>();
}
}
}
This allows me to access my current game state from any other script by doing: GameState.Current. I've then attached sub-objects to the GameState, such as a Player object that keeps track of the players inventory. Thus in any script, I can do: GameState.Current.Player.Inventory, to get the players inventory.
This lends itself well to saving your game as well, as it should simply be a matter of serializing out the current GameState, then deserializing it at load time.
Waka LakaRiding the stuffed UnicornIf ya know what I mean.Registered Userregular
edited November 2010
If you want training and info on how to get started, I recommend 3DBuzz.
Basically an entire site dedicated to 3D graphics and game engines including Unity. The tutorials are usually insightful and funny as well as educational.
I took a 9 month course in programing (VB, C/C++, Java) and I feel that I'm learning concepts better in the first 30 minutes of this Hyperion tutorial on 3D Buzz. That's sad.
I took those classes in 1997. Thank god the C/C++ teacher decided that programing for Windows was bloated and inefficient and therefore not fit to be taught. :P
TL;DR - Thanks for linking to 3D Buzz.
Fawst on
0
Options
GnomeTankWhat the what?Portland, OregonRegistered Userregular
edited November 2010
So I know some of you have downloaded this and started to play with it. Any thoughts so far?
I just tried to download this and all it does is take me back to the download page, am I missing something?
EDIT: Pretty damn weird, downloading fine with IE. It doesn't even try to create any cookies with Firefox. (I have cookie prompting enabled on Firefox and IE)
Never mind.
GrimReaper on
PSN | Steam
---
I've got a spare copy of Portal, if anyone wants it message me.
0
Options
GnomeTankWhat the what?Portland, OregonRegistered Userregular
Select Unity (it should list as free), then hit proceed. That should guide you through it. I just tried it, and I got to the download link fine and the file started downloading.
Select Unity (it should list as free), then hit proceed. That should guide you through it. I just tried it, and I got to the download link fine and the file started downloading.
It's fine, installing it now. It was adblock messing with me.
GrimReaper on
PSN | Steam
---
I've got a spare copy of Portal, if anyone wants it message me.
I've been wanting to get into Unity. I listened to a podcast where their lead evangelist talked about everything it can do, and it sounds really awesome.
kedinik on
I made a game! Hotline Maui. Requires mouse and keyboard.
Unity is pretty neat. They have a really compelling business model- in the grand scheme of things, $1500 is not that much for an engine with Unity Pro's feature set- plus you can do 90% of your development before you spend a dime.
I've been kicking around some ideas for iPhone games for awhile now. I could roll my own engine (again) but Unity offers something that a homebrewed engine doesn't- the abiltiy to go cross-platform. Anyone know how big / lucrative the Android market is? It might be worth shelling out some cash if I could potentially launch on both the App Store and Android Market.
zilo on
0
Options
GnomeTankWhat the what?Portland, OregonRegistered Userregular
edited November 2010
There isn't much it can't do, honestly. I wish I had the money to get a Pro license, because I'd love to play with the deferred rendering pipeline.
Unity is pretty neat. They have a really compelling business model- in the grand scheme of things, $1500 is not that much for an engine with Unity Pro's feature set- plus you can do 90% of your development before you spend a dime.
I've been kicking around some ideas for iPhone games for awhile now. I could roll my own engine (again) but Unity offers something that a homebrewed engine doesn't- the abiltiy to go cross-platform. Anyone know how big / lucrative the Android market is? It might be worth shelling out some cash if I could potentially launch on both the App Store and Android Market.
Android's game market isn't up to snuff with the iPhone App Store yet, but, it's a huge ready to tap market. Really all it needs is it's first killer app (e.g. God Finger or Angry Bird's) and the person that makes that first killer app is going to be very rich.
The beauty of going Unity of course is that you can develop for the iPhone first, and when the market opens up on Android, just buy the Unity addon and compile and tweak your game. If it runs on the iPhone, it should run on most Android Phones, so the amount of worked needed to port should be very minimal.
Where multi-platform gets interesting, even for Unity, is when you want to release on iPhone and say, PC. The quality of art asset you are going to want for the PC version is likely to be much higher. Also, you are dealing with completely different screen resolutions. That said, Unity has per-platform build settings and compiler pre-defines to let you maintain one Unity project for completely disparate platforms.
Hmm. Apparently the iOS Pro license, which is required to do most of the good stuff Unity Pro lets you do (render to texture, occlusion culling, external version control support, deferred rendering) costs $1500 on top of the cost of the Pro license. Plus Android support is yet another $1500. That's kind of a bummer as it's approximately 1000 times the money I'd expect to make from the project.
If it were just $1500 for the pro license plus $400 for iOS/Android support, I could probably make that happen. $3000-$4500 is a bit much though. In the long run it's probably better than UDK's royalty-based structure but still out of reach for a one-person shop with student loans and a mortgage.
Oh well, at least the free version will be useful for prototyping! And $1500 is a steal for the PC engine.
zilo on
0
Options
GnomeTankWhat the what?Portland, OregonRegistered Userregular
edited November 2010
Woh, that's a very recent change. It used to be 1500 + 500 + 500.
Okay good, so I'm not going senile. That was what I remembered the pricing as when I first checked it out awhile back, but when I went to their Store page to check it out I found the new pricing.
I wonder if there's somebody I could write to ask what's up with that.
edit: there is! I fired off an email to their sales department.
zilo on
0
Options
GnomeTankWhat the what?Portland, OregonRegistered Userregular
Okay good, so I'm not going senile. That was what I remembered the pricing as when I first checked it out awhile back, but when I went to their Store page to check it out I found the new pricing.
I wonder if there's somebody I could write to ask what's up with that.
edit: there is! I fired off an email to their sales department.
Yah, that had to be in the last two weeks, because I remember it being 1500 + 500 + 500 up until very recently.
Wondering how well it can dynamically generate content that you don't explicitly drag-and-drop into a scene in advance, but I assume that it could handle that with some scripting.
kedinik on
I made a game! Hotline Maui. Requires mouse and keyboard.
0
Options
GnomeTankWhat the what?Portland, OregonRegistered Userregular
edited November 2010
Yes sir, it can. Part of my current game project, I needed to project a mesh correct decal on the terrain. The mesh that the decal is laid over has to be created dynamically, and I do that completely in script. I can explain how if you're ever curious.
Wondering how well it can dynamically generate content that you don't explicitly drag-and-drop into a scene in advance, but I assume that it could handle that with some scripting.
I think the trick to that is prefabs. Prefabs are civilization. If you wanted to have an enemy spawner that spit out a new goblin or whatever every 20 seconds you would place an object with a script that waits 20 seconds, then calls Instantiate(prefab_name, position, rotation).
I hear the Instantiate call is slow on iOS but even then you can just batch up a few objects when your level loads and warp them around when you need them.
zilo on
0
Options
GnomeTankWhat the what?Portland, OregonRegistered Userregular
edited November 2010
It looks like Unit 3.1 is out, for anyone that didn't DL it in the last few days.
Sorry, we do not have any other pricing models set, but thanks for the feedback.
Cheers,
Bummer.
zilo on
0
Options
GnomeTankWhat the what?Portland, OregonRegistered Userregular
edited November 2010
They added a new thing called the Asset Store. It's built in to the editor, and you can buy pre-made assets and premium components, which is kind of cool.
I wish I had more time on my hands. I barely have enough to play the games i want to, so I haven't really looked at this for more than a few minutes.
Yeah. And making games is work. Especially so if you have the attention span of a gnat.
I had almost gotten my simple shump playable when it suddenly occurred to me that a 2D megaman-style demake of Portal would be amazing. I got the basic platform movement together before realizing how long an actual game would take.
My massive projects folder is ever so slightly depressing. I think maybe two of them have any gameplay at all. I do have a few sweet engines, though.
I've been playing with it for a couple of weeks, mostly going through tutorials (3DBuzz and some over at www.burgzergarcade.com).
First caught my eye because I wandered over to 3DBuzz and saw that they were having a class for making an MMO using it. I've been impressed at how easy it is to put a game together. Outside of the tutorials I've spent maybe an hour and a half and have an almost-finished Break Out - type game, and most of that time was figuring out physics/collisions. Pac-Man is probably next on my list.
I think my favorite feature over other engines I have looked at is how easy it is to prototype/test things since you can play the game in the editor and even alter things while it is running*, which can make testing things out insanely efficient.
The changes aren't saved, but when you are trying to figure out the perfect movement speed for your player it's very helpful for testing.
Tomanta on
0
Options
GnomeTankWhat the what?Portland, OregonRegistered Userregular
edited February 2011
Yep, I still play with Unity when I have time. I am still slowly, but surely, putting a game together with it.
Wait wait, this uses C# as the scripting language? I'm assuming this is of no significance when it comes to porting the game to other platforms such as iOS/Android?
Wait wait, this uses C# as the scripting language? I'm assuming this is of no significance when it comes to porting the game to other platforms such as iOS/Android?
C#, Javascript, Boo. Don't know the specifics, but I imagine it compiles to be iOS compatible.
Wait wait, this uses C# as the scripting language? I'm assuming this is of no significance when it comes to porting the game to other platforms such as iOS/Android?
It uses the Mono CLR as the engine; C#, UnityScript, and Boo are all converted into bytecode first.
Any update on your guys's projects? I just downloaded it and am checking it out.
0
Options
GnomeTankWhat the what?Portland, OregonRegistered Userregular
*casts Scrolls of Resurrection on the Unity thread*
So after basically a year of just farting around with Unity, I am ready to get down to the business of actually making a game. I've already started on the game engine code, and I've laid out a basic test level to start testing features as I add them.
I really love the shit out of Unity. Even as a non-artist, it's really amazing how fast I was able to get a small terrain area, with a building and some basic objects to interact with in the world. The speed I was able to get a prototype scene up has really let me focus on getting the first features in place and expanding from there.
I started playing around a little with Unity. I need to run through some tutorials before I have any idea how to really use it, but what I've seen it looks like a pretty nice toolkit.
Posts
Now the most obvious way is to have an orthographic camera, give a near plane of 0.0 and a far plane of 1.0, and then sticking a plane in front of that camera where you draw all the sprites. You can then use a sprite manager to move the sprites around, scroll the background, whatever. This would work exceptionally well for bullet schmups, for instance.
But what about something like Metroid, where the map is a giant series of rooms or corridors? Wouldn't it be much cooler to design the entire map in the Unity tools, rather than an image editor. To do this, you could design the entire map, in the Unity editor, as a giant set of texture quads. You would layout the map just like it exists in game, then attach your orthographic camera to the character sprites. As your character sprite moves through out the level, it's truly moving in the 2D world and the camera is following it, moving around your big 2D world. It's basically exactly how you would build a 3D game, only you are removing the Z axis from the equation.
I'm working on prototyping the concept now.
To do this, you need to create an empty game object (I called mine "GameState"), and attach a small component script like the following:
C#
Now, every scene that has a GameState object with this GameState component attached to it will be transient, meaning it will hold it's data between scene loads.
I've extended my GameState class as such:
This allows me to access my current game state from any other script by doing: GameState.Current. I've then attached sub-objects to the GameState, such as a Player object that keeps track of the players inventory. Thus in any script, I can do: GameState.Current.Player.Inventory, to get the players inventory.
This lends itself well to saving your game as well, as it should simply be a matter of serializing out the current GameState, then deserializing it at load time.
Basically an entire site dedicated to 3D graphics and game engines including Unity. The tutorials are usually insightful and funny as well as educational.
3D BUZZ UNITY TUTORIAL
It will feature a guide on making a basic shooter and a 3D platformer (tomb raider style).
Due pretty soon.
Tumblr
I took those classes in 1997. Thank god the C/C++ teacher decided that programing for Windows was bloated and inefficient and therefore not fit to be taught. :P
TL;DR - Thanks for linking to 3D Buzz.
EDIT: Pretty damn weird, downloading fine with IE. It doesn't even try to create any cookies with Firefox. (I have cookie prompting enabled on Firefox and IE)
Never mind.
---
I've got a spare copy of Portal, if anyone wants it message me.
Go here: https://store.unity3d.com/shop/
Select Unity (it should list as free), then hit proceed. That should guide you through it. I just tried it, and I got to the download link fine and the file started downloading.
It's fine, installing it now. It was adblock messing with me.
---
I've got a spare copy of Portal, if anyone wants it message me.
---
I've got a spare copy of Portal, if anyone wants it message me.
I've been kicking around some ideas for iPhone games for awhile now. I could roll my own engine (again) but Unity offers something that a homebrewed engine doesn't- the abiltiy to go cross-platform. Anyone know how big / lucrative the Android market is? It might be worth shelling out some cash if I could potentially launch on both the App Store and Android Market.
Android's game market isn't up to snuff with the iPhone App Store yet, but, it's a huge ready to tap market. Really all it needs is it's first killer app (e.g. God Finger or Angry Bird's) and the person that makes that first killer app is going to be very rich.
The beauty of going Unity of course is that you can develop for the iPhone first, and when the market opens up on Android, just buy the Unity addon and compile and tweak your game. If it runs on the iPhone, it should run on most Android Phones, so the amount of worked needed to port should be very minimal.
Where multi-platform gets interesting, even for Unity, is when you want to release on iPhone and say, PC. The quality of art asset you are going to want for the PC version is likely to be much higher. Also, you are dealing with completely different screen resolutions. That said, Unity has per-platform build settings and compiler pre-defines to let you maintain one Unity project for completely disparate platforms.
If it were just $1500 for the pro license plus $400 for iOS/Android support, I could probably make that happen. $3000-$4500 is a bit much though. In the long run it's probably better than UDK's royalty-based structure but still out of reach for a one-person shop with student loans and a mortgage.
Oh well, at least the free version will be useful for prototyping! And $1500 is a steal for the PC engine.
I wonder if there's somebody I could write to ask what's up with that.
edit: there is! I fired off an email to their sales department.
Yah, that had to be in the last two weeks, because I remember it being 1500 + 500 + 500 up until very recently.
Seems like a pretty well made engine.
Wondering how well it can dynamically generate content that you don't explicitly drag-and-drop into a scene in advance, but I assume that it could handle that with some scripting.
I think the trick to that is prefabs. Prefabs are civilization. If you wanted to have an enemy spawner that spit out a new goblin or whatever every 20 seconds you would place an object with a script that waits 20 seconds, then calls Instantiate(prefab_name, position, rotation).
I hear the Instantiate call is slow on iOS but even then you can just batch up a few objects when your level loads and warp them around when you need them.
Bummer.
Yeah. And making games is work. Especially so if you have the attention span of a gnat.
I had almost gotten my simple shump playable when it suddenly occurred to me that a 2D megaman-style demake of Portal would be amazing. I got the basic platform movement together before realizing how long an actual game would take.
My massive projects folder is ever so slightly depressing. I think maybe two of them have any gameplay at all. I do have a few sweet engines, though.
I've been playing with it for a couple of weeks, mostly going through tutorials (3DBuzz and some over at www.burgzergarcade.com).
First caught my eye because I wandered over to 3DBuzz and saw that they were having a class for making an MMO using it. I've been impressed at how easy it is to put a game together. Outside of the tutorials I've spent maybe an hour and a half and have an almost-finished Break Out - type game, and most of that time was figuring out physics/collisions. Pac-Man is probably next on my list.
I think my favorite feature over other engines I have looked at is how easy it is to prototype/test things since you can play the game in the editor and even alter things while it is running*, which can make testing things out insanely efficient.
Well their website says it is coming, and there is a non-Pro version of their iOS stuff.
It'd still cost something, but not as much
C#, Javascript, Boo. Don't know the specifics, but I imagine it compiles to be iOS compatible.
It uses the Mono CLR as the engine; C#, UnityScript, and Boo are all converted into bytecode first.
So after basically a year of just farting around with Unity, I am ready to get down to the business of actually making a game. I've already started on the game engine code, and I've laid out a basic test level to start testing features as I add them.
I really love the shit out of Unity. Even as a non-artist, it's really amazing how fast I was able to get a small terrain area, with a building and some basic objects to interact with in the world. The speed I was able to get a prototype scene up has really let me focus on getting the first features in place and expanding from there.
From Reddit, Unity3D is giving away their basic iOS/Android versions until April 8.