A lot of good things have happened this week. I'm still quite shocked at how easily things have seem to come in the first few weeks of using Unity. I'm not saying there aren't concepts that are well beyond my current skill level, but when I do think of doing something, it tends to be something Unity has accounted for more often than not. You know, it's kind of the opposite to a lot of things, eg. Netflix (OK, Netflix AU especially). When you browse Netflix, it seems wonderful and grand. Like a framework that demos all it's strong points in an instructional. But if you search for a specific film on Netflix, it's massively dissapointing, quite like having an idea, and seeing your code framework won't support it.
It's difficult to know just where to start for this update, I think I'll just do a walk through of how the game currently plays, and how much I've done in each area.
Firstly, a little theme overview. Having no licensing for a sports game poses problems. No matter how you put it, people love characters and teams, sometimes more than the sport itself. So while the obvious route would be to make a fake league that mimics the big time, I'm going a very different way. I'm looking at creating a grass roots game, with the look and feel of the smaller leagues, with it's small but passionate crowds, interaction, kids mucking around on the oval, ice cream truck on the hill, mates with eskies, old fashioned stands and scoreboards. It might seem an odd choice, but it really fits with me. I go to big games sometimes, just last week went to a game with 60K crowd, last year 100K grand final. But I honestly enjoyed if more in a 6K crowd a few years ago when my team travelled way out of the city to play the newcombers. Best of both worlds for me, good football, good atmosphere and feel. I really don't gel with the sardine like stadium seating, long queues and massive prices for anything, an hour to get out of the carpark. I figure I have to be true to myself first, and in doing so can hopefully catch a few other hearts out there too.
So, in saying that, here is the run through:
* Start. Last Wednesday I had a functioning start menu, with one working option, Start New Single Player. It was a 3D floating canvas, and looked fine, but I had concerns over how to get that to the next level of look and feel, not my strong point. Even the crud AFL games have some slick menu systems. It came to me Saturday. If I'm going grass roots, what better way than to display the menu on a grass roots scoreboard. I already had the scoreboard, so quickly added a couple of cubes, put an image of a nice old scoreboard font (similar at least) saying Start New Single Player/Multi/Settings. It stuck my eye that the scorebaord was black, just just windows paint black. I looked around for how to make it look more realistic, and settled on a hybrid image, which blends between black and grey in a random sort of way, and now it looks a little tired and worn, excellent, a real scoreboard.
* After you click Start, you go straight into the game, and have to choose what your full forward should do, lead forward, drop back, or move slowly to the middle and wing it. Not much has changed here, there are 3 discs that appear, click one of them, choice is made they slowly disappear. After choosing, the AI defender chooses what defense they will attempt, and a 3, 2, 1 countdown begins. I loved the discs at first, but am less fond of them today, they may go, I might get the user to drag the player to where they want them to lead to instead. The countdown may go too. It's mainly there to allow for networking problems in multiplayer, so attacker and defender can make a choice, it's an indication both of you have chosen, but come to think of it, I'll probably just have a sign showing that other player hasn't chosen just yet, no need to slow people down with a 3/2/1. Although it's still nice to know how to do it.
* Once the countdown finishes the player starts doing what you told him, and the defender does the defender AI choice. There is also a player further up with the ball already, and another defender on them, and they are just staying there as if in a marking situation. There is a tonne to do here still. I have lost some AI code here, I want the AI to allow player or defender to be able to choose a 2nd strategy if their choice is clearly not working, but that shouldn't be too difficult to add in soon. I will also look at adding more forward/defenders, as 1v1 seems a little easy. I might even make this fairly random, so sometimes you do get the 1v1, other times it's a crowded forward half. Perhaps it's not even that random. After you kick 3 goals straight, AI decides it needs another defender, so suddenly there is a spare defender too. Less random = better in my opinion.
* You then tap somewhere on the field to pass it there from the half forward. To be honest, this part still feels fine. One part I love is that a player can make the decision to pass it anywhere quickly, because there is usually a big disconnect here between player and what button to press. Eg, in a Madden situation, I have to learn who is XYAB, and while the play is on I'm trying to remember which button is B, woops got it wrong. In real life, the difficulty is knowing how far in front to pass it, not looking down to see if it's button B.
* So the ball is kicked, and the full forward and full back forget their leads now, and try to get to the ball target. If they get there early, they stop. This is technically not wrong, but it looks silly, they should slow down to a jog if they are getting there too quickly, or perhaps wrestle/bump first if they aren't open. But it's fine for now. They at least aim to meet the ball before it lands at good jumping heaight, and jump at it.
* Next up the contest. Forward and back both jump at the contest if they are close enough, with forward trying to mark always, back happy enough to spoil unless clear. This is one of the biggest areas that needs improving. It works OK, but the contest is one of the most important parts of the AI/animation if I want to get a realistic game. We should have things like bumps, players jumping over others, etc, etc. But for now, it's simply if I'm more open I'll mark, otherwise it will be spoiled, which is OK for now.
* If the forward takes a mark, they line up for goal, and the defender stays on the mark. This is all new, and I love it with minimal efforts made so far. Something to mention here is the camera. I had a 45 degree, behind the goal view for the game, but when I changed the menu to the scoreboard on the hill, I added a pan back to the game view position and rotation, it works so nicely. So I did the same here, and for the first time, you are down with the player, staring at the goals. At this stage it's a simple task, just tap somewhere on the hill behind the goals, and it sails through, but I will add some difficulty to this later. A box collider registers it as a goal/point/out of bounds, and the player is shown this result on the screen. It's a 3D text at the moment, but will probably be soemthing fancier, and likely even have the goal umpire running round doing their thing later. I also want the player to celebrate/get upset depending on result, talk about this later on.
* The result stays on screen for 3 seconds, then the camera whips back to the top down view, and you start again. Scores are kept, but nothing gets displayed at the moment. There is also no exit/skip function, and it's possible to get stuck if a mark isn't taken. In this case the players keep playing, and you can even still score a goal/point, but if you don't there is no way to stop the game.
Overall, the AI is still very weak. As has been shown above, I've played with quite a few areas this week, and while some new AI has been added, I still haven't replaced everything I lost a couple of weeks ago. But there is random strangeness creeping in in most areas. For example, if I mark, the defender correctly goes to the mark, because they are closest. But then the other defender comes down, and also tries to stand the mark, while his opponent drifts into goal for an easy mark and goal. Also, I had no animations until a day or so ago, but added idle and run recently, then jump and kick(s) last night. It works fine, but I had to stop just moving players around like chess peices, and instead get them to rotate to where they are running. Before, if there was an overshoot to the right, they'd whip back to the left, and so on, left/right/left/right. Now that they turn and run, when they overshoot, they start running circles around their target. It's easy enough to fix, but I need a more realistic solution, which will include a lot more animations (eg. stop running hard, turn back to the left) and physics (don't run in a big circle to turn around, slow down, change direction then start running again). If I kick at goal the raycast hits an invisible collider, so players start running towards the hit point, which is 5m in the air, so they float up while running. Very funny, but very not life like, and any one of these things will immediately take you out of the game feel, so I need to get on top of these things.
I'll call it quits on the Wednesday update, but have a bigger scope sort of email coming up too later.
No comments:
Post a Comment