タグ

ブックマーク / qiita.com (68)

  • 初心者でもわかる!「オンラインゲームにおける仕組み」を学んでみよう【前編】 - Qiita

    最初に 記事では、非エンジニアな方でも理解しやすいように「オンラインアクションゲームを開発するにあたって知っておきたい仕組み」について、丁寧に解説していきます。 対象読者は以下の通りです。 ゲームサーバーを運営したり、シンプルなオンラインゲームを構築した経験があり、実際の開発ではどういった仕組みを用いているのか興味がある方 プログラムやゲームエンジンを触ったことがあり、オンラインゲーム開発の基礎について学びたい方 なんもわからんけど知見として持っておきたい方 今回、前編と後編で記事を分割しています。 前編で紹介する内容は以下の通りとなります。 ゲーム開発における基用語 非同期型について 非同期型における「アイテムデュープ」などの問題 後編では以下の内容を記載します。 同期型について 同期型におけるフルメッシュ型とスター型の違い C/SやP2Pの簡単な概要について グローバルIPアドレス

    初心者でもわかる!「オンラインゲームにおける仕組み」を学んでみよう【前編】 - Qiita
    crycli87
    crycli87 2024/12/10
  • みんな、とにかくオセロAIを作るんだ - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? オセロAIってなんか難しそう?そんなことはありません。むしろゲームAIを学ぶ様々なレベルの人にこれ以上ないくらい最適です。この記事ではオセロAIを作ると何が良いのかをひたすら語っていきます。そしてオセロAIをこれから作る人のために参考になりそうな記事をいっぱい貼り付けていきます。 私自身はもうかれこれ1年以上オセロAIにどっぷりハマっています。詳細は以前書いた記事で。 オセロAIをおすすめする3つの理由 1. 原始的なゲーム木探索を学べる オセロは「二人零和有限確定完全情報ゲーム」と呼ばれる種類のゲームです。この名称を説明すると、 二人

    みんな、とにかくオセロAIを作るんだ - Qiita
    crycli87
    crycli87 2022/05/22
  • ちょうぜつ - Qiita Advent Calendar 2019 - Qiita

    The Qiita Advent Calendar 2019 is supported by the following companies, organizations, and services.

    ちょうぜつ - Qiita Advent Calendar 2019 - Qiita
    crycli87
    crycli87 2021/03/01
  • 過去の難案件 PS2のカーネル開発 - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? はじめに 時はPlayStation2も そろそろ終わり。 PS2互換機がゲームセンター等で使われていた時代の事です 私は当時 超新人だったんだけどね ただ私は 大学を3ヶ月で光速中退して すぐにフリーランスになった変な経歴持ちです そんな時 ある人物が 掲示板に メモリマネージャやDMA、3DCGについて質問をしていた ちょうどその時期 仕事が楽だったので 光速で回答しました。 メモリマネージャ作りたいっていうので、簡単な方法として、連結リストでAllocateしていくと簡単だよ DMAについては 方向のふらぐがこーであーするだけだよ

    過去の難案件 PS2のカーネル開発 - Qiita
    crycli87
    crycli87 2020/01/01
  • 「コンピュータシステムの理論と実装」をやりきりました - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? コンピュータシステムの理論と実装 をやりきったので、メモを残しておきます。 の紹介 コンピュータシステムの理論と実装 では、NAND ゲートからはじめて、最終的にはアプリケーションを動作させるところまで、ボトムアップの視点でコンピュータシステムの説明が記載されています。通称「Nand2Tetris」。名前がかっこいいですね。 とてもわかりやすい裏書きの説明は以下 コンピュータを理解するための最善の方法はゼロからコンピュータを作ることで、その構成要素は、ハードウェア、ソフトウェア、コンパイラ、OSに大別できる。書では、これらの構成要素

    「コンピュータシステムの理論と実装」をやりきりました - Qiita
    crycli87
    crycli87 2019/10/14
  • printfに4285個アスタリスクをつけるとclang++が死ぬ - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

    printfに4285個アスタリスクをつけるとclang++が死ぬ - Qiita
    crycli87
    crycli87 2019/09/09
  • C で関数に * や & を付けられる件の説明 - Qiita

    この現象を解説する。 関数呼び出し まず、関数呼び出しについての規定を見る。 The expression that denotes the called function shall have type pointer to function returning void or returning a complete object type other than an array type. ―― n1570 §6.5.2.2/4 訳すとこんな感じ: 呼び出される関数を表す式は、 {void を返す関数か、配列以外の完全型を返す関数} へのポインタ型を持たなければならない。 (英語クソザコ勢なので括弧使ったけど察して) こういったわけで、実は関数呼び出しを行うとき、関数として指定する式は必ず関数ポインタ型となっている。 printf("hello") したとき、 printf は最終的

    C で関数に * や & を付けられる件の説明 - Qiita
    crycli87
    crycli87 2019/09/09
  • Goコンパイラをゼロから作って147日でセルフホストを達成した - Qiita

    もはやただのアセンブリコードで、コンパイラどころかGo言語の影も形もありません。ここから機能を付け足してGoコンパイラに育て上げました。 興味深いことに、7コミット目あたりですでにコンパイラ全体の骨格ができています。 なんで作ろうと思ったの もともとGoコンパイラを作るなどという発想は1㍉もなかったです。 当時、仕事Goを触る機会はあったものの、週1-2回くらいしか触らないのでなかなか上達しないという焦りを抱えていまいた。 そんなとき Rebuildfm で ruiさんが8ccを作った話を聞いてすごく興味を持ちました。 Rebuild: 153: Connecting The Dots (rui314) さっそく git clone して1コミット目から読んでみたら自分でもやりたくなって、 Go言語に移植してみようと思いました。 1コミット目から順番に、Cで写経してからGoに移植しました

    Goコンパイラをゼロから作って147日でセルフホストを達成した - Qiita
    crycli87
    crycli87 2019/06/04
  • Swiftのエラー4分類が素晴らしすぎるのでみんなに知ってほしい - Qiita

    これは Swift Tweets の発表をまとめたものです(次回開催はこちら)。イベントのスポンサーとして Qiita に許可をいただいた上で投稿しています。 ありがとうございました!Q&Aは他の人の発表中でも構わないのでリプを飛ばして下さい。 続いては僕 @koher の発表で、タイトルは "Swiftのエラー4分類が素晴らしすぎるのでみんなに知ってほしい" です。 #swtws — koher (@koher) 2017年1月14日 第 1 部: Swift の 4 種類のエラーについて あまり知られてませんが、エラー処理について、 Swift 2.0 設計時に Core Team がまとめた "Error Handling Rationale and Proposal" というドキュメントがあります。このドキュメントは、僕が去年 try! Swift で発表した際にも参考文献にしまし

    Swiftのエラー4分類が素晴らしすぎるのでみんなに知ってほしい - Qiita
  • 本物の golang を... 本物の Gopher を、お見せしますよ。 - Qiita

    事の始まり それはD言語くんへの嫉妬から始まった。 D言語くんの繁殖についての仮説 lsを間違えてdlと入力してしまったときに、D言語くんが通り過ぎるコマンド くっ悔しい... そしてショボいAAで2番煎じ。 lsを間違えてgolと入力してしまったときに、Gopherが通り過ぎるコマンド書いた。 こんなはずじゃない! 僕らの Gopher 君はこんなチープじゃない! 明日来てください。物の Gopher をお見せしますよ。 — mattn (@mattn_jp) December 15, 2015 (当はもうちょっと前から作ってましたが) 物のGopher君とは そして今回、これを公開するに至った。 まずはこれをご覧頂きたい。 !!!!!!!!!!!!1 こいつ・・・ 動くぞ・・・ golang で書いたデスクトップマスコットです。起動すると画面のタスクバーの上をウロウロします。たま

    本物の golang を... 本物の Gopher を、お見せしますよ。 - Qiita
  • null安全でない言語は、もはやレガシー言語だ - Qiita

    これらは、表中の「リプレース対象言語」に挙げたように、多くのメジャー言語に対する代替手段でもあります。 Java の代わりには Kotlin や Ceylon が、 JavaScript には TypeScript や Flow が、 Objective-C には Swift が、そして PHP には Hack があります。 Python は自身に null 安全 を取り込みました。 Crystal は直接 Ruby と連携して使えるわけではありませんが、 Ruby 風の null 安全 な言語です。 RustC++ の代替を目指して開発され、 Firefox の一部で C++ のコードを置き換えるのに使われています 2 。 null が引き起こしてきた数々の問題を考えると、僕は、 null 安全 は GC (やその他の安全なメモリ管理手法)に匹敵するプログラミング言語の進化だと考え

    null安全でない言語は、もはやレガシー言語だ - Qiita
  • Pythonでデスクトップアプリを作る with Electron - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

    Pythonでデスクトップアプリを作る with Electron - Qiita
  • 難しいのは見た目だけ!?Haskellのモナドの「たった2つのルール」を簡単に理解する! - Qiita

    この記事は Wantedly Advent Calendar 25日目の記事です。 最終日です!気合いが入りますね!! Introduction 今回は Haskell のモナドの話をしたいと思います。 Haskell を学び始めた時、誰もが一度は経験するのが「モナドって何だ?」という疑問です。「Haskell モナド」で検索してみても、圏論を絡めた小難しい説明ばかりが出てきて、よく分からない事が往々にしてあります。 ところが、実は「Haskell におけるモナド」を理解する為に、圏論のモナドを理解する必要はありません。何故なら、「Haskell においてモナドである」為に必要なのは、「たった2つのルールを満たす事」だけだからです! この記事では、「モナドとは何か」を簡単に説明したいと思います!! Haskell におけるモナドとは? Haskell におけるモナドとは、誤解を恐れずに言え

    難しいのは見た目だけ!?Haskellのモナドの「たった2つのルール」を簡単に理解する! - Qiita
  • Herokuでbotを運用する時代は終わった。これからはIBM Bluemixを使って無料で運用する - Qiita

    2017/01/17追記 Herokuのプランが変更されたようです。 詳しくは、コメント欄を参照してください。 追記ここまで みなさん、bot活用していますか? どんどん便利なスクリプトを追加し、日々の業務や生活になくなてはならない存在になっていると思います。しかしながら、botをどこで運用するかという悩ましい問題があります。少し前ならheroku一択でしたが、herokuのプランが変更され24時間完全に無料で運用することが難しくなりました。 herokuで運用する問題点 herokuは素晴らしい環境です。が、無料でbotをつくるとなると話は少し変わってきます。 30分アクセスしなければスリープ 24時間連続で動かすことができない(6時間のスリープ) hubot-heroku-keepaliveによって30分のスリープの問題はいいですが、24時間稼働できないのはどうしようもありません。まあ

    Herokuでbotを運用する時代は終わった。これからはIBM Bluemixを使って無料で運用する - Qiita
  • Java/Androidにおける例外設計、あるいは「契約による設計」によるシンプルさの追求 - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

    Java/Androidにおける例外設計、あるいは「契約による設計」によるシンプルさの追求 - Qiita
  • プログラマが入門書の次に読めばよさげな書籍 - Qiita

    はじめに 記事は2010年10月に某所で書いた記事を2016/2/2に編集したものです。 プログラムの入門書を読んだ上でプログラムを書いた経験があるけれども、そこからステップアップするために何をしていいのかわからないという人向けのをいくつか紹介したいと思います。なるべく平易な文書で書いてあるものを選びました。ただし、筆者の趣味の問題で、Linux/UNIX関連のが多いです。 「これらを読むだけで凄腕エンジニアになれます」などという無責任なことは言わないですが、飛躍するための1ステップとしては十分役立つのではないかと思います。 珠玉のプログラミング コンピュータシステムを使って物事を解決しようとするとき、どんな状況でどのようなデータ構造、アルゴリズムを使うことによって、結果がどうなったかという面白いエッセイを掲載しています。データ構造やアルゴリズムを扱ったは数式がたくさん出てきて一目

    プログラマが入門書の次に読めばよさげな書籍 - Qiita
    crycli87
    crycli87 2016/02/14
  • Electronでアプリケーションを作ってみよう - Qiita

    はじめに Electronをご存知でしょうか. Electron(旧称: Atom-Shell)は, Atomエディタを開発するために生まれたクロスプラットフォームデスクトップアプリケーションエンジンです. Node.js + Chromiumをランタイムとしており, Atomだけでなく, Slackや先日のBuildで発表されて話題となったVisualStudio CodeもElectronで実装されています. いわゆるWeb系の技術, Node.js + HTML + CSSでアプリケーションを作成できるのが特徴です. 類似した思想のフレームワークとして, node-webkit(NW.js)もありますが, アプリケーションのエントリポイントの考え方等が異なります. このエントリでは, Electronの使い方をサンプルアプリを実装しながら説明していきます. お題 このエントリのお題と

    Electronでアプリケーションを作ってみよう - Qiita
  • [test][automation] sikuliを使ってGUI操作を自動化する - Qiita

    はじめに sikuliは画像認識(OpenCV)を利用したGUI自動操作ツールです。 操作対象を画像としてマッチングするため、スクリーン上に表示されているものであればアプリケーションの種類を問わず操作することができます。 スクリプトはjythonで書きます。 詳細は公式サイトを参照して下さい。 開発者向けにAPIも公開されています。 今回はSikuli 1.0.1のインストール方法と簡単なサンプルを紹介します。 インストール手順(for windows 7) 1. JDKの準備(割愛。JDK6,7で動きました) 2. ダウンロード 公式サイトの"SikuliX Package - Learn More and Get It"を選択 "SikuliX powered by RaiMan"の"Stable Version"を選択 "launchpad"の"sikuli-setup.jar"をダ

    [test][automation] sikuliを使ってGUI操作を自動化する - Qiita
  • クロージャってどんなときに使うの? ~ 利用場面を 3つ 挙げてみる - Qiita

    結論を先にまとめると、以下の3つです。 1. グローバル変数の宣言をなるべく減らしたい場合 2. ユーザが引数を与えてカスタマイズ可能な自由度の高い「関数」を生成したい場合 3. 前回、呼び出されて実行されたときの演算結果(値)を内部で保存して、次に呼び出されたときに、前回の結果(値)に対して、さらに同じ処理(演算)を行う関数を生成したい場合 以下、「クロージャ」の定義から、頭の整理まで、分かりやすい参考ウェブサイトへのリンクを張りつつ、見ていきます。 【 定義 】クロージャ takeharuさん Qiita記事(2013/07/22)「JavaScriptでクロージャ入門」 「自分を囲むスコープにある変数を参照できる関数」 Wikipedia 「クロージャ」 引数以外の変数を実行時の環境ではなく、自身が定義された環境(静的スコープ)において解決することを特徴とする。関数とそれを評価する環

    クロージャってどんなときに使うの? ~ 利用場面を 3つ 挙げてみる - Qiita
    crycli87
    crycli87 2016/01/06
  • 民の例外の投げ方 - Qiita

    C# Advent Calendar 2015 17日目の記事です。主は来ませり。 戒めの言葉 コーディングとはコミュニケーションである。 人と実行環境(以下「主」)とのコミュニケーションであり、また、主を介した人と人とのコミュニケーションである。 つまりコーディングとは、読み手と書き手とで成されるコードのキャッチボールであり、キャッチボールであるからには、たとえ例外を投げる場合であっても、それが悪送球であってはならない。 第一に既存の例外クラス利用を考える MSDN「スローする正しい種類の例外の選択」には以下のようにあります。 他の既存の例外とは異なる方法でプログラム処理できるエラー条件がある場合は、カスタム例外を作成してスローします。 それ以外の場合は、既存の例外のいずれかをスローします。 チームの例外を所有するという目的のためだけに、新しい例外を作成してスローしないようにします。 俺

    民の例外の投げ方 - Qiita