January, 2012

  • DaveDev

    Are you a student? Check out the Big App On Campus Contest!

    • 0 Comments

    via Ed Donahue

    We see new, amazing experiences created every day by student developers and we wanted to come up with a way to return the favor: we are partnering with the band The Gracious Few (featuring members of the bands LIVE and Candlebox) to create an amazing experience for ten (10) US college students (and their guest) in Austin, TX at SXSW: attend a private concert, receive backstage passes, go to a private dinner with the band, and be interviewed on national radio about their apps.

    We’re topping all this off with two $15,000 cash awards (one for the top free app and another for the top paid app) for the two apps that will be named “Big App on Campus.”

    Big App on Campus (BAOC) is open to US College and University students who build apps for Windows Phone. Each app created from August 1st, 2011 until February 14th, 2012 can be entered and students can submit multiple entries.

    Overview of Prizes

    • The Gracious FewTop free app + top paid app get $15,000 each!!
    • 10 students (and their guests) will join us in Austin, TX for SXSW Music festival in March 2012
    • Transportation, hotel, $500 spending money
    • Private concert with The Gracious Few
    • Backstage passes and private dinner with the band

     

    Timeline & Judging Criteria

    There are a few dates of note:

    • February 14, 2012 -> deadline for all entries to be submitted
    • February 15, 2012 -> Round 1: Judging
    • February 23, 2012 -> Round 2: Public voting
    • March 1, 2012 -> Round 3: Public voting to select Big App on Campus
    • March 13-18, 2012 -> SXSW Music festival in Austin, TX

    Every app submitted will be judged on three criteria:

    • Innovation (40%): How innovative is the app? Does it do something new or does it accomplish something in a new way?
    • Experience (40%): Does it feel seamless and like a native experience on Windows Phone? Does the app have a polished feel?
    • Potential (20%): Does the app have potential in the market (lots of users, making money, both) or not?

    Public voting will include a combo of number of downloads of the app + “Likes” on Facebook. Semi-finalists will definitely want to think about how they can get their friends, family, fellow-students, and even complete strangers to download and “Like” their apps.

    How to Enter

    Obviously entering requires building & publishing an app. Each student must also complete the Official entry form (takes 49.7 seconds on average). Here’s what to do:

    1. Register for DreamSpark at http://www.dreamspark.com and for an App Hub membership (both are free of charge for students) at https://users.create.msdn.com/Register/. Also check out our great Getting Started Guide for more info and resources. https://www.dreamspark.com/Products/Product.aspx?ProductId=28
    2. Create & publish a Windows Phone application to the Windows Phone Marketplace. Make the apps free, charge money, put ads in them…it’s up to you.
    3. Visit http://wpdev.ms/BAOCApplication and complete an Official entry form. Do this after you’ve published your apps because you’ll need the App ID.

    The full details are in the Official Rules so make sure you check them out.

    Eligibility & Rules

  • DaveDev

    My Adventures in HTML5 Gaming

    • 0 Comments

    If you will be in the Philly area this Wednesday night stop on by the Microsoft Malvern Office.  I will be hanging out with the great Philly.NET folks discussing my recent experiences in HTML5 Game Programming.  The evening will kick off at 5:30pm with Brian Minisi giving an overview of TFS11.  We’ll do some networking and then Rich Ross will give a quick tip on using LINQ in SharePoint.  We'll end the night with some fun HTML5 Gaming goodness.

    HTML5Gaming

    There will be plenty of food, prizes and jokes (although I can’t promise they’ll be new ones).  Hope to see you there!

  • DaveDev

    Living the Dream: Make the Video Game You’ve Always Wanted and Get Paid For It

    • 1 Comments

    vslive

    I recently presented a Visual Studio Live Orlando session entitled Living the Dream: Make the Video Game You’ve Always Wanted and Get Paid For It.  It was an introductory course for all developers on how to get started with Windows Phone Game development. This included coding our own little game, lots of free sample projects, and tips and tricks I’ve learned a long the way.

    I have posted all of the slides and demo projects in the usual My Stuff section on this blog.

    DaveDev-MyContent

    Here is a rundown of what you will find inside the zip folder once you download it.

    1-XNA-Dave-TrekGame

    This was the first piece of code we wrote together and shows the basics of the XNA game loop as well as some simple touch and sound effects.  The Content Project consisted of two images: space.png, a large starfield and ship.png. Both of these freely redistributable pieces of artwork were grabbed using Bing Image Search.  We also edited ship.png a bit to make it more lifelike using the free tool Paint.Net.

    The project was a good first exposure and I took us through each of the common sections in Game1.cs.

     1-TrekGame

    Class Variables

    Here is where we created the Textures to hold our ship and space field, the vector to track its position and the SoundEffect and its related Instance to add some effects later on. .

                Texture2D shipTexture;
                Texture2D backgroundTexture;
    
                Vector2 shipPosition;
    
                SoundEffect redAlert;
                SoundEffectInstance redAlertInstance;

    Game1

    We used the hardware scalar available in XNA to correctly scale our spaceship for the smaller screen and set the game to run in FullScreen mode.  This is one of the common mistakes made by developers first out since running in a dark background will make you think you have a black border when in fact you have the system tray across the top of your game.  Testing in both light and dark themes, always a great idea in any phone app, will show the system tray sitting on top.

                //Backbuffer - Dave
                graphics.PreferredBackBufferWidth = 480;
                graphics.PreferredBackBufferHeight = 800;
                graphics.IsFullScreen = true;  

    LoadContent

    This method is where we load all of the content we will be manipulating in our game.  In this case we are setting both the space and ship texture and then putting the ship directly in the middle of the phone screen.  We are also loading our first sound effect – redAlert into memory and getting an instance of it to detect the state of the sound (playing, stopped, etc).

                // load the sprite's texture
                shipTexture = Content.Load<Texture2D>("ship");
    
                // load the background texture
                backgroundTexture = Content.Load<Texture2D>("space");
    
                // center the sprite on screen
                Viewport viewport = graphics.GraphicsDevice.Viewport;
                shipPosition = new Vector2(
                    (viewport.Width - shipTexture.Width) / 2,
                    (viewport.Height - shipTexture.Height) / 2);
    
                redAlert = Content.Load<SoundEffect>("RedAlert");
                redAlertInstance = redAlert.CreateInstance();  

    Update

    Now we are in our main Game Loop. From here on out we are going to Update/Draw, Update/Draw, 30 times a second (although Windows Phone is capable of going up to 60 fps we used the default framerate of 30fps that is included in the project template).  Each update we check to see if there have been any touches from the user and if there have we take the first one.  Once we get the location of this first touch we do some math to move the space ship to the center of the touch point.  We then call PlayRedAlert.

                TouchCollection touchCollection = TouchPanel.GetState();
                if (touchCollection.Count > 0)
                {
                    TouchLocation t1 = touchCollection[0];
    
                    double x = t1.Position.X - (shipPosition.X + (shipTexture.Width / 2));
                    double y = t1.Position.Y - (shipPosition.Y + (shipTexture.Height / 2));
                    double speed = Math.Sqrt(x * x + y * y) / 20;
    
                    double angle = (float)Math.Atan2(y, x);
    
                    shipPosition.X += (float)(speed * Math.Cos(angle));
                    shipPosition.Y += (float)(speed * Math.Sin(angle));
    
                    PlayRedAlert();
    
                }   

    PlayRedAlert

    This method will check the current state of the Redalert sound and if it is not playing it will go ahead and fire the Play event.  If the sound is still playing (from a recent touch event) it will not override and simply ignore the new touch.  If we did not do this sounds would continue to play with every touch and overlap into a loud mess of incoherent noise.  We also have the ability to mess around with Pitch and Pan (move the sound between different ears on the headphones).  In this case we raised the pitch by 50% and had a Red Alert sound that sounded very much like a Chipmunk.

                if (redAlertInstance.State != SoundState.Playing)
                {
                    redAlertInstance.Play();
                    redAlertInstance.Pan = 0f;
                    redAlertInstance.Volume = 1f;
                    //redAlertInstance.Pitch=0.5f;
    
                }

    Draw

    The final method took all of our textures and drew them to the screen.  Remember that order in the batch is important.  If we wanted to background to be draw on top of the spaceship we would only need to move it before the ship in the spriteBatch order.

                GraphicsDevice.Clear(Color.White);
    
                spriteBatch.Begin(SpriteSortMode.Immediate, BlendState.AlphaBlend);
    
                spriteBatch.Draw(backgroundTexture, Vector2.Zero, Color.White);
    
                spriteBatch.Draw(shipTexture, shipPosition, Color.White);
    
                spriteBatch.End();  

     

    2-XNA-Gestures

    2-NinjaAcademyThe

    The second project, NinaAcademy , is a freely available starter kit on AppHub.  NinjaAcademy is a great example of how to use the built in Gestures Windows Phone supports.  All of this is done through the TouchPanel and we simply tell it which gestures we want to listen for.  For example if we wanted to watch for Flicks we would use something like this:

             TouchPanel.EnabledGestures = GestureType.Flick;

    We can also listen for multiple gestures such as Flick and Tap we would use the following:

              TouchPanel.EnabledGestures = GestureType.Flick|GestureType.Tap;

    3-XNA-Accel

    3-Accel

    I then took us through the feely available Codeplex project, Mango Teapot.  Mango Teapot, besides being a great example of using 3d Models and the new Silverlight on XNA capabilities, utilizes the Accelerometer to manipulate the phone.  By clicking on the gravity button below the teapot we start to read data from the accelerometer inside the phone.

    OnUpdate

    if (useGravity)
                {
                    if (useMotion)
                    {
                        teapot.World = Matrix.CreateFromYawPitchRoll(0, MathHelper.PiOver2, 0) * motion.CurrentValue.Attitude.RotationMatrix;
                    }
                    else if (useAccelerometer)
                    {
                        Vector3 original = new Vector3(0f, 0f, 1f);
                        Vector3 current = new Vector3(accelSensor.CurrentValue.Acceleration.X, accelSensor.CurrentValue.Acceleration.Z, -accelSensor.CurrentValue.Acceleration.Y);

    If you recall using the accelerometer in Windows Phone is like any other sensor (Microsoft.Devices.Sensors) we simply add a reference to the namespace, declare the object and then call the start method when we want to begin collecting data.  We then tell it which eventhandler we want to use every time a new the sensor detects a new reading (the user moved the phone in some way).  You will get data in all three dimensions: X, Y and Z  in the –1 to + 1 range.  If the user moves the device too hard you may see numbers returned as high as –3 to +3.  This is a trick you can use if you want a “shake to reset level” type of functionality just look for consistent readings in the 2s to 3s and you know the user is shaking the device.

    Since the release of the Windows Phone 7.5 Developer Tools  developers have been treated to accelerometer simulation right through the emulator.  Simply click the advanced tools button on the top right of the main emulator window and you will see a screen like the above.  Then drag the orange dot around and you will move the simulated phone in three dimensions.  You can also jump to specific orientations as well as use recorded data.

    4-XNA-SL-Paddle

    4-Menu-Paddle

    The final project we walked through was Paddle Battle.  Paddle Battle is another free sample publically available on the App Hub. We covered the new Silverlight and XNA Application template, what differed from normal XNA, and how to create a menu system using all Silverlight UIElements in your XNA game.  Paddle Battle is a simple example that includes a main menu for enabling sounds and starting the game. 

    Making Money

    I ended the session with a tour of App Hub and Microsoft PubCenter.  Most of the strategies I covered around making money can be found in my Real World Windows Phone Development Series here. These included how to get your app featured in the marketplace, free vs. paid, trial download ratios and what Microsoft is doing to help you be successful (contests, content, and free training, etc.).

    I hope if you’ve been on the fence about writing a game for Windows Phone these sample projects will be a good starting place.  Don’t forget if you live in the United States and are local to NY, NJ, or PA I would love to hear from you!

  • DaveDev

    Are you a Developer or Designer in the NY/NJ/PA area using Microsoft Software?

    • 2 Comments

    Why not make 2012 the year you put those skills to use and publish your own app to the marketplace!

    A Growing Marketplace

    In only a year the Windows Phone Marketplace has grown at a phenomenal rate with over 40,000 apps now available for download.  Sites like WP7Applist track published apps on a daily basis:

    MarketplaceGrowth

    These numbers continue to climb as more partners like Nokia begin selling their Windows Phones worldwide.

    The Windows Phone Marketplace continues to expand into new markets that you can sell your apps in.

    Mango Markets

    All of these new markets and new devices means more potential customers for your app.

    Update 1/5 – Todd Brix just announced the ability today for Windows Phone Developers to distribute their apps in 6 new markets; Argentina, China, Indonesia, Malaysia, Peru and the Philippines. This brings the total number of markets you can sell your app in to 41.  You can read the full post here.

    Growing Your Own Revenue

    One of the harder parts of my job is not telling all of the financial success stories I see people, many of them students, reaching today with Windows Phone.  It is not my story to tell however and so if you are looking for some real world revenue numbers you will have to hunt around a bit more.  A recent public story is from independent Windows Phone Developer, Elbert Perez, who just posted his revenue numbers from last year and he made over $61,000.  Who wouldn’t mind that type of income? 

     

    game-revenue-summary

    One of the other stories I can freely talk about is my own.  While not as impressive as Elbert’s numbers my single DoodlePad Free Windows Phone app, which uses the Microsoft Advertising control, has made over $1,100+ last year with close to 19,000 downloads. 

    DoodlePad Ad Revenues

    19kDownloads

    Not bad for an app that only took a few days to write and was mostly intended to keep my own two daughters occupied.  Keep in mind too this app has never been featured in the marketplace nor any tech blogs so I feel it is a good representation of what an average app might achieve.  The advertising has generated enough money for me to upgrade my pc gaming rig to a Solid State Drive and outfit it with a new Nvidia card.  While I did not become financially independent it has given me plenty of “Dad Pocket Money” each month that goes a long way.  Upgrading my home pc would have never been something I had budget for and now Skyrim never looked so good!.

    Easy to get started

    With a library of free developer resources, code samples, and videos available in the Windows Phone Developer portal it is easy to get started.  Best of all the developer tools are free.  It costs absolutely nothing to get started with your app the only time you have to pay Microsoft is when you want to sell your app on the Marketplace.  Then it is the standard $99 annual subscription fee and a 70/30 revenue split.  This subscription also gives you the ability to publish Xbox games as well.

    AppHub 

    Developer Devices

    I am a Windows Phone Champ who covers the New York, New Jersey and Pennsylvania geographies.  I am available to assist you in getting your apps up and running and I have Windows Phones!  Are you at the point of wanting to test your app on a device but don’t have a Windows Phone yet?  I can ship you a loaner to use for a couple of weeks!  Have you written some apps but are under contract still unable to get a Windows Phone?  I may be able to get you a device to keep! 

    If I don’t know who you are though I can’t help you.  So please, if we haven’t met yet and you are in these geographies  please contact me asap and let me know what you are working on.  Specifically I need to know the following:

    • Company or Individual Info
      • Name
      • Physical Address
      • Website (blog or twitter is fine too)
    • Primary Contact
      • Name
      • Phone
      • Email
      • LiveID (used for Marketplace)
    • Application(s) Details
      • Description (videos are great too)
      • When you started development
      • If it is a new app or port of existing application (iPhone, Android, RIM, etc.)
      • How far along you are
      • When you think it will be completed
      • If you have published the app already what is the marketplace url

    * If you don’t fall in these geographies but are looking for assistance I can connect you with your local champ

Page 1 of 2 (5 items) 12