Skip to content

Challenges

Litsu9999 edited this page Jun 28, 2024 · 3 revisions

Keyrun - Challenges and Solutions

Introduction

This page details the various challenges encountered during the development of Keyrun and the innovative solutions implemented to overcome them.

Learning Scratch

Challenge: Steep Learning Curve and Block Limitations

Learning to use Scratch effectively was initially challenging due to its block-based programming approach. Scratch does not allow the creation of new blocks, which required working within the constraints of existing blocks.

Solution: Rigorous Practice and Optimization

To overcome this, I spent significant time practicing and familiarizing myself with Scratch's interface. I optimized the code by using numerous variables to replace hardcoded values, reducing the number of operations and improving performance.

Scratch interface

Technical Issues

Bug Fixes

Score Increase Bug

Challenge: The score increased infinitely if the correct key was held down. Solution: Added multiple conditions to verify if the key was pressed and used a variable that changed upon key press, ensuring the score increased only once per key press.

Sprite Initialization

Challenge: Ensuring each sprite was correctly initialized with specific parameters like position and state. Solution: Implemented thorough initialization routines for each sprite at the start of the game.

Initialization

Optimizations and Performance Enhancements

Performance Optimization

Challenge: Scratch is not designed for large, complex projects, leading to performance issues. Solution: Optimized the game by reducing image sizes, managing sprites efficiently, and using variables to minimize operations.

Optimization of the background

Variable Optimization

Challenge: Managing numerous variables to handle game complexity. Solution: Used variables extensively to streamline operations and improve performance.

Sprites repartition

Design and Development Process

Iterative Design and Testing

Challenge: Ensuring the game design was effective and engaging. Solution: Followed an iterative design process with regular testing and refinements based on feedback from weekly meetings.

Figma design

Collaboration and Feedback

Challenge: Incorporating feedback effectively to improve the game. Solution: Held regular meetings to discuss improvements and design changes, ensuring the project stayed on track and met its objectives.

Creative Problem-Solving

Simulated Background Animations

Challenge: Scratch does not support video playback or 3D animations. Solution: Created simulated video and 3D animations by breaking them into individual frames and using sprite costumes to mimic continuous animation.

Retrowave Background

Handling Large Projects

Challenge: Managing the complexity of the game within Scratch's limitations. Solution: Broke down the project into smaller, manageable components and optimized each part individually.

Blender Integration

Role of Blender in Keyrun

Blender played a crucial role in creating the 3D elements and animations for Keyrun. This section details the challenges faced and solutions implemented in using Blender for the project.

Learning Blender

Challenge: As a novice to Blender, learning the tool and creating complex 3D models was challenging. Solution: Utilized YouTube tutorials and extensive practice to learn the basics and advanced techniques required for 3D modeling.

Blender tuto

Creating 3D Models

Challenge: Designing and rendering the retrowave background and the cubes in Blender. Solution: Spent considerable time designing the background and cubes, ensuring they matched the game's aesthetic. Rendered these models without backgrounds for seamless integration into Scratch.

3D Models

Alignment and Camera Issues

Challenge: Aligning 3D models correctly and setting up the camera was complex and required multiple iterations. Solution: Repeatedly adjusted the camera settings and alignment, eventually redoing the entire project to ensure consistency and accuracy.

Camera Issues

Integration with Scratch

Challenge: Converting Blender models into a format usable in Scratch. Solution: Rendered the 3D models as videos and then split these videos into individual frames, creating sprites for each frame to simulate continuous animation in Scratch.

Integration

Continued Optimization

Challenge: Handling even larger and more complex projects. Solution: Ongoing efforts to optimize game performance, focusing on reducing latency and improving efficiency.

Unresolved Issues

  • Red Cube Bug: Persistent issues likely due to Scratch's performance limitations.

  • Score Bug at 10k: Unable to resolve due to theoretical infinite game design but practical limitations, the cube stop to appear. With my better computer I was able to go to a score of more than 15k without the bug. 10k bug

Back to Home