SHEngineその4

虫取り。それといろいろ。
エンジンにLuaを組み込んでます。Pythonでも良かったけども、パフォーマンス的にLuaのが良いだろうとの判断です。
なぜ対抗でPythonかというとC++で組んでるのでBoostでPythonが楽に使えるようになるライブラリがあった記憶があったからです。まだ触ってないけどね(・ω<;)
既存のエンジンの定石の通りSHEngineにもスクリプト言語を組み込んでみたのですが、実際やってみてわざわざ面倒なことしてまでスクリプト言語を組み込むメリットがわかった気がきました。
少なくとも実践的には変数処理とかでかなり役に立ってます。しかし昨日までSHEngineでのLuaはLua内部変数しか触れない残念な仕様だったので、C++のコアエンジンのゲーム及びシステム変数を取得・代入できるようにしました。
すなわち以下のような処理を行えるように…!


//_script.sh
//↓ゲームグローバル[0](int)に999を代入。
[setgglobal(0,999)]


--LuaScript.lua
--↓ゲームグローバル[0](int)に999を代入。
_V:setgglobal(0,999)


また、変数共有化のメリットはそれだけではなくデバッグ時にも表れます(予定)。
コンソール表示されているのはスクリプトのTracerです。サウンド再生とかシナリオジャンプしたりするとその旨が逐次表示されていきます。
最大のメリットはこの溢れ出るクリエイティブ感だと思います(いうほどか?)。ともあれこれがあるとゲーム作ってる感がしてグッドです。


※ちなみに開発環境はWin7 VC++2012です。以前の環境WinXP VC++2008から移行して半年程ですが、結論としては快適になりました。64bit効果もあるかも知れないがコンパイル速度、インテリセンスともに良くなってますので。
そういえばXPのサポート期限っていつまでだったけなぁ。

カテゴリー: Apps(game), C++, 未分類 パーマリンク

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です