Showing posts with label Game Development. Show all posts
Showing posts with label Game Development. Show all posts

Friday, March 16, 2007

UPDATE: "THE DUNGEON QUEST" GAME

Benjamin has released a new build of the game called "The Dungeon Quest", which was part of the XNA Challenge (GDC'07).

The update fixes some minor bugs, boosts performance, and adds new features but it requires a videocard that supports Shader Model 3.0 -if you happen to have a lowerend GPU, say, the nVidia GeForce 6600 card (like I do), make sure to run the game in a lower resolution to seed up things a little bit more.

Those big ogres are awesome.

Great level ... Cannot wait to get the book ... ;)

THE NIGHTMARE OF PROGRAMERS: DOCUMENTING SOURCE CODE

Let's face it! There are some tasks that most programers avoid doing and leave them as a "sticky" ToDo entry, and one of them is to document all the software elements in the source code they are working on: classes, structs, properties, operations/methods, etc.

Why can't any programer take the proper time to execute this task? The quick answer: because it's too boring ...

... and please bear in mind that we are leaving out any references to other aspects of the task, like how hard is to find common rules to follow (and learn them by heart) and, of course, writting the proper words or explanation so that any person (including yourself at a later time) can understand what is going on with that particular piece of code.

Well, exactly a week ago Eric ("TehOne") and I exchanged a couple of messages about tools that make your life easier when you want to document source code (by the way, having read the code of his mouse component, one realizes the great benefits of properly commenting source code).

There used to be an open project called "nDoc" (I bet you know it) which never reached a beta stage for v2 (which would support the whole .NET Framework 2, once released the final build).

Unfortunately, the project was abandoned on the alpha stage. But luckily, Microsoft came to the rescue with "Sandcastle": a console application that builds documentation from the xml files that the Visual Studio IDE generates by request (even in the express editions).

"Console application"? Yes, you've read it. And I know what you're thinking: "Why things have to be so complicated?". Well, to answer that let me tell you that there exists some open GUI projects that will ease the task, being -in my honest opinion- one of the most useful and easy-to-use applications: the "SandCastle Help File Builder".

The beauty of it is that it really works and does a great job with any XNA-based programs, but there are some things that you must know though:

  • The process verifies any dependencies for the assemblies you want to document, so you have to specify whether you want to include the documents of these dependencies in the final help file or not. In case of the latter, you have to manually add the assemblies to the dependencies' collection in the GUI.
  • Sometimes, when you want to open the "Namespaces" form -so as to tell the GUI which namespaces must be documented and which ones must not - you may find that that an exception is thrown by the application and not all the namespace or none are listed. If that is the case, you can edit with the notepad the project file (".shbf"), adding the missing namespaces:

<namespaceSummaries>
<namespaceSummaryItem name="NamespaceRoot.MyNamespace1" isDocumented="true">This is an example.</namespaceSummaryItem>
<namespaceSummaryItem name="NamespaceRoot.MyNamespace2" isDocumented="false" />
...
</namespaceSummaries>

Now, you may say "Ok, but I still have to type the whole comments, explanations and links to all those "see" and "seealso" references (like, say, complete namespaces)" in VS IDE. Right. But there's exist an add-on for Visual Studio that -even though it does not miracles in some cases- makes the task a lot easier: "GhostDoc". I must admit that never used this add-on, but for what I can see and read in this site it seems to be a great tool. However, it does not support express editions ... :(

To sum up, take your time to comment the code, find the method that suits you, but don't leave the task as an "never-ending" ToDo entry; just believe me you won't regret it.

Take my case for instance, it took me two days to properly comment the source code of my Warm-Up Challenge entry! (And yes, I'm still working on it -on my sparetime- even though the challenge is over ... Why? Becuse it helps me learn and implement my-own "best practices" on designing and implementing a game with XNA -either for the main compo or any other compo to come). And by "properly" I mean the way I want to see the comments on the final documentation.

So remember: do as I say, not as I do ... or did, actually ... ;)

BTW, if someone happens to know any program like GhostDoc that works with VS Express editions please drop a comment (and or message to my email address). Ditto for any free application/add-on that helps building Design Class Diagrams of .NET applications.

'till later.

"G": STANDS FOR "G"ENEROSITY

Remember this previous post about the game named "G"?

After playing the game I was really curious about the way these guys had implemented that tractor beam fx ("graviton ray" as they call it), so I decided to make use of their public invitation to get the source code so I contacted them a couple of days ago.

The result: they contacted me back, provided a link to a zip file and gave me the rights to access the server in order to download it.

Thus, having downloaded the zip file, I feel the obligation of publicly thanking them for sharing the source code of the game.

Great game, great code, great "G"enerosity!

Now, back to the Ultracave ...

Tuesday, March 13, 2007

VIDEO: REALTIME TERRAIN GENERATION WITH XNA

Channel 9 has published an awesome video from the TechFest 2007.

The video shows Andy Wilson's first XNA project: real-time terrain generation with XNA through the use of a depth-sensing video camera and real world objects.

Enjoy!

Saturday, March 10, 2007

BLADE3D BETA 1 (BUILD 1543) NOW AVAILABLE

The latest build of this impressive framework is now available for registered beta-1 testers.

From Blade3D's forums: "We are happy to announce the availability of the latest build of Blade3D.

Here is a list of features and improvements for this weeks release. 

  • Entirely new multimedia help system with embedded video tutorials
  • Integrated web based asset delivery mechanism for textures, models and modules
  • Over 400 free textures and more than 70 models ready for delivery
  • New menu commands for quick model import, selection and scene insertion
  • Improved, more intuitive translation tool
  • Ability to define custom bone controllers for animated models
  • New animation graphs provide basis for total animation control in future
  • Ability to import/export any part of the module to shareable packages
  • Many bugs fixed

Registered Beta 1 users should go here to download the latest build

Enjoy!"

So, ... enjoy!

Saturday, March 03, 2007

THE IMPORTANCE OF TRANSITIONS

Shawn Hargreaves has published a nice post about the importance of transitions.

From Shawn's post: "... While I was writing the menu system, the lead artist, a grizzled young man named Johnny Christmas, gave me a piece of advice I never forgot. "Listen here, young lad", quoth he: "the secret to making a game feel polished and professional lies in the transitions ...".

Stay tune to Shawn's blog for upcoming articles on the matter.

Now, that's it! It's late and I'm tired soooo ... hoooawmmn ... I need to sle .. ep, can .. nnot ... re..each .... my ...bb.. ed ... zzz ... zzz ... zzz ...

RPG ZERO: LEVEL SEGMENT'S NEW PALETTE AND BADGUYS

New update available for the "RPG Zero" series.

Man, the eyecandy included in this game -which is under development- is quite amazing.

You can read what's going on with this project here (as well as watch a demo video of the cave).

Cannot wait for a demo build!

Tuesday, February 27, 2007

DOES BENNY REST SOMETIMES?

Wow, man, Benjamin Nitschke's on fire!

He's recently published a very long but yet helpful post about "Skeletal Bone Animation and Skinning with Collada Models in XNA". I wonder what happened with that "... The blog posts will not be as long as before ..." ;)

Is that it? Heck no!

Benny has recently announced that he will be attending this year GDC (March 5-9, San Francisco) and will be joining XNA's "Dream Team" so as to face the following superhuman XNA challenge: build a game at the conference!

Benny's idea: a Zelda-like multiplayer RPG. In 3-4 days? Yeap. I have only one question: are you out of your mind?!!! ... :)

Go Benny go!

"BULLET HELL TACTICS" ENTERS A LARGE COMPO

Yes, Kobingo's has announced that "Bullet Hell Tactics" game will join this year's Swedish Game Awards compo -Sweden's largest game development competition.

So, good luck!

Saturday, February 24, 2007

RPG ZERO: GETTING BETTER AND BETTER

Gamey Little Hacker had promissed to post comments related to development of 'RPG Zero'. Remember?

Well, according to this new post things are going better and better as you can see in this awesome video:

Ok, no skeleton-based animations yet. Who cares? The eye-candy is there, the gameplay seems really catchy and it is data-driven.

So GLH, just keep up the good work!

UPDATE: 'COLLISION DETECTION FOR 3D MODELS'

Lately, for a little while, things had gone a bit quite in Sharky's blog.

Well, silence is now gone and a new update of the source code of the three-part tutorial is available here.

What's new: optimizations, basically. For instance, you can pass the ModelMesh’s original BoundingSphere to run a proximity test, in order to avoid checks on every frame for the rest of bounding spheres.

Nice Sharky!

Wednesday, February 21, 2007

GAMEY LITTLE HACKER'S 'RPG ZERO'

On previous posts I commented that GLH had published some handy source code and tips for data-driven games, in particular, RPG ones.

Well, GLH is back with an awesome demo video of a starting RPG project:

From GLH's site: "When I started writing about game programming here last month, I really did want to practice a little altruism and share some stuff with the community. I'm afraid the vanity levels on this project however, make it wholly unsuitable to share as good practice. The sheer self indulgence in the code should warn people away. I really can't in good conscience recommend anyone learn anything from this... the scripting language is an own rolled, interpreted, prefix notated, reflection driven nightmare for pete's sake!

I would like to share though. So if anyone is interested in watching, I'll post the goings on in my RPG land."

So, what do you think? Should we be interested?

C'mon! Pay a visit to this site and let GLH know that you are interested ... I did ... ;)

'BULLET HELL TACTICS' BETA 1 ANNOUNCED

Remember this awesome game?

Well, the author's has announced that beta 1 is planned for next March, so stay tunned to his site.

Wednesday, February 07, 2007

ACCEPTABLE TEXTURE SIZES?

First things first: Sharky has released the latest build of Air Legends, so go, download and test it for stability.

Having said that, on the post that announces the build there's an interesting question (read Sharky's third comment) about the do's and dont's of chosing proper texture sizes for videogames.

It'd be nice to count on thoughts & suggestions -by more experienced user than me in the field- in order to answer it, accordingly.

So if you feel like sharing your experiences either from your technical background or "code-warrior" tales, just pay a visit to Sharky's blog, browse to the above-mentioned post and drop your comments.

Later.

MORE ON 'FIRST PERSON SHOOTER CAMERAS'

Continuing with this latest series of "reminders", a week ago or so Eli (etayrien) posted this handy tutorial about FPS cameras.

Well, if you found it useful -like I did, and you want to go deeper in the field you'd then better go and check Eli's recent comments on the use of "quaternions".

From Eli's comment: "... I would use a quaternion based camera in two situations:

a) if the camera needs to orient in an arbitrary direction: ie any combination of roll, pitch, and yaw. Otherwise you can get gimbal lock. You'll have to web search for more information on what that is; I don't have the math background to explain it properly :)

b) quaternions also have the handy ability to interpolate between different orientations.

http://msdn2.microsoft.com/en-gb/library/microsoft.xna.framework.quaternion.slerp.aspx

This can be very useful for third person cameras ..."

BTW, read between lines: "... but like you guessed, we've been really busy ..."

... something is being cooked ... something is being cooked ... ;)

Friday, February 02, 2007

FIRST PERSON SHOOTER CAMERAS

There's a new tutorial at Cornflower Blue's blog which explains in detail how to create a FPS camera with XNA.

From etayrien's post: "... We've been busy lately, which should put smiles on all your faces. I like my job, so I can't give any specifics, but we've got some stuff coming up we think you'll be excited about. ".

Told ya!!! ... something is being really cooked by the XNA Team ... does anybody know anything else about that "some stuff coming up"? What could it be? Hummmm ....

... well, cannot wait ... ;)

Thursday, February 01, 2007

TIP: DEPLOYING GAMES TO THE 360 WITHOUT SHARING SOURCE CODE - PART II

In line with what he had explained for the matter, Stephen Styrchak has added some important information regarding obfuscation in general, and for the 360 platform in particular.

From Microsoft's forums: "Whether you want to obfuscate or not is completely up to your own discretion. It seems like a lot of people share the false impression that being able to decompile/disassemble binaries is a new thing that is possible with managed assemblies. It is not. It is just as easy to run a decompiler/disassembler on native binaries, and that technology has been around for decades.

That being said, yes, it will certainly work for assemblies compiled for the Xbox 360. Obfuscation is a post-compilation step that takes an assembly as input, and generates a new (obfuscated) assembly as output. The obfuscated assembly is functionally equivalent, but the instructions and functions have been rearranged in a way that makes it harder for humans to understand.

An obfuscated assembly is no different than an unobfuscated assembly in that it makes no difference to the JIT compiler and runtime if an assembly is obfuscated or not (which is why it will work on the Xbox 360). Similarly, assemblies for the 360 are not special assemblies; they are produced by the same C# compiler as the Windows assemblies -- so no special obfuscator is required to use on them.

Note that obfuscation just makes it harder to read disassembled assemblies, not impossible to read. With a more sophisticated disassembler, I believe you could effectively undo most of the obfuscation. You'll have to check with your obfuscation tool vendor to understand just how "secret" they can make your code. From my understanding of obfuscation, the efficacity also depends on the complexity of the software you are trying to obfuscate. That is, an algorithm in a single function will probably remain almost completely unchanged. However, an algorithm that requires dozens or more functions would be very well hidden. The trick is in hiding what functions are being called an what data is being passed around. The instructions doing the work (loops, branches, etc) are otherwise the same.

--Stephen"

Cheers!

"DREAM.BUILD.PLAY" CONTEST UPDATE

By the time I publish this post, I guess this update is old news if you -like me- are suscribed to many XNA Community blogs.

The Dream.Build.Play website is being updated and in turn, relevant information is starting to be published. So far you will find information on some sections -like "Home", "About XNA" and "Register"- until the week of February 5th, 2007 when the rest of the information -like "Prizes" and "How to Play"- will be unveiled.

So, what's next? Just direct your browser to the site and start by registering if you want to get in the compo (what I assume you do).

And remember: "... Besides worldwidefame and recognition, you could also win some fantastic prizes!" (just show me the money! show me the money!)

;)

Wednesday, January 31, 2007

TUTORIAL: A DATA DRIVEN SAMPLE ("SHOOTER ZERO")

Continuing with the "XNA Community Pimpage" tradition, I recommend reading this post on Gamey Little Hacker's Blog about data-driven game architecture and implementation.

Not only is the second part of the series on the matter but also you will find an interesting demo sample code which will bring some light for those of us who need tips and examples (and I say "of us" because I'm starting to deal with the concept of "Entity" within my engine so this example comes to me in the proper moment).

From GLH's blog: "Questions are welcome, and if there's enough interest I could write a few more posts that break out the details."

All in favor of more posts just raise your hands, or ... well, say, let GLH know that you're interested in more posts on this regard ... I am ...

TIP: DEPLOYING GAMES TO THE 360 WITHOUT SHARING SOURCE CODE

From Microsoft's forums (by Stephen Styrchak): "If you really want to share an Xbox 360 game without sharing the source, you can do it pretty easily. Just build your game into a DLL instead of an EXE (Game Library project). Then share a project with the source for the program entrypoint (main) that references your compiled assembly.

Basically, the project you have to share is the default Xbox 360 Game project with the Game1.cs file removed. The Game1 class should be defined in a separate DLL, which you can build from an Xbox 360 Game Library project. That way, the code in Program.cs will instantiate and invoke your game, which is implemented in another assembly.

You can develop the game using a multi-project solution and a project-to-project reference. But when it comes time to share it, just create a new Xbox 360 Game project and reference the already-compiled Game Library that holds all your game logic. Share that project (which is just a stub and contains no game logic), your compiled game assembly, and all the compiled assets.

This way, anyone with XNA Game Studio Express can use your shared project to build and deploy your game, without actually having the source for your game.
Although many people will encourage you to share your source as well, there are ways to show off your games and your creativity without giving everything away if you really, really don't want to.

Simpler methods are on the way. Just be patient.

--Stephen
"

Some tip! But wait, if you can read between lines you may notice that something is cooking -even though no time frame has been revealed.

Please, tell me that an update pack for XNA is almost there ...

"... Just be patient ..."

Ok.