はてなキーワード: コンパイルとは
いろいろ忙しくて乗り遅れたのですが余裕ができたので書いてみる。
発明初期のライセンスの諸々は省略で、あくまでプロダクトとしての10選とします。
元ネタはこの辺。
https://anond.hatelabo.jp/20241012181121
現在のテトリスの基礎となる設置移動と緩急をつけて上昇する難易度が絶妙であり、
初心者からスコアのカウンターストップを目指す上級者まで楽しめる形となっている。
アーケードゲームの流行と併せ、当時の日本のテトリスブームはここから始まることとなった。
当時のゲームボーイにおける通信対戦機能を広めることになったエポックメイキングな作品。
横井軍平氏がプロデューサーを務め、通信対戦モードの導入はもちろんのこと、
当時のコンシューマのテトリス作品の中では非常に快適な操作性であったこともあり大ヒットを記録した。
「ハート」レベルは令和の現代でも通用する高難易度。現在はSwitchでの移植により遊ぶことができる。
海外版のファミコンであるNES(Nintendo Entertainment System)のテトリス。
ファミコン版はBPSから出ているが、こちらは任天堂から発売しており、ファミコン版とは操作性を含め全く別物となっている。
ゲームボーイ版に近い快適な操作性であり、またレベルアップについてもゲームボーイテトリスと同様に難易度上昇は非常に高速。
スコアのカウンターストップについては超高難易度であり、MAXOUTと呼ばれ多くのプレーヤーの最終目標となっていた。
10年ほど前からこのゲームの世界大会が開催されており、テトリスの権利元の協力もあり毎年の大きなイベントとなっている。
通常では人力では操作できないスピードに到達するためプレイに限界があるのだが、近年操作方法を工夫することにより超高速状態でもプレイをする方法が発明され、現在も世界大会のレベルが年々上昇している。
2024年1月に通常プレイを約1時間続けることによりクラッシュすることに成功したことが世界的なニュースになる等、テトリス史の中で最も重要なテトリスの一つであることは間違いないだろう。
キーホルダーサイズの小型の液晶のおもちゃ。テトリスを中心としたブロックゲームで遊ぶことができる。
入手性の高さ、そして小型のガジェットの手軽さから学生を中心に一大ブームとなった。
訴訟問題となった「テトリン55」を始めとしてほとんどが非ライセンス品であった。
その後ライセンス品としてはテトリスJr.という名前で発売された。
この時のキーホルダー型ゲームのブームはその後1997年のたまごっちに受け継がれていった。
競技向けに最適化された高難易度テトリスで、近代では一般的となった「出現後即接着(20G)」のシステムを初めて本格的に組み込んだ作品である。
続編である「Tetris: The Absolute – The Grand Master 2(とアップデート版のPLUS)」、「Tetris: The Grand Master 3 – Terror Instinct」とともに
長い時を経てようやく初代TGMとTAPの移植が行われ、今はSwitchで遊ぶことができる。
最新作である4については何度か発表と中止を繰り返しているが、2024年にテトリスのライセンスの取得をしたことをアリカが発表しており期待が高まっている。
携帯電話のアプリとして公開されたテトリス。アプリは買い切りが基本のため、十数種類の異なるバージョンが存在していた。
当時は物理キーの十字キーの中心に決定ボタンがある携帯電話がほとんどであり、その操作方法に最適化されたテトリスとなっている。
シリーズを通しておそらく遊んだことのある延べ人数としては日本最大なのではないかと考えている。
そのうちの一つであるTETRIS DIAMONDはSwitchに移植されたため遊ぶことが可能。
ワールドルールというテトリスの新仕様(ここにはT-Spinも含まれる)を盛り込んだ作品の中で一番普及に貢献したソフトであると思われる。
各種任天堂ゲームやキャラクターを活かしたステージやモードであることに加え、
システム上も新しい概念であるワールドルールをうまく昇華させたゲームバランスは見事というほかない。
そして世界中の人々と対戦が出来るネット対戦や、相手がソフト未所持でも最大10人まで対戦できるワイヤレス機能など、
3800円とは思えないボリュームがすばらしかった。宇多田ヒカル氏がエンドレスをカンストまで遊んだという逸話も。
特にネット対戦においては、近年の対戦テトリスにおける戦法はこのゲームで開発されてきたものであり、
テトリスの対戦を普及させた作品としては歴史上もっとも重要な作品であると考えている。
セガがテトリスのライセンスを取得し、ぷよぷよとの2in1として発表された作品。
ぷよぷよとテトリスの異種間対戦が売りであったが、対戦のバランスは初級者戦~中上級者戦に至るまで基本的にテトリス有利なバランスとなっていた。
理由としては、セガはコンパイル開発時代を含めぷよぷよ通ルールとしては長年の研究を経て高度化された対戦が繰り広げられていた一方、
相対してテトリスの対戦に関する知見に乏しかったのではないかと推測される。
次回作のぷよぷよテトリス2も含め、長期間にわたり日本のコンシューマのテトリスのデファクトスタンダードとして運用されてきたソフトであるため、
ゲームクリエイターとして有名な水口哲也氏がプロデューサーを務めた新時代のテトリス。
音楽と映像とゲームの融合が特徴の水口氏の作品の例に漏れず、このテトリスもステージ毎のビジュアルとサウンドの没入感が素晴らしく、各所から高い評価を受けている。特にVR機器との親和性が高く、VRでのプレイを推す人も数多い。
没入感を重視するためゲームとしては難易度を低く設定されており、文字通り誰でも遊ぶことが可能な作りになっているが、
それ以外の需要に応えていないわけではなく、各種対戦や高難易度モードも用意されている。
特に高難易度モードについては近代のテトリスの中で1、2を争うほどの難しさであり、完全クリア者は数えるほどしか存在しない。
続編であるテトリスエフェクトコネクテッドでは、先に述べたNESテトリスを再現したモードが追加しており、日本のテトリスプレーヤーにとって最も容易なNESテトリスの練習方法であった。
(なお、今年末に日本のSwitchオンラインでもNESテトリスが遊べるようになる模様)
テトリスにバトロワ系の要素を盛り込んだ作品。単純に既存の対戦テトリスのシステムを99人戦に拡張したのではなく、
独自のシステムを数多く盛り込む事で実力差がある人同士での対戦でも簡単にはやられないようになっている。
これによりバトロワ系のゲームを知らない初心者でも十分楽しめる作品となっている。
任天堂のサブスクシステムを登録している人にとっては実質無料で遊べることが大きく、テトリス単体でのソロプレイ機能も含めて非常に大きな人気を博した。
既にリリースから5年が経過しているが、現在もなお遊ばれている作品であり、2024年におけるテトリスの代表的な作品であることは間違いないであろう。
プログラマーも結局は「読み方も分からない0と1の羅列に変えてくれるコンパイル機能を持った高級言語」を使ってるだけだろ?
お前の普段向き合ってる文字の羅列は、結局はお前にとってのブラックボックスに送られ、そしてお前はそれが最終的にどうやって動作しているのかを分かってない。
パンチカードの時代、パソコンはクソデケー電気仕掛けのそろばんだった。
「電卓」ではない。
何故ならあれを置ける卓はないから。
嘘だと言うなら科博にでも行ってこい。
それでもなお「でもよお、俺はイギリスでアーサー王が使ってたという100人用の円卓を見たが、アレぐらいなら乗るぜ?」と返すならもう俺は何も言わない。
電卓の化け物だった頃のパソコン相手に原始時代の言語で「ウホウホ!1+1は10!俺!0を発見!(BGM『レクイエム』より、第2楽章「キリエ」)」してた頃は、パソコンはブラックボックスではなかった。
だが、その時代はとうに過ぎ去った。
その昔はパンチカードを目視で読める人間バーコードリーダーみたいなことをしてる奴らもいたが、今はもう宴会芸にしかならない。
プログラミングとは高級言語を用いてやるものであり、コンパイルしたあとの機械語とは「人間が目で読むことを想定していない精霊界の言語」だ。
「プロンプトエンジニアリング」はよく呪霊操術や精霊魔術にたとえられる。
よく分からんけど召喚獣に魔法を使わせ、召喚獣がどうやって魔法を打ってるのかは知らないという世界だ。
だが待ってほしい。
それと対比して語られる「古典的プログミング」も結局は「途中の過程はよく分からんけど最終的に機械がなんとかする」で同じではないのか?
ニューラルネットワークの構成する離散的なモザイクと、コンパイルされた機械語の解読不能な01の羅列、それらにどれほどの違いがあるんだ?
どう違うんだ。
教えてくれ。
型があったところで型が一致するか、変数が存在するかくらいしかチェックはされないぞ
結果、実行したら予期しない値が帰ってきたり実行時にエラーが起きたりする
コンパイル通ってればだいたいは動くし、作ったときに動作確認もしてるから大丈夫、というなら動的型付けの言語でも動作確認はしてるから大丈夫だろ
動的型付け言語の方が得意だと言ってるくらいに使い慣れてる人なら実行時エラーもそんな多くない
その程度のゆるさでエラーが起きたら対応すればいいやくらいのところなら別に静的型付け言語である必要もない
ちゃんとテストコードを書く環境で、テスト通してるからという場合でも、それも動的言語だってテストして通ってるわけで同じこと
結局型の有無はプロダクション環境のバグの多さに関係ないし、どっちが好きかって話でしか無い
型システムが優秀で実行時エラーがほぼ発生しないのを売りにしてるくらいの言語なら多少利点はあるけど、TypeScriptみたいな無理やり型をつけた中途半端で実行時エラーが簡単に起こせるような言語ではメリットもほぼない
UnityもUnrealEngineも本格開発するなら大差はないんですけどね。
どのみちカスタマイズしないといけないというだけで、より短縮できるエンジンを選択しただけの内容ですよ。
が評価ポイントになりますが、ゲームによって不必要なものは削除したり先鋭化したりしますが、大元の開発者(UnityやEpic Games)との連携が不可欠になってしまいます。
大体の場合は海外はレスポンス非常に悪いので、自社でやれるなら自社でやったほうがカスタマイズしやすいし、何なら最新の描画処理なんていらない、ってなるんです。
もちろんUnity最高HDRPいいよね、とかはちょっと……となりますが、エンジンの性質を知ってる人であれば別にUnityだろうとUnrealEngineだろうと大差ないです。
スタンダードの状態での品質はもちろん大型タイトル作るならUnityは論外ですが、小規模〜中規模で制作するならUEだとBP管理がクソ面倒なので、Unityの方が良いです。
フリーランスでゲームエンジン担当したり調整したりの仕事を今でもやってます。
「ITがつまらなくなった」「ゲーム制作がつまらなくなった」のは違う角度の話も入りますが同意です。
おそらく現在40歳あたり以降の人たちは「めちゃくちゃコード書けた時代」の人たちだったと思います。
私もめちゃくちゃコード書いてましたし、他人のコードも修正してたし(それでキレられたり1日中討論したりも)、何より車輪の再発明がすごく楽しかった。
Game Programming Gemsが唯一の経験者のナレッジの詰め合わせで、貪るように読んでましたね。懐かしい。
というよりそうでないと生き残れなかった。
何よりもコードを書くのが楽しい、起きてる間は全てコーディング、アーキテクト、新技術の調査に時間を充てるような生き方しか出来ない人たち。
生産性?それよりもテンプレートプログラミング面白くね?意味あるか分からんけど。そういやこのコンパイラいいよね、メモリの使い方上手くてさあ。
プログラミング全般の技術力は、正しい知識を身に着けているかも重要なんですが、それよりも重要なのはライブラリの仕様を覚えるくらい何度も何度もアウトプットすることなんですよね。
DirectXやOpenGLの仕様を追えばだいたい効率的な計算方法や描画手法は身についちゃうので。
技術体系に紐づくものだったり、デザパタとかある程度知っておくものもあるにはありますが、何なら自分で見つけたくらいの方が遥かに理解度が高い。
頭で創るより、実際に書いてコンパイラ通して目で確認するほうが何倍も重要。
3Dゲームの知見がまだまだ日本に足りていない時代、ドラマチックな演出を行おうとしたら別の技術が必要になった。
今の時代では、ただFPS/TPSにすりゃええって回答になっていますが、模範解答として映画しかモデルが無かったんですよね。
しかも日本の画作りは時間を使った画作りより、止め画、見栄を軸とした画が多くて、海外のセンスとはジャンルが違う。
最先端の技術を生業にしていた大手ゲームパブリッシャー、デベロッパーは頭を抱えていました。
なにせ、個人の技術で戦ってきてしまっていた日本では太刀打ちできないことがわかったからです。
すでに海外では映画や映像の最先端の技術者やクリエイターをかき集め、サイエンスとしてナレッジ化を進めていました。
物理学者を集めまくってたのもそのときだったのを覚えています。
結果的に、大手は各社最高のグラフィックエンジンやクロスコンパイルエンジンを自社開発しようとして、(ほぼ)全て断念していますね。
……ただフォローのつもりで言いたいのですが、失敗ではあったと思いますが、そこで得た技術は非常に重要なものでして
日本は失敗を許容しない組織が多く、初めるのが遅く、辞めるのも遅い、それでいて二度と挑戦させない文化なので育つ土壌が無いんだと思います。
だいたい誰かが俺仕様で作ったクソみたいなコードを修正して、高速化したりメモリリーク改善したりがメインです。
「またコレか…」のパターン多すぎる。これがつまらなくなった所以です。
GCの仕様くらい考えたらなんでスパイクが起こるかわかるやろ……なんで調べんのなんて思うこともあります。
ただ出来ない人が多い、才能の無い人がビジネスだけでゲーム作ってる時代でもあるので、そのおかげでおまんま食べられてるんだよなって考えてます。
プロジェクトが破綻してることも多くて、その大部分はエンジニアがクソすぎるってのが多いですね。
体制の問題もあるにはあるんですが、ゲームにこだわることもなく、ただ稼げるで来ちゃった人たち。
だからそんな人達に何か伝えても響くことも無いし、生き方も違うので何も言わない。
ゲーム自体もどこかで見た何か。なので正解が存在するのでアーキテクトや制作に頭をひねる必要も無い。
感謝されるのでやりがいはあるんですが、当時激論を交わしていたような人たちはゲーム業界から離れ超ホワイトな外資系や大手でぬくぬくやってます。
幸いなことにソーシャルゲームバブルが起こり、その波に乗れた人たちです。
たまたま私の周りはコミュニケーション能力や問題解決能力、分解能力が高かったのでちゃんと地位を築き、ちゃんと生活しています。
Akira Ransomwareは、近年特に注目されているランサムウェアの一つで、その動作は高度で多様な手法を取り入れています。以下に、Akiraランサムウェアの動作について詳しく説明します。
侵入経路
Akiraは主にフィッシングメール、リモートデスクトッププロトコル(RDP)の悪用、既知の脆弱性の悪用などを通じてシステムに侵入します。特に、未修正のソフトウェアやシステムの脆弱性を狙うことが多いです。
初期感染と展開
システムに侵入すると、Akiraはネットワーク内で横移動を試みます。これは、ネットワーク内の他のデバイスにも感染を広げるためです。横移動には、認証情報の窃取や利用可能なネットワーク共有の探索が含まれます。
ファイル暗号化の前に、Akiraはターゲットシステムの特定のディレクトリをスキャンし、暗号化対象のファイルをリストアップします。次に、強力な暗号化アルゴリズム(通常はAESとRSAの組み合わせ)を使用して、ファイルを暗号化します。
最近のバージョンでは、部分的な暗号化手法(インターミッテント暗号化)を採用することで、暗号化速度を上げつつ、検出を回避する手法が確認されています (Bitdefender)。
データの窃取
暗号化に加えて、Akiraは重要なデータを盗み出し、そのデータを公開することで二重に脅迫することがあります。これにより、被害者に対する身代金要求の圧力を強化します。
暗号化が完了すると、被害者のデスクトップに身代金要求メッセージが表示されます。このメッセージには、データを復号化するための手順と支払い方法が記載されています。通常、暗号通貨(ビットコインなど)での支払いが求められます。
特徴的な技術
RustとC++の利用
Akiraの一部バージョンはRustというプログラミング言語で書かれており、これによりコードの安全性が向上し、セキュリティ研究者による逆コンパイルが難しくなっています。また、C++で書かれたバージョンも存在し、多様な環境での実行が可能です (CISA)。
VMware ESXiの標的化
Akiraは特にVMware ESXi仮想マシンを標的とすることが多く、これにより企業の仮想環境全体に影響を与えることができます。
Akiraは単純なファイル暗号化にとどまらず、データ窃取やネットワーク内での横移動、他のマルウェアの導入など、多層的な攻撃手法を組み合わせています。これにより、攻撃の成功率を高め、被害者に対するプレッシャーを強化します。
画面上でできなくしてもサーバーに直接リクエスト送ってくるからって同じことをサーバーでも実装しないといけなくてすごくめんどくさい
言語同じかつ単純な規則な共通化できたりするけど実際はそうじゃないものが多いし
画面での操作禁止とそれらを無視して編集後のデータだけ送ってくるのだとチェックの仕方も違う
追加できないなら追加ボタン出さないだけで済むが、サーバー側だと送られてきた件数だけじゃなくてもともとあったものと一致してるかもチェックが必要とかそういうの
ウェブのほうが楽だからデスクトップアプリからウェブに移すがここ数年は多かったが本当に楽か?って思う
画面の柔軟性はあるが、そのせいであれこれ細かい注文がついたりしてそれも面倒が増える原因だし
ウェブだとそれが当たり前だからってサーバー側もデータのチェックしてるけどデスクトップアプリじゃそんなことしてなかった
それのリプレースなんだし、別にしなくていいんじゃないかと思う
デスクトップアプリだってサーバーと通信してるんだから直接リクエスト投げれるわけだし
ウェブなら便利な開発者ツールがあるから今送ったものの中身を見てちょっとか書き換えて送るが楽なだけ
デスクトップアプリだってパケットキャプチャしたり、逆コンパイルしてソースコード見ればできるわけだし
クライアント証明書があるから~とかいう意見聞いたことあるけど、ローカルにあるファイルなんだから、直リクエストするときだってそれ使えるよね
デスクトップアプリだと起動後のホーム画面から順番にボタンを押さないと画面を開けない
だから一覧画面で編集ボタンを出さなければその項目の編集画面は開けない
そのせいで一覧画面で編集ボタンを出さないのに加えて編集画面で自分が編集可能かのチェックまで必要になる
めんどくさい
考えてみればURLで直接開けることは要件にあるわけじゃないんだし、URLにマッピングしないメモリ内でのルーティングでもいい気はする
anond:20240324030115 へつづく