Category: Programming

  • Current Project

    Currently filling in my free time working on version 3 of the Flash photo album. This one will be highly user modifiable; “skinnable”, if you prefer, and will hopefully be ready to launch within the next couple of weeks.

    Of course this raises the questions… If I come up with something which is both useful and easy to use, should I try selling or licencing it? Or should I release it into the wilds of the Public Domain?

    Guess the answer to that depends on how attached I feel to my soul at that moment…

  • The Hits Just Keep On Comin’

    Fresh off a twelve hour day which happened all between the hours of 8:30am and 1:00pm today, I found this nifty thing , which seems to be a dead ringer for the original Zelda, except ported to the PC. AAAAAnndddd, it comes packaged with a level editor, so you can roll your own quests. How cool is that?

    In other news, the following seems to be the experiment of the week:

  • geek.count++

    Where have I been? Ah! Therein lies an interesting story…

    Nah, not really. I have been playing around with new things.

    On Friday, when I decided not to go to work, I spent a couple of hours downloading and installing Apache, PHP and MySql on my home computer. To a certain extent, it all worked. Apache worked without a hitch. PHP runs fine, although I haven’t quite figured out how to get all the extensions (e.g. XSLT) working. And MySql stopped working when I did something with my firewall, which makes no sense because the firewall adjustment was to block MySql from accessing the internet, which it should NEVER have to do.

    Meh. I’ll sort it out soon enough.

    The other cool new thing is actually a cool OLD thing, and by old I mean 1985 / Commodore 64 OLD. The game is Telengard, and there is a fella made a perfect clone of it for PC users. After a couple of hours of playing I have to say, Wow, what a nostalgia trip.

    Maybe I just need to get out more.

  • Biomorphs III: A Guiding Hand

    Probably should have posted this one before the previous one. Clicking on one of the biomorphs causes the other 8 to become duplicates. From there they each continue to mutate individually.

  • Biomorphs II:Build Your Own

    Click here to see the biomorphs.

    Clicking a biomorph makes it the “base”. The other 8 critters become clones of the clicked biomorph, then evolve one generation. By clicking around the different critters you can direct the evolution toward a specific phenotype.

  • Biomorphs I

    Here is the first round. Click the movie to (re)run the experiment.

  • Less Play, More Build

    So I was playing Diablo II last night for the eighty-twelfth time and I decided it was past time to stop playing games eighty-twelve times and start building them instead. To that end, I am slowly gathering together notes from the past couple of years when I have really *meant* to start building games, along with various books on the subject, notes and code from the Adventure Game section of this site, and printouts of the source code from completed games, written in BASIC, and played to death on my old Commodore-64, twenty (egads!)years ago.

    But my ideas have evolved over the past couple of years, and I have been playing around with artificial evolution and exploring the possibilities therein.

    And I have discovered something.

    I have spent over half my life playing adventure/role playing games of various kinds. The object of these games is to make your character more powerful, usually by earning points of various kinds and using them to enhance one or more out of a broad group of possible characteristics.

    In artificial evolution experiments, particularly in things like biomorphs , the chromosome starts out simple, then gradually increases in complexity as more and more generations are born.

    The characteristics of an RPG character can be considered genes. The genes used to describe a biomorph can be considered characteristics. The points used to advance a character are analogous to the increasing complexity in an evolving organism. The only real difference is, the biomorph is Darwinian evolution, and the RPG character is Lamarckian.

    In other words, level advancement == increasing complexity.

    Knowing this, why not simply create a gene pool from which can be created a near-infinite number of creatures? Evolve the genotype, rather than building the phenotype! Keep things from getting out of hand by defining what proportions of one group of genes to another makes a critter an animal, a plant, or a whatever is needed to fit the storyline of the game. Need more variety? Make the chromosome larger! Need the game to be science fiction rather than fantasy? Change the code which interprets the chromosome, create some new graphics, and now you have a near-infinite variety of robots.

    Once the genotype and phenotype engines are completed, the user can play God or Nature and go in and modify a specific instance of the chromosome to create a specific creature. Mutations of this creature can then be created to suit specific needs.

    There. Now that my big idea is made public, I need to start building something.

  • Spam III: Liberal Education

    People who sent me spam this week:

    Mementos C. Aspires
    Population B. Infanticides
    Preciousness A. Bidirectional
    Shyer L. Refugee
    Mischievousness H. Guadalquivir [1]
    Archivist E. Wrestling
    Distentions C. Fishbowls
    Neonates S. Carriageway
    Reddest C. Impairment
    Buzzard U. Coloratura [2]
    Media H. Goldenest
    Chic S. Newscast
    Relives V. Etruscans [3]
    Telemachus F. Neutralizers [4]
    Unbend L. Unveil
    Upholstery K. Burgeon
    Lubumbashi H. Actress [5]
    Tackled G. Transliterations
    Knitter H. Klingon

    [1] Guadalquivir – one of the major rivers of Spain, passes through Cordoba and Seville, ends in the Atlantic Ocean.

    [2] Coloratura – The ornamentation of music written for the voice with florid passages, especially trills and runs.

    [3] Etruscan – Of or relating to ancient Etruria or its people, language, or culture.

    [4] Telemachus – The son of Odysseus and Penelope, who helped his father kill Penelope’s suitors.

    [5] Lubumbashi – capital of Katanga province, SE Congo (Kinshasa)

  • Flash Stuff Here. Move Along…

    In the middle of a cool project which is right on the cusp of being designered into oblivion, I discovered a nifty way to make things “snap to” a grid. Copy-and-paste into Flash MX/MX2004.

    var gridSize = 20; // size of grid
     var nodeSize = 20; // size of individual nodes
     var nodes = 50; // number of nodes
     var radius = Stage.height/3; // radius of drawn circle
     var centerX = Stage.width/2; // center horizontally
     var centerY = Stage.height/2; // center vertically
     var steps = (Math.PI*2) / nodes; // math stuff
     var i=0;
     this.onEnterFrame = function() {
     if(i < nodes) {
     var m = _root.createEmptyMovieClip("node"+i,i);
     m.lineStyle(0,0x000000,100);
     m.beginFill(0x000000,10);
     m.moveTo(0,0);
     m.lineTo(nodeSize,0);
     m.lineTo(nodeSize,nodeSize);
     m.lineTo(0,nodeSize); m.lineTo(0,0);
     m.endFill();
     var mx = centerX + radius*Math.cos(steps*i); // horizontal snap
     if(mx%gridSize != 0) mx += (Math.floor(gridSize/2) - (mx%gridSize));
     var my = centerY + radius*Math.sin(steps*i); // vetical snap
     if(my%gridSize != 0) my += (Math.floor(gridSize/2) - (my%gridSize));
     m._x = mx;
     m._y = my;
     i++;
     radius += .1;
     } else {
     this.onEnterFrame = null;
     }
     }

    It’s the modulus (mx % gridSize) which makes it cool. The Math.floor() which follows could also easily be Math.round() or Math.ceil(), depending on the constraints of the project.