Location: JBPLAY \ Meteor 2 \ General \ M3: new scripting language? Back to Threads |
fuzinavl![]()
![]() 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 ![]() 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
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![]()
![]() 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![]()
![]() 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 ![]() Squirrel: Works easily, embeds via lua-like tables. AngelScript: Works. Don't know why C Examples used strings instead of file loading ![]() You need to login to create posts in this thread. |
James Bunting
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![]()
![]() 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
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![]()
![]() 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![]()
![]() 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
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![]()
![]() 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)
Edited: 06 August 2005 18:03 You need to login to create posts in this thread. |
fuzinavl![]()
![]() 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