Hello World!
I'm a Developer at Master of Malt, a University of Brighton graduate, a 1st Kyu in Kyokushinkai Karate, a video gamer and technology enthusiast. Read more about me over here.
CloudANDTidus
Search
Games


Entries in flash development (7)

Monday
May232011

Here come the test results: You are a horrible person. That’s what it says. Horrible person. We weren’t even testing for that.

Poster Day for the project seemed to go well, especially when you bribe your examiners with whisky samples. A few guys from a local company also attended the session and seemed fairly impressed with my work. They offered me the chance to attend an interview day they were holding, which could have led to a job, however I decided not to submit my CV because apparently they build all their websites in perl…

Quite why you would do that, I'm not exactly sure. They said it gets them "deep down" into the hardware, increasing performance, but I don't really believe them. It appears to me that their first developer knew perl and everyone else was forced to continue using it. The same argument could be made for writing everything in machine code, which I have little desire to do either.

In my last post I showed an early version of the flash game we had to build as a group. The game is now finished, however because its a two player game requiring a server, I can't put it online like I did my first one. Instead I have produced this overly dramatic video demonstrating it.

We worked as a team to create the game. My major contributions to the project were the tank controls, timers and turn switching, the start and end sequences and conceptual designs. Other team members produced the assets (graphics and sound, which are far superior to my previous effort), collision detection, random rock layout and the server side work. We had planned to have other weapon types, but ran out of time. I'm really happy with how it came out though, and its surprisingly fun to play.

With that handed in I have officially completed all the coursework for my degree. All that is left is a couple hand written exams next month. Exciting stuff!

In the meantime I've been getting back into the swing of completing video games. I completed Portal 2 twice (with and without commentary) just after my project. The game is without question a must play, and if you didn't play the original you should play both of them immediately. The writing and humour is some of the best video games has to offer, and the puzzles are perfectly play tested. Valve added so many new unique twists to the original concept that I often sound myself banging my head against a puzzle I couldn't solve, and then remembering that I had a portal gun…

I also went back and completed Assassin's Creed: Brotherhood. Back at the start of the year I played and completed the first two games back to back after getting a PS3 at Christmas, however I stopped playing Brotherhood only a few hours into it after getting some fatigue. While improved, Brotherhood is very much a second act of AC2, so its perhaps not wise to play them consecutively. I did really enjoy the entire game though (I don't think the mechanics of scaling rooftops and assassinating will ever get old), and the ending is as unpredictable as the first two. If your new to the series as I was, and want to catch up, I recommend reading the wikipedia article and watching some YouTube videos for the first game, before skipping it and playing the sequel. While you need to know the story to play AC2, the gameplay in AC1 is incredibly repetitive and frustrating and one of those rare occasions where the sequel is 100% better.

With Brotherhood out the way I'm now enjoying L.A. Noire, Rockstar's mix of Grand Theft Auto and Phoenix Wright. So far I'm enjoying it immensely.

Tuesday
May102011

Do you know who I am? I'm the man who's gonna burn your house down! With the lemons!

What's up world?

As I showed in the previous post, I completed the documentation for my project, an epic tome of a report. The last month has been a fairly stressful period in which I spent consecutive days in the same room typing away, while being constantly concerned that all the work simply wasn't going to get done. It was certainly close, but I can now happily say it is done. For those interested in reading more about my project than was represented on this blog, you can check out the two main portions of my report in delightful PDF form.

The Exaiminers Report - This is a short report designed to give a complete overview of the project, aimed at the non-technical reader.

The Product Report - This is a more in-depth report designed to explain, in unnecessary detail, how each individual component of the app works.

This Friday is Poster Day, where we get to show of the final product and get questioned about the project. That will draw a close to my final year project as a whole.

In this glorious post-project world we now live in, I'm moving focus to the last waining weeks of the semester. Last week I had to (quickly) complete two more essays for deadlines, and next week I have a presentation and a multiplayer flash game to hand in. The flash game is a team project and has been quite enjoyable after all this essay writing. Our game is going to be a turn based tank game where you play as either Maria Sharapova on the Soviets team or Sarah Palin on the Republican team.

This screenshot shows the development of the game itself. Ignore the rather unsightly grid, that is there for development purposes only. Currently each client can control their own tank (move forward, backward, rotate the tank and rotate the turret), and the movements of your tank is reflected on your opponents screen. The rocks littering the play field are also randomly positioned when the game begins.

Between all this I've also begun working on a little personal side project in the last couple weeks to get away from all this work. It's a website that allows you to build a list of the games you own and track your progression in them, how long you've played them, if you completed it, etc. It's using Giant Bomb's API so that I don't have to build my own game's database and is coming along nicely. I don't intend to really promote or pimp the final product, its really much more for my own OCD, but I will add sign up functionality should anyone else like to use it. If nothing else, its a fun way to get back into PHP and learn some jQuery. I asked Sputin on MSN for a name that I could get the domain for, and after batting ideas back and forth I eventually settled on "My e-penis.com". If you don't get the joke, its the fact gamer's have refereed to achievements and gamer score as your "e-penis". Its hilarious I know...

Speaking of video games, I really want to blog about them some more now that I'm starting to have some time. I finished Portal 2 (twice!) in breaks from writing my project documentation and this weekend I returned to Assassin's Creed: Brotherhood after a long break. Man is that game fun.

Of course, exams are just over three weeks away, so I'm not off the hook yet.

Sunday
Jan092011

Time is an illusion. Lunchtime doubly so

Don't panic.Salut world!

Wow, my last post was on Monday, sorry about that. This Tuesday was the first day back at Uni and Karate, and Wednesday was the first day back at work for the new year. When I wasn't doing one of those three things I was busy rushing to get the documentation for my Flash assignment done before the deadline on Thursday. The week in general has been a pretty draining experience as I tell my body I can't follow the daily cycle I had over the Christmas break.

While I've not produced a lot more planning documentation for my project this week, I have made some great progress. While at work on Wednesday I had a meeting with my client where we discussed how the app should work and went over my interface designs. The feedback to the designs was very positive and he signed off on them. There were only a couple of suggestions for changes, which were:

  • Make the app UK only initially (and for the duration of my project) to remove shipping complexity.
  • Change the way accessories work to a screen where you add accessories to a product (rather than select accessories in a drill down menu for each product).
  • I hadn't planned how to handle user login. For now we will keep this the same as how the current website works and have the user create a login after submitting an order. This also removes some complexity.

The rest of my time has been spent filling in the last few holes in my Object-C / iPhone programming knowledge. There is no doubt much I still need to learn and many things I will discover as I develop the app, but I'm trying to hit the key things I know I will need before development begins.

Two of the things I've been reading about that are crucial to the app are web services and data storage. Many of the apps I've looked at that contain vast information about whisky have no backend support. When you download the app its a massive 400-500MB file full of data and images, and if they update it to add new items you have to re-download the whole thing.

One of the neat things about the app I plan to develop is it will have the full support of the current websites backbone, including the massive database of products. I'm going to use a web service at the initial launch of the app to download the simplest version of the product range (name, price, ABV and image url most likely) for the list views and then request more information on a particular product when the user selects it. On future loads of the app I can then do a similar call to sync any changes, such as a product being removed.

The good news is it seems very easy to call and parse data in Object-C, so long as I keep to single level XML. For some reason there is no tree-based XML parser in the iPhone SDK, and I don't intend to spend my time implementing my own. Following the book I've produced a simple app that pulls the top ten songs in iTunes from a RSS feed. My next step here will be to put up my own web service and try retrieving data from it. I need to decide if I should use a SOAP or RESTful service, as the SDK supports both.

The other thing I've been reading about today is data storage. The iPhone actually has four options here:

Technique Pros Cons
Archiving Allows ordered relationships (arrays, not sets). Easy to deal with versioning. Reads all the objects in (no faulting). No incremental updates.
Web Service Makes it easy to share data to other devices and applications. Requires a server and a connection to the internet.
SQLite Can fetch lazily. Incremental updates. Full power of SQL. Requires more code than archiving or Core Data. No real ordered relationships.
Core Data Lazy fetches by default. Incremental updates. Versioning is awkward (but can certainly be done using a NSModelMapping). No real ordered relationships. Much of the power of SQL is inaccessible.

Credit: iPhone Programming: The Big Nerd Ranch Guide By Joe Conway & Aaron Hillegass


Obviously I'm going to use a web service for syncing data with the mother ship, but I don't plan to rely on it the whole time. Archiving involves saving out my objects to a file in the app's sandbox. As it says above, this doesn't allow you to update individual records and is certainly not suitable for a database with over 4000+ products. So my choice really comes down to SQLite and Core Data. So far I've covered SQLite which seems pretty great, but I will withhold judgement until I have seen how restrictive Core Data really is.

So thats a project update. In other news I took my first run of the year with a couple guys from karate. I intended to make this a weekly thing near the start of last year but didn't have much luck at doing it more than once a month. Hopefully this year I can really keep it up. This, along with karate three times a week, should hopefully get me a bit fitter. I was particularly happy with this run as it's the first 3+ miles run I've done in a long time without stopping. Lets hope this keeps up.

Oh, and my MacMini died Friday…

It had been booting slower and slower (12+ minutes) and became quite crashy over the last week or so. I even got my first kernel panic. I tried all the usual things like fixing permissions, checking the disk, resetting PRAM and initially they seemed to help, but it eventually got too much and I decided to try a re-instal. That got very close to finishing before displaying a massive yellow warning triangle telling me the instal had failed and asked to restart the machine. When it did the instal disk could no longer see the hard drive, so I believe the technical description for where I am I completely fucked. Fortunately its under a year old and is covered by Apple, but for some reason their support line closes at 7:45 on a Friday and doesn't re-open till Monday.

So I got that going for me...

Thursday
Dec302010

Pearls of wisdom there from Mr fried egg, chili, chutney, sandwich face

It's all wrong!Yo world!

I made great progress with my flash game today. I might even call it finished, although I'm sure there is minor optimisation and clean up to be done at some point. I solved that silly focus issue, added a functioning difficulty setting, each with their own high score and added a "tummy gauge". 

The idea behind this is to add a little more strategy to the game. Each time food is consumed a section of the gauge is filled and it wont empty for two seconds. Eat enough food to fill the gauge before it has a chance to empty and the player is punished with a stomach ache that halves your speed until the bar depletes.

You can check out the finished product here.

On an unrelated subject, I ranted on the social medias yesterday about the 2011 calendar I got for Christmas. The calendar itself is great and does a fantastic job at doing calendar things like telling me what date it is, unfortunately it starts the week on a Sunday like some sort of nut job. I mean really, who seriously considers Sunday the start of the week? Even the religious folk will tell you that God worked for six days, and then rested on the seventh. The bible certainly doesn't say he started his week on the second day (probably slept in on the first), created the heavens and earth in six days, then rested on the start of the next week.

These things really get to me...

Thursday
Dec302010

My aura has never been pinker

This is not so much realz pie as it is fake shortbread pieWhat's up world?

I spent my entire evening being reminded why action script will never be my best friend. The language is all fine and dandy an all but some of the stuff you have to do to achieve simple things really eats into you after a while. Having the ability to add and retrieve objects from the display list for example sounds neat in theory, but it turned out to be incredibly frustrating when you can't find out what type of object is being returned.

I did make pretty good progress though. You can find the current version over yonder. It seems you have to give the game focus when it initially loads. From there you can press left and right to change the difficulty and up to start the game (difficulty doesn't change anything just yet though).

Annoyingly after pressing up to start the game you then have to give the game focus again (by clicking with the mouse) before you can control Billy. Presumably this is due to the way I'm switching event listeners. If anyone has a solution (can I force the stage to have focus?), I'd love to hear it.

I'm not apt at producing decent art or sounds, so instead I'm using how awful both are to my advantage. You could say it has a style. Just not necessary a good one…

In other news I finally watched Scott Pilgrim vs. the World. I'm not a comic book person so I can't comment on how it lives up to the original work, but I certainly enjoyed it. That Zuckerberg fella sure can act huh? He should probably be an actor or something…

Tuesday
Dec282010

One cabbage slug could destroy the entire eco-system

I really should shave...Ahoy world!

It's only been three weeks since my last post so I believe I should receive some sort of award or accreditation by now. I know I previously promised regular posts for realz this time, but then I was awfully sick for a couple weeks and Christmas kinda just happened. Thankfully for my nose, lungs and wallet, all that is now beyond us. I do have a couple updates before we continue though!

Just over a year ago I failed my second brown belt (1st kyu) karate grading. There are many reasons why I failed, most of which I'm sure I can blame on the economy. The good news is just before I fell dreadfully sick a couple weeks ago I took it again and passed! That's right folks, I levelled up my ninja skills. Seriously though, it was a horribly difficult and lengthy ordeal and I can't thank enough the other brown belts who graded with me for keeping me motivated throughout.

Skipping past my bout with the plague, Christmas was a scrumptious good time for all. There was much family, many friends, lots of gift giving and far too much food. It was so enjoyable I think we should perhaps do it again next year? Just sticking that idea out there…

So enough updates. What's happening right now? My inconvenient near death experience put a bit of a hamper in my plan to plan my project for four weeks so I'm going to be working on that quite a lot over this next one. I also need to complete my individual flash game. 

I will write more about those in some later posts, but what I really want to talk about this second is daily! From this post forward I plan to post something to this blog every single day. The idea behind this is I can be incredibly lazy about being motivated to get things done. To give you can idea, after receiving a PlayStation 3 for Christmas I completed the original Assassin's Creed within three days and am already invested into it's sequel. I binge on this stuff and it's probably (but not yet proven!) not good for me. 

So the theory is if I have to post something every day I will at least get something done, even if it's a simple mind dump of my current thoughts. It's not really for anyones benefit but mine, but if you are reading this I hope it's at least somewhat interesting. I have used the word "something" this entire time mind, as I reserve the right to simply post a picture that somehow represents that day.

How long will this continue? Who knows… But at least it should put an end to these update posts that are continually looking back rather than reflecting on current events and projecting forward.

I will make a decent blog out of you yet!

It's like a new years resolution, except I have work to do and can't wait four days.

Monday
Dec062010

Knitting isn't good for you

Everyone loves snow!Hey world!

It's December now so I really do owe this blog another update. I know I keep committing myself to updating it on a more regular basis, and then totally forgetting about it for four months but this time I think we're on to a winner! More on that later. Firstly some other random shit that has happened since my last post…

Remember how I aced my driving theory test, only to totally flunk the practical on the grounds that I'm unsafe? Yeah, we all laughed then, but then I totally took the test again and now I'm totally legally allowed to drive! I don't own a car or anything, but the point is should the need arise I now have a license to run over all the grannies I want. That was the whole point of the exercise right?

After that long old placement year I moved on and returned to the University life. I don't know if it was the year out, all the brain cells I've killed or that this is just what final years are like, but I certainly don't remember this shit being as hard. They actually want me to do quite a lot of work. What's up with that? One of the things we need to produce this year is two games in flash (one single player, one multiplayer). My single player game is about eating pie, while avoiding celery (because vegetables are bad for you). It's quite a way from being done, and I don't take any pride in the home made graphics, but this should give you an idea of where I'm going (ignore the score which is going up on its own and your inability to actually interact with the food).

Meanwhile, some rapscallions burned down Hastings Pier. See some of the awesome pictures my dad took here.

I also seem to have become annoyingly accident prone lately, or I'm just having a bad month. About five weeks ago I kicked a strapping chap at karate and injured my foot in the process. Initially I didn't think much of the pain (thinking I had just done a bad kick), but it continued for weeks. Eventually I visited the doctor and they x-rayed it thinking it might be fractured, but it turns out I just had severe internal bruising. It's not quite as impressive sounding, but at least it seems to be getting better.

Much worse however was my accident a couple days ago where I succeeded in stabbing a very large knitting needle into the palm of my hand. The dog knocked a laptop of the arm rest of a chair and in my failed attempt to catch it I jammed my hand straight down into what turned out to be a basket full of wool and knitting needles. Unlucky for me a single needle was pointing up out of the basket and firmly imbedded itself deep enough for me to raise my hand up and have the needle fully support itself. I instinctively yanked the thing out immediately, resulting in much pain and blood. It looks like a pathetically small scab now, but for a couple of days it was too painful to use the entire hand. The irony of the whole thing is the laptop landed on the ground perfectly fine...

Oh, and over the last week it snowed. A lot.

So thats me up to date. Back to the subject I alluded to at the beginning, the reason I will soon be blogging much more often is my final year project. I plan to develop a social whisky iPhone application for the folks I worked at during my placement year and to aid me in producing all the crazy documentation I need to do I’m going to blog the whole thing. The final deadline for my project is Friday 29th April 2011, so between now and then expect to see a lot here about my project's progress, plans, ideas and the successes and failures along the way. It should be fun, and please feel free to give me comments, advise and feedback along the way.