In my previous post I shared a few screenshots of how the overworld looks like at this point. We have about 6 weeks left so I gotta speed up on the process, but before I continue creating the rest of it I need to add a “streaming” component to the game.
Many might know streaming as the sharing of gameplay footage of a game through the net, but a few weeks back I learned that in game development streaming is known as the loading and unloading of assets in a game.
Well lets assume that you have a game that has at least 5 levels, and each level contains NPCs, enemies and items that can be collected by the player. How well do you think frame rate would be if for each of these checked for interaction with player every frame? Maybe the game will not run that smooth, right? So in a case like this you will want some parts of your world to be loaded only when necessary.
The following will be the scripts that will be necessary for the management of persistent objects in the game. “Persistent”, meaning that it will be :
– Region Manager: It will contain a list of all the objects that will need to be persistent through the game such as enemies, collectible items (weapons, keys) and doors. As an example, if an enemy is killed, a weapon collected or a door is opened, they should not go back to their “original” state.
– Entity Data: This will contain a value that will define the “state” of a persistent entity in the game. This could be ‘dead’ or ‘alive’, ‘taken’ or ‘not taken’, ‘open’ or ‘closed.’ It will also have an id property in order to identify objects of similar type.
– Enemy Manager: This will manage all enemies of the game. Enemies will have an id that will distinguish them between each other.
– Stream Manager: This will do the loading and unloading of the regions of the world. It will communicate with the enemy manager in order to keep track of what enemies should be deployed when a player enters a certain area.
This should be done by the end of this week since we have other projects to work on at the same time. Hopefully everything will go smooth like butter!! For now, I’m out!