チャットシステムを作ってみた
こんにちは!
スキルをつけるためにチャットシステムを作ってみたので
今回はその作ってみたチャットシステムについて書いていこうと思います!
開発の経緯
開発の経緯として、主に下記があげられます。
・スキルをつけて高度な仕事をやりたい
・いずれはゲームの開発がしたい
・単価をあげたい
単価については、様々な機能をもったシステムを提供することで、
お客様の満足度を高めると同時に単価をあげることで、
より品質のいいシステムを開発することができます。
例えば、今まではAndroidの特定OSでしか実機テストをしてなかったのを
Androidの全OSで実機テストをすることにより、エミュレーターでは
発見することが難しいバグを修正することができます。
そのほかにも開発できなかったハードウェアに対応することで、
全ての機器で動作が可能なシステムを作ることもできます。
ゲームについては、リアルタイム通信が必要なオンラインゲームを
作りたいと考えているため、今回はチャットですが、TCPの技術を学ぶために開発しました。
対応プラットフォーム
対応OS・対応エンジンは下記のとおりです。
・Windows10
・Windows7
・Android
・Unity
・Linux(要検証)
サーバ側は、テスト環境ではWindowsですが、想定本番環境は
LinuxになるのでLinux対応できるよう調整しています。
クライアントについてはJAVA対応でできるように調整中です。
開発言語
開発言語として、複数の言語を使っており、それぞれ下記のものになります。
Windows
・C#
・C++(サーバ)
・C++(クライアント・コンソール・要検証)
Unity
・C#
Android
・JAVA
Linux
・JAVA(要検証)
・C++(サーバ・要検証)
要検証が複数見られますが、投稿時点では検証しておらず、
今後対応検証予定のものを要検証と記述しています。
MACとiPhoneについても対応予定ですが、対応時期が未定ですので
現時点では、記述していません
テストの様子
気になるテストの様子はこちらです。
C++で開発したサーバのコンソール画面
接続したIPアドレスとメッセージ受信時にどのようなメッセージを
受信したのかを表示しています。
文字コードはC#がUTF8で主にやり取りしているため、C++もそれにあわせて
UTF8で受信し、文字コードを変換してShift_JISにしてコンソールに表示しています。
こちらがWindows用チャットソフトです。
開発言語はC#で行っており、各プラットフォームのソースのベースになっています。
まあ単純に得意な言語がC#だからC#をベースに開発しているだけです。
こちらはAndroid版チャットアプリのテスト画面です。
Androidについては、非同期処理あたりがちょっとややこしかったです。
こちらはJAVA版のチャットソフトの画面です。
JAVAについては、Androidアプリ開発で少しやっていますが、
まだまだ勉強が必要なように感じます。
このほかUnityでも検証はしており、こちらはC#だったので
そこまで苦戦せずに実装することができました。
どちらかというとスクロールビューに苦戦しました・・
開発で苦労した点
最初は、サーバもC#で作るのがいいかとおもってやってたのですが、
情報が足りないこともあり、勉強中のC++で開発することにしました。
もともと、サーバ側は処理速度の速いC++のほうがいいと思っていたので
結果的にはベリーグッドな着地点になったと思います。
あとはJAVAの別スレッドからのUI操作なども
C#と違ったので少し悩みました。
最終的な目標
今回、TCP通信が複数言語で開発できるようになったので、
次は、Linuxでの検証とMACやiPhoneでの検証、
Unityでキャラの座標などをリアルタイムでやりとりして、
オンラインゲームを開発することです!
UDP等別の技術もありますが、まずはTCPでやってみようと思います。
まとめ
今回は学習のブログでしたが、かぴそふとでは、開発の仕事もやっており、
パソコンソフト開発を中心にスマホアプリや、WEBアプリ開発なども行っています。
開発者自身も日々勉強しており、今回はその成果の1部を記事にしてみました。
また、かぴそふとでは、パソコンサポートもやっていますのでパソコンに詳しい人が
身近にいない人、パソコンスキルを上げたい人もぜひお気軽にご相談ください
かぴそふと
https://www.kapysoft.com/
かぴそふとへのお問い合わせ
パソコンサポートのご依頼やご相談事はこちら
https://www.kapysoft.com/Contact/Contact/index.php
かぴそふとへの見積もり依頼
開発のご依頼やご相談事はこちら
https://www.kapysoft.com/Contact/Request/index.php
もしよろしければサポートお願いいたします。 頂いたサポートは今後の活動費として使わせていただきます。