Enhancement of Cutscene - UQcsse3200/2024-studio-1 GitHub Wiki

Overview

Enhancing the cutscene of the game by incorporating the storyline into the introduction using dramatic pictures. This approach helps set the tone and atmosphere right from the start, engaging players more effectively by visually immersing them in the narrative. The images were carefully chosen to convey key elements of the story, adding a sense of excitement and anticipation as players begin their journey. This method not only adds depth to the storytelling but also makes the overall gaming experience more captivating and dynamic.

Additional Feature

Cutscenes Introduction: When players start the game, they are presented with four consecutive cutscenes that provide an introduction to the game’s storyline. These cutscenes use dramatic pictures to set the stage for the adventure ahead, giving players a sense of the narrative and the world they are about to explore.

Skip Option: If players prefer to jump ahead, there’s a "Skip" button available that allows them to bypass the introduction and go straight to the final cutscene. From this point, they can select "Start Game" to begin playing immediately. This ensures that both players who enjoy an in-depth introduction and those who want to get right into the action have a tailored experience.

Cutscene Screens

Implementation

Using the below code for loading images, begin by calling loadTextures() during the initialization phase to load all required textures. This method handles loading multiple images from predefined file paths. You can then access any specific texture using the getTexture(index) method, which allows retrieval of the texture based on its index in the array. When the textures are no longer needed, such as when exiting a screen or transitioning to another scene, ensure to call disposeTextures() to properly release the memory resources, preventing potential memory leaks.

public class ImageLoader { private Texture[] cutsceneTextures;

/**
 * Load the cutscene images from file paths.
 */
public void loadTextures() {
    // Define the texture file paths
    String[] texturePaths = {
            "images/screen/cutscene1.jpg",
            "images/screen/cutscene2.jpg",
            "images/screen/cutscene3.jpg",
            "images/screen/cutscene4.jpg"
    };

    // Initialize the array of textures
    cutsceneTextures = new Texture[texturePaths.length];

    // Load each texture in a loop using the predefined paths
    for (int i = 0; i < texturePaths.length; i++) {
        cutsceneTextures[i] = new Texture(Gdx.files.internal(texturePaths[i]));
    }
}

/**
 * Dispose of all textures to free up resources.
 */
public void disposeTextures() {
    for (Texture texture : cutsceneTextures) {
        if (texture != null) {
            texture.dispose();
        }
    }
}

/**
 * Get the texture for a specific page index.
 *
 * @param index The index of the page.
 * @return The corresponding texture.
 */
public Texture getTexture(int index) {
    if (index >= 0 && index < cutsceneTextures.length) {
        return cutsceneTextures[index];
    }
    return null;
}

}

References

In the introduction of the cutscene, I incorporated AI-generated images to enhance the visual storytelling of the game. These images were further refined and edited using Canva, which allowed me to adjust elements such as color, lighting, and composition to create a more dramatic and immersive experience. This combination of AI imagery by bing copilot and Canva editing helped in delivering a compelling and visually appealing narrative to set the stage for the game’s storyline. https://www.canva.com/

https://www.bing.com/chat