Might seem pointless since no one reads these blog posts yet, but I prefer to document my development progress anyway. Once I have something presentable, I´ll push this project/page on social media, and let´s see what happens 🙂
To hold myself accountable for the promises I make, and motivate myself to work harder, here´s a runthrough of how I did this weekend.
The list I published on may 12th:
Hook UI up to the Input map, so that you can open Game settings, Inventory, Phone, and Map UI overlays with a keypress (half-done already. Reason it´s not done is because I encountered a bug with the dialogue UI that needs to be addressed first. Maybe half an hours work)MOSTLY DONE
Game Settings menu still not working properly. For some reason it opens and closes on one click. Need to investigate why that is. The other UI overlays now toggle on and off using the same key
Q for Inventory
W for Phone
E for Map
- Create a test case scene to validate event system functionality, and determine what needs to be done/fixed. NOT DONE
Further changes to event system forced delay.
Create a custom mousepointer (which will change appearance depending on what you hover over)DONE
Cursor changes image when hovering over:
NPC a talk bubble
Object a magnifying glass
UI items a magnifying glass, but I think a cogwheel might be better
Changes to inventory below also ties into this.
Create semi-functional inventoryDONE
Inventory now has a proper, if crude, UI. What works:
- Hooked into a new dictionary – inventoryData
- Tabbed interface. Currently categories are Tools, Gifts, Misc, and Junk – subject to changes
- Change tabs by clicking on tab, or cycle through tabs with the TAB-key
- Initial functionality coded for selecting/using inventory item. Clicking on an item closes the Inventory UI and changes cursor image to the image of the selected item. You can cancel item use/revert to default by right-clicking anywhere. If clicking on an NPC while carrying an item, the cursor is also changed back to default. However, currently, there is no way to register that item has been given, and remove item from inventory (half coded but a bit tricky).
replace calendar placeholder art with a generated map, based on the gameEvents dictionary, with event notes, and possibly event icons.DONE
Created a dynamic calendar UI that loads data from a dictionary, and displays days correctly over 5 row/weeks. Events are currently indicated by internal event name. Current day is displayed in red.
- Finish navigation functionality in dialogue editor. NOT DONE
Started on this friday, but need to rethink my approach
- Calling Look_at now displays a talk bubble (probably should be think bubble) over the Player´s head, while mouse cursor remains over the object. TODO: make it display only temporarily and add some nice transition effect.
- Got tired of the sliding cubes, and changed to a character mesh instead (courtesy of http://jayanam.com/). Not animated, and not what I´m going to use in game, especially since it´s not my mesh.
You can check my commits on GitHub here.
I consider this a very productive weekend, but I´ll admity I got stuck for way too long on certain bits of code. I blame this on my inexperience with GDscript, but frankly – some parts of of Godot just aren´t very intuitive. Three areas of Godot I just don´t understand the philosophy behind:
- The way area collisions are handled. If I add a collision shape, why does it so often default to not detecting collisions? This has caused me more headache than anything else.
- Adding and editing fonts is sooo clunky…
- One node can override another even though it´s above in order, and the only way to know how this works is to learn how the underlying c++ code is structured (as far as I could understand) from a short discussion on the Godot Discord. An intuitive interface would prioritize according to order in the node tree.
I have every monday off for another 3 months, and most weekends will be coding weekends, so I will continue to post plans and results every week during that time (next weekend coding plan coming may 17th). I´m sure I will do some dev before that though. Progress is very promising and hopefully I can have a first alpha release of the engine/editor within 2 to 3 weeks 🙂
Have a goods one,