Week 6 - Fun With Data Structures 2


Fun With Data Structures 2: I Made a Flowchart

I did some rescoping. The plan is now cut back to only what I have. No crafting for the time being, just flying around, discovering stuff and doing favors and minor quests. 

So this quest system. It works. 


The goal was to have as little contact between systems as possible and I think I did okay? It has organization problems but I think it works for the most part (the NPC logic is just a bunch of if checks and it feels wrong but oh well0. The flowchart explains it a bit better, but briefly: Interact with NPC, that decides the Dialogic tree to play, accepting the quest adds it to a list. Complete the quest by talking to whatever NPC, then the quest gets moved to the complete list. It's fine, but it relies a bit too much on vagaries and magic numbers.

This is the code inside NW for right now. This feels wrong, but I don't know of a better method.


If anyone has a better suggestion I'd love to hear it. In any case, thank you to Dialogic and the folks who make it this has saved me a large amount of time.

Also I tricked myself and stumbled over somewhat obvious crashes. Three times. 

  1. Because I used Notepad++ to write my json I forgot to check for syntax. I was too focused on the stack trace of where it crashed to look two lines up to see that the json failed to parse.
  2. I had an Array of goals in each quest and got a NullReferenceException when the quest was constructed. I forgot to initialize a new Array.
  3. As it turns out, for Godot.Collections.Array<T> T can't be a generic class, it needs to inherit from Node (or Object probably I'm not 100%). I did not know this and was getting errors about unmarshallable managed types and Variants. You'd think I'd actually search up what those meant, but I spent longer than I would like to admit fumbling with random debug stuff.

In better news, I got started on adding juice to the flying. This is the plan, apologies for the bad perspective stick figures:

The Flight Plan

Axes split between the two hands (WASD/mouse or left/right joystick) and x/y

 I don't play many flight sims, but I feel like this makes a bit more sense. The camera moving the player to different parts of the frame is something that needs to happen though, that adds a lot to the feel. I need someone to test this to make sure it feels okay and controls intuitively, because I'm not sure.

This week:

  • The quest system
    • Gathering and delivering types
    • An organizational system for Dialogic
  • Flying
    • A and D now rotate the player counter clockwise and clockwise respectively.
  • Fixed dialogic choice options fast forward bug. (it's just a setting for a delay that I didn't notice)
  • Did some research on some games and rescoped.
  • Fixed up some of the item functions, they were inefficient.

Next week: fun stuff!

  • Flying
    • Momentum. Make turning take a bit of time
    • Make axis 1 (A/D) do something to the speed. (Faster turning when rotated that way?)
    • Lerp resetting the rotation upon leaving flying
    • Lerp Axis 2 (W/S) for speeding up and slowing down. I think having fly speed only be positive is smart (no backwards movement)
    • Maybe get controller working? It's not high on the list but I'll see what I can do.
  • (3D) Fix up the camera collision
  • Quest UI? It should be a nine patch and a label slowly filling in text. Shouldn't be too hard, right?
  • Bug smashing. I realize I'm going into bug debt, but I forgot about these since they aren't game breaking.
    • (2D) Interact collision area highlights multiple objects
    • Interacting with the same object requires moving away and coming back (on interact, it gets removed from the interact list)

By the way, I didn't post last week's update to Twitter. This was by design, to try to see how many views it got with 0 promotion. About half as much as the week before (28 to 44), so I guess I don't get to leave the bird website yet.

Files

ADoW_6.zip 28 MB
Oct 25, 2021

Get Deliveries in Jam Valley

Download NowName your own price

Leave a comment

Log in with itch.io to leave a comment.