面向项目的新语言方法

当学习一种新的编码语言时,大量的在线资源可能是压倒性的。 对于编程新手来说,各种各样的StackOverflow交流,免费教程,youtube视频,MDN文档和代码挑战网站可能会令人生畏。 关于学习一种语言的最佳方法和特定资源有很多不同的意见,但总的来说,许多人最终会同意一门可能的课程的巨大好处-用新语言简单地构建某种东西并参与其中以创新和有机的方式展示其工具,挑战和优势。 我进入编码和学习我的第一语言的第一步就是使用Codecademy,该网站提供有关不同语言和框架的许多免费课程。 Codecademy在教授语言的语法和基本原理方面做得非常好,但是并没有比这更深入,总的来说避免了语言的意图和潜力的更广泛范围,以及避免任何形式的深入研究语言的实际专业实现需要什么。 很高兴向我介绍了基本编程的外观,但它从未真正为困难的实践提供任何好的机会。 因此,我在他们的课程中会学到的东西并没有真正使我记忆犹新。 然后,我决定在Learn.co上尝试Flatiron训练营的预备课程。 我真的很喜欢课程的累积性和苛刻性,感觉就像我正在努力使用其所介绍的材料来提高自己的水平一样。 我已经在Flatiron学校学习了JavaScript备考课程,为期数周,并且达到了可以创建一个简单的JavaScript游戏“ Rock Dodger”的地步。 游戏的操作很简单-您可以使用左右箭头键控制“躲闪者”,以免与顺着屏幕层叠的岩石元素发生碰撞,但是代码的实现非常棘手。 这是在比以前更复杂的程序中处理事件和实现控制流的好练习。 虽然我能够启动并运行该项目,但我仍然感觉不到要真正使用我一直在阅读的新工具。 该项目有很多入门代码,并且绝对可以将其引导至控制游戏流程的各种功能的理想实现样式。 为了更自由地了解类似材料,以便更深入地了解工作原理,我决定扩展Rock Dodger背后的一些功能,以开发自己的语言以及与HTML和CSS交互的方式。…

Eeny,Meeny,Pico

手工复制这些无休止的数字序列非常困难,没有乐趣,几乎是不可能的。 但是我对它们的含义很好奇。 所以我的下一个编程语言自然是c6502汇编。 我花了很多时间将这些数字转换为对应的助记符,以了解该程序应该执行的操作。 那是一个美好的时光,我已经看到人们通过低级组装来完成出色的工作。 不幸的是,写作大会是一门垂死的艺术。 使用高级编程语言编写程序更加容易,并且更具成本效益。 但是,不久前,互联网向我证明,仍然有很多人喜欢为了娱乐而编写汇编。 2009年,Minecraft的第一个版本发布了,由Markus Persson创建,绰号Notch。 我从没玩过Minecraft,实际上,我几乎没有玩过任何游戏,但是自从C64牢牢占据家用计算机第一名的那一刻起,我就一直对游戏概念特别是它们的构造感兴趣。 将Minecraft卖给Microsoft之后,Markus开始着手他的下一个项目,名为0x10c。 这是一个科幻太空游戏。 这个想法是要有一个以自然定律为特征的环境,例如自然运动,重力控制等。这个名称本身来自于背景故事,并涉及编码错误,该错误导致人们进入低温睡眠并保持这种状态达数百万年之久。 。 这款游戏最有趣的方面是一个完全建模的16位幻想计算机,其中包含一个DCPU-16处理器,用户可以在游戏中对其进行编程。 作为太空船的中央计算机,您可以用它来做所有事情。 这台计算机的编程是在汇编中完成的,我认为这是一种几乎无法使用的编程语言。…

游戏开发:改进Onrush中的客户端服务器开发工作流程

游戏开发:改进Onrush中的客户端服务器开发工作流程 像许多工作室一样,我们的抱负远远超过了我们的能力。 Onrush的核心团队大约有50人,其中代码和艺术大约相等,另外还有一个小型设计团队。 因此,当我们坐下来计划游戏的开发流程如何在我们的开发团队中运作时,我们必须确保开发人员和技术的最高效率来实现我们的目标。 允许团队迭代并围绕想法发展始终是保证高质量的关键。 Onrush从一开始就被设计为在线竞争性游戏,因此我们需要一种服务器架构来支持游戏的所有在线方面。 将这种工作量添加到我们的游戏开发中意味着我们团队的工作量增加了两倍,需要在两个不同的问题域中开发两个单独的软件,并需要两种不同的技能。 在规划开发工作负载时,根据游戏代码和服务器代码的两个问题域(每个域都有各自的可交付成果)来定义团队可能很容易。 这符合基于文件,可执行文件和操作系统的技术知识的观点。 但是,这着眼于播放器的错误交付。 我们确实是在为玩家提供一种体验,而游戏和服务器的结合就是我们提供这些体验的方式。 游戏中每时每刻的体验通常涉及幕后玩家,游戏与服务器(以及其他联网的玩家)之间的多次交互。 不幸的是,将任务分散到多个单独的团队中将不可避免地导致任务切换,停机时间,阻塞,迭代丢失和机会成本高昂。 通过选择基于玩家体验的任务,我们可以垂直了解整个技术堆栈,从UI到游戏代码再到服务器代码。 对于Onrush,我们希望确保将玩家体验分解为可以由一个人端对端拥有的任务。 对我们来说,这意味着没有独立的服务器团队。 相反,我们需要的是一个可扩展的服务器平台,可以由游戏程序员轻松地对其进行自定义和管理。 在内部构建这种服务器平台不在项目范围内,因为这需要我们团队不断进行开发和维护。…