FBS DevLab
User Functions
Username:

Password:

Don't have an account yet? Sign up as a New User

Events
There are no upcoming events

Older Stories
Wednesday 03-Dec
  • Blob Redux (26)

  • Tuesday 04-Nov
  • Virtools P5 Glove Building Block (28)

  • Thursday 16-Oct
  • Ragdoll Bull Riding (29)

  • Saturday 11-Oct
  • Fun With Limits (30)
  • Object Precaching Techniques (32)
  • Spring Toolkit (23)

  • Sunday 28-Sep
  • 50th Post, Been Busy (Yet Again) (24)

  • Saturday 20-Sep
  • Game of Life, First Optimizations (19)
  • IGDA Slides - Music Games (23)

  • Sunday 14-Sep
  • Conway's Game of Life (24)


  • Blob Redux
    Wednesday, December 03 2003 @ 04:06 PM EST, Matthew
    I actually attempted to make a nice blob back in June, but the results were somewhat broken. For whatever reason, I didn't just restart and try another approach. I did last night, though, as a way to do something fresh after getting frustrated with some of our company work. I haven't done a DevLab test in a long awhile, and--let's face it--I basically created the blog as an outlet for my physics experiments.

    And so I present to you the updated blob test (ESDF controls). I did a few things differently this time, and I think the results are fantastic. Primarily, I opted to create support in the blob with overlapping springs on the outer layer, rather than a triangular internal structure. The source CMO is available, as always. It contains some code from the older test which should really be redone, but it's fairly clean for the most part. Notice you can set parameters to control the number of points in the blob's skin as well as its size. Enjoy!

       View Printable Version 

    Virtools P5 Glove Building Block
    Tuesday, November 04 2003 @ 01:46 AM EST, Matthew
    I recently picked up a P5 Glove for a very decent $20, with the intention of creating a BB for Virtools experiments. It didn't take me that long to do, and the end result exposes all the available variables: position, absolute/relative yaw/pitch/roll, and the independant finger bend information. I haven't done anything too interesting just yet, but the Virtools P5 DLL and sample test are available for any interested parties (be warned--I have no idea what this does on systems that don't have the P5 driver installed).

       View Printable Version 

    Ragdoll Bull Riding
    Thursday, October 16 2003 @ 05:32 PM EDT, Matthew
    I ended up watching some "Hideous Sports Disasters" show the other day, and bull-riding accidents seemed to be a recurring theme. I decided to give it a shot, as both a test of realistic ragdoll rigging and of my destructable spring wrappers.

    The results are actually very decent; the ragdoll does a good job of seeming like it isn't just stapled to the saddle. Mouse movement and space for bull controls, and R to reset.

    The [somewhat sloppy] source is available, as always.

       View Printable Version 

    Fun With Limits
    Saturday, October 11 2003 @ 06:24 PM EDT, Matthew
    From my earlier tests--particularly with the quick bounce clone--it seems like the Ipion engine starts to get mad when you have 64 objects all colliding. You can see it here, if you hold the stream in one place.

       View Printable Version 

    Object Precaching Techniques
    Saturday, October 11 2003 @ 05:43 PM EDT, Matthew
    The Object Manager in Virtools is notoriously slow; constantly creating/deleting objects at a fast pace--for instance, projectiles in a shooting game--can quickly make it your performance bottleneck. Compound this with dynamic physics, and you're likely to see physics stability problems as well.

    One solution to the problem is to introduce an object precaching system. At the beginning of your composition's execution you create as many copies as you expect to simultaneously need. You then reference this pre-created objects, instead of dynamically copying/deleting them.

    I'm working this technique into one of our IGF projects, as it has a large amount of both physics projectiles and compound particle effects. I started with a simple proof-of-concept example; check out the web version here. I did a quick test to simulate destruction, too; shots that hit the back two cubes are removed. Notice that the oldest objects disappear when you hit the object limit (100). The source .CMO is fairly well-documented, if you're interested in using the technique in your own project.

       View Printable Version 

    Spring Toolkit
    Saturday, October 11 2003 @ 06:19 AM EDT, Matthew
    One of the most annoying aspects of the Virtools physics pack is the inability to properly store references to springs, motors, and constraints. Practically speaking, this means that truly dynamic uses that utilize these features--say, prompting the user for how many springs to make in a pattern--are difficult.

    Recently, though, I realized one solution is to simply copy a static script in order to directly reference the retrieved spring/motor/constraint. I tried it out by creating some tools for springs, and it works fairly well. I made a Spring Create and Spring Destroy wrapper, which works by copying a template frame and script. I included functionality for break points at defined low and high stretch points.

    Try it out with the web version. Notice you can break a spring if you pummel the side it's supporting (they break at 120% stretch). Grab the source .CMO to check out the BGs, if you're interested in their usage. To use them in your own project, just export the two spring frames and import. Optionally, you can have the spring logic record its current length and stretch percent for use in your own logic.

    When I have some time, I'll do similiar wrappers for constraints and motors. I have a few interesting tests in mind that will use dynamic springs/constraints, which I hope to have time for soon.

       View Printable Version 

    50th Post, Been Busy (Yet Again)
    Sunday, September 28 2003 @ 10:17 PM EDT, Matthew
    Sorry about the lack of updates recently, we're staring down two deadlines here (IGF updates and our primary project). I do have some interesting physics tests planned, as well as a look at using VSL to optimize Life, but not sure I'll be able to post them until next weekend.

    Also, this is my 50th post, according to Geeklog. I don't remember posting that much information, but apparently I have...

       View Printable Version 

    Game of Life, First Optimizations
    Saturday, September 20 2003 @ 06:56 PM EDT, Matthew
    I did some quick optimizations to the initial Game of Life test, the results of which are online here (S to change time stepping).

    The major bottleneck in the intial test was the active neighbor counting; each count, the list of neighbors was queried from the master grid array. This is entirely extraneous, as the relationship between tiles was unchanging. That is, the list of neighbors for each tile is constant (so looking them up each count was unneeded).

    In this version, an array containing a list of neighbors is generated for each tile when the grid is created, and referenced via an attribute on the tile. Additionally, the active boolean state was moved from the grid array to an attribute on the tile. So, to count active neighbors all we need to do is iterate over this array and test the active boolean attribute.

    This is much faster than the older method, although still has some extraneous aspects. Primarily, neighbors are being counted each generation, even if their neighbor count hasn't changed (large dead areas, for instance). The solution is to add a neighbor count attribute for each tile. The count simply uses this attribute, which is changed when a tile is activated or deactivated.

    Next, I'll look at using VSL to replace the bulk of the schematic. The source CMO for the updated version is available, as always.

       View Printable Version 

    IGDA Slides - Music Games
    Saturday, September 20 2003 @ 06:48 PM EDT, Matthew
    Here are the slides I used for my music games talk at the September IGDA Phoenix chapter meeting. I'm not sure how interesting they'll be to those who weren't in attendance; I mostly IGDA stuff here because it's convenient to. I also uploaded the videos I used--including the ones I forgot to copy to the laptop--to here.

       View Printable Version 

    Conway's Game of Life
    Sunday, September 14 2003 @ 08:23 PM EDT, Matthew
    I decided creating the well-known Game of Life with Virtools would provide an interesting exercise for optimization. This first version is extremely basic, and makes no attempt whatsoever at being speedy. As such, it's quite slow. Simple interactivity is provided; drag the mouse to draw new cells.

    If you aren't familiar with the Game of Life--or, are familiar but haven't looked too deeply into it--I highly recommend this Java applet by Alan Hensel. It contains presets for common patterns, as well as presets for some truly extraordinary finds. If all you've previously done with Life is smear random cells and watch them fizzle, you're really missing out. Definitely check out the presets in this applet.

    Anyway, I don't plan to do much Life research or compete in any technical way with the existing body of programs. Rather, I plan to follow up on this test with various methods to improve its speed: schematic-based solutions, a look at using VSL, etc. Hopefully it'll prove informative for newcomers to Dev. If I get time, I have a few aesthetic experiments that would be interesting to attempt with Life, as well.

    Source CMO is available, as always.

       View Printable Version 

    Top Games at Flashbang
    Fun Game Downloads:

    Play Mystery Case Files: Madame Fate

    Play Echoes of the Past: The Castle of Shadows

    Play Mystic Diary: Haunted Island

    Play Redemption Cemetery: Curse of the Raven

    Play Wedding Dash 4-Ever

    Play Shaolin Mystery: Tale of the Jade Dragon Staff


    Submit Tests
    Interested in submitting your own test to DevLab?

    Click here.

    About DevLab
    DevLab contains Virtools Dev experiments, examples, and musings by Matthew Wegner of Flashbang Studios, LLC.

    For more information on Virtools, check out their website.

    Feel free to email me with any comments or suggestions for the site.

    What's New
    STORIES
    No new stories

    COMMENTS last 2 days
    No new comments

    TRACKBACKS last 2 days
    No new trackback comments

    LINKS last 2 weeks
    No recent new links


    Search