JavaRush /Java Blog /Random-JA /最初はJavaRushがありました
Марат Каджаев
レベル 20
Санкт-Петербург

最初はJavaRushがありました

Random-JA グループに公開済み
私の最初の試用期間は 3 年前に終了しましたが、記事を書く時間ができたのは今だけです。大学では1年間をさまざまな学部で過ごしました。前期はマネージャーになるための勉強をし、後期はソフトウェアエンジニアリングに編入しました。プログラミングを教えてもらえると思っていましたが、それは間違いだったので、書類を受け取り、すべて独学で学ぶことにしました。私が先生に感謝している唯一のことは、スティーブン・プラットの本「The C Programming Language」から始めるようにアドバイスしてくれたということです。実践的な問題がたくさんある本当に良い本です。この本を書くのに約 2 か月かかりました。その後、友人のグループで JR に出会い、出発しました。最初は Android 開発者になろうと計画していましたが、学習の過程でバックエンドのほうが興味があるように思えました。ちなみに研修期間は3ヶ月で、その間にレベル20まで上がり、その後就職活動をすることにしました。まず第一に、私は別の都市に引っ越したので... 私の職場にはジュニア Java 開発者の求人はありませんでした。私はある企業を見つけて返信し、完了までに 1 週​​間かかるテスト課題を受け取りました。Hibernate、Servlet\JSP、MySQL を使用して単純な Web アプリケーションを作成する必要がありました。これらすべての単語のうち、MySQL がデータベースであることしか知りませんでした。最初は非常に動揺し、とりあえずどこかの KFC で求人を探すことも決めましたが、最終的には技術仕様を満たすようにしようと決心しました。KFC で仕事を得る時間はいつでもあるからです。私は一週間休みなくテストを行い、成功しました。解決策を送ったのですが、「醜い」ので、さらに4回作り直しました。最後の決定は正しかったことが判明しましたが、開発者はすでに募集されており、次の募集は 3 か月後であることが判明しました。シュトシュ、分かった。次の 3 か月間、私は html、css、js、sql、php を学びました。PHP はここで何をしているのでしょうか? リクエストなどに応答するサーバーサイド言語が必要でした。当時の私には、サーブレットと JSP は複雑すぎるように思えました。その結果、ひどいインターフェイスを備えた本格的な Web アプリケーションが完成しました。そのコードをポートフォリオ用に github に投稿しました。ちょうどこの時までに 3 か月が経過していました。同じ会社から手紙が来て、面接の電話があり、SQL の知識を問う簡単なテスト課題がもう 1 つ与えられました。私はそれを数時間で完了しました。私がこの仕事について話した相手は、アルゴリズムとデータ構造について聞くだろうとほのめかしていました - 私はまだこの話題をマスターしていませんでしたが、面接まであと 15 日ありました、くそー、レーサーたち。Robert Laforet の著書「Data Structures and Algorithms in Java」が役に立ちました。2 週間ですべてを読んで理解する時間はありませんでしたが、それでもたくさんの新しいことを学びました。そして面接当日となり、約束の時間に到着すると男性2人が出迎えて面接が始まりました。心配したと言っても過言ではなく、声も震えていました。彼らはアルゴリズムとデータ構造以外のすべてについて質問しました。彼らは Spring、DI、IoC、Hibernate、JVM の仕組み、GC の仕組みについて質問しましたが、私はこれらの質問のどれにも答えませんでした。Java Core (コレクション、例外、OOP など)。面接の時点ですでに不合格であることはわかっていましたが、それでも何のフィードバックももらえなかったのは残念でした。しかし、私は知識のギャップを特定し、熱心にそれを埋め始めました。面接に落ちてから1か月後に仕事が見つかりました。ところで、JavaRush のディスカッションで欠員を見つけました。まず、採用担当者とのSkype面接がありました(所要時間は約2時間)。彼らは、Java コア、GC (これで仕組みがわかりました)、データベース、データ構造について質問しました。すると面接官は私に画面を共有して計算機を書くように言いました。文字通り一週間前に電卓を書いたので、私は嬉しくて叫びそうになりました。私は自分に自信を持ってタスクを開始しましたが、興奮のためか、あるいは他の理由でアルゴリズムの一部を忘れてしまいました。画面が共有されているので、Google にアクセスするのが怖いです。幸運なことに、私は携帯電話を持っていたので、命を救ってくれました。翌日、直接面接を受けるよう電話があり、数日後に内定を受け取りました。
最初は JavaRush - 1 がありました
仕事は正式なものではなく、個人事業主の見習いという立場でした。私たちはイベントの作成、チケットの販売などを行うためのサービスを作成しました。私が初めて仕事に就いた日のことを覚えています。個人起業家は 15 分をかけて何をしなければならないかを説明しました。- さて、すべては明らかですか?- IP に尋ねました - うーん、そうではありません。もう一度やってもいいですか? ――私は心配そうに尋ねました。IPはすべてを再度説明しました。- それはもう明らかですか?-はい。実際、私は何も理解できませんでした。しかし、もう一度説明を求めるのは怖かったです - 就職した人なら誰もが私のことを理解してくれると思います。タスクの本質は、thymeleaf から AngularJS に書き直すことでした。幸いなことに、既製のコードの一部を見つけたので、例に従って同じことを実行しました。当時はそれがどのように機能するのか理解できませんでしたが、なんとかその作業に対処することができました。次に、バックエンド部分に直接関連するタスクが続きました。Spring を実際に使って初めて、「Spring for Professionals」という本に書かれていることを理解できるようになりました。そこで8か月間働き、その後別の都市に移り、すぐに正式な仕事を見つけて2年間働き、同時に役職も「ジュニア」から「ミドル」に変更しました。今、私は仕事が日常化し、少しの楽しみももたらさないという事実に直面しています。そこで、休憩を取った瞬間、休憩中に指が萎縮するのを防ぐために、別の分野であるゲーム開発に挑戦することにしました。つまり、モバイル ゲーム開発、まず Android です。私はJavaを知っています。これについては今から詳しくお話します。 私たちについて 短期間で、開発者 2 人、ゲーム デザイナー 1 人、サウンド エンジニア 1 人の 4 人 (私を含む) の小さなチームが集まりました。なぜなら チームにはゲーム開発分野の経験者が誰もおらず、私の休暇も限られていたため、絶対に最後までやり遂げる簡単なプロジェクトを実行することにしました。彼らがした!当初の締め切りは 11 月 15 日でしたが、ご存知のとおり、当初の締め切りどおりにプロジェクトを完了するのは罪です。それで2週間後に完成しました。それらによると スタックは Java 8 と libGDX です。

開発について

開発の開始は10月17日と考えられます。合計 45 日間を費やしました。その間:
  1. libGDX の使い方を学びました。
  2. コードを書きました。
  3. グラフィックを描きました。
  4. 音楽を作りました。
すでにこのゲームを見た人は、「ゲームは簡単なのに、なぜこんなに時間がかかるのか?」という疑問を抱くかもしれません。はい、これは本当で、正確に言うと、開発自体 (コードの作成) には約 1 週間半かかりました。残りの時間は次のように分割できます。
  1. エンジンをマスターする。
  2. 絵を描いてから描き直す。
  3. 音楽を書くこと。
  4. https://freesound.orgでサウンドを検索します。
  5. ゲームの宣伝方法に関する記事をたくさん読む
さらに、誰かが試験を受けた、誰かが再受験したなど、さまざまな理由で「ダウンタイム」の瞬間がありました。1 週間半、あるいはそれ以上の「ダウンタイム」を安全に過ごすことができます。もう一つの時間は「議論」に費やされました。ゲームに何を追加するかについてのアイデアがほぼ毎日寄せられ、「これは余分だろう」「これは入らないだろう」などの議論がありました。したがって、私たちは多くのアイデアを放棄しました。たとえば、潰して余分に入手できる走るゴキブリを追加するなどです。ポイント: 最初は JavaRush - 2 がありました一般に、私の意見では、最も難しいことの 1 つは、ゲームに何が含まれるかを事前に決定し、「別の」機能を追加しようとせずにその計画に固執することです。こうして私たちはこの45日間を積み上げていきました。ゲームのプロトタイプは 1 週間半後に完成しました。この時期、私たちはまだグラフィックスを実際に持っていなかったので、いくつかのものをパブリック ドメインから取得し (たとえば、Doodle Jump から背景紙を借りました)、いくつかは自分でペイントで作成しました。 最初は JavaRush - 3 がありましたこのゲームは技術的には非常に単純です。box2d (物理エンジン) を使用する必要さえなく、衝突を処理し、斜辺を自分たちで計算できました。最も興味深い点のうち、以下に焦点を当てます。
  1. 当初、ゲーム内のすべての要素はランダムに生成されました。それらの。ブラック ホール、ハサミ、手裏剣、ロッド、ハートのプロバイダーがあり、それらを配列に入れてから、ランダムなプロバイダーを取得して、ランダムな座標を持つ要素を取得します。このアプローチは「あまり良くない」ことがすぐに明らかになり、テストに参加した友人たちも同じことを言い、テンプレートを使用するようアドバイスしてくれました。確かにゲーム開発に携わる人にとって、これは明白な解決策ですが... 私たちはこの分野には慣れていませんが、これは私たちにとって非常に良いアドバイスでした。

    したがって、いくつかのパターンが現れました。斜めのロッド - 高速で組み立てるのはとても楽しいです (指でシュッシュシュシュシュシュ)。そしてもう 1 つのテンプレートですが、何と呼んでいいのかわかりません。コード内でクラスが呼ばれているものと同じ名前にします:StraightForwardPattern。

    最初は JavaRush - 4 がありました

    テンプレ使うと楽になったけど、予想通りすぎたというか。したがって、同じランダムが別のテンプレートになりました。それらの。これで、「静的」テンプレートと 1 つのランダムなテンプレートができました。(完璧なバランスに関するミームはこちらです)。

  2. 私たちが遭遇した主な問題はこれでした。LibGDX は無限ループで render(float delta) メソッドを呼び出します。このループ内で要素のすべてのレンダリングが実際に行われます。次の方法で鉛筆の線を描きます。指の座標を取得し、そこにテクスチャを配置します。そのため、画面上で指を非常に速く動かすと、render(delta) メソッドがすでに動作し、再度呼び出されていないミリ秒間で終了するため、「穴」が形成されます。問題は非常に簡単に解決されました。テクスチャが描画された最後の座標を記憶し、次の座標を取得し、それらの間の距離が X より大きく、指が放されていない場合は、このギャップを埋めます。最初は、このオプションは機能しないのではないかと考えました。線が角張ってしまうためです。しかし、その心配は無駄でした。すべてが正常に機能しました。

    実はゲームに関しては

    ゲームプレイはユニークであるかのように見せかけているわけではありませんが、非常に優れており、中毒性があります。鉛筆を操作し、文字通り紙に絵を描き、ハサミ、手裏剣、ブラックホールなどの障害物を避けます。この場合、鉛筆の芯が終わり、小さな鉛筆を拾う必要があります。棒が終わっても鉛筆がない場合は、鏡の破片を拾うことができます。数秒間効果があります。ロッドを無駄にする代わりに復元されますが、同時にコントロールがミラーリングされます。左に移動すると、鉛筆が右に描画されます。また、一度障害に遭遇しても生き残ることができるハートを拾うこともできます。画面から指を離さずに長く押し続けるほどコンボが増加し、ポイントを獲得する速度が速くなります。さらに、ゲームのスピードも徐々に上がっていきます。コロバン人から強盗できない限りは。 最初は JavaRush - 5 がありました当初、私たちはこのゲームをカラン ダッシュ (鉛筆、あはは、わかったね?) という名前にする予定でしたが、後で気が変わり、ペンシル ダッシュに落ち着きました。動機は、このエレガントな(私が言っている)言葉遊びは、ロシア語を話す聴衆にしか理解できないだろうということでした。私たちは数日前にゲームをリリースし、現在プロモーションを行っています。チームの誰もこれについての経験がありませんでした。私たちは昇進に関するすべての知識をさまざまな記事から集めました。ゲームに関する情報をさまざまな Web サイトやフォーラムに無料で公開しました。有料チャネルに関しては、1 人のブロガー、VK および AdMob の公開ページでのいくつかの投稿に 4PD での広告を注文しました。ちなみにこの投稿もプロモーションの一環なので、運営の許可を得てゲームへのリンクをここに残しておきます。Google Play のゲーム ページ:クリックします 。VK グループへのリンクも残します。ここでレビュー/提案を残すことができ、アップデートを見逃すことがありません。インストール していただければ幸いです (気に入ったらどうしますか?)。評価付きのレビューには、あなたの健康のためにキャンドルを灯すことをお約束します。質問してください、何かあればお答えします。最初は JavaRush - 6 がありました

コメント
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION