質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

暗号化

ネットワークを通じてデジタルデータをやり取りする際に、第三者に解読されることのないよう、アルゴリズムを用いてデータを変換すること。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

zip

ZIPとは、複数のファイルをひとつにまとめて圧縮したり、圧縮したファイルを展開することができるアーカイブフォーマットです。 1998年以降のWindowsOS各バージョンで、標準の圧縮フォルダとして採用されています。 MacOSでも、X v10.3以降に他の圧縮ソフトとまとめてZIP機能を採用しています。

Q&A

解決済

3回答

3588閲覧

ゲームプログラミングにおいてお勧めの暗号化・ファイル圧縮ライブラリはありますか?

KureteRubyLua

総合スコア206

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

暗号化

ネットワークを通じてデジタルデータをやり取りする際に、第三者に解読されることのないよう、アルゴリズムを用いてデータを変換すること。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

zip

ZIPとは、複数のファイルをひとつにまとめて圧縮したり、圧縮したファイルを展開することができるアーカイブフォーマットです。 1998年以降のWindowsOS各バージョンで、標準の圧縮フォルダとして採用されています。 MacOSでも、X v10.3以降に他の圧縮ソフトとまとめてZIP機能を採用しています。

0グッド

1クリップ

投稿2018/01/31 11:44

タイトルの通りです。ゲーム製作において良いファイルの暗号化や圧縮のライブラリで良い物が良く分かりません。よろしくお願いします

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yohhoy

2018/02/01 01:34

どんなデータを圧縮・暗号化したいのでしょう?音声(効果音/BGM)・静止画・動画・テキスト・テクスチャ? また”良い”の観点も必要です。処理速度が速いほうがよい?データが小さくなったほうがよい?プログラミングのし易さ?
guest

回答3

0

ベストアンサー

暗号化については割愛して圧縮について。

前提

画像や動画や音声ファイルは多くの場合すでに圧縮されています。

テキスト

これは圧縮されていないことがおおいです。しかし多くの場合圧縮するまでもないファイルサイズです。

画像

まずラスター画像とベクター画像があるわけですが、このうちよく目にするのはラスター画像です。jpgとかpngとかgifとかそんなやつです。ベクター画像でもsvgなんかは最近良く目にするようになりました。

ラスター画像は、bmp以外は大体圧縮されていると思っていいです。

詳細は

非プログラマーのためのデジタル画像入門講座 - Qiita

音声

こちらもwav以外は圧縮されているものが大半です。有名な形式はm4a(aac), ogg, opus, mp3なんかでしょうか。

動画

動画はちょっと複雑ですが、多くの場合すでに圧縮されていることに変わりありません。

動画と聞いてよく耳にするのはavi, mp4, mpeg, mpeg2, mkv, swf, mov, mts, m2ts, webmなんかでしょうか。動画というのは映像と音声を合体してできるので、これらは映像と音声を格納する箱に過ぎません(コンテナ)。つまり考えるべきは映像と音声についてですが、音声は前述の通りですので割愛します

映像

どういうコーデックが使われているかによります。aviコンテナに格納されることが多いのが無圧縮の映像です。ではそれ以外は?

mp4コンテナには、h.264が殆どの場合コーデックに採用され、圧縮されています。h.264コーデックはよく利用されていて、mts, m2ts, ts, webm, mkv, swfなんかにも格納されていたりします。

Adobe FlushでおなじみswfはSorenson SparkかVP6というコーデックが採用され、圧縮されています。

他にはGoogleが最近推しているVP9とか目下仕様策定中のAOMedia Video 1 なんかがあります。

まあまとめると大体圧縮されていると思って構いません。

で、どうするか

圧縮は本当に必要か?

すでに圧縮されているものを再度可逆圧縮しようとすると余計ファイルサイズが増えたりします。

ばらばらファイルが有るのが嫌だ、一つにまとめてくれ。ということなら、圧縮しないでまとめるだけどtarというのがあります。

投稿2018/02/01 01:06

yumetodo

総合スコア5850

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

具体性がないならば結局汎用的なものに落ち着くと思いますよ。

投稿2018/01/31 11:46

HogeAnimalLover

総合スコア4830

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

一口にゲーム用と言っても、シチュエーションによって圧縮方式だの暗号化方式だのは適切なものが変化します。ですからこれがいい、とは断言できません。

画像一つとっても、通常の表示に使うテクスチャなどであれば、圧縮率と展開速度はトレードオフの関係がありますから、いくら小さくできるからといって展開速度が遅い(あるいはCPUなどのリソースを多く消費する)ようでは、ゲーム自体が遅延することになりかねません。
逆にデータをネットワークごしに転送するような場合は、多少展開速度が遅かろうとも、圧縮率を重視してより短い時間で転送できる方がよいわけです。

投稿2018/01/31 13:52

tacsheaven

総合スコア13703

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問