Coder Social home page Coder Social logo

wyteengine's Issues

開始方法

現状,始め方がわかりにくいので,開始方法のドキュメントを作る

I18n Support

国際化および地域化のサポートを早急に行いたい。

C# コードにおいては、キーを翻訳済み文字列に変換するメソッドを追加したい。また、Beat Ballで利用していたような言語ファイルを利用したい。しかしながら、スクリプト内のメッセージや、画像として表現されたテキスト(ステータス表示など)のことも考えて、ファイル自体をロケールで振り分けられる仕組みがあるとなお良い。しかし、それを実装するためには既存システムに大きな変更を加えるべきと考えられる。

NPC AI

歩行や攻撃などの思考ルーチンを実装できるAIシステム

Wyte Engineでは,ビヘイビアツリーを採用する.

Wyte Modules API

現在,マネージャーやコントローラーといった,Wyte Engineの機能実現のためのモジュールは,それぞれ独立したビヘイビアとして宣言されている.

しかしながら,この仕様は,各モジュール間のセーフな連携を実現するにはそこそこ都合が悪い.

Novel Scripting API は,現在 EventController クラスにまとめて定義されているが,将来的に各モジュールに記述を分散させる予定である.

Unity のビヘイビアクラスは,読み込み順があまり保証されない.現行の設計では,全てのAPIが定義される前にイベントが実行されてしまうこともありえるため,予期しないエラーの原因となるだろう.

私は,思い切って WyteModuleBase という, MonoBehaviour を継承しないクラスを,モジュールのベースクラスとすることを決意した.

GUIのオン/オフ

C#,Novel共に,ゲーム時のUIをオフにできたら便利な事もありえる.

ゲームプレイのUIのオンオフを追加する.

Novel

+fade out, 0
+gui off
+txtset a, "�画面がスッキリしたよ!", "top_left", 16, 16, left, white
+nod
+txtmod a, "なんだよ!文句あるのかよ!", left, white
+nod
+txtclr a
+gui on
+fadeasync in, 0.9
:チェッ!覚えてろ!

C#

void Start()
{
    Wyte.Gui = false;
}

イベント発動のUI

モバイル端末でのイベント発動のUIをもっとわかりやすくする.

トーク可能なときに,ボタンが出現する感じ.

Shopping API

ゲームにありがちなショップ機能の追加.

ShopManager

各マネージャークラスの要領で,IDとショップの紐付けを行い管理するショップマネージャーを追加する.
文字列とショップアセット(後述)のマップを持つ.

ShopAsset

ショップの情報を持つオブジェクトアセット.ProductAssetのリストを持つ.

ProductAsset

商品の情報を持つアセット.継承可能で,購入時の処理をポリモーフィズムを用いて実装できる(単なるアイテムから,イベントの実行まで幅広く対応できるように)

Text Drawing API

スプライトのように,画面上に自由にテキストを描画するためのAPIが必要だ.

実装

TextManager という感じの管理クラスを作成し,APIを通してアクセス可能にする.

API

Novel Scriptでテキスト描画できるようにする

// +txtset <id>, <text>, [location_mode = center], [x = 0], [y = 0], 
+txtset hello, "Hello, world!", "middle_center", 0, 0, "center"
// +txtofs <id>, <x>, <y>, [location_mode], [linear_interpolation_time = 0]
+txtofs hello, 16, 16, "top_left", 0.8
// +txtmod <id>, [text], [text_alignment], [color]
+txtmod hello, "Revolution!"
// +txtclr <id>
+txtclr hello

Documentation

文書化を進めたい.

英語対応どころか,日本語すらドキュメントが未整備.

ボス体力表示

特定のEntityにバインディングするか,またはシンプルに値を表示できるバーを追加する

// show a boss bar
+bossbarshow
// bind the entity named "dragon"
+bossbarbind dragon
// unbind the entity
+bossbarunbind dragon
// simply set a value
+bossbarsetmax 100
+bossbarsetvalue 10
// hide a boss bar
+bossbarhide

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.