🎉 Celebrating 25 Years of GameDev.net! 🎉

Not many can claim 25 years on the Internet! Join us in celebrating this milestone. Learn more about our history, and thank you for being a part of our community!

Asking for different stuff: Tutorial, VirtualMachine Seperation

Started by
3 comments, last by WitchLord 17 years, 5 months ago
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.
[ my blog ]
Advertisement
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 - Tower - free puzzle game

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
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. :)
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 - Tower - free puzzle game

This topic is closed to new replies.

Advertisement