Final week is approaching, next week is GGC and last week has been the longest week of my life. I think I’ve put in around 60 – 70 hours this week, so now I’m just exhausted.
The beta that we had earlier this week didn’t go so well, so we had to put in some extra effort to show that we have a game that is a little more polished than what we had when the beta was going on. I have to be honest, we currently have a prototype and not really a beta, however again honestly that is what we were aiming at from the start. Putting together a MOBA and an RTS to make something that works requires a lot of time, effort and planning. I think we have gotten there. Do we have a well polished game, not really, again not what we were aiming for.
Beta
We have a in my opinion a good looking game, it is for us, fun to play, however the problem is that we know how to play it. During the beta we had some people test the game and the overall criticism was that those who had never played a MOBA didn’t know what they were doing or what their goal was. They didn’t know what happened, they didn’t know what they were supposed to do. Those who had played a MOBA before had a little more fun and knew a little bit more what was going on. That said since the beta on Wednesday and up until today a lot has happened. For instance we now have control groups, something I was working on yesterday. Pathing was a big problem. Unfinished graphics, for instance we had building nodes that didn’t look like anything in particular.
In any case, we got a lot of feedback on a lot of features that we had. That pathing for characters didn’t work out so well is more or less because A* that we used had an issue with how we have designed the map. I’ve looked at how we can use the NavMesh system that is in Unity, but the problem stays the same, while the navmesh system seems a bit more intelligent than A*, the navmesh had certain areas it claimed that nobody could walk on because the paths were too narrow. What we ended up doing was to remove the pathing, reason being that if the server started lagging A* started acting really strange and sent creeps away faster for some reason and then sent them back, why I’m not entirely sure, but I’m guessing that it detected that the creeps had travelled too far and sent them back to the position they should be at, however that’s just a guess.
Control groups
One of the things that the commander is doing in our game is to act as the character we call support, but also as an RTS player. The commander has buffs, one that can heal, one that speed up the hero and one that shows the map. The other thing the commander can do is to select units and send them on the way, the problem however has been that when the commander selects the units, and wants to send them one place, that is fine, but the commander lacked the control of saving the selection and bringing it back. So that is one of the things that I’ve now made possible. Unfortunately inside Unity, when using Control + 1, you get to the scene view, so I had to rebind that key into Shift + 1 all the way through 5. So now the player can make 5 different selection groups.
When I made the drag selection box in Unity, what I did was to create a gameobject that could hold the selections and keep track of which units that were selected. So making a control group although it took time to get the logic a 100% right, it made it easier for me in the long run because all I needed to do was to save the selected gameobject list when the player pressed Shift + 1 and store that into an array of gameobject lists. When the player then presses 1, the list is copied over and the objects in it are selected. Getting that to work didn’t take that long, what was the tricky part however is that the lists that you create needed to be newed for some reason. I looked it up and it seems like Unity uses reference instead of copying variables in some cases, lists seemed to be one of them.
Buffing
Another issue that we had was that if you selected some units and the commander wanted to buff those units or other units, because you press the left button to activate that buff, the units were automatically selected, because that’s what I had chosen the game to do. I’m sure there is an easier way to solve this, but after a lot of testing without success, I ended up using the same logic as with the selection group, however instead of that I decided that if the user presses Q, W or E, the next left click won’t register. It does open up for one bug, if the player presses Q, W or E, then cancels that and then want to press left button, the first click should deselect and select the units again. Although it is probably solvable, I don’t think it’ll be worth spending a lot more time figuring out a better solution, simply put, we don’t have the time to do that.
Other
Other than that I’ve done a lot of things, on Thursday I sat down to remove capture nodes and building nodes from the map. I sat out the new base layout which is now divided into 3 places. One of the complaints we had for the beta was that we didn’t have a proper backdoor protection, so I added that to the game as well. So now you can’t base rush eachother, you need to kill the secondary bases in order to proceed through to the middle. Earlier in the week I changed so that there’s a population cap of 10 units, which later on was reduced to 9, so that there will be 3 creeps on each base.
It has been a tough week, but we’ve gotten a lot more done in just a short time this week. Mostly because we’re beginning to be so used to programming in C# and Unity that creating scripts takes less of an effort that it used to do. At least that’s the way it has been for me.
Screenshots
Here are two screenshots from the game as it looks right now. One was a test I did on the minimap so that the selectionbox wouldn’t show when clicking the camera, it now works. Second one is of the boss called snappy, which is meant to give more resources to the commander when he dies. Not that I had anything to do with Snappy, but I think he looks cool 🙂