Unity4d

2016/03/19

shibuya.d

自己紹介

  • @__pandaman64__
  • 大学2年生
  • D言語初心者です

Unity4d

動機

( `・ω・) < D言語くんを射出するゲームつくった!!

何で作ったの? > (´<_`  )

( `・ω・) < Unityです

(D言語じゃないのか・・・) > (´<_`  )

( ´・ω・) ・・・

動機

D言語でゲームを作りたい!!!

全力で楽したい!!!

Unity4d

Unityとは?

  • .NETベースのゲームエンジン
  • マルチプラットフォーム
  • 小規模なら無料で使える
  • 開発環境がついてくる
  • 基本的にはC# or JavaScriptで開発

D言語をUnityで使うぞ!

Unityの仕組み

CIL(共通中間言語)

C#

JavaScript

IL Library

(.NET標準,Unity)

 

JIT

AOT

Unityの仕組み

CIL(共通中間言語)

C#

JavaScript

IL Library

(.NET標準,Unity)

 

JIT

AOT

_人人人人人人人人_
> 突然のD言語 <
 ̄Y^Y^Y^Y^Y^Y^Y ̄

やったこと

  • D言語→CIL
    • すでに実装があった
    • 最終更新が2009年!だけど気にせずコンパイル
    • コンパイルエラーを修正
      • alignofが予約語になった
      • stdint.hのワークアラウンドが古かった
      • 浮動小数点のワークアラウンドが古かった

やったこと

  • ライブラリのヘッダをつくる
    • .NETの名前空間ごとにモジュール(ファイル)つくる
    • .NET Assemblyから宣言を抜き出す
    • クラス・メソッド・フィールドを宣言
    • 面倒そうないくつかの型は無視
      • ジェネリクス
      • outパラメータ
    • .NETのObject型とDのobject型の違いでハマった

やったこと

  • ビルド
    • コンパイラの出力がバグってるので後処理
    • バッチファイル書いた
  • Qiitaの記事で動くまでの試行錯誤書いた

デモ

 

できたこと

  • CILコードの生成
  • 標準ライブラリ・Unity用のヘッダを生成した
  • Unityの機能をD言語から呼び出した

できなかったこと

  • まともなプログラムが書けない
    • 配列が使えない
    • (.NETの型で)四則演算できない
    • Phobosが使えない
  • DMDのバージョンが古い

名前の由来

Unity3d + D言語

Unity4d

名前の由来

Unity3d + D言語

Unity for D

shibuya.d

By pandaman64

shibuya.d

  • 1,217