PC

MonsterUp rises again:)

Posted by admin on January 11, 2013
Development, Games, iOS, PC, Web, Windows Phone / No Comments

To celebrate the release of MonsterUp for iOS devices, I decided to dedicate a website only to MonsterUp branded games. I have 3 games already using the MonsterUp brand, the original MonsterUp, its sequel MonsterUp Adventures and a kids’ memory matching games called MonsterUp Memory. Since I plan to use the brand on future games as well, a dedicated simple website for all things MonsterUp seemed like a good idea. So I bought the domain monsterupgame.com, installed wordpress and presto – I had a website in about 4 hours :)

monsterupgame

It has most of the things I wanted to have, like reviews and screenshots showing on devices’ pictures. I had to hack the template a bit to support multiple platforms, since it was originally supporting only iPhone apps, but I think it works the way I want it to work now.

So, take a look and tell me if you like it :)

www.monsterupgame.com

MonsterUp Memory

Posted by admin on October 21, 2012
Development, Games, PC / No Comments

My first game for Windows 8 Store has passed certification today. Couldn’t be happier. Well, I will be happier when the second one passes certification also (I have 3 more games in the pipeline plus 1 small app that is still awaiting certification). The new game is MonsterUp Memory, a simple cards memory game that can be played by 1 or 2 players for some extra competition if the clock isn’t enough. It features awesome graphics based on the MonsterUp series, nice happy music, fast and fluid graphics (plays great with mouse and touch) and a live tile that gives you the results of your last game. It’s nothing really special, I am still trying to figure out all the new technologies for Windows 8, but it’s a good start, I am happy with how it turned out.

I will be adding a few more things in future updates, I just needed this to come to the store as soon as possible, so don’t be afraid to get this game even if you think it’s very simple in its current form. Updates are always free anyway :)

For more info about the game, please feel free to visit the official website here.

A feature I miss in Windows Phone game development

Posted by admin on June 22, 2012
Apps, Development, Games, General, PC, Windows Phone, Windows Phone / No Comments

I never owned an iPod. My portable music needs were satisfied by various other players, like an iRiver and a Zune HD. The latest was the one that also proved very useful when I begun developing games for the then up-and-coming Windows Phone platform. The Zune HD is an amazing MP3 player. The software was fast, fluid and intuitive (not to mention it looked absolutely gorgeous). I still use it a lot, and I am sad that it has been discontinued as a product. I always believed that Microsoft should follow the iPhone-iPod paradigm, that of having an extra product that acts like a media player, but is also able to run all the software Windows Phone can, without being a phone itself. That would catapult the platform, since developers would potentially have many more users. Oh, and I would buy one :)

Anyway, back to the feature of the title. While developing my first game for XNA, Tetrada, which essentially became my first game for Windows Phone, and then got pulled from the Marketplace, I discovered that the Zune HD hardware had a unique and amazing feature. While its (gorgeous) touch screen was capacitive (as in “reacted to touch and not pressure”) it also had variable pressure sensitivity (although I do suspect that it was implemented in an “touch area variable” way more than actual pressure sensing). So it would react like any Windows Phone, iPhone or Android phone today to touch, but if you pushed further on the screen, the hardware (and of course software) would register this push depending how strong you pushed. This little feature is amazing and gives many possibilities to game developers. For example, imagine being able to control a racing game’s accelerator or brake pedals by pushing harder. Or control the power of the shot in a football game.

This pressure sensitivity already appeared in this week’s Microsoft announcement of the Surface tablet’s keyboard, so I guess I can still hope!

I would love it if this feature returned to Windows Phones, it would make games on the platform stick out in yet another way.

Windows 8 Surface – to RT or not to RT

Posted by admin on June 21, 2012
Apps, Development, Games, PC, Web, Windows Phone, Windows Phone / No Comments

Huge news from Microsoft this week.

And awesome presentation, up to the point that no information was leaked before the actual events, especially in the case of the Surface tablets, kudos for that. There was also lots of solid information about Windows Phone 8, but I will get to that in a later post. On this one, I would like to focus on the Surface tablets (codename: Hero).

Awesome design, awesome hardware, an awesome OS (and yes, I have been using it myself for a few months now – as a matter of fact, I am writing this post on a Win8RC tablet) and choice. And when I say choice, I don’t mean Apple kind of choice, which spells 32GB or 64GB, 3G or not 3G. I am talking about real choice.

At the moment, there are two Surface tablets that are going to be designed, build and sold by Microsoft themselves.

The first one, Surface RT, runs the Windows 8 RT version while the second, Surface Pro, runs – you guessed it – Windows 8 Pro. What is the difference between the two versions I hear you ask. Well, hardware wise, Surface RT is thinner, lighter, cheaper and runs off an Nvidia SoC, probably Tegra 3. It also has less storage. Surface Pro runs off Ivy Bridge i5, which means speed and power.


But the most important difference is the OS.

Surface RT can run only software written specifically for Windows RT, through the Windows Store. This makes it more of a consumption device, directly competing with the iPad, but in a much nicer package (in my opinion). If it can compete in prices, Microsoft has a winner in their hands. Another important bonus is that Surface RT comes with the latest Office suite built in, that runs on a normal desktop mode, with a keyboard and mouse if you so wish.

That is a killer feature for many.
Surface Pro can run all the software that are in the Windows Store as well as all software that Windows 7 can, including all games etc. This is a huge thing, since it’s a no compromising experience, and having used Windows 8 on pre-release versions for some time now, I can tell you it’s awesome, since they are even lighter than Windows 7 to use. This means, you can do actual work with one of these things, it’s not only a read-my-email-surf-the-web-tweet-what-I-had-for-breakfast-and-play-some-angry-birds device like all of the tablets, iOS and Android alike, out there today. Visual Studio? You got it. Photoshop? Illustrator? Flash? With a built-in double digitizer (touch and stylus with multiple pressure levels), this is an invaluable tool.
Both tablets feature the awesome cover that doubles as a touch keyboard and touchpad. Awesome stuff there.

What will I get?

It’s a tough choice. I need a few tools that I think I would not find on Windows RT, like Photoshop, Dreamweaver and Visual Studio, so I am a bit biased towards Surface Pro. On the other hand, if I was not looking to replace my current ultrabook (a MacBook Air) but I was looking to replace my iPad instead, I would go for a Surface RT, because of the characteristics it has, lighter, cheaper and with most likely better battery life.

What would be really amazing for me personally, since I mostly do Metro and Windows Phone game development these days, is if we could have a Visual Studio version for RT (VS RT?) that would compile only for these platforms. Since drivers are going to be common to all Windows platforms (including Windows Phone 8 as we learned today), it would be awesome to do Windows Phone and Metro game development on a light, silent, long battery life tablet, with a normal keyboard and mouse. That would be just awesome.

Is anyone from Microsoft taking notes?

How fast can I get up and running with Windows Phone game development?

Posted by admin on March 09, 2012
Development, Games, PC, Windows Phone / 1 Comment

I was asked the other day by a colleague how easy it would be to start developing a game for Windows Phone from scratch. After explaining him that developing a game for Windows Phone essentially means developing a game for Windows 7, Windows 8 and XBox 360 at the same time, I decided not to describe how easy it is but to actually show him. I also timed myself.  He had seen MonsterUp on the web, and was curious how it would be possible to simulate gravity , so the challenge was to make a ball bounce on the screen. I already had Visual Studio and XNA installed on my computer, but if you want to follow this and see how easy it is by yourself, you can download the free tools here. With a simple installation you will have everything you need including a free version of Visual Studio and a phone emulator. You can use these tools to develop for Windows Phone, XBOX 360 and Windows with little or no changes to the code.

So back to our bouncing ball tutorial. Consider this a “Hello World” for game development in XNA and Windows Phone. I guess I should mention that knowledge of Object Oriented programming is required here as well as some C, C++ or C# knowledge. We use C# for XNA.

Launch Visual Studio and choose to create a new Windows Game (File->New->Project). Name it whatever you want. I named mine “Gravity”.

Download a ball texture. I have one here for your convenience. Put it inside the Content directory that exists in your solution directory (which you created before). Drag and drop it on the Content section, in the Solution explorer of your solution. Your solution explorer should look like that:

If you click on the ball.png you will see that it has been assigned an automatic asset name “ball”. This is how we will recognize it when we load it in the game.

Now double click on Game1.cs on the Solution Explorer. This is the main game file which is automatically created for you. In here, there are a few important functions, which are also created automatically for you. One of them is called “Update”. This is called automatically and as fast as possible by XNA. Another is called “Draw”. Also called automatically, but depending on how heavy your game is, it may skip its run (in the default configuration) if the system it runs on cannot handle the load. This is called frame skipping. The important thing is that within the Update function you update the game logic (sprite movements, AI etc.) while in the Draw function you … well… draw stuff on the screen :)

Anyway, back to our ball thing. After “SpriteBatch spriteBatch” near the beginning of the file, add the following lines:

Texture2D ballTex;
Vector2 ballPosition;
Vector2 ballVelocity;

The first one creates an object which holds graphics (or texture) data. The other two are Vector2 objects, which essentially holds two float numbers. We will use the Vector2 objects to hold the position and velocity of the ball (duh).

In the LoadContent function (which is called once in the beginning of the game to load stuff) add the following line (after spriteBatch = new SpriteBatch(GraphicsDevice);)

ballTex = Content.Load<Texture2D>(“ball”);

With this small line, you have actually loaded the ball texture in the ballTex object. The Content object handles the loading depending on the file type (in this case, a .png file is loaded on a Texture2D object).

In the Update function, before the base.Update(gameTime) add the following lines:

ballPosition += ballVelocity;
ballVelocity.Y += 0.1f;
if (ballPosition.Y > 100)
{

    ballPosition.Y = 100;
     ballVelocity = -ballVelocity;
}

These lines update the ballPosition (by adding a Vector2 to another), simulates gravity (by adding a float to the Y component of the velocity – so the gravity pulls the ball towards the bottom of the screen) and also handles bouncing (if the ball moves beyond 100, reverse the ballVelocity and return the ball to the “ground”).

Finally, in the Draw function, add these lines before base.Draw(gameTime):

spriteBatch.Begin();
spriteBatch.Draw(ballTex, ballPosition, Color.White);
spriteBatch.End();

I’ve also changed the background color to Black, but this is optional.

Believe it or not, we are done! With 12 lines of code, we have a perfectly bouncing ball. Not really a game, but you get the point. Hit F5 and watch your little ball bounce away on your Windows PC.

And now for some XNA magic. The challenge was to create a Windows Phone game that does exactly that, not a Windows game. No problem! All you have to do is right click on “gravity” (the one with the Windows flag next to it) inside the Solution Explorer and choose “Create Copy of Project for Windows Phone”. Choose Windows Phone 7.1 and click OK. This creates the necessary files for a Windows Phone project but keeps the same source files which are shared between the Windows project and the Windows Phone project. Now right click on the Windows Phone Copy of gravity and select Set as Startup Project. Hit F5. This should launch the emulator and run your game. No code changes (you may need to rotate the emulator using the rotate button on the left to see this properly).

This is just a simple example, but you get the idea of how powerful this stuff is. You can improve the physics (or use the excellent Farseer library), you can include nice visual effects, a way of actually interacting with the game, menus, sprites etc. but if you can create a bouncing ball in 5 minutes you can see how easy this will be.

Here is the final solution if you are too lazy to type 12 lines (or you otherwise get stuck somewhere).