Layout/content loading and streaming

Discussion and feedback on Construct 2

Post » Tue May 03, 2011 3:33 pm

Basically, this is a topic for discussing the possible methods of loading content and layouts that C2 can, further down the line, provide developers, to suit their games.

Now, the way it's pretty much always worked with Construct when changing layouts is, well, a no-frills switch with a slight delay due to loading stuff. Well, there would've been an option for transitions, too, but those got broke in 0.x for some reason I can't recall, which results in one having to do it all in events, lol.

Anyway. Transitions aside, there's no real way to tell the user, in case loading takes more than a second, that the game certainly has not crashed and there's nothing to worry about. Which is what loading screens are for. In that case the developer should be given the ability to create:

* Custom Loading Screen Layout: Whether it's simply a blank space or an animated image with a loading bar, it certainly would be nice if you could have loading customized loading screens to suit your game, that work like regular layouts except able to access conditions, actions and expressions exclusive to it.

Or, if you don't want a loading screen, you should also be given the ability to stream layouts and content.

* Seamless layout changes: Basically, the ability to move between layouts without giving the player any hints that they were separate in the first place. Basically, you can 'slot' two layouts together, and you can use a player object as an indicator of when one layout should load or be removed from memory. The more 'common' objects along the 'seam', the smoother and more seamless the process is.

* 'Transition' layouts: Take the above idea, but slot in a small layout in the middle. Some games have rooms/corridors which purely exist to disguise loading between areas, such as Metroid and some of the Castlevania games. While the player is in the transition room, load up the opposite layout, and when he leaves, dump out the layout he isn't in. Simple.


Also, using 'storage layouts' to store objects so they can be used in any other layout without taking up memory while they're not being used is a valid technique, perhaps there should be options to better accommodate this (as, depending on the object(s), loading an object into memory might cause the game to freeze for a second or slow down).
B
94
S
37
G
11
Posts: 404
Reputation: 11,275

Post » Tue May 03, 2011 3:44 pm

I think a good option might also be to simply design one large sprawling layout, and have the runtime load parts of it on-the-fly as you walk around.

This is much easier in the editor and the runtime should be able to figure out what it needs to load in a streaming way, providing the screen doesn't scroll too quickly.

Sound good? This is a long way off, though - lots of things to do before features like this.
Scirra Founder
B
357
S
214
G
72
Posts: 22,946
Reputation: 178,228

Post » Tue May 03, 2011 3:46 pm

Well, yeah. I was thinking of suggesting that myself, but I wasn't sure if it was better for the editor and the runtime or not.

And I did say 'further down the line', I know there's plenty of features that need to come first, after all. :)
B
94
S
37
G
11
Posts: 404
Reputation: 11,275

Post » Sun Jul 03, 2011 1:17 pm

I'll add my few words.
Don't know how to call it so lets name it "idle layout".
Basically i'm thinking about situation when you playing your game and for some reason you want to go to the game options menu to setup some stuff.
Now comes "idle layout" - you set your options menu or whatever on a seperate layout, checks options "layout is idle" and after that you can access that layout from everywhere from your game without worring about saving variables, positions for all objects and things like that.
Don't know if that makes any sens ;)
ImageImageImageImage
B
140
S
58
G
36
Posts: 2,547
Reputation: 31,170


Return to Construct 2 General

Who is online

Users browsing this forum: Eisenhans, humanescape and 3 guests