Developing a Thesis

During last weeks class Professor Rueda really challenged my way of thinking for what it means to be an app designer and developer. He told me that I shouldn’t, “make an app just to make an app, because anyone can do that; you should put some more thought into why you make these things” – which really got me thinking “why do I want to make iOS applications?” Initially my reasoning behind building applications was because I wanted to get into the field and build a strong portfolio but then I realized that I needed a deeper motivation behind my work, and I came to the conclusion that:

As a designer I strive to create applications which have exceptional user interfaces and experiences that are built on top of solid products people want to use. I also desire to make apps that are informed, empathetic and ethical in the way that they interact with their users.

I’m still ironing out the finer details of my artists statement but I think that this pull quote nicely summarizes what I wish to accomplish with the applications that I will be designing and developing in the future.

Update:

I have refined my thesis:

Meaningful user experience is achieved when form communicates function; thusly, facilitating the users desire to accomplish a one-dimensional task which either extends their natural abilities or emulates a physical process.

Project 2 – Boulderdash

Complete with music!

For our second game design, and programming project in Scratch our class was instructed by the professor to build a level from an NES game. Being a Sega kid I was only familiar with the popular titles that my friends had so I decided to pick something a little different. I choose a game that was on the old mac I had growing up called Boulderdash, and since it had an NES counterpart (and goes back to the commodore 64) it was a perfect fit for the project. After finding a suitable set of sprites from a high-res screenshot of the game I proceeded to manually lay out each 32×32 tile block of the level. I played around with a few procedural methods for generating the map but for the sake of time decided that it would be easier to layout the level myself.

After I completed the layout I started programming in the basic game mechanics. Things like making sure the miner collided with the walls, collecting gems, getting the boulders to fall on you. I also set up a few global mechanics like a timer, score system and lives.

This project was more enjoyable for me than the first one, but I think that’s mainly because I was more comfortable in the scratch environment and was able to get what I wanted out of the program more easily.

Here is a dropbox link to the game if you are interested in trying it out, it requires the Scratch application which you can download here to play.

Project 1 – Missile Command

For my first project in Scripting for Interactivity I was assigned to recreate a level from an Atari 2600 game, and to explore the logic as well as the functionality of Scratch – the application we used in class to create the game. Missile Command is a traditional arcade style game where you have to defend your cities against meteors that are threatening to destroy them.

This project taught me a lot about scratch and allowed me to think about programming in a visual way which is going to be very helpful down the road as being able to visualize code as objects and blocks makes creating programs much more clear. There were a lot of challenges that I ran into while re-creating missile command, but it’s important to keep in perspective that I’m developing an Atari game in under a week. Collision detection in scratch is something that is explicitly built into the system with a lot of methods for implementation but not clearly described. Color detection can be affected negatively by color space and the “touching” block can be affected by the speed of an object due to frame-skipping. I was able to program the meteor to destroy the city successfully but shooting it out of the sky was more difficult because to the aforementioned quirks in scratch.

When it came to getting the meteors to randomly target the cities I was happy with the solution I came up with that involved a roll the dice style random math to determine which city would be targeted.

All in all this project was a good experience, and a fun introduction to programming in C++.

Learning iOS

As an aspiring UI/UX Designer iOS development is a field that I need to have a working knowledge of. Most, if not all, startups, development shops or design studios have people working on iOS Apps and I want to be able to design and develop for that platform in and out.

The first thing I need to do to get started designing and developing on iOS is to actually learn iOS development. To accomplish this I will need text books as well as other educational materials such as screencasts. Since technical books are expensive, heavy and hard to transport from not only my dorm to school but also from Hong Kong to the US – I have decided to subscribe to Safari Books. This a website that allows you to read virtually every technical book online for as low as $10 USD a month. Where screencasts are concerned I purchased several instructional videos from PeepCode, primarily their videos on design and iOS.

Now all I have to do is set up my Photoshop to have the proper work-flow for iOS design and become a licensed iOS developer, which costs around $99 annually. This subscription will allow me  access to the SDK, development tools and even the ability to publish apps that I create.

I have many hours of video and a long ways to go before I get my first app out into the wild but I am confident that I will be able to have at least a working prototype be the end of the semester. Wish me luck, as this will be an exciting journey.

Scratching the Surface

With my first week of classes well under way I’m beginning to get into the creative groove, and find that my head is already spinning with creative ideas, “flow” is something which artists do not easily lose.

Moving to a new country, leading a social life and remembering that, “yes I really am back in school and I’ve got work to do” is a mentally and physically exhausting task. But it’s fun! Our first exercise in Scripting for Interactivity is to learn C++ through a program called Scratch. Scratch is a really simple, yet powerful piece of software that allows you to make Atari quality games in a very short space of time.

For my project, after looking at a series of games for the Atari 2600, I decided that Missile Command was the most interesting and set out to emulate it.

Currently I have a game over state and collision detection set up. The most laborious part will be creating the missile trajectory with sprites but that should be a fun, even if it is menial task anyways. That’s all for now, but I’ll be sure to post updated progress and the finish project by next week.

Articles of Interest

Although sites like HN and the brand spankin’ new aggregator lobsters are heavily programming and startup related there are a few design related articles that pop up there every once in a while which are true gems. Here are some that I’ve felt particularly enlightened by.