Monster Script

Old News Items (rss feed )

OpenMW news page with RSS

Date: 2008-june-21

The OpenMW page has just got its own news page, with an associated RSS feed! This means that you can now follow news and updates about OpenMW directly.

It also means that I will not post any more OpenMW stuff here from now on, unless it's something that is also relevant for the Monster language.

Announcing OpenMW - a Morrowind reimplementation

Date: 2008-june-04

I have just released another big project of mine. OpenMW is an open source reimplementation of the game Morrowind. Hopefully it will one day be a full featured implementation of the game, even though the current version works more like a viewer than a game.

Although it does not use any scripting yet, OpenMW will in time become my primary testing grounds for the Monster language. My plan is to eventually script all gameplay elements (combat, skills, inventory items, spell effects, etc.) in Monster.

Not only will this help me test the language, it will also help guide my development in the right direction, and hopefully serve as a working demo at some point.

See the OpenMW homepage for more details.

Tutorial 1: Monster Basics

Date: 2008-may-05

The very first Monster tutorial is finished! You can find it here. There is also a new tutorial section.

Tutorial 1 covers the bare basics, like variables and functions, and how to actually run a script file. I will write more of these in the coming weeks, and announce them here as I go.

Oops! Update to Monster 0.8

Date: 2008-apr-24

Seems like a small bug sneaked into the Windows code. The download has been fixed and it should compile now. (Thanks to odeamus for reporting this)

Download the updated version: monster-0.8.tar.gz (222k)

... or you can fix it yourself by adding the following line to monster/minibos/c/windows/windows.d:

alias ushort WORD;

Monster 0.8 - Even more arrays, cleanups, bug fixes

Date: 2008-apr-21

Monster o-eight is finally finished! In this release I have tied up those remaining loose array ends (such as concatination), and made some necessary internal rearrangements. For a complete list of changes, check out the changelog.

One noticable new feature I wanted to implement was the ability to quickly and easily loop through all instances of a given class. It hit me that foreach is perfect for this purpose, so now it looks like this:

foreach(obj; class MyClass) // All instances of MyClass
    obj.doSomething();

The internal iteration system is entirely generic and can be extended later to include user defined constraints, like "find all enemies less than 10 feet away from me".

Download Monster here: monster-0.8.tar.gz (222k).

Updated roadmap

Date: 2008-mar-14

Some updated plans for the next couple of releases can be found by clicking here.

Monster 0.7 - Arrays, strings, and everything

Date: 2008-mar-12

I had originally planned on doing a half-way, quick-and-dirty array implementation for version 0.7.

But I changed my mind and decided to do it properly and be done with it :-) So now Monster has complete array support, including slices, foreach loops and vararg function parameters. I would say arrays are now about 95% done and are good to go. You can get it in the download section. Also check the changelog for a complete list of changes.

One interesting point is the case insensitive comparison operator =i= (and the equivalent uppercase =I= to allow faster typing on keyboards where = is a shift key.) You may not need this feature very often, but it's very nice to have it when you do.

Monster 0.6 - Tango support and other goodies

Date: 2008-feb-19

The next release (0.6) is ready. This version adds a small phobos compatability layer that allows Monster to be used with the Tango standard library. Just run dsss build / dsss install, it should work out of the box. You will find Tango versions of all the examples in the dexamples-tango directory.

Also, from this version on you no longer need to compile m scripts manually before using them, the VM will do this for you. You can disable this feature with classes.autoCompile = AC.Never;

Download Monster here: monster-0.6.tar.gz (192k). You might also want to check the changelog.

Mini-release 0.5 to fix Windows issues

Date: 2008-feb-07

I had to fix a couple of minor issues to get the examples running on Windows. Instead of waiting for the next full release I decided to put the fixes together and make a small release out of it. As usual you can find it in the download section.

RSS feed!

Date: 2008-feb-01

I've added an rss feed to the news section! Now you can follow Monster releases and updates more easily.

Monster 0.4 released

Date: 2008-jan-31

The next release is ready to be tried, tested and abused. New in this release are improved DSSS compability and state labels. See the changelog.

State labels are just that, labels in state code. You can jump to a label with a goto statement, and you can stop state code completely with a halt statement. You can also specify a label when changing state. See the examples page for more. Note that this breaks current code, since state code no longer loop around automatically.

By the way, I have written a summary of what is in store for the next few releases Monster. And there's some big stuff on the horizon. You can find the list in this "roadmap" forum post.

Monster 0.3 released

Date: 2008-dec-31

I finally managed to circumvent the template forwarding limitations in DMD, by adding some unused template instantiations in mclass.d, and by restructuring freelist.d a little.

The end result is that the DMD front-end can now compile each file individually, which in turn means that rebuild/DSSS works and that GDC works. This also means that Monster should now theoretically compile and run on Windows, Linux 64 bit and in Mac OS X, although neither of these have been tested yet. I've put the updated files into a new release - version 0.3 - along with a few other fixes. Check the download page.

Monster 0.2 released

Date: 2008-dec-22

Version 0.2 of Monster is finally finished. Check out the download page and the changelog.