The earliest memory I have of ‘programming’ is in the early/mid 90s when my father brought home a computer from work. We could play games on it … so of course I took the spreadsheet program he used (LOTUS 123, did I date myself with that?) and tried to modify it to print out a helpful message for him. It … halfway worked? At least I could undo it so he could get back to work…

After that, I picked up programming for real in QBASIC (I still have a few of those programs lying around), got my own (junky) Linux desktop from my cousin, tried to learn VBasic (without a Windows machine), and eventually made it to high school… In college, I studied computer science and mathematics, mostly programming in Java/.NET, although with a bit of everything in the mix. A few of my oldest programming posts on this blog are from that time.

After that, on to grad school! Originally, I was going to study computational linguistics, but that fell through. Then programming languages (the school’s specialty). And finally I ended up studying censorship and computer security. That’s about where I am today!

But really, I still have a habit of doing a little bit of everything. Whatever seems interesting at the time!

Wombat IDE - And so it begins

The second (and it turned out final) iteration of Wombat was based on Java. With nearly 10 years of Java experience at that point, I could write Java code more quickly and efficiently than most other languages. In addition, it had the advantage of being portable, running on essentially every modern operating system with no changes to the deployed class files.

read more...


Wombat IDE - A bit of history

For three semesters now, I have been an AI (associate instructor, not the other kind) for the C211: Introduction to Computer Science class at Indiana University. C211 is (and has been for many years) taught using the Scheme programming language, a dialect of Lisp following a minimalist viewpoint which makes it ideal for education. Unfortunately, many of the IDEs most commonly used to edit Scheme, Lisp, and other languages based on S-expressions tend to be rather complex and require time to learn on their own, reducing the time dedicated to other topics in such an introductory class.

read more...


Sandbox - It's Alive!

So I haven’t actually updated the Sandbox project for quite some time (December 9th I believe).  Since then, I’ve actually torn out the core of the code and rewritten it to actually be a game, rather than another clone of the general Falling Sand games.  Rather than explain in detail what I’ve done (I’ll get to that later), I’ll start with screenshots of the new version.

read more...


Sandbox - Bugfix

Quick bug fix (plus one new simple feature) for Sandbox.

Bug fix:

  • Automatically default to first item on startup
  • Allow particles to be placed while paused

New features:

  • Number keys select corresponding placeable particle type

Downloads:

Controls:

  • Esc/Q – Quit the program
  • B – Toggle border behavior
  • P – Pause / Unpause
  • Space – Advance the simulation one step (when paused)
  • Left-click – Add a blob of the current kind of particle
  • Right-click – Remove a blob of any kind of particle
  • 1-9 – Select the corresponding kind of particle

particle


Sandbox - More user friendly

One more update on my quick schedule than it’s back to school so I’ll probably slow down for a while.  In any case, I’ve added the ability to change between different elements in the definitions files.

Two new changes to the definitions are the addition of placeability and colorful flags.  If placeability is set, the element will show up on the GUI to be placed.  If colorful is set, the colors will be varied slightly (see the screenshots).

Next up, seeing if I can come up with more elements to play with…

read more...


Sandbox - Interactivity

I know I’ve already updated this project twice within the past 24 hours, but third time’s a charm.  This time, it’s interactive!

I’m using the same rules as last time (with the tweaks I mentioned).  The main difference are that you can left-click anywhere on the screen to add a blob of fire or right-click to add a new blob of plant.  It’s still not really a game per-say, but it’s got the makings of one!

read more...


Sandbox - Reactions

So I stayed up entirely too late last night / this morning and decided to go ahead and add reacti0ns to Sandbox.  Turns out, it was far easier than anything that I’ve implemented thus far on this project.  I spent some of the day (when I wasn’t at the family Thanksgiving celebration) tweaking a few things to make it look a little better.

Basically, reactions have four parts: a core, reactants, a chance, and (possibly) a product.  The core is the particle that will be reacting.  The reactants (each given with a concentration) are the neighboring particles.  The chance adds a bit of randomness to reactions and allows particles to fade (see the fire below).  The product (if present) is the result of the reaction.

read more...


Sandbox - And so it begins

For the past few years, I’ve been fascinated by falling sand / particle simulation type games (like this one).  Enough so that I’ve set out to make one a fair number of times.  Each time, I’ve advanced my own techniques by a little bit, finding new and better ways to make digital sand.

This time around, I’m going to try to use C# with SDL.NET for all of my graphical work and a simple grid for all of the particle data.  Rather than looping over the grid, I will be using quadtrees to only update the regions that actually need to be updated.  So far the results are promising!

read more...


FLAIRS 2010

The fall quarter has ended and thus so has the AIGS 2009 project. Version 0.2.04 is the last version that I will (most likely) be updating. I think that an independent study group will be working on the version for next year, and I wish them the best of luck. On a brighter note, Prof. Wollowski and I have written a paper based on the AIGS project and have submitted it to FLAIRS 2010 (an AI conference in Florida).

read more...