Showing posts with label Technical Logs. Show all posts
Showing posts with label Technical Logs. Show all posts

Saturday, April 28, 2007

HOW TO COMPRESS AUDIO USING XACT

One of the questions we developers usually ask is "what can I do to reduce the size of my executable and content files?". The answer for audio content has been provided by Mitch, who has published the process you must follow so as to compress audio using the XACT tool.

From the post: "... there is some support for compressing your audio files in the current product, using the XACT tool; it's just not easy to discover. XACT supports ADPCM compression on Windows and XMA compression on the Xbox 360. You can get about 4:1 compression with ADPCM and even better with XMA. So while perhaps not as high as some other encodings, such as WMA, it does offer quite a substantial savings ...".

Let's compress some audio files!

Friday, April 27, 2007

ALL SAY HELLO TO "SPRITEFONT" ...

By this time, we're all aware that with the just-released update for the XNA Framework a lot of goodies were given away, like a built-in implementation to handle fonts rendering.

Shawn tell us what the font system is capable of for bitmap fonts, plus unveils a handy tool that helps you create a bitmap-font base which you can then enhace with your favorite graphic tool, like Photoshop, Gimp and such.

From the post: "... TrueType fonts are convenient, but you may sometimes find yourself wanting a more distinctive look for your text. You can create custom typefaces by arranging a set of character images into a single bitmap, separating the areas between each letter with a pure magenta marker color ...".

Read on!

Friday, April 20, 2007

TUTORIAL: INTRODUCTION TO XNA

There's a new tutorial available on c-sharpcorner.com site entitled: "Introduction to XNA: The Microsoft 2D and 3D Game Development Platform" -by Mike Gold.

From Mike's post: "... Although I couldn't name all the episodes, I think I watched every original Star Trek episode that was produced. My fascination with Star Trek didn't end with the original, but continued into the Next Generation. After that, I kinda lost track...Anyway, this month, Microsoft came out with an article in MSDN on the XNA framework, written by Charles Cox and Michael Klucher. I became intrigued and decided to pursue exploring the XNA Framework. In doing so, I created this simple example. Most of the inspiration for this article didn't come from the MSDN article, but from a game called elves revenge on a website called Errolian. By examining this code, I was able to piece together this demonstration of XNA ...".

Read on.

A GLIMPSE ON XNA'S PER PIXEL LIGHTING

Yes, you've read it right: on the upcoming release, the XNA Framework will add a "built-in" per pixel lighting -through the "BasicEffect" class, and Shawn's explains how to deal with it.

From Shawn's post: "... Per-vertex lighting is efficient, and it looks good on models that contain lots of highly tessellated triangles or which don't use too much specular. It can look pretty bad on lower resolution meshes, though, ..."`.

Read on ...

Thursday, April 19, 2007

SETTING UP "GUIMANAGER"

Check out Aaron's blog for his first tutorial, which covers setting up his GUIManager class.

From Aaron's post: "... The simplest way to begin is to use the GUI_Testbed project as a starting template. I simply created a new source file containing a class called Tutorial1, and set that as the startup Game object in Program.cs. You could also just use the existing GUI_Testbed.cs if you don't feel like starting from scratch ...".

More news after the break ...

TIPS: "SOFTWARE EFFICIENCY AND OPTIMIZATION - PART 3"

Thomas has published the latest installment of the series on software efficiency and optimization.

From the post: "... I'm trying to decide where to take this blog from here. I could continue focusing on software engineering as it applies to games. Or I could start taking in-depth looks at particular game algorithms and how to implement them for XNA — for example, I could show how I used the minimax algorithm with alpha-beta pruning for finding the best move in my Othello game, and how to implement it in XNA; or show how to implement the A* algorithm for pathfinding. Or I could start showcasing my Dream-Build-Play entry and how various parts are implemented. If you have any thoughts or preferences, please leave a comment ...".

To get to the above-mentioned part of the post -actually the final part- you'll need to read a bit more than usual ... trust me ... so you'd better hurry up and start reading right now!

MORE ON "FOREACH" LOOPS

Eli's second part of the series is available now.

From Eli's post: "... For you impatient readers, here's my results: As I just found out, this holds true on the Xbox360 as well. Read on to find out how I came to this conclusion, and maybe learn something about (deep breath) The XNA Framework Remote Performance Monitor for Xbox 360 ...".

So, want to find out? Read on ...

XNA & THREADING

Joseph Molnar, whose blog is entitled "The Pensive Gamer", has published a series of interesting articles on XNA and threading:
  1. XNA Game Loop And Threading,
  2. XNA Threading - The Problems, and
  3. XNA Threading - Locks.
A must read.

Monday, April 16, 2007

"EQUALIZING ARTWORK"

Shawn has published his latest installment on lighting: "Equalizing artwork".

From the post: "... Any time you draw more than one thing on the screen you need to think about how well their colors, brightness, and contrast levels will fit together. By far the most important tools for controlling this are the lighting and fog settings ...".

Read on!

GET A BETTER SERVICE

Uhmm ... typo, sorry, my mistake: "A Better GetService" by Rhysyngsun.

From the post: "... so recently there's been a lot of major discussion on the XNA forums about GameComponents. Now, I love the idea of having integrated components that automatically get get updated and also drawn in the case of DrawableGameComponent, however, when it comes to accessing the Game class's Services. I also have at issue being able to access said Services in a class that is not a GameComponent. I understand the XNA's team for making the services the way they are, however I don't want to have to derive from GameComponent and add it to the GameComponentCollection every time I want to check to have access to the ContentManager or whatever. For the most part, input components are the only issue that I have with the way Services are set up ...".

Read on!

Saturday, April 14, 2007

NEW TUTORIAL: XNA OCTREE SYSTEM

Rhysyngsun has published a new tutorial explaining hot to build an XNA-based octree system.

From the post: "... First of all, what exactly is an octree? An octree is a spatial partitioning system that divides a cube recursively into eight equally sized cubes until each cube contains a specified number of polygons or objects. This tree can then be used to quickly determine visibility or to quickly rule out objects for physics purposes. For the purposes of XNA, I've designed my system to be used on a per-object basis ...".

Read on!

Thursday, April 12, 2007

BASIC EFFECT AND SPECULAR-LIGHT CONTRIBUTION

Shawn has published the second part of the series on XNA and lighting, which focus this time on "specularity": what it is, and how to tweak it by using "BasicEffect".

From Shawn's post: "... Specular light can be harder to understand. When viewed in isolation, its contribution seems incredibly minimal ... But in combination with the diffuse light, specular is a critical part of making a model look good. Set it too low, and your objects will appear flat and uninteresting. Too high, and everything will look like plastic: waxy and unnatural ...".

Read on!

RHYSYNGSUN WANTS TO BE ENCOURAGED ...

... to post mini-tutos and code snippets, all related to XNA, of course, since he has been working hard to implement an octree functionality, multiple viewports, input management, etc.

From Rhysyngsun's post: "... I have a few more ideas for mini-tutorials that I may post here. Some are just quick code snippets, but others are a bit more detailed. Leave some comments to encourage me ...".

So c'mon, want to get some tutos? Then give the guy the encouraging comments he is asking for ...

Tuesday, April 10, 2007

"THE PROJECT TYPE IS NOT SUPPORTED BY THIS INSTALLATION"

"You turn on your computer as every normal day, grab your coffee cup, prepare yourself a nice warm coffee as Windows starts, of course with the usual amount of sugar -please, don't exaggerate- and go back to your nice and comfortable desk, your Kingdom, then start C# Express -or any edition of Visual Studio 2005- and decide to create a .NET Framework 3 project from scratch, so you click on "New Project" and select "Window Application (WPF)"; the hard-drive then emits the normal sounds of "working/busy" while the new project is being created, but suddenly the following message pops up: "The project type is not supported by this installation". You say: "WHAT!!!", and with that your great day has turned into a #$%&$@ nightmare ..."

No, the above is not part of the plot of a movie scene, it's life, real life and it's just happened to me. Fortunately, I found this thread on MS forums which presented a quick and easy fix, which -at least in my case- worked.

The fix:

  1. Open a VS 2005 Command Prompt,
  2. Enter the following command: regsvr32.exe "%vs80comntools%\..\IDE\projectaggregator.dll", and finally
  3. Execute %vs80comntools%\..\IDE\VCSExpress /setup (if you are using c# Express), or instead, execute %vs80comntools%\..\IDE\devenv /setup (if you are using VS 2005).

Take due note that "%vs80comntools% ..." is an environment variable, so the above-mentioned command lines should work "as is". However, if it doesn't because the path is not found -maybe some or all of the environmental variables set by the IDE are currently messed up in your system- just replace the "%vs80comntools%" term with your real path to the files' folder and the command should now execute.

Now, try to re-create the project again and it should all now go ok, as if nothing wrong had happened in the first place.

Cheers!

Monday, April 09, 2007

SHAWN HARGREAVES ON THREE-POINT LIGHTING

For those of us who sometime happened the get or still get in touch with 3D animation (or photography, or cinematography, ...), hearing "Three-Point Lighting" technique should ring a bell.

It does, doesn't it? But, have you ever wonder why you had to use this visual technique? If you don't know the answer yet and still wonder why, just browse to Shawn's blog to find out.

From Shawn's post: "... Pretty much every movie ever made and every fashion shot ever photographed have depended on this lighting rig. There are many variations:

  • To increase the perception of shape without needing too much contrast between light and shadow, tint the key light yellow and the others blue.
  • For a moody drama, make the key light much brighter than the fill.
  • For a cheerful sit-com, make all three lights equally bright.
  • For a scary effect, position the key light low to the ground.
  • For a mysterious or fantastic effect, make the back light unusually bright so the character seems to glow around the edges.

But the underlying principle is always the same. Things simply look better when lit this way ...".

Read on!

A RAY TRACER IN C# 3.0

Recently, some members in the XNA Creators' forums have been asking for an example on ray-tracing. Well, Check LukeH's blog, then.

This guy has posted an interesting project based on the third version of the .NET Framework, which implements a ray tracer by using some of the new features of this framework, like LINQ and lambdas.

From LukeH's post: "... Although we often demo C#3.0 using databases and XML to show off LINQ - it turns out that the new language features really are also great for applications which have little to do with querying. Ray tracing, for example, is certainly not one of the prototypical scenario for query and transformation of data. Nonetheless, I found quite a few places in the code where C#3.0 and LINQ to Objects really improved the code - making it easier to express what the program was doing ...".

Not related to XNA, I admit, but nice screenshot, uh?!

[Again, imagine XNA, XAML, DX10 and .NET Framewor 3.5 ...]

MORE ON OPTIMIZATION: READABILITY

What happens when "true" or "false" is not enough information from a reader viewpoint? You could optimize for readability.

From Eli's post: "... The other day I was working on my GSE game, and I had a class with an Update method. The Update returned a boolean indicating whether or not the class was finished updating. The idea was when the object was finished updating, I could stop worrying about it, and I could remove it from whatever collection was keeping track of it ...".

To get to the "Problem solved" part, just go and read Eli's full post.

TUTORIAL: LAMP LIGHTING

Rick Hoskinson published a post about shaders used for "faceted" lamps, or lamps without curved surfaces.

From Rick's post: "... Early on, I decided I wanted to blur the line between realism and style for this title. Obviously, any game featuring ghosts and river spirits doesn't really necessitate rigid adherence to the laws of physical light, but for the lamps I wanted something both neat-looking and recognizable. I began my research by looking at about 200-300 pictures of Toro Nagashi festivals, and hanging Chochin (paper lanterns). This process took about 2 or 3 hours to find enough subject matter, at which point I brought out the graph paper and started to sketch down notes ...".

Read on ...

Wednesday, April 04, 2007

TUTORIAL: SIMPLE PARTICLE SYSTEM

John Sedlak has published a nice 3-page tutorial about setting a basic particle system in XNA, with source code included.

From John's tuto: "... This tutorial describes a simple way to render particles using simple rendering techniques, and a custom vertex format in a 3D world ...".

Read on!

Monday, April 02, 2007

"NETWORKING/INTERNET WITH SOCKETS" - PART 1(WINDOWS ONLY)

A new tuto has been published on PlasmaFlux site which covers a starting point for networking with XNA, under Windows OS only.

From the site's post: "... Many people have asked “Can I/How do I make internet/network games in XNA” and the replay has been “yes” or “yes but not on the Xbox360 until later”. So I wanted to produce a simple network/internet game & tutorial/explanation to show off how it’s done. I wanted to keep the game simple as not to get people lost between where the game starts/stops and where the networking starts/stops, whilst not making it to simple like string only string messages as games need to send some quite complex information at times ...".

Read on ...