Sunday, January 30, 2011

Proposal Complete

Here it is! Google Docs wasn't being very friendly this evening, so here is the version with working links, CS460 Proposal and here is the version without working links but allows you to see what it would look like if you printed it, CS460 Proposal.pdf.

Saturday, January 29, 2011

Progress on the Full Proposal

So as I have been trying to put together a full proposal here is some of the things that we have been asked to cover.

I.Introduction
Intro
II.Motivation
III.Background
IV.Previous Work
V.System Description
Body
VI.Challenges
VII.Time-line
VIII.Budget
IX.Conclusion


These things are pretty detailed but also very realistic things that need to be considered. What similar products have been done before? What makes you think that your idea will be better than that which has been established? What is the project going to do and how?
The most surprising topic that is listed here is the budget. How big is your team? How much are they getting paid an hour? Where are you doing the project (Office Space, garage etc)? How much do benefits cost for your employees? Are there going to be legal fees? Do you need to hire a lawyer to make sure that you aren't treading on someone else's copyright or patent? It is a pretty scary thing.
In my previous programming I used programs as a tool to help with mundane/repetitive tasks, such as parsing through a document and gleaning the information that i need, formatting spreadsheets, etc. So thinking about starting a project as an outside business is a daunting task. One of the hardest things about this class is thinking about the project. It is very similar to inventing something. You have to take consideration about what people need, or want, and if you are able to do something that they like. If not your reputation goes downhill and there isn't much that you can do.

Research
I was able to do some further research today about creating applications as a money making opportunity. AdWhirl is a free server-client program that basically allows the developer to put advertisements into your application. Almost all of the free applications out there aren't created because the developers just wanted to make a game, they make money too! AdWhirl created a report that talked about applications that break the top 100 list can make anywhere from $400-$5000 dollars a day! The tricky part of that is getting an idea that can make it to the top 100. In the free market it seems a lot easier to do that since 70 % of the apps on the App Store paid 30% free.

Overall from this research I think it would be neat to get an application out in the app store as a hobby or past time, but trying to create a business that is dependent on success in the app store appears to be extremely difficult. It is like trying to put all your money in the stock market, you really don't know what is going to happen, and you don't have much control on the success. The average app can cost in between $15,000-$50,000. And less than half of the apps only make $685 a year. That is pretty rough! Well back to researching and writing! The proposal is due tomorrow night so you will be able to see what Thaumaturgy looks like.

Monday, January 24, 2011

Concept Paragraph

Project Name: Thaumaturgy

Platform: iOS devices

Purpose:

The goal of this game is to reach the maximum element count by combining different elements together. The game starts with 4 elements: earth, wind, fire and water. There will also be a 2-player version in which a random element will be selected and the first person to create the element will win. Elements are created by dragging element icons on top of each other.

Competition:

Currently there are two applications called Doodle God and Alchemy. Doodle God is for 99 cents and Alchemy is for free.

Alchemy has the most similar concept just poorly done. Alchemy has no easy way to look at the elements that have already been created. In order to see what has already been created the user must scroll through the elements seeing only five at a time in the order that they were created. The game play for this application is moving element icons on top of each other to create new elements. There is only space to work with about 4 elements at a time.

Doodle God has a better set up with the created elements. Each element belongs to a category. The combining of elements is done by selecting two categories then by selecting one element from each category. The created elements are in categories but are not able to be sorted.

Improvements:

A workspace with zoom capabilities. All elements are put into a category as well as being sortable/searchable. Player vs Player game mode.

Sunday, January 23, 2011

Further Ideas

After talking to family and friends about ideas for a programming project many ideas were brought about. Here are some of the ideas:

"Time-in": A barcode at work that you scan with your IPhone or Android when you get to work and scan again when you leave work.

"Text Goggles": Google has a project called "Mail Goggles" that basically prevents users from sending emails that they will later regret. Goggles is only active late night on the weekends. Users have to perform simple math operations before sending an email to make sure that the users is in the right state of mind and has all their faculties. So the suggestion was to do the same thing for sending texts late at night.

"Audio Galaxy": A media streaming application from PC to phones. Audio Galaxy currently does audio but not other media things.

"Tuner": An app that converts the phone into a tuner for instruments. I decided against this because there was a lot of apps already out there, and based on the number of ratings there isn't much demand of the tuner apps.

"Alchemy": Like I have said earlier I have a brother that has an Android phone. He showed me an application called alchemy. Basically you start with 4 elements earth, wind, fire, and water. The object is to make a couple hundred new elements by combining the different elements together. I went ahead and looked on the IPhone to see if it was found on there. They had a couple applications one free and one paid. I downloaded the one that was free and was not impressed. The size of the element icons made it difficult to work with more than 4 elements at the same time. Whenever a new element was created it was placed in a line on the top of the window. Only 5 elements are visible at a time and the user has to scroll through the elements in order of their discovery in order to create new elements. This becomes a huge problem when you have more than 10 elements discovered and have a goal of 211 elements.

The version of Alchemy that I would like to do will have:
-new elements and combinations,
-a zoomable workspace so the user can work on more items if they so choose.
-a multiplayer version of the game where you race to create new elements. First person who can create the element wins.
- elements will be stored in a sortable database/list with categories as well.

The paid version of Alchemy is called Doodle God (link is to play on Armor Games), it is set up a little differently, you pick categories and then click elements within the categories to combine then, instead of having just elements that you are playing around with, and moving around. There is also only 115 elements for this version of doodle god the one on the iphone is 248 total elements.


A random side note. In a previous post I was leaning towards developing on the Android platform. The number of devices running android are currently just the phones, where as the iOS is on the IPhone, IPad and the IPod touch. This causes more iOS devices out there than the Android.

That's all for now, we will see how the proposal goes.

Saturday, January 22, 2011

Research acquired

After a couple of hours of research I still don't know what I want to do but I do have more info to work with. There was a good blog post by David Green that I read talking about the development for the Android vs for the IPhone.

Basic principles that I came out with.

The two use different programming languages (Android= Java, IPhone= Objective C), so pick whichever you are more familiar with. Unless you have the time and a strong desire to learn another programming language with its different ins and outs. I don't really know Objective C, but I have heard that Objective C is the object-oriented version of C. At this point I am more comfortable and probably more capable with Java.

Apple is very protective of all its stuff. If you are submitting an app you have to go through a rigorous process to get it accepted. If your app does anything that Apple dislikes it gets vetoed. Also to be a developer for Apple you need to pay a 100 fee to get all the developer tools, such as an Xcode that comes with an ios simulator.

All the Android stuff is open source and there is a lot of resources to help out during the programming.

What to do? I called my brother who works at Verizon and has a Droid phone, and one of his ideas was to create an app that allows you to stream all your media (music, pictures and video) from your PC to your phone. It seems like they have a couple apps out there that do music pretty well but not many that can do video. The apps that I saw so far are gmote, andromote, and androrb or something like that. For the class it is ok if someone has already done it, just as long as we can do it better (better quality, more features, or cheaper).

I looked a little bit into using the Kinect to do something with motion sensing. The problems with that is that the Kinect hardware is just sending out raw data. So instead of just creating a game and hooking it up to a Kinect, we would have to figure out how Microsoft can map the different limbs and joints. I am not sure exactly, but that is what it seems like. Another downside to working with the Kinect is that I doubt many people in the class have one, so if I am lucky enough to get into a group that has one then it seems like a lot of the work will have to be done physically together instead of just coding from our homes and having meetings. I think I will need to do more research on that.

I am wanting to do something that will look good on a resume for anyone that is in the computer science field, and hopefully something that I could use after the class is done. I am not sure if a game would do that, or if some utility would be better. Back to the drawing board, or back to the books I guess.

Spring Semester 2011

So this semester I am taking a pretty heavy load. CS 460 Software Engineering, CS375 Numerical Computing, CS481 Operating Systems, and Spanish 350 a spanish linguistics course.

In Software Engineering we were asked to keep a blog of all our thoughts and doings related to the class, so here it is. We have one large group project that we are to work on. On Monday we have to turn in our proposal about the project that we want to do.

This has been hard for me to think of something. It needs to be something challenging and big, but not too challenging that it will cause a horrific crash and burn. Here are some examples from the professor: iphone or android app or game, hacking into a kinect and do something with the motion, creating a web based view of a database, etc. So really the sky is the limit as far as what we can do. 5 -man teams about 10 weeks of actual programming to get it done. Lets see how it goes!