onose

Aiming Meetup #1 ゲームグラフィックス編 開催レポート


こんにちは!Aiming人事の小野瀬です。
今回は10月18日に開催されたAiming Meetup #1 ゲームグラフィクス編についてご報告いたします!

当日はたくさんの方にご参加いただきまして、
おかげさまでLTも大変盛り上がり、大盛況のうちに開催することができました。
お忙しい中お越しくださった皆様ありがとうございます。

Aiming Meetup

Aiming Meetupとは、勉強会のような堅い雰囲気ではなく、お酒を飲みながら比較的ラフな雰囲気でLT(LightningTalk)大会を行うクリエイター交流イベントです!

開催頻度はこれから1 ~ 2ヶ月に1回を予定しており、
「UI/UX」や「インディーゲーム開発」など、様々なテーマで実施していきます。

記念すべき第1回は「ゲームグラフィックス編」。
LightningTalkでは他社さまも含め総勢6名のクリエイターが登壇し、ゲームグラフィックスに関して熱弁を振るいました。
一部資料が公開されておりますので、ご興味がある方はご覧ください!




次回予告

次回のAiming Meetupは「UI/UX」をテーマに開催予定です。
興味がある方はconnpassのAimingグループのフォローをお願いします!

改めまして、登壇者の皆様、参加者の皆様ありがとうございました。


vivid_muimui

サーバーサイド勉強会(2017年5月)


東京スタジオのエンジニアの小山です。

この記事では、5月中に行われたサーバーサイド勉強会の内容を紹介したいと思います。
サーバーサイド勉強会の紹介や4月分の内容は前回の記事を見てください。
https://developer.aiming-inc.com/study/server_side_study_201704/

5/11 LT

月初のLTです。

今回は全体的に真面目な勉強ネタという感じではなく、ゆったりとしたものが多かったです。(公開できるスライドが少なくてすみません><)

記号でRuby

社内である日突然出された以下の問題の解説でした。

Ruby (2.3.x あるいは 2.4.x) で以下の条件の下に Hello という文字列を標準出力に出力するプログラム、
あるいはそのようなプログラムを出力するプログラムを書きなさい。

アルファベット、数字、スペース、\u007f 以上のコードポイントの文字を利用してはならない
つまり↓の文字のみを使ってよい
解答時に、レイアウトの都合でプログラムの意味が変わらない程度の改行の挿入は許可

!"#$%&'()*+,-./:;<=>?@[]^_`{|}~

(回答の例はこちらです。)

解説されている間はなんとか理解できている気がするのですが、魔術を説明されているようでとても難しかったです><
解説のスライドは公開できませんでしたが、ぜひ皆さん挑戦してみてください。ちなみに僕は解けませんでした!

5/18 code smellを検出するreekのチェック項目を読む

reekというコードスメルを検出するgemのチェック項目を読む回でした。

Reek is a tool that examines Ruby classes, modules and methods and reports any code smells it finds.

https://github.com/troessner/reek/blob/master/docs/Code-Smells.md
このページにチェック項目一覧があるので、上から順番に眺めていきました。

どれもチェック項目として納得いくものばかりですが、実際運用することを想定したときに、

  • 全部デフォルトだと厳しい
  • ケースバイケースなのでどこに基準を設定するのか難しい
  • 養成ギプスとしては良さそう

というのが全体的な感想でした。
あまりプログラムを書くことに慣れていない・Rubyに慣れていないという場合には設定するとメリットが大きそうです。そうでない場合には、Reekの設定のメンテコストや指摘箇所の対応コストが発生し、メリットよりもデメリットのほうが大きくなりそうという印象です。
ただ、こういうコードスメルがある事自体はちゃんと認識しておく必要があるので、たまに思い出したときに初心に返る気持ちで見直したいなと思いました。

5/25 react-rails の入門ハンズオン

@yhirano55によるreact-railsの入門ハンズオンでした。
@yhirano55がこのハンズオンのために用意した資料を見ながら進めました。react-rails gemに特化した内容ではなく、Reactに触れてみよう、ReactをRailsで使ってみよう、という内容のチュートリアルでした。
資料がとても良くできていて、1時間という短い時間でしたがとりあえず動かすことができて基礎も理解できました。恐る恐るレビューしていたReactのコードも今はちょっと読めるようになりました!
資料は口頭での解説がなくても十分できるようになっていると思いますので、興味ある方はぜひやってみてください。

おわりに

5月はGWがあったので3回分だけでした。
今月はReactのハンズオンが個人的にとても良かったです。Reactに関する情報は色んな所で見聞きしてはいましたが、実際に触ったことがなく、なんとなく怖いという印象を持っていました。ですが、今回実際触ってみると全然怖くないなって思いました!
情報を見聞きして満足するだけでなく、実際触ってみることが大事だなと改めて痛感した回でした。


水島 克

スマホゲームのUI仕様書


ゲームデザイナの水島です。

Aimingでは定期的に社内勉強会をやってます。

自分は若いプランナー向けにゲーム開発の基礎的な話をすることが多いのですが、新しいメンバーが増えてくると、何年か置いて同じ話を繰り返しすることもあります。手抜きといえばそのとおりなんですが、自分の中でも定期的に見直す良い機会だと思ってまして、今回もそんなお話です。

5年前に行った勉強会のスライド「企画が考えるスマホUIデザイン」は、現在27万viewと多くの方にみていただきました。

でもいま見返すと古いと感じるところも結構あります。当時はブラウザのソーシャルゲームからの移行期で、スマホネイティブのゲームも今ほど多く無かったため、いろいろ手探りの状態だったな~と思い出します。弊社の話でいうと、制作のパイプラインなんかは、その後だいぶ改善されたと感じてます。

そこで今回はもうちょっとテーマを絞って、UI仕様書について話してみることにしました。

スライドの中でも触れてますが、プランナーが書く仕様書の位置づけはチームによってバラバラ。しかも人によってはこだわりを持つ部分でもあるため、時に議論のたねになります。例えば、エクセル方眼紙のメソッドは宗教論争みたいになることもあって、傍から見てると面白い。

今回はもうちょっとマイルドに、「チーム毎に仕様書の項目の優先度をつけて書いてみてはどうか」という提案を盛り込んでみました。これが正解!というつもりもなく、選択肢の一つになるとよいかなと思います。

スマホゲームのUI仕様書

ちなみに5年前のスライドはこちらです。

企画が考えるスマホUIデザイン


菅野 明洋

社内でエンジニア読書会をやってみた!


はじめに

初めての人は初めまして!
前回の記事(第2回 Game Gatling LTに登壇してきました!)を見てくれてる人は、お久しぶりです!

大阪スタジオ インフラチームの菅野明洋です。
業務では、主に大阪スタジオのサービスインフラを担当させていただいております。

今回は、読書会を開いてみましたので、その話をまとめました。

読書会について

読書会は、集団で読書や読書に関するコミュニケーションを図るイベントです。
弊社では興味がある話題や本ごとに幾つかの読書会が開かれております。

開催してみた読書会について

今回は、SQLアンチパターンと言う本を題材にしております。
この本の読書会をするキッカケとしては、弊社の若手のエンジニアが最近読み始めたと言うことで話題に上がったことと、他のエンジニアと意見交換出来たら面白いと言う事で開いてみました。

読書会のルールについて

基本的に参加自由

  • 参加者は8〜12人程

開催時間

  •  定時後の45〜60分
    • 子育てで忙しい人も参加しやすくするために短めに設定
    • 経験上、1ページ2分換算で調整
  • 時間内(15〜20分程度)に章の全てを読みきれない場合は2日に分ける
    • 2日に分ける場合の例
      • 1日目にアンチパターンの問題点を黙読し他班に説明
      • 2日目にアンチパターンの解決策を黙読し他班に説明

用意したもの(書籍以外)

  • 付箋、筆記用具
    • 質問や意見を記入
  • ホワイトボード
    • 書籍の内容の説明や上記の付箋を並べるのに使用
  • キッチンタイマー(スマホアプリ)
    • 時間調整に使用

やり方

読書会の流れ

事前にやること

  • 読書会の日時、場所を決める

ステップ1(班分け)

  • 参加者を2班に分ける
    • 現在の決め方は座った席を順で分ける

ステップ2(読書フェーズ:アンチパターンの確認)

  • 各自担当箇所の章を黙読
    • 最近は読む際に付箋を配り、気になった点や質問したい内容を記入
    • ページ数に応じて変更しますが、大体15〜20分を目安にしています

ステップ3(説明フェーズ)

  • 読んだ箇所を別の班に説明
    • 説明する際は、図説する際はホワイトボードも使用
    • 章ごとに10分程度(計20分)の説明する

ステップ4(質問・討論フェーズ)

  • 全体を通して質問、討論を行う
    • 気になる点、分からない点を確認し解消する
    • 討論時にはアンチパターンに対してどのようにアプローチすべきなのか、他に方法が無いのかなど参加者の想いや考えなどのやり取り
    • 過去の話とかで盛り上がることもあります

読書会の様子

弊社の藤野がSQLアンチパターンの5章EAVについて説明している様子

読書会中に書き留めた付箋を集めてホワイトボードに貼っている様子(5,6章)

読書会中に書き留めた付箋を集めてホワイトボードに貼っている様子(3,4章)

ものすごく盛り上がっている時はホワイトボードにびっしり文字や図説が書かれていることもあったのですが、写真を取っていなかったため、現在記事を書きながら後悔しております。

読書会での試みと効果(参加者のフィードバック)

課題1:短時間で効果的に理解を深めたい

  • 対応策
    • 黙読後、読んでいない人に説明する
  • 効果
    • 説明する際に一度情報を整理するため、理解を深めやすくなった

課題2:質疑応答の敷居を下げる。意見を拾い上げやすくする

  • 対応策
    • 付箋を配布し、記入してもらう
  • 効果
    • 気軽に質問しやすくなった
    • 付箋を並べることで、他の参加者の質問(悩み)が見えやすくなる
    • 類似する意見があることで、他の参加者も同じ疑問を思っている等の安心感を覚える
    • 最初から質問・意見の数がわかるため進行の調整が楽になった

最後に

読書会を通して他のエンジニアと意見が交換できたので、とても参考になりました。
技術的な話のみだけではなく読書会の運用方法なども含め様々な意見を頂き、とても勉強になりました。今回の読書会では、まだ未完成な部分もあり進行が安定していないため、ブラッシュアップをしていかなくてはいけないと考えております。
毎回試行錯誤の繰り返している状態ではありますが、今後もこのようなイベントを続けて、より完成度を高めていきたいです。


vivid_muimui

サーバーサイド勉強会(2017年4月)


東京スタジオのエンジニアの小山です。

Aimingでは勉強会や読書会などがいろいろな形で行われているのですが、そのうちの1つにサーバーサイド勉強会という取り組みがあります。
この記事では、サーバーサイド勉強会自体の紹介と、4月中に行われたサーバーサイド勉強会の内容を紹介したいと思います。

サーバーサイド勉強会とは

サーバーサイド勉強会は、東京スタジオの主にrailsを書いているメンバーを中心とした勉強会で、週に1回1時間を業務時間中にとって行われます。(大阪スタジオでもサーバーサイドのメンバーを中心とした勉強会は行われています。)
内容や形式に関しては、「月初はLTを行う」というのが決まっていますが、それ以外は毎回違います。リリースノートを読んだり、ハンズオンをしたり、その時々で興味あるものホットなものをネタにやっています。

少し変わった取り組みとして、毎回常に Google Hangouts を使って社内のみですが配信をしています。忙しくて勉強会の会議室には行けないけど聞きたいという人や、大阪スタジオの人が見れるようにするためです。

参加人数は、会議室・Google Hangoutsそれぞれに10人弱ずつぐらいという規模で行われています。

4/6 LT

月初のLTです。LTの時間は5分でやっています。

  • Google Cloud Container Builderの話
  • ChainerRLを触ってみた話
  • UNIXコマンドの基礎
  • ズルいUI
  • 色の話
  • 美しい Slack 通知を飛ばす美しいコマンド
  • OSS Gateに参加した話

この記事を書くことになったのがLTの発表後だったため、公開できるように作られてないLTが多かったのですが、2つ公開できたので紹介します。

美しい Slack 通知を飛ばす美しいコマンド

https://rastamhadi.github.io/slides/slack_notification_command/

reveal-jsで表示されています. ?を押すとキーボードショートカット, sでスピーカーノートが表示されます

色の話


この回のLTは全体的にクオリティが高いものでどれも為になったのですが、個人的にUI/色の話がとても勉強になった回でした。
絵やデザインといった分野はとても苦手で避けてきたのですが、LTを聞いて頑張れば少しはできるようになるのでは?やってみよう、という気持ちができてきました。LTのあとの雑談で紹介された「ノンデザイナーズ・デザインブック」は速攻で注文し少しずつ読み進めてます!

4/13 Google Cloud Functions で Slack のスラッシュコマンドを作ろうハンズオン

https://cloud.google.com/functions/ 「Google のインフラストラクチャに基づくサーバーレス アプリケーション」

AWSでいうところのAWS Lambdaなのですが、そのCloud Functionsを使ってサーバーレスでお手軽にslackのスラッシュコマンドを作ってみよう、というハンズオンです。
ほかのサービスを連携したりせずに、ハードコードされたリストからランダムに選択しslackに返す、という実装をしました。

実際作られたものの一部が↓です。(どちらも僕が作ったものではありません>< )

シンプルな実装ではありますが、slackとgcpの画面をポチポチ設定して、少しのコードを書くだけでスラッシュコマンドが作成できて、本当にお手軽でした。
ハンズオンではやらなかったのですが、 Firebase Realtime Databaseを使ったスラッシュコマンドの作り方も紹介されました。

とてもお手軽だし便利で最高でした!
ですが、どんなスラッシュコマンドを作るかのアイディアが出ずに僕はまだ何も作れてないです!

4/20 Mastodonのコードリーディングとかアーキテクチャを覗いて見よう

流行りのMastodonのコードリーディングをする回でした。
https://github.com/tootsuite/mastodon
最初にMastodonがどういうものかという話がされ、rake stats -> Gemfile -> schema.rb -> modelを少し、という順に眺めていきました。
大半はGemfileを眺める時間に費やされましたが、知らないGemが多くrubyのエコシステムの充実さスゴイなと改めて思いました。

実装の詳細は全然見れなかったですが、「このgem知らなかった!便利!」とか「この書き方いいね」「この命名なるほど!」など十分有意義なコードリーディング回でした。

4/27 RailsGuideのActiveSupportのページ読み

RailsGuidesの「Active Support コア拡張機能」のページを上から眺めていくという回でした。
本家翻訳版

blank?tryなどのおなじみのが多いですが、上から順番に眺めていくと知らなかったものも結構ありました。
知らなかった中でぼくが便利そう!と思ったのは

この2つでした。

Object#instance_valuesはその名の通りinstanceのインスタンス変数をハッシュにして返してくれます。

class C
  def initialize(x, y)
    @x, @y = x, y
  end
end

C.new(0, 1).instance_values # => {"x" => 0, "y" => 1}

使う機会はそんなに多くはないかもしれないですが、ActiveRecordの#attributesと似た振る舞いですし色々使いみちはありそうです。

String#squishString#stripと似てるのですが、冒頭と末尾のホワイトスペースを除去するString#stripの挙動に加えて、文字列中の連続したホワイトスペースを一つに減らしてくれます。

" \n  foo\n\r \t bar \n".squish # => "foo bar"

RailsGuidesは全体通すとボリュームが多いですが、見るたびに既に見たことが有るページでも新しい発見があるので、定期的に読み直さなきゃなと改めて思いました。

おわりに

月イチでLTを行う現在の勉強会のスタイルなって半年ほどなのですが、正直なところLTのネタ出しは毎回苦戦しています。
ですが、
LTをする -> 勉強会・LTを通して新しいことを知る -> ネタ出しのために勉強する -> LTをする(最初に戻る)
という良いサイクルが自分の中に出来上がりつつあって、現在の勉強会のスタイルは個人的にとてもありがたいスタイルだなと感じています。

まだ勉強会で吸収することばかりですが、そのうち新しいものを伝えていく側になれたらと思っています!


藤井 章暢

クローバーラボ株式会社の方々と勉強会対決しました


こんにちは。
大阪スタジオ、クライアントエンジニアの藤井です。

去る3月11日(土)にクローバーラボ株式会社の皆さんと勉強会対決を行いました。
私も登壇させて頂きました!
今回はその内容と結果をレポートしていきます。

イベント名

激突! Aiming x CloverLab

ルール

4つの対戦項目(後述)で勝負を行いました。
発表の最後に参加者の皆様にAimingスタッフ・クローバーラボスタッフのどちらの内容が良かったかを投票していただき、その得票数を競うと言う内容でした。
持ち時間は1人15分でした。

対決項目(お題)

・クライアント
・インフラ
・サーバー
・開発環境

各発表内容のまとめを記載していきます。
続きを読む


勉強会・カンファレンスの運営スタッフとしての活動


大阪スタジオのwebエンジニアの富田です。

弊社の新卒採用サイトが公開されました!
私の写真も使われていて、ちょっとドキドキしてしまいます。

リクルートサイトの中でも記載されているのですが、Aimingでは社内・社外のコミュニティ活動が推奨されています。
今回は、大阪スタジオのスタッフが運営で関わっている、関西の勉強会・カンファレンスをご紹介したいと思います。


Game Creators Conferenceは、関西で最も大きなゲーム関連のカンファレンスです。

今年は、2/18に開催され、550枚のチケットが完売する盛況ぶりでした。
このカンファレンスの実行委員にエンジニアマネージャーの槙石が参加させて頂いています。

昨年の開催時は、サーバーエンジニアの山藤が登壇しエントリを書いています。


関西ゲーム勉強会は、過去11回行われている勉強会です。

前回は250名ほどご参加頂けました。
Game Creators Conferenceよりも、開発者の現場に近い部分の勉強会を目指し、参加者同士の交流を目的としています。

最近は規模が拡大し運営が大変になってきていますが、開催する毎に新しい出会いや達成感があります。

昨年、私が運営として参加した時のエントリです。


Game Gatling LTは、15名程が登壇し連続してLTを行う、若干特殊な勉強会です。

参加者は、多くのゲーム開発者の登壇を聞くことができ、登壇者もLTということであまり負担もなく、楽しんで頂いているかと思います。
過去2回開催し、いずれも好評でしたので、第3回も計画中です。

インフラエンジニアの菅野が登壇のエントリを書いています。


3/11(土)には、合同勉強会ということで、クローバーラボ株式会社様と「激突! Aiming x CloverLab」を開催します!
遊び心で対決形式になっています。どうなることか、とても楽しみです!

勉強会・カンファレンスの運営はあまり表に出ることはありませんが、コミュニティのメンバーの方々と協力しながら、開発者同士の交流のお役に立てれば!と思います。


s-kuroki

Ruby関西勉強会に会場を提供しました #rubykansai


大阪スタジオのwebエンジニアの黒木です。

1/14(土)に開催された第76回 Ruby関西 勉強会に大阪スタジオのセミナールームを提供しました。

Ruby関西は関西では最も歴史の古いRubyコミュニティで、現在も2ヶ月に1度勉強会が開催されています。また、主催イベントに過去6回開催されている関西Ruby会議があり、次回開催が今年の5/27(土)に予定されています

勉強会の発表内容は毎回多岐に渡っています。前回は私も発表させてもらいました(スライド)。

今回は弊社の植森が「ゲーム会社でのRuby : rails活用事例」と題しまして、AimingでRubyとRailsをどのように利用しているのかという話をさせてもらいました。

Aimingでは勉強会への会場提供を積極的に行っています(東京大阪)ので、いつでも気軽に問い合わせしてください。をはじめ、Aimingスタッフに連絡してもらってもOKです。お待ちしています。


菅野 明洋

第2回 Game Gatling LTに登壇してきました!


はじめに

初めての人は初めまして、前回の記事(まべ☆てっく vol.1に登壇してきました!)見てくれてる人こんにちは!
大阪スタジオ インフラチームの菅野明洋です。
業務では、大阪スタジオのサービスインフラを担当させていただいております。

今回は、2016年10月2日の日曜日に大阪で開催されました第2回 Game Gatling LTにて、スピーカーとして私と藤井が登壇させていただきましたので、レポートとしてまとめました。

GGLTとは

関西でゲーム開発に携わるエンジニア、デザイナー、プランナー等の人が集まり、ライトニングトークを行うイベントになります。

今回発表させていただいた内容について

今回の発表は、剣と魔法のログレス いにしえの女神で使われている技術やノウハウの話になります。

■菅野明洋:スマホ版ログレスでグローバル展開を想定したサーバ構築をAnsibleで試してみた話

■藤井章暢:スマホ版ログレスにポストエフェクトを組み込んだ話


私の方ではAnsibleでの設定例を中心に発表しております。
Ansibleとなりますと、色んな書籍やブログ等でベストプラクティスや使用方法が記載されていると思いますが、今回の発表ではグローバル展開を想定した際に、どのように工夫をしたのかをまとめました。
グローバル展開を行ったとしても、サーバの構成が一切変わらないとなれば特に悩む必要はないのですが、現地のインフラ事情や新規実装を行うとなると日本版と全く同じサーバ構成と言うわけにはいかないケースもあると思います。
構成を国やデータセンター毎の差分を管理を行い、各地で行った改善内容を別の地域へ反映するなど相互的に良い事を取り込み合うことが出来たら良いかなと思いました。

藤井の発表では、クライアントにポストエフェクトを導入した話になります。
戦闘中のシーンに合わせて放射線状にブラー処理を入れ、従来の戦闘シーンをより迫力のあるシーンにしています。詳しくはスライドをご覧ください。

■発表中の様子

2016102402

発表中の菅野

2016102401

発表中の藤井

感想

LTとなりますと、「あれもこれも話したい。でも時間がない」といった葛藤があります。
ベースとなる発表資料は一週間から数日前には完成していたのですが、発表直前までスライドの編集したり脳内練習したり等、発表直前まで調整していました。

結果的には、一回目のドラがなったラスト1分前で私の喋りがスピードアップし、制限時間の終了を表すドラと同時に「ご静聴ありがとうございました」と言う形になりました(ギリギリセーフ?)。

最後に

GGLT運営の皆様、会場に来場した方々、登壇の機会を頂きありがとうございました。
とても貴重な経験をさせていただくことができました。


菅野 明洋

まべ☆てっく vol.1に登壇してきました!


はじめに

初めまして。
大阪スタジオ インフラチームの菅野明洋です。
業務では、大阪スタジオのサービスインフラを担当させていただいております。

今回は、2016年9月8日 木曜日の東京にて開催された株式会社マーベラス様主催の「まべ☆てっく vol.1」にて、スピーカーとして登壇させていただきましたので、レポートとしてまとめました。

まべ☆てっくとは

株式会社マーベラス様が主催する勉強会です。
今後もゲームに関わらず色々な題材を取り扱った技術系の勉強会を開催していくそうです。

今回発表させていただいた内容について

発表資料は以下のとおりになります。


本発表は、昔、私が開発業務を行っていた際に、DB周辺の品質向上や機械的な設計レビューの省力化を行う目的で実装した物を成果物として発表させていただきました。

内部処理の話をすると時間オーバーする見積もりだったので、内部の話は入っていません。

発表内容は下記のとおりになります。

  1. どんなツールか?
    1. ツールコンセプト
    2. 実行環境
  2.  ツールが出来るまでの流れ
    1. その時起きた問題
  3. 考えた解決策
  4. 実装後の成果
  5. 将来の実装予定(願望)

参加してみて

超豪華な登壇者に囲まれながら、初めて勉強会で発表しましたので、とても緊張しました。

今回の勉強会はゲーム業界の人が少なかったので、もうちょっとゲーム開発に関わっていた時の内容を含めて背景を説明したほうが、参加者の反応が良くなったのでは無いのかな?と思いました。

次回の登壇では、その辺りも注意しようと思います。

最後に

主催者の皆様のご厚意で、とても貴重な経験をさせていただくことができました。
関係者の皆様、ありがとうございました。

次回以降も何かご協力できることがありましたら、お手伝いさせて頂きたいと思います。