ZMPIC Part Two


I did a fair amount of work on it last night, getting a nice background into the main menu, implementing change of camera size, putting proper rotation buttons on the crop frame, and actually cropping and rotating intelligently, depending on the crop frame configuration.

I aim to get a little bit done tonight too, including:

  • Get image display proportions correct, once cropped and/or rotated
  • Shrink size of infoPane to fit around cropped image
  • Put tick icon in the OK button on infoPane
    • Probably do this in the main app too
  • Put cross node in top right, and add functionality
  • Render semi-opaque controls over the image in infoPane
    • Opacity slider, and 4 or 5 background colour buttons
  • Limit move events, while infoPaneVisible, to only allowing opacity slider to move
    • Apply thread so that, only after being still for 600ms, events relating to opacity slider are fired
  • if (imageProcessed && processedImage != null), render processedImage, else render preProcessedImage
  • Apply background removal
  • Render currentMainImage and/or currentSideImage on MAIN_MENU if != null
  • Image Capture improvements:
    • User presses screen, it beeps. One second later it takes the background image, and starts the countdown
    • Counts down from 10 to 1, then takes x pictures, y milliseconds apart, making audible noise each time
    • Says “complete” when finished
  • Pressing OK/tick on ImageEditor dialog will save as currentMainImage or currentSideImage accordingly
  • Get load/save settings to work properly

I think that’s comprehensive enough. I will soon start having to worry about how to handle the uploading to ZM, and also the importing to the main app, as well as developing the Help functionality.

Shouldn’t be too long before this is on Google Play though.






Zack’s Mohawk Player Image Capture, my little app for getting player profiles into the main app, has recently sprung into life and will hopefully be completed soon.

Gonna do a little bit on it tonight, but nothing too strenuous.

I shall be mainly working on the editor, dealing with how to crop the image and rotate accordingly (if required), as well as improving the node icons and a couple of other minor GUI improvements.

I will soon be looking at the actual image capture method, with the background capture, and then the timed capture of the actual image(s).

Not forgetting the Help function: I need to implement an infoPane with navigation (kinda like the sponsors infoPane in the main app) where the user can cycle through images that explain how the app works.

Shouldn’t be too long before this is up and running really…



v0.2 Done

Over the weekend I finished off the Championship Intro and v1.0 of the Tournament Brackets, as well implemented the “triple tap” quits thing and a few other bits, and boxed off v0.2.

I will come away from the main app momentarily now, while I create the app for capturing player profile images etc.

This shouldn’t take too long. The main tasks/aspects are:

  • Intuitive GUI/menu system
  • Methodology of capturing and processing the images
    • Rotation of crop rect
    • Timing of first and second image capture
    • Post processing
    • etc.
  • Settings
    • Camera dimensions
      • Need to attempt to default to a standard size, capturing any errors and falling back to next available dimensions
    • Number of images captured in burst?
  • Post-capture
    • Uploading to online server
    • Importing to main app

That about covers it, really. I’m sure the actual implementation won’t be so straightforward, but what ever is?



Good Progress Made

Got through a fair amount of work over the weekend. Fully completed the new Training Screen, made a good start on the Tournament Brackets, and fixed that horrible bug which would freeze the second match you play in a tourney.

In fact, that bug was due to an invisible (but still blocking) infoPane which comes into play when you get your first competitive win or submission. I will still need to fix that, but it comes under the “coach’s advice” session now, so I can count that “freezing” bug as fixed.

Did a few other bits too, including making changes to the Credits screen (allowing various font sizes etc.), and generally made some nice improvements.

My next tasks are:

  • Finish off the Tournament Brackets
  • Actually finish off v1.0 of the Credits
  • Do Championship Intro
  • Implement “next sequence” and “previous sequence” function
    • To systematically cycle through every sequence, checking validity, missing none out
  • Minor stuff
    • Make “in gym” improvements proportional to fees paid
    • Write unit test to find all core skills that are not in any of the gym’s special skills lists
    • BUG: After initial start up, we’re getting the wrong “day of week” (Mon when it should be Tue)
    • BUG: “weighted decision” doesn’t seem to factor in “intelligent rest”
    • BUG: When coach appears to inform you that a challenge has already been rejected, it seems to be THEIR coach, not your coach

And that will be boxed off as v0.1.13, after which I will begin work on a standalone app whose sole purpose is to capture and upload player profiles for the main app.

Looking ahead, I think the main concerns I have – as the end of the project approaches – are:

  • Sound issues
  • Using expansion packs
  • Online stuff

That’s probably about it actually! Doesn’t seem so bad 🙂

Right, gotta go!



Quick Update

I made some good progress last night, implementing the “previously existing matches” aspect fully. There are a couple of minor bugs, post-execution, but the execution itself is done correctly.

I also made little starts on the new training screen and the tourney brackets and, when I get these finished (and also tie off a number of other loose ends), I will box this off as v0.1.13. To be honest, at that point, it will be really starting to feel complete.

I still believe August is a realistic release date – I think the pace I’m maintaining at the moment is good enough to achieve it, and also not too intense as to totally piss off my good lady.

Not much else to add really. I’m just gonna keep at it the way I have been, and it will soon come to fruition. I belieeeeeeve.



Pre-Existing Matches, Training Screens and Tournament Brackets


Tonight’s plan is to get a fat chunk of progress done via the following:

  • Fully implement the pre-existing matches upon start up
    • Have 20 weeks of matches already in the books by the time P1 joins the game
    • Championship Matches are all good to go
    • Player can effectively jump straight into competition with Challenge Matches
  • Fix the “crashes on second P1 match in tourney” bug (and a few related bits)
    • Fade handshake sequence in
    • Slow down rendering after keyframe
    • A certain number of frames past keyframe, stop rendering, immediately render colour coded player names
      • With a bang
    • Fade out after 1-2 seconds
  • Have a quick stab at redoing the training screen
  • Define all the relevant HashMaps for rendering tourney brackets
    • Temporarily plot out the bracket points in green

In subsequent sessions, I am to:

  • Finish off the training screen and tournament brackets
  • Implement next/prev sequence buttons, to cycle through all sequences in order, to make sure we’ve not missed any out
    • Do this before next session, so I know EXACTLY which sequences need to be redone
  • Have a stab at Championship Intro

Then I’ll tie that off as v0.1.13 and it should be good for the next filming sesh.




No Rest For The Correctly Coded


I sorted that “excessive resting” bug last night. Turns out that, since I was factoring in energy requirements and points scored, any option with no energy requirement or points reward was producing zero percent in the weighted value array (or worse, NaN when dividing). So I just ensured each value was a minimum of 1 and that sorted it.

I also finally completed the sponsors’ logic, meaning that the player is more likely to get offers if he has earned it – and those offers are of a value that is also proportional.

Another box ticked off.

My next focus (focii?) will be – in no particular order – the following:

  • New training screen
  • Tournament brackets
  • Pre-existing matches at start of game
  • Championship intro

I’m particularly keen on getting the pre-existing matches sorted, because that enables the player to instantly get into challenge matches as soon as he’s playing. I want to remove a lot of the “barriers to enjoyment” that have basically crept into it.

A couple of minor things that I will probably do soon too:

  • Put the sponsors feedback text a bit lower
  • Put flags in tourney intro
    • Bonkers idea! Play little snippets of each national anthem??
  • Limit fluctuations of CPU players’ energy to between 90-100%
    • Too many players entering tournaments knackered

Online Stuff

Been thinking about (and planning) the online side of things lately. I’m concerned that the game needs to have this aspect finished for the initial release, otherwise the uptake might be slow.

I put myself in the mindset of the player that just wanted to run the app and get into a match immediately. Online play is key for that.

I’ve already mapped out what needs to be done, the various GUI elements and alterations to the core code, but it will take time. It’s the kind of thing that could be completed comfortably if I had backing and could afford to throw myself into it.

I wonder what a realistic timescale for completion might actually be, if I take into account online play, commentary and the player profile pics etc.