Re: To use a scripting language or not to use a scripting language?

2017-01-10 Thread solidstate1991 via Digitalmars-d

On Friday, 6 January 2017 at 21:08:46 UTC, Jordan Wilson wrote:
+1 for LuaD. I'm working on a Dominion simulator (Dominion is a 
deck building card game), and was able to move all card logic 
into run time data. It was cool, but eventually had to go back 
to compiling the logic for performance reasons.


It seems I'm going with it, at worst I'll make my own fork and 
add some custom features right into the language, plus let others 
to add their own custom scripting language (Basic, Python, etc.) 
support later on.


Re: To use a scripting language or not to use a scripting language?

2017-01-06 Thread Jordan Wilson via Digitalmars-d

On Friday, 6 January 2017 at 18:31:58 UTC, solidstate1991 wrote:

On Friday, 6 January 2017 at 12:42:07 UTC, Adam D. Ruppe wrote:

On Friday, 6 January 2017 at 09:18:16 UTC, Chris Wright wrote:
Anyway. Lua would be a reasonable option to integrate. I 
don't think there's a high-level wrapper for it in D.


check out LuaD:

https://github.com/JakobOvrum/LuaD


I also made my own scripting language which is nice because it 
is self-contained (you can compile from scratch with just two 
files), and super easy to integrate, but it is also slow and 
buggy compared to Lua, so for something serious I'd say take a 
gander at that luad link.


I'm going to check Lua out for more once I get a bit more free 
time from work and studying. If it seems good enough, I might 
even add an alternative option for it if I decide to write my 
own scripting language. I already implemented an event-handling 
system in my engine for ease of use on input devices and the 
GUI called Concrete (probably I'm going to make a real portable 
framework on it as it looks really cool and retro).


+1 for LuaD. I'm working on a Dominion simulator (Dominion is a 
deck building card game), and was able to move all card logic 
into run time data. It was cool, but eventually had to go back to 
compiling the logic for performance reasons.


Re: To use a scripting language or not to use a scripting language?

2017-01-06 Thread solidstate1991 via Digitalmars-d

On Friday, 6 January 2017 at 14:49:10 UTC, Ivan Kazmenko wrote:
On Friday, 6 January 2017 at 14:19:34 UTC, Anton Pastukhov 
wrote:
As a game developer I can recommend to use Lua. This language 
is tradtionally used in many games/game engines.


Ironically, one of D's declared selling points is, according 
to https://dlang.org/overview.html:



Who is D For?
Programmers who write half their application in scripting 
languages the other half in native langauges to speed up the 
bottlenecks. D has productivity features that make using such 
hybrid approaches unnecessary.


The use case here is arguably different.  In the ideal case, 
game logic scripts are editable by gamers which are not 
necessarily programmers.  Chris Wright has already given a 
bunch of other reasons to use a self-contained, simple, 
domain-specific, and limited language in such a setting.


Perhaps D will some day be usable in a language-as-a-library 
setting which would make it possible to use for game logic 
scripts, too.  But considering the points above, it still won't 
necessarily be a good idea.


Some of the top games use Python (Civilization IV) and Lua 
(World of Warcraft, Far Cry, SimCity 4) for scripting.


Ivan Kazmenko.


I second this. My engine already have some scripting (although 
currently untested) via XML for its map format, to make maps more 
portable they have a script to load tiles and sprites on command, 
this also enable modding to a certain degree. More scripting 
would enable even deeper levels of modding without hacking the 
executable file.


Re: To use a scripting language or not to use a scripting language?

2017-01-06 Thread solidstate1991 via Digitalmars-d

On Friday, 6 January 2017 at 12:42:07 UTC, Adam D. Ruppe wrote:

On Friday, 6 January 2017 at 09:18:16 UTC, Chris Wright wrote:
Anyway. Lua would be a reasonable option to integrate. I don't 
think there's a high-level wrapper for it in D.


check out LuaD:

https://github.com/JakobOvrum/LuaD


I also made my own scripting language which is nice because it 
is self-contained (you can compile from scratch with just two 
files), and super easy to integrate, but it is also slow and 
buggy compared to Lua, so for something serious I'd say take a 
gander at that luad link.


I'm going to check Lua out for more once I get a bit more free 
time from work and studying. If it seems good enough, I might 
even add an alternative option for it if I decide to write my own 
scripting language. I already implemented an event-handling 
system in my engine for ease of use on input devices and the GUI 
called Concrete (probably I'm going to make a real portable 
framework on it as it looks really cool and retro).


Re: To use a scripting language or not to use a scripting language?

2017-01-06 Thread Ivan Kazmenko via Digitalmars-d

On Friday, 6 January 2017 at 14:19:34 UTC, Anton Pastukhov wrote:
As a game developer I can recommend to use Lua. This language 
is tradtionally used in many games/game engines.


Ironically, one of D's declared selling points is, according to 
https://dlang.org/overview.html:



Who is D For?
Programmers who write half their application in scripting 
languages the other half in native langauges to speed up the 
bottlenecks. D has productivity features that make using such 
hybrid approaches unnecessary.


The use case here is arguably different.  In the ideal case, game 
logic scripts are editable by gamers which are not necessarily 
programmers.  Chris Wright has already given a bunch of other 
reasons to use a self-contained, simple, domain-specific, and 
limited language in such a setting.


Perhaps D will some day be usable in a language-as-a-library 
setting which would make it possible to use for game logic 
scripts, too.  But considering the points above, it still won't 
necessarily be a good idea.


Some of the top games use Python (Civilization IV) and Lua (World 
of Warcraft, Far Cry, SimCity 4) for scripting.


Ivan Kazmenko.



Re: To use a scripting language or not to use a scripting language?

2017-01-06 Thread Anton Pastukhov via Digitalmars-d
As a game developer I can recommend to use Lua. This language 
is tradtionally used in many games/game engines.


Ironically, one of D's declared selling points is, according to 
https://dlang.org/overview.html:



Who is D For?
Programmers who write half their application in scripting 
languages the other half in native langauges to speed up the 
bottlenecks. D has productivity features that make using such 
hybrid approaches unnecessary.


Re: To use a scripting language or not to use a scripting language?

2017-01-06 Thread Adam D. Ruppe via Digitalmars-d

On Friday, 6 January 2017 at 09:18:16 UTC, Chris Wright wrote:
Anyway. Lua would be a reasonable option to integrate. I don't 
think there's a high-level wrapper for it in D.


check out LuaD:

https://github.com/JakobOvrum/LuaD


I also made my own scripting language which is nice because it is 
self-contained (you can compile from scratch with just two 
files), and super easy to integrate, but it is also slow and 
buggy compared to Lua, so for something serious I'd say take a 
gander at that luad link.


Re: To use a scripting language or not to use a scripting language?

2017-01-06 Thread Jacob Carlborg via Digitalmars-d

On 2017-01-06 10:18, Chris Wright wrote:


Lua would be a reasonable option to integrate. I don't think
there's a high-level wrapper for it in D.


I don't know if it's a high-level wrapper but there's LuaD [1].

[1] http://code.dlang.org/packages/luad

--
/Jacob Carlborg


Re: To use a scripting language or not to use a scripting language?

2017-01-06 Thread Russel Winder via Digitalmars-d
On Thu, 2017-01-05 at 22:37 +, solidstate1991 via Digitalmars-d
wrote:
> I'm thinking on possibly implementing a scripting language for my 
> game engine for general purpose and AI. At one point I was 
> thinking on making a scripting language based on D with 
> ECMAScript and Prolog/Planner influences.
> 

The standard dynamic programming languages (scripting languages are
something completely different :-) for this sort of "dynamic stuff
inside static stuff" are:

– Python
– Lua
– Lisp

Choice tends to be fashion, prejudice, tribe driven. In the end they
can all work fine and do the job required.

-- 
Russel.
=
Dr Russel Winder  t: +44 20 7585 2200   voip: sip:russel.win...@ekiga.net
41 Buckmaster Roadm: +44 7770 465 077   xmpp: rus...@winder.org.uk
London SW11 1EN, UK   w: www.russel.org.uk  skype: russel_winder

signature.asc
Description: This is a digitally signed message part


Re: To use a scripting language or not to use a scripting language?

2017-01-06 Thread Seb via Digitalmars-d

On Friday, 6 January 2017 at 09:18:16 UTC, Chris Wright wrote:
There's also  DMDScript, which didn't compile on my system last 
time I tried.


If anyone is too lazy too search for it:

https://github.com/DigitalMars/DMDScript


Re: To use a scripting language or not to use a scripting language?

2017-01-06 Thread pineapple via Digitalmars-d

On Friday, 6 January 2017 at 09:54:32 UTC, Dmitry wrote:
On Thursday, 5 January 2017 at 22:37:21 UTC, solidstate1991 
wrote:
I'm thinking on possibly implementing a scripting language for 
my game engine for general purpose and AI. At one point I was 
thinking on making a scripting language based on D with 
ECMAScript and Prolog/Planner influences.
As a game developer I can recommend to use Lua. This language 
is tradtionally used in many games/game engines.


Thirded. Lua is relatively easy to implement support for, is not 
too bad a language, and a lot of people are already familiar with 
it.


Re: To use a scripting language or not to use a scripting language?

2017-01-06 Thread Dmitry via Digitalmars-d

On Thursday, 5 January 2017 at 22:37:21 UTC, solidstate1991 wrote:
I'm thinking on possibly implementing a scripting language for 
my game engine for general purpose and AI. At one point I was 
thinking on making a scripting language based on D with 
ECMAScript and Prolog/Planner influences.
As a game developer I can recommend to use Lua. This language is 
tradtionally used in many games/game engines.


Re: To use a scripting language or not to use a scripting language?

2017-01-06 Thread Chris Wright via Digitalmars-d
There are a couple reasons to make a scripting language.

One is so you can treat code as data. If you have an asset pipeline, it 
might be handy to treat scripts as assets. If you have a scene editor, 
it's straightforward to plug in another type of asset instead of a weird 
link to a named function that has to be registered and tracked 
separately. Scripts are often tightly tied to levels, and by making them 
normal assets, you ensure that they can be versioned with their levels.

Another is speed of development. Scripting languages tend to be easier to 
use (with a greater runtime cost in many cases). You don't have to stop 
the game, recompile everything, and restart -- sometimes you can just 
reload it on the fly.

Another is to limit what you can do. Maybe you don't fully trust the 
people writing the scripts and want to prevent them from freely reading 
from the filesystem, or opening sockets, or whatever. There are a 
thousand and one ways to mess up any program, but you can close off a 
bunch of them by offering a limited scripting interface.

Anyway. Lua would be a reasonable option to integrate. I don't think 
there's a high-level wrapper for it in D. There's also DMDScript, which 
didn't compile on my system last time I tried. Honorable mention to MiniD 
for those old enough to remember it.


To use a scripting language or not to use a scripting language?

2017-01-05 Thread solidstate1991 via Digitalmars-d
I'm thinking on possibly implementing a scripting language for my 
game engine for general purpose and AI. At one point I was 
thinking on making a scripting language based on D with 
ECMAScript and Prolog/Planner influences.


Basic principles for the planned scripting language:
 - Adding the possibility for logic programming, mainly for 
decision making engines, could be altered on the fly via code on 
the fly

 - Built-in support for fuzzy logic
 - Scripts that run either on step or time basis, intervals can 
be altered by code on the fly
 - Running from a virtual machine either directly from the source 
code or from bytecode

 - Ability to call functions through the virtual machine
 - Portability with certain compromises regarding to the function 
calls
 - And making this available for other projects, also making it 
optional for the engine as it's not crucial


However I was also thinking on why not just put a few helpers 
into the engine's code for scripting and the AI. I already 
planning to create an automated animator for the engine to 
replace sprites if a certain time elapses (uses milliseconds as 
its timebase to make it independent from refresh-rate), I don't 
think some helpers for creating a decision making engine in D 
would be much harder (much easier than creating a new language).