Halfway through the month, so it’s time to write up another report.
I had some trouble deciding how some parts of the game should work, and so wasted a lot of time this sprint getting character movement working 3 different ways. As a result, and on the advice of a friend, I took a step back and did some real planning ahead for how I want certain aspects of the game to work. There’s still some bits which are a bit hazy, but I’m comfortable enough with how movement and turn orders work to carry on with them until I start tweaking things later. I’ve also planned how I’d like the camera controls to work as that’s always something that can cause a lot of aggravation in games when it’s done badly, and was shown a few new tutorials on this topic. While I was at it I also did a first draft of the in-game history and setting, to help give me something to focus on thematically. It’s very rough at the right now, but it does give an idea of what the world will be like when it’s closer to completion.
Progress within Unity itself has been slow, I had trouble getting some features working, and others I finished several times only to realise that what I’d made wouldn’t work at all as a multiplayer game. Characters can now be rotated through when you click a button, and movement works by planning out the way-points for a single character then clicking another button to confirm that’s the route you want to take. I ran into some major problems with collision detection, stopping characters from trying to walk through solid walls and the like. I’ll try not to get too technical for anyone not familiar with programming, but for some reason it was not detecting any obstacles at all in one half of the map, but the other half it was always finding an obstacle (the same one), regardless of what was actually in the player’s path. I’m still not sure what was causing this, but ultimately I tried moving from using a Raycast to a Linecast and everything worked perfectly. It’s very baffling as the only difference between the two methods is that Linecasts only check the distance between 2 points in the world, where as Raycasting can continue for longer distances. although it should have gone the same distance as the Linecast in this case. I’m really not sure what’s going on here, but I’m going to have to leave looking into that until a later time.
I didn’t end up finishing off the Introduction to Unity 4 tutorial I mentioned in my last report, as I’ve spent most of my time writing scripts and trying to understand a lot of new concepts in that area. I’ve since discovered that some of the techniques I’ve used are bad practice and not recommended, but the same places I found this out never mentioned why, or what you should use instead. I’m going to need to spend a bit more time learning how you should use scripting in Unity, and not just struggle through without fully knowing the API. Instead of the tutorial I planned to finish off, I spent some time working through a new set of tutorials which a friend recommended. This one covers character controllers in much more depth, and teaches you how to prevent the camera from bashing into scenery and getting blocked by other objects. Unfortunately there’s an issue with their website, so while I can see that there’s about 60 videos total in this course, I’ve got no idea how long the entire course is, as the videos range between 5 minutes and 45 minutes in length. I’ve also finished off the 2nd chapter of the Art of Game Design, and I can see that it’ll be invaluable in making this game fun. I’m going to pick up a copy shortly and plan to read 1 chapter each week.
For the next sprint I’m going to work through the Introduction to C# in Unity tutorial on Digital Tutors, and as a good chunk of it covers basic programming theory I’ll be likely be skipping a good chunk of it. I’ll also continue with the Simple Character System tutorial on 3dBuzz, but have no idea how far through it I’ll get without knowing how long it is. Because the current plan is to use mouse controls, a lot of these lessons aren’t relevant for now, although the camera ones will be really useful.
Feature wise I’m going to get a couple of buildings into this game and get moving between multiple levels working. I’m still not completely certain how I’m going to get the hot spots working, but multi-level movement and combat is vital for this game and I need to tackle this early on. I also need to get some rough combat mechanics working. For now just being able to select anyone else on the map to shoot at will do, then I can start working in different levels of cover, range, aiming, etc. I also want to tidy up my in-game scene a bit, and get some different models in so I can take some screenshots. Right now it’s fairly bland landscape with a few generic soldiers stuck in the T-pose, and the idea of showing it off to anyone just feels embarrassing.