Pushing Through

Evan, Matt and Daniel had about a two hour lunch earlier this week. We specifically did not go with anybody else from the office because we never actually get much Mealtime discussion done with others around. We just aren’t disciplined ourselves to stay on task. Earlier in the week Matt and I had talked about doing an after-work meet-up or something to talk through a bunch of stuff that we kept punting and saying “we’ll figure that out later.” Problem is later had passed and we still hadn’t made those decisions. We were both starting to run into issues where we couldn’t easily move forward without making that decision because it was going to change how we made artwork or code decisions as well.

This time we got a lot of stuff covered. We pretty much nailed down the single player campaign. We may end up changing it as time goes on, but I think now it will be more of tweaking it instead of redesigning it from scratch. In talking through it we were also able to iron out some ways to make single player even more entertaining than it originally was going to be. Part of that single player discussion also allowed us to fairly well nail down the in-app-purchase system and how it would work. What should be purchased and what shouldn’t.

Out of the in-app-purchase question we were able to nail down a few other things as well. We didn’t even plan on it it sort of just happened as we sorted everything out on a big pad of paper. One item that got identified and put on paper was the idea of power-ups. We have talked about them a few times before but always just kind of a vague, “yea that will be cool we should work on that.” We do not have a final list of the power-ups yet but we made an initial list that looks very promising. Part of this list is how and when they can be obtained and used.

Another item that came up was the idea of vanity decorations. This was a major morph as we talked through lunch. Originally I think it started as the idea of the character image always matching up with whatever power-up the player chose to have available that game. From there it became the idea of a standard character but just some cosmetic differences depending on the power-up chosen. The final incarnation was the idea of an entire character generator. There are a lot out there, but the game we used as our model for discussion was World of Warcraft because we were all familiar with it. It is also essentially the basic form we will be following.

This was huge for me, as a coder, because I was able to leave the meeting with a number of concrete items that needed to be coded. Some of them I need to write from scratch, others I need to modify because they were originally written as placeholders until we made some final decisions.

Character Generator

mealtime-characterOkay, so the character generator. Easy enough, right? Heh, well the initial iteration of the code was not too bad. It has a long way to go to make things smoother and faster. Currently on my iPhone 5 there is a minor delay when selecting a new character element. By minor I do mean minor, like maybe 1/4 second. But it is enough that I am a little worried about that delay getting longer by the time we are done with all the options. Part of this is because of the size of the character image.

We wanted it to be “full screen”, more or less, when designing it. On the iPad that could mean a pretty large image so we are working with, currently, 600×600 pixel images. We need bigger. On the iPad we could easily be at around 800×800. Right now I composite all the images together and then do a final resize. I think that is the fastest way to go rather than resize all 7 or 8 images and then composite them. It should also give a higher quality final image. I think what I will need to do is resize the individual element images to the final size, cache them and then composite the cached versions. As usual this will make it a tiny bit slower on “first run” but should make it much better in the long run. Especially if we get more options.

As a cheap way to get started, I put two table views on the screen. One on the left to pick the “element” to be modified, such as face, hair, etc. and then one on the right to pick the actual image for that element. Sitting between them is an UIImageView that the composited image goes in. Getting that UIImageView to be the right size took some work. It was my first time playing with AutoLayout’s priority levels. Basically, because each device has a different aspect ratio I needed to make sure it would always take the least amount of space, vertically and horizontally, that was available. I couldn’t just set a fixed width or height because a 4:3 device will look very different than a 16:9 device.

That was a major pain. It took some tweaking and even a few settings that really did not make sense to me. Basically what I ended up needing to do was use 3 size constraints (actually 4, but two of them serve the same purpose). First I needed to set an absolute maximum height of the view. This is a height that will never actually be achieved, but we needed a starting point. From there I have a lower-priority constraint that says the height must be <= the available height between the top of the screen and the back button (bottom-middle of the screen). Third I need a set of constraints that say the left and right edges of the image view must be <= the edge of the table views. After some tinkering I finally got it sizing correctly – I think.

While I was sitting in Pieology having dinner and working on this post, Matt stopped by to talk to me about the character generator. At home I finished the coding and posted a new beta build with this functionality added and then left for dinner. Matt came walking in (having seen a text message about how difficult it is to eat pizza and type on the computer at the same time) because he had some news on the character generator. First a quick word about the current state of the generator. It looks bad. It has not had any loving from Matt yet so it looks like I designed the interface, which is always a bad sign. Even still, Matt sat down and said he fell in love with it instantly, his kids were raving about it and even his wife was saying that it looked awesome.

Obviously we have hit on something here and will need to do some more investigating on this. We might need to up the ante a bit and make this a bigger deal than we originally intended. While sitting here tonight talking about it we toyed with the idea a bit of releasing a teaser app that is just the character generator. If we did so we would need to make sure that users can import the character they created into the final Mealtime Sabotage app once it is released as well.

Wunderlist

WunderlistWe have been using Slack for communication on Mealtime for some time now, and it has been fantastic. It really helps and makes things easier. It basically doubles as a live-chat window so we can have live conversations at night when we are all online and also works as a sort of e-mail system. If somebody posts something and I don’t see it for awhile, I can respond when I see it and it stays in the same system so we can see it in context to the “live” talk we had the night before.

The one thing Slack is lacking is the ability to have a simple todo list. I get it, that isn’t what they do so they don’t want to go there and that is great. I have been using Things for awhile now as my personal todo list. It is modeled after the Getting Things Done concept. The only downside is it is single-user only. There is no ability to assign a task to somebody else. This is where Wunderlist comes in. It is basically Things but gives some functionality to groups. It is not a group-todo list per-se. Meaning there is no automatic groups. But I can create a todo-list (think of a Project in Things) and share that list with multiple people. Then in that list I can create tasks and assign those tasks to people.

It is basically a poor-man’s group todo list, which is exactly what I wanted to get out of Things. Hopefully Matt and I will be able to play around with it for the next few weeks. I am hoping it will end up being useful on the job as well. We have a small team of 3 I.T. people and currently our todo system is Producteev, which works but is not very convenient. I really can’t say why, it just isn’t. Things I am in every day, multiple times a day, without even thinking about it. It is just part of my routine. Producteev I have to remind myself to check it, and honestly I sometimes go days without ever logging in. This basically makes it useless.

The other reason I am really intrigued by Wunderlist is that they announced 3rd party integrations a few months ago. The plan is to get them rolled out this year. Some of the other items they announced at the same time have already been released, so they seem to be on the ball. But the one item they announced that has me interested is an integration with Slack. They don’t have many details yet on what the integration will be exactly but it could be really cool.

Week 9 : Daniel