2018年7月13日金曜日

C++によるDLL作成でいきなりつまずきまくり涙

C++でコード書いてたのってUnix環境だから古すぎかー(笑)
STLとかが話題になってた頃だもんなあ
PC系はDOSの頃のMSC6.0で開発ツール作ってた頃が一番コード書いてた感じ。WindowsはMFCうざいなと思ってた(VC4~6まで)
その後は企画部門になったので自分の楽しみだけでATLで遊んでたんっだけど、C#がメッチャ使えるように進化してきてて2005あたりでWinFormC#に移行しちゃったから。もう15年ぐらいC/C++やってない感じ、もともと技術的には大したことない上に数少ない知識も散逸してしまったようである。DLLからCOMの流れが20年前でCOMを使うのはよくやってたけど自分はCOMも読んだだけでIDLも面倒やなで終わってたレベルの私には… 一からやり直すしか方法がないのだろうなと
ところでなんでCOMだのDLLだのと思い始めたかというと
ネティエさんの達成を見つつTES3-5をやりまくりConstructionSetで色々触ってて思いついたのである。
クエストマネージャは世界とは独立に汎用品として作成可能じゃんと気づいた。
勿論、世界を作った人が個別にクエスト処理ロジックを組む方が早いしよく分かってるので間違いも少ないんだろうけど。
TESのCSとCK触ってて思ったのは世界のマネージャと個別に管理できてるのかなと感じ始めたのだ(実装がどうなのか知りませんがね)
TESはバニラで一応世界ができた後にクエストが追加できる形に構成されている。ダイアログもジェネリックな会話「何か用」に加えて、追加されたNPCが商人だと商人用のダイアログがホイホイと出てきちゃう。
(商人だよってマークするだけで、まあこのダイアログの出し方表示の仕方は世界側でやるんで、商人の認識も世界側の仕事だけどさ)
QuestManegrとDialogueGeneratorは別個に作ってみてもいい気がする
QuestGeneratorは世界側だけど、テンプレートを選んで生成はマネージャとやりとりして実体化させればいいしなどなど

やってみたいことがやっとイメージになってきた感じなのだった






0 件のコメント:

コメントを投稿