BGE proposal: State 1 as default Initial state

When you do not set an initial state (controller column lower state map) the visible states are used as initial state.

This is no problem if you use just one state.

But as soon as you want to use the build-in state system this easily leads to confusing behavior if you forgot to set the initial states. As game designer you need to constantly check the current states (or you explicit set the initial states). The likelihood to work on non-init states is quite high.

My suggestion:
Set state 1 as initial state by default.

In 99% of cases it is meant as initial state. In all other situation the designer needs to set them manual anyway.

This prevents to easily forget to set the initial state.

As soon as you use more than one state set your initial states (not really a workaround ;)).

It should be a quite easy to implement this enhancement.
Maybe a beginners project?

Didn’t even notice this, as I always tick the state box, but I agree it should have a default of state 1.

Hi Monster,

I have mixed feelings regarding your proposal. I agree that the state 1 is often the initial one, but when you start changing states you not necessarily have the states panel open. So that can lead to users changing the current layer of controllers and facing a strange situation of ‘why are things not working?’ (I’m somehow more concerned about new users that are starting with states, than users that are seasoned).

What about: we have state 1 as initial, and have the controllers that are not ‘initial state’ marked somehow (greyed out? red?).

Nothing too intrusive please - usually, I do initialisation in state 1 and progress immediately to other states. So most of the time I’ll be viewing controllers that aren’t in the initial state. Having them coloured red would be very distracting.

As for the proposal to set the initial state to 1 by default, I don’t mind either way, as long as old files aren’t affected :slight_smile:

As far as I see you have to open the panel to change the state.

Especially for new users it is not obvious they need to explicitly set an initial state too. And yes they should know it is necessary to set one.

I agree this is a good think to keep in mind. Maybe the default would only be set on creating new objects (rather then on loading). No initial state should still be possible.

You can easily identify states with controllers. They have a dark dot inside the button. I would not mark the controllers separately. If you have a single state enabled, all controllers belong to this state. I’m not sure if a special marking has much benefits (and it is a separate topic ;)).