Isometric Stuff

Post your Construct-made creations!

Post » Tue Mar 29, 2011 1:47 pm

Hey guys, if you've read my stuff before, you've probably noticed I'm either spouting something about isometric sorting or the animation editor not being robust enough lol.
Well, I've basically only been working on one thing for about 2-3 years on and off (off being some pretty large amounts of time), and that is, my isometric sorting engine for my somewhat grandiose plan for a game.
There is one thing I have learnt, isometric sorting is REALLY HARD TO DO!
Here's a little demo of what I've got at the moment:


[url:21nvs6ln]http://dl.dropbox.com/u/1289341/ISOsemiWorking.exe[/url:21nvs6ln]

Yes there are variable heights, yes there are larger sprites sorting correctly for the most part :)
It's not a game at all yet, it's kinda funny that I've spent all this time just on sorting....
Anyway, it may look like it works perfectly, but trust me, it doesn't, it's still broken :(
I'm still kinda happy with this, tell me what you think :)
Also I would love to know how this runs on slower computers, mine is currently quite fast, and I know there's a pretty fat loop constantly running at the moment, so performance will vary. The engine isn't close to done yet, I'm going to work on a way of sorting more efficiently, this demo is just doing it's best to get the correct order, efficiency be damned :)

I'm posting this because basically I'm getting disillusioned haha. I'm doing my best to make this sort everything perfectly, no matter what the configuration of objects are. It's close, but it's not there and I'm finding it incredibly daunting! I could leave it where it is, and just use level design to get around some of the sorting errors, but I'd much prefer not having that problem.
Anyway, enjoy! Feel free to ask questions or to give some feedback.
B
3
S
2
G
5
Posts: 351
Reputation: 2,377

Post » Tue Mar 29, 2011 2:28 pm

Now, after 3yrs of making the engine, you have to make a game using it! It looks pretty finished to me, I've noticed only little sprites overlaping when moving under that gate in the example while in snapped mode. Compliments to you for all that time you must've spent on it.
ImageImage
B
25
S
6
G
8
Posts: 773
Reputation: 6,643

Post » Tue Mar 29, 2011 2:46 pm

I think it looks fantastic. What are the "broken" parts of it? Also, is this a plugin, or are you just doing it with events?

Either way, I think you should ask for help in the forums, there are some users who may be able to weigh in and give you some ideas. With how long you've worked on it, and how close you are, it's definitely not the time to give up. Also, if you've ever done even a little programming, and this is purely events, I would really recommend trying out the SDK tutorial. I've found that in most cases, the more complex the solution gets, the more it lends itself to an actual programming language more than Construct. Also, when you have your solution, it's portable, and easy to use. You'll have actions and conditions in related to the isometricness, and when you go to make a new game you just add the behavior or object, and it's there again
Spriter Dev
B
87
S
21
G
12
Posts: 3,240
Reputation: 16,461

Post » Tue Mar 29, 2011 3:04 pm

Thanks guys! :)
Yeah there's still many problems, it's all to do with the order in which it performs the er... ordering. Had I put the player at the top of the map, rather than at the bottom as in this demo, it completely falls on it's head :( But at least this demo looks like it works better than it really does ;)
This is because it assembles a 2D array using the amount of objects in the family as the width and height, it then uses the array to check each object's position relative to every other one. This also means that each object has to have it's bounding box defined, eg: xFront and xBack.
The problem is, I check through the array left to right, top to bottom, so some objects don't have the correct relationships set up because they should be in front of/behind other objects that haven't been checked yet. I've come close to kind of 'retroactively' setting up an object's order before it gets checked, based on the relationship of other checked objects (confusing huh?) but it's usually just a couple of numbers off...

Yeah Lucid, it's all events, I've done a little programming and am currently doing a Bachelor of IT, soon to be majoring in software development, I've never looked at making a plugin though...
I'll go into further detail as to how I've done it if anyone's interested. I haven't put the .cap up because honestly, the code is pretty sloppy and hard to understand if you're not me.
B
3
S
2
G
5
Posts: 351
Reputation: 2,377

Post » Tue Mar 29, 2011 4:12 pm

have you tried double checking? so it orders everything using whatever logic you're using, and then does it again, so that the objects that were checked against unchecked objects would go again with updated info. Maybe even loop it several times, if necessary
Spriter Dev
B
87
S
21
G
12
Posts: 3,240
Reputation: 16,461

Post » Tue Mar 29, 2011 9:14 pm

Hey, the engine is looking pretty good :).

Since that PM you sent me a while ago indicated that you were interested in Unity, I whipped up a little isometric demo. You can play it here (requires Unity web player plugin):
http://dl.dropbox.com/u/529356/IsoTest.html

Move with arrows, jump with X.

It might take a second to load. Anyway, the movement is a little weird, but that's because I don't really know how to code that well so I just threw a pre-made move-and-jump script that I found onto the player cube.
Moderator
B
5
S
2
G
6
Posts: 4,348
Reputation: 10,971

Post » Wed Mar 30, 2011 1:34 am

Deadeye.... I absolutely LOVE how you made it my test level!! Hahahah!
That looks really good! You're really making me want to try that out now.
Ironic that you whipped that up in a day and it's taken me three years!
Actually Lucid, I did try a 'twice through' loop, I think it actually worked too, but because it's a pretty fat loop, it affected the performance dramatically so I took it down. However.... if I implemented a system that uses the fat loop to get the initial order and assemble a master list, then all I would need to do is make a similar loop that just swaps objects around that need swapping, rather than resorting everything every tick.
I might give that one a try :)

Oh Deadeye, what kind of code does Unity use? I've started learning C# and (technically) VB and I've dabbled a little in Java and Actionscript years ago...
B
3
S
2
G
5
Posts: 351
Reputation: 2,377

Post » Wed Mar 30, 2011 3:15 am

Thanks :). It took me a few hours to do that, but it would have taken me like 20 minutes if I knew what I was doing.

As for code, Unity uses C# or javascript. Or Boo, if you want to use Boo I guess.
Moderator
B
5
S
2
G
6
Posts: 4,348
Reputation: 10,971

Post » Wed Mar 30, 2011 3:44 am

Very cool Arcticus. I've always wanted to make an isometic game, but the sorting and other niggly technical issues always kinda bummed me out a bit and I didn't really feel like spending a lot of time coming up with a good engine like you have. You definitely should start work on a game, because the engine seems rock solid. Your demo sparked vivid visions of an isometric towerclimb in my head. The level generation would actually be the exact same code, but with a third axis, so it's quite easy to do. Pair that up with a layered cutaway style camera and It could actually make a rad iso-platformer.
B
25
S
3
G
6
Posts: 1,197
Reputation: 5,620

Post » Wed Mar 30, 2011 4:01 am

Yay Unity uses C#, I think it's decided that I will grab Unity and Blender and try those out.
I still want to fix my current 2D iso code up, I'll try to get around to using that double check method paired with a bubble sort. Maybe even down the line I could turn it into a plugin that everyone could use.
Davio... isometric towerclimb would completely rock my world!
Thanks for encouragement everyone! I was starting to get a bit bummed out :)
B
3
S
2
G
5
Posts: 351
Reputation: 2,377

Next

Return to Your Creations

Who is online

Users browsing this forum: No registered users and 1 guest