SlideShare a Scribd company logo
1 of 56
Download to read offline
Go言語で
Minecraftっぽいの
gnu
自己紹介
• ID: gnu (発音: /núː/, /gnúː/ )
• KMC1回生
• 副会長
• KMC的活動
• Unity2014
• あんまし活動できてない…
目次
• 概要
• Go言語
• OpenGL
• 作ったやつ
• 質問とか
この講座は?
• GoでOpenGL使ってゲーム作れるライブラリ(パッ
ケージ)Azul3Dなるものを見つけたので使ってみた
• 主な目的はGoに興味を持ってもらうこと
• プログラミングやったことない人にこそGoを知って
もらいたい
目次
• 概要
• Go言語
• OpenGL
• 作ったやつ
• 質問とか
Go言語
• GoはGoogleが開発したプログラミング言語
• システムプログラミングにおける複雑さを解決する
ため生まれた
• とにかくシンプル
• 並列計算、通信を標準サポート
Go使用例
• コンテナ管理ソフトDockerの開発に使われている
• 面白法人カヤックが推してる
http://www.kayac.com/news/2014/07/golang
Goの基本情報
• コンパイル言語
• 強い静的型付け言語
• ガベージコレクション
• C系の構文
• 手続き型
• オブジェクト指向 ※
シンプルすぎるGo言語①
• 可読性、コンパイラ単純化のため
• クラス
• 型の継承
• ジェネリックプログラミング
• オーバーロード
• を廃止
シンプルすぎるGo言語②
• 予約語が少ない
break case chan const
continue default defer else
fallthrough for func go
goto if import interface
map package range return
select struct switch type
var
予約語の数
• 十進basic 18
• Go 25
• python3 33
• ruby 40
• C 44
• Java 50
• swift 61
• C++ 86
Goの実行ファイル
• Goで作った実行ファイル(.exe, .app等)はランタイム
がいらない
• コンパイルするOSと別のOS用の実行ファイルを生
成できる(クロスコンパイル)
• →実行ファイルの配布がめちゃ簡単
Goの型宣言
• CとGoの見た目に分かりやすい違い
// Cの変数宣言
int 変数名 = 100
// Goの変数宣言
var 変数名 int = 200
Goの型宣言
• より直観的にわかりやすくなる
// Goで2つの変数を同時に宣言
var a, b *int
// a,bともにintポインタ型
// Cで同じことをしようとすると
int *a, *b
// int* a, b ではaのみポインタ
複数戻り値
• Goでは複数の値を戻り値に指定できる
file, err := os.Open(“foo.txt”)
• := は変数初期化の略記法(型推論)
エラーハンドリング
• これによりエラー処理が分かりやすく
file, err := os.Open(“foo.txt”)
if err != nil {
// エラー処理を書く
}
defer文
• deferで指定した関数をreturnする時に実行
file, err := os.Open(“foo.txt”)
if err != nil {
// エラー処理を書く
}
defer file.Close() // 全ての処理の後実行
// fileを使った処理を書く
try-catch-finallyに比べて
• ネストが深まらず見やすい
• エラー処理や必須処理を処理本体の近くにまとめ
て書ける
処理内容1
if err != nil {
エラー処理1
}
defer 必ずする処理1
…
処理内容2
if err != nil {
エラー処理2
}
defer 必ずする処理2
…
try{
処理内容1
処理内容2
…
}catch(エラーA){
エラー処理A
}catch(エラーB){
エラー処理B
}…
…
}finally{
必ずする処理1
必ずする処理2
…
}
並列処理
• シンプル、直観的にわかる
go someFunc() // 関数someFunc()を並列実行
• これだけで別スレッド(Goルーチン)が立ち上がる
• Goルーチンはかなり軽量なので同時に数十万個
立っていてもへっちゃら
チャネル
• スレッド間の情報のやりとりに使う
ch := make(chan string)
go func(){ // 関数を定義と同時に実行
time.Sleep(time.Second) // 1秒待機
ch <- “hoge” // chに送信
}() // 紫色の部分が分岐し並列実行される
str := <- ch // chから受信するまで待機
fmt.Println(str) // “hoge”を表示
WaitGroup
• スレッド間でタイミングを合わせるのに使う
• Add(int)…処理中スレッドの数を増やす
• 自分の処理が終わるまで他スレッドに待ってほしい時
• Done()…処理中スレッドの数を減らす
• 自分の処理が終了した時呼び出す
• Wait()…処理中スレッドの数が0になるまで待つ
• 全ての処理が終わるまで待機
その他
• 他言語でもおなじみのMutexなど
• ただしGo開発チームはより抽象性の高い、理解の
しやすい非同期処理を使うよう勧めている
• 標準パッケージ”sync”にまとまっている
インターフェース
• Goの開発者もお気に入り、Goを強く特徴付ける機
能
• 強力な抽象化によりスクリプト言語のような手軽さ
をもたらす
• Javaなどのインターフェイスとはいろいろ違う
インターフェース
• 特定のタイプのメソッドを持つ型をグループ化して
同じように扱えるようにする
• どういうことかというと…
インターフェースの宣言
type walker interface{
walk() int
// 引数なし、int型を返す関数walk()
}
• メソッド walk() を持つ型をグループ化
• walk()を持つ限りどんな型でもwalker型の変数に
代入できる
• walker型を引数に取る関数にもわたせる
何が嬉しいか
• どんなことをしたいか(どのようなメソッドが必要か)
に合わせてインターフェースを先に作っておく
• あとで仕様を変更してもインターフェースが違いを
吸収してくれる
• コンパイル時にきちんとチェックしてくれるので間
違った型を入れてしまうこともない
目次
• 概要
• Go言語
• OpenGL
• 作ったやつ
• 質問とか
OpenGL
• 自分も全然わかってないのでさらっとだけ
• グラフィック関連ハードウェアに対する命令(API)
のオープンな策定
• Windows、OS X、Unix系OSのほか、OpenGL ESとし
てAndroidやiPhoneにも対応
• 競合としてWindowsが提供するAPI群
DirectX(Direct3D)
OpenGL
• ものっそい簡単に言うと
• 「座標3つ教えてくれたら三角形ポリゴン作るよ!」
• 「画像データ渡してくれたらテクスチャ貼り付ける
よ!」
• みたいな命令を使えるようにしてくれる
OpenGLのバージョン
OpenGL
• 2003年 v1.5
• 2004年 v2.0
• 2008年 v3.0
• 2010年 v4.0
• 最新 v4.5
OpenGL ES
• 2003年 v1.0 (GL v1.3の
サブセット)
• 2004年 v1.1 (v1.5の〃)
• 2007年 v2.0 (v2.0の〃)
• 2012年 v3.0 (-)
• 最新 v3.1
関係ないけど
• 3月3日、次世代OpenGL「Vulkan」が発表
• 肥大化した仕様をシェイプアップ
• 並列計算や計算用API群OpenCLとの連帯を強化
• さらなる高速化をめざす
• OpenGLも開発は継続
https://www.khronos.org/vulkan
目次
• 概要
• Go言語
• OpenGL
• 作ったやつ
• 質問とか
Azul3D
• GoからOpenGLが提供する命令を使えるようにする
• マウス・キーボードの情報取得や音声再生を支援
する
• などの機能を持つゲームエンジン(?)
Azul3DのOpenGL
• なぜか最新バージョンではなくOpenGL2.xに対応
• 曰くOpenGL4.xは対応するデバイスが少ない
• OpenGL2.xでも拡張機能で最新の機能を使える
Azul3DのOpenGL
http://developer.android.com/about/dashboards/index.html
GL ES 2.0
3.0
簡単に導入方法(Windows)
• 公式サイト(英語)見れば載ってるけど
• http://azul3d.org/doc/install
• その1
• Goのインストール
• https://golang.org/dl/
• 普通にインストーラ使うかZIPを解凍
導入方法2
• その2
• gitのインストール
• http://git-scm.com/downloads
• その3
• MinGWのイン(ry
• http://sourceforge.net/projects/tdm-gcc/files/
導入方法3
• その4
• Go、git、MinGWに環境変数を通す
• その5
• go get azul3d.org/example.v1
• ようやく…
サンプルを動かす
• cd %GOPATH%¥src¥azul3d.org¥examples.v1¥azul3
d_triangle
• go run azul3d_triangle.go
• →動いた
Minecraft①
• とりあえず四角の面□をつくる
• GLは四角形ポリゴン対応だけどGL ESは対応して
ない
• →Azul3Dも対応してない
• 三角×2で代用
• 〼
Minecraft②
• 座標の指定はこんな感じ
mesh := gfx.NewMesh()
mesh.Vertices = []gfx.Vec3{
// top-left
{-1,0,1},{-1,0,-1},{1,0,1},
// bottom-right
{-1,0,-1},{1,0,-1},{1,0,1},
}
Minecraft③
右手系・左手系は変更可能
http://wiki.hsp.moe/小ワザ/座標とピクセル.html
Minecraft④
• ポリゴンの座標とテクスチャ画像の座標を対応さ
せ、貼り付ける
• メッシュは準備ok
Minecraft⑤
• gfx.NewObject()関数でオブジェクトを作成
• メッシュ、テクスチャ、シェーダを割り当てて出来上
がり
• このあたりちょっと面倒
• まとめてやってくれる関数欲しかった
Azul3Dのシェーダ
• OpenGL用シェーディング(陰影の処理)言語GLSL
を用いて定義できる
• →OpenGLの資源を活用できる
Minecraft⑥
• 同じことを6面分やれば立方体の完成
Minecraft
• ブロックの種類が記述された三次元配列のjson形
式ファイルを読み取り一つ一つ立方体を作る関数
を定義
• 見えないところ(立方体と立方体の接している部
分)は作らないようにしてる
実演
実装した機能
• 移動、ジャンプ
• 衝突判定
• ブロックの設置、破壊
ここまでしか出来てないorz
時間があったらやりたいこと
• マウス操作
• プレイヤー表示
• アイテム
• 高速化
Azul3Dの感想
• 最低限の機能しかない感
• モデル読み込み関数や3D物理エンジンbulletを組み込
むらしい
• Goの思想に則った設計になってるのは好印象
• ,err 記法とか
• Goでゲーム/GUIアプリ書きたいなら一考の価値あ
り?
参考文献
• Go言語
• https://golang.org/
• http://golang-jp.org/
• OpenGL
• http://ja.wikipedia.org/wiki/OpenGL
• Azul3D公式
• http://azul3d.org/
目次
• 概要
• Go言語
• OpenGL
• 作ったやつ
• 質問とか
おわり
• ありがとうございました

More Related Content

What's hot

Prometheus入門から運用まで徹底解説
Prometheus入門から運用まで徹底解説Prometheus入門から運用まで徹底解説
Prometheus入門から運用まで徹底解説貴仁 大和屋
 
例外設計における大罪
例外設計における大罪例外設計における大罪
例外設計における大罪Takuto Wada
 
Dockerfile を書くためのベストプラクティス解説編
Dockerfile を書くためのベストプラクティス解説編Dockerfile を書くためのベストプラクティス解説編
Dockerfile を書くためのベストプラクティス解説編Masahito Zembutsu
 
C#とILとネイティブと
C#とILとネイティブとC#とILとネイティブと
C#とILとネイティブと信之 岩永
 
Java ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsugJava ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsugMasatoshi Tada
 
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話JustSystems Corporation
 
GitOpsでKubernetesのManifest管理
GitOpsでKubernetesのManifest管理GitOpsでKubernetesのManifest管理
GitOpsでKubernetesのManifest管理Shinya Sasaki
 
Test Yourself - テストを書くと何がどう変わるか
Test Yourself - テストを書くと何がどう変わるかTest Yourself - テストを書くと何がどう変わるか
Test Yourself - テストを書くと何がどう変わるかTakuto Wada
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Kohei Tokunaga
 
オブジェクト指向できていますか?
オブジェクト指向できていますか?オブジェクト指向できていますか?
オブジェクト指向できていますか?Moriharu Ohzu
 
メルカリ・ソウゾウでは どうGoを活用しているのか?
メルカリ・ソウゾウでは どうGoを活用しているのか?メルカリ・ソウゾウでは どうGoを活用しているのか?
メルカリ・ソウゾウでは どうGoを活用しているのか?Takuya Ueda
 
DeNAの大規模ライブ配信基盤を支える技術
DeNAの大規模ライブ配信基盤を支える技術DeNAの大規模ライブ配信基盤を支える技術
DeNAの大規模ライブ配信基盤を支える技術DeNA
 
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」Takuto Wada
 
凡人の凡人による凡人のためのデザインパターン第一幕 Public
凡人の凡人による凡人のためのデザインパターン第一幕 Public凡人の凡人による凡人のためのデザインパターン第一幕 Public
凡人の凡人による凡人のためのデザインパターン第一幕 Publicbonjin6770 Kurosawa
 
イベント・ソーシングを知る
イベント・ソーシングを知るイベント・ソーシングを知る
イベント・ソーシングを知るShuhei Fujita
 
OSSを利用したプロジェクト管理
OSSを利用したプロジェクト管理OSSを利用したプロジェクト管理
OSSを利用したプロジェクト管理Tadashi Miyazato
 
マイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチマイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチ増田 亨
 
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!mosa siru
 

What's hot (20)

Prometheus入門から運用まで徹底解説
Prometheus入門から運用まで徹底解説Prometheus入門から運用まで徹底解説
Prometheus入門から運用まで徹底解説
 
例外設計における大罪
例外設計における大罪例外設計における大罪
例外設計における大罪
 
Dockerfile を書くためのベストプラクティス解説編
Dockerfile を書くためのベストプラクティス解説編Dockerfile を書くためのベストプラクティス解説編
Dockerfile を書くためのベストプラクティス解説編
 
C#とILとネイティブと
C#とILとネイティブとC#とILとネイティブと
C#とILとネイティブと
 
Java ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsugJava ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsug
 
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
 
GitOpsでKubernetesのManifest管理
GitOpsでKubernetesのManifest管理GitOpsでKubernetesのManifest管理
GitOpsでKubernetesのManifest管理
 
実践 NestJS
実践 NestJS実践 NestJS
実践 NestJS
 
Test Yourself - テストを書くと何がどう変わるか
Test Yourself - テストを書くと何がどう変わるかTest Yourself - テストを書くと何がどう変わるか
Test Yourself - テストを書くと何がどう変わるか
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
 
オブジェクト指向できていますか?
オブジェクト指向できていますか?オブジェクト指向できていますか?
オブジェクト指向できていますか?
 
メルカリ・ソウゾウでは どうGoを活用しているのか?
メルカリ・ソウゾウでは どうGoを活用しているのか?メルカリ・ソウゾウでは どうGoを活用しているのか?
メルカリ・ソウゾウでは どうGoを活用しているのか?
 
DeNAの大規模ライブ配信基盤を支える技術
DeNAの大規模ライブ配信基盤を支える技術DeNAの大規模ライブ配信基盤を支える技術
DeNAの大規模ライブ配信基盤を支える技術
 
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
 
凡人の凡人による凡人のためのデザインパターン第一幕 Public
凡人の凡人による凡人のためのデザインパターン第一幕 Public凡人の凡人による凡人のためのデザインパターン第一幕 Public
凡人の凡人による凡人のためのデザインパターン第一幕 Public
 
イベント・ソーシングを知る
イベント・ソーシングを知るイベント・ソーシングを知る
イベント・ソーシングを知る
 
OSSを利用したプロジェクト管理
OSSを利用したプロジェクト管理OSSを利用したプロジェクト管理
OSSを利用したプロジェクト管理
 
マイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチマイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチ
 
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!
 
TLS, HTTP/2演習
TLS, HTTP/2演習TLS, HTTP/2演習
TLS, HTTP/2演習
 

Similar to GoでMinecraftっぽいの作る

CodingTips+ 基礎編
CodingTips+ 基礎編CodingTips+ 基礎編
CodingTips+ 基礎編Yusuke Ito
 
今日から始める Go言語 と appengine
今日から始める Go言語 と appengine今日から始める Go言語 と appengine
今日から始める Go言語 と appenginea know
 
Goでかんたんソースコードの静的解析
Goでかんたんソースコードの静的解析Goでかんたんソースコードの静的解析
Goでかんたんソースコードの静的解析Takuya Ueda
 
今日から始めるGopher - スタートGo #0 @GDG名古屋
今日から始めるGopher - スタートGo #0 @GDG名古屋今日から始めるGopher - スタートGo #0 @GDG名古屋
今日から始めるGopher - スタートGo #0 @GDG名古屋Takuya Ueda
 
オープン・ソースで構築するARMマイコン開発環境 ―― GCC,Eclipse,OpenOCDで統合開発環境,JTAGデバッグもできる!
オープン・ソースで構築するARMマイコン開発環境 ―― GCC,Eclipse,OpenOCDで統合開発環境,JTAGデバッグもできる!オープン・ソースで構築するARMマイコン開発環境 ―― GCC,Eclipse,OpenOCDで統合開発環境,JTAGデバッグもできる!
オープン・ソースで構築するARMマイコン開発環境 ―― GCC,Eclipse,OpenOCDで統合開発環境,JTAGデバッグもできる!Masaki Muranaka
 
Macで快適にプログラミング
Macで快適にプログラミングMacで快適にプログラミング
Macで快適にプログラミングYusuke Sakurai
 
GraalVMで使われている、他言語をJVM上に実装する仕組みを学ぼう
GraalVMで使われている、他言語をJVM上に実装する仕組みを学ぼうGraalVMで使われている、他言語をJVM上に実装する仕組みを学ぼう
GraalVMで使われている、他言語をJVM上に実装する仕組みを学ぼうKoichi Sakata
 
インフラ運用管理ツールとGolang OSS運用管理勉強会LT
インフラ運用管理ツールとGolang OSS運用管理勉強会LTインフラ運用管理ツールとGolang OSS運用管理勉強会LT
インフラ運用管理ツールとGolang OSS運用管理勉強会LTDaisuke Ikeda
 
OSSで楽に作るGo言語クライアントツール
OSSで楽に作るGo言語クライアントツールOSSで楽に作るGo言語クライアントツール
OSSで楽に作るGo言語クライアントツールTano Makoto
 
密着!わたしのコンソールアプリ開発環境
密着!わたしのコンソールアプリ開発環境密着!わたしのコンソールアプリ開発環境
密着!わたしのコンソールアプリ開発環境Fumihito Yokoyama
 
DLR言語によるSilverlightプログラミング
DLR言語によるSilverlightプログラミングDLR言語によるSilverlightプログラミング
DLR言語によるSilverlightプログラミングterurou
 
The History of Groovy #GroovyBase
The History of Groovy #GroovyBaseThe History of Groovy #GroovyBase
The History of Groovy #GroovyBasekyon mm
 
Easy scripting in Go
Easy scripting in GoEasy scripting in Go
Easy scripting in Gonaoty_bot
 
OSS 開発ってどうやっているの? ~ PostgreSQL の現場から~
OSS 開発ってどうやっているの? ~ PostgreSQL の現場から~OSS 開発ってどうやっているの? ~ PostgreSQL の現場から~
OSS 開発ってどうやっているの? ~ PostgreSQL の現場から~Masahiko Sawada
 
Tizen 2.0 alpha でサポートされなかった native api
Tizen 2.0 alpha でサポートされなかった native apiTizen 2.0 alpha でサポートされなかった native api
Tizen 2.0 alpha でサポートされなかった native apiNaruto TAKAHASHI
 
ゲーム組み込み用スクリプト言語を作ってみた
ゲーム組み込み用スクリプト言語を作ってみたゲーム組み込み用スクリプト言語を作ってみた
ゲーム組み込み用スクリプト言語を作ってみたMASA_T_O
 
オープンセミナー香川2012 LT
オープンセミナー香川2012 LTオープンセミナー香川2012 LT
オープンセミナー香川2012 LTKouta Imanaka
 

Similar to GoでMinecraftっぽいの作る (20)

CodingTips+ 基礎編
CodingTips+ 基礎編CodingTips+ 基礎編
CodingTips+ 基礎編
 
社内勉強会1 go lang
社内勉強会1 go lang 社内勉強会1 go lang
社内勉強会1 go lang
 
今日から始める Go言語 と appengine
今日から始める Go言語 と appengine今日から始める Go言語 と appengine
今日から始める Go言語 と appengine
 
Goでかんたんソースコードの静的解析
Goでかんたんソースコードの静的解析Goでかんたんソースコードの静的解析
Goでかんたんソースコードの静的解析
 
今日から始めるGopher - スタートGo #0 @GDG名古屋
今日から始めるGopher - スタートGo #0 @GDG名古屋今日から始めるGopher - スタートGo #0 @GDG名古屋
今日から始めるGopher - スタートGo #0 @GDG名古屋
 
オープン・ソースで構築するARMマイコン開発環境 ―― GCC,Eclipse,OpenOCDで統合開発環境,JTAGデバッグもできる!
オープン・ソースで構築するARMマイコン開発環境 ―― GCC,Eclipse,OpenOCDで統合開発環境,JTAGデバッグもできる!オープン・ソースで構築するARMマイコン開発環境 ―― GCC,Eclipse,OpenOCDで統合開発環境,JTAGデバッグもできる!
オープン・ソースで構築するARMマイコン開発環境 ―― GCC,Eclipse,OpenOCDで統合開発環境,JTAGデバッグもできる!
 
Macで快適にプログラミング
Macで快適にプログラミングMacで快適にプログラミング
Macで快適にプログラミング
 
GraalVMで使われている、他言語をJVM上に実装する仕組みを学ぼう
GraalVMで使われている、他言語をJVM上に実装する仕組みを学ぼうGraalVMで使われている、他言語をJVM上に実装する仕組みを学ぼう
GraalVMで使われている、他言語をJVM上に実装する仕組みを学ぼう
 
C#への招待
C#への招待C#への招待
C#への招待
 
インフラ運用管理ツールとGolang OSS運用管理勉強会LT
インフラ運用管理ツールとGolang OSS運用管理勉強会LTインフラ運用管理ツールとGolang OSS運用管理勉強会LT
インフラ運用管理ツールとGolang OSS運用管理勉強会LT
 
OSSで楽に作るGo言語クライアントツール
OSSで楽に作るGo言語クライアントツールOSSで楽に作るGo言語クライアントツール
OSSで楽に作るGo言語クライアントツール
 
密着!わたしのコンソールアプリ開発環境
密着!わたしのコンソールアプリ開発環境密着!わたしのコンソールアプリ開発環境
密着!わたしのコンソールアプリ開発環境
 
DLR言語によるSilverlightプログラミング
DLR言語によるSilverlightプログラミングDLR言語によるSilverlightプログラミング
DLR言語によるSilverlightプログラミング
 
Net fringejp2016
Net fringejp2016Net fringejp2016
Net fringejp2016
 
The History of Groovy #GroovyBase
The History of Groovy #GroovyBaseThe History of Groovy #GroovyBase
The History of Groovy #GroovyBase
 
Easy scripting in Go
Easy scripting in GoEasy scripting in Go
Easy scripting in Go
 
OSS 開発ってどうやっているの? ~ PostgreSQL の現場から~
OSS 開発ってどうやっているの? ~ PostgreSQL の現場から~OSS 開発ってどうやっているの? ~ PostgreSQL の現場から~
OSS 開発ってどうやっているの? ~ PostgreSQL の現場から~
 
Tizen 2.0 alpha でサポートされなかった native api
Tizen 2.0 alpha でサポートされなかった native apiTizen 2.0 alpha でサポートされなかった native api
Tizen 2.0 alpha でサポートされなかった native api
 
ゲーム組み込み用スクリプト言語を作ってみた
ゲーム組み込み用スクリプト言語を作ってみたゲーム組み込み用スクリプト言語を作ってみた
ゲーム組み込み用スクリプト言語を作ってみた
 
オープンセミナー香川2012 LT
オープンセミナー香川2012 LTオープンセミナー香川2012 LT
オープンセミナー香川2012 LT
 

More from 京大 マイコンクラブ

かわいくなろうとしたら語彙力が下がった話
かわいくなろうとしたら語彙力が下がった話かわいくなろうとしたら語彙力が下がった話
かわいくなろうとしたら語彙力が下がった話京大 マイコンクラブ
 
多倍長整数の乗算と高速フーリエ変換
多倍長整数の乗算と高速フーリエ変換多倍長整数の乗算と高速フーリエ変換
多倍長整数の乗算と高速フーリエ変換京大 マイコンクラブ
 
つくってあそぼ ラムダ計算インタプリタ
つくってあそぼ ラムダ計算インタプリタつくってあそぼ ラムダ計算インタプリタ
つくってあそぼ ラムダ計算インタプリタ京大 マイコンクラブ
 
C# ゲームプログラミングはホントにメモリのことに無頓着でいいの?
C# ゲームプログラミングはホントにメモリのことに無頓着でいいの?C# ゲームプログラミングはホントにメモリのことに無頓着でいいの?
C# ゲームプログラミングはホントにメモリのことに無頓着でいいの?京大 マイコンクラブ
 
プログラムを高速化する話Ⅱ 〜GPGPU編〜
プログラムを高速化する話Ⅱ 〜GPGPU編〜プログラムを高速化する話Ⅱ 〜GPGPU編〜
プログラムを高速化する話Ⅱ 〜GPGPU編〜京大 マイコンクラブ
 
ドット絵でプログラミング!難解言語『Piet』勉強会
ドット絵でプログラミング!難解言語『Piet』勉強会ドット絵でプログラミング!難解言語『Piet』勉強会
ドット絵でプログラミング!難解言語『Piet』勉強会京大 マイコンクラブ
 
DTM練習会2017第1.5回 「伴奏の付け方」
DTM練習会2017第1.5回 「伴奏の付け方」DTM練習会2017第1.5回 「伴奏の付け方」
DTM練習会2017第1.5回 「伴奏の付け方」京大 マイコンクラブ
 
暗号技術入門 秘密の国のアリス 総集編
暗号技術入門 秘密の国のアリス 総集編暗号技術入門 秘密の国のアリス 総集編
暗号技術入門 秘密の国のアリス 総集編京大 マイコンクラブ
 

More from 京大 マイコンクラブ (20)

テキストファイルを読む💪 第1回
テキストファイルを読む💪  第1回テキストファイルを読む💪  第1回
テキストファイルを読む💪 第1回
 
かわいくなろうとしたら語彙力が下がった話
かわいくなろうとしたら語彙力が下がった話かわいくなろうとしたら語彙力が下がった話
かわいくなろうとしたら語彙力が下がった話
 
Common Lisp入門
Common Lisp入門Common Lisp入門
Common Lisp入門
 
多倍長整数の乗算と高速フーリエ変換
多倍長整数の乗算と高速フーリエ変換多倍長整数の乗算と高速フーリエ変換
多倍長整数の乗算と高速フーリエ変換
 
つくってあそぼ ラムダ計算インタプリタ
つくってあそぼ ラムダ計算インタプリタつくってあそぼ ラムダ計算インタプリタ
つくってあそぼ ラムダ計算インタプリタ
 
Geometry with Unity
Geometry with UnityGeometry with Unity
Geometry with Unity
 
セミコロンレスc++
セミコロンレスc++セミコロンレスc++
セミコロンレスc++
 
エンジニアと健康
エンジニアと健康エンジニアと健康
エンジニアと健康
 
女の子になれなかった人のために
女の子になれなかった人のために女の子になれなかった人のために
女の子になれなかった人のために
 
Pietで競プロしよう
Pietで競プロしようPietで競プロしよう
Pietで競プロしよう
 
もし太陽のコアがIntelCoreだったら
もし太陽のコアがIntelCoreだったらもし太陽のコアがIntelCoreだったら
もし太陽のコアがIntelCoreだったら
 
C# ゲームプログラミングはホントにメモリのことに無頓着でいいの?
C# ゲームプログラミングはホントにメモリのことに無頓着でいいの?C# ゲームプログラミングはホントにメモリのことに無頓着でいいの?
C# ゲームプログラミングはホントにメモリのことに無頓着でいいの?
 
プログラムを高速化する話Ⅱ 〜GPGPU編〜
プログラムを高速化する話Ⅱ 〜GPGPU編〜プログラムを高速化する話Ⅱ 〜GPGPU編〜
プログラムを高速化する話Ⅱ 〜GPGPU編〜
 
ドット絵でプログラミング!難解言語『Piet』勉強会
ドット絵でプログラミング!難解言語『Piet』勉強会ドット絵でプログラミング!難解言語『Piet』勉強会
ドット絵でプログラミング!難解言語『Piet』勉強会
 
No SSH (@nojima; KMC関東例会)
No SSH (@nojima; KMC関東例会)No SSH (@nojima; KMC関東例会)
No SSH (@nojima; KMC関東例会)
 
DTM練習会2017第1.5回 「伴奏の付け方」
DTM練習会2017第1.5回 「伴奏の付け方」DTM練習会2017第1.5回 「伴奏の付け方」
DTM練習会2017第1.5回 「伴奏の付け方」
 
hideya流 テストプレイ観察術
hideya流 テストプレイ観察術hideya流 テストプレイ観察術
hideya流 テストプレイ観察術
 
暗号技術入門 秘密の国のアリス 総集編
暗号技術入門 秘密の国のアリス 総集編暗号技術入門 秘密の国のアリス 総集編
暗号技術入門 秘密の国のアリス 総集編
 
Altseed
AltseedAltseed
Altseed
 
C#でゲームを作る2016 第8回
C#でゲームを作る2016 第8回C#でゲームを作る2016 第8回
C#でゲームを作る2016 第8回
 

GoでMinecraftっぽいの作る