Design World changing mechanic, most efficient method

D

Dr Sunnyside

Guest
I am working on a short game where the player can move between two realities with the press of a button (the main gameplay is slipping between realities to avoid obstacles ). Which method of implement this mechanic would be most efficient?

1 Change all the sprites in a room when the button is pressed
2 Change between two seperate rooms
 
K

kronnik

Guest
I don't have too much experience, but speaking on it conceptually, to me it sounds like the second option would be the best. It seems like you would have more freedom in the fact that the settings of one reality wouldn't be forced onto the other. In other words, if you're having to redo all the sprites in the room (and possibly the backgrounds and music and sound effects, depending on what you're doing artistically), you may as well just do a new room also.

I could imagine some scenarios where the first choice would be best, however. But in the end, after you decide which one is more efficient to implement, you should also ask yourself what constraints and/or conveniences said method brings to the table before moving forward.
 
D

Dr Sunnyside

Guest
I agree. The main problem with the second scenario is that moving enemies would be harder to implement.
 

Yal

šŸ§ *penguin noises*
GMC Elder
Depends a LOT on how you want to implement changes, I'd say... if you mainly want individual things to work differently (e.g. replace spikes with springs) changing all objects or sprites would be the easiest approach, but if you want alternate paths and hidden areas that only work in one reality, different rooms is an easier approach. The main reason not to use different rooms is that if you need to change something in one room, you might need to do the same changes in its alternate version as well, so using it carelessly doubles your workload.
 
R

Rukola

Guest
Don't use 2 rooms. That sounds .. tough :(

Create a script that goes something like
Code:
///script_change_season();
switch(global.season)
{
case 0:
with(obj_flower)
sprite_index=spr_angry_flower

with(obj_spike)
instance_change(obj_not_spike, true);
break;

case 1:
with(obj_flower)
sprite_index=spr_happy_flower
break;
}
and also add the trigger in step event obj_control
Code:
if keyboard_check_pressed(vk_space)
script_change_season();
fjew!
 
Top