JavaRush /Java 博客 /Random-ZH /一开始有JavaRush
Марат Каджаев
第 20 级
Санкт-Петербург

一开始有JavaRush

已在 Random-ZH 群组中发布
我的第一次试用期已经三年了,但现在才有时间写文章。在大学里,我在不同的院系学习了一年:第一学期我学习成为一名经理,第二学期我转学到软件工程。我希望他们能教我如何编程,但我错了,所以我拿着文档决定自己学习一切。我唯一感谢老师的是他建议我从 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