# Future Calling - 25.2.24

I will now be adding a single article per week of development. I will update this article as progress happens.

---

Lighting and shadows now working properly. Could still do with some visual improvements such as softer shadows.

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1708838517454/d9f494d6-1abd-4897-b0ce-a276d76516a8.png align="center")

Added an update system for sprites, where you can pass a closure for your specific per sprite logic.

```rust
   let update_logic = |sprite: &mut GameSprite| {
            println!("Updating sprite at position ({}, {})", sprite.position.x, sprite.position.y);
            sprite.rotation = sprite.rotation + 0.05;
            // Add custom logic here
        };

        spr1.set_update(Some(Box::new(update_logic)));
```

### Added soft-shadows.

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1708853436644/87d8eec1-cfaf-4f2d-a11f-189b3b332af9.png align="center")

### Normal map support added.

It is now possible to assign a normal map to any tile, for improved lighting.

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1708865915350/6d057ba9-afde-49d2-a222-278fddebc8a0.png align="center")

And below with two lights.

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1708865960027/b78218d5-3b14-4469-a81b-4b7e73bebc6e.png align="center")

### Small Gif

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1708871738308/aecea923-2602-453f-8177-793c11463b4b.gif align="center")

### Future Editor

Started work on "Future Editor" - A GTK4 editor for editing future maps/adding sprites/logic. It is coded entirely in rust using GTK4-RS.

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1708937719230/135e9fdf-c96d-4a56-b510-3cd2e1f8729f.png align="center")

I have got the engine integrated into the editor. Here you can see a empty grid, which is in-fact the map, without any tiles added.

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1708954235804/de560c14-e343-4e5e-9101-a7b2f1ac25cc.png align="center")

### Editor Progress.

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1709015715835/796a4506-a76a-40bc-919c-0d87d7c76ca4.png align="center")

### Editor Progress

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1709042613480/12b2a861-64e4-410f-a361-a1fda146c913.png align="center")
