2023年5月6日土曜日

せっかくドメイン&サーバーを有料契約しているのに…

 ずっとNotFoundのままだった。

というか、なんでそうなってるかわからんのだが…(汗

バリュードメインでオリジナルドメインを契約して、それをxreaのサーバーと紐づけてるだけで、これまでずっと問題なかったのに、今年更新したら、何やら設定をみすってしまったらしい…。

URLいれても、connection timeoutにしかならない。

404 Not Foundではないということは、ドメインの紐づけはうまくできているのか?
SSLの設定をやったような記憶があるので、あるとしたら、そこでのミスだな。

さて、どうしたものか…。

2022年2月20日日曜日

Perforce環境を作ってみよう

今年は何か作りたい。プログラムで。

と思いつつ、気づいたらもう2月も過ぎ去ろうとしていますよね。
2月が終わるということは、1年が1/6も過ぎてしまったということだ…。

作るべきアプリは全く進んでないというのに。

Androidアプリはテストでたくさん作ったことがあるので(リリースしたことはない)今更感はあるが、初心に戻るということで、Udemyのアプリの講座を1つ受講してみた。

まだ動画3つくらいしか見てないけども。

で、そっちはさておき、作りかけだった、C#のツールを再度いじり始める。
これは、本当にただのツールであり。

もう20年以上、Javaで作ってきた各種ツールをC#に移植しているだけである。
個人のツールだし、別にJavaから脱却する意味も必要もないのだが、なぜかC#に移植している。

ま、頭のトレーニングというのが正しい動機だろう。

で、ちょこちょこいじり始めるのはいいのだが、開発途中は、やはり、あっちに行ったりこっちに行ったり…で、ソースがぶれまくる。

これを回避するには…バージョン管理しかないだろう。

以前、GoogleDriveとSVNとつなげて環境を作ったことがあるのだが…。
死ぬほど遅かった。
やはり、(当たり前だが)外部ドライブはダメだ。

というわけで、ローカルのみで構成してみることにする。
また、仕事でしようしているのが、Perforceだったので、今回はそっちを構築してみることにした。

なんと。
こんなに良い解説を書いてくれているページがあったので、こちらを参考にさせていただくことにした。

ローカル環境のみでPerforce+P4Vを使用できるようにする
https://effect.hatenablog.com/entry/2020/08/22/134916


…という記事をさっき書いたのだが。

めっちゃ簡単すぎる!!
ホント、ダウンロードしたと、サクッとインストールするだけで使えるようになったわ!
もちろん、仕事でちょっと使っていた知識があるのも大きいんだけど。

仕事で使ってるのってクライアントの方だけだし、サーバーの設定も個人用だとこんなに簡単にできるのね。

そして、C#のプロジェクト一式をsubmitしたけど、修正のsubmitやロールバックも早い
これはいいわ…!!

2022年1月16日日曜日

xampp と workbench

今年は気合入れてやるぜ!と元旦から、キーボードに向かってカタカタ入力しているラターシュです。

xamppとworkbenchのインストールをしら、まずは MySQLのデータベースを構築し、phpでアクセスするのが、一連の流れ。

以前は、週に3つのブログを立ち上げたこともあるくらい、データベースとかHTML触ってましたが、ここ数年はさっぱり。

まあ、仕事の一環で、会社PCに両方ともインストールしているので、特に問題はない。

…と思ったら大間違いである。
早速、トラブルに見舞われたので、ここに記録しておこう。

Failed to Connect to MySQL at 127.0.0.1:3306 with user root SSL connection error; SSL is required but the server doesn’t support it

まずはこのエラーである。
これは、workbenchがxamppへの接続にSSLが要求されているが、xamppがそもそもSSLに対応していない、というのが原因らしい。

設定を見ると、Use SSLの項目が、Require 一択になっている。


これでは、どうしようもないので、workbenchのバージョンが低いものをダウンロード。
同じようにSSLのところを見ると、
if available
が選択できたので、その設定にすると、無事にMySQLとworkbenchが接続できた。

なぜ、require 一択になってしまったのかは知らないが、もし同じエラーが出たら、バージョンを戻して試してみるといいかもしれない。

2022年 プログラム初め

もう2022年である。

前回の投稿が2019年なのはともかく。
去年2021年は、今までで一番高速に過ぎていった。

まるでそんな年はなかったかのように…。

歳を取ると時の流れが速くなるとは言うが、そんな生ぬるい速さではなかった。
今年は、そういうことにならないように、1月1日から、色々やることにした。

まずは、購入して、ほぼ放置していた、ゲーミングデスクトップ。
いくつかゲームをインストールして遊んだ程度である。

まずは、これをプログラム環境にすることから。
ちょうど、メインで使用していたノートPCの調子が悪くなったので、各種データの移行も併せて色々やろう。

…で、さくっとやったのが以下。

・いつものテキストエディタのインストール
・VisualStudioのインストール
・xamppのインストール
・mysql workbenchのインストール
・Android Studioインストール

インストール後は、ちゃんと色々起動して、ビルド・接続などができるところまでは完了。

今時、こういうブログで色々書いて公開できるのに、
わざわざ年会費払って独自ドメイン取得している個人はそんなにいないだろうな…。

放置状態だから、ページもボロボロだし、サーバー側のバージョンアップの関係で、データベースも初期化されてるから、動作もやばいだろうし。

次にするのは、このWebサイトの手入れか、Androidアプリの作成かな。

2019年4月11日木曜日

プログラムブログ更新は久しぶり

 毎日プログラムしてるけど、ほぼ更新してない!

HSPもcocos-2dxも全く触れて無いわ!

つか、ほぼ毎日、終電だゴルア!

まあ、楽しいのでいいんですがね。

不具合修正のプログラムが楽しい人ってそうそういないか。

で、不具合について。

Windows.forms.System.SplitContainerを使ってフォームを作る。

これは、左右2つのパネルをSplitterで分割するフォームパーツだ。

このSplitterはアプリ使用者が自由に動かすことができるが、

アプリを再起動すると、デフォルト位置に戻ってしまうので、位置をキープして欲しい、というもの。



実は、保存する際に、値はちゃんとシリアライズされている。

ではなぜ、ずれてしまうのか?

それは、いわゆる仕様バグである。

まず、SplitContainerを、幅200で初期化・作成する。

Splitterの位置は、100(ちょうど中央)とする。

※ちなみにSplitter自体の幅は4

ここまではちゃんと、再起動時にデシリアライズされている。


問題は…。


作成したこのSplitContainerを、Dockに収めていることだ。

その際、300とか400とか大きめのDockにはめ込んでいるため、

幅200で作ったSplitContainerが、引き伸ばされる。

全体が均等に引き伸ばされるため、spliterの位置が、右にずれるのだ。

そしてこれが保存され、次回再度引き伸ばされ…。

デフォルトに戻るどころか、どんどん右にずれていく、というのが現状だったようだ。


解決するのは簡単で、Splitter自体は自由に動かせるが、ウインドウサイズを変えても、

パネルサイズを変更しない、fixedPanelプロパティで、Panel1(左側)を固定にするだけでいい。


…のだが!


実は罠があるらしい。

今開発しているツールは、各種機能が複数のタブによって仕分けされており、

この複数のタブそれぞれに、SplitContainerが使われている。

前半で述べた方法で、これらすべてのSplitterの位置は個別に保存されるようになったのだが、

どうやら、リセットするトリガーがあるらしい。

タブ3にある、Splitterの位置を動かしたら、なぜかタブ1とタブ2の位置がリセットされるのだ。

(現象はランダムで、変わらない場合もある)


現在、このリセットされるトリガーが何か?が調査対象である。


2018年10月4日木曜日

オリンピックのボランティア募集が盛り上がってますな!

というわけで、私も応募に挑戦です!

「Webデザインでやっちゃいけないことを全部やってる」
って言われたら、やらないわけいはいけないでしょ。
BAD UI、気になりますよねー。

ってことでサクッと行ってみましょう。
忘れるといけないので、入力しながら、リアルタイムでこっちに気づいた点を記載するぜ。

まず皆に言われているが、応募したら英語ページに行くという罠。
右上に切り替えボタンがあるってことだったが、国旗マークがあるだけだった。
切り替えかどうかすら説明がなく、自分で気づけだったとは。

次。ログインアカウント。
Facebook等のアカウントを要求するのはレベルが高いということだったが、
アカウントがなくても、新規登録画面はあった。
なので問題なし。

しかし。ここからは問題!
まず、そもそも。
ボランティアの応募のはずなのに、「マイページ開設」にすり替わってる罠。
なんや、マイページて。
さらにここに来る前に、6ページ分の入力があるって注意書きがあるが、
なんで「プライバシーポリシーへの同意」が最後やねん!
それ最初に確認させる奴や。
入力し終わった後に、同意できない内容だったらどうするんだっての。

とかいいつつ、マイページ新規登録の入力ページを開くと。
6つのテキストフォームがあるのだが、
 パスワード*
という風に全部に * マークがついている。
このマークの説明一切なし
また、説明の補足のためか、i マークがついているのだが、
パスワードの項目についた iマークをクリックしてみると…。

「9文字以上、半角英小文字、半角英大文字、半角数字を含む」という説明が。
いや、それずっと出しておけや。
わざわざクリックしないと読めないってダメやろ。

いくつかワザと間違って登録ボタンを押してみたが、どこが間違っているのか、
明確に指摘してないとか、もう全然ダメ。
(大文字で入力してくださいだけ言われてもな!)

次に表示されたのは、個人情報保護方針。
大体テンプレのような内容だが…。第三者から本人の個人情報を取得する場合があるという。
まあ、facebookなどから情報を得る、等の想定だろうが…。
銀行口座、宿泊先、予定
うーん、何気に変な項目も交じってるぞ。
つか、他の団体から情報を得る場合、まずは本人(私)が、そっちにOK出す必要があるんじゃないのか?
このポリシーはボランティア専用ではなく、オリンピック全般のもののようなので、チケット・グッズ販売とか、広告表示用とかでも表示されるものと共有だから、まあ、こういう書き方になるんだろう。

ネットでは、情報漏洩までが1セットって言われてるし、この保護方針は念のため保存しておこう。

というわけで、テンプレのある文章はそこまでズレてはいないが、
Webデザインは、ちょっとダメなレベル。
まだアカウント登録しかやってないが、それでも疲れたんで、次回へ続く。


2018年4月9日月曜日

cocos2d-xを始めてみる。

HSPでプログラム作っていたんだが、ちょっと浮気して、
別の言語を試してみようと思い立つ。

Windowsでゲームが作れるものといえば、Unityとか思いつくが、
ライセンスであったり、ロゴ表示の問題もあるので、
フリーで使用できるという観点で、cocos2d-xに決定。

スマホアプリを作るイメージがあるが、当然、Windows用も作れる。
導入から解説しているページを見て、サクッと作るぜ!

…。
…。

と思い立ってから、サンプルを実行するまで、5時間もかかったわ!!

VisualStudioはインストールしていたものの、C++での開発環境入れてないとか、
他にもcocosをビルドするのに足りないパッケージがあるとか、
導入について解説している内容では全然足りないって!

という過程を経て、ビルド環境と実行環境を得る。
30分でサンプルが動くHSPとはえらい違いだ。

まあ、その分、C++(っぽいもの)で開発できる、実行速度が速い、というメリットはあるが…。

そもそも、AndroidやiOSで動くものも作れるという時点で、
素のC++ではなく、覚える作法(APIとか)はいっぱいあるわけで、
その点については、HSPから乗り換えるメリットは薄い。

逆に、ゲームを作るのに覚える量は変わらないので、乗り換えによるデメリットもないとも言える。
とりあえず1週間ほど触ってみて、無理ゲーだったら、HSPでがんばろう。

2018年3月24日土曜日

HSPを少しずつ進める。

何事も放置すると、忘れたり、鈍ったりするわけで。
少しずつでもHSPのプロジェクトを完成に近づけなければ。

そもそも、何を作るかすら決まっていないけどな!

さて、今日の目標は、10年前には無かった(はず)module機能についてだ。
追記:過去のソースコードに、#module が記述されていた。ただ、それだけで、modfuncなどは使ってなかった模様。

とりあえず、インスタンスを作り、モジュール関数をコールし、
いわゆる、セッターやゲッターの動作も確認できた。

一通りやった(つもり)なので、早速実践。
ゲームには必須である、画面のフェードイン/アウトアウト機能をmoduleで作ってみる。

基本は、過去に deffunc で作ったものをコピペ…する予定だったが、
目に余るコードだったため(笑)、1から作り直す。

とはいえ、ゲームプログラマなら、
簡単なフェードシステムのコード書くのに30分も掛からないはずだ。

というわけで、出来たものを実行っと。

 う ご か な い !

いや、そんなはずは。
ちまちまとミスはあったが、そんなレベルではない、何かが違う。

試しに module外のメインループに移すと、きちんとフェードしている。
ということは、moduleが独立空間であるがゆえに、何かしらの障害が発生しているということだ。

さて、なんだろうか?
もしかして、module内では、gsel や gcopy などが使えない?
ありえそうだが、マニュアルには、そういうことは、一切書いてない。
さらに、付属のサンプルでは、思いっきり、moduleの中で、gcopyしてる。

まったくわからん!

が、独立空間という観点で見たときの問題が、もう1つあるじゃないか!

ゲーム作りの鉄則として、後から変更がありそうな部分は、define で一括で変更できるようにする。
Windowsのゲームだと、画面サイズなどが真っ先に定義される。
今回も、
#define screenW = 1280
#define screenH = 720
と定義している。
が、定義している箇所は、当然、#globalだ。

module内の gcopyは、

gcopy 1,0,0,screenW,screenH
になっている。

全くエラーは出てないが、これが悪いんじゃね?
というわけで、変更。

gcopy 1,0,0,screenW@,screenH@

ビンゴ!うまく表示されたわ。
うーむ、module内で全く定義せずに使用している変数は、
エラーを出さず、0として使われてるようだな。

マニュアルでは、module内から globalを参照するのは推奨しないとされている。
スクリーンのサイズを取得する変数や関数があるだろうか?

…あった。

画面の描画エリアXサイズ
ginfo_winx
画面の描画エリアYサイズ
ginfo_winy

定数をこちらに置き換えて、動作することを確認。
ま、なければ、セッターで画面サイズ渡せば良いだけか。

こういうのが、やってて面白いところだな。

追記:
#define の後に、global をつけることで、全module対象になるんだと!

#define global screenW 1280

これが正解の書き方ということだな。




2018年3月22日木曜日

再びHSPを始めたんだが。

過去に、HSPを使って商品を2つ作ってリリースしたことがある。
2006年頃、もう10年以上前だから、HSP1.0だろうか?
もっともメインじゃなくて付録的な位置づけの作品だったが。

一応そのソースを持ってきたが、現在の HSP3.5では、互換性が無かった。
当たり前だが。

まあ、色々便利になっているし、サンプルやドキュメントが格段に整備されているので、過去に触れていたということもあるが、10分程度で画面は表示できた。

module 辺りを中心にいじってみる。
うまく使えば、オブジェクトっぽいものが表現できると思われるが…。

module内に作成した関数、modfunc にアクセスする方法が
module関連のドキュメントで全く触れられてないのが残念すぎる。

モジュール変数とかコンストラクタとか、
だいたい一定のルールの記述方法なのだが、なぜモジュール関数(modfunc)だけ、

val = funcname(modVal)

という方式にしたんだ…。
ルールに従ったら、

val = funcname@modVal
val = funcname modVal

辺りが妥当なところじゃないか?
せっかく module関連をまとめたドキュメントが用意されてるのに、
これ説明しないでどうするよ…。

結局、moduleのサンプルコード見て探し出したが、
初見殺し過ぎる…。


2017年10月29日日曜日

Googleフォトの日付がおかしい。

2017年10月21日(土)にイベントがあり、動画と写真を撮影した。
その日はそのイベントでしか撮影していないし、
そもそもGoogle端末ではないので、自宅PCで手動でGoogleフォトにアップロードした。

すると、写真は、10月21日のタグがつき、動画は10月20日になった。
は?

Googleフォトは、静止画と動画でタグが分かれるようだ。
動画の間に写真を撮ったのに、綺麗にタグが分かれている。

つまり、10月21日に静止画を配置し、動画はその次のタグにまとめられている。
タグと日付が紐づいていて、タグが1つ戻ったので、日付も1つもどって、10月20日になった。

とかいうクソなプログラムじゃないだろうな、おい。

ちなみに写真も動画も、Googleフォトのプロパティでは、ちゃんと10月21日になっている。

2017年7月21日金曜日

Androidカメラとバーコード

以前作っていたカメラアプリを、最新の自前フレームワークに対応させて復活。

と言っても、カメラのプレビュー映像が表示されるだけだが、
Androidでカメラ使ったアプリの開発経験があれば、それだけでかなり大変だと分かるはず。

で、これをバーコード読み込みに対応させるのが今回の目的。
元々は、秋葉原で購入したUSBのバーコードリーダーを800円でゲットし、
OTGケーブルで接続して使っていたのだが、
カメラでさっと読み込みしたいじゃない?

幸い、GooglePlayサービスに、バーコード読み込みのAPIがあるってことだし、
試してみることに。

実際に、カメラアプリを作ったことがあれば、
http://dev.eyewhale.com/archives/1372
ここをさっと流し読みするだけで、30分でできるはず。

まあ、実際には、足りないSDKをダウンロードしたりの時間も含まれるわけですが。
(API21、Android5.0以上じゃないと使えないっぽいです)

で、早速組み込んだアプリを実機テスト。
実機テストでおなじみの nuuX4の登場です。

いやあ、想像していたのより、さくさく読めますね。
バーコードの読み取りが成功する度に、コールバックが呼ばれるので、
ずっとバーコードをかざしていると、毎フレーム呼ばれます。
なので、自前で排他処理とかが必要。

とか、そんなのは、どうでも良し!
もっと深刻な問題が!

ネット検索すると、同じようにGooglePlayサービスでバーコード読み取りしている人はたくさん居て、皆、読み取りがすごいと、感心しているのですが…。

これ、超高性能カメラ専用APIだった!?

サンプルでは、デフォルトで背面カメラをしているのだが、
私は、正面カメラ(自撮用、フロントカメラ)で読み込みたいのです。

しかしこれが全く読み込めない。
極たまに1フレームだけ読み込めるときがあるので、プログラムが間違っているわけでは無いと思う。

実際に表示されるプレビュー映像を見れば分かるのだが、
フロントカメラの場合、バーコードの線が潰れて読み取れないような映像になっている。
バックカメラ二すると、ものすごく綺麗なプレビューが表示されて、さっと読み取れる。

nuuX4のカメラは、相当良いものだ。
バックカメラは1300万画素だし、フロントカメラも500万画素ある。
この画素で潰れて読めないとか、ありえなさ過ぎる…。

カメラの設定かもと思ったが、用意されているカメラの設定APIには大したものがない。

https://developers.google.com/android/reference/com/google/android/gms/vision/CameraSource

プレビュー解像度は、1920x1080にしているし、オートフォーカスも trueだ。
後はマクロ撮影があればいいのだが、カメラが対応していても、APIがない。

バーコード関係なく、nuuX4標準でついてるカメラアプリでも、フロントカメラは同じように潰れているので、もはや設定ではどうしようもないのかもしれないが、
そうすると、このGooglePlayサービスのバーコード読み取りAPIは、1300万画素程度ないと、使えないということか?

読み取れないって人がたまにいるけど、もしかしたら、この問題と同じなのかもしれない…。


2017年7月7日金曜日

AndroidStudioでプロジェクト

少しXenkoを触っていたけど、再び、AndroidStudioに戻ってきた。
Ver3がリリースされたって聞いたからなんだけど、プレビュー版で、安定版ではなかったので、Ver2.3.3にアップデートしただけにしておいた。

docomo withで、Android7の機種を手に入れたので、最新の機能も試してみたい。
まあ、6すら満足に触ってないけどね…。

というわけで、またフレームワークのところからいじりはじめた。
2D仕様になっていたのを OpenGL仕様に作り変えている、その続きから。

テストアプリを作るところまですら行ってない。

Activity切り替えとか、そんなに必要としていない機能も作ってるからなぁ。
まあ、カメラアプリを作るには必須なんだけど。

Androidでまともなアプリを作ろうと思ったら、Activityにstatic変数を使わないのは当然として、メンバー変数もなるべく使っちゃダメっての読んで、極限まで減らしたところ。

さて、何ゲー作るかな。

2017年5月15日月曜日

Xenko / その4

Microsoft Build tools を更新したら、エラーが減ったけど、
まだまだ大量のエラーが出ている、というのが前回の内容。

で、そのすぐ後に解決したんだけど、記事にしていなかったので、今さら解説。
解説するほどのことでもないんだけど。

出ていたエラーは、「あんたのDirectXのバージョンと合わないんだよ!」的な内容。
ツールで調べたところ、このPCの(オンボードの)グラフィックボードは、DirectX10.1まで対応しているらしい。

Xenkoは、DirectX9.0からさポートしているようだし、そういう意味ではまったく問題ないはずなのに、バージョン違い系のエラーが出ている模様。

で、

デバイスマネージャー ⇒ グラフィックボード

から、ドライバの更新をしてみたところ、なんと更新があるではないか。
そして、Xenkoを起動。

…できた!

というわけで、エラーが出ている人は、グラフィックカードのドライバ更新を試してみましょう。

実際に、Xenkoでサンプルゲームを動かしてみたけど、動作はこのPCではギリギリと言ったところ。

ただ、作り方の解説が少ないので、ここから先が苦労しそう。

2017年5月9日火曜日

Visual C# / その3

前回、VisualC#の基本的な罠に色々掛かってしまったわけだが。

その辺を回避したら、サクサク作れる。
オブジェクト指向などは、Javaで散々やってきているので、
C#独特の解放(デストラクタ)周りの、ガベージコレクトを何とかすれば良い。

それも、基本形は公開されているものをコピペでOK。

Javaで作っていた各種ツールを移植しようと思ったが、
基本部分を作ってから出ないと、気がすまないので…。

まずは、実行ログを出力テキストエリアと、結果を効率よく表示するための、
タブ切り替えを設置。
ファイル読み込み/書き込みのユーティリティは既に作ったので、
ソレを利用して、ツールのオプションを自動保存する機能も追加。

これらも、そこまで悩むこともなく、追加できたので、ようやくツール本体へ。
ツール本体を作成するには、画像の合成が必要だが、先に作っていた独自イメージクラスで基本はOK。
塗りつぶし処理を追加するくらいでできた。
(Javaでいうところの、Paint が、Brushになっている程度)

そこで、100枚程度の細かい画像パーツを1枚のテクスチャに敷き詰める処理を移植。
Javaでは、独自にクイックソートAPIを作成していたが、C#でのその部分は、LINQを使って楽をする。

サクッと単純移植した結果、1枚の生成に3秒かからないくらい。
これ、Javaとそんなには違わない。
だがしかし、アルゴリズムに改良の余地があることは分かっていたので、それを実装した結果…。

50ミリ秒。

そんなもんさ!
いくら、頑張って最適化しても、ちょこっと速くなればラッキー。
もちろん、そのちょこっとが必要なときもある。

だが、大抵は、アルゴリズムの改良の方が効果的なのだ。

50ミリ秒より速く…はできないだろうなぁ。


2017年5月6日土曜日

啓発本 / その2

前回の記事で書いた啓発本ですが。

著者の経歴の記述の中に、
「04年度に独立行政法人情報処理推進機構(IPA)より天才プログラマー/スーパークリエイターとして認定され」
という記述がある。

で、著作の78ページの「最適化」の説明の中で、プログラムで例が示されているのだが、
そのプログラムが以下である。

a←0
100回繰り返し{
 a ← a +1
 b ← b + a * 1000
}

一般人に分かりやすくするため、= を ← と書いているようだ。

これを最適化すると…

a ← 0
100回繰り返し{
 a ← a +1
}
b ← a * 1000
ループの外に出して、計算量を減らせるぜ、とのこと。

…え?
100回じゃ面倒なので、3回で考えてみよう。
上の例だと、最終的にbは、

b = 1000 + 2000 + 3000 = 6000

下の例だと、

b = 3 * 1000 = 3000

全然違うわ!!




2017年5月4日木曜日

啓発本が読みたくなったので買って来た

立ち寄った先に、ブックオフがあった。
スーパーセールで、本が全て20%引きだったのと、転職するという不安定な心理状況もあり、仕事術的な本を読んでモチベーションを上げようと思ったのだが…。
どれも面白くない(笑)

ビジネスの自己啓発本は自分に合わないようだ。
だが、帰り際に、新書ではなく、文庫の方を見たら、ちょいと面白そうな本があった。

↓これだ。

ブックオフの、中古価格で960円。
だが何故か、「レジで半額」という札が貼られており、さらに20%OFFということで、380円の低価格で購入できた。

アマゾンの批評にもあるが、多少、言葉が過ぎる部分がある。
私にもその傾向があるが(苦笑)、さすがに有料で買ってもらう書籍には向かない書き方であると、私でも思う。

だが、内容的には、面白い。
2015年初版なので、そんなに古い話でも無いし。

・プログラマだけがプロジェクトの進め方を知っている(多少誇張しすぎと思うけど)
・良いリーダー ≠ 好かれるリーダー、良いリーダー = 完遂できるリーダー

まさにその通り。
そして、今の会社で完遂できているプログラマのリーダーは…。
多分、私だけである。

ここ数年でリリースしてきたプロジェクトを見てみよう。

・PS3のゲーム
・3DSのゲーム3プロジェクトのセット

これが私が関わってきたライン(プロジェクト)だが、評価は上々。
3DSの1本目~2本目の間は2ヶ月しかない=2ヶ月で作ったんだぜ。
それで、そこそこの評価がもらえているのがスゴイところ。

そして、もう1つのライン(プロジェクト)だが、

・Vitaのゲーム(1)
・Vitaのゲーム(2)

(1)の方は発売延期、(2)の方は、納期厳守のため、内容ボロボロ…。

念のため付け加えておくと、(2)のリーダーは頑張った方である。
(1)の方は…正直言って、誰がリーダーがすら分からない状態だった。

合間合間に、スマホのプロジェクトもあったのだが、どれもリリースにすら至らず…。
どれも端から見てる分には、リーダーとして引っ張る人が居ない…というのが感想。

そんな状態なのに、私が辞めることに、大賛成のようだからな。
まあ、頑張ってくれ(笑)

2017年4月27日木曜日

Xenko / その3

ようやく、Xenkoのプロジェクトが起動できた。

…というか、起動の一歩手前まで行った(笑)

昨日、大量のエラーが出ていたのだが、各種設定を見直して、
最低限のエラーだけが出るところまで修正。

その結果、Microsoft Biuld Tools の最新版が入ってないからでは?
という結論に。

ネットを探しまくって、ようやく、最新版をGET。
C#のToolsを入れてみたら、プロジェクトの作成は問題なくでき、
Xenkoが起動した(Unityっぽいツール画面が一瞬表示された)。

その後、

「Xenko Game Studio は動作を停止しました」

というあのウインドウが出てあえなく終了。
まだまだ先は長そうだ。

2017年4月25日火曜日

Xenko / その2

インストールについては、全く問題なく終了。
自動的にランチャーが起動し、最新バージョンのインストールも問題なく完了。

テンプレートやサンプルがたくさんあるが、
まずはサンプルゲームがあるので、そのプロジェクトを起動してみよう。



クソツールwww
サンプルの起動でこのエラー。
横のスクロールバーを見れば分かるとおり、大量のエラーですよ!

なにこれ。

その他のプロジェクトを作ろうとしても、全部このエラーが出る。
もうこの時点で、やる気0。

Unityはサクッとプロジェクト作れたぞ。

Unity、C#と来て…

Unityを触りつつ、C#のおさらいをやっている最中ですが。

新ゲームエンジンがリリースされました。

C#で開発できるオープンソースのゲームエンジン「Xenko」が4月25日にリリース。個人利用は無料で,Pro版も7月まで無償
http://www.4gamer.net/games/378/G037845/20170425022/

C#で開発できるゲームエンジン!
使いやすさ、機能性などで、どこまでUnityに対抗できるのか…?

早速インストール中。
以前触ったものでは、一応2Dも作ることはできたので、
その辺りも、Unityに対抗できそうではある。

ここまで広がったら、Unityでいいじゃないか、とも思うが、
Xenkoは、一応「オープンソース」らしいじゃないか。
つまり、バグFixやカスタマイズも自分で可能…なはず。

あ、.NET FRAMEWORK4.6.2を要求されたので、サクッとOKしたが、
これ、Cドライブに入るんじゃないか…。
容量が…。

…。
インストール完了。
Dドライブにインストールできたから、Cドライブは殆ど無傷だったが…。


いまどき、本当に16MBで済むんか?(笑)


ランチャーから、Xenkoを起動した直後の画面。
プロジェクトのテンプレートが並んでる!
2Dゲームっぽいのがないな。
TOP-DOWN RPGってのがそれかな?

センサーデバイスのサンプルや、物理系のサンプルもあるな。
Unityと違って、参考書がないから、YouTube漁ったりしないと、サッパリワカランね。


2017年4月22日土曜日

Visual C# / その2

とりあえず、簡単なフォームパーツを配置して、アプリを作ってみる。

以前(5年以上前)には、ボタンを押したら、45度回転するフォーム、なんてのが15分もかからず作れたし、実際今でも、超簡単だった。

…のだが。

なかなかに酷い罠にはまったので記録しておくことにした。

まず、基本である、Windowsフォームアプリのプロジェクトを作成する。


そして、ツールボックスから、必要なパーツを配置していく。


ここのまま作っていけば、問題はない。
…のだが。
例えば、ボタンを押したときの機能を作りたければ、ボタンをダブルクリックすると自動的にコードが挿入される。それはいい。

だがしかし。
なぜか、ラベルをダブルクリックしてもコードが挿入される。


正直、ラベルをクリックさせる仕様を作るヤツがアホなので、ラベルをクリックさせる必要は全く無いのに、この仕様。

しかも、配置したパーツから、一度「label1」を削除して、次のラベルを配置すると、
同じ「label1」という名前で配置される。
だが、それをダブルクリックして挿入されるコードは、


このように、違う名前で生成される!なんてこったい。
この画像で言うと、上の赤い四角のAPIは、全く使われないゴミコードだ。

しかし、こういうことを繰り返すと、どれがゴミコードか分からなくなることもあるはず。

で、ゴミコードじゃないコードを削除してしまうと…。


というエラー画面が表示され、結果、


パーツ配置がリセットされた!!


これを回避するには。
この部分を展開して、コードを全て表示。


各パーツに関するブロック内にある、一番下の部分。
この行とクリック処理のAPIを削除すれば、エラーが出ずに、コードを削除することができた。

配置したパーツがリセットに、ゴミコードを挿入…。
なんだこのツール…。