Libove Blog

Personal Blog about anything - mostly programming, cooking and random thoughts



#

I'm missing the vocabulary for googling this.

Is there a better way to write this? I want to filter a vector of enums to elements that match one specific pattern.

.filter(|r| match r.kind {
    RoomKind::BedRoom(_) => true,
    _ => false
})

#rust #dev


#

#gamedev progress:

  • refactored entire "Person" struct into individual structs for "Guest" and "Employee".
    • Separated logic and data.
    • AI actions are now individual structs that implement an Action trait
  • Started working on a Mood & Thoughts system.

Screenshot of mood icon above guest


#

#gamedev progress:

Slow progress in the last couple of sessions. I've started to implement employees. Employees work at rooms/stations whenever a guest wants to interact with them (e.g. booking a room). I'm not yet 100% happy with the implementation (blaming my #rust skills).

Additionally implemented a hunger+restaurant prototype.

Screenshot from my hotel game. The guests are currently eating in the restaurant


#

#gamedev progress:

  • Implemented A* for navigation
  • Started implementing the guests #AI. At the moment they only book a room at the reception and then idle in their room. If no room is available they leave.
  • Added further debugging to show path, tasks stack and inventory.


#

#gamedev progress:

Wrote function to find all tiles which are reachable from another one. Rooms have now a property to define how they connect to their neighbors.

Game screenshot where reachable tiles are marked green


#

#gamedev progress

Fixed my 2D camera to correctly transform form screen coords to world coords. Added a debug indicator to show the tile of the mouse.



#

It's always a cool feeling for me to find a bug in an #opensource library/framework I use. It's extra cool if can track it down and fix it.

For me this is also a signal that I reached a certain seniority as a developer. At the start of my career 100% of issues with other people's code was "holding it wrong". But now I'm tackling harder problems and more often reach the "rough edges" that others haven't cared about before.