Of course the most obvious use for IF tools and languages is for games. It’s been used that way for years and years. I got to thinking about other uses of the technology. What other kind of system could I create with my language of choice? Any specific examples will be with Inform 7, but I suspect that it wouldn’t matter if you were using TADS3, Adrift, Quest or any of the other languages, though I suspect that some things may be more difficult, if possible at all in some of the more CYOA type systems.
Here are just a few things to brainstorm about.
Education – This I think is an obvious one and one that is already being explored and implemented and has been for years. Look at about any IF blog or site and there will be links.
- Inform 7 site – http://inform7.com/teach/ – here’s a whole section on resources and examples of people using Inform in education.
- Emily Short has a whole list of examples of classes teaching IF or using IF to teach some concept (http://emshort.wordpress.com/how-to-play/teaching-if/) If you follow many of those links you’ll find a plethora of information not only about their coursework, but you can look at the material used in the classes for useful white papers and other resources.
Also, IF can be used to teach other subjects. For example, here is a course where the student, using Inform 7 is tasked with recreating a historical event or situation (http://gamingthepast.net/simulation-design/inform-7/inform-simulation-assignments-and-rubrics/) . There are resources out there for using IF to teach languages, literature, philosophy…just about any subject you can think of.
Obviously, it can be used for teaching programming. Being a developer myself, I think this is really important as we need to encourage children to become developers and get interested in programming at a younger age. What better way to do so in a classroom setting, then to have them develop a game.
Simulation – I’ve thought about this a bit and while IF in general is a simulation of a fictional world or situation and as talked about above, can be used for historical simulation, what I’m really thinking about here is scientific simulation. I think it would be an interesting exercise to put scientific formulas into IF form, and allow the “player” to experiment with different variables and have the simulation run and display text describing the results (or with some of the newer methods and extensions with Vorple and Gluxl support, perhaps we could do more than just print out text)
This could be useful for being a low-cost alternative to high priced simulation software. This could also provide a way for students to interact with and experiment with dangerous or high-cost experiments, say a nuclear explosion. For example (albeit a very simple example):
You weight 100lbs on earth. Enter in a planet you would like to travel to or enter in a new weight to see what the effect of gravity would have on your weight.
>go to mars
You travel to mars and step up on the Martian scale that is provided to you at the docking station. You now weigh 38.95 pounds.
>add 25 pounds to your weight
You pick up your luggage which on earth weighed an even 25 pounds. Now here on Mars the combined weight of you and your luggage (in Martian weight) is 48.6875 pounds.
>convert that weight to metric
For the good of those outside the US, you translate that to metric pounds and your metric weight is now, 22.08427851 kilograms.
And as always, I’ve always felt that you learn best by actually doing and not just reading, so writing out the code to create these simulations will not only teach logic and programming, but also reinforce the scientific formula / laws that govern the simulation you’re are trying to create.
Business Analysis – I spend much of my professional career building business intelligent software for companies. A large part of that is creating software to analyze sets of data and providing answers to questions asked about that data. This might actually be a stretch and more of an interesting exercise instead of anything useful, but could we create a work of IF, that reads in sample data and answers questions about it.
For example, we read in quarterly sales data for a company. The user can then enter in commands like:
> examine sales for salesman John Doe
After examining the sales information for John Doe, you find that he has sold $1000.00 of widgets for the last quarter. This is an increase of 1.2% from the previous quarter.
> show me the total sales for Mondays in the last quarter.
You sum all the sales for each Monday for the last quarter of sales to find that you have sold $23,093 worth of widgets. This is up 3.5% from last quarter and is the 2nd highest day for sales (behind Wednesdays). You have earned $345.93 in commission on those sales.
Just some examples and perhaps a lot of parser magic would need to be done to allow for these queries and really there are probably better tools out there to do the same thing in an easier fashion, but it’s kind of an interesting thought process none-the-less.
These are just a few thoughts I had and I’m sure that I’ll come up with more. As I said, most of these may be unrealistic or impractical for a number of reasons (other than some of the educational uses as it’s been shown and I do believe that there is usage there in languages, historical simulation, … that are important)
Please share any thoughts, additions or omissions you may have.