Jump to page: 1 2
Thread overview
Monster - a game programming language
Sep 07, 2007
Nicolay Korslund
Sep 07, 2007
Anders Bergh
Sep 08, 2007
Nicolay Korslund
Sep 07, 2007
Anders Bergh
Sep 07, 2007
Gregor Richards
Sep 08, 2007
Tom S
Sep 08, 2007
Vladimir Panteleev
Sep 07, 2007
renoX
Sep 08, 2007
Daniel Keep
Sep 08, 2007
Nicolay Korslund
Sep 08, 2007
Lars Ivar Igesund
September 07, 2007
Greetings my fellow D-icans!

The first release - version 0.1 - of the Monster programming language is now available at http://monster.snaptoad.com

Monster is a rather ambitious project of mine - it is a game scripting language based on D syntax and written entirely in D. To run Monster scripts, you first compile the scripts to byte code, and then link the VM into your program and run them there. This lets you integrate the scripts into your program or game, and basically makes your program an extension of the language VM. Monster includes some advanced features, such as states and (cooperative) multithreading. The concept is similar to UnrealScript, except that it is not bound to any specific engine (and that it is based on superior D syntax <g>.)

Note that this is a pre-alpha release, and most features you would need to actually use the language (such as inheritance and memory allocation) are not implemented yet. There are some compilable examples on the web site, though.

-Nico
September 07, 2007
On 9/7/07, Anders Bergh <anders1@gmail.com> wrote:
> Hey, that looks really nice :-) I'll play around with it later today.
>
> One note however: Lua is really common in games, because of its very liberal license (new BSD or so). Monster is released under the GPLv3. Did you consider something like BSD or LGPL? This could be important for things like the Deadlock game/engine, which is written in D but isn't open source.
>

Oh yeah, an idea: why not use DSSS? This would let developers simply "dsss net install monster" to install everything, and makes it easier for people to use Monster in their own projects :-)

I take it Monster isn't Tango-compatible, which is bad for some of us... did you look into it?
September 07, 2007
On 9/7/07, Nicolay Korslund <korslund@gmail.com> wrote:
> Greetings my fellow D-icans!
>
> The first release - version 0.1 - of the Monster programming language is now available at http://monster.snaptoad.com
>
> Monster is a rather ambitious project of mine - it is a game scripting language based on D syntax and written entirely in D. To run Monster scripts, you first compile the scripts to byte code, and then link the VM into your program and run them there. This lets you integrate the scripts into your program or game, and basically makes your program an extension of the language VM. Monster includes some advanced features, such as states and (cooperative) multithreading. The concept is similar to UnrealScript, except that it is not bound to any specific engine (and that it is based on superior D syntax <g>.)
>
> Note that this is a pre-alpha release, and most features you would need to actually use the language (such as inheritance and memory allocation) are not implemented yet. There are some compilable examples on the web site, though.
>
> -Nico
>

Hey, that looks really nice :-) I'll play around with it later today.

One note however: Lua is really common in games, because of its very liberal license (new BSD or so). Monster is released under the GPLv3. Did you consider something like BSD or LGPL? This could be important for things like the Deadlock game/engine, which is written in D but isn't open source.
September 07, 2007
Anders Bergh wrote:
> On 9/7/07, Nicolay Korslund <korslund@gmail.com> wrote:
>> Greetings my fellow D-icans!
>>
>> The first release - version 0.1 - of the Monster programming language is now available at http://monster.snaptoad.com
>>
>> Monster is a rather ambitious project of mine - it is a game scripting language based on D syntax and written entirely in D. To run Monster scripts, you first compile the scripts to byte code, and then link the VM into your program and run them there. This lets you integrate the scripts into your program or game, and basically makes your program an extension of the language VM. Monster includes some advanced features, such as states and (cooperative) multithreading. The concept is similar to UnrealScript, except that it is not bound to any specific engine (and that it is based on superior D syntax <g>.)
>>
>> Note that this is a pre-alpha release, and most features you would need to actually use the language (such as inheritance and memory allocation) are not implemented yet. There are some compilable examples on the web site, though.
>>
>> -Nico
>>
> 
> Hey, that looks really nice :-) I'll play around with it later today.
> 
> One note however: Lua is really common in games, because of its very
> liberal license (new BSD or so). Monster is released under the GPLv3.
> Did you consider something like BSD or LGPL? This could be important
> for things like the Deadlock game/engine, which is written in D but
> isn't open source.

Maybe he doesn't WANT non-Open-Source games using his engine, eh? That's everyone's right.

 - Gregor Richards
September 07, 2007
Nicolay Korslund a écrit :
> Greetings my fellow D-icans!
> 
> The first release - version 0.1 - of the Monster programming language
> is now available at http://monster.snaptoad.com
> 
> Monster is a rather ambitious project of mine - it is a game
> scripting language based on D syntax and written entirely in D. To
> run Monster scripts, you first compile the scripts to byte code, and
> then link the VM into your program and run them there. This lets you
> integrate the scripts into your program or game, and basically makes
> your program an extension of the language VM. Monster includes some
> advanced features, such as states 

Could you explain what you mean by 'states' here?
For me a state is when you assign a value to a variable which isn't what I would call an 'advanced feature'..

renoX

> and (cooperative) multithreading.
> The concept is similar to UnrealScript, except that it is not bound
> to any specific engine (and that it is based on superior D syntax
> <g>.)
> 
> Note that this is a pre-alpha release, and most features you would
> need to actually use the language (such as inheritance and memory
> allocation) are not implemented yet. There are some compilable
> examples on the web site, though.
> 
> -Nico
September 07, 2007
"renoX" <renosky@free.fr> wrote in message news:fbs3sk$2v30$1@digitalmars.com...

> Could you explain what you mean by 'states' here?
> For me a state is when you assign a value to a variable which isn't what I
> would call an 'advanced feature'..

He probably means something like state machine constructs built into the language.  Something that's rather useful when it comes to game scripting.


September 08, 2007
Gregor Richards wrote:
> Maybe he doesn't WANT non-Open-Source games using his engine, eh? That's everyone's right.

!slap GregorR
An engine doesn't really have to be open source if it's well scriptable :P

-- 
Tomasz Stachowiak
http://h3.team0xf.com/
h3/h3r3tic on #D freenode
September 08, 2007

Jarrett Billingsley wrote:
> "renoX" <renosky@free.fr> wrote in message news:fbs3sk$2v30$1@digitalmars.com...
> 
>> Could you explain what you mean by 'states' here?
>> For me a state is when you assign a value to a variable which isn't what I
>> would call an 'advanced feature'..
> 
> He probably means something like state machine constructs built into the language.  Something that's rather useful when it comes to game scripting.

It's something borrowed from UnrealScript.  From what I remember, you could define blocks of code to be in a particular state, and then that code would only execute in that state.

Yes, you can do this with ifs and switches, but it's used so very often in games, it was promoted to a language feature.  Tim Sweeny's a damn smart cookie when it comes to these things.  With ZZT (released in 1991), it had an OO scripting language that used coroutines; the *editor* ended up being more popular than the game itself :P .

Monster is certainly interesting; I look forward to seeing where it goes.

	-- Daniel
September 08, 2007
Nicolay Korslund wrote:

> Greetings my fellow D-icans!
> 
> The first release - version 0.1 - of the Monster programming language is now available at http://monster.snaptoad.com
> 
> Monster is a rather ambitious project of mine - it is a game scripting language based on D syntax and written entirely in D. To run Monster scripts, you first compile the scripts to byte code, and then link the VM into your program and run them there. This lets you integrate the scripts into your program or game, and basically makes your program an extension of the language VM. Monster includes some advanced features, such as states and (cooperative) multithreading. The concept is similar to UnrealScript, except that it is not bound to any specific engine (and that it is based on superior D syntax <g>.)
> 
> Note that this is a pre-alpha release, and most features you would need to actually use the language (such as inheritance and memory allocation) are not implemented yet. There are some compilable examples on the web site, though.
> 
> -Nico

This sounds like a really great project!

Now, I'm just a tiny bit biased, but I think the implementation of some of your features (like coop multithreading) may benefit from being done on top of Tango.</shameless plug>

-- 
Lars Ivar Igesund
blog at http://larsivi.net
DSource, #d.tango & #D: larsivi
Dancing the Tango
September 08, 2007
Daniel Keep Wrote:

> It's something borrowed from UnrealScript.  From what I remember, you could define blocks of code to be in a particular state, and then that code would only execute in that state.
> 
> Yes, you can do this with ifs and switches, but it's used so very often in games, it was promoted to a language feature.  Tim Sweeny's a damn smart cookie when it comes to these things.  With ZZT (released in 1991), it had an OO scripting language that used coroutines; the *editor* ended up being more popular than the game itself :P .

That is right. Having states as a language construct makes them much simpler and more intuitive to use. And one of the main benefits of the way states work in UScript (and will work in Monster) is that they can easily be added or changed through subclassing. The same functionality would quickly become cumbersome with ifs and switches.

- Nico
« First   ‹ Prev
1 2