Santa Bobble Live Wallpaper

December 14, 2010 1 comment

One last live wallpaper before Christmas! This time, we engage the power of motion and bring you, “Santa Bobble” live wallpaper on Android!

Remember those little bobble head toys? Heck you might even have one! We all know they are fun and oh so amusing, so the thinking was, why not have one on your phone? And thus Santa Bobble was born!

Santa responds to 3D gestures. Right/left makes him shake his head, up/down makes him nod, closer/farther makes him bob his head forward like a pigeon. You can even rotate your phone and he tilts his head with you!

The snow is also animated and follows you as you rotate your phone!

This particular Santa character in the app is actually modeled after a real Santa bobble head toy. The style of this Santa is from a classic Christmas animated movie. Can you name is? Comment below if you know!

My personal favorite is to bobble santa to some hip hop or electronic music. Really fun stuff!

By the way this app is free so please enjoy it and let the bobbling begin!

Also, if you have an idea for another type of character that would make a good bobble, please let me know!

Categories: Android

Winter Dreams hits 50k downloads!

December 12, 2010 Leave a comment

Time to pop the cork! Thanks to all of our awesome fans, Winter Dreams finally hit 50k downloads! This puts it into the second to last highest download rank on the market. I never imagined such success when I released this live wallpaper, but the people have spoken and they love it.

To celebrate, I released an update giving the free and donation versions an awesome snow effect. Now the snow glows and looks much cooler.

So you might ask where to next? Well 250k of course! Let’s make it happen people!!! Start your downloads!

Categories: Android

How To: Draw A Line in XNA for WP7

December 11, 2010 2 comments

While working on my most recent game (super top secret!) I realized there was no drawLine function in XNA… At least, not an easy to use one! So I asked my Digipen friend about it (after attempting to derive my own formula) and he gave me this particularly useful link;


http://en.wikipedia.org/wiki/Bresenham%27s_line_algorithm

I quickly converted the psuedo-code into C# and came up with these two functions. Enjoy! I haven’t really had to time to logically step through it but essentially the gist(from what I understand) is that it determines where to place a “pixel” image based on the slope using a specific pattern that looks really good.

I recommend using a circular, 8x8ish texture for the pixel you use to render. Here is the code!

        private void DrawLine(SpriteBatch spriteBatch, float x0, float y0, float x1, float y1)

        {

            bool steep = (Math.Abs(y1 – y0) > Math.Abs(x1 – x0));

            if (steep)

            {

                Swap(ref x0, ref y0);

                Swap(ref x1, ref y1);

            }

            if (x0 > x1)

            {

                Swap(ref x0, ref x1);

                Swap(ref y0, ref y1);

            }

            float deltax = x1 – x0;

            float deltay = Math.Abs(y1 – y0);

            float error = 0;

            float deltaerror = deltay / deltax;

            int ystep;

            float y = y0;

            ystep = (y0 < y1) ? 1 : -1;

            for(float x = x0; x < x1; x++)

            {

                Vector2 position;

                if (steep)

                    position = new Vector2(y, x);

                else

                    position = new Vector2(x, y);

                spriteBatch.Draw(pixelTexture, position, Color.White);

                error += deltaerror;

                if (error >= 0.5f)

                {

                    y = y + ystep;

                    error -= 1.0f;

                }

            }

        }

        private void Swap(ref float a, ref float b)

        {

            float temp = a;

            a = b;

            b = temp;

        }

Hope this helps! 🙂

How To Make the Coolest Snow EVER in WP7/XNA: Part 1

December 10, 2010 Leave a comment

Alright, I wanted to get a programming article written up so I decided to publicize how I do snow in my app – Christmas Lyrics. Took me a long time to realize parametric sine/cosine functions were where its at! Using the method I describe, you will be able to easily include windy snow in any XNA-based app you create! 😀

The math I use can essentially be bubbled down to these two formulas:

ASin(X * B);

ACos(X * B);

MY frameworks generally consist of a base class called a “Renderable” and then a “Scene” which has a list of renderables and bubbles events like OnUpdate() and OnDraw() to each object in the list.

So you start out with a class, Snowflake : Renderable and it looks like this.

public class Snow : Renderable

{

    public Vector2 Position { get; set; }

    private Random r;

    private float scale { get; set; }

    private int iteration { get; set; }

    private int sign { get; set; }

    private int algo { get; set; }

    

    private float theX = 0;

    private float xCoef = 0;

    private float sineCoef = 0;

    private float speed = 0;

    public float alpha = 0;

The above code basically just gets us ready to use a single snowflake. How my system is designed is essentially like this; you generate an amount of these snowflake objects. Usually between 300 – 400 of them (the perf is surprisingly good) and then just let them take care of their own updating. Its a really simple system designed to abstract all the logic away from the main scenes and allow the objects themselves to process their own changes.

A lot of the variables are self explanatory. I create a Position variable for storing the snowflakes position, a Random for the random number, and so on. Most of the other variables are just used for the mathematics. What I do is generate a random function for each snowflake so they have a proper amount of variance between eachother. The rest of the variables simply define the function that the snowflake will be using.

Next we will create the heart of the snowflake – basically the OnLoad method which generates the random mathematical function that the snowflake will bind to.

public void Reset(int seed)

{

        //Generate a new random instance based on various information

        r = new Random((int)DateTime.Now.Ticks + seed * 500);

        //Randomize the alpha channel

        alpha = r.Next(140) + 115;

        //Give it a random speed

        speed = r.Next(5) + 1;

        //SineCoef is used in the mathematical function

        sineCoef = r.Next(5) + 1;

        //XCoef is also used in the math

        xCoef = r.Next(5) / 10 + 0.5f ;

        //theX Basically keeps track of time.

        theX = 0;

The two odd variables are sineCoef and xCoef. You can relate them back to the mathematical function at the top by replacing A with sineCoef and B with xCoef. These are simply the modifiers for the function that give it variety.

The next code-block sums up the “Reset” function by randomizing scale, setting a random starting X position, and choosing whether to use sine or cosine.

        if (r.Next(2) == 0)

            scale = (speed / 10) + 0.3f;//5.0f/((float)r.Next(10) + 5);

        else

            scale = 5.0f / ((float)(r.Next(10) + 5));

        Position = new Vector2(r.Next(350) + (50 * seed), -10);

        if (scale > .8f)

            alpha = 255;

        algo = r.Next(2);

        if (r.Next(2) == 1)

            sign = -1;

        else

            sign = 1;

}

The only thing of note in that code block is the algo variable which is what determins which algorithm to use (sine or cosine). Additionally, you will notice that I randomly set the scale using two different methods. One of them is a pure random size while the other one adjusts the size based on the speed of the snowflake. This trick gives it a sort of paralax/layering feel by making slower snowflakes appear larger. But the ones that do not adhere to that scale tend to look like random wind gusts. So it works out pretty well.

Next up I simply define the constructor for my snowflake and tell it to reset the snow. I allow the user to pass in a “Seed” which it uses to give a nice randomness about each snowflake. I realized without this feature – they tend to clump together when first created so I tried to play around with methods to randomly reset them.

    public Snow(int seed)

    {

        Reset(seed);

    }

    public Snow() : this(0) { }

Next I create a public method called “GetScale”. In retrospect I should have just used the smooth .NET 4.0 syntax when defining the variable at the top but this is, at the end of the day, a learning project. So I will keep it in its original form 🙂

    public float GetScale()

    {

        return scale;

    }

The very last part of my snowflake class is the OnUpdate function which gets run every gameloop in the Update() method call. A relatively simple method which just uses the mathematical information we generated to reposition the snowflake over time.

    public void Update()

    {

      

        theX += 0.1f;

        float x = 0;

        float y = speed;

        if (algo == 0)

            x = sineCoef * (float)Math.Sin(theX * xCoef);// 0.01f;

        else

            x = sineCoef * (float)Math.Cos(theX * xCoef);

        Position += new Vector2(x * sign,y);

        

    }

}

Essentially I use a vector-like system based off the sine/cosine functions to determin how far in one direction to update the snowflakes position.

That is it for Part-1! The next section will show how to implement the snowflake class into a “Scene” and I will describe my framework in a little more detail. I hope this has helped give you ideas for snow of your own. If you wish I can also upload my finished code for the world to use because honestly – this generates some really awesome snow and I would love to see my code be put to good use!

If you want to see the snowfall in action check out my app, ChristmasLyrics (There is a free trial which demonstrates this method of snowfall)

Christmas Lyrics Download

App Development and The World of Marketing

December 9, 2010 Leave a comment

You can be the greatest developer in the world, creating the most awesome program ever thought up. But you won’t get anywhere without marketing. No, it doesn’t seem great ideas are what sell in the real world. People like to have verification that something is good; they want confirmation from multiple sources. In my experience – visual appeal is far more important than actual quality (don’t quote me on this!). I mean, I have been known to purchase items solely based on the look of the container… Its just a human habit! We like things which give off a certain aura.

So how do you succeed in the app world? My firm belief is that true success stems from a mixture of proper advertising, interesting ideas, and absolute random chance. You gotta roll your 1D20 and hope for a crit on the first chance or you’re screwed. That being said – there are many avenues you can take to boost your chance for success.

  • Generate Buzz About Your Product.
  • Network Profusely!
  • Don’t Be Afraid To Ask For A Review – That Is Why Those Sites Exist!
  • Get A Proper Website Made For Your Apps.

GENERAL BUZZ

Your first order should always be to generate some kind of buzz about your app. Sign up for a twitter account, network with other developers, create a Facebook fan page, etc. The more places you mention your product – the higher it will be ranked in search results.

TWITTER

I highly recommend giving input to people (even if you don’t  know them)! The more you tweet (as long as its quality/helpful), the more you will be noticed. Twitter can be a fantastic networking tool and I highly recommend complete saturation because it helps distinguish yourself from people, can gather followers who will listen to you, and potentially be an excellent form of feedback between your apps and your users.

REVIEW SITES

The next thing I would recommend has to do with those “review” sites. My friend and I had a little conversation about this topic, the focus being “who actually visits these pages?”. Well, apparently a lot of people!

After adding up the monthly visitors between a few of the top sites(A) I came to about 836,374 monthly hits. That’s a decent amount of potential exposure. By adding your app to these types of review sites you will be increasing SEO, increasing awareness, and networking with the right people. If you have an opportunity to get one of your apps reviewed – make that Priority-1!

Here is a quick list of some high-potential WP7 review sites:

YOUTUBE VIDEO REVIEWS

Even if you make the video yourself – youtube can be a powerful marketing tool. I tend to upload a few tutorials here and there (B) though nothing major. Yet I found after uploading a few reviews for my newest WP7 apps – people were actually responding! I may have only gotten ~100 unique views but hey – it took about 5 minutes to make and can definitely be a good tool to raise awareness. Plus, this too will increase your SEO.

GET A REAL WEBSITE

As you can see, this blog here serves multiple purposes. We have our apps on here and we have casual information. I would recommend against a blog-only solution and go with a proper, complete website. I actually have one myself for my own apps: (http://www.silverislandmedia.com) which seems to work out alright for my purposes. Blogs are great – but you really should have your own website. This will increase SEO, increase your distinguished look, and allow you to have a central place for all of your business-only related information.

CONCLUSION

My common theme so far has been SEO(C). Organic search results are where its at. SEO is free if you do it right and the reward for proper investment can be huge. Just remember: get your product name mentioned everywhere! If you made an app the goal is always for your product name to come up in the most generic of searches related to the category. I hope this has helped, feel free to give me feedback! I am always looking to improve 🙂

BIBLIOGRAPHY

(A) http://www.onlinemarketingrant.com/free-iphone-app-marketing

(B) http://www.youtube.com/watch?v=6Ar5FN_6qFk

(C) http://en.wikipedia.org/wiki/Search_engine_optimization

Sweet Winter Dreams Live Wallpaper

December 8, 2010 5 comments

After we saw all the awesome feedback from Winter Dreams, we decided, why not continue the trend and make another and turn this thing into a series of cool Christmas wallpapers! Out came Sweet Winter Dreams. We knew we wanted a candy themed app, but that was not enough! Taking some of the whimsy winteriness (Safari says not a word! ;D) from Winter Dreams, and add elements of nostalgic childhood candy memories, we bring you Sweet Winter Dreams!

Candy falls from the sky along with snowflakes set on top of a twinkly starry night. When you scroll to the left, you see a happy snowman in the foreground. But let’s not forget, the center of the scene is Santa Claus and… well Mrs. Claus, I hope. They are enjoying a sweet Christmas kiss beneath the mistletoe on the candy cane arch. The candy canes blink and cast a warm red glow on their outfits.

This live wallpaper gives me a feel of romance and childhood Christmas spirit. If you decide you like us, support us and get the donation version. It has a few more types of candy (do cupcakes and cookies count as candy?) as well as settings to customize everything!

Some users have reported this live wallpaper to be a CPU hog, but I don’t think so. It takes around 70% which is pretty reasonable considering all of the Christmas bling in your eyes!

Enjoy the wallpaper and have a Merry Christmas!

Thanks,
David

qrcode

Christmas Lyrics App for Windows Phone 7

December 8, 2010 2 comments

Christmas Lyrics promotes healthy caroling by providing an extensive database of over 20 Christmas songs for you to look through! Never again shall you be caught mumbling the words to some of the top Christmas songs this holiday season. This app features a smooth interface, fun background, and fantastic selection of songs to keep you entertained throughout this festive month.

Christmas Lyrics was the first app I created for the windows phone 7 Marketplace. I thought it would be a good choice because of the upcoming holidays and decided to finish it in a matter of days. It is currently ranked as the top 29th sold app in the entire entertainment section and I hope to see its position grow as we approach Christmas Day!

Christmas Lyrics has been reviewed by a number of other sites too! Check out what other people are saying.

App Review By 1800PocketPC

App Review By PR4

Youtube Video I Made

TAG Code For Direct App Download!
TAG Code For WP7!