2018年1月4日澄耍,從想法到實(shí)現(xiàn)用了368天《奎特爾數(shù)字大冒險(xiǎn)》終于上線微信小游戲奢米!
不知道大家還記得在2018年1月1日油湖,微信小游戲剛出來(lái)時(shí)检激,Shawn發(fā)過(guò)一篇文章《元旦快樂(lè)—小游戲肴捉!小游戲!小游戲叔收!》當(dāng)時(shí)還發(fā)了一個(gè)自己做的Demo齿穗,不知道是否還有人記還得,看下圖:
1. 大家關(guān)心的問(wèn)題
猜一猜饺律,這兩天收到最多的問(wèn)題是什么窃页?
手寫數(shù)字識(shí)別怎么做的?
我想這是大多數(shù)程序員同學(xué)體驗(yàn)了《奎特爾數(shù)字大冒險(xiǎn)》最為關(guān)注的問(wèn)題复濒,也引起不少群中的討論脖卖!
數(shù)字大冒險(xiǎn)中沒(méi)有圖像識(shí)別的技術(shù),是用的軌跡近似匹配實(shí)現(xiàn)的巧颈。
記得很久以前玩過(guò)一個(gè)叫《刀劍封魔錄》的游戲畦木,就是使畫“一”、“V”洛二、“Z”等書寫軌跡發(fā)大招馋劈,看下圖:
數(shù)字軌跡模版
首先是將0~9的數(shù)字寫一遍攻锰,將每個(gè)數(shù)字的軌跡坐標(biāo)點(diǎn)保存下來(lái),大概數(shù)據(jù)結(jié)構(gòu)如下:
[
{name: '1', data: [{x, y},{x, y},{x, y},{x, y},{x, y}]}
{name: '2', data: [{x, y},{x, y},{x, y},{x, y},{x, y}]}
{name: '3', data: [{x, y},{x, y},{x, y},{x, y},{x, y}]}
{name: '3', data: [{x, y},{x, y},{x, y},{x, y},{x, y}]}
...
]
為了適應(yīng)大多數(shù)人的書寫方式妓雾,需要為每個(gè)數(shù)字多保存幾個(gè)書寫軌跡娶吞!看下面視頻:
視頻地址:https://v.qq.com/x/page/i0823npmetu.html
我這里做了一個(gè)軌跡播放器,大家有興趣可以看一下械姻,按照這種近似的路徑去寫就容易被匹配上妒蛇,里面還有更多sample示例。
軌跡匹配
在游戲中監(jiān)聽寫字板節(jié)點(diǎn)的TouchStart楷拳、TouchMove事件繪制軌跡绣夺,同時(shí)保存軌跡坐標(biāo)點(diǎn),在TouchEnd時(shí)將收集到的坐標(biāo)點(diǎn)數(shù)組與事先錄入的模版數(shù)據(jù)挨個(gè)做對(duì)比欢揖,看與那個(gè)近似陶耍,將最接近的軌跡name值拿出來(lái)。
在這里4和5比較特殊她混,他們是由兩筆寫成烈钞,因此將4、5的第一筆也做了單獨(dú)的軌跡模板坤按,如果識(shí)別到寫的是4或5的第一筆時(shí)毯欣,就等待用戶輸入第二筆。
Shawn目前還不能把代碼直接拿出來(lái)臭脓,暫且只能分享大致原理酗钞,后面有時(shí)間我會(huì)再做更多這方面的分享,也歡迎大家討論来累!
2. 冒險(xiǎn)之旅
Shawn是從2018年7月開始獨(dú)自踏上冒險(xiǎn)之旅砚作,一邊四處打游擊做點(diǎn)小外包和Creator的入門培訓(xùn),一邊寫點(diǎn)公眾號(hào)文章佃扼,想把數(shù)字大冒險(xiǎn)游戲給做出來(lái)偎巢!想的是比較美好,但總是一拖再拖兼耀,拖到了12月才正式全身心投入压昼!
手寫識(shí)別在半年前就解決了,用它來(lái)做一個(gè)什么樣的游戲呢瘤运?當(dāng)時(shí)唯一的想法就是窍霞,一定是要意義的游戲,可以真實(shí)幫助到小朋友學(xué)習(xí)數(shù)學(xué)運(yùn)算拯坟、鍛煉思維記憶但金。
其中的意義就是來(lái)自于我的女兒,一個(gè)老爸想在女兒面顯得很厲害郁季!在她幼兒園的時(shí)候冷溃,我經(jīng)常對(duì)女兒說(shuō):
“這個(gè)游戲不錯(cuò)钱磅,爸爸也可以給你做一個(gè),還可以永遠(yuǎn)不會(huì)死掉”似枕,
“這個(gè)游戲太沒(méi)意思了盖淡,爸爸給你做一個(gè)更好玩的!”
但每一次熬更趕夜換來(lái)的無(wú)一都是鄙視的表情凿歼,太丑了褪迟!
但每一次熬更趕夜換來(lái)的無(wú)一都是鄙視的表情:“太丑了,全是方方塊的答憔!“味赃。不過(guò)還好,我送女兒上學(xué)的路上虐拓,我們會(huì)不時(shí)討論一下心俗,怎么做她會(huì)接受!
游戲的創(chuàng)意也不是Shawn發(fā)明的侯嘀,任天堂早在10前就有不少這類益智游戲了另凌,Shawn也是任天堂的粉絲,從Wii到NDS戒幔、3DS、Switch一個(gè)沒(méi)落下土童,如果大家有興趣做小游戲诗茎,任天堂的益智游戲絕對(duì)是一個(gè)不錯(cuò)的老師!
懷揣著一顆萌動(dòng)的心,一個(gè)朝夕相處鞭策你的用戶献汗,一個(gè)可以學(xué)習(xí)模仿的老師敢订,開始獨(dú)自踏出了第一步!
3. 冒險(xiǎn)計(jì)劃
任天堂的益智游戲罢吃,咋一眼看起來(lái)簡(jiǎn)單楚午,但深入體驗(yàn)?zāi)銜?huì)感受到作品的中無(wú)比的誠(chéng)意。
《奎特爾數(shù)字大冒險(xiǎn)》匆忙上線微信小游戲尿招,明顯也缺乏誠(chéng)意矾柜,導(dǎo)致大家所關(guān)注的焦點(diǎn)是手寫識(shí)別,而非游戲本身就谜!游戲難度頗大怪蔑,其實(shí)更適合大朋友,而非小朋友丧荐!說(shuō)的是幫助小朋友鍛煉思維記憶缆瓣,卻是惹的小朋友玩的冒火想打人!
靜下心來(lái)虹统,把自己當(dāng)成一個(gè)小孩子弓坞,我能從《奎特爾數(shù)字大冒險(xiǎn)》學(xué)習(xí)到什么呢隧甚?帶著這種想法,我思考了好幾天渡冻,整理了一份粗略的計(jì)劃呻逆!
一年來(lái)的想法和思考始終沒(méi)有記錄下來(lái),不能踏實(shí)去執(zhí)行菩帝,這次將所有的想法寫下來(lái)咖城,一條一條地死磕下去!
顯然上面的工作量是非常巨大的呼奢,Shawn是一個(gè)程序員宜雀,同時(shí)扮演一個(gè)偽策劃,好幾次使用PhotoShop切點(diǎn)圖握础,想把電腦給炸了辐董!
有人問(wèn):“狼居然會(huì)天上飛,你想象力還真豐富禀综!”
回答說(shuō):“不是豬也會(huì)飛的嗎简烘?我這是沒(méi)資源嘛,先做出來(lái)再說(shuō)吧定枷!”
沒(méi)有美術(shù)就像有槍沒(méi)子彈孤澎、有鍋沒(méi)米,而且今年冬天也特別冷欠窒,儲(chǔ)藏的食物也快用盡覆旭,先把東西做出來(lái)再說(shuō),先讓狼飛一會(huì)兒吧岖妄!終于在1月4號(hào)把第一顆子打出去了型将!
Shawn在此感謝幫助過(guò)我的朋友們,成都村雨科技的「大白」荐虐、「onescc」近乎無(wú)嘗給我提供部分美術(shù)資源七兜;感謝「丁丁貓」的骨骼動(dòng)畫,以及對(duì)游戲的建議福扬,讓我好好看下女兒的課本給了我不少啟發(fā)腕铸;感謝「jacklling」在微信小游戲程序開發(fā)中提供的幫助!也感謝幫助我分享分享忧换、傳播的同學(xué)們恬惯!
4. 幫助更多的人
對(duì)程序員來(lái)說(shuō),美術(shù)與推廣是最難的亚茬,今天算是為自己寫了一篇廣告酪耳!
如果你也有個(gè)人開發(fā)的小游戲與有趣的故事,歡迎來(lái)奎特爾星球,免費(fèi)為大家提供推薦碗暗,幫助他人就是幫助自己颈将,愿我們一起成長(zhǎng)!
歡迎關(guān)注「奎特爾星球」公眾號(hào)言疗,歡迎大家投稿晴圾,來(lái)我們一起成長(zhǎng)!