Hatena::ブログ(Diary)

サイログ。MiyakoとかRubyとかなんとか+Miyako ACCESS MAP このページをアンテナに追加 RSSフィード

4000年12月31日 日曜日 新しい日記を作りました このエントリーを含むブックマーク このエントリーのブックマークコメント

うちのドメイン内に日記作りました

サイログ。二代目

Publifyの7.0.0(beta1)を使っています。

まだ何もない簡素ものですが、ちょこちょこパワーアップさせていきたいなぁと。

しばらくは、そこで日記を書いていこうと思います。

3000年12月31日 水曜日 「桜高文化祭」出展情報 このエントリーを含むブックマーク このエントリーのブックマークコメント

こちらの内容は10/31分の日記に移動しました。

2999年12月31日 火曜日 Miyako情報リンク集 このエントリーを含むブックマーク このエントリーのブックマークコメント

2013年08月23日 金曜日

Macを買ったのでMarsEditで投稿できるようにしてみた

MarsEditではてな投稿できるようにした。

おっさんでも出来た。MarsEditからはてなへの投稿方法

おぃらでもMarsEditからはてなダイアリーへ投稿できたの巻

以上の記事が参考になりました。ありがとうございました。

2013年07月07日 日曜日 SDL2_ttfの最新版をビルドしてみた

SDL2_ttfはまだtarballになってなかったので

「SDL2対応のSDL_ttfは無いんかいの?」とSDL関係のページをあさってみると、フォーラムで「レポジトリから取れ!」というありがたいお言葉を見つけたので、早速インストール

SDL_ttfのページに合ったMercurialレポジトリから入れてみることにした。今回も、そのための忘備録

とりあえず、Mercurial

コレがないとお話にならないので、インストール

sudo apt-get install mercurial

SDL_ttfをレポジトリから取ってくる

hg cloneで一発。

hg clone http://hg.libsdl.org/SDL_ttf/

参考:SDL_ttfのページ

本来は、SDL2向けのタグがありそうだけど、まだ固まってないのかタグ付けされていないのでdefaultブランチをそのまま使います(要はcloneしてきたのそのまんま)。

今後、ファイル更新されたら、忘れずに更新してビルドの繰り返しになるのを忘れないでね!

cd SDL_ttf

hg update (新バージョンタグが決まったら、 -r (タグ名) を追加しよう!)

(ビルド)

ビルドだぁ!

今回はconfigureがあるので、いきなり実行

./configure --prefix=/opt/SDL2 --with-sdl-prefix=/opt/SDL2

…あら、freetype2の開発用ライブラリが無いとか

configure: error:

Unable to find FreeType2 library (http://www.freetype.org/)

というわけで、別途インストール

sudo apt-get install libfreetype6 libfreetype6-dev

もう一度configureすると…成功(ドヤァ)

あとはビルドしてインストールだよん

make && sudo make install

…おや、aclocal-1.13が無いからエラーが出た…

/home/cyross/SDL/SDL_ttf/missing: 行 81: aclocal-1.13: コマンドが見つかりません

WARNING: 'aclocal-1.13' is missing on your system.

You should only need it if you modified 'acinclude.m4' or

'configure.ac' or m4 files included by 'configure.ac'.

The 'aclocal' program is part of the GNU Automake package:

<http://www.gnu.org/software/automake>

It also requires GNU Autoconf, GNU m4 and Perl in order to run:

<http://www.gnu.org/software/autoconf>

<http://www.gnu.org/software/m4/>

<http://www.perl.org/>

あるはずだよな。バージョン調べてみよう

cyross@ubuntu:~/SDL/SDL_ttf$ aclocal --version

aclocal (GNU automake) 1.11.3

がーん。autogen.shからやり直しOTL

./autogen.sh

./configure --prefix=/opt/SDL2 --with-sdl-prefix=/opt/SDL2

make && sudo make install

というわけで、無事SDL_ttfが出来上がりました。ほっ。

とりあえず、SDL2をビルドするときに追加インストールしたものリスト

これらは、あくまでも当方ビルドした時にインストールしたものなので、それぞれの環境依存するということで一つ。

sudo apt-get install freeglut3-dev libglew1.6-dev freeglut3 libglew1.6

sudo apt-get install libjpeg-dev

sudo apt-get install libpng12-dev

sudo apt-get install libtiff4 libtiff4-dev

sudo apt-get install libwebp2 libwebp-dev

sudo apt-get install libmodplug1 libmodplug-dev

sudo apt-get install libfluidsynth1 libfluidsynth-dev

sudo apt-get install libogg0 libogg-dev libvorbis0a libvorbis-dev libvorbisfile3

sudo apt-get install libflac8 libflac-dev

sudo apt-get install libsmpeg0 libsmpeg-dev

sudo apt-get install mercurial tortoisehg

* aclocal入っていなかった時のコマンド

sudo apt-get install autotools-dev

sudo apt-get install automake

2013年07月06日 土曜日 Miyako for Web、ちまちまと開発しております このエントリーを含むブックマーク このエントリーのブックマークコメント

最新版は↓です。

http://github.com/cyross/M4W

かなりシンプル構造になっております

また、Box2DやThree.jsと組み合わせたサンプルも用意していますので、よければ見てやって下さい。

忘備録:SDL_mixer2.0のために、spmeg2をビルドしてみたぜヒャッハー

何を思ったか、SDL2.0をインストールしてみようというわけで、Linux(ubuntu12.04-x64)であれやこれやとやってみたわけですが、SDL_mixerをビルドしようとするとsmpeg2がubuntuに無いと怒られたわけで。

じゃあ、smpeg2をビルドしてやろうと四苦八苦した結果が以下の手順です。

SDLとかのインストール

とりあえず、/opt/SDL2にインストールしていると思って下さい

smpeg2ソースダウンロード

SDLサイトからダウンロード。展開すると、READMEが0.4.5のものになってるけどキニシナーイ!

http://www.libsdl.org/projects/smpeg/release/smpeg2-2.0.0.tar.gz

ちなみに、ソースは、SDLフォーラムから情報を頂きました。

SDL_mixer 2.0.0 Release Candidate 2

さあ、ビルドだ!…の前に

configureが無いじゃねーか!というわけで、autogen.shを使って作成(最初、どうやるかわからなかったけど、smpeg2.spec読んで当たりつけたらそうだった)

./autogen.sh --prefix=/opt/SDL2 --disable-debug --disable-opengl-player

makemakeだ!

これで、configureができた、というわけで、いつものコマンド

./configure --prefix=/opt/SDL2 --with-sdl-prefix=/opt/SDL2

make

sudo make install

最後に、SDL_mixerのビルド

これが出来上がったので、最後にSDL_mixerのビルド

./configure --prefix=/opt/SDL2 --with-sdl-prefix=/opt/SDL2 --with-smpeg-prefix=/opt/SDL2

make

sudo make install

とりあえず、これでSDL_mixerまで出来た。途中、何かの原因で怒られても、そこは各自悪戦苦闘して下さいませ…

2012年03月17日 土曜日 久しぶりの日記

[][] Miyakoの開発停止状態について

というわけで、久しぶりにはてな更新を。

こないだから、Miyakoどないなってんねんなーとか言われてそうですが(気に留めてない?やっぱり?)、現在開発停止中となっております

理由は、怠惰とか怠惰とか怠惰とかあるのですが、未来を見据えていたら、気がついたら未来になってしまったと言いましょうか…。

Miyakoをめぐる環境としては、対応環境として入れていたActiveRubyが、1.9.2以降からVC2010へ移行したため、バイナリがそのまま使えなくなったのがきっかけでした。

さらに、今後、アプリを配布するための環境(インストール方法とか暗号化とか)のことを考える必要性があるわけで…。

そのため、対応策を考えないと…VC2010がゲットできない(Standardが無くなった)…Ruby/SDLビルドどうしよう…とか、どうたらこうたらとか混乱している間に本職とかが忙しくなり、1.9.3が登場し…現在に至ります

うちの開発ポリシーが、「一人でゆっくりやっていこう」というものだったので、ここまで変化するとどうしようにもならないやら…。

長らく、Miyakoご愛顧頂きましたが、状況を見極めるまで(もしくは、開発を引き継ぎたいという人が出てくるまで)、開発を停止しようと思います。その時は、引き続きのご愛顧をよろしくお願いいたします

[] HTML5ゲームを開発する方法

簡単に言うと、「Railsゲーム開発できないか?」ということです。

ブラウザゲームが作れれば、マルチプラットフォームである程度速度のあるゲームが作れます

ただし、結論から言うと、ちっちゃいゲームなら可能という結論が。

一応、Javascript+Rails3.1(3.2)を使い、ゲーム開発を助けるMiyako for Web(略してM4W)(Page not found · GitHub)作ってみました。

jQueryとかを使えばロジック比較的簡単に組めるようになります

ところが、いかんせん、Miyakoで開発した時と同じディレンマを抱えているわけです。

問題は素材

TANAKA Uの自由帳 / NEXTFRAME(!): HTML5ではゲームが作れないさんところで書かれていて思わず納得したのですが、素材ファイルにはライセンスという問題が。これでは、ほぼ自作素材、もしくはちゃんとライセンスを確認して使わないといけません。ああめんどくさい(ヲイ)。

個人的なアプリならまだしも、商用ソフトとなると、苦労が更に倍増します特に外国リリースされた素材を使うときは、ライセンス違反には厳しいのです。

もちろん、Staticファイルアクセス用のリソースを噛ませて、CSRFなりセッション変数で判断して、勝手ダウンロードさせることを抑制できるようにはできますしかし、ダウンロードしたファイル自体には全く手を施さないので、この方法でも商用ライセンスの素材や、「ファイルをそのまま配布してはいけない」ライセンスフリー同人素材の前ではアウトです…。

この問題が解決出来ればなぁ…。

RailsによるアジャイルWebアプリケーション開発 第4版

RailsによるアジャイルWebアプリケーション開発 第4版

-Ruby on Rails 3で作る-jpmobileによるモバイルサイト構築

-Ruby on Rails 3で作る-jpmobileによるモバイルサイト構築

Web制作の現場で使う jQueryデザイン入門 (WEB PROFESSIONAL)

Web制作の現場で使う jQueryデザイン入門 (WEB PROFESSIONAL)

Unity3Dとかはどうだろう?

最近話題のゲームミドルウェアですね。ベースMono(.NET)です。

Unity - Game Engine

いろんな場面で使われていたり、マルチプラットフォーム対応ミドルウェアなので、アプリ配布に困ることはないでしょう。本格的なゲームにはこっちのほうが有効でしょう。

ただし、ほんまに細かいところまで設定できるので、とにかく慣れなきゃいけない。

(画像の設定とか、ライブラリだけでもかなりある)

あと、Webからデータは取得可能ですが、jQueryが使えないなどといった弊害(Unity3DのJavascript実装は「UnityScript」と呼ばれるくらいの独自実装)があるので、ajaxなどの実装は難しくなります(いちおー、Unity3Dで使えるjQueryを作ろうとしていますが、2009年以降開発停止中…)。

さらに、サポートしている言語Rubyが無いのが残念(そこか!?)

[] RiteVMとかは?

Ruby絡みでは、RiteVM(組み込みスクリプト言語とRiteVM勉強会 : ATND)が使いやすそうだったら、そっちにも注目したいですね。

(RiteVMがUnity3Dに組み込まれればさらに最強ですね)

あとは、本格的にリリースされるのはいつなんだろう…。

まとめ

ここまで書いてみましたが、どの方法も一長一短です。

コンセプトや規模に寄って取捨選択する必要性は未だに根深そうです。

2011年05月28日 土曜日 Miyako2.1.22リリース

[][] ご挨拶

昨今、OpenGLとかGLEWとか使えないかなーといろいろ考えているサイロスさんです。どもども。

Miyakoの最新バージョン、2.1.22をリリースしました。

詳細は、Miyakoメインサイトからどうぞ。

http://www.twin.ne.jp/~cyross/Miyako/

ダウンロードは、RubyForgeからどうぞ。

http://rubyforge.org/frs/?group_id=8246

gemからインストール可能です。

gem install ruby-miyako

gem install ruby-miyaok-mswin32

[Ruby][Miyako] Miyako2.1.22リリース

バージョンバグ修正版です。Shapeクラスの複数メソッドエラーが出る問題がありましたので修正致しました。

あと、サンプルを追加しました。修正したShapeクラスとFiberを使った弾幕もどきサンプルです。

スプライトは「弾」というイメージで、ランダムで弾の生死判定をしております

f:id:cyross:20110529004229p:image

Miyako2.1.22はアップデート必須となっておりますので、お手数ではございますが、アップデートのほどをよろしくお願い致します。

[][] MiyakoPack2.1.20リリース

Ruby1.9.2-p180+Miyako2.1.22+MiyakoLauncher2.2.1をパックしたWindows用実行環境です。

変更点は、Miyakoが2.1.22になった意外は変更ありません。

(あ、でも、こそっとGlew1.6.0のdllは入っていますが、今のところ何の役にも立ちません(^^;

2011年05月22日 日曜日 RubyでOpenGL続き

こないだから、久しぶりにruby-openglプログラムを書いてみたいと思っていたので、書いてみた。

Ruby1.9.2+Ruby/SDL2.1.1+ruby-opengl0.61を使用。

(ruby-openglビルド方法については回答できかねます…)

出来上がったのはこんな感じ。

「何このキャラ!?」と思われた方、ゲームのサンプル用に、何も考えずに手抜きで書いたものなので、ツッコミスルーます(^^;

f:id:cyross:20110522132020p:image

以下、ソースコード画像

続きを読む

[] 気がつかない間に

GLEWの1.6.0出てたんだね。今度試してみよう。

http://glew.sourceforge.net/

2011年05月19日 木曜日 sleep sortをRuby1.9.2のFiberで実装してみたのでメモ

[Ruby] Sleep Sort のをFiber@Rubyで実装

id:gfxさんの記事を読んで大爆笑してしまったので、ついついRuby1.9.2+Fiberで作ってしまいました。

というわけで、メモ

元ネタIslands in the byte stream/常識を覆すソートアルゴリズム!その名も”sleep sort”!

def create_fiber(v)
  f = Fiber.new do
    t1 = Time.now
    while(true)
      break if Time.now - t1 >= v
      Fiber.yield(true)
    end
    puts v
    while(true); Fiber.yield false; end
  end
end

fibers = ARGV.map{|v| create_fiber(v.to_i) }

while(fibers.map{|fib| fib.resume }.any?); end

実行するとこんな感じ。

$>ruby fsleep.rb 5 3 1 4

1

3

4

5

[] 修正版

風呂はいってる間に新しいアイデアが出たので修正

fibers = ARGV.map{|v|
  Fiber.new do
    t = Time.now
    while(Time.now - t < v.to_i); Fiber.yield(true); end
    puts v
    loop do; Fiber.yield(false); end
  end
}

while(fibers.map{|fib| fib.resume }.any?); end