Dexter's profileLeTz RoCk N' CoDe! with ...PhotosBlogListsMore Tools Help

Blog


    November 10

    Nice tech talk


    I like these video feeds,  the two ladies are really cool on delivering news. Kathleen Sander on XNA Community Games with Xbox Live Major Nelson and Allison Klein on PDC2008 talking about Direct3D in Windows 7.

    Kathleen Sander | XNA Community Game with Major Nelson
    VIEW

    Allison Klein | Windows 7: Unlocking the GPU with Direct3D
    VIEW


    July 26

    Great news about making money with XNA community games!

     
    You’ve played Xbox 360 games with the millions of gamers on Xbox LIVE. You’ve chatted, shared,
    and dominated in games of all kinds. But what if those millions could be playing your game?
     
    Better still – what if you were getting paid for it? ...
     
    :::
     
    The announcement of Xbox LIVE Community Games, launching later this year, opens up a whole
    new avenue of game development. Naturally, we have some questions, so we took them to Albert Ho,
    roup Program Manager of the XNA Community Team. Albert answers our questions about making
    games and making money with Xbox LIVE Community Games. ...
     
     
    :::
     
    Wink Cool news!
     
     
     
     
     

     
    July 01

    Proejct-Z Communicator

     
     
    Aside from work and  playing  on-line games,  I've been busy  lately  working
    on my communicator  a  pure managed  network library, which is a very broad
    topic to discuss and involved  large codebase, creating new and separate live 
    space  specifically  focus in computer networking  most particularly  in games
    would be cool thing to do.
     
    So, here's my other live space for Proejct-Z Communicator.
     
     
     
    June 08

    DREAMBUILDPLAY 2008 CHALLENGE


    Check it out - The DBP 2008 Contest has been finally announced!


    READ : http://www.dreambuildplay.com

    It's very unfortunate for me. I just bought a brand new laptop  today
    and Windows Vista, just before  I've read the  news  that  DBP 2.0
    contest will be for XBOX 360 platform only. I should have bought
    an XBOX360 than my new lappy, LOL Wink. I wonder if my Piggy Bank 
    still got enought cash for me to buy an XBOX360 to compete again.
    May 18

    XNA Creators Club will be shut down!

     
    Yes that's true Wink, in  the  preparation  for  launching  XNA  Creator
    club's New  Site.  Frankly,  this  is  one  of  the  most  active game
    development forum today, it  has  been  very  active  and  served
    as  a  great portal if  you are interested in creating games, where
    forum   members  can  really   help   you   get  started  with   your
    game project and even the XNA team  themself are very active at
    the  forum  explaining  some  XNA  issues  not  only  with the XNA
    framework itself but from giving  us some tips  and  tricks  in  the
    whole  process of game development, oh yeah, and reading their
    blogs won't bore you either Party.
     
     
     
    April 30

    Deploying and debugging XNA GAMES for ZUNE


    More awesome stuff with XNA framework Party, Mike Klucher has been talking
    about  how easy it is to deploy  XNA game project to  ZUNE and directly
    debugging your game using Microsoft Visual Studio. This is really cool Surprised,
    it gives us a chance  to port our game or to create a new one  and play it
    into a handheld device Smile.


    WATCH : http://channel9.msdn.com/ShowPost.aspx?PostID=400948

    .
    February 25

    XNA 2.0 not supported in Visual Studio 2008.


    Wondering why XNA 2.0 isn't supported in Visual Studio 2008 ?
    The answer is not XNA 2.0 but on XNA 3.0 Wink Cool.

    :::

    Q: Will XNA Game Studio 3.0 work with Visual Studio 2008?
    A: Yes, XNA Game Studio 3.0 will only work with Visual Studio 2008 and Express 2008 SKUs.

    Taken from




    January 05

    Z-GDK Communicator : Current features so far:

     
    Yes, so far this  is the current features of Project-Z GDK Network support:

    *. Easy to use and  implement Wink I hope so.
    *. Tied on XNA framework data types for Game data.
    *. Supports UDP, TCP and IPv6 or Internet Protocol Version 6 for TCP and UDP
    *. Full non-blocking implementation.
    *. Implements acceptor asyncronous or threaded mode.
    *. Implements reciever asyncronous or threaded mode.
    *. Implements sender   syncrounous or asyncronous mode.
    *. Designed for Game Messaging type in mind.
    *. Client server architecture.
    *. Lobby type server game hosting.
    *. Small footprints approx. 9 bytes internal header + protocol header + your data to be send across the wire
    *. Built-in Network event logger.
    *. Built-in Network error logger.
    *. Easy sending Game data, Text data or Raw bytes data.
    *. Easy getting Game data, Text data or Raw bytes data from message manager.
    *. Game data field types support Int,Float,Vector2,Vector3,Rectangle,String,Char,Lines and Bool.
    *. Game data field types with floats can specify number of decimal places.
    *. Automatic network error handling to run game continously.
    *. Automatic detection of duplicate messages
    *. Automatic detection of late messages
    *. Automatic detection of garbage messages
    *. Automatic detection of unknown message structure for security purposes.
    *. Lag Inquiry on received buffer
    *. Lag Inquiry on send buffer
    *. Lag Inquiry on message buffer
    *. All reliable messages has an option to be send in order.
    *. ACK.Scheme0 - unreliable message
    *. ACK.Scheme1 - un-monitored acknowledgement for reliable message
    *. ACK.Scheme2 - monitored acknowledgement for reliable message
    *. ACK.Scheme3 - un-monitored both party acknowledgement for reliable message
    *. ACK.Scheme4 - monitored both party acknowledgement for reliable message
    *. Single command to send messages to a particular player.
    *. Single command to Send messages to selected players.
    *. Single command to Send messages to ALL players.
    *. Single command to Send messages to ALL players, EXCLUDING a particular player.
    *. Single command to Send messages to ALL players, EXCLUDING selected players.

      Lot's of to do list Wink 

     

     

    January 03

    Multiple XNA apps framerates syncronization.

     

    When my XNA application is inactive or when I'm draggin it or clicked
    other folder or even the desktop XNA application framerates reduced
    tremendously, assuming your XNA active application is running at 150
    frames per second then try to click other folder or make your application
    inactive. the framerates per second reduce from 150 to 35 FPS.

    :::

    This is not good if your testing or simulating a network logic on a
    single machine. I'm trying to load at least three XNA application to
    test my network library a server and two client running on a single PC.

    :::

    For me to make this feasible, the three application should be running
    at the same speed at least on the frame per second update. I need to
    make them  running 60 frames per second even each one of them is not
    an active application.

    :::

    //To make the application running on it's full or specified speed even
    //when the application is inactive, I need to adjust the Game.InactiveSleepTime
    //to zero on span time.
    //
    Game.InactiveSleepTime = System.TimeSpan.Zero;

    //Now to make the three application running at 60 frames per second
    //setting fixed time step to true and specifying the target elapsed time
    //will do the trick.
    //
    //
    Game.FixedTimeStep       = true;
    Game.TargetElapsedTime = TimeSpan.FromMilliseconds(  17  );  // = 1000/60FPS

    :::

    That's it, I can now continue to test my network library on a single
    machine and I made a simple video feeds for this. syncronization of
    1000 network objects rendered by host and the client on same machine.
    tho, the client may received garbage data from time to time, it should
    still run and the game should not be interrupted, Maybe tonight
    when I got home I can test it using my other PC on lan set-up to adjust
    the client's interpolation of network objects and some latency fine-tuning.

     

    December 24

    Linking Up Stuff

     
    I haven't checked any of  XNA Team blog lately,  surprisingly Shawn Hargreaves Blog  has a
    lot of recent posts regarding  networking it contains very usefull information for implementing
    a multiplayer game and I was certainly educated from reading it.
     
    So far Shawn tackles the following:
     
    Network Latency
    Network packet loss
    Packet   headers
    Network bandwith
    Network bandwith voice
    Network compression
    December 13

    XNA 2.0 Released!

     
    Yes! this is cool! XNA 2.0 is here and available for download. Read more from XNA TEAM BLOG
     
    Tongue out Downloading....
     
    November 29

    MY NETWORK DATA FLOW DIAGRAM

     
    I've been spending too much time on computer playing multi-player and on-lines games, that's my life
    after work, Lol and of course this project. I  recently played Tales of the Pirates but after I'm bored with
    it I'm now playing RF On-Line Episode 2 Pioneers of Novus and I'm still on Lvl 40+ Wink I know that
    playing computer games alone on a PC isn't very exciting. Most of PC today has a built-in Ethernet
    adaptor or Lan card and with the advances in internet servicing, on-line or multi-player games are
    becoming more abundant than standalone or a single player games. Hardcore player's are very
    much aware of this  Hot and as a game developer hobbyist a built-in linking up features would be a
    nice addition to my game engine.
     
    :::
     
    XNA team did a great job on the networking features of XNA GSE. if you plan to develop
    a multiplayer games over Xbox/Windows LIVE, XNA 2.0 networking features and it's
    functionality will suffice your needs, specially it's sending features which enable you to
    have an option to send your data InOrder, Reliable and ReliableInOrder or None. The LIVE
    subscription is not bad at all, it gives you a unique GamerTag ID to play games and access
    the Live services such as game statistic and other downloads and now you can even host
    your games LIVE!. The infrastructure of a secure game hosting services can really cost a
    thousand to million bucks to maintain and Microsoft allow us use it thru a subscription
    plan, which is really cool in my honest opinion.
     
    :::
     
    Now, how about the lan features, sure I can use the System link features to create a lanable games
    and use their GUIDE features Wink but now there are two application running in the background my
    application and XnaLiveProxy.exe which I think where the network simulation do the processing and
    I cannot lunch multiple instance of my game application on a single PC. Ok, for educational purposes,
    I believe I need to continue the development of my own networking support to my project.
     
    :::
     
    The PC's communication interface are too many and it's too complex, there are lot's of communication
    interface option to use to write a multiplayer game, we'll there's still some old multiplayer games that
    only support IPX/SPX or modem communication serial port, and now we already have an infrared and
    bluetooth for wireless communication interface, Etc.. Etc.. Heh, I even try to create linked up games
    before using a modem serial port. Well, writing your own serial port network library from scratch isn't
    easy dealing with all those Buffer Register like UART,THR,RBR and IER will surely blow your mind.
    and Unfortunately, I don't have the time to learn all those PC's communication interface and I'm not in
    the mood to do some low level network coding thingy and stuff like that or even study network theory
    just to add a multiplayer support to my engine.
     
    :::
     
    Rather, I would like to concentrate more on the aspect of network messaging design specifically for a
    multiplayer video game application by using Etheret communication interface and .NET framework
    networking support is my choice, at least for now Wink. Most of the functionality or methods I want to be
    included from other network library are mostly already available in .NET framework we'll since this is
    just my first attempt in writing my own network service in managed code, let's see how far I can go Tongue out
     
    :::
     
    Sure, googling this topic will pop-up hundreds of information regarding this topic,  I can find lots of
    discussions and articles on whether to use TPC/IP or UDP or even asynchronous or threaded approach.
    but I can barely find a good articles on managing network message within a game application, heh,
    maybe I'm just too lazy to search more. Aryt, whether async or threaded approach a game logic flow
    synchronization is difficult to design, I think a poorly design can lead to inconsistent flow, data loss or
    logic strange behavior. Imagine, three threads are accessing a single game resource such as list at the
    same time two of them is adding new player to list and the other thread is deleting from a list, well this
    kind of scenarios is just one of the thing that needs to consider.
     
    :::
     
    Ah yes, I still remember when I wrote a simple chat console application in C++ when I'm still using a
    dial-up connection and it gives a static address where peer to peer remote connection is not a problem
    at that time, and we use my application to some sort of private communication. But now I'm
    using DSL connection and my  Modem/Router NAT box services just gives me a dynamic address
    and I need to pay some extra bucks to have my own on static address. Well, I will choose to pay
    the extra charge for my own static address, rather than spending lots of time creating my own NAT
    punching, crunching, munching and NAT holing Wink just to make a remote peer connection. but I really think I
    need do some research regarding this matter.
     
    :::
     
    The cool thing while I was working on my network support, It forces me to create a debugger
    and logger tools to monitor any throwned system error messages and even watch a specific
    values or log some event on whats happening from the background while the program is running.
    I will post a blog regarding this maybe next time. Since it's a form base the only burden I
    encountered while working with it is that a thread cannot access the resources from a form
    if it's not created within the thread, but I already find a solution for that. Any thread can now
    throw an error messages or log  events to my form base system debugger and logger tools.
     
    :::
     
    My network support, How easy I want it to be? I'm planning to implement a no receiving
    approach Wink meaning I dont have to expose the actual receiving of packets coming
    from the port I'm listening, rather a game logic just need to scan the Z.Network.Messenger
    if there's a new message throwned by the system. The messages in Z.Network.Messenger
    is process internally so I don't need to implement any receiving routine in my game logic,
    I just need to know what is the message type and do the appropriate action for that type
    and process the data that comes with the message. There are three main method to use
    in Z.Network, the host which contains methods specifically for hosting a game, the client
    contains only methods specifically for a client and the Messenger which holds the actual
    informative message data cued by the engine base on network events internally.
     
    Z.Network.Host
    Z.Network.Client
    Z.Network.Messenger
     
    :::
     
    Here's my initial draft for my Network Data Flow Diagram :  Actual Size
     
    NETGAMEDIAGRAM
     
    :::

    Screenshot of my early net game test, it includes chat support a host player and
    client player running on a single PC :)).
     
    LanTest
     
     

     

    EDIT : 03/12/2009 : Hmmm... most of my visitors are looking into MY NETWORK DATA FLOW DIAGRAM, to those interested in my C# Network library project, please go to my other live spaces, specifically for my network game library project under managed code,  check this link  http://dexterz.spaces.live.com/

     

     


     

    November 21

    XNA Game Studio 2.0 (Beta)


    Whoa... XNA Game Studio 2.0 (Beta) is now available for download.
    Cool! it also comes with a new game content named Net Rumble Starter Kit (Beta)
    showcasing the new multiplayer features in XNA Game Studio 2.0.

    Downloading.... Wink

    :::

    Read more :  http://creators.xna.com/beta/betahome.aspx


    November 20

    XNA Framework Networking and LIVE Requirements


    I haven't been in the right mood to post some good stuff in here for the month of October
    maybe because of  my  work  or  because  of  the October  festival where free beers are
    pouring everywhere :)).

    :::

    Well theres a news for XNA V2.0 networking features, if you want to take a  look at the
    common things you can do with it, check the link below :

    XNA Framework Networking and LIVE Requirements

    :::

    While I'm waiting for XNA V2.0 linking-up features,  Maybe my next post will be the progress and some
    of  the early features of  my own  networking  service for PC using  .NET Socket,  if  "I want to
    create a game that uses networking between
    two of my Windows-based computers." and
    if "I want to create a game that uses networking between my Windows-based computer
    and my friend’s Windows-based computer.
    " of course detailing it without the subscription jargons thingy Wink.





    September 01

    SHMUP Tech Demo

     
    After  a  tiring months  but  fun  finishing  my  DBP  entry,  I was  also planning  to be an entrant
    to SHMUP-DEV  Competition 2k7 Round 2.  Unforetunately, I did not  even  come close attempting
    to  register  my  entry, due  to  lack  of  time  to   complete  my  SHMUP  tech  demo.  As always,
    my real work gets into the way. 
     
    In any case, I will still continue this project as an additional Tech Demo of Project-Z GDK. I'll post 
    some video feeds maybe later, of what I have so far.
     

    August 16

    Skybox using only 2 Primitives, 1 Texture and Vertex Position only.



    I  remember  when  I  was  still  working on  my  older  project,  though  it’s  not  using  XNA API,  and  I  did
    not  implement  any  shading  stuff  then,  I usually  disable  my  skybox when I'm debugging  or  testing  my
    application, due  to  the  fact  that  rendering  a  skybox  really  eats up much of  my frame rates.  and I think 
    the  largest  triangle  to  be  rendered   and  filling  the  screen  is a skybox,  specially if the camera is looking 
    to one of it's four  corners, I’m rendering at least 8 triangles  or  more  in  some  angle,  Ok  I know rendering
    8 triangles is nothing,  but hey,  rendering the skybox  is filling the entire  screen that  makes it slow.  Sky box
    consist of 6 sides multiply by 2 then  I  got  12  triangle  primitives and  each side uses a separate texture so I
    got  6 separate  textures to  handle the  materials  for each side, Oh yes, each primitive needs it's position and
    texture coordinates.  Well, at least  I'm doing some culling  stuff back then,  I'm using triangle strip not triangle
    list for  me to check each of s kybox triangle primitive against  the camera  bounding  frustum view. Rendering
    a skybox with 12 primitives, 6 textures, transforming it's position from camera and triangle culling test, are the
    ways I implemented my skybox before. Whew!.

    I am just wondering, how can I eliminate the  culling  process  for each triangle strip and minimize the number
    of  primitives  and it's  textures  handle   for  the  final render,  Well,  this technique is not new and it's already
    been there from directx  sdk, and I think  this  is a cool  stuff  to  implement  under XNA.  Rendering a skybox
    by using only 2 primitives, a single texture  cube map and a custom vertex position. If  it  is using a cube map
    HDR and mirror reflection can be implemented in a breeze.


    Here are some of the benefits I can think of, by using this techniques:

    * Loads only a single texture file.
         - This will minimize the I/O handling, since I only need to load a single file,
            rather than loading 6 separate texture files.

    * Handles only single texture.
         -  This skybox only needs a single cube map texture material,  rather than handling
            6 separate texture materials for each side of the box.

    * Using only the vertex Position element.
         - Only vertex Position element is needed in this implementation,
            additional elements for texture coordinates and vertex color are not needed.

    * Drawing with only 2 primitives.
         -  Best of all no need to check for the visibility of  the primitives against camera frustum view,
            since it’s only need to draw 2 primitives.

    * Vertex buffer and mapping via shader.
         - The 4 vertices  position are  fixed  base  on the  size  of the back buffer height and width. 
           Naturally, it uses a vertex buffer because the vertices position are not changing and since
           the mapping is done in the shader by a normalize skybox position multiply by the camera
           view and projection, more or less the processing is done in the GPU.

    * Enables to implement HDR: High Dynamic Range.
         - By changing the Surface Format to Floating-Point 16bit RGB or higher equivalent  the
           cube map is already capable for the HDR implementation. Check the tools below .


    Here are some cool tools for cube map creation:
            
         - DxTex  :       
     
                 MS DirectX Texture Tool, is already included in SDK, and can be found under
                 directx sdk utilities, very easy to use in making a cube map and the usage is self explanatory.

         - ATI CubeMapGenhttp://www.ati.com/developer/cubemapgen/index.html

                Another one from ATI, I prefer to use this  over  DxTex,  this tool  Is freaking cool! in
                terms of cube map creation, you can actually see the Skybox you are making and it's
                reflection to object, plus a filtering  and Mipchain  Generation tools you can output and
                save it, as cube map DDS texture file.

         - NVIDIA texture tools:   http://developer.nvidia.com/object/nv_texture_tools.html
                 
                  NVIDIA also offer lots of DDS texture plug-ins and tools, but yet, I haven't tried
                  any of these tools.


    Here's my simple implementation :
      
           I already  added  this technique to Project-Z GDK, but  for the sake of simplicity, I
           created a  generic  SkyBox  class  using  this technique and added it to MS sample 
           Chase Camera, you  may grab the project file from the link below, and I hope you
           enjoy the cube map I made Wink

           SkyCube Project  file  Download  includes SkyBox.cs
           SkyBoxCubeMap  file  Download  copy this to content directory, I forgot to include this, Lol.  

    Watch : Clicky


          


    August 15

    XNA 2.0 Networking features.

    .
    Whoa.... I can't wait for XNA 2.0, It's networking features are really awesome.
    .

    Features

    * Matchmaking
      * LIVE and System Link
    * Session Management
      * Simple to create and discover
      * Management of players and game flow
    * Easy messaging
    * Voice is automatically supported
    * Built in latency and packet loss simulation
    * Focus for docs and educational content

    Creating a Networked Game

    * Creating a session
    * Finding and joining a session
    * Managing the players
    * Moving from lobby to game play
    * Sending and receiving data
    * Ending the Game

    Creating a session

    * A session is made up of the players in the game
      and an optional set of attributes.
    * Supports system link or Xbox LIVE
    * A session has ahost player who owns the session
    * Host does not imply a game server or authority
    * There are no network topologies implied
      ( client/server, peer-to-peer, or hybrid)
    * Session can have attributes to aid in filtering
    * Can support join in progress
    * Can support Host migration


    READ MORE from  Ziggyware


    August 04

    Dream Build Play Finalist

     

    Finally it's announced! Kudos to all the finalist of XNA Dream Build Play, as
    well to all those who participated and submited their entry. From the looks of all
    who made it to the final round, my entry really wouln't  have a chance Wink.
     
     

     
    July 31

    The latest August DirectX SDK release: it’s worth downloading

     
     
    The latest August DirectX SDK release: it’s worth downloading, IMHO.  After waiting
    for @ least 3 Hrs and finally installed the 466MB setup application. Most of my games
    run faster than before. I think even samples binary application from this SDK run faster
    than the previous release, though I have no idea if others also noticed it, or it is just me =)).

    I believe this is a cool DirectX SDK collection, since this is the last release
    of the  DirectX  SDK that will  contain some of the earlier DirectX stuff  with
    Direct3D8  and DirectInput7 all of the earlier versions including Managed
    DirectX samples and documentation 
     
    Read more  :
     
     
     
     
     
    July 15

    Creator of Atari Low-Level Game Routines

     
    This is something cool!  I never thought Allegro was originally created by Shawn Hargreaves.
    If you hang-up in any of XNA community portal for sure you already know  Shawn Hargreaves,
    from the XNA framework team. Though I never use allegro before, but a lot of poeple are still
    using it, up until now.
     
    Allegro History from wikipedia:
     
    Initially standing for "Atari Low-Level Game Routines" [1], Allegro was originally created by
    Shawn Hargreaves for the Atari ST in the early 1990s. However, Shawn abandoned the Atari
    version as he realized the platform was dying, and reimplemented his work for the Borland C++
    and DJGPP compilers in 1995. Support for Borland C++ was dropped in version 2.0, and DJGPP
    was the only supported compiler. As DJGPP was a DOS compiler, all games which used Allegro
    therefore used DOS. Around 1998, Allegro branched out into several versions. A port to Microsoft
    Windows, WinAllegro, was created, and also during this time, a Unix port of Allegro, XwinAllegro,
    was created. These various ports were brought together during the Allegro 3.9 WIP versions, with
    Allegro 4.0 being the first stable version of Allegro to support multiple platforms.

    The current version of Allegro supports Unix (Linux, FreeBSD, Irix, Solaris, Darwin), Windows
    (MSVC, MinGW, Cygwin, Borland C++), BeOS, QNX, Mac OS X, and DOS (DJGPP, Watcom).
    Shawn Hargreaves is no longer involved with Allegro.