Skip to main content
GameDev.net gamedev.net
🔒 Locked 🤖 Godot

Asking for different stuff: Tutorial, VirtualMachine Seperation

Started by arithma Jan 21, 2007 at 3:54 AM 3 replies 1.2k views
Original Post
arithma
arithma
I have been skimming briefly through the source code of the AngelScript Engine, and I really like it: There is so much to learn! May I ask you to add the following to your TODO list? - Make the bytecode machine a totally different project to enable others to develop other script languages aswell that run on the same virtual machine. - Write a constructive tutorial on how to create your own scripting language (I am ready, and am sure others are too, to pay well over $40 for this)... That would be all for now.. :) PS: I have tried to contribute to the project but am overwhelmed by its scale, so I thought if I had a little experience in designing a small language, I would be ready to contribute to the BIG project.
WitchLord
WitchLord
Quote:

- Make the bytecode machine a totally different project to enable others to develop other script languages aswell that run on the same virtual machine.


That's something that I've been thinking about before. At least in such a way that the compiler is separated from the virtual machine. I'll see what I can do about this in the future.

Quote:

- Write a constructive tutorial on how to create your own scripting language (I am ready, and am sure others are too, to pay well over $40 for this)...


I have thought about writing a tutorial on this, but I'm not a very good writer (as you can probably see from the manual). Perhaps I'll give it a try some day. I can give a few tips already though:

1) Set up your end goals, but try to get something working as quickly as possible, and then improve upon it in iterative steps. It's so much more fun to work on something that is working and you get feedback from other users.

2) Don't use static type for variable declarations. It is so much easier with dynamically typed variables.

3) Don't try to call application registered functions using native calling conventions. It's not so difficult to get to work on your target platform, but to make it work in a perfect cross-platform way is extremely difficult (unless you have access to all platforms).

4) Don't allow function overridding. It is much easier to simply define the function by it's name, than having to keep track of all parameters and return types as well.

5) Don't be over-ambitious. I've been working on AngelScript for almost 4 years now and it is still a long way from being completed.

If I were to start working on a new scripting library today, these are some of the things I would follow.

Regards,
Andreas
AngelCode.com - game development and more - Reference DB - game developer references
AngelScript - free scripting library - BMFont - free bitmap font generator - <a href="http://www.angelcode.com/tower" rel
GameEngineer_gi
GameEngineer_gi
Quote:

- Write a constructive tutorial on how to create your own scripting language (I am ready, and am sure others are too, to pay well over $40 for this)...


Hey arithma,
I've been reading through "Game Scripting Mastery" not so that I can write one for myself but mainly so that I can understand scripting better. Anyway, the author steps you through writing your own scripting virtual machine and language. You might find this read interesting. It was published in 2003 so it's still not too old.

Regards,
Steve
Dentoid
Dentoid
Quote:
Original post by WitchLord
2) Don't use static type for variable declarations. It is so much easier with dynamically typed variables.


Great that you didn't follow this yourself. The strong typing is one thing I love with AngelScript. :)
WitchLord
WitchLord
Yes, I know, and there's no way I'm going change that now. But there are times when I curse myself for doing it this way. ;) It would have been so much simpler without it.
AngelCode.com - game development and more - Reference DB - game developer references
AngelScript - free scripting library - BMFont - free bitmap font generator - <a href="http://www.angelcode.com/tower" rel

Topic Locked

This topic has been locked by a moderator. New replies are not allowed.

Sign in to reply to this topic.