You are not logged in.    Login    New User    Forum Home    Search

Location:
JBPLAY  \  Meteor 2  \  General  \  M3: new scripting language?

Back to Threads

Viewing Thread: M3: new scripting language?

 

fuzinavl
 Official Sponsor

Joined: 06 October 2004
Posts: 287
27 July 2005 14:14 (UK time)


James, will you be using another scripting language for M3?

Right now I'm comparing ICI, Pike, and SeEr. (Pike looks the best so far)

Lua, Ruby, and Python have everything I want, but I hate the syntax, so :p!
IO is supposedly the fastest / cleanest / smallest / most advanced, but the documentation and help is only 30% complete.

(BTW, has HawkNL implemented reliable UDP yet?)

thoughts?

You need to login to create posts in this thread.

arezey

Joined: 16 June 2005
Posts: 1599
27 July 2005 18:31 (UK time)

Well, it would be nice if you would have not just "void" but also "bool" (the "true and false event) in M3.

You need to login to create posts in this thread.

James Bunting
Joined: 17 September 2003
Posts: 1308
28 July 2005 00:07 (UK time)

Not sure about M3 yet but dropping SeeR would be a good move because it has not been updated for years and it lacks a few major things like gloal variables.

Forget HawkNL, it just does not cut it.

I now work with ENet, its pure C (it has a C++ wrapper if you are into all that jazz).

ENet is fast reliable UDP and has a good interface. I had to mess around a bit to get it to compile with Allegro (Winsock conflicts etc) but its fine (just get your head around the peers thing).

http://enet.cubik.org/

Edited: 28 July 2005 00:08


You need to login to create posts in this thread.

fuzinavl
 Official Sponsor

Joined: 06 October 2004
Posts: 287
28 July 2005 00:41 (UK time)

Pike is NOT EMBEDDABLE! What a disappointment.
I can't find much documention on how to embed Pawn.

Supposedly, lua is great for loading datafiles. Maybe I'll try that.

For AI, I need another scripting system that looks like "C". The idea is to throw/generate a list of world objects & their properties that the script can read from. After the script does its AI algorithm, it throws back input/attempted actions & attempted movement for that character.

I'll try ENet.

Edited: 28 July 2005 16:03


You need to login to create posts in this thread.

arezey

Joined: 16 June 2005
Posts: 1599
28 July 2005 18:31 (UK time)

I dunno about these Pikes or Enets but it would be great if you could use "bool".

You need to login to create posts in this thread.

arezey

Joined: 16 June 2005
Posts: 1599
28 July 2005 18:31 (UK time)

I dunno about these Pikes or Enets but it would be great if you could use "bool".

You need to login to create posts in this thread.

fuzinavl
 Official Sponsor

Joined: 06 October 2004
Posts: 287
29 July 2005 21:33 (UK time)

Scripting Language hunt Update:

ICI, IO, SEER, RUBY, PAWN... lacking docs / tutorials / examples
PYTHON, LUA... dislike syntax

The following I'm trying out now. All use "C" syntax, and have JIT compilation capabilities. They have good documentation & examples.

GameMonkey: native threading, can't compile in DevC++/MingW :(, comes with visual c++ project files.

Squirrel: Works easily, embeds via lua-like tables.

AngelScript: Works. Don't know why C Examples used strings instead of file loading :p. Semi-multithreaded via pause and resume methods. More variety in embedding possibilities than Squirrel.

You need to login to create posts in this thread.

James Bunting
Joined: 17 September 2003
Posts: 1308
29 July 2005 23:30 (UK time)

/*
here is a bool example, the #define statements go right at the top of the file. Try it, it works. You will need to call it from your own code.
*/

#define bool int
#define true 1
#define false 0

bool IsNumberPositive( int number)
{
if( number >= 0)
return true;

return false;
}

Edited: 29 July 2005 23:30


You need to login to create posts in this thread.

arezey

Joined: 16 June 2005
Posts: 1599
30 July 2005 11:23 (UK time)

Wow! I think it's great but I can't get it working. How do you make the computer choose the number between 0 and 1?

Edited: 30 July 2005 11:37


You need to login to create posts in this thread.

fuzinavl
 Official Sponsor

Joined: 06 October 2004
Posts: 287
01 August 2005 00:20 (UK time)

Yeah, I tried to find some SeEr coding docs, the the links on their website are all dead.

Scripting Language hunt is over:

GameMonkey: No work w/MingW... Squirrel: dislike table interface

AngelScript: Winner! Easiest compilation ever, and I like A.S. too

Now I have to initialize 2 seperate thread_engine_cores to keep MapLevel script functions unavailable to user defined AI scripts.
I can't let players dry up lakes and spawn gigantic piles of gold everywhere!
note: this isn't for any particular game yet

You need to login to create posts in this thread.

mike323
Joined: 23 January 2005
Posts: 745
02 August 2005 17:53 (UK time)

Now, with these new scripting languages, will there be support for <b>multiple picture formats</b> besides PCX? It would be so much easier if you could use PCX and BMP (and maybe JPG)

You need to login to create posts in this thread.

shockdrop

Joined: 01 March 2005
Posts: 236
02 August 2005 19:42 (UK time)

i think you can use bmp because i used once on accident and it still worked.

Edited: 02 August 2005 19:42


You need to login to create posts in this thread.

arezey

Joined: 16 June 2005
Posts: 1599
02 August 2005 20:19 (UK time)

I make *.bmp- accidents usually (that's bad, I use MS Paint and it doesn't work so it cuts me time).

You need to login to create posts in this thread.

shockdrop

Joined: 01 March 2005
Posts: 236
02 August 2005 20:23 (UK time)

I make all my stuff in bitmap and use m1 to change them to pcx

You need to login to create posts in this thread.

fuzinavl
 Official Sponsor

Joined: 06 October 2004
Posts: 287
03 August 2005 14:45 (UK time)

support for multiple picture formats besides PCX?

What I'm talking about has nothing to do with graphics, just AI.
These are just thoughts for future projects, nothing M2.

I really like angelscript. I can expose common action "C" functions to the AI script such as A* pathfinding, Seek/Flee behavior, flocking, attack target, and setting a new AI script file. I can force user written AI modules to pause execution and let the program continue later if they're taking too much time. I can destroy modules if they have memory leaks (and set character to some default behavior).

I'll have to put together a good AI scriptwriter's guide to help people write fast, non-memory intensive code. For each character, I'll have a reaction_time variable which can be bought/upgraded. This will determine how many times per second an AI script is invoked. (Will aslo improve program efficiency)

I want a memory and execution efficiency bar for each character's AI script, but that's not as important as error logs and the AI programmer's guide.

You need to login to create posts in this thread.

arezey

Joined: 16 June 2005
Posts: 1599
03 August 2005 14:51 (UK time)

Shockdrop, which program are you using to make *.bmp- files?

You need to login to create posts in this thread.

shockdrop

Joined: 01 March 2005
Posts: 236
03 August 2005 20:32 (UK time)

microspoft paint. Its the best thing i can find to make sprites

You need to login to create posts in this thread.

40oz
 Official Sponsor

Joined: 03 January 2004
Posts: 1799
05 August 2005 02:19 (UK time)

Thats what i used to make all my super hot and insanely cool sprites. Ok i over exaggerated
*Papercut
Pro-Murder.
Legalize Crime.


You need to login to create posts in this thread.

arezey

Joined: 16 June 2005
Posts: 1599
05 August 2005 06:39 (UK time)

MS Paint? I use that too to creat all MY sprites and projectiles. I always needed to #1 save them as *.bmp- files #2 change to *.pcx- files using iPhoto Plus 4. Just, how you make it with MS PAINT!?!?!?!?

You need to login to create posts in this thread.

40oz
 Official Sponsor

Joined: 03 January 2004
Posts: 1799
06 August 2005 18:01 (UK time)

I do the same thing, except i use Irfranview to convert them, but, so what.

and at Fuzinavl, you changed your name pic while i was goin through the forums, The last thread i looked at you had your other pic, (in which i prefer over the one you have now lol)
*Papercut
Pro-Murder.
Legalize Crime.


Edited: 06 August 2005 18:03


You need to login to create posts in this thread.

fuzinavl
 Official Sponsor

Joined: 06 October 2004
Posts: 287
06 August 2005 18:19 (UK time)

But papercut... don't you wuv me for who I am? lol

User defined AI
(for some other game I'm thing of, but it might be useful in M3)

Now you could make thieves that run when the enemy faces them, and seek when the enemy has their back turned, and whatever else you can imagine.

Each NPC has her own "string variable" which indicates the name of the AI script file they use.

JIT style scripting language receives a list/array of local objects:
Self data: move,direction,HP,MP,Class_ID#
Map Data,
projectiles,
NPCs' data: move,direction,HP,MP,Class_ID#
help! shouts,
strategic spots: bridges, castle gates, ...
etc.

The script processes this info and outputs direction, desired movement, and desired actions for that character.

if the script doesn't compile, default behavior could be used. Seek, Flee, Flock (keep set distance to allies), A* (create personal waypoint list) and other useful algorithms could be coded in "C" and made available to the AI
scripts.

If you have MapLevel events and AI scripts both using the same scripting language, you will need to initialize two script_core_engines and bind the appropriate functions seperately. Can't have players drying out lakes and raining gold piles now!

AngelScript (AS) is easy to integrate & use
http://www.angelcode.com/

what you can do with AS:
If an AI script is running too long, you can pause it down, and let it resume later.
If an AI script does 200 (or whatever) pauses and resumes in a row, then set default behavior.
If an AI script goes beyond 50k (or whatever you set), you can destroy it, and set default behavior for that character.

When a script is destroyed for any reason, you need to notify player, and why (memory leak, execution time, compiler/syntax error)

Optimizations: reflexes stat for characters:
The AI script doesn't need to run every game frame, just often enough to change behavior type: Seek, flee, attack, seek and attack, follow waypoint path. So a reflexes stat could determine how often the AI script is called for a character. (should be higher for thieves for dodging projectiles.

You need to login to create posts in this thread.



Forums system (C) 1999-2023 by James Bunting.

Terms of Use