Skip to content

Ecce Signum

Immanentize the Empathy

  • Home
  • About Me
  • Published Works and Literary Matters
  • Indexes
  • Laboratory
  • Notebooks
  • RSS Feed

Category: Programming

Current Project

2004-07-13 John Winkelman

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…

Posted in ProgrammingTagged Flash comment on Current Project

The Hits Just Keep On Comin’

2004-06-22 John Winkelman

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:

Posted in Programming comment on The Hits Just Keep On Comin’

geek.count++

2004-06-17 John Winkelman

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.

Posted in ProgrammingTagged games comment on geek.count++

Biomorphs III: A Guiding Hand

2004-06-13 John Winkelman

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.

Posted in ProgrammingTagged artificial life, Flash, game development comment on Biomorphs III: A Guiding Hand

Biomorphs II:Build Your Own

2004-06-10 John Winkelman

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.

Posted in ProgrammingTagged artificial life, Flash, game development comment on Biomorphs II:Build Your Own

Biomorphs I

2004-06-09 John Winkelman

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

Posted in ProgrammingTagged artificial life, Flash, game development comment on Biomorphs I

Less Play, More Build

2004-06-08 John Winkelman

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.

Posted in ProgrammingTagged game development comment on Less Play, More Build

Embedded Flash

2004-05-18 John Winkelman

Click to see a biomorph.

Posted in ProgrammingTagged artificial life, Flash comment on Embedded Flash

Spam III: Liberal Education

2004-04-13 John Winkelman

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)

Posted in Programming comment on Spam III: Liberal Education

Flash Stuff Here. Move Along…

2004-04-05 John Winkelman

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.

Posted in ProgrammingTagged Flash comment on Flash Stuff Here. Move Along…

Posts navigation

Older posts
Newer posts

Personal website of
John Winkelman

John Winkelman in closeup

Archives

Categories

Posts By Month

June 2025
S M T W T F S
1234567
891011121314
15161718192021
22232425262728
2930  
« May    

Links of Note

Reading, Writing
Tor.com
Locus Online
The Believer
File 770
IWSG

Watching, Listening
Writing Excuses Podcast
Our Opinions Are Correct
The Naropa Poetics Audio Archive

News, Politics, Economics
Naked Capitalism
Crooked Timber

Meta

  • Log in
  • Entries feed
  • Comments feed
  • WordPress.org

© 2025 Ecce Signum

Proudly powered by WordPress | Theme: x-blog by wpthemespace.com