January, 2012

  • DaveDev

    Windows 8 – First Apps Contest

    • 2 Comments

    Win8 - Build What's Next

    Just a gentle reminder for those of you working on your first Windows 8 App. Submissions for the First Apps contest must be submitted this coming Sunday night by 11:59 PST.

    via the Windows 8 First Apps Contest website

    Windows 8 is powered by apps, and we're excited to see all the great apps our developers will build.

    The First Apps contest will select eight winning apps to be the very first apps in the Windows Store when it opens. This is your chance to show off your great app and to be part of an exclusive group of developers invited to participate in the Store when it first opens. The winning developers will also get some goodies to help them build even better apps:

    • A Samsung Windows Developer Preview PC from the BUILD conference, so you can test your apps with touch and sensors
    • One year of Windows Azure, so you can build apps that feel connected and alive
    • A two-year subscription to the Store, so you can continue to update and improve your app
    What to know before you participate

    Submissions are due by Sunday, January 8 at 11:59pm PST. This gives you just over 30 days to design and develop your app. Finalists will be notified on Sunday, January 15. Finalists must update their app to run on a new, confidential Windows 8 build provided by us and resubmit their app before February 3 to be eligible to win.

    You'll need a Windows Live ID to sign in to the contest site and submit your app. You'll also need the Windows 8 Developer Preview with developer tools in order to start building your app.

    Our panel of judges is very excited to review the innovative apps you submit. The judges are:

    • Jensen Harris, Director of Program Management, Windows User Experience
    • Antoine Leblond, Senior Vice President, Windows Web Services
    • Jason Zander, Corporate Vice President, Visual Studio
    What to consider as you build your app

    The judges will be evaluating apps based on how well they embrace the Metro style principles, as outlined at BUILD. Great Metro style apps adapt to a variety of form factors and screen resolutions, so our judges will be evaluating each app on both a Samsung Windows Developer Preview PC (1376x768 resolution) and a laptop (1920x1080 resolution).

    Visit the Dev Center to learn more about designing Metro style apps and building Metro style apps.

    All apps must comply with the App Certification Requirements, and all apps must be submitted in the English language.

    Ready to participate?

    Enter the contest ›

    Read the Official Rules ›

  • 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

  • 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

    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!

Page 1 of 2 (5 items) 12