3 mins
The Start of Development
This week I have been working on the actual implantation of the game. I started by developing the level generator which required a lot of thought to get right. I had some confusion with the sides of the cells which made some odd results which I didn’t except. This was fixed with relative ease. I also had an issue where the program would endlessly get stuck in the loop as I forgot to remove a one from the total number of cells required open to finish (this is because it starts at zero meaning it could never get the amount needed to quit). This ended up being fairly easy to implement if I took time to break down each stage into steps and write them out within the code as notes. These notes were then tidied up and used to provide context and understanding to allow for easy maintenance. An issue I am having to think about is how to render these tiles out and also how to store them. I won’t start thinking about this yet as I need to have a system in place to actually generate the data first. The system developed a wide range of connection types and always allowed a path through the level which was perfect for the task it was designed for. I added seeding options into this to allow for different types of levels as well as different styles.
The Birth of the Scene Manager
The level generator has been implemented and works well. The tiles however have not been fully developed so currently there is no check to make sure the tiles and the cells match with connections (it has been commented out). This was to allow for testing of the actual generation of the tiles and to see if there was any variation or calculations between a cell made from the same tile. This highlighted a strange artefact that I wasn’t expecting which took up a lot of time and caused countless confusion. It turned out to be a simple issue of the pointer being used to load the string sometimes falling out of scope resulting in the data being incorrect. This was down to it being a ‘C’ pointer and not a ‘C++’ pointer.
The program as well has a Scene Manager, this came about as quite a few systems needed to interact with these objects but I wanted to give a constructed and an understandable approach. The way this works is by holding the data within a vector, since this can be resized dynamically it doesn’t hard limit the program allowing for more adaptability. This however avoids most of the draw backs as objects are only created at the start of the level meaning it doesn’t resize during gameplay which would be quite resource heavy.
The Scene Manager (which is referred to as the level Controller in the program) also has access to all things that can take place logically wise, by this I mean; physics, rendering, victory conditions, culling and camera position. This makes sense from a design stand point as it governs everything about the actual level the player is currently playing. It then communicates with the overall game what happened during the level such as score and whether the player was successful or not.
Subscribe to this blog via RSS.
Ai 1
Blog 13
Design 8
Snake 3
Thoughts 1
Concept 3
Birdman 2
Blades of war (1) Development (4) Ai (1) Dynamic fire (1) Blog (13) Board game (1) Play and games (1) Design (8) Low level programming (10) Snake (3) Thoughts (1) Endless runner (4) Play & games (2) Global intervention (2) Concept (3) Birdman (2) Networking (1)