人気雑誌が読み放題♪

現在、小さな事務系ソフトウェア開発会社でプログラミングをやっている者です。

思う所あって、ゲーム系の会社への転職を考えています。
応募にあたって作品の提出が必要なことは存じていますが、
どの言語を勉強し、開発すべきかで迷っています。

開発したいゲームとしては、STGかRPGで考えています。
2Dか3Dかは特にこだわりがありません。

過去に行ったプログラミングは、ゲームの関係の薄いものばかりで、
「ゲーム開発」について本格的に学んだことはありません。
学生の頃はロボットを制御するために、C言語のプログラムを書いていました。
PCとマイコンのシリアル通信のために、C#でwindowsアプリケーションも作りました。
C++もほんの一時期だけ使っていました。
卒業してから日が浅いので、これらの知識はまだある程度あります。
会社ではaspxとJavaScriptでWebページの外面、内部の動作をVBで行なっています。

触れたことのあるプログラミング言語を理解度順に並べたら多分こんな感じです。
VB≒C#>C>JavaScript>>>C++

C#とVBは似通った言語なので、VB中心の現在でもなんとなく理解できます。
現在最もメジャーらしいC++が最も経験が少なく、自信がないです。

軽く調べた感じでは、現在のゲーム開発はC++が多いが、
今後はC#やJavaも増えるかもという感じでどちらでゲーム開発を本格的に学ぼうか迷っています。

最もメジャーなC++を改めて学ぶべきか、
それともある程度使えるC#での開発方法を学ぶか、
あるいはその他の言語か、助言をお願いします。

また、開発の参考文献なども教えていただけると幸いです。
よろしくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (4件)

今後の動向不明なソーシャルならPHPとかJavaScriptとかWEB系です。


家庭用ゲームのメインの開発は今後もしばらくはC++が続くと思いますが、C#もツール開発用としては導入されていますし一部のゲームはC#で開発されています。
家庭用ゲーム機なら両方共出来ないとダメじゃないかと思いますね(片一方はある程度出来る程度で良いと思いますが)。

>開発したいゲームとしては、STGかRPGで考えています。
>2Dか3Dかは特にこだわりがありません。

こちらが拘るんじゃなくて向こうの会社が拘る問題ですが、今時は家庭用ゲーム機は3Dじゃないと厳しいと思います。
あと応募作品でSTGだとすごく多いので、それだけで評価が下がります。
逆にRPGは、規模が大きくなるためプログラミングスキルが直に反映されるので応募課題としては悪くないですが市販レベルの操作性に合わせて作ること事態が大変です。
WEB系をやっていたのならオンラインゲームを作るスキルも期待されるでしょう。

とりあえず、どのぐらいのものが作れるかリアルタイム性のあるものを作るということがどういうことなのか理解するためにDXライブラリをご紹介しておきます。
これでラクラクとゲームを作れるようなら本格的にC++とDirectXやC#とXNAで応募作品を作れば良いのでは無いでしょうか?

「新・C言語 ~ゲームプログラミングの館~ [DXライブラリ]」
http://dixq.net/g/

同サイトのこっちの掲示板には業界人の回答者も出没します。
「C言語何でも質問掲示板 • C言語交流フォーラム ~ mixC++ ~」
http://dixq.net/forum/viewforum.php?f=3
    • good
    • 2
この回答へのお礼

私用で返答が遅れました。すみません。
かなり具体的な回答で、サイトも紹介して頂きありがとうございます。

自分的にはコンシューマやPC向けを希望していますが、
その方面だとまだC++が必要なようですね。
まずは参考URLで勉強してみたいと想います。

お礼日時:2012/06/04 23:54

>C#とVBは似通った言語なので、


このVBが6より後の.net系なら仕方がない。
C#とVB(.NET)系は.NET Frameworkを基幹とした物だから。
言語体系の違いだけで出来ることはほぼ同じだから。

>STGかRPGで考えています。
2DならシューティングもRPGも難易度は軽い分類だから無駄でしょう。
難易度で言えば
テキストアドベンチャー,サウンドノベル→シューティング→RPGの準でしょうね。
作るならシューティングもFPSやTPSにしないと駄目でしょう。

>今後はC#やJavaも増えるかもという感じでどちらで
Javaに関してはAndroid方面のゲームで需要があります。
C#はあまり無いと思いますよ。
アマチュアの場合はXBOX360でXNAに限りゲームを動かせる環境を用意できるのでC#はそこだけで需要があるだけでしょう。
    • good
    • 2

#1さんも仰っていますが、まずはやりたい業界を考えるべきです。


コンシューマ系(PS3とかWiiとか)ならC++は必須でしょうし、Web系ならJava、Javascript、Flash、PHP等でしょうか。
ネットゲーでもクライアントインストール系だとやはりC++は必要になってくるかと思います。
携帯ゲーム系だとJavaが主流でしょうか。(ネイティブ開発もありますが)
まずは、STGとかRPGとかではなく、「何の」ソフトを作りたいのかを明確にした方がいいです。
    • good
    • 3

まずは、業界動向とか希望するメーカーの募集要項とかの調査じゃないですか?


ケータイゲームしか作ってないメーカーに「C++ができます」って言っても意味ないし。

過去にも同様の質問がたくさんあるので、まずは、検索して一通り読んで方針を決めることだと思います。

この回答への補足

回答ありがとうございます。
ソーシャル系は将来性が不明瞭な気がしたので、
一般のゲーム機向かpc向けで考えています。

補足日時:2012/05/31 10:25
    • good
    • 2

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QC++とVC++の違いについて

この質問をご覧頂きありがとうございます。

みなさんに2つ、お聞きしたいことがあり、質問させていただきます。
1.C++とVC++とでは、どのくらいの違い(どういう違い、特徴)があるのでしょうか?

2.また、これからC++/VC++でプログラミングを始めようとした場合、
C++からVC++へと段階を踏んで勉強した方がよいのでしょうか?

一応、私のプログラミングの履歴としては、
言語としてVisual Basicは多少勉強はしておりました。
また、オブジェクト指向の基礎程度(多相、継承、カプセル化)は理解しています。

抽象的な質問で大変恐縮なのですが、
みなさんの経験論や、ご参考にした本、HP等がありましたら、
ご教授いただければと思います。

Aベストアンサー

こんにちは、honiyonです。
 VC++ は、Microsoftの発売している C++開発環境です。 純正C++に加え、独自に機能(という言い方でいいのかな?)を追加しており、更に開発しやすいソフト(環境)を添付してあります。

 VC++に限らず、大体はそうです。 ProC++も、Borland C++も皆そうです。
 今までお使いになっていた VBも、BASICコンパイラ+開発環境です。 
 こちらの場合、BASICに機能を追加・・・というより仕様そのものを大幅いじってますね(笑)

 VC++をただ単純に C++として使用するなら良いですが、VC++とMFCを使用してウインドウアプリケーションを作りたいという事であれば、死に物狂いな勉強が必要が必要かもしれません。Windowアプリケーションの処理プロセスを理解していないと、とっても難解に感じると思います。
 VC++でなければいや!という理由がなく、Visual Basicからスムーズに移行でき、かつVisual Basicより奥の深い事をしたい、というならば C++ Builder をお勧めします。 こちらで腕を慣らし、徐々にWindowアプリケーションの処理プロセス(WinMainから始まるプログラムの組み方の事です)を学ぶと良いかな、と思います。 その上で VC++&MFCな環境に移行すると、敷居はぐっと低くなります。
 私は一度VC++&MFCに挫折しましたが、こちらの方法で何とか理解する事が出来ました(^^;

 参考になれば幸いです(..
 

こんにちは、honiyonです。
 VC++ は、Microsoftの発売している C++開発環境です。 純正C++に加え、独自に機能(という言い方でいいのかな?)を追加しており、更に開発しやすいソフト(環境)を添付してあります。

 VC++に限らず、大体はそうです。 ProC++も、Borland C++も皆そうです。
 今までお使いになっていた VBも、BASICコンパイラ+開発環境です。 
 こちらの場合、BASICに機能を追加・・・というより仕様そのものを大幅いじってますね(笑)

 VC++をただ単純に C++として使用するなら良いで...続きを読む

Qプログラミング能力認定試験はどのくらい優遇されるの?

私は、インターネット上で、「プログラミング能力認定試験」が存在する事を知りました。

現在私は、プログラミングとは無縁の事務職をやっており、独学で C言語の勉強を行っております。
将来的にはプログラマへの転職も真剣に考えているのですが、その時に自分を認めて(採用して)もらえるようなモノを持ちたいと考えております。

そこで、
1>>「プログラミング能力認定(1~3級)」が就職にどの位有利なのか?
2>>また、専門学校に通われた方たちは、一般に、卒業時点で何級取得程度の実力を身につけているものなのか?

の2点について教えていただきたく思います。
質問にアバウトな点があり、大変申し訳ございませんが、宜しくお願いいたします。

Aベストアンサー

(1)採用枠が競争になった場合に有効材料となるでしょう。また面接が有る場合のアピールポイントになるでしょうね。
(2)学習内容に左右されますが、所詮基礎レベルでしょう。
 実戦では、実務では基本ができている程度にしか認識されないと思います。
 実戦では、開発環境や要求定義が様々な為、資格による差は少ないです。重要なのは今後の為に実戦でどこまで自分を向上できるかですね。その前に雇用されるのは必須条件ですけどね。

Qjavaでゲームを作りたいです。初めてです。ぜんぜん知識もありません

javaでゲームを作りたいです。無謀ですが・・・
どうやって作ればいいのでしょうか?
その前にどんなゲームが作れるのでしょうか?

Aベストアンサー

回答ありがとうございました。
・・・脱帽です。はっきり言ってプログラミングやったことないのです。

そう思っていましたよ。でも、ゲームに目をつけたのはなかなかいいアプローチです。ただし、僕は二、三年Javaをかじりまくって、やっと文法を覚えてそれからいろんなアプリケーションを作っています。ゲームづくりはもう少し先の話ではあるかもしれないけれども、とにかくいい勉強になり結構面白いです。かなりいい訓練になるはずです。だから、先見の目のすごさに脱帽しています。逆にすばらしいと思いましたよ。(^^\

>このような言語(?)なんか英語みたいなのをどこに書けばいいのかわかりま>せんし、コンパイルしようとしても原因がわからず作業が中止になったり>とてもできそうにありません。

最初は誰だってそうなんですよ。例えば僕は二年間もクラスって何かわからなくて、上級者の人に聞いたら一瞬で「えー、そんなことだったの?」とはとが豆鉄砲を食らったようになってしまったのを覚えているのです。それぐらい僕は無知でした。誰だって、一年ぐらいはコンパイルがなかなか通らなくてその原因は何かなんていうのはざらですが、要するにそういうときでも絶対に自分をほめてあげればいいのですよ。よくコンパイルなんてやったな~なんていうふうにね。(笑)

よく特別な人がプログラムを書いているような言われ方をする人や、そうしたことが特殊だという社会的な風潮があるのですけれども、いたって普通です。機械は二進法(電気が+と-しかないから、例えば数値で言えば1と0)しかわからないみたいですし、右といえば右にしか行きません。エラーなんてむしろ人間的でいいなと思いますよ。

ただ解決方法がわからない以前に、実現方法がわかりたいのが人情です。だから、ものすごく簡単な入門書で最初に勉強するとものすごく良いんです。僕は最初千円の本当に簡単な入門書からやりました。もちろん、上級者のアドバイスでそうしたのです。


>やっぱりまだ自分には向いていないのでしょうか?

将来的には向いているかもしれませんよ。僕はたぶんあなたよりもひどかった(笑)かもしれない。確かにいきなりは作れないんです。それは僕も一緒です。でも、少しでも勉強したり、プログラミングをしたりしたら、どんなことでも良いから、進歩したことになるから、自分を信じて、自分をほめてあげてください。あなたは少なくとも今面白いことをやろうとした。面白いことに向かって精進しようとこうして質問コーナーにまできちんと出向いた。立派だと思いますよ。(笑)勉強していると適正が出てくると思います。本当に僕は最初から書けた人なんて誰もいなかったんだと思うのですが。僕も偉いしなくてもいい苦労までしたもんですよ。(笑)

ま、とにかく思いつめるのは何にもなりません。せっかくのあなたの努力が無駄になるばかりか、あなた自身をつまらなくしてしまうかもしれません。コンパイルなんてものは百回のうち一回通ればそれでパソコン上ではソフトは動くことになっているのですから。あなたは何も心配することはありません。

今もしも目一杯頑張ってしまっているのだったら、むしろ少しゆっくり目に、わからなかったらこういうところに来て質問をしたりしていると良いかもしれませんよ。

まずは簡単なことからはじめましょう。でも、標準出力ができると、いろいろなことができるようになるので、続けられるのです。ほんの少し、ありの一歩の進歩でいいから、とにかく自分をほめてほめてほめまくることが大事なのです。やる気はものすごく感じていますよ!!!

みんな自分をほめながら、適当に好きなことをやってきただけです。でも、学校で教えてもらうのも一つの手ですよ。

あなたはすごくやる気が感じられた。だから、僕も教えていてとても気持ちが良かった。あなたが僕の書いた文書を読んでくれると信じて昨日も机の上でスヤスヤ眠りこけるまでワープロを打った。(笑)

とにかく最初は安くて分かり易い入門書がお勧めです。すごい簡単なことからできるようになって、基礎的な簡単な知識を身につけるといいでしょう。

もう僕は心配していないのです。きっと大丈夫ですよ。それにまたわからなくなったら聞きに来たらいいと思いますよ。みんなきっと親身に教えてくれるはずです。みなが一応に通ってきた道ですから、僕もそうですがみな苦労しているから、初心のころのことをあなたと同じ体験をみな体験してきているはずです。

初めからできる人なんていないから、気にしないでゆっくりじっくりと楽しんで、頑張ってくださいね。心から応援していますよ。ゆっくり、確実に、基礎をつくり、はしらを立てて、屋根を載せる。Javaで言うならば、最初に
標準出力でHelloWorld
変数
メソッド
クラス
制御文で
if分岐
for文ループ
switch文(選択)
while文
do
whiel文
try catch節(例外)
スレッド
フレームワーク
API
object指向(クラスやオブジェクトをものとして考える)
カプセル化・継承・多態性
Javaプログラムの基本
コレクションクラス
後はWEBアプリケーション開発にサーブレットに移行していく場合もありますが、まずは、簡単な上記を一通りやっておきましょう。すべて完璧でなくても良いですよ。すべて完璧にできる人はいませんからね。

だんだんリファレンスをひいたりすることができるようになるといろいろ面白くなってくると思うのです。人それぞれですが、メソッドがわからなくなるなんてしょっちゅうですから、僕はリファレンスから離れることはできません。でも、みんなそうだと思います。

とにかくあせらずこつこつと努力していくと良いと思いますよ。なれるのはゆっくりと、ほんの少しずつで良いのです。

あと、くれぐれも少しでも何かやったら、自分をほめてあげてくださいね。

回答ありがとうございました。
・・・脱帽です。はっきり言ってプログラミングやったことないのです。

そう思っていましたよ。でも、ゲームに目をつけたのはなかなかいいアプローチです。ただし、僕は二、三年Javaをかじりまくって、やっと文法を覚えてそれからいろんなアプリケーションを作っています。ゲームづくりはもう少し先の話ではあるかもしれないけれども、とにかくいい勉強になり結構面白いです。かなりいい訓練になるはずです。だから、先見の目のすごさに脱帽しています。逆にすばらしいと思いま...続きを読む

Q本格的 3Dゲーム開発 言語を問いません

私は、およそ1年前にゲームがどうできてるのか、コンピュータの仕組み等について興味をもち、それがプログラミングで実現できると知り、夢中になって1年間javaを勉強した者です(その時は、どの言語がいいか等知らなかったので本屋で良い入門書のあったjavaに決めました。少し後悔してます)。
本題に入りますが、本格的な売られているような(でもこれはあくまで目標ですので、1人だけの力で売れるようなものが作れるかは別問題です)3Dゲームが作りたいです。周りにプログラミングなんかやっている人はおらず、ずっと独りでやってきたのですが、いざjavaでゲームを作ろうとしても思うような3Dゲームは作れないことを知りました(作れないといことはないがとても難しく、作っている人などいない)。
そこで、unity,blender等の3D開発ソフトを調べてみたのですが、それでゲームが作れるのか、どの言語を用いるのか等が分かりませんでした。プログラミングすること前提で書いてすいません。やっぱり、プログラミングをしてゲームを作りたいのです(ゲームの自由度もあがると思うので)。
ずいぶんと、長文を書いてすいません、要するに、本格的3D技術、および3Dゲームをつくるには、何をすればいいのかということをお尋ねしたいのです。
作れれば、もう何でも、どんな言語でも、どんな3Dソフトでも生涯をかけて死に物狂いで学ぶつもりです。どうかお願いいたします。

参考url、こんなものができたらと思います
http://www.youtube.com/watch?v=QbzE8jOO7_0
http://www.youtube.com/watch?v=WJHXXpJh-hM

私は、およそ1年前にゲームがどうできてるのか、コンピュータの仕組み等について興味をもち、それがプログラミングで実現できると知り、夢中になって1年間javaを勉強した者です(その時は、どの言語がいいか等知らなかったので本屋で良い入門書のあったjavaに決めました。少し後悔してます)。
本題に入りますが、本格的な売られているような(でもこれはあくまで目標ですので、1人だけの力で売れるようなものが作れるかは別問題です)3Dゲームが作りたいです。周りにプログラミングなんかやっている人はおらず、...続きを読む

Aベストアンサー

ちなみにDirectXもJava3Dに負けず劣らず難しいです。いや、DirectXの方が難しいかも。
使っている人は多いとか書籍が多いってだけです。

DXライブラリはDirectXの難しいことを隠して3Dゲームまで作れるようにしたアマチュア用のゲームライブラリです。
私は、これから始められたほうが良いと思いますよ。

「DXライブラリ置き場 サンプルプログラム3D編」
http://homepage2.nifty.com/natupaji/DxLib/program/dxprogram_3D.html

QLNK2019: 未解決の外部シンボルのエラーが出る

Microsoft Visual Studio 2008
Version 9.0.21022.8 RTM
Microsoft .NET Framework
Version 3.5 SP1
----------------------------------------------------------------
新しいプリジェクト→Win32 コンソール アプリケーション(ソリューションのディレクトリを作成 チェック外す)→Windows アプリケーション(空のプロジェクト チェック外す)
----------------------------------------------------------------
 プログラム

 mymain.cpp
#include "myhelper.h"
#include "mymain.h"

//自キャラのデータ
Point2D g_jikipos = {40, 400};//自キャラの座標

//画像ハンドル
int g_jikiimage[11];

//色々なファイルの読み込み
int LoadFiles(){
//画像ファイル読み込み
if(LoadDivGraph("media\\player01.bmp",
11,11,1,64,64,g_jikiimage) == -1) return -1;

return 1;
}


 mymain.h
//他から呼び出させるMyMainの関数
void MyMain();
int LoadFiles();


 myhelper.h(サンプルなので打ちミスはない)
#include "DxLib.h"
#include <limits.h>
#include <math.h>

//構造体宣言
//座標またはベクトルを記録する構造体
struct Vector{
float x,y;
};
typedef Vector Point2D;
//線を記録する構造体
struct Line2D{
Point2D startpos, endpos;
float katamuki;//傾きをラジアン値で記録
Vector speed;//移動している場合は速度をセット
};
//球体を記録する構造体
struct Ball2D{
Point2D position;
float hankei;//半径
};
//四角形を記録する構造体
struct Rect2D{
Point2D lefttop;
Point2D rightbottom;
float width;
float height;
};


//ライブラリ関数
Point2D PosInView(Point2D in);
int XInView(float inx);
int YInView(float iny);
void ScrollToLeft(float jikiposx);
void ScrollToRight(float jikiposx);
void ScrollToUp(float jikiposy);
void ScrollToDown(float jikiposy);
void DrawLineInView(float x1, float y1, float x2, float y2, int Color, int Thickness);
void DrawCircleInView(float x, float y, float r, int Color, int FillFlag);
void DrawAnimation(float x, float y, double ExtRate, double Angle,int TurnFlag,
int *imgarray, int allframe, float fps);
//ベクトル関数
Vector CreateVector(Vector in, float veclen);
Vector AddVector(Vector v1, Vector v2);
Vector SubVector(Vector v1, Vector v2);
Vector AddVectorInFrameTime(Vector pos, Vector speed);
Vector AddVectorInFrameTime2(Vector pos, Vector speed, Vector accel);
Vector Normalize(Vector in);
Vector RotateVector(Vector in, float radian);
float VectorLengthSquare(Vector in);
float DotProduct(Vector v1, Vector v2);
float CrossProduct(Vector v1, Vector v2);
void SetLine2DKatamuki(Line2D *in);
void DrawLine2D(Line2D in, int Color, int Thickness);
void DrawBall2D(Ball2D in, int Color, int Fill);
//当たり判定関数
bool HitTestLineAndBall(Line2D linein, Ball2D ballin);
bool IsPointAtLineFace(Line2D linein, Point2D ptin);
bool HitTestLineAndLine(Line2D line1, Line2D line2);
bool HitTestBallAndBall(Ball2D a, Ball2D b);
bool HitTestPointAndBox(Rect2D rect, Point2D pt);
//タイマー関数
void SetSimpleTimer(int idx, int time);
int GetPassedTime(int idx);


//グローバル変数
extern float g_frametime;
extern Rect2D g_framerect;//画面領域(当たり判定)
extern Point2D g_current_field_pos;//現在の左上座標
extern Rect2D g_stagesize;//ステージサイズ

//定数宣言
const float ZEROVALUE = 1e-10f;
const float PIE = 3.1415926f;
const int SCROLL_LIMIT = 200;
----------------------------------------------------------------
 エラー内容
1>myhelper.obj : error LNK2019: 未解決の外部シンボル "void __cdecl MyMain(void)" (?MyMain@@YAXXZ) が関数 _WinMain@16 で参照されました
1>C:\Documents and Settings\Owner\My Documents\Visual Studio 2008\Projects\my\Debug\my.exe : fatal error LNK1120: 外部参照 1 が未解決です
1>my - エラー 2、警告 0
ビルド: 0 正常終了、1 失敗、0 更新不要、0 スキップ
----------------------------------------------------------------
画像を貼り付けときます
(見えにくい場合→http://www.dotup.org/uploda/www.dotup.org154142.jpg.html)
初心者なのでわかりやすくお願いします

Microsoft Visual Studio 2008
Version 9.0.21022.8 RTM
Microsoft .NET Framework
Version 3.5 SP1
----------------------------------------------------------------
新しいプリジェクト→Win32 コンソール アプリケーション(ソリューションのディレクトリを作成 チェック外す)→Windows アプリケーション(空のプロジェクト チェック外す)
----------------------------------------------------------------
 プログラム

 mymain.cpp
#include "myhelper.h"
#include "mymain.h"

//自...続きを読む

Aベストアンサー

ファイル構成から推測するに
mymain.cpp というファイルに
void MyMain(void) {
// ここに処理を書く
}
という関数が必要なようです。

Q組み込み系と制御系の違いは?

SE/PGの求人で、組み込み系、制御系を見ますが、
組み込みとは、家電製品などに組み込み、使用者が家電製品を使うときに操作したとおりに動くようにプログラムをつくるエンジニアのことでしょうか?

制御系はどういたことなんでしょうか?
制御とついているので制御するのだと思うのですが、使われる箇所としてはどういった所に使われるのでしょうか?

さっきの組み込み系でも、家電製品に”組み込ん”でも、”制御”もされているのではないでしょうか?
例えば、電子ジャーに”組み込ん”でも、温度調節なども”制御”しているのではないでしょうか?

組み込みと制御は同じような事なのでしょうか?

Aベストアンサー

○○系という言葉自体が広い概念ですので、たしかに重複する意味もありますが。
元々、系列化するものに対して○○系として区別していました。
対象が同じものであっても言い方で混乱しますね。
結論を簡単に言えば、表現の方法の違いなのですが、
1)主機能面から言えば、○○制御系
  (背景には、複雑・多様化、ネットワーク化、ユビキタス、インフラなどの課題が多い)
2)機器内部にコンピュータシステムを組み込むための技術力、対応力を強調させる場合は、組み込み系。(背景には、小型化、省電力、高速化などの課題が多い)

で、SE/PG求人ということなので、「ソフトウェア開発」に絞られます。
一般には、制御系システムの方が範囲が広く、以下のように使われるケースがあります。
「...制御系のシステム(計測・制御用ソフト、組み込み用ソフト、FA用ソフト)の開発経験者を求む....」

一般的には、
組み込み系システムとは、
 昨今の家電・電子機器・自動車(etc.)には、機器を制御するためのマイコン用ソフト・ハードが組み込まれて内蔵されている。その機器内部のコンピュータシステムを指す。組み込み系ソフトとは、機器内部のコンピュータシステムを稼動させるソフトウェアで、組み込み系システム用に開発されたソフトウェアのこと。組み込み系に対しては、PC系・UNIX系と言ったりする。機器の外部にコンピュータを接続する形式が「非組み込み系」と考えてよい。システムの構築の際、形態・方法を指す言葉。したがって、電子ジャーは、組み込み系システムであるとは言えます。

一方、制御系システムとは、広義には、機器を「制御する」システムを対象とする。狭義には、特に制御が主機能になっているものを指す。ここでの「制御系」の概念は、「組み込み系」であっても「非組み込み系」であっても構わない。すなわち、システム構築の目的や用途(機能)を強く意識した言葉。したがって、電子ジャー(炊飯)などの特定の狭い用途で主機能ではない場合には、使いません。自動車のカーナビ(位置特定)なども。敢えて「制御」を使うならば、電子ジャーの温度制御ソフトのように使われる。


制御系の実例的には
主な制御系         具体的システム例       ソフトの対象例
監視・制御系        中央監視盤、照明制御システム 制御端末用ソフト
FA系           製造ライン監視制御システム  PLC用ソフト
プロセス制御系       製鉄プラントシステム
通信・制御系        移動体通信制御システム    携帯電話、基地局
計測・制御系        排ガス濃度監視装置      濃度計測、ロギング
組み込み・制御系      DVDプレーヤシステム     モーター回転数制御
「DVDプレーヤ」では、単に「制御系」とは普通言わない。
「組み込み・制御系」もしくは単に「組み込み系」。

納得がいかないなら、「制御系」などで検索し、
ターゲットの実例を調べてください。

参考にされば、幸いです。

○○系という言葉自体が広い概念ですので、たしかに重複する意味もありますが。
元々、系列化するものに対して○○系として区別していました。
対象が同じものであっても言い方で混乱しますね。
結論を簡単に言えば、表現の方法の違いなのですが、
1)主機能面から言えば、○○制御系
  (背景には、複雑・多様化、ネットワーク化、ユビキタス、インフラなどの課題が多い)
2)機器内部にコンピュータシステムを組み込むための技術力、対応力を強調させる場合は、組み込み系。(背景には、小型化、省電力、高...続きを読む

Q戻り値の意味がわかりません…

戻り値とはどういう値なのか簡単な例文で教えて頂けますか?

Aベストアンサー

バカくさいかもしれませんが簡単な例えをだしてみます。
2人の子供がいて、名前をそれぞれ太郎・花子にしましょう。この2人の子にある役割を決めます。
・花子は飴をもらうと、それをチョコにする役割。(できるかは別として)
・太郎は花子を呼んで飴をあげる役割。

さてこの例では太郎の飴が引数(ひきすう)になり
花子のチョコが戻り値になります。

このイメージを元に次の文を読んでみてください。

「プログラム中の関数やサブルーチンが処理を終了し
呼び出し元に処理の結果として返す値。」

これが戻り値の正しい定義です。
そのほかにはNo1さんのような役割指すときも、それを「戻り値」と呼んだりします。

Q#include というヘッダファイルについて

お早う御座います。
Cの初心者です、宜しくお願いします。
「#include <Windows.h>」というヘッダファイルはどのようなプログラムを書いたときにincludeしてやる必要があるのでしょうか。
宜しくお願いします。

Aベストアンサー

VisualStudioなら、<Windows.h>の部分を右クリックして
「定義ファイルに移動」のような項目で中身を見れたと思います。
そこに定義されている関数や定数を使う場合にincludeしてあげる必要があります。
※Windows.hの中身は弄らないでください

Qcでなぜguiアプリが作成出来るのか。

cでなぜguiアプリが作成出来るのか。

現在cについて学習中です。
テキストエディタで書きターミナルで実行しています。
cではアプリが作れるようになるといいますが
現在のままではcuiのソフトしかできる気がしません。

一般的に言われるアプリケーションというものを
作成するにはまた別の手段が必要なのでしょうか。

Aベストアンサー

C言語の標準関数では出来ませんね。
Windowsであれば、WindowsAPIと言う関数群を使ってウィンドウを作成したり、ウィンドウをコントールする事が出来ます。
昔のMS-DOS時代であれば、直接VRAM(画像メモリ)をポインタで操作出来ましたので、VRAMに直接書いていました。

WindowsAPIについて紹介しておきます。
「Win32 API入門」Win32は、WindowsAPIの32bit版と言う意味です。
http://wisdom.sakura.ne.jp/system/winapi/index.html
C言語の知識としては、ポインタから構造体まで使いますので初心者にはムチャクチャ難しいです。CUIが自在に組める人でも挫折者がいますからね。

そうそう、CUIでもこのぐらいは出来るよと言う例も書いときますね。
http://hp.vector.co.jp/authors/VA016117/cprog/index.html
参考にしてください。

QC言語で簡単なゲームを作る方法

僕はC言語を学び始めた程度ですが、一番簡単に作れるゲームとその作り方(ソース)を教えて下さい。お願いします。

Aベストアンサー

★じゃんけんゲームのソースです。

#include <conio.h>
#include <stdio.h>
#include <stdlib.h>

// じゃんけん定数
#define JKN_GOO  (0)
#define JKN_CHOKI (1)
#define JKN_PA  (2)

// 勝敗の定数
#define TYP_KATI (0)
#define TYP_MAKE (1)
#define TYP_AIKO (2)

// じゃんけんの判定関数
int check( int human, int computer )
{
 if ( human == computer ){
  return TYP_AIKO;
 }
 switch ( human ){
  case JKN_GOO:  return ((computer == JKN_CHOKI) ? TYP_KATI : TYP_MAKE);
  case JKN_CHOKI:  return ((computer == JKN_PA) ? TYP_KATI : TYP_MAKE);
  case JKN_PA:  return ((computer == JKN_GOO) ? TYP_KATI : TYP_MAKE);
  default:   return -1;
 }
}

// じゃんけんゲーム
int main( void )
{
 // ゲーム変数
 int count;  // 勝負回数
 int kati = 0; // 勝ちカウンタ
 int make = 0; // 負けカウンタ
 // 一時変数
 int human;  // キー入力の一時変数(人間用)
 int computer; // 乱数発生の一時変数(コンピュータ用)
 
 // (6)じゃんけん勝負を10回行う
 printf( "★じゃんけんゲーム(10回勝負)\n\n" );
 for ( count = 1 ; count <= 10 ; count++ ){
  // (1)人間:3つの状態を入力
  printf( "%2d回目…[1]グー [2]チョキ [3]パー を入力して下さい:", count );
  do {
   // (2)キー入力
   switch ( getche() ){
    case '1': human = JKN_GOO; break;
    case '2': human = JKN_CHOKI; break;
    case '3': human = JKN_PA; break;
    default: human = -1; break;
   }
  } while ( human == -1 );
  
  // (3)コンピュータ:3つの状態を乱数で決める
  computer = (rand() % 3);
  // (4)人間vsコンピュータの勝負
  switch ( check(human,computer) ){
   case TYP_KATI:
    kati++;
    printf( "⇒勝ち。\n" );
    break;
   case TYP_MAKE:
    make++;
    printf( "⇒負け。\n" );
    break;
   case TYP_AIKO:
    printf( "⇒引き分け。\n" );
    break;
   default:
    printf( "⇒エラー。\n" );
    break;
  }
 }
 // (7)結果表示
 printf( "\n★じゃんけんゲームの結果\n" );
 printf( "人間    :%d 回勝ち\n", kati );
 printf( "コンピュータ:%d 回勝ち\n", make );
 printf( "※引き分け回数は %d 回でした。\n", (10 - kati - make) );
 return 0;
}

注意:全角空白をタブ文字に変換して下さい。

★じゃんけんゲームのソースです。

#include <conio.h>
#include <stdio.h>
#include <stdlib.h>

// じゃんけん定数
#define JKN_GOO  (0)
#define JKN_CHOKI (1)
#define JKN_PA  (2)

// 勝敗の定数
#define TYP_KATI (0)
#define TYP_MAKE (1)
#define TYP_AIKO (2)

// じゃんけんの判定関数
int check( int human, int computer )
{
 if ( human == computer ){
  return TYP_AIKO;
 }
 switch ( human ){
  case JKN_GOO:  return ((computer == JKN_CHOKI) ? TYP...続きを読む


人気Q&Aランキング