X



任天堂「今後C++は捨てJavaScriptで開発していく」
0001デフォルトの名無しさん
垢版 |
2013/03/20(水) 13:07:40.60
任天堂のゲームはこれまで,CやC++といったプログラミング言語で開発されており,
そのため高いパフォーマンスを発揮していたが,反面,開発に時間がかかっていたという。
このセッションではそれ以外の方法,つまりHTMLやJavaScriptを使ってWii Uの全機能にアクセスしつつ,
より手軽にゲーム開発を行う方法が説明されるようだ。
http://www.4gamer.net/games/999/G999905/20130316001/
0203デフォルトの名無しさん
垢版 |
2013/03/22(金) 11:37:19.10
>>200
ありがと。

>>196
それだと、maxLengthを隠蔽できてない。

newを使う場合はこう。
var Foo = function() {var maxLength;};
Foo.prototype.setMaxLength = function(val) {maxLength = val;}
Foo.prototype.getMaxLength = function() {return maxLength;};

var x = new Foo();
console.log(x.maxLength);    // => undefined
x.setMaxLength(100);
console.log(x.getMaxLength()); // => 100
console.log(x.maxLength);    // => undefined
x.maxLength = 200;        // => can't change Foo's property
console.log(x.getMaxLength()); // => 100
try {
  console.log(x.getMaxlength());
} catch (e) {
  console.log(e.message);
}
0204デフォルトの名無しさん
垢版 |
2013/03/22(金) 11:38:26.18
newを使わない場合はこう。

var x = {};
(function(obj) {
  var maxLength;
  function getMaxLength() { return maxLength; }
  function setMaxLength(val) { maxLength = val; }
  obj.getMaxLength = getMaxLength;
  obj.setMaxLength = setMaxLength;
})(x);

console.log(x.maxLength);    // => undefined
x.setMaxLength(100);
console.log(x.getMaxLength()); // => 100
console.log(x.maxLength);    // => undefined
x.maxLength = 200;        // => can't change Foo's property
console.log(x.getMaxLength()); // => 100
try {
  console.log(x.getMaxlength());
} catch (e) {
  console.log(e.message);
}
0212デフォルトの名無しさん
垢版 |
2013/03/22(金) 13:16:53.40
基本的にJavaScriptでは「プライベート変数」はあきらめたほうがいいよ。
newも使わない方がいい。
男なら、publicなプロパティだね。
で、結局typoの問題は解決できないけど、それがJavaScriptってもんだ。
嫌ならTypeScriptがいいんじゃね(使ったことないから知らんけど)。
0216デフォルトの名無しさん
垢版 |
2013/03/22(金) 13:46:05.31
Javaをやってると奴隷とかドカタとか煽れるけど、スペルミスなんて、JavaやC#なら入力した
瞬間にエディタが教えてくれるに、それを人間が目で探すとか、動的型の言語のプログラマは
マシーンですか。
0217デフォルトの名無しさん
垢版 |
2013/03/22(金) 13:59:19.86
JSに限った話じゃないけどテストを書けば問題ないってのは机上の空論だな
>>203もテスト(らしきもの)を書いているけど、結局のところなんのチェックも出来てない訳だし
(203はそろそろ自分の間違いに気がついただろうか?)
0220デフォルトの名無しさん
垢版 |
2013/03/22(金) 15:54:14.44
>>203
だからこれは何なんだよw
>var Foo = function() {var maxLength;};
>Foo.prototype.setMaxLength = function(val) {maxLength = val;}
>Foo.prototype.getMaxLength = function() {return maxLength;};
意味がわからんぞw
偉そうなこというまえに基礎からやりなおしてこいよw
0223デフォルトの名無しさん
垢版 |
2013/03/22(金) 16:05:52.53
真に恐ろしいのは目の前で裸で立ちすくむソイツではなく
どこに潜んでいるかわからない見えないアイツ
2年前に学ばなかったのか
0227デフォルトの名無しさん
垢版 |
2013/03/22(金) 16:29:34.79
安い底辺プログラマが使えるから開発コスト下げられるとか妄想してるんだろうけど
0228デフォルトの名無しさん
垢版 |
2013/03/22(金) 16:30:04.30
上のほうが他人のタイポがどうこう言ってる人がいるけど、
自分ならスペルミスしないってのもそうとう凄いと思う。
0231デフォルトの名無しさん
垢版 |
2013/03/22(金) 16:52:40.15
>>217
間違いに気づいたよ。指摘ありがと。
普段はnew使わないんだけど(JSONでサーバからデータを受け取ることがほとんど)、
なんとなくnewの例も書いてみたくなって背伸びしちゃった。

ほとんどの場合がViewかViewModelらしきものを使うから、>>204みたいなコーディングしてる。
あと、try-catchはテストじゃなくて、例外が発生することの確認。

結局、JavaScriptってtypoには無力だと思うんだが、反論ある人居る?
0232デフォルトの名無しさん
垢版 |
2013/03/22(金) 16:57:57.14
>>226
眼を皿って…typoしたときって自分で違和感ない?
「ん?俺今typoしたかな」って…その時だけ見ればいいじゃん
0233デフォルトの名無しさん
垢版 |
2013/03/22(金) 17:01:42.36
>>231
ES5以降で導入された(る)機能を活用すればインタプリンタが検出してくれたり、
エディタで補間なんかもやりやすくなるよ
>>203だってstrict modeならエラーがちゃんとでるし
もうちょっと勉強しましょう
0234デフォルトの名無しさん
垢版 |
2013/03/22(金) 17:24:17.27
>>232
ああそうなの。
おれ、タイポにぜんぜん気づかないときがあるわ。
IDEがスペルミスをチェックしてくれる環境とかすごい楽で好き。

スクリプトのstrictモードに需要があったり、JavaScriptにコンバートする
型付の言語が発表されたりするのをみたら、スペルチェックなんか
機械にやらせたいって人おおいんじゃないの。
0240デフォルトの名無しさん
垢版 |
2013/03/22(金) 18:48:03.66
中身はなかったなw
0241デフォルトの名無しさん
垢版 |
2013/03/22(金) 18:56:20.02
下請けイジメの任天堂
0243デフォルトの名無しさん
垢版 |
2013/03/22(金) 19:56:03.80
はよ
0244デフォルトの名無しさん
垢版 |
2013/03/22(金) 21:36:56.49
>>239
ITドカタとか「お前の担当のこの画面、こっちのとだいたい同じだからコピペして作れ」みたいのが基本だからな。
0246デフォルトの名無しさん
垢版 |
2013/03/23(土) 07:49:17.45
良く分からんが、Javascriptの有名なライブラリがsealを中で自動的に
使ってくれるんじゃないの?
Javascriptにオブジェクト指向のclassやextendsのような構文を追加
するライブラリがわんさかあるって聞いたが、そのライブラリどもが
自動的に使ってくれるんじゃないのか
0249デフォルトの名無しさん
垢版 |
2013/03/23(土) 10:30:09.23
>>246
デフォルトでseal状態にされたら安全にはなるけど不自由になる
sealをサポートしてないブラウザの割合も多いし
0251デフォルトの名無しさん
垢版 |
2013/03/23(土) 10:34:07.28
普通、コア部分はC/C++で開発して簡易なゲームロジックは独自スクリプトとかLuaとか使うもんじゃないの
そこをJavaScriptにするってこと?だったらもう少しマシというか新しい言語選んだほうがよくね?
0252デフォルトの名無しさん
垢版 |
2013/03/23(土) 10:40:21.59
コア部分なんて一回開発したら使いまわせるようにするだろ
0253デフォルトの名無しさん
垢版 |
2013/03/23(土) 12:35:35.83
ここまで、どういう経緯でこういう事になったのかの説明無し
http://www.nintendo.co.jp/ir/library/events/130131/05.html

ゲーム機のソフトウェア開発が、どんどん大きな投資を必要とするようになった今、
ウェブサービスの転用、プロトタイプの作成、あるいは、インディーズゲーム制作など、いろいろなことを考えたとき、
ソフトウェアの作り手を広げる試みは非常に重要になってくると思っています。
3月のGDCでは、この『Wii Street U powered by Google』や、
いくつかのVoDサービスの開発に使用された、HTML5やJavaScriptなどのウェブ技術でWii Uソフトを開発できる環境や、
Unityという多くのユーザーに使われているクロスプラットフォームのゲームエンジンなど、
ソフトウェアの作り手を広げる試みについて、いくつかご紹介できる予定です。

はいはい解散解散。
0256デフォルトの名無しさん
垢版 |
2013/03/23(土) 22:08:36.49
日本のゲーム会社は無能のカスしかいないのに
なぜか全部自分のとこで作ろうとする
0257デフォルトの名無しさん
垢版 |
2013/03/23(土) 22:13:37.01
固定長メモリの不安感のせいだと思う。
C時代のレベル、ヒープとかあまりメジャーじゃなかった頃はまだイケてた。
海外の文献見てもメモリ管理怪しいのに何で向こうは気にしないんだろうね。
0258デフォルトの名無しさん
垢版 |
2013/03/24(日) 10:15:40.18
Unity 風味前提で、って話でしょ。

この古臭いレスの輩たちは何なの?
0266デフォルトの名無しさん
垢版 |
2013/03/24(日) 21:40:15.79
そもそもお前ら

> UnityのJavaScriptはJavaScriptと全く違うだろ

↑これが理解できるのかw凄いな
0273デフォルトの名無しさん
垢版 |
2013/03/27(水) 22:18:03.24
>>23
> ビックリするかもしれないけどいまやJavaScriptのコードは平均してJAVA並の速度なんだよね

こういう「平気でうそをつく人たち」がウェブ界隈には多すぎる。
JavaScriptは以前よりはずっと速くなったが、依然C++よりはずっと遅い。
単純な演算でも平均して5倍は遅いし、
実アプリケーションではメモリ効率の悪さによる速度低下やキャッシュミス、GCポーズ、
低レベルアクセスのオーバーヘッド、SIMD命令やマルチスレッドを活用できないこと等でさらに差が広がる。

各種ベンチマーク。2のTime、Memory、Codeの表をチェックしてね。これが現実の性能差。

C++ g++ speed ÷ JavaScript V8 speed | Computer Language Benchmarks Game
http://benchmarksgame.alioth.debian.org/u32/benchmark.php?test=all&;lang=gpp&lang2=v8

実際、C++/OpenGLで書かれたものとJavaScript/WebGLで書かれたもので
5倍スループットが違ったりするんですよ?
一番オーバーヘッドが小さい(それこそほとんどOpenGLにコールを渡すだけの)WebGLでだ。

しかもこの1年、JavaScriptの速度の伸びは停滞している。一通り最適化しつくしてしまった。
だから今まで頑なにJavaScriptで十分と言っていたMozillaがasm.jsを作ってきたりしている。

>>36
>これは極端な例だけどJSがダントツで早い状況もある

C++のコード見たがなめとんのか
https://github.com/kwatch/template-engine-benchmarks/blob/master/others/string-concat/cpp/bench_strcat.cpp
0274デフォルトの名無しさん
垢版 |
2013/03/27(水) 22:19:43.96
> /*
> * Are you a C++ expert? PLEASE ADVICE ME!
> */

くそこいつまじでむかつく
素人がベンチマーク取んなや
0275デフォルトの名無しさん
垢版 |
2013/03/27(水) 22:26:48.58
ttp://phoboslab.org/log/2012/08/letter-to-john-carmack
> Native code developers shouldn’t be defensive about true accusations of security and stability
> limitations, and JS developers shouldn’t be defensive about true accusations of inefficiency.

「ネイティブコード開発者はセキュリティと安定性の限界に対する正しい非難に抗弁するべきではないし、
JavaScript開発者は非効率性に対する正しい非難に抗弁するべきではない」

とかのJohn Carmackがおっしゃっております(´・ω・`)
心より同意するものです(´・ω・`)
0276デフォルトの名無しさん
垢版 |
2013/03/27(水) 22:32:21.95
HAL-NOTEとMSX-VIEW
0279デフォルトの名無しさん
垢版 |
2013/03/27(水) 22:42:24.09
>>23はJavaと比べてるんだけどさ

>>273てアホなの?
0280デフォルトの名無しさん
垢版 |
2013/03/27(水) 22:44:51.67
まさかの任天堂スマホアプリ参入宣言かと
0281デフォルトの名無しさん
垢版 |
2013/03/27(水) 22:47:07.94
HAL-NOTE
0282デフォルトの名無しさん
垢版 |
2013/03/27(水) 22:47:38.30
OSをHAL-NOTEに!
0284デフォルトの名無しさん
垢版 |
2013/03/27(水) 22:55:18.23
HAL-NOTEあげ
0287デフォルトの名無しさん
垢版 |
2013/03/27(水) 23:22:25.30
MSX-VIEW
0294デフォルトの名無しさん
垢版 |
2013/03/28(木) 22:25:05.92
JavaScriptは言語であって、コンパイラが優秀であればC/C++に匹敵する速度は出る。
任天堂は、専用コンパイラを開発する、しているはず。
言語的にはC/C++と似通っていてるが、自由度が高く開発効率はいいんだろう。
0295デフォルトの名無しさん
垢版 |
2013/03/28(木) 22:30:09.45
(*´・∀・)(・∀・`*)ヘー
0296294
垢版 |
2013/03/28(木) 22:35:24.46
読んだら違ってた。環境自体は独自開発じゃなく既存品を使うんだな。
0300デフォルトの名無しさん
垢版 |
2013/03/29(金) 00:59:21.03
別にほっといたってC++なんか捨てられるのはわかってるんだからわざわざ騒ぐ事でもないな
これからスクリプトでやっていく流れは皆わかってるだろうし、JavaやC#とスクリプト言語を使い分けていくでしょう
0301デフォルトの名無しさん
垢版 |
2013/03/29(金) 01:01:25.28
webkitベースということだからfirefox系のものを使うことは無いな
JavascriptVM自体はどこから持ってきたのか説明はあったのかな?
レスを投稿する


ニューススポーツなんでも実況