Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
Submit search
EN
Uploaded by
amusementcreators
PDF, PPTX
7,710 views
コルーチンでC++でも楽々ゲーム作成!
コルーチンの概要とゲーム開発への応用、C++用コルーチンライブラリHamigaki.Coroutineの使い方について説明します。
Technology
◦
Read more
5
Save
Share
Embed
Embed presentation
Download
Download as PDF, PPTX
1
/ 15
2
/ 15
3
/ 15
4
/ 15
5
/ 15
6
/ 15
Most read
7
/ 15
8
/ 15
9
/ 15
10
/ 15
Most read
11
/ 15
12
/ 15
Most read
13
/ 15
14
/ 15
15
/ 15
More Related Content
PDF
20分くらいでわかった気分になれるC++20コルーチン
by
yohhoy
PDF
UE4でマルチプレイヤーゲームを作ろう
by
エピック・ゲームズ・ジャパン Epic Games Japan
PDF
UniTask入門
by
torisoup
PDF
ゲーム開発者のための C++11/C++14
by
Ryo Suzuki
PDF
コルーチンの使い方
by
Naohiro Yoshikawa
PDF
Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現
by
Yoshifumi Kawai
PPTX
猫でも分かる UE4のAnimation Blueprintの運用について
by
エピック・ゲームズ・ジャパン Epic Games Japan
PDF
【Unite Tokyo 2019】Understanding C# Struct All Things
by
UnityTechnologiesJapan002
20分くらいでわかった気分になれるC++20コルーチン
by
yohhoy
UE4でマルチプレイヤーゲームを作ろう
by
エピック・ゲームズ・ジャパン Epic Games Japan
UniTask入門
by
torisoup
ゲーム開発者のための C++11/C++14
by
Ryo Suzuki
コルーチンの使い方
by
Naohiro Yoshikawa
Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現
by
Yoshifumi Kawai
猫でも分かる UE4のAnimation Blueprintの運用について
by
エピック・ゲームズ・ジャパン Epic Games Japan
【Unite Tokyo 2019】Understanding C# Struct All Things
by
UnityTechnologiesJapan002
What's hot
PDF
UE4とUnrealC++について
by
Masahiko Nakamura
PDF
「Press Button, Drink Coffee」 UE4における ビルドパイプラインとメンテナンスの全体像
by
エピック・ゲームズ・ジャパン Epic Games Japan
PDF
Halide による画像処理プログラミング入門
by
Fixstars Corporation
PDF
猫でも分かる Control Rig UE4.25 版
by
エピック・ゲームズ・ジャパン Epic Games Japan
PDF
UniRx完全に理解した
by
torisoup
PDF
ObserverパターンからはじめるUniRx
by
torisoup
PDF
Riderはいいぞ!
by
UnityTechnologiesJapan002
PDF
UE4における大規模レベル実装ワークフローとブループリント活用事例
by
エピック・ゲームズ・ジャパン Epic Games Japan
PDF
【CEDEC2017】Unityを使ったNintendo Switch™向けのタイトル開発・移植テクニック!!
by
Unity Technologies Japan K.K.
PDF
日本一詳しい人が教えるUE4
by
エピック・ゲームズ・ジャパン Epic Games Japan
PDF
[UE4]自動テストでもっと楽したい!
by
com044
PDF
オブジェクト指向エクササイズのススメ
by
Yoji Kanno
PPTX
猫でも分かるUMG
by
エピック・ゲームズ・ジャパン Epic Games Japan
PDF
MagicOnion入門
by
torisoup
PDF
クロージャデザインパターン
by
Moriharu Ohzu
PDF
自作GPUへの道
by
Daisuke Kamikawa
PDF
C# ゲームプログラミングはホントにメモリのことに無頓着でいいの?
by
京大 マイコンクラブ
PDF
猫でも分かるUE4.22から入ったSubsystem
by
エピック・ゲームズ・ジャパン Epic Games Japan
PPTX
Robo Recallで使われている最新のVR開発テクニックをご紹介!
by
エピック・ゲームズ・ジャパン Epic Games Japan
PDF
なぜなにFProperty - 対応方法と改善点 -
by
エピック・ゲームズ・ジャパン Epic Games Japan
UE4とUnrealC++について
by
Masahiko Nakamura
「Press Button, Drink Coffee」 UE4における ビルドパイプラインとメンテナンスの全体像
by
エピック・ゲームズ・ジャパン Epic Games Japan
Halide による画像処理プログラミング入門
by
Fixstars Corporation
猫でも分かる Control Rig UE4.25 版
by
エピック・ゲームズ・ジャパン Epic Games Japan
UniRx完全に理解した
by
torisoup
ObserverパターンからはじめるUniRx
by
torisoup
Riderはいいぞ!
by
UnityTechnologiesJapan002
UE4における大規模レベル実装ワークフローとブループリント活用事例
by
エピック・ゲームズ・ジャパン Epic Games Japan
【CEDEC2017】Unityを使ったNintendo Switch™向けのタイトル開発・移植テクニック!!
by
Unity Technologies Japan K.K.
日本一詳しい人が教えるUE4
by
エピック・ゲームズ・ジャパン Epic Games Japan
[UE4]自動テストでもっと楽したい!
by
com044
オブジェクト指向エクササイズのススメ
by
Yoji Kanno
猫でも分かるUMG
by
エピック・ゲームズ・ジャパン Epic Games Japan
MagicOnion入門
by
torisoup
クロージャデザインパターン
by
Moriharu Ohzu
自作GPUへの道
by
Daisuke Kamikawa
C# ゲームプログラミングはホントにメモリのことに無頓着でいいの?
by
京大 マイコンクラブ
猫でも分かるUE4.22から入ったSubsystem
by
エピック・ゲームズ・ジャパン Epic Games Japan
Robo Recallで使われている最新のVR開発テクニックをご紹介!
by
エピック・ゲームズ・ジャパン Epic Games Japan
なぜなにFProperty - 対応方法と改善点 -
by
エピック・ゲームズ・ジャパン Epic Games Japan
Similar to コルーチンでC++でも楽々ゲーム作成!
PDF
kobayashi_m
by
harmonylab
PDF
コルーチンを使おう
by
amusementcreators
PPTX
『ゲームAI技術入門』講義用素材
by
Youichiro Miyake
PDF
オブジェクト指向とSOLID原則の入門
by
KISARAGIMakoto
PDF
とことんF#よぷよ! F# + XNA ゲームプログラミング入門
by
zecl1231
PDF
㉔cocos2dでゲームを作ろう!その2
by
Nishida Kansuke
PDF
A sequential recommendation approach for interactive personalized story gener...
by
nkazuki
PPTX
プログラミング応用b 長期課題(2)
by
義広 河野
PPTX
ブロックバスター制作資料
by
MaxNeetGames
PDF
Game Creators Conference 2019 Keiji Kikuchi
by
Keiji Kikuchi
PDF
ソーシャルゲームの為のデータベース設計
by
kaminashi
PDF
SamurAI Coding Workshop @Fukuoka
by
Kosuke Kaneko
PPT
Component basedgameenginedesign
by
DADA246
PPTX
Cedec2012 ai-contest-design-patterns-principles
by
Hironori Washizaki
ODP
C++でのゲームプログラミングをしたときのお話 札幌C++勉強会 #4 〜スタートゲームプログラミング〜
by
勝成 鈴江
PDF
Segue, Landscape, Touch events, Alpha and User Defined Runtime Attributes
by
Yutaka Yasuda
PDF
ICFP2009-いかにして我々は戦ったか
by
ina job
PPTX
音楽ゲームのプレイヤAIにおける人間らしく振る舞う強化学習手法の提案
by
hashimoto_mct
PDF
オブジェクト指向できていますか?
by
Moriharu Ohzu
PPTX
Interaction channel
by
信之 岩永
kobayashi_m
by
harmonylab
コルーチンを使おう
by
amusementcreators
『ゲームAI技術入門』講義用素材
by
Youichiro Miyake
オブジェクト指向とSOLID原則の入門
by
KISARAGIMakoto
とことんF#よぷよ! F# + XNA ゲームプログラミング入門
by
zecl1231
㉔cocos2dでゲームを作ろう!その2
by
Nishida Kansuke
A sequential recommendation approach for interactive personalized story gener...
by
nkazuki
プログラミング応用b 長期課題(2)
by
義広 河野
ブロックバスター制作資料
by
MaxNeetGames
Game Creators Conference 2019 Keiji Kikuchi
by
Keiji Kikuchi
ソーシャルゲームの為のデータベース設計
by
kaminashi
SamurAI Coding Workshop @Fukuoka
by
Kosuke Kaneko
Component basedgameenginedesign
by
DADA246
Cedec2012 ai-contest-design-patterns-principles
by
Hironori Washizaki
C++でのゲームプログラミングをしたときのお話 札幌C++勉強会 #4 〜スタートゲームプログラミング〜
by
勝成 鈴江
Segue, Landscape, Touch events, Alpha and User Defined Runtime Attributes
by
Yutaka Yasuda
ICFP2009-いかにして我々は戦ったか
by
ina job
音楽ゲームのプレイヤAIにおける人間らしく振る舞う強化学習手法の提案
by
hashimoto_mct
オブジェクト指向できていますか?
by
Moriharu Ohzu
Interaction channel
by
信之 岩永
More from amusementcreators
PDF
ライセンスの話
by
amusementcreators
PDF
空間分割
by
amusementcreators
PDF
わたしのゲーミング
by
amusementcreators
PDF
曲線について
by
amusementcreators
PPTX
HTML5でゲームが作れます
by
amusementcreators
PDF
C++11のつかいかた
by
amusementcreators
PDF
DUAL SHOCK2で遊ぼう
by
amusementcreators
PDF
Pythonでゲーム作る
by
amusementcreators
PPTX
ライフゲーム
by
amusementcreators
PDF
Lt nande linux_nano
by
amusementcreators
PDF
Lt130123
by
amusementcreators
PDF
20121212
by
amusementcreators
PDF
Kim120 lt 12_6
by
amusementcreators
PDF
かんたん作曲講座(2)
by
amusementcreators
PDF
かんたん作曲講座(1)
by
amusementcreators
PDF
猫には分からないオセロAIの仕組み
by
amusementcreators
PDF
フォントのしくみ
by
amusementcreators
PDF
AVRマイコン入門
by
amusementcreators
PDF
読みやすいプログラム、書き換えやすいプログラム
by
amusementcreators
PPT
IEとメモ帳でかんたんゲーム開発
by
amusementcreators
ライセンスの話
by
amusementcreators
空間分割
by
amusementcreators
わたしのゲーミング
by
amusementcreators
曲線について
by
amusementcreators
HTML5でゲームが作れます
by
amusementcreators
C++11のつかいかた
by
amusementcreators
DUAL SHOCK2で遊ぼう
by
amusementcreators
Pythonでゲーム作る
by
amusementcreators
ライフゲーム
by
amusementcreators
Lt nande linux_nano
by
amusementcreators
Lt130123
by
amusementcreators
20121212
by
amusementcreators
Kim120 lt 12_6
by
amusementcreators
かんたん作曲講座(2)
by
amusementcreators
かんたん作曲講座(1)
by
amusementcreators
猫には分からないオセロAIの仕組み
by
amusementcreators
フォントのしくみ
by
amusementcreators
AVRマイコン入門
by
amusementcreators
読みやすいプログラム、書き換えやすいプログラム
by
amusementcreators
IEとメモ帳でかんたんゲーム開発
by
amusementcreators
コルーチンでC++でも楽々ゲーム作成!
1.
コルーチンで C++でも楽々ゲーム作成!
Or Hamigaki.Coroutineの紹介 @ArGxento
2.
概要
コルーチンとは? ゲーム開発への応用 Hamigaki.Coroutineの紹介 その問題点
3.
コルーチンとは? • 普通のサブルーチンは、一度脱出してしまうと
次に呼び出す時はリセットされてしまう • コルーチンは脱出しても、次に呼び出したら前 回抜けた場所から再開できる。 • → ビデオの一時停止と停止の違い
4.
• 一般的には、たくさんのものから一つづ
つ選んでくる処理などによく使われる • ゲーム内のキャラクターの動きや、アニ メーション処理を作るのに便利
5.
• 具体的には… 1ターンごとに1歩ずつプレイヤーに近づき、攻
撃範囲内に一度でも入ったら数ターン攻撃し て逃げていく敵 • 近づいている/攻撃している/逃げている を識別す るフラグと、攻撃したターン数のカウンタが必要 →どうやって保持する?もっとフラグが増えたら? コルーチンならすべて解決!
6.
コルーチンを使わない場合
コルーチンを使った場合 switch(this->actionPhase){ // 行動フェーズ // プレイヤーに接近する case 0: // 接近中 while(getDistance(player, *this) > aimToPlayer(); attackRange){ walk(1); aimToPlayer(); if(getDistance(player, *this) <= attackRange){ walk(1); actionPhase = 1; self.yield(); } } return; case 1: // 攻撃中 // 5ターン攻撃 if(attackTurnCounter > 4){ for(int i = 0;i <= 4; i++){ actionPhase = 2; attack(player); attackTurnCounter = 0; self.yield(); } } attack(player); attackTurnCounter++; // 逃げる return; case 2: // 逃走中1 aimTo(getAngle(player) + deg(180)); aimTo(getAngle(player) + deg(180)); while(1){ actionPhase = 3; walk(2); return; self.yield(); case 3: // 逃走中2 } walk(2); return; } 面倒なフェーズ管理とおさらば
7.
• C#やLuaといった言語には標準で搭載さ
れており、一つの強みだった。 • しかし、C++にはない • C++ユーザから要望が強かった →満足なライブラリがなかなか出なかった
8.
そこでBoost.Coroutineが登場!
9.
…あれ、開発止まってる?
…これ動かないんじゃ… …むしろ今だと入手すら困難… …でも他にいいライブラリもあんまりないし…
10.
そこで、郵便はみがき氏が開発した
Boost.Coroutineの上位互換ライブラリ Hamigaki.Coroutine http://sourceforge.jp/projects/hamigaki/ 特徴: Windowsでも動く 使いやすい ライセンスがBoostと同じ
11.
Hamigaki.Coroutineの使い方 • 通常の関数の引数+コルーチン制御用の引数な
関数を定義 • 目的の引数と返り値の型をテンプレート引数に 取ったオブジェクトを宣言 • 上のコンストラクタに目的の関数を入れてコ ルーチン生成
12.
#include <hamigaki/coroutine/coroutine.hpp> namespace coro
= hamigaki::coroutines; typedef coro::coroutine<int(int)> coro_type; int func_body(coro_type::self& self, int a) { // 実際の処理 for(int i = 0; i < 42 ; ++i){ self.yield(i + a); } self.exit(); } coro_type func(func_body); // コルーチン自身
13.
• self.yield に返り値を渡して、一時中断できる •
self.yieldの返り値によって、二回目以降の呼び出し の引数が分かる • self.exit または通常の return で、コルーチンの 終了を通知できる → 次からは呼び出せなくなる • コルーチンが終了すると、例外が投げられる
14.
問題点 • 終了時に例外を投げられると困る
→ 例外の代わりにBoost.Optionalを使って通知する オプションもある • 一度終了すると初期化して再利用できない → コンストラクタを呼んで初期化する管理クラス に内包させた方がいいかも
15.
ご清聴ありがとうございました
再掲 Hamigaki C++ Libraries http://sourceforge.jp/projects/hamigaki/
Download