Game On Event Demos

I had a FANTASTIC time at the “Game On” event last Saturday (06/15/2013). I hope all the attendees had as good a time as I did, and if you missed it, don’t fret.  All the content is available on demand

GirderGary

In my first session on creating assets I showed how to use tools like Sfxr, Audacity, Soundation, InkScape and Gimp to create sounds and graphics for your games.  In addition I gave links to a number of other great web resources for both sounds and graphics including:

2dgameartforprogrammers.blogspot.com
OpenGameArt.org
office.microsoft.com/images

and

freesound.org
pdsounds.org

If you want a copy of the slides and demos from my sessions you can grab them here:

Find and Create Free Game AssetsVideo

Putting It All TogetherVideo

2D Graphics and Sound Tools for Game Developers

 

I’ve been “playing” quite a bit with 2D game development for Windows 8 and Windows Phone lately.  HTML5 Game Creation tools like YoYo Games’ GameMaker, and Scirra’s Construct 2 make Windows 8 game development accessible to developers at all skill levels.  And of course, as a developer there isn’t an API we can’t handle.  But games are just loops and if-else branches.  The best games have great sounds and graphics as well. And coming up with those types of game assets isn’t always easy for developers.  Or is it?  I think most developers underestimate their creative abilities, and that if they were to dive in and try creating sounds and graphics for themselves, they might just be surprised at how good they do.  Even if the sounds or graphics don’t end up making it into the final version of the games you publish, they can help you form the tone, feel, and play of the game as you go. 

Following is a list of the various tools I use for creating graphics and sounds for games:

Vector’s vs. Bitmaps

Bitmap Graphics

The various graphical elements in your games (sprites, backgrounds, environmental art, etc) are almost always bitmaps.  With bitmap graphics, each individual pixel in the graphic is a assigned a specific color (and possibly opacity).  PNGs, JPGs, GIFs, BMPs, etc are all common file formats for storing bitmap images.

image

Graphics processors know how to draw bitmaps quickly, and with control over each individual pixel you have amazing control over how the image looks at a specific size.  However, they don’t scale up very well at all.  As you make a bitmap larger, or zoom in on it, the individual pixels become obvious and the image begins to look blocky.  To make a bitmap smaller, new pixels have to be added and the color of those new pixels must be “guessed” or “interpolated”.  In addition, editing bitmaps can be difficult depending on what needs to be done.  For example, if I wanted to move the hat on my character below, I would have to first select all the pixels for the hat, and move them to a new location in the image.  I would then have to replace the pixels it held previously with new colors.

image

 

Vector Graphics

Vector graphics on the other hand describe the images using “Vectors”.  Each vector describes the shape, points, fill color, line color, thickness, ends, etc of each line in the graphic.  They can be edited, re-shaped, moved, rotated, skewed, scaled up, scaled down, etc without using quality.  AI, SVG, CDR, & EMF are all common file formats used to store vector images.

image

These give you a ton of control over creating an image without having to commit to the placement of a specific pixel.  However, because they are really mathematical descriptions of your image, they can’t be processed as rapidly by graphics processors and are thus not a great choice for the assets in your games.  So, what to do?  Well, create your graphics in a vector image editing tool (Like InkScape, Illustrator, or Corel Draw) and then export the graphic as a bitmap at the specific size you need for your game!  You can even export it in different poses, and at different sizes!  Cool!

image

Graphics Tools

Gimp (aka.ms/gimp)

image

There are a number of great bitmap editors out there, Adobe PhotoShop is probably the premier tool, but it comes at a price.  For my money, you can’t go wrong with Gimp.  It has as much capability as you need for creating 2D game graphics, and the price is hard to beat (free). 

InkScape (aka.ms/inkscape)

image

InkScape is the vector graphics tool I use.  Like Gimp, it has all the power that I need for creating 2D game graphics, and is free.  Just as Adobe PhotoShop is sort of the premier bitmap tool, Adobe Illustrator is the premier vector tool, but is again pretty pricey.  Another popular tool is Corel Draw, and you can get the Corel Draw essentials tool relatively in-expensively. 

Waveforms vs. Sequences

Waveforms

Waveforms and sequences are two methods for working with sound data, much in the same way as bitmaps and vectors were different ways of working with image data. Wave forms are a digital representation of a sound.  The digital data is captured at a specific “sample rate”.  The higher the sample rate, the more samples there are per second. With a waveform editor, you really modifiying the collection of samples much in the same way as you edit individual pixels in a bitmap.  They are easy to edit with filters, etc if you want to affect all the sounds in a certain time range, but they can’t help you easily change the bass guitar sound from an electric bass to an upright bass for example.  MP3s, WAV, OGG, are common file formats for storing wave forms:

image

Sequences

Sequencer’s are like the “vector’s” of the sound world. The give you a way to describe a specific sound (guitar, keyboard, bass, drum, etc) to play, at a specific pitch and volume, at a specific time and duration. They often come with complete libraries of sounds and even some pre-built “loops” (looping sequences that can repeat).  They give you ultimate control over the sounds you make, but much like vector graphics, require too much processing for real-time game play.  So, you will typically create background music, etc, in a sequencing tool, and then export the music out to an MP3, etc.

image

Sound Tools

Audacity (aka.ms/audacity)

image

Audacity is a great open source waveform editor.  Using even a basic microphone (of course better is better) you can record sounds using audacity, process it with some effects (“GVerb”, “Change Pitch”, and more) and get some pretty respectable audio for your games. This is great for sound effects like the click’s, pops, whirs,whooshes, bangs and booms in your games.  Just pretend you are a kid again and playing cops and robbers in the back yard.  You know you’ve made a sound effect or two in the past, come on!

OpenLabs’ StageLight (aka.ms/stagelight)

image

StageLight is an in-expensive (like $9.99) music sequencing tool.  It helps you create songs that you can use for the soundtrack in your games.  Even if you aren’t musically inclined these tools can help you create a simple beat, and possibly even a basic melody that you can play in the background of your games. 

Resource Links:

Michael Palermo’s GameMaker Resources: http://aka.ms/4gamemaker

Jeremy Foster’s Media Page: codefoster.com/media

Chris Hildebrand’s 2D Game Art for Programmers Blog: 2dgameartforprogrammers.blogspot.com/

Bret’s Character Template: aka.ms/bsct

Viewing System.Diagnostics.Trace Entries in the Windows Azure Compute Emulator

Windows Azure Cloud Services have some fantastic diagnostics capabilities that leverage those provided by Windows and the .NET Framework.

If you are creating a Web Role, and would like to be able to easily view trace information in the Compute Emulator during debug sessions on the local machine, you may find that the trace entries don’t appear by default. 

To fix the problem, you simply need to add an entry to your web.config inside the web project.

<configuration>
  <system.diagnostics>
    <trace>
      <listeners>

        <add type="Microsoft.ServiceHosting.Tools.DevelopmentFabric.Runtime.DevelopmentFabricTraceListener, Microsoft.ServiceHosting.Tools.DevelopmentFabric.Runtime, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
             name="DevFabricListener">
          <filter type="" />
        </add>

      </listeners>
    </trace>
  </system.diagnostics>
</configuration>

InkScape Game Character Templates

I’ve been “playing” with games lately.  Creating them that is. One of the problems with games is that you need graphic assets.  I’m not a world class artist, although I do enjoy playing with graphics quite a bit. As I searched the net for help on creating my own game characters, I came across Chris Hildebrand’s excellent “2D Game Art for Programmers” blog.

I have played around with the information he shares in his Creating a game character and Character Animation blog posts.  I find that I always seem to start over from scratch.  To help cut down my time to creating new characters, I have created some templates that I can use in InkScape

Character Template:

ct

Is a fully segmented character that you can start with and customize.  In addition, I created a version of the character walking:

cwt

that when animated looks like this:

Walker283

You can use these templates to create your own "side-view” characters. 

These are just starting points, and I’ll add a tutorial later on using them, but I needed to post this now so I could share it at an event!

Grab them here: http://aka.ms/isctzip

Microsoft Student Account Sign Up Tutorial

We’ve been running a ton events on campuses all around the Western US lately.  One of the things we try to do at these events is help students sign up for the variety of Microsoft accounts available to them.  In an effort to streamline this process, I have recorded a video that walks through the sign up process for each of the following accounts:

If you are a student, and would like to sign up for FREE to any of the above, this video is for you.  Also, If are having trouble getting verified in Dreamspark, and need help, let me know!

Enjoy!

Creating Custom Tables for Windows Azure Mobile Services…

If you have used Windows Azure Mobile Services (WAMS) in the past , you have probably created tables using the management portal. If you haven’t used WAMS, WHAT ARE YOU WAITING FOR!???

If you are more of a “behind-the-scenes” kind of developer though, you may prefer to make your SQL tables using good old SSMS and some scripts. In short 5+ minute video below, I walk you through the steps and gotchas around creating tables directly in SQL Azure, but consuming them via Windows Azure Mobile Services. 

As for the gotchas, there are two that come to mind:

  1. Your tables must have a primary key column called “id”.
  2. Your table names should be “singular” (think “Category” not “Categories”) to allow for more appropriate class names on the client side.  You wouldn’t want to create a class called “Categories” when it really represents a single category. 

If you want a copy of the SQL script I use in the video blow, you can get it here: http://aka.ms/wcts

Building Windows 8 Apps using HTML5, CSS3 and JavaScript

When it comes to Windows 8 apps, I have to admit, I’ve been more of a C#/XAML kind of guy.  However, lately, I’ve been looking into a number of the HTML5 based game tools (like Scirra’s Construct 2) and figured that I ought to learn a little more about building Windows 8 apps using HTML5 and JavaScript. 

I’ve been building web apps on various platforms going back to the first web server for windows written by Bob Denny (Any other VB CGI devs out there?), so HTML is second nature to me.  JavaScript?  Well, not so much, but I’ve done my fair share.  What I found out when I started digging into HTML5/JS dev for Windows 8 though was that I liked it a lot more than I expected to.  If fact, it’s pretty darn cool. 

You can take your existing HTML5/CSS3/JS skills to create first class apps in Windows 8. Not BROWSER based apps.  Windows 8 apps. You can package them up, and sell them in the Windows Store, and make real money with them.  Cool! 

I’ve had the privilege over the past month to present what I have learned about Windows 8 HTML5/JS apps to the San Diego HTML5, and the San Diego JS meetups.  If you happened to miss either of those, or just want to see why I am excited about it in general you can:

Get the free “Programming Windows 8 Apps with HTML, CSS, and JavaScript” eBook by Kraig Brockschmidt

Grab a copy of my slides and demos

Watch a YouTube video of my presentation

Node.JS Boot Camp in Santa Monica – Feb 23rd, 2013

Node.js is a server side software system designed for writing scalable Internet applications, notably web servers. Programs are written on the server side in JavaScript, using event-driven, asynchronous I/O to minimize overhead and maximize scalability.

What is a Node.js Boot Camp?

Node Boot Camp is a free event for developers and designers who want to learn Node.js from the ground up with hands-on instruction from Node experts in the community. No prior Node experience is necessary to attend. At Node Boot Camp you’ll learn how to build your first Node application from scratch, how to work with popular Node.js development tools and editors, how to work with popular 3rd party Node frameworks, and how to deploy your applications to production hosting environments.

What’s the agenda?

8:30 am – Network and Breakfast.
9:00 am – Start. Fundamentals.
10:00 am – Deployment.
10:30 am – App Development. The Basics.
12:00 pm – Lunch.
12:30 pm – App Development. Basic + Advanced.
1:30 pm – Hackathon.
4:30 pm – Presentations.
5:00 pm – Prizes and Finish.

How Do I Register?

REGISTER HERE

Cost?

This event is free of charge.
Attendees are responsible for booking and paying for their own travel and accommodation.

Questions?

Email your questions to nishab@microsoft.com

SQL LA User Group Slides and Demos

I’m speaking at the SQL LA User Group tonight on Azure SQL Databases.  You can grab my slides and demos here:

image

Resetting an Azure SQL Server Administrative Credentials

It is easy to forget that an Azure SQL Database exists on an Azure SQL Server. One Azure SQL Server can support multiple Azure SQL Databases.  The biggest benefit to a single Azure SQL Server hosting multiple databases is that you have a single administrative login and set of firewall rules that affect all databases on that server.

This can lead to confusion however if you have had a server in place for some time, and add a new database without remembering the original server credentials or firewall rules. 

To remind yourself of the administrative login for your database, first login to the Azure Management Portal (https://manage.windowsazure.com).  Along the left hand slide, select “SQL DATABASES”.  On the “DATABASES” page, find your new database in the list, and locate the server name from the “SERVER” column (FYI, the real server names have been truncated in the screenshots below for security purposes):

Databases

If you click on the name of the server above, you will be taken to the “DASHBOARD” page for that server. From there, along the right hand side under “quick glance” you can see the “ADMINISTATOR LOGIN” name, and if needed click the link further up on the “Reset Administrator Password” link.

LoginInfo

Once you have a figured out, or if needed reset, the administrator credentials.  You can now log in an create additional logins and user accounts using the CREATE LOGIN and CREATE USER statements…