# \[DEVLOG\] My Zeldalike

**URL:** <https://forum.makecode.com/t/devlog-my-zeldalike/45421>\
**Category:** Show & Tell\
**Tags:** game, demo, video\
**Created:** [August 16, 2026, 7:01pm UTC](https://forum.makecode.com/t/devlog-my-zeldalike/45421 "2026-08-16T19:01:45Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![wiz\_superstar](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/wiz_superstar/32/34269_2.png) [@wiz\_superstar](https://forum.makecode.com/u/wiz_superstar)\
**Post date:** [August 16, 2026, 7:01pm UTC](https://forum.makecode.com/t/devlog-my-zeldalike/45421/1 "2026-08-16T19:01:45Z")

</div>

# Zelda-Esque Devlog

For some reason, I had the encouragement to make a game based on the Zelda franchise. I believe I took inspiration from Deltarune’s Chapter 3 Zelda segment. Just watching the simpler interpretation of the game actually gave me the courage to try making my own  
I intend for this to be closer to a “Bullet Hell” type of game, since I’m not terribly sure on puzzle dev, unless its “You get one thing to get another thing that allows you to reach the next thing…” type of puzzlemaking (which I mainly found on Mario Maker puzzle levels)

Since I started working on it, I’ve made a lot of progress

 ![image](https://us1.discourse-cdn.com/flex020/uploads/makecode/original/3X/e/4/e45095b29a8c98099bafc6c26bd1bc4bf33a23c3.png)  
I took a lot of the sprites/tiles from the official sprite/tileset rips found by MisterMike. I’m still gonna try and update them, but just know they’re gonna look like the NES version of zelda for quite a while.  
The enemies (My game calls them Familirocks, they’re Octorocks) are programmed to move around the current scene with a change of changing their axis of movement, switching from horizontal and vertical.  
 ![2026-08-1613-57-40-ezgif.com-video-to-gif-converter](https://us1.discourse-cdn.com/flex020/uploads/makecode/original/3X/b/6/b66df8711ea199d4fdeb9431b753daaf96c97659.gif)  
For now, though, I’m gonna take small breaks from time to time since I’ll be in classes for most of the year (college is fun btw). I’ll catch you all up later!

---

<div class="post-metadata">

**Author:** ![Carrate\_master](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/carrate_master/32/35077_2.png) [@Carrate\_master](https://forum.makecode.com/u/Carrate_master)\
**Post date:** [August 16, 2026, 11:48pm UTC](https://forum.makecode.com/t/devlog-my-zeldalike/45421/2 "2026-08-16T23:48:56Z")

</div>

Nice!

---

<div class="post-metadata">

**Author:** ![Sword\_Studios](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/sword_studios/32/35216_2.png) [@Sword\_Studios](https://forum.makecode.com/u/Sword_Studios)\
**Post date:** [August 16, 2026, 11:49pm UTC](https://forum.makecode.com/t/devlog-my-zeldalike/45421/3 "2026-08-16T23:49:05Z")

</div>

Mannn!!! I love Zelda so… I would love to help and if you need more help the join studio of sword [Studio of Sword - #214 by Unicornalena](https://forum.makecode.com/t/studio-of-sword/45185/214)

---

<div class="post-metadata">

**Author:** ![1978monkeynutze](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/1978monkeynutze/32/33979_2.png) [@1978monkeynutze](https://forum.makecode.com/u/1978monkeynutze)\
**Post date:** [August 16, 2026, 11:56pm UTC](https://forum.makecode.com/t/devlog-my-zeldalike/45421/4 "2026-08-16T23:56:11Z")

</div>

noice! that’s cool

---

<div class="post-metadata">

**Author:** ![wiz\_superstar](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/wiz_superstar/32/34269_2.png) [@wiz\_superstar](https://forum.makecode.com/u/wiz_superstar)\
**Post date:** [August 22, 2026, 3:41am UTC](https://forum.makecode.com/t/devlog-my-zeldalike/45421/5 "2026-08-22T03:41:23Z")

</div>

# UPDATE: The Importance of Classes in Object Oriented Programming

One issue I had when coding my various enemies was the MESS that sprite data made. At first, it wasn’t so bad, but as stuff compounded, it got harder and harder to read. Lines got soooo long, and most of the time stuff got cluttered.  
Making classes really optimized my workflow! As an example, lets walk through some stuff I made  
First, I realized the Enemy AND Player both used hitboxes and costumes. Therefore, I could conjoin them into one class that would have all essential variables and functions that I could pull from

```auto
class Creature {
    costume : Sprite;
    hitbox : Sprite;
    anim_count: number = 0;

    constructor (hitbox: Image, costume: Image, kind: number){
        this.costume = sprites.create(costume, kind)
        this.costume.setFlag(SpriteFlag.GhostThroughWalls, true)
        this.hitbox = sprites.create(hitbox, SpriteKind.Hitbox)
        this.hitbox.setFlag(SpriteFlag.Invisible, true)

    }

    add_animation(anim_arr: Array<Image>) {
        adv_anim.attachAnim(this.costume, anim_arr, WALK_ANIM_TIME, this.anim_count)
        this.anim_count += 1
    }
}

```

It then makes making new classes easier! Sometimes, the player and enemy will have class specific variables that influence how it works, like an array that would display the enemies present in the program  
Heres the enemy class, as an example

```auto
class Enemy extends Creature
{
    static enemies : Enemy[] = [];
    attacking : boolean = false;
    direction : number = 0;
    creature : number;
    exhaustion : number = 0;
    used_ability : number;
    ability_cooldown : number = 200;
    
    constructor(hitbox_img: Image, costume_img: Image, creature: Enemy.EnemyType)
    {
        super(hitbox_img, costume_img, SpriteKind.Enemy)
        // Sets the appropriate AI
        this.creature = creature
        // 
        this.used_ability = this.ability_cooldown + game.runtime()
        // Adds the new enemy to the enemies array
        Enemy.enemies.push(this)
    }

    destroy()
    {
        for (let i = Enemy.enemies.length - 1; i >=0; i--)
        {
            if (Enemy.enemies[i] == this) Enemy.enemies.splice(i, i)
            break;
        }
        sprites.destroy(this.costume)
        sprites.destroy(this.hitbox)
    }

    /**
     * TODO: Increases the Enemy
     */
    increaseExhaustion(amt: number, double: boolean)
    {
        this.exhaustion += amt * (1 + Math.BoolToInt(double))
        if (this.exhaustion > 100) this.exhaustion = 100
    }

    placeOnTile(loc: tiles.Location)
    {
        tiles.placeOnTile(this.hitbox, loc)
        this.costume.setPosition(this.hitbox.x, this.hitbox.y)
    }
}

```

Not only do classes help with programming, it also helps with readability! I’ll provide even more updates at some point :3
