<?xml version="1.0" encoding="UTF-8"?><rss
version="2.0"
xmlns:content="http://purl.org/rss/1.0/modules/content/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:atom="http://www.w3.org/2005/Atom"
xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
> <channel><title>Comments on: Selecting a scripting engine &#8211; Part 3.</title> <atom:link href="http://blog.susheelspace.com/?feed=rss2&#038;p=88" rel="self" type="application/rss+xml" /><link>http://blog.susheelspace.com/?p=88&amp;utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=selecting-a-scripting-engine-part-3</link> <description>The place where I write &#34;things&#34;.</description> <lastBuildDate>Wed, 25 Aug 2010 11:15:21 +0000</lastBuildDate> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <generator>http://wordpress.org/?v=3.0.1</generator> <item><title>By: susheel</title><link>http://blog.susheelspace.com/?p=88&#038;cpage=1#comment-197</link> <dc:creator>susheel</dc:creator> <pubDate>Tue, 06 May 2008 06:05:32 +0000</pubDate> <guid
isPermaLink="false">http://blog.susheelspace.com/?p=88#comment-197</guid> <description>@Marius
Squirrel is a good embeddable language and it will do a great job at exporting simple classes and functions. I am still experimenting it, quite a bit actually, and most of the times it does get the job done. However I am not so sure if embedding it in a full production project with large amount of classes having a lot of interdependencies is all that trivial. I can give you an example, our engine heavily depends on classes, class factories and interfaces/abstract classes. Relationships between existing classes must be preserved and carried over from the engine to anything that has to be built on top (eg. a game). By design the engine structure is abstracted to such a degree that &lt;strong&gt;any&lt;/strong&gt; future game development via the engine &lt;strong&gt;will&lt;/strong&gt; involve inheritance/aggregation/composition across the embeddable language and C++. It&#039;s not to say that Squirrel can&#039;t achieve that. I know it can, it&#039;s just that there is a lot of hard work involved and at the end of the day it&#039;s code; code that has to be maintained by someone. When I talk of Py++ and GCC-XML I am talking about offloading some of the work that a programmer would otherwise do to an automatic program, or at least a partially automatic one that will probably require only a fraction of effort needed to embed squirrel. To be fair though I have found Squirrel to be better and more intuitive than Python and I stand by my statement that had something like Py++ existed for Squirrel, it would have been my choice hands down!</description> <content:encoded><![CDATA[<p>@Marius<br
/> Squirrel is a good embeddable language and it will do a great job at exporting simple classes and functions. I am still experimenting it, quite a bit actually, and most of the times it does get the job done. However I am not so sure if embedding it in a full production project with large amount of classes having a lot of interdependencies is all that trivial. I can give you an example, our engine heavily depends on classes, class factories and interfaces/abstract classes. Relationships between existing classes must be preserved and carried over from the engine to anything that has to be built on top (eg. a game). By design the engine structure is abstracted to such a degree that <strong>any</strong> future game development via the engine <strong>will</strong> involve inheritance/aggregation/composition across the embeddable language and C++. It&#8217;s not to say that Squirrel can&#8217;t achieve that. I know it can, it&#8217;s just that there is a lot of hard work involved and at the end of the day it&#8217;s code; code that has to be maintained by someone. When I talk of Py++ and GCC-XML I am talking about offloading some of the work that a programmer would otherwise do to an automatic program, or at least a partially automatic one that will probably require only a fraction of effort needed to embed squirrel. To be fair though I have found Squirrel to be better and more intuitive than Python and I stand by my statement that had something like Py++ existed for Squirrel, it would have been my choice hands down!</p> ]]></content:encoded> </item> <item><title>By: Marius</title><link>http://blog.susheelspace.com/?p=88&#038;cpage=1#comment-196</link> <dc:creator>Marius</dc:creator> <pubDate>Mon, 05 May 2008 21:28:43 +0000</pubDate> <guid
isPermaLink="false">http://blog.susheelspace.com/?p=88#comment-196</guid> <description>I am a fun of Squirrel:. Contrary, I found Squirrel: easy to embed using SQPlus than any other, it might be &#039;couse I spent some time on it.
Embedding goes something like;
/C++ code:/----------------------------------------
#include &quot;sqplus.h&quot;
#pragma comment(lib, &quot;sqstdlib.lib&quot;)
#pragma comment(lib, &quot;squirrel.lib&quot;)
#pragma comment(lib, &quot;sqplus.lib&quot;)class Test
{
public:
void CalledFromScript(const char* s,long k){
print (s);
}
};void main()
{
SQClassDef(&quot;Test&quot;).func(&amp;Test::CalledFromScript,&quot;
CalledFromScript&quot;);
SquirrelVM::Init();
SquirrelObject test = SquirrelVM::CompileScript(_SC(&quot;test.sq&quot;));
SquirrelVM::RunScript(test);
SquirrelFunction  ScriptFunction(&quot;ScriptFunction&quot;);
Test theT;
ScriptFunction(&amp;theT, &quot;pass_back&quot;);
SquirrelVM::Shutdown();
}
/test.sq SQ code:/----------------------------------------
function ScriptFunction(t, str)
{
t.CalledFromScript(str, 100);
}</description> <content:encoded><![CDATA[<p>I am a fun of Squirrel:. Contrary, I found Squirrel: easy to embed using SQPlus than any other, it might be &#8216;couse I spent some time on it.<br
/> Embedding goes something like;<br
/> /C++ code:/&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br
/> #include &#8220;sqplus.h&#8221;<br
/> #pragma comment(lib, &#8220;sqstdlib.lib&#8221;)<br
/> #pragma comment(lib, &#8220;squirrel.lib&#8221;)<br
/> #pragma comment(lib, &#8220;sqplus.lib&#8221;)</p><p>class Test<br
/> {<br
/> public:<br
/> void CalledFromScript(const char* s,long k){<br
/> print (s);<br
/> }<br
/> };</p><p>void main()<br
/> {<br
/> SQClassDef(&#8220;Test&#8221;).func(&amp;Test::CalledFromScript,&#8221;<br
/> CalledFromScript&#8221;);<br
/> SquirrelVM::Init();<br
/> SquirrelObject test = SquirrelVM::CompileScript(_SC(&#8220;test.sq&#8221;));<br
/> SquirrelVM::RunScript(test);<br
/> SquirrelFunction  ScriptFunction(&#8220;ScriptFunction&#8221;);<br
/> Test theT;<br
/> ScriptFunction(&amp;theT, &#8220;pass_back&#8221;);<br
/> SquirrelVM::Shutdown();<br
/> }<br
/> /test.sq SQ code:/&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br
/> function ScriptFunction(t, str)<br
/> {<br
/> t.CalledFromScript(str, 100);<br
/> }</p> ]]></content:encoded> </item> <item><title>By: susheel</title><link>http://blog.susheelspace.com/?p=88&#038;cpage=1#comment-37</link> <dc:creator>susheel</dc:creator> <pubDate>Wed, 21 Nov 2007 08:43:38 +0000</pubDate> <guid
isPermaLink="false">http://blog.susheelspace.com/?p=88#comment-37</guid> <description>Working with Makefiles can be a nightmare. I used to work with them when I was in Geometric working on a cross-platform Qt related project, so I pretty much cringe when anyone mentions Makefiles. We worked with Visual Studio and had to be extra careful so as not the break the build. The project also had some Java and Python bindings done via SWIG, but I don&#039;t exactly know how it was handled in the build script. The client had kept that information confidential. Too bad :(.The engine and the game is currently being built on Windows platform using the express edition of Visual C++ and, no I don&#039;t have a build system as yet. For now it&#039;s click and build ;). I am however confident that the system can be ported across platforms without a lot of effort. I was thinking of SCons (&lt;a href=&quot;http://www.scons.org/&quot; rel=&quot;nofollow&quot;&gt;http://www.scons.org/&lt;/a&gt;) for the job, but I haven&#039;t used it as yet. MPC seems to be an interesting concept, hadn&#039;t seen it before.The idea of having a tool to generate bindings that can integrate with a build system seems almost too good to be true. I am not saying it&#039;s not possible but I am a bit skeptical. Mind you I haven&#039;t done enough research on Py++.</description> <content:encoded><![CDATA[<p>Working with Makefiles can be a nightmare. I used to work with them when I was in Geometric working on a cross-platform Qt related project, so I pretty much cringe when anyone mentions Makefiles. We worked with Visual Studio and had to be extra careful so as not the break the build. The project also had some Java and Python bindings done via SWIG, but I don&#8217;t exactly know how it was handled in the build script. The client had kept that information confidential. Too bad <img
src='http://blog.susheelspace.com/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> .</p><p>The engine and the game is currently being built on Windows platform using the express edition of Visual C++ and, no I don&#8217;t have a build system as yet. For now it&#8217;s click and build <img
src='http://blog.susheelspace.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> . I am however confident that the system can be ported across platforms without a lot of effort. I was thinking of SCons (<a
href="http://www.scons.org/" rel="nofollow">http://www.scons.org/</a>) for the job, but I haven&#8217;t used it as yet. MPC seems to be an interesting concept, hadn&#8217;t seen it before.</p><p>The idea of having a tool to generate bindings that can integrate with a build system seems almost too good to be true. I am not saying it&#8217;s not possible but I am a bit skeptical. Mind you I haven&#8217;t done enough research on Py++.</p> ]]></content:encoded> </item> <item><title>By: Sandeep K</title><link>http://blog.susheelspace.com/?p=88&#038;cpage=1#comment-36</link> <dc:creator>Sandeep K</dc:creator> <pubDate>Wed, 21 Nov 2007 07:46:37 +0000</pubDate> <guid
isPermaLink="false">http://blog.susheelspace.com/?p=88#comment-36</guid> <description>It wasn&#039;t for bindings. I was experimenting with automatically injecting source code for function logging, easier debugging etc for an embedded systems project.You should probably generate the python bindings as part of your build process - re-generate them every time the related files are modified.For your game how do you maintain the build scripts for different platforms? Do they use the same tool chain? When using different tool chains one commonly violates the DRY principle.  I came across http://www.ociweb.com/products/mpc which can generate build files for various tool chains, but haven&#039;t been able to spend any time on it.</description> <content:encoded><![CDATA[<p>It wasn&#8217;t for bindings. I was experimenting with automatically injecting source code for function logging, easier debugging etc for an embedded systems project.</p><p>You should probably generate the python bindings as part of your build process &#8211; re-generate them every time the related files are modified.</p><p>For your game how do you maintain the build scripts for different platforms? Do they use the same tool chain? When using different tool chains one commonly violates the DRY principle.  I came across <a
href="http://www.ociweb.com/products/mpc" rel="nofollow">http://www.ociweb.com/products/mpc</a> which can generate build files for various tool chains, but haven&#8217;t been able to spend any time on it.</p> ]]></content:encoded> </item> <item><title>By: susheel</title><link>http://blog.susheelspace.com/?p=88&#038;cpage=1#comment-35</link> <dc:creator>susheel</dc:creator> <pubDate>Tue, 20 Nov 2007 15:07:14 +0000</pubDate> <guid
isPermaLink="false">http://blog.susheelspace.com/?p=88#comment-35</guid> <description>Was it for bindings or was the project something different? Py++ does depend on pygccxml.I used the GCC-XML installer they have with the Py++ project downloads. It&#039;s a little bit unconventional install script I agree but the main thing is you will have to do this once. Then maybe use a build script to just generate python bindings on a nightly build or something like that. Beats writing binding code every time, not to mention the bugs that may be introduced by the programmer.I am not sure if it would as easy as that, but I kinda hope it will be. Need to do some more research on that.</description> <content:encoded><![CDATA[<p>Was it for bindings or was the project something different? Py++ does depend on pygccxml.</p><p>I used the GCC-XML installer they have with the Py++ project downloads. It&#8217;s a little bit unconventional install script I agree but the main thing is you will have to do this once. Then maybe use a build script to just generate python bindings on a nightly build or something like that. Beats writing binding code every time, not to mention the bugs that may be introduced by the programmer.</p><p>I am not sure if it would as easy as that, but I kinda hope it will be. Need to do some more research on that.</p> ]]></content:encoded> </item> <item><title>By: Sandeep K</title><link>http://blog.susheelspace.com/?p=88&#038;cpage=1#comment-34</link> <dc:creator>Sandeep K</dc:creator> <pubDate>Tue, 20 Nov 2007 06:34:09 +0000</pubDate> <guid
isPermaLink="false">http://blog.susheelspace.com/?p=88#comment-34</guid> <description>I&#039;ve used pygccxml for parsing c++ code, it was a lot of fun to use :) though installing GCC-XML was a bit painful.Looking forward to the next in the series.</description> <content:encoded><![CDATA[<p>I&#8217;ve used pygccxml for parsing c++ code, it was a lot of fun to use <img
src='http://blog.susheelspace.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> though installing GCC-XML was a bit painful.</p><p>Looking forward to the next in the series.</p> ]]></content:encoded> </item> </channel> </rss>
<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk
Page Caching using disk (user agent is rejected)

Served from: blog.susheelspace.com @ 2010-09-05 03:40:50 -->