Week 5 was our first full week in the Deep Dive stage. As the week began, I started working on the 3d grid system we would use to make designing levels and placing traps easier. Meanwhile, Ben was working on a basic networking test in Unity in order to figure out how to use Unity’s networking system.
The team met on a Thursday night to discuss possible ideas for the narrative, something that would give context to the events happening in the game. We also had to flesh out the set/match structure of the game, which we ended up doing successfully after some confusion. Ben showed off the network test at this meeting as well, which worked on his computer and laptop at home but didn’t work when I tried to connect my laptop to his (as we discovered later, this was because we were using different version of Unity).
For the grid system, after a bit of trial and error I figured it would be best to split it into two parts:
-First, there is the editor, or scene-view grid system. This is simply the tool that allows the designers to place art assets in Unity’s scene view, but snaps the assets to a grid of a certain size to allow for easier level creation. There are a bunch of plugins for this on the Unity Asset store, and after some research, I settled on one and purchased it.
-Secondly, there is the “in-game” grid system, this is what allows the defending team to, when placing traps, “snap” the locations of the traps to the “pre-existing grid” (aka, some sort of grid whose dimensions match up with the editor grid system). In the end I created a 3d array of BoxColliders using the built-in multi-dimsional arrays in C#. Obviously, this grid system would need to have the dimensions (for each cube in the grid) as the editor grid system – since the art assets will be created according to the scale of the grid.
The primary thing the grid is used for in-game is for the trap-placing system, so I figured we could just raycast from each defender and see if they hit a part of the grid, then snap the trap preview to that slot in the grid. It worked pretty well, but needed some tweaks. Overall, that’s what happened this week.