Visual Entities - Qwarkster/gamesys GitHub Wiki

Currently I have a few elements that are functional in some sort of fashion, continuously working on fleshing out the details.

Scene

This is the basic group of elements that is displayed in a game window. A scene can have multiple Views, however it will only contain one map, on the premise that it's loaded map can have multiple views, based on different characters possibly being in different places. Eventually I think we will be able to display and or run multiple scenes at a time, but my poor brain only allows for one at a time for now. The scene itself technically can be drawn to, and to be fair a view is not always necessary, once I confirm the code is organized properly. We do set the background color of the scene, which draws out if there are no views.

View

This is literally what it says, a view of a scene. It will have a specified camera size that can be up to the size of the scene itself. It was primarily created with a Scene having a map loaded and showing a specific view of that map, however I have already allowed a View to be active without having to show any map details, with custom drawing functions such as creating text, in the hopes of moving towards using this ability to create menus etc. The cool factor right now is you can have multiple views of the same map, each view can focus on a different Actor. Creates the ability to actually make a split screen multiplayer game with great ease.

Actor

The Engine will hold a collection of Actors. These actors can be attached to Scenes, and made visible on required Views. In this way our actors are persistent across the Engine, as they move between scenes. Actors can be focused on by Views, which will center the camera on the actor if possible, and if not, keep the actor in view as it moves to an edge. An actor can move in and out of a View that is not focused on it.