Krashlander Character Control in Development

I’ve been working lately on the main character for krashlander.  The game is named after the main character.

Thought I’d throw out some sceenshots and a video to show how things are progressing.

Here is how things look in Expression Blend. I have some custom joint (blue circles) and rigid body controls (orange rectangles) that map to physics entities when the game loads.

GameLevel7

Currently everything is rectangles, but I can define custom collision polygons for all the body parts.

Here’s a video of krashlander in action… keep in mind this is all just developer graphics.

 

That’s all for now… gotta get back to coding!

-Jeff Weber

Developing Krashlander for Windows Phone 7 and the Web

About 2 months ago I blogged that I was jumping back into XNA to build a game or two for the XBox 360 Indie Games platform.

Things change quick these days.  Shortly after I made that post and started digging back into XNA, Microsoft announced details of their new Windows Phone 7 and caused me to stop and re-evaluate my direction.

I’ll spare the details and just sum some things up.  I decided I wanted to create a game for the new phone.  I went back and forth on whether to use XNA or Silverlight.  In the end I chose Silverlight because I like the platform and tools and I love working with vector graphics.

What game am I developing?

This one:

 

I’m also going to try something to keep myself blogging more frequently.  I’m going to take a lesson from twitter and force myself to write no blog posts longer than 1000 characters.   I’m very close to that now, so time to wrap it up.

In future blogs, I’ll try to go into more detail on the development of Krashlander. 

Jeff

(~975 characters not counting these.)

An Open Letter To Microsoft Regarding The Silverlight Game Development Community

Let me start by saying Silverlight is an awesome platform for game development. 

I've made 3 games with Silverlight so far (Diver, TireStorm, and Diver2) and each has been a joy to create.

 Diver  TireStorm  Diver2 

(Silverlight Games: Diver, Tire Storm, Diver 2)

However, something is missing. . . <pause for dramatic effect>. . .COMMUNITY.

Having developed Silverlight games for the last 2-3 years, I have a pretty good feel for the ecosystem that makes up the Silverlight game development community and currently I can only describe it as a bit scattered.

While there is a Silverlight game development forum on the Silverlight.net site and some good 3rd party websites and blogs (Silverlight Games 101, Mashooo, Cameron Albert’s Site),  there really is no single place for a Silverlight game developer to call home.

I am pretty confident the Silverlight game development community will quickly grow to become as large(or larger, if the Flash game dev community is any indication) as the XNA game development community.

For this reason, I hereby request, on behalf of all the future and present Silverlight game developers,  an awesome Silverlight game development portal along the lines of what exists for the XNA Creators Club Online community.

In fact, given that Silverlight and XNA are beginning to cozy up to one another and technology like Silver Sprite is working to blur the lines between Silverlight and XNA development, maybe the XNA Creators Club community site could just be expanded a bit to include us Silverlight game developers.

I would love to see the kind of education and resource content that is currently provided for the XNA developers also provided for the Silverlight game developers.

Just like the Windows Phone 7 Series breaks things into hubs of similar content, it makes sense to group all the Microsoft game development resources into their own "Hub".  (Just using the WP7 hubs as an analogy here)

With Silverlight adoption on the rise, it's just a matter of time before the big online flash portals begin to acknowledge Silverlight games. Given this and Windows Phone 7’s emphasis on games, I think Silverlight games are close to reaching a tipping point. 

Silverlight is a 1st class game development platform and us Silverlight game developers would love a cool place to hang out, share ideas and code, and create awesome games.

Thanks for your time and keep up the good work.

-Jeff Weber

http://www.farseergames.com

p.s. If you are a Silverlight game developer and you agree with the above.  Please help spread the word.

Hello Again, XNA, Long Time No Code!

After finishing Diver 2, I decided to step back and think about where I wanted to go next with my game development.  I still had a ton of ideas for what I thought would be interesting games, but at the time, from a platform standpoint, I was not sure which direction to go.

Originally, there were really only two options I was considering: Silverlight or Flash.

Silverlight:

I've already created 3 full games for Silverlight (Diver, Tire Storm, Diver 2), and various mini-games/demos (Water Demo, We Are Bugs, Keep Away).

I've  been a Microsoft developer professionally for about 10 years, so Silverlight, Visual Studio, and C# all just fit like a glove.  The development environment is a joy to work with.

The biggest downside of developing games with Silverlight is its current lack of any sort of game development ecosystem.  No major game portals support it (there are some up and comers however: www.mashooo.com, www.silverarcade.com), few forums exist for Silverlight game development, and only about 50% of the potential players have it already installed on their computer.  (This number is growing every day: www.riastats.com)

This all boils down to one very important thing. Right now, It's very difficult to monetize Silverlight games.  Counting all my games combined, I currently bring in about 20 to 50 dollars a month.  Pays for hosting, but not much else.

Flash:

I've had my eye on Flash ever since I started using Silverlight.  Flash is where I want Silverlight to be.  It has a massive game developer ecosystem.  All major online game portals: www.Kongregate.com, www.AddictingGames.com, www.ArmorGames.com, www.NewGrounds.com, etc.., specialize in Flash games. There are micro-payment systems that can be used to sell in-game goods,  there are API's for just about anything you want to do in a game (high scores, achievements, network play), advertising options are everywhere...  It's just busting with game development goodness.

It also has some very nice game engines that are very enticing.  One in particular, the Push Button Engine (PBE), with it's component based architecture intrigues me to no end. 

So, why not go with Flash?  Well, I actually did start down that road, but a couple things, very recently, drew me in a different direction... for now.

Enter XNA:

When I was just beginning to get more serious about game development the first version of XNA Game Studio was just coming out.

Needless to say, I jumped in with both feet.  With the promise of being able to eventually deploy games to the XBox 360 and the fact that I could use Visual Studio and C#, how could I pass it up?  At the time, I couldn’t and didn’t.

Shortly after developing and releasing the Farseer Physics Engine for XNA, Silverlight came out and Bill Reiss ported my physics engine over to it.  Long story short, Silverlight intrigued me enough to eventually pull my attention away from XNA. I eventually handed the Farseer Physics Engine development and community management off to Ian Qvist (genbox) who has been doing a stellar job with it ever since.

I kind of lost touch with XNA while working on my Silverlight games.  However, a few weeks ago I happened across a Gamer Bytes article discussing what some of the top XNA Indie games made in 2009.  Lets just say it piqued my interest.

Now I don’t have grand delusions of making it rich developing XBox 360 Indie games, but I have some good game ideas and I think the platform has great potential…. and did I mention I get to use Visual Studio and C#?

So I’ve officially decided to jump back into XNA and develop a game or two to see how thinks shake out.

I’ve already begun work on my first XBox 360 Indie title. I’m starting out simple in order to get a feel for the platform. and developing a fleshed out version of my We Are Bugs game, which was originally an entry for a Silverlight 10k coding contest.  I have some good ideas on how to expand the game.

After that, who  can say, but I’d love to try and bring something like Krashlander to the platform. Will need to prototype the controls though…

Well, this has been a monster post.  I’m looking forward to getting back into the XNA community.  Wish me luck!

-Jeff Weber

Diver 2 Status: Done… and... Done!

Diver 2 is now finished and live on the Farseer Games website.

Special thanks to all the beta testers.  You were all a great help and the game is better because of your feedback.

Here is a link to play the game:

http://www.farseergames.com/divergame2 

Here is the official video trailer:

 

Here are some screens:

GameLevel1 GameLevel2 GameLevel3 GameLevel4 GameLevel7

 

 

 

 

 

 

Here is what’s next for me?

I plan to spend most of this week getting the word out about Diver 2. (Marketing! yay! …sarcasm)

Once marketing is done I think I will take some time to experiment with the Push Button Engine.  I’d love to get some of my games running in Flash so they can reach more people.

I may also play around a bit with some ideas I have for possible future versions of Diver and/or Krashlander.

That’s it for now. 

Enjoy the game and spread the word!

-Jeff Weber

Kongregate Opens It’s Portal To Silverlight, Unity, and Others.

(UPDATE: Kongregate has temporarily stopped excepting Silverlight and Unity games. They are working through some user experience issues with offering these type of games.)

Quick, name an online games portal.  Now tell me what platforms they support.

I'm guessing your answer to the second question was Flash.  Flash is a behemoth in the online games ecosystem. Today it pretty much IS the online games ecosystem.

Thing is, while Flash has been and still is a great platform for building online games, it's no longer the only show in town.

A number of developers, myself included, are writing our online games with Silverlight, Microsoft's Flash-like technology.

CropperCapture[79]Diver 2: A Silverlight game I’m currently working on.

Others are using the a game technology called Unity that allows a developer to write full-blown, true-3D games that run in the browser. 

blurst Velociraptor Safari: A Unity Game by the guys from Blurst

Still other early adopters are beginning to toy with game development using the still-in-the-works HTML 5 spec.

It's been my contention for a while now that Flash-ONLY online game portals are the present, but not the future of online games. 

The online game portals of the future, the next-gen game portals if you prefer, will open themselves up to these other ,non-Flash, platforms and their devoted legions of game developers.

To be clear, I'm not contending that Flash becomes any less relevant in this new open ecosystem, it's just getting some new friends to hang with.

On Dec 15th, Kongregate announced Konduit and became the first major portal to open itself to non-Flash games.

From the Konduit website:

Konduit is a new application platform that allows developers to integrate any browser-based game with Kongregate’s array of community features. Developers can now use JavaScript, ActionScript or REST APIs from their own back-end to tap into features such as achievements, leaderboards, virtual goods, profiles, and chat.

This means Unity games, Silverlight games, JavaFX games and actually any games that can be hosted on a website are supported by the Kongregate portal through their new IFrame hosting feature.  Furthermore, since Konduit supports javascript and REST access to it’s api’s most of these technologies should be able to utilize the many game related services Kongregate offers.  I applaud them for this move and for having the foresight to see a bigger picture.

Personally, I've been wanting to get my Silverlight games on Kongregate since the first day I found Kongregate on the web.  The morning after I read the Konduit announcement I submitted my game, Tire Storm, to Kongregate using the new IFrame option offered by Kongregate.  It took much less than an hour!

The game went into preview mode and went into a queue to be reviewed by Kongregate.   A few hours later I received the following email from Jim Greer, CEO of Kongregate:

Hi Jeff - 

I published this for you. Congrats, you're the first Silverlight game on Kongregate...

You can see and play Tire Storm on Kongregate here.

For those that don’t feel like jumping over there, here’s a screenshot.

CropperCapture[84] Silverlight game on Kongregate

I look forward now to digging into the Konduit platform API and livening up my current and future games with the services the new system offers to us non-Flash game developers.

Finally, on behalf of all us non-Flash developers, A BIG, BIG THANK YOU to the Kong!

-Jeff Weber

Wait, wait, wait… how do you submit a non-Flash game to Kongregate, you ask?

  1. Get your game onto the web in a blank html page. (Nothing but your game in the top left corner of the screen)
  2. Get a Kongregate account here
  3. Go to the Konduit page here
  4. Near the bottom of the page you will see a section title “Non-Flash Games”  Click the “Click here” link and fill out the forms and follow the instructions. (Here is the direct link to the IFrame upload page. Notice the “iframe=true” at the end of the url: http://www.kongregate.com/games/new?iframe=true)
  5. Be sure to have a friendly fall-back message for those that do not have the plug-in required to play your game.  Here is mine.. could be better but hey.

 CropperCapture[85]

Ok, that’s all… have fun.

New Silverlight 3 Book Uses Farseer Physics

Gaston Hillar recently contacted me to let me know about a recent book he’s written that uses the Farseer Physics Engine. (I built the Farseer Physics Engine a few years ago and have since handed it off to Ian Qvist, who has been running it for the past year or so.)

CropperCapture[60]

Here’s a link to the book on Amazon: 3D Game Development with Microsoft Silverlight 3: Beginner's Guide

Here is the description from Amazon:

A practical guide to creating real-time responsive online 3D games in Silverlight 3 using C#, XBAP WPF, XAML, Balder, and Farseer Physics Engine

  • Develop online interactive 3D games and scenes in Microsoft Silverlight 3 and XBAP WPF
  • Integrate Balder 3D engine 1.0, Farseer Physics Engine 2.1, and advanced object-oriented techniques to simplify the game development process
  • Enhance development with animated 3D characters, sounds, music, physics, stages, gauges, and backgrounds
  • Packed with inspiring, realistic examples offering impressive graphics, strong performance, and a rich interactive experience

Looks interesting and definitely worth a look.

-Jeff Weber

Tire Storm Featured in new Mashooo Reward System.

The fine team over at Mashooo has just released the beta version of it’s new reward system.

By playing certain participating games, players can earn “Mdollars” that will eventually earn them various tangible prizes.

Tire Storm is currently one of the games you can play to earn these “Mdollars”.  Each day, the top score in Tire Storm will receive 4 Mdollars.

Mashooo also runs periodic contests that can earn you even more “Mdollars”.   See the “Last man standing” challenge in the screenshot below.

CropperCapture[51]

Very cool stuff.  I really like where Mashooo is going with their site.  Why don’t you head on over an earn some  “M-ching”.

-Jeff Weber

2 Down 28 To Go

I recently started building out the 30 dives that will make up Diver 2.  Things will hopefully move pretty quick now that level building is all that needs to be done.  Keep in mind though “quick” is a relative term when everything needs to be done in my spare time.   I hope to be able to average a level per day or so.

So far I have 2 levels complete… well almost complete.  I still need to create some new background images.  I’m tired of the existing three backgrounds from Diver 1

The 2 levels I have completed aren’t really anything too new.  Just some simple straight in dives to warm players up.  The next level I’m going to build will introduce the new “spinner” obstacle.  It’ll knock you around pretty good if you have the fortune of hitting one.

Anyway, here are some screenshots of the first 2 levels. 

Diver2_Screen1
Diver 2 (Dive 2-1)

 

Diver2_Screen2
Diver 2 (Dive 2-2)

 

Now, back to work…

-Jeff Weber

Almost to the Fun Stuff -- Diver 2 Progress Update.

Just a quick posting of where things are with Diver 2.

I had to add one more thing to my list that I forgot to add originally.  I needed to build the web page to host the game and decided to clean up the rest of the site a bit as well.  I’m working on that now and I’m close to done.

After that, it’s nothing but the fun stuff… making levels!

Here is the updated progress list.  The crossed out items are things I decided to cut in the interest of time.

 

To Do:

  • Design/Create 30 new levels

  • Create new landing page with spinner on it.

  • New video trailer

    • Possibly see if someone would like to help with this as I suck at making vids.
    • Could give away early access to the game in trade.
    • Got a couple people interested in doing this. (great!)

Working On It:

  • Cleanup website

Completed:

  • Add support for Google analytics

    • Number of dives started
    • Number of succeful divers
  • Update the render loop to use CompositionTarget instead of Storyboard. (Thanks Silverlight 3)

  • Look into local storage code to make sure it’ll work with the new version of the game.

  • Reduce the game foot print on the screen. (Currently takes up to much space vertically)

  • Refactor load-level logic to reduce duplicate code

  • Implement spinners to be built using a Canvas + child paths.

    • Utilize multiple geoms per body.
    • Canvas = Body
  • Make diving boards configurable from Expression Blend.

    • Create a bare-bones custom control with some simple properties that can be read out in code
  • Enable GPU acceleration (thank you Silverlight 3)

    • Particles
    • Diver
    • Spinners
    • H20
  • Try updating to Farseer Physics Engine 2.x (Diver is currently built on an old version of the engine)

    • Thoroughly test everything in the game.
    • If the upgrade doesn’t go well stick with existing version of engine.
  • Trees/Plants (non-interactive only.) time permitting.

 

-Jeff Weber

Cranking Along on Diver 2

First things first, I’ve decided to ditch the name “Diver 31-60” for the next version of Diver. I’m just going to call it . . . .  wait for it… “Diver 2”.  It’s just the logical thing to do.

This week’s development on Diver 2 has gone well. 

The biggest item completed was getting the code re-factored to a point where I could create all the new Diver levels using Expression Blend.  I can now set diver’s start position, draw out landscapes and collision polygons, place and configure diving boards, and place and configure the buoys all within Expression Blend.  I use to have to muck with the code to get everything going.

None of this is anything fancy, but it’s very functional and should make level building much easier.

I’m a big fan of pictures, so here are some screen shots of a prototype/test dive.  

The first screenshot is what the dive looks like inside of Blend.  The red depicts the collision geometry, the green circle is the start position for diver, the blue rectangle controls where the buoys are placed, and the red sticking out of the cliff that looks like a diving board is, ta-da, where the diving board is placed.

 

Diver2InBlend

In Expression Blend (editing)

This second screenshot is the in-game view of the same level.

Diver2InGame

In Game

 

If you are tracking my development progress, here is the updated task list.  As mentioned last time, this list is broken into three categories: Things I still need to do, things I’m currently working on, and things completed.

To Do:

  • Try updating to Farseer Physics Engine 2.x (Diver is currently built on an old version of the engine)

    • Thoroughly test everything in the game.
    • If the upgrade doesn’t go well stick with existing version of engine.
  • Create new landing page with spinner on it.

  • Trees/Plants (non-interactive only.) time permitting.

  • New video trailer

    • Possibly see if someone would like to help with this as I suck at making vids.
    • Could give away early access to the game in trade.
  • Add support for Google analytics

    • Number of dives started
    • Number of successful dives
    • Levels stats
    • Anything else that seems worth tracking.
  • Design/Create 30 new levels

Working On It:

  • Update the render loop to use CompositionTarget instead of Storyboard. (Thanks Silverlight 3)

  • Enable GPU acceleration (thank you Silverlight 3)

    • Particles
    • Diver
    • Spinners
    • H20

Completed:

  • Look into local storage code to make sure it’ll work with the new version of the game.

  • Reduce the game foot print on the screen. (Currently takes up to much space vertically)

  • Refactor load-level logic to reduce duplicate code

  • Implement spinners to be built using a Canvas + child paths.

    • Utilize multiple geoms per body.
    • Canvas = Body
  • Make diving boards configurable from Expression Blend.

    • Create a bare-bones custom control with some simple properties that can be read out in code

-Jeff Weber

Diver 31-60: Developer To Do List

For those interested in tracking development of the next version of Diver, which I’m calling Diver 31-60, I thought I’d go ahead and post my somewhat informal list of things to do.

I put the tasks into categories based on where they are in the development process. Each task falls into either “To Do”, “Working On It”, or “Completed”.  You can think of this as a poor man’s scrum board.

Enough talk, here is the list. I’ll re-post this periodically as development progresses. (Note: these tasks are in no particular order.)


To Do:

  • Try updating to Farseer Physics Engine 2.x (Diver is currently built on an old version of the engine)

    • Thoroughly test everything in the game.
    • If the upgrade doesn’t go well stick with existing version of engine.
  • Create new landing page with spinner on it.

  • Enable GPU acceleration (thank you Silverlight 3)

    • Particles
    • Diver
    • Spinners
    • H20
  • Make diving boards configurable from Expression Blend.

    • Create a bare-bones custom control with some simple properties that can be read out in code
  • Trees/Plants (non-interactive only.) time permitting.

  • New video trailer

    • Possibly see if someone would like to help with this as I suck at making vids.
    • Could give away early access to the game in trade.
  • Look into local storage code to make sure it’ll work with the new version of the game.

  • Add support for Google analytics

    • Number of dives started
    • Number of successful dives
    • Levels stats
    • Anything else that seems worth tracking.
  • Design/Create 30 new levels

Working On It:

  • Implement spinners to be built using a Canvas + child paths.

    • Utilize multiple geoms per body.
    • Canvas = Body

Completed:

  • nothing yet…

One thing you may or may not have noticed was mention of something I’m calling a “spinner”, for lack of a better term.  My original goal with Diver 31-60 was to simply make more levels and make near zero game-play changes. Shortly after I started designing the first non-diving board level, however, I decided I needed a way to add a little more variety. Something to mix things up a bit.

I thought about it for a while and decided to create a new diving obstacle.  I call it the spinner.

So what is a spinner?  Well you probably don’t have to thing very long to figure it out from it’s name, but just in case you can’t.  Here is a visual clue.  This is a screen shot of a spinner prototype, not an actual level.  I’ll show more in future blog posts.

Here is the screenshot:

CropperCapture[40]

Prototype of a “Spinner”

-Jeff Weber