Log In  


One of my biggest takeaways from this project is the concrete understanding of the dangers of Feature Creep, as well as the importance of having realistic project expectations and proper planning. In software development, it’s inevitable to encounter bugs and features that need to be adjusted based on real-world scenarios. These tasks take up a significant amount of time, which is often unpredictable. Therefore, it is essential to allocate sufficient time for debugging and adjustments, instead of continuously trying to integrate new features into the program.

Moreover, the dangers of Feature Creep were vividly demonstrated in this project. In my past programming experiences, I rarely paid attention to the memory usage of the program. As a result, I often wrote code with higher readability and decoupled various modules to make them easier to modify and debug. However, this approach inevitably led to code bloat, which I didn’t consider a problem until now. Given the limited code capacity of the Pico-8 engine, I encountered memory issues during the final stages of the project and had to spend extra time trimming down my code. Fortunately, I realized the problem of Feature Creep midway through development and decided to cut half of the planned levels and monsters. Otherwise, the memory constraints would have caused even more headaches.

Another significant gain from this project was the opportunity to review and strengthen my prior game development skills. I continued to adopt object-oriented programming concepts and a state machine design, using state entry, exit, and update functions to manage monster AI and page controls. Additionally, I leveraged AI tools to handle certain functions that were simple in purpose but complex in implementation, which significantly saved programming time.

Lastly, I made my first attempt at creating animations through programming. In previous projects, I relied entirely on art assets found online. This experience allowed me to delve deeper into the details and mechanics of animation implementation, and I believe it will be a valuable asset for my future game development endeavors.

最大的收获应该是切实认识到了 Feature creep 的危害,以及一个合理的项目预期和项目规划的重要性。在程序开发中,不可避免地会遇到各种 bug 和需要根据实际情况进行调整的部分,这些内容会占用大量的时间,而这些时间通常是无法精确估计的。因此,在项目规划中必须预留足够的时间用于调试和修复 bug,而不是不断试图将新功能整合到程序中。

此外,这次项目更具体地体现了 Feature creep 的危害。在以往的程序开发中,我对程序本身的内存大小并不关心,因此通常会采用对我来说可读性更高的写法,同时将各个模块解耦以追求更方便的修改和调试。然而,这样的做法不可避免地会导致代码量的膨胀。我之前并未意识到这是一个问题,但由于 Pico-8 引擎的代码容量非常有限,我在调整部分功能时遇到了内存不足的问题,不得不花费额外的时间精简代码。幸运的是,我在开发过程中及时认识到了 Feature creep 的问题,并削减了部分关卡和怪物的制作,这才避免了更加严重的内存不足困境。

其他收获主要是在复习和强化自己此前的游戏制作经验方面。我仍然采用了面向对象的编程思路以及状态机的设计,通过进入状态、退出状态和状态更新函数来维护怪物 AI 和页面控制。同时,我将一些功能单一但实现复杂的函数交给 AI 生成,取得了不错的效果。这种模块化的底层设计帮助我大幅节省了编程时间。

最后的收获是,我首次尝试通过编程实现部分动画效果。在此前的项目中,我一直使用网络上的美术资源,而这次的编程实践让我更加了解动画制作的细节与实现过程。我相信,这将成为我未来游戏开发中的宝贵经验。




[Please log in to post a comment]