Thursday, October 20, 2016

Wednesday update #6 late - Hump Week


It's been a tough week, hard to get into it this week for various reasons.  I finally got the momentum going again last night, but technically that was Thursday, so really a very poor return this week:

  • Got a training area.  I plan to make the AI work itself out here.  So rather than mess with the main scene I created a trainign scene, and plan to build a whole lot of scenarios into this scene.  It will be sort of like an AI unit test, although I'll have to visualise the results, but it's just too difficult to do other ways.  The plan is to make changes to AI, then run this in as many scenarios as I can, and watch the AI do it's thing.
  • Cleaned up some code.  Creating a new scene showed me there too many weird dependencies in my classes.  I couldn't add AI to a player, without having to add this to the scene, with then needed the manager, etc, etc.  I have cleaned it up a little, though for the most part I just added the components, I need to move on.  Also, as I work more in the AI classes, I plan to clean up the code somewhat.  The structure isn't too bad yet, but evertime I come to an AI class I haven't seen for 10+ days, it takes me 10 minutes to work through the decisions.  I think In future projects, I may end up adding a tonne more AI classes, specific to different ideas, with descriptive class names.


But to be honest, I didn't get any real traction on any real work.  I'm hitting a bit of a wall when it comes to drive on this project.  I guess I came in thinking, that if someone who likes Aussie Rules games hears about this, I will get a lot of support, that might grow and grow by launch.  But there are many factors playing against me.  Firstly, I have never actually written a game.  Love sports games and complain about them as I do, this doesn't make me any more of an expert then 50m other sports gamers.  This really reduces peoples care factor about what I'm doing, because they (maybe rightfully) don't think I can do anything good at this stage.  I think another factor is the limited scope I'm aiming at.  It's a catch 22, because I don't think I could have finished a project if I was aiming at a fully blown console version.  But then nobody really wants a cut down version.  Then I guess it's just a bit disallusioning looking more into the future of what is indie dev for me.  If I can't even gather any interest in a specific sport with a huge lack of games in that area, then what chance do I have competing in bigger markets as a sole developer?

Well, last night I got some decent stuff going, so I'm back on focus again now.  I figure I'll do this until end of November, try to deploy as a beta to android, perhaps even IOS, and re-assess.  But there is no point putting in a half assed final 6 weeks, and looking back and saying I couldn't get any support.  At this stage my final hope for getting some support is to really work hard at making a decent fun game, and hope those that do step up to have a go like it and spread the word.  So this week I should be:

  • Working on unit testing.  That is boring code talk, but it essentially means my AI will have a set of conditions it needs to pass.  I did half of this Thursday, when I set out the conditions for when and how a player should get to a contest, but technically that's next week.
  • Work on getting to a contest AI.  There is a lot of AI to think about still, my first target is to get players to intuitively get to a contest, thinking about other players, the ball etc.
  • If I still have time, it's then collisions.  The biggest difficulty is going to be making a non-repetetive way for players to collide, be it the bump before the contest, a player flying in from the side, 3-4 players all going for the jump at once.  I have some ideas, though the code for this one will be interesting to say the least.  My ideal is that my unit test scenarios will produce not only somewhat realistic contests, but also not the exact same contest each time.  Like occasionally one of the 4 players should jump too early, because they are nervous about the upcoming contact from up to 3 players.  Yet other times they should nail the jump, and perhaps even take the mark.  But it is important to keep it simple first, so something there will likely give.

Wednesday, October 12, 2016

Wednesday update - half way point and screenshots

I have achieved what I set out to this week in terms of rounding off some of the gameplay options:

  • Scoreboard - this is now showing the score as well as menu options.  I also added a similar styled scoreboard in the game itself while playing.  I would have just gone a TV styled score tracker, but again through the grass roots idea would benefit from an old fashioned look to the in game score, I think it looks good.
  • Timer - again my default thought was a timer shown in a computer font, but again the old grass roots timer came to mind.  It's something any WAFL/VFL fan would instantly recognise, so it is now a must for my game.  Getting the hand to cooperate took more time than I'd hoped, and in fact the main one is still not working 100%, but it's mainly useful for in play, so you can now get a feel for roughly how many shots you might have left.  This will not only leave a little nice feeling see that style of clock, but also hopefully give a feeling of nerves.  Those clocks don't tell you exactly how long the game has left, so it's a bit of guesswork needed, good for nerves if it's a close game.
  • Gameplay options - I was a little worried about this, but it came together nicely.  I didn't want to complicate things too much, so kept to some pretty simple rules.  Firstly, the clock ticks a minute (of actual play time) and randomises whether opponent or you can get a play in.  For opponent right now, you pretty much just see the result (may choose to allow a defense against CPU later), for out turn, we get to play.  When we play, you'll notice in the top, the clock has moved on, and the score may or may not be different if opponent has scored.  The only smarts I'm building into the strategy, is if you get 2 goals in a row, the other team drops a player in defense.  This makes it a little easier to get it into your forward line, but the extra defender makes it harder to actually score.  Apart from tweaking the randomness a little, this is now pretty much complete.
  • Graphics - had a little less energy last night, so I just played around with a few graphics things.  I added a hot dog stand, and right where it used to be at Lathlain Park.  I added the 2nd stand.  I found a park bench that I will use a lot of, but putting it in the stand (as it is in real) doesn't look right yet.  Plus it adds 100+ detailed 3D objects to the scene, so not sure this will stay.  I might create my own very low poly bench for stands, and just never do real close ups.


As for general thoughts, it's been a yo-yo week.  A little on a high thinking that I'm half way done now, and I have a decent amount of game already behind me.  But I have a nagging problem I can't shake off.  If I release it as planned, it may well be fun to play, but for the random player, just playing any sports game without a league or something for it to mean something, will leave it too light.  If I saw such a game without knowing any background, even if I loved the gameplay, couldn't leave it a 5 star review, as it would feel incomplete to me.  Then if anybody doesn't like the gameplay, or finds a few bugs, might reduce it more, maybe even 1 stars.  If you don't get any 5 stars, but you do get some 1 stars...  it won't end up a good rating.  It doesn't mean that much in reality, as I know why it's not great rating, but it's still a public showing of my skills, and 2.4/5 isn't something to brag about.  Essentially, while the 12 week project is a great idea to get something up and running, and get something done, it's a little weak when it comes to app store releases, especially something like this, where not having a league option is an obvious hole.  I now figure I might get away with a public beta.  In this way, I can still release it in 12 weeks, but nobody will assume it's a fully finished product, and will hopefully mark accordingly.  I will still aim to do this on android (have checked google play, it's possible), and hope to be getting a Mac very soon, so then will start looking how to do this on ios too.

Next week it's back to player AI again.  I'm going to start with 1 on 1, but with the idea that it could be 2 on 2, 3 on 3, and any of those plus a floating defender.  But I imagine I'll be working on the 1 on 1's for some time still, as it's easier to identify and fix bugs.  If I get a bit of lighter time, I still have a lot of the ground features that need to be finished.

Screenshots:

Main menu.  Was a 2nd option, but it's not planned now, so just removed it.  Side white bar is an ad bar:

Start of game.  Our guy has the ball up the ground, you drag the full forward to give him a path

After taking the mark, camera drops back behind player to take a shot:

 1/4 time, and we go back to the scoreboard:

Wednesday, October 5, 2016

Wednesday Update #4

Very little real time since the last late update, but some progress has been made still.  To be honest, I've been fluffing around the big issues of AI and collision, but I feel on any day I can be in a position where I want to demo my game on my phone (happened quite a lot on holidays), and while I was proud with what I had to show, a few days work to fluff up the graphical side of things would have made it far more impressive.

Work done in the last couple of days:

  • I have a logo.  I created a facebook page now, and it asked for a logo, so I created one.  It's not too bad, and I've already put it on top of my scoreboard, which I think looks nice
  • I had a side thought about how to manage instructions in this game, and came up with a coaches whiteboard, so whipped one up.  I found a handwriting font, so it looks a little more like the coach is writing on a whiteboard.  It doesn't look spectacular, but is nice, and lerps in and out from the side.  I aim to use this for "commentary", which will effectively be coaches tips at 1/4, 1/2 and 3/4 time... assuming I have time to do this.  At very least I may have an array of encouraging comments for these breaks.  There is then a "got it" magnetic sticker that the user can press so they don't need that instruction any more.  The whole thing works quite well I thought.
  • I had various thoughts about this game being too easy, which essentially it would be in real life with just a 1v1.  The forward can lead anywhere they like, and without AI cheating, it would be very difficult to stop them getting a mark.  But if I allow more than one player to control my discs, which I didn't love anyway, won't work.  I also had a very simple approach to a moving version of this game, for mobile.  Drag a player to move them, tap to pass.  This works actually somewhat better than console sometimes, because I can instruct 3 players to move in directions, then tap to pass it to the one that works best, this would be difficult to master with xbox.  Well, I got it working.  Now, when you drag your finger from a player, it plots out points every 4m or so (felt about right) and shows it while you are still planning.  Then you press play, the path disappears, but is remembered by the player and they execute.  Once they get to the last point, the AI kicks in again, and if you don't want that you should be able to drag them again, though it doesn't currently allow this, and I may leave it out of V1 for simplicity reasons.  The way it works is it starts a tracking if MouseDown (also finger down) hits a player or their disc, and then tracks until mouse up.  It only stores points if they are 4m away from the last point, which works well, even if they completely change direction.  It stores those in a List of points for the player, then the various AI elements check to see whether that List is empty.  If it's not, the AI follows point to point, deleting points when they get close enough.  When all points are gone, other AI elements will again wake up and decide where to run to next if needed.  If the ball is kicked, the path is also destroyed, and they will either go for the contest, or not depending on where they are, who they are.  This works really well so far, and the player changes direction in quite a realistic way when following crazy paths, as I made them slow down more the larger the change of direction is.


That is all so far, and the list of changes needed don't seem to get any smaller.  Here is a somewhat brief overview:

  • Game management.  Have a main menu, can reset play, it tracks scoring.  But, it doesn't show the score.  I have a scoreboard, but am not thrilled about panning in and out all the time to show this, so would like an on screen score.  This could get tricky, as I've noticed I can't assign free text to the instructions board, and completely different free text to another element.  I'm cheating around this by making images of common wordings (like "got it", "Play", "Start new game"), which I may just continue to do, or find a better way to do text.  Other management issues not yet tackled include 1/4, 1/2, 3/4 time breaks, AI for opposition scoring, storing any setting change, previous scores.  There are stacks of bigger things, but that will be V2 if ever.
  • AI.  It's off to a nice start, there are plenty of minor bugs still.  I need to also think about when not to run full speed to places, such as getting to a contest still jogging, not sprinting to a stop and then jumping at contest.  When to run backwards, when to brace for a collision, when to lead or hang back.
  • Contest.  Similar to above, but worthy of it's own section, this is nearly non-existant so far.  So I need to build good physics around bumping into players, wrestling, diving for a ball, change of direction.  Not really AI, but more physics around how things will work.  This is vital, if I get this right, the game will feel right, and if feels right, it will be a good game, pretty much that simple
  • Graphics.  This area improved a lot, and I need to focus just on what I can easily achieve I think.  I need to paint the bipeds with football clothes, which I started and wasn't all that problematic.  I need to check through the animations and get those looking OK, especially around contests, though animations are going to be a weakpoints, and there is no easy answer there.  I need to work more on the home ground, though it looks OK for now, so this might be a lower priority.  Scoreboard still needs completing for when showing scores, not the menu.  Grass textures, ads on signs/field, crowd, umpires, animations for celebrations, coaches, kick to kick, these are all on the way too low priority right now, AI/Contest are far more important.
  • Sound.  There is none right now, and perhaps by V1 release too, again due to not being as urgent.  What I do have planned is crowd noise, football impact, collision noise, players calling.  I'd like noises for pressing options, music in the background.  Options to turn sounds off too.
  • Sound.  There is none.  However unfortunate, it may stay that way too


Looking at that list, I could spend a bit more time getting the ability to play a game with scoreboard going, which I'm only a few steps away from, so perhaps that is my main focus by next week, and then AI/contest has to become most of the focus:

  • Fix any bugs around end of play, should be able to also go to next contest without fuss
  • Show scores after each play, and the score during play.  I'm thinking of using a scoreboard like material and images to place on top rather than free text, somewhere central and big for current goal/behind/miss, and in the top right corner for current score, to give it a more authentic feel, will see how that looks
  • Have a 1/4, 1/2, 3/4 times and game finished.  Show the full scoreboard with proper scoreboard look at these breaks too.


Sunday, October 2, 2016

Wednesday Update #3 (Sundayish)

This will still be basically Wednesday, as I flew to Melbourne Thursday morning for a few nights away, and have done nothing since.  In fact, I was away from Friday before that with family and did nothing then either, so very little has happened.

I did get a few little pieces in:

  • Discs under players.  I will get some player looks done sometime soon, however I still don't know that will quite be enough.  I also like the discs under players in AFL TV shows, and realise it's pretty easy, so did that.  I put a 2 colour material on it, so we now havve noticable teams, blue and yellow, and red and black.  If the player has the ball, the disc spins too, so it's obvious when someone has the ball.
  • I also added a trail to the ball, to make it more noticable where the ball is and the angle it's going.  It's as simple as a Trail Renderer in Unity, and took only a few minutes to tweak into something quite impressive.  I might have to stop it when a player does grab the ball however, as it's more for when it's being passed.
  • I also took a couple of looks at the AI, mainly stopping the crazy running in circles, as it's driving me mad.  I tried to slow down when trying to turn more than a few degrees, and also to be more liberal in knowing when they are almost at a target.  Still not there, needs more time.


Most of all, I've changed the scope down to a total of 12 weeks work, from when it started.  It comes back to an idea from the Unity forums, which is to get something released.  The theory is if you set your ideas too big, the end line can shift, things can get a bit too hard, other projects come up, etc, etc.  It's essentially easy to not finish something, and always have that idea that never really led anywhere.  So the 12 week idea is to get something released in 12 weeks, just get something done.  Beyond that, is yet to be seen, there are so many variables.  In my honest opinion, it may need some support to go too much further.  I'm not necessarily talking financial, more just community support, which I'm hoping to get from a football forum, and perhaps even just from downloads/ratings on the app stores once live.

The 12 weeks will be essentially end of November, and I've really warmed to this idea, as it gives me a harder deadline, but that allows the scope to stay small, and perhaps just to grow as needed from there.  Also, in reality December is a difficult month, so having something out there is probably better than to be expecting to work on it hard.  Perhaps it's a good time to work on some post release work that is needed, if nothing else clean up some release bugs that come up.

So not much to report, but hopefully it's back on track this week.