【CEDEC 2018 シリーズ⑤】CEDECとゲーム開発と

*English translation below

こんにちは。エンジニアのKANです。
今回、初めてCEDECに参加させていただきました。色々勉強になる点があったのでそれについて少しお話しします。

・OSSライセンスについて

ゲームの作り始めには基盤実装やアセットの用意などを行います。環境によってはフルスクラッチでも良いのですが、今の時代便利なライブラリやUnityであればアセットを使うことも多いですよね。その際、表記されているライセンスにしっかり気をつけないと、後々問題になるというお話でした。
よく見かける”MIT”などは、利用者がわかる場所に表記を載せておけば大丈夫ですが、”GPL”を利用した場合、開発したゲームのコードも公開する必要が出てくるので注意が必要です。
Unityのアセットも例外では無く、「お金を払ったからあとは大丈夫」では無く、しっかり確認する必要があります。ちなみにゲームのサーバー側で利用する分には特に表記などは必要ありません。
私自身、ライセンスについては理解が曖昧な部分が多かったので非常に勉強になりました。

・ゲームのローカライズについて

どうせゲームを作るなら、日本だけではなく世界の人に遊んで欲しい。そうなるとアイテムの名前やキャラ名などを日本語から英語に切り替える処理が必要になります。
その場合、ゲームの中に何かしらかの対応を入れておく必要が出てきます。よくある手法としては、マスターデータで各言語用に翻訳したものを追加しておき、それを切り替えるやり方があります。今回講演で聞いた某大手タイトルでは文章によって冠詞を付けたり、複数形に変換したりと、かなり苦労されているとのことでした。
また、中国では独自の規制などがあるので、事前にそれを十分に確認してから 対策を講じるようにしておくと良さそうです。

・セキュリティについて

数ヶ月、または数年苦労して念願のリリース。しかしすぐにチートされて荒らされてしまっては困りますよね。
SECCONというセキュリティに関するコンテンストがあり、その中で行われたゲームアプリのチート方法と対策について見てきました。
対象となっていたアプリはUnityでIL2CPPを使用したapkで、簡単なチート対策は搭載されていましたが容易に突破されていました。
基本的な手法としてはデコンパイルされて中身を覗かれ、都合の良い風に処理を改竄されたり、そこからメモリの並びを推測してメモリチートなどがされていました。
簡単に出来る対策の一つとしてはソースコードを読み辛くする難読化があります。ただしそれも結局チート者の腕によっては最終的に突破されるので時間稼ぎにしかならないとのことでした。本当に重要なロジックはサーバー側に持たせておき、クライアントにあるものは最悪改竄されているかもしれないと考えておいたほうがいいですね。

今回のCEDEC 2018では他にももっと楽しく、奥深い話がたくさんありました。
機会があればまた参加したいところです。

(KAN)

【CEDEC 2018 Series ⑤】CEDEC and game development and

Hello, I’m KAN, an engineer.
This was my first time participating in CEDEC. There were many enlightening things that I would like to talk a little bit about.

・About OSS license

At the start of creating a game, basic framework and asset preparations are carried out. Depending on the environment, making it from full scratch is fine but in this day and age convenient libraries and Unity are frequently used. Thus, they talked about how if you do not pay appropriate caution to the license displayed, it can lead to various problems later on.
It would be fine for frequently seen “MIT” license and so on to be displayed in a place that users can see, but when using “GPL,” it will also be necessary to make the code open source, so caution must be exercised.
Unity assets are no exception and must be properly checked instead of brushing it off, thinking, “I paid already, so everything will be fine.”
By the way, there is no need to display anything in particular when you’re using the libraries on a game server.
As for myself, there were many areas that I did not clearly understand about licenses, so it was extremely enlightening for me.

・About game localization

If you are going to make a game, you would want everyone all over the world to play it, not just Japanese people. In that case, it will be necessary to localize item names and character names from Japanese to English.
In such a case, it will be necessary to carry out some sort of localization system in the game. A commonly used method is adding translations of each language into the master data, and put some way to switch between languages.
In this lecture, I learned that for a certain major title, quite a lot of effort was expended in adding articles and changing to plural form depending on the text.
China has its own unique regulations as well, so it seems like it would be good to check those properly in advance before coming up with measures.

・About security

A release that you have been waiting for, spending months and years of effort. It’s troubling to have the system cheated and messed up right away, right?
There’s this contest called SECCON. It’s a contest regarding software securities. I had a look at some game apps cheats and countermeasures presented.
The app in question was an apk using IL2CPP in Unity. A simple cheating countermeasure had been implemented, but it was easily overcome.
The basic method was to have it decompiled and its contents peeked at. Falsifying the process at some places and looking at how the memory was stored and making some kind of memory cheat.
One countermeasure that can be easily implemented is to make it more difficult to read the source code. However, that can also be overcome depending on the skills of the cheater, so it was concluded that that only resulted in a delay in time. It might be better to think what’s the worst thing in the client that can be falsified and have the server hold the really important logic.

There were many more fun and interesting things that were talked about at CEDEC 2018.
If I have another chance, I would like to participate again.

(KAN)

おすすめ