Update 002 - Indoor and Outdoors
The next update is up on http://bluestar03.com/Chronicle/Alpha, Windows Phone, and now, Windows 8. This update deals with what I think is a crucial aspect in style for the game, going indoors and outdoors without control and/or visual interruption. In most games, let’s take Zelda as an example, when the Character goes Indoors or Outdoors, or basically across a door, the Character no longer responds to input, and an transitional animation plays. Once the animation ends, the Character once again responds to Player Input. Additionally, what goes on across the door has no impact on what goes on the other side of it. Now, we all are accustomed to that. We may not even think about it, or actually exploit it, intentionally crossing a door to get a break from the action that is on the other side. This last one breaks emersion for me. The Enemies are basically waiting on the other side, not going after you. Now, some of this may be technical limitations. The simple loading of rooms, and using the animation to hide the loading, being that in Twilight Princess, going across a door took longer than in Wind Waker, or maybe the animation wasn't long enough. The same may be true for old Zelda games as well. For today, however, it is more of a stylistic choice for games that mimic older games, or even modern games that are not to taxing on the system. Take Minecraft, it is a very large open world that has no transition across the doors. The action of one side of a door can spill to the other side. Not breaking immersion. And I want to see if I could apply something like that to a Zelda style game.
What I have done is simply create two doormat objects. Place one inside the door, when the player is definitely Indoors, and another one outside the door, when the player is definitely outdoors. They both trigger a Boolean is_outdoors in the Control object when the Player collides with them. The wall object have the variable in_room. The value is 0 by default, but anything else if it is to be the indoors of a room. When Control.is_outdoors==True, all Wall objects win a in_room value of 0 are drawn, as well as the Roof, and Indoor Objects. If Control.is_outdoors==False, then the Wall objects whose in_room==Control.in_room are drawn, along with the Floor object. The Control.in_room is set by the Indoor object. Additionally, since the Player can now be obstructed from view, the Player draws itself with very low alpha after everything else has been drawn. So a "shadow" appears on top of everything, like Mario Sunshine.
This feature isn't done yet, for the most complicated part is yet to come, going upstairs, and downstairs. But before that, I'll work on the pause function. It is simple, and needs to be done anyway. Plus I can add controls to test various values and implementation to help fine tune the game. Like whether Static, Dynamic, or Gliding virtual joystick would be the best default implementation, or to just pick one from the three. The next update shouldn't be long, but the following one will.