編程有可能娛樂化(遊戲化)嗎?
我對於遊戲的興趣遠遠大於其他的興趣,尤其是對於編程的興趣 請問編程可以娛樂化(遊戲化)嗎?這是我基於《遊戲改變世界》這本書得來的一個模糊的想法
註:遊戲化的本質可以理解為成就感/反饋,並非特指某個/某種遊戲,請不要回答無關的內容
題主說的這本書我也讀了,並思考過這件事
編程遊戲早已存在,上面也說了不少,本文主要討論編程遊戲化的問題
注意,這裡的編程指日常編程,開發商業軟體等
我們先看一下實際開發和遊戲之間的異同
1.創建(領取)任務
遊戲:到特定等級自動創建任務,內容固定,從特定NPC處領取
現實:由各類經理開會商討,任務內容未知且不固定,根據需求更改隨時變化,一般從特定經理處分發
2.完成任務
遊戲:
普通任務:任務內容單一,無特殊限制,比如從甲NPC處領取任務物品,送往乙NPC即可完成;或通關某副本 或 擊殺XX只小怪等
(完成必有獎勵,失敗無獎勵無懲罰)
限時任務:固定時間內完成,否則必然失敗
(完成必有獎勵,獎勵大於同等級普通任務,失敗無獎勵無懲罰)
限條件任務:完成固定條件才算成功,比如地下城類遊戲,技巧評分要達到S,並且通關副本才能完成任務
(完成必有獎勵,獎勵大於同等級普通任務,失敗無獎勵無懲罰)
現實:
普通任務:日常開發,堆砌代碼,部分人慣用CV大法,幾乎沒人失敗
(獎勵並非及時獲得,並且完成未必有獎勵,因為很多人是死工資,干多干少工資照發)
限時任務:固定時間內完成,完不成(失敗)就加班或挨罵
(完成獎勵同上,失敗可能有懲罰)
限條件任務:大部分情況下是不限制條件的,功能只要完成就行,這一點某些小公司更甚,有的老闆甚至反對你花時間在性能優化上。大型項目在一些關鍵地方通常有性能和安全性的要求,但如果性能和安全性等方面的提升不為公司帶來直接的經濟利益,你可能也不會得到更多的獎勵
(爛公司完成可能有懲罰,正常公司有幾率獲得更大獎勵,獎勵並非及時獲得,獎勵內容不一定等於時間成本)
3.領取獎勵
遊戲:獎勵內容在領取任務時就已知道,完成後直接獲得獎勵,並且獲取(虛擬)物質獎勵的同時會獲得精神獎勵,比如角色身上產生一個絢麗的特效代表任務完成
現實:領取任務時不確定獎勵內容,完成後不一定什麼時候能領到獎勵,但通常會以工資形式發放,基本無任何精神上獎勵
應該不難看出,其實工作和遊戲沒什麼大區別,工作其實只是個規則不清晰的爛遊戲罷了
作者那本書里(話說題主你寫錯了啊,書名是《遊戲改變世界》)也說過,遊戲其實是一個難度更高的工作(原話記不清了,這段等我回家翻書補上)
那是不是說,只要確定任務內容,確定任務完成條件,確定完成後的獎勵,獎勵是及時的並非延遲的,有一定精神獎勵,工作也會變得和遊戲一樣有趣?
我的回答是肯定的
我個人是把工作當遊戲玩的,boss全部想像成npc,任務完成後自己給自己精神獎勵,但這要要求所有人都是中二病,這不太可能
那就想辦法總物理上確定這些條件,我們一個個來
1.確定任務內容和完成條件
這兩個雖然一起說,但現實中缺是分開的,任務內容和完成條件在領任務的時候一般都規定好了,但任務內容一般無大的需求變更的時候不會變,並且領任務之前通常已經知道(參與會議討論),而完成條件確經常有追加和變化。要一XX功能,如果是視圖層,也就是界面上的功能,更改就比較頻繁,這不好看那加個判斷的,位置變化也是常事。
這個沒有什麼好方法進行改善,除非整個軟體外包,改一點多少錢,這樣有效降低變更率,如果是公司程序那就只能說什麼改什麼,畢竟老闆雇你就是讓你做這事的。
如果是數據處理,條件通常是安全和性能,其它追加變化並不大。
其實還有個辦法,就是把每個追加條件變成一個新任務,但這樣就不是一個線性打怪升級的套路,不一定什麼時候NPC跑過來告訴你有個very high的問題需要你來處理。偶爾一次那叫突發事件增加趣味性,但多了之後就變成災難片了
2.確定完成後的獎勵,並且獎勵是實時的
這個很困難,因為N多日常小任務是沒獎勵的,並且只要是工資制這一條就沒出路,除非全民外包,每項任務多少錢商議好,小問題改多少個算一次錢,需求變更多少錢
獎勵實時這一項,在一些制度完善、量化績效優秀的公司基本就解決了這個問題,因為雖然物質獎勵不能及時到手,但任務完成已經記賬,在心理上的感覺與實時獎勵差不多,不過雖然獎勵是實時的,但還是不能解決獎勵不確定這件事,工資是死的,頂多發點獎金,數量還不確定
3.精神獎勵
這個好解決,排個表,誰誰誰完成任務總數多少,S級任務完成數量,A級任務完成數量...這一排,公司最醒目位置一貼,簡直就和發布百人榜一樣,要是誰拿了第一,那不開心死了
看似好解決,但其中隱藏了一個很重要的問題,就是總有一些大神風光無限,總有一些弱雞給人墊底。新員工,實習生等,基本註定排在最後,如果你總倒數,消磨興趣,打擊自信,那肯定在這公司呆不長了,對團隊的整體發展其實是弊大於利的(想當年一到期末考完試,這七大姑八大姨的哪個看見了不問一句,「這大兒子長的真好,期末考咋樣啊?全校排多少啊」,我說:"100名",」哎喲真出息,進百人榜了呢「,」倒數的...「)
那為什麼遊戲里沒有這個問題? 其實遊戲也有,不過人家想到了一個超機智的辦法——充錢
只要充錢就可以瞬間或短期內讓各種排名靠前,我當然是拿網遊舉例,畢竟我們現在玩的是地球ol
上面提到的一個解決辦法中,外包化看似是一個可行的方案,只要全民外包,雖然員工在公司幹活,也屬於公司,但工作內容卻是外包的,這樣可以很好的解決大多數問題,但如何量化工作,如何明確工作內容,如何分配都是大問題
這些不解決,編程遊戲化或者直接叫工作遊戲化是不太現實的
在這些問題得到解決後,我期望的工作模式是這樣的
有一個第三方的平台,這個平台接受公司分發的任務,並且把任務獎勵公布出來,獎勵由平台代管,任務內容明確,條件清晰,做好後交由平台做驗證,驗證通過後直接由平台發放獎勵。平台的會員可以是特定公司職員,也可以是自由人,到處接一些私活,每完成不同難度的任務就會漲多少經驗,有等級制,升級的時候有大大的兩個升級字樣提示在屏幕。
真希望有朝一日能看到孩子逃課上網,父母老師齊動員,在市XX網吧發現在刷編程OL遊戲,副本是國際知名的"狗狗"公司下的開源項目"軟狗大戰",並高高興興的賠孩子刷完副本回家吃飯...
一直想設計一個純編程的網路遊戲...暫定名稱「不可思議的魔法迴路」...(如果我有時間做的話)
看到沒人回答我就簡單說說我的看法本人學渣勿噴。看問題題主是想找到方法提高對編程的興趣,比如遊戲化。我先把問題分解一下吧,因為題主沒有提及對編程的掌握程度,那就先說說學習編程時的「遊戲化」,再說說掌握編程後日常編程的「遊戲化」。
- 就本人的理解,題主所說的「興趣「在學習編程的階段其實就是「耐心」的意思。初學者在學習編程 時因為擼碼枯燥常常失去繼續下去的耐心,這和編程的學習曲線有關。初學編程看不到成效就會缺乏興趣,所以題主需要的就是「遊戲性」和「成就感」。現在有許多編程學習網站,大部分都實現了互動和成就的功能。比如 Learn | Codecademy 。選擇此類網站學習編程能即時看到自己的代碼的效果,能看到自己一步一步的成長,不知道比起書本能否給予題主想要的「遊戲性」。入門之後,用來提高技術的擼碼網站也有許多。常見的形式就是為某種機器人編寫代碼完成某項任務或是與其他人的代碼對抗。比如 FightCode - Killing Robots for Fun 。
- 接下來是日常編程中的遊戲性【大霧 其實並不知道有這種東西。。】如果是掌握了編程還想要遊戲性的話。。【題主你為什麼學編程?】還是說說吧。先定義這種情況下的「遊戲性」。如果是擼碼擼累了想玩玩其他的,那就去上述機器人網站虐菜吧_(:з」∠)_ 也可以了解下 Core War ,都是程序員周末沒妹子約一個人在家不錯的消遣 _(:з」∠)_ 。如果是想在寫目的性代碼,完成某項工作時獲得「遊戲性」,洗洗睡吧(?
寫了這麼多有的沒的,其實想說的是請題主用心感受編程的樂趣,感受一行行代碼在指尖流淌的美妙,享受辛苦工作後看到自己的程序按期望執行的成就感和充實。靜下心來感受,去熱愛編程,而不是浮躁地追求「遊戲性」。我就覺得編程本身就很使人愉悅了,何求遊戲呢?
【說白了就是沒妹子自己孤獨地擼碼玩兒嘛喂 _(:з」∠)_
現在還不夠娛樂化嗎,已經夠友好的了,夠有愛心的了。但是一但當工作就這事就變了。有兩種觀點不要把喜歡的事當工作,因為你將不能放肆,被各種東西約束把喜歡的事情當成工作,因為你將每天干著喜歡的事情,還有鈔票拿
給Eclipse加入成就系統,寫第10萬行代碼的時候屏幕金光一閃,獲得成就『孤獨終老』。
小遊戲伊特(Eets)就是和編程很像的遊戲,裡面有狀態機,有線程協調等編程中很麻煩的東西在遊戲里的模擬,玩完一關,感覺就像寫了一個程序一樣。
CodeCombat
通過遊戲學習最基礎的概念可以,如:摘取心愛玫瑰。但深入的學習和日常工作暫不可能。
遊戲化學習和遊戲為基礎的學習的幾個差別
作為比較強邏輯和知識性的實踐行為,用遊戲化方式進行編程,目前還是不切實際的。https://paiza.jp/
吶,你知道嘛。如果你演小品的時候笑了,你演的小品就不好笑了哦。
CodeCombat - Learn how to code by playing a game。怎麼能不提codecombat呢
簡單動動腦就會寫個遊戲出來是不可能的。就像你不可能通過遊戲就學會高等數學一樣。
在國內大概會變成這樣。
- 來就送軟考二級證書
- 首充送一級VIP,一級VIP KPI量化加成5%
- 每日登錄送語法糖一枚,簽到滿七天送XX語言
- 11連抽必中需求修改機會一次
- 打到51級可習得BUG轉化技能
- 99級別可購買不同價值的轉職大禮包,轉職成CXO或者XXX Leader
。。。。。。。
國內的所謂遊戲也就是這樣,所以不要把國內看起來還不錯的編程變成這樣今天又受刺激了,摺疊我吧是看阮一峰對Linus自傳的介紹吧。說性從需求變成娛樂化。"人類的追求分成三個階段。第一是生存,第二是社會秩序,第三是娛樂。最明顯的例子是性,它開始只是一種延續生命的手段,後來變成了一種社會行為,比如你要結婚才能得到性。再後來,它成了一種娛樂。"我覺得性從最初就是一種主動追求,而編程是被動的。編程仍然是用來解決問題,分析現實世界仍然在尋找更簡單高效的表達方法。而現在的「娛樂」現象,是人們以此謀生,渴望通過做一個精美的APP產品創業成功。精美好字畫。而實用——則因需求不同,沒有一定的工具。工具的進化總是趕不上變化。只有編程是設計工具的根本工具。原本在終端下輕易解決的如重命名及搜索問題,在圖形化下變得非常難。當然終端下要記模式匹配,起點還是比較高的,但如果有這種需求,也只有這種設計,不能像自然語言一樣方便。未來這些匹配可能作為中間層,被自然語言包裝。仍然需要規範使自然語言無歧義,因為自然語言是認識不清楚的表達,所以是模糊歧義的。所以不能替代清晰地認識分別。
有一個「工程師情懷」的問題,回答中有個遊戲就是
不明白題主到底想問什麼。如果只是可能不可能的話,我覺得是可能的,或許作為一種智力遊戲吧,不過還是相當困難的。
以下是我的一點管窺之見。要說遊戲娛樂最大的特點我覺得就是讓人感受到樂趣,並樂此不疲。本人是學軟體工程的本科生,基本上每周都會有很多的編程作業。而編程的目的便是去解決一些問題。比如說用遞歸寫一個走迷宮或者疊漢諾塔的程序,比如用哈夫曼演算法來寫一個壓縮文件的程序,再比如設計一種數據結構來做一個簡單的資料庫。雖然一般大家都會叫苦連天,也確實嘗嘗在無盡的debug中煎熬,在deadline面前捉雞。但是在program的過程中幾乎都是全神貫注,「根本停不下來」,就像是在攻克一道難關。所以很多同學都會program到深夜,有時會是因為deadline,但我覺得更多時候是因為不想停下來。對,就像玩遊戲一樣。而當你的程序成功之後的心情也是不言而喻。說了這些我只想說在program的過程中是有很多樂趣的。如果設計的好,或許有一天也能變成一種娛樂方式。但是。看題主的意思,說對遊戲的興趣比編程的興趣大的多。所以是想通過玩玩遊戲就變成程序猿么?那還是洗洗睡吧。遊戲化其實很簡單。(小米說的的《參與感》,其實就是遊戲化。別看我,我沒買這本書。)
只是把遊戲化做好真的很難。那麼遊戲化是什麼?
遊戲化的目的是增強粘性,增強時間,甚至於形成習慣。
*背景閱讀
遊戲化看上去很簡單,實際上非常複雜,對她的研究也牽扯到各個學術領域。但遊戲化本身其實是一個商業概念。
研究遊戲,少不了習慣模型。
習慣是這麼工作的感覺不舒適—&>轉移到舒適環境—&>感到舒適首先是四要素Cue:地點、時間、你的感受、反應。
Routine:你的神經反射。Reward:感受的變化、快樂。(對不起物質獎勵無直接效果)Belief:對產生改變的的堅信。先來看看遊戲吧:
Tracy Fullerton 說 「A game is a closed, formal system that engages players in a structured conflict, and resolves in an unequal outcome.」
遊戲是一個封閉形式化的以使玩家陷入刻意的衝突並導致不平等輸出的系統。這裡提到的就是cue和routine和reward和belief。
遊戲的環境是cue,你的routine是過去的記憶。
你所得到的,是reward。你跟其他玩家相比較,你所得到的是reward。不平等的reward,造成你的belief,即你相信自己是最棒的,只是沒有花時間而已。如果遊戲設計的不好,超過了閾值,就會造成:人家都開掛!之類的負面感。這有一條線。
一個成熟的遊戲系統大多有以下要素:
積分資源收集競賽頭像社交圖譜進度等級....那麼遊戲化:
遊戲化的編程毫無生產力可言
拜託回答問題至少先找定義好不好?遊戲化雖然是個新概念,嚴格的定義尚無確切共識。
但遊戲化絕非把什麼東西做成遊戲(那是2010年之前的用法,老先生)。廣泛認同的一點是:
遊戲化是將成功遊戲中所使用的元素和設計技巧運用到非遊戲的環境(現實社會)中。(Life is a Game!)遊戲化其實一直存在在人類社會中:
年終獎、銷售部門競賽、老師開展的小組競賽討論等等等等。傳銷(包括大規模騙局以及從前和現在階級社會)還有宗教。都是前遊戲化時代的經典例子。即利用人類的動物性。這當中有的存在道德問題,有的不存在道德問題。有道德問題的大多是把有意識的利用,無道德問題的大多歸根到底屬於人類社會提高整體融洽程度和生產力的自發行為。道德問題也是仁者見仁、智者見智。
你們說會被傳銷騙的人愚蠢,可是你們真的知道自己想要什麼么?那麼唯一的區別不就是後果么?傳銷無生產力可言,但是人類的階級社會產生了人類的生產力,不是么?(這裡有道德觀的問題,我假定你想要了解人類本身即你自己,請不要追究我不推行正能量的責任。)絕大部分人類根本不知道自己為什麼而活。他們要一樣東西,如果不是生存需要,就是因為大家都想要(在我的認知里,愛可以改變這種情況,你想要只是因為他覺得很重要,就算 Sheldon 說愛只是一種幻覺,但是人類社會也是一種幻覺不是么?畢竟青春期少年求放過)。
在這裡,事實上生活中的絕大部分情況,新生的大腦皮層(負責邏輯和理性思考)並不管用,因為相比條件、非條件反射,他們還太年輕。上面之所以扯一大堆,都是因為你們不百度,你們 Too Naive ,你們沒有 Know Thyself!所以不要怪我,我只是作為一個遊戲化小朋友,來教你們一些人生的經驗!
當然。樓上有人舉CodeCademy之類的例子。CodeCademy算,但只能說非常初級而已,連 QQ 都比不上!(人家好歹還有紅名和VIP等級!你只有個徽章!徽章!)
也是一個 pre-gamification 時代的作品(諸如此類還有 CodeTank..blahblahblah之類。)CodeCademy一類屬於無意識應用,CodeTank可以歸類為嚴肅遊戲。但是它們都不是嚴格的Gamification(參見2010年DISE大會上的演講)。下面是答案正文(什麼上面不是正文?你在逗我!)。=================
遊戲化編程是絕對可行的,無論是每找到一個Bug給一分,還是修改一個長期的Bug送一頂帽子,還是有人修好了一個Bug讓同事們鼓掌 (參見 Apple Store,這個很強)。都是遊戲化。
編程本身有不弱的生產力,和娛樂性。
當中有的人本身喜愛編程、puzzle-solving。但是,對於社交動物和沒時間玩的人來說,隨著編程能力的加強和社群快速增長,達到領會編程愉悅性的門檻越來越高。(過去的年代會XSS就可以愉悅一下的,現在還要多一個條件:年齡小於15歲!)現在已經產業化到需要人為干預布置遊戲性的地步了(這裡的閾值大概也是正態分布的,其他領域也一樣)。你不到你想要什麼對不對?你確定你知道么?越是得不到就越想要對不對?
遊戲化是對這一特性的良性應用,讓你做你想做的事情,同時更好的讓幫助別人賺錢(TuT)你不想做你的工作?這工作很煩?如何把這樣的狀態變成:這工作很有趣,管吃管住不拿錢我也干?對於遊戲的興趣遠遠大於其他的興趣
題主為什麼會有這樣的問題?很簡單,你沒有在一個領域精深到可以體會到快樂的地步。你沒有找到和你一起玩的人,reward太小。
所以需要額外的東西來輔助你的reward。
那麼,你對等級感興趣,我們就設置等級。你對徽章感興趣,我們就設置徽章。你對積分感興趣,我們就設置積分。你對社交網路感興趣?我們就設置關聯微博賬號。
看上去很平常?同學,你知道遊戲為什麼要設置數值分析濕么?
具體的做法很複雜,很難說,所以就不陳述了。有興趣可以看相關案例,應該是很明顯的。
(Google 的驗證碼 OCR 項目,Duolingo 都是類似的應用,前者嚴格不算遊戲話,但他有 reward :成功註冊。後者就是遊戲話的典型了,你一邊學習,Duolingo外包翻譯知道么w。)恭喜你,成功讀完我的小白文+背景閱讀,成功進階成為一階遊戲化初心者!
怎樣,有木有看到問中的隱藏message呢?:D 再找找吧。=========================================遊戲化總體上來說是一個低成本增強社會整體幸福程度的超強方法。把日常工作變成你無法抗拒的東西?想想都很刺激啊,不是么?
遊戲化也很難,你可以用遊戲化來設計傳銷,你可以用遊戲化來設計紅衛兵系統,你也可以用遊戲化來製造納粹。我們知道這些東西或許反人類,但其中的玩家卻無法抗拒。
除了封鎖和暴力。然而,打敗一個遊戲的唯一方法,是創作一個更好玩的遊戲。遊戲化非常難以理解,相信這篇文章看下來,你對遊戲話已經有了一定程度的理解吧。
有段時間一直在構思這樣一個系統(是想著促進社會服務領域的參與度,畢竟這東西原本需要你覺悟很高。但是當中有的事情又很簡單,需求又大。),所以最後去上了很多額外的課,所以上面很多的專業性很強的東西都是課里的,請務必認真看完。別的胡思亂想請同學不要深究!!!推薦閱讀:
※排序演算法中的「穩定」和「不穩定」,有沒有一個結論性的因素導致該演算法穩定或不穩定?
※C++有哪些NOIP中適用的能大幅簡化編碼及調試難度的內置函數/數據結構?
※對於一個久經考驗的大型系統,開源對於發現漏洞的幫助有多大?
※說下近些年來你認為最強的OI選手?
※什麼樣的C++代碼不開O2沒事,一開O2就會出錯?