JavaRush /Java Blog /Random-TW /一開始有JavaRush
Марат Каджаев
等級 20
Санкт-Петербург

一開始有JavaRush

在 Random-TW 群組發布
我的第一次試用期已經三年了,但現在才有時間寫文章。在大學裡,我在不同的系所學習了一年:第一學期我學習成為經理,第二學期我轉學到軟體工程。我希望他們能教我如何編程,但我錯了,所以我拿著文件決定自己學習一切。我唯一感謝老師的是他建議我從 Stephen Prat 的書《C 程式語言》開始。確實是一本好書,裡面有很多實際問題。這本書花了大約兩個月的時間,之後我在朋友的團體中遇到了 JR,然後我們就離開了。起初我計劃成為 Android 開發人員,但在學習過程中,後端對我來說似乎更有趣。順便說一句,訓練了3個月,期間我達到了20級,之後我決定嘗試找工作。首先,我搬到了另一個城市,因為...... 我的團隊中沒有初級 Java 開發人員的職缺。我找到了一家公司,回覆了,收到了測試任務,要求一週完成。需要使用 Hibernate、Servlet\JSP 和 MySQL 編寫一個簡單的 Web 應用程式。說了這麼多,我只知道MySQL是一個資料庫。起初我很沮喪,我甚至決定暫時去一些肯德基尋找職位空缺,但後來我最終決定嘗試滿足技術規範 - 我總是有時間在肯德基找到工作。我整個星期不間斷地進行測試並成功了。我發送了解決方案,但它“醜陋”,所以我又重做了4次。最後的決定結果是正確的,但事實證明開發人員已經招募完畢,下次招募將在三個月後。什托什,好吧。在接下來的三個月裡,我學習了 html、css、js、sql 和 php。PHP 在這裡做什麼?我需要一種能夠響應請求的伺服器端語言以及所有這些 - servlet 和 jsp 當時對我來說似乎太複雜了。結果是一個功能齊全、介面糟糕的 Web 應用程序,我將其程式碼發佈在 github 上作為我的作品集。就在這時候,3個月過去了,他們從同一家公司給我寫信,打電話給我面試,並給了我另一個簡單的SQL知識測驗任務,我在幾個小時內完成了。和我談論這份工作的人暗示他們會問演算法和資料結構——我還沒有掌握這個主題,但距離面試還有15天,該死的我們賽車手。Robert Laforet 的書《Java 中的資料結構與演算法》對我有幫助。我沒有時間在兩週內閱讀並理解所有內容,但我仍然學到了很多新東西。然後面試的那天到了,我按照約定的時間到了,有兩個人見了我,面試就開始了。說我擔心是輕描淡寫的;我的聲音甚至在顫抖。除了演算法和資料結構之外,他們問了一切。他們問了Spring、DI、IoC、Hibernate、JVM 如何運作、GC 如何運作——我沒有回答任何這些問題。我只回答了有關 Java Core 的問題(集合、異常、OOP 等)。在面試時我就意識到自己失敗了,但沒有收到任何回饋仍然令人失望。但我發現了知識上的差距,並開始努力彌補它們。面試失敗後一個月我就找到工作了。順便說一句,我在 JavaRush 討論中發現了這個空缺。首先是招募人員的 Skype 面試(持續約 2 小時)。他們詢問了 Java Core、GC(現在我知道它是如何運作的)、資料庫、資料結構。然後面試官要我分享螢幕,寫一個計算器。我幾乎高興得尖叫,因為我一週前就寫了這個計算器。我對自己充滿信心,開始了這項任務,但要么是出於興奮,要么是出於其他原因,我忘記了部分演算法。螢幕是共享的——去Google一下就恐怖了。幸運的是,我有一部手機,救了我的命。第二天,他們打電話給我進行現場面試,幾天後我收到了錄取通知。
一開始有 JavaRush - 1
這份工作不是正式的,我是一個個體企業家的學徒。我們編寫了一項用於創建活動、銷售門票等的服務。我記得我上班的第一天——個體企業家花了 15 分鐘解釋需要做什麼。- 嗯,一切都清楚了嗎?- 問 IP - 嗯,不是真的,我們可以再做一次嗎?——我焦急地問。IP再次解釋了一切。- 現在清楚了嗎?- 現在是的。事實上,我什麼都不明白。但我不敢再要求解釋——我想每個找到工作的人都會理解我。任務的本質是將 thymeleaf 重寫為 AngularJS。幸運的是,我找到了部分現成的程式碼並按照範例做了同樣的事情。當時我不明白它是如何運作的,但我設法完成了這項任務。然後是與後端部分直接相關的任務。實踐了Spring之後,我才開始理解《Spring for Professionals》這本書裡寫的內容。我在那裡工作了8個月,之後搬到了另一個城市,很快就找到了正式工作,工作了兩年,同時把職稱從「初級」改為「中級」。現在我面臨的事實是,工作已經變成了例行公事,並沒有帶來一點樂趣。所以,在休息的當下,為了休息期間手指不至於萎縮,我決定嘗試另一個領域——遊戲開發。也就是說,對於初學者來說,手機遊戲開發是 Android,因為… 我了解Java。我現在就詳細地告訴你這件事。 關於我們 在很短的時間內,一個由 4 個人(包括我在內)組成的小團隊聚集在一起:2 名開發人員、1 名遊戲設計師、1 名音響工程師。因為 團隊中沒有人有遊戲開發領域的經驗,而且我的休息時間有限,我們決定實施一個簡單的項目,我們一定會堅持到底。他們做到了!最初的截止日期是 11 月 15 日,但如您所知,在原定截止日期前完成專案是一種罪。所以我們兩週後就完成了。根據那些 這個堆疊是:Java 8 和 libGDX。

關於發展

可以考慮從 10 月 17 日開始開發。我們總共花了45天,期間:
  1. 學會了使用 libGDX;
  2. 編寫程式碼;
  3. 繪製圖形;
  4. 創作音樂;
看過遊戲的人可能會有疑問──遊戲這麼簡單,為什麼要花這麼久?是的,確實如此,而且完全準確地說,開發本身(編寫程式碼)大約花了一周半的時間。剩下的時間可以分為:
  1. 掌握發動機;
  2. 畫圖然後重新畫;
  3. 創作音樂;
  4. 在https://freesound.org搜尋聲音;
  5. 閱讀一堆有關如何推廣遊戲的文章
另外,由於各種原因,也會有「停工」的時刻——有人參加考試,有人重考,等等。您可以安全地度過一周半甚至更長的「停機時間」。另一部分時間則花在「爭論」上:幾乎每天都會有關於要添加到遊戲中的內容的想法,因此會出現「這是多餘的」、「這不適合」等爭論。因此,我們放棄了很多想法,例如添加跑動的蟑螂,你可以壓碎它們並獲得額外的收益。重點: 一開始有 JavaRush - 2總的來說,在我看來,最困難的事情之一就是提前決定遊戲中的內容並堅持這個計劃,而不是試圖添加「另一個」功能。這就是我們這45天的累積。一周半後遊戲原型就準備好了。在此期間,我們還沒有真正的圖形,所以我們從公共領域拿了一些東西(例如,我們從 Doodle Jump 借了一張背景紙),還有一些我們自己用油漆創作的。 一開始有 JavaRush - 3這個遊戲在技術上非常簡單——我們甚至不需要使用box2d(物理引擎),我們可以自己處理碰撞併計算斜邊。在最有趣的點中,我將強調以下幾點。
  1. 最初,遊戲中的所有元素都是隨機產生的。那些。我們有黑洞、剪刀、飛鏢、棒子、心的提供者 - 我們將它們放入數組中,然後我們採用隨機提供者並獲得具有隨機座標的元素。很快我們就發現這種方法「不是很好」;參與測試的朋友也告訴我們同樣的事情,並建議我們使用模板。當然,對於參與遊戲開發的人來說,這是一個顯而易見的解決方案,但是... 我們是這個領域的新手,這對我們來說是非常好的建議。

    因此,出現了幾種模式:剪刀谷;對角線桿 - 高速組裝它們非常有趣(用手指嗖嗖嗖);還有一種模式,我不知道該怎麼稱呼它 - 我將其稱為該類別在程式碼中的名稱:StraightForwardPattern。

    一開始有 JavaRush - 4

    使用模板變得更令人愉快,但它太可預測了。因此,同一個隨機就成了另一個模板。那些。現在我們有了「靜態」模板和一個隨機模板。(這是一個關於完美平衡的迷因)。

  2. 我們遇到的主要問題是這樣的。LibGDX 在無限循環中呼叫 render(float delta) 方法,其中所有元素的渲染實際上都會發生。我們按照以下方式繪製鉛筆線:我們取得手指的座標並將紋理放置在那裡。因此,如果我們在螢幕上快速移動手指,就會形成“洞”,因為我們在 render(delta) 方法已經工作並且尚未再次調用的幾毫秒內結束了。問題的解決非常簡單——我們記住繪製紋理的最後一個座標,我們得到下一個座標,如果它們之間的距離大於X並且手指沒有釋放,我們就填滿這個間隙。起初我們認為這個選項可能行不通——線條會是有角度的,但我們的擔憂是徒勞的——一切都按其應有的方式進行。

    其實關於遊戲

    遊戲玩法並不假裝獨特,但相當不錯,而且很容易上癮。你控制一支鉛筆,在紙上畫畫,躲避障礙物──剪刀、手裡劍、黑洞。在這種情況下,鉛筆芯結束了,你需要拿起小鉛筆。如果桿結束時仍然沒有鉛筆,你可以撿起鏡子的碎片。它會產生幾秒鐘的效果 - 它不會浪費桿,而是會恢復,但同時控制會變成鏡像 - 您向左移動,鉛筆會向右繪製。你也可以撿起一顆心,它可以讓你遇到一次障礙並保持活力。手指不離開螢幕的情況下按住的時間越長,連擊就會越高,從而提高獲得積分的速度。再加上遊戲的速度逐漸加快。除非你不能搶劫科洛萬人。 一開始有 JavaRush - 5最初,我們計劃將遊戲命名為「Karan Dash」(一支鉛筆,哈哈哈,明白了,對吧?),但後來我們改變了主意,決定命名為「Pencil Dash」。其動機是這種優雅的(我是說)文字遊戲只有俄語觀眾才能理解。我們幾天前發布了這款遊戲,現在正在推廣它。團隊中也沒有人有這方面的經驗;我們從各種文章中收集了有關促銷的所有知識。我們在各個網站/論壇上免費發布有關遊戲的資訊。至於付費頻道,我們在 4PD 上訂購了廣告,來自一位部落客、VK 和 AdMob 公共頁面上的幾篇貼文。順便說一句,這篇文章也是促銷的一部分,因此在獲得管理人員的許可後,我在這裡留下了遊戲的連結。Google Play 上的遊戲頁面:單擊 我還將留下一個指向我們的 VK 群組的鏈接,您可以在其中留下評論/建議並且不錯過更新單擊 如果您安裝它,我將不勝感激(如果您喜歡它怎麼辦?),對於帶有評級的評論,我保證為您的健康點燃一支蠟燭!有問題就問吧,有的話我會解答。一開始有 JavaRush - 6

留言
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION