Skip to content

Main Character

Damian Bellew edited this page Oct 18, 2023 · 8 revisions

Design Inspiration - Main Character

Here is the initial inspiration for the main character's sprite. As the game's theme is Escape Earth, the player's skin was intended to appear like he is wearing a space helmet to ensure his survival. It was also decided that the character sprite would be in a 16-bit pixel art style, to ensure cohesion in game asset design.

Screenshot 2023-08-18 at 2 17 36 PM

Main Character's Weapon Inspiration

Player weapons consist of a short range attack, long range attack and homing projectile.

Main Character 8 Directional Designs

While an initial character design was created by hand, it quickly became clear that without the skill to animate each individual animation frame, the best method would be to find a free, open-source sprite online and edit it to our needs. Accordingly, the following sprite was found, (avaliable on itch.io, created by Gamekrazzy). This sprite came will 8-directional movement animations, and dodge animations.

Screenshot 2023-09-13 at 10 08 15 am

However, because the initial design called for a blonde sprite, the hair color was changed. Additionally, to add a level of reality to the game, each frame of the sprite sheet was edited such that the sprite had an astronaut helmet on for levels that take place on other planets. This can be seen below:

image

Full sprite sheet:

image

Implementation

Player animations were created in PlayerFactory, based on playerSS.atlas. PlayerAnimationController class was then created to implement animations and create relevant events to be called upon in KeyboardPlayerInputComponent.

Animations added to PlayerFactory class are shown below:

AnimationRenderComponent animator =
            new AnimationRenderComponent(
                    ServiceLocator.getResourceService().getAsset("images/player.atlas", TextureAtlas.class));
    animator.addAnimation("Character_StandDown", 0.2f);
    animator.addAnimation("Character_StandUp", 0.2f);
    animator.addAnimation("Character_StandLeft", 0.2f);
    animator.addAnimation("Character_StandRight", 0.2f);

    animator.addAnimation("Character_DownLeft", 0.2f, Animation.PlayMode.LOOP);
    animator.addAnimation("Character_UpRight", 0.2f, Animation.PlayMode.LOOP);
    animator.addAnimation("Character_Up", 0.2f, Animation.PlayMode.LOOP);
    animator.addAnimation("Character_Left", 0.2f, Animation.PlayMode.LOOP);
    animator.addAnimation("Character_DownRight", 0.2f, Animation.PlayMode.LOOP);
    animator.addAnimation("Character_Down", 0.2f, Animation.PlayMode.LOOP);
    animator.addAnimation("Character_UpLeft", 0.2f, Animation.PlayMode.LOOP);
    animator.addAnimation("Character_Right", 0.2f, Animation.PlayMode.LOOP);

    animator.addAnimation("Character_RollDown", 0.1f, Animation.PlayMode.NORMAL);
    animator.addAnimation("Character_RollRight", 0.1f, Animation.PlayMode.NORMAL);
    animator.addAnimation("Character_RollLeft", 0.1f, Animation.PlayMode.NORMAL);
    animator.addAnimation("Character_RollUp", 0.1f, Animation.PlayMode.NORMAL);

Here is the link of Player Asset Testing.

Clone this wiki locally