Wednesday, November 17, 2010

Weekly Progress

This week, our main technical milestones were to prototype 3 different monsters and to implement a version of the sequence that we laid out last week. Kyle picked up the monster prototyping milestone, and most of the work needed to be all in line - so it wasn't really possible to split them up. As such, I went to do the sequence from last week, but this is somewhat reliant on having the monsters already implemented.

Because of this, I couldn't really start this work until those monsters were completed - something we overlooked a little when we were laying out the milestones. Instead, I chose to do something as related as possible. I implemented a system for these 'battle sequences' in general. I worked on developing a system that will allow any sequence to easily be programmed into it. It is based off the 'pool' idea that we developed for the last milestone - in which we define groups of monsters to spawn, the weight of each monster, the spawn rate, and when the pool starts and ends. By just filling in these simple variables, a battle is entirely run by the system, allowing us to rapidly prototype many different sequences with very little code - which could even eventually be turned into a scripting or graphical interface to allow users to develop their own battle sequences.

This also provides another abstraction for the spawning system, in which monster spawns are raised as an event with a given monster type. A monster spawner observer is then registered to these events, which then handles spawning the actual monsters. This will allow us easier implementation of the version of multiplayer in which one player spawns the monsters; The user can have a GUI with buttons for each monster type, and clicking one would just raise the same event that the monster spawner is listening to - leaving much of the spawning logic abstracted away and applicable to both the single player and multiplayer versions.

With this system in place, putting the actual sequence from last week should be pretty trivial once the monster prototypes are finished and merged into the build. It'll basically be just translating the sheet we have into a handful of straightforward "scripting" of sorts.


In addition to this milestone, I chose to work on some other things which seemed relevant to the prototype. The next big thing we had questions on was the map system - how the map would look and giving the user information about these. This ties in a lot with one of the milestones we had this week about monster information. Though it wasn't formally defined as a milestone, we believe that this would be another important thing to hammer out and may affect the rest of the game - it's logically the next step to implement and test. As such, I have some work done defining a tree sort of structure to allow us to lay out the maps and some simple GUI work to display these. Similar to the other milestone, this is mostly a back end allowing us to implement the concrete examples more quickly when we get there - though this is a more complex problem and not all the logic can be handled programatically. For example, we can layout a map as a tree and the functional requirements that the player would have to fulfill for each one, but actually laying the map out across the screen is something we want to take more artistically as opposed to having an algorithm to draw it out.

No comments:

Post a Comment