公開先
https://minordaimyo.net/pencilchat/
(2022/09/16 現在「えんぴつチャット」に名称変更の上、機能も強化されています)
8bitpaint chatの主な特徴・使い方
- 高解像度のキャンバス(A4 600dpi相当)で軽快な描き味
- 筆圧と傾き検知に対応
- 参加人数は8人まで(ROMは現状16人まで)
- 使える色は黒1色のみ
- 任意の参加者を非表示にできる機能
- 2本指のタッチ操作でキャンバスのスクロール・拡縮
- 2本指タップでUndo、3本指タップでRedo
- キャンバスのダウンロード機能
動作環境
Windows上のChromeとペンタブレット・液晶タブレット
iPad上のSafariとApple-pencil
Android上のChrome
等々
#ぎじゅつてきなこと
クライアントサイドはjs+WebAssembly(主にc言語)
サーバーサイドはnode.js+WebAssembly(クライアントと共通のコード)
で作成。
キャンバスサイズは、7016x4961pixel(A4 600dpiと同じ)。
クライアント側の消費メモリは250MBくらい、
サーバー側の消費メモリは一部屋当たり300MBくらい。
サーバー側にもキャンバスを保持しているため、メモリ消費が大きくなっています。
ユーザーインターフェース周りを中心にjsを使用。
お絵描き機能部分はほぼc言語で記述(WebAssembly)。
#苦労したこと
c言語は割と得意だけどWebプログラミングは全くの素人。
そのためjsでの記述部分はかなりの糞コードになってしまった…
#その他
初めてQiitaで発信しました。
必要なことは後から書き足す予定です。