diff --git a/content/blog/tiddler-dev-blog-1-making-a-plan/index.md b/content/blog/tiddler-dev-blog-1-making-a-plan/index.md new file mode 100644 index 0000000..4fdd873 --- /dev/null +++ b/content/blog/tiddler-dev-blog-1-making-a-plan/index.md @@ -0,0 +1,55 @@ +--- +title: "Tiddler Dev Blog #1 - Making a Plan" +date: 2026-02-10T14:18:57Z +tags: + - gamedev + - godot + - tiddler +draft: false +--- + +Since actually finishing and releasing [Whittler](/games/whittler) a few weeks ago I've been thinking hard about what kind of game I want to make next. I've got a massive list of projects I've started and not progressed with, ranging from a nature game with a fully generative forest that spawns trees based on moisture levels, soil quality and terrain height through to an underground cavern simulator with destructable terrain. + +None of these ideas have really stuck for very long beyond the initial idea and rush of building the first few Cool New Things. + +I've always had a thing for fishing in games, I have multiple 100 skill fishers in Final Fantasy XI, and making a cosy fishing game has always been on the cards. + +I did, however, need to make sure I would follow through with it. So I started where any good idea goes first - and started writing a list of ideas. + +This was the initial list of ideas I came up with: + +- Core catch mechanic + - Quick bar on screen that has zones to trigger catching which affects success and quality of catch + - Nailing the catch gives you a bonus to your next cast +- Fish should be affected by environment affects, location, time of day, weather, and moon phase. +- There should be some sense of progression + - New fishing locations + - Upgraded rods + - Access to new baits +- There should be some big grindy quest chain that involves catching a lot of fish + - This won't be to everyones taste, but I am making this game for myself. +- There should be mythical fish that require some uncovering to find out how to catch and with what. + +This was the absolute base list, it's since grown a bit and got slightly more meat on the bones. Side note, I have started using UpNote for keeping notes, drafts and ideas. It's very handy and syncs across devices. + +Using this list of ideas I came up with with a list of mechanics I would need to create: + +- Fish database +- Fishing game interaction +- Fishing levels / reputation +- Time progression +- Inventory management +- Shop +- Quest system + +This was a pretty tasty list to get started with, so I started where anyone would with a clear list of mechanics they need to make and opened Tiled to start drawing a map. + +After I got a cop on myself I closed Tiled and opened up Godot and started getting the main classes in place, even if they were only placeholders. I knew I would need a central event bus and a strong event driven system in order to not become severely unstuck when I got to implementing quests, so that gave me some clear architectural pieces to work towards. + +After a few days of tinkering, I did have what could be considered the bones of a game. + +{{< img src="tiddler-1.png" alt="Tiddler - The First Screenshot" width="900x" >}} + +Yes, I did make some more of a map - it wasn't fun watching some boxes move around the screen. + +My very rough plan is to put out regular blogs going over each of the major features as I get to refining them... So maybe pop back some time if that kind of rambling interests you. diff --git a/content/blog/tiddler-dev-blog-1-making-a-plan/tiddler-1.png b/content/blog/tiddler-dev-blog-1-making-a-plan/tiddler-1.png new file mode 100644 index 0000000..405fdc5 Binary files /dev/null and b/content/blog/tiddler-dev-blog-1-making-a-plan/tiddler-1.png differ diff --git a/update-neocities.sh b/update-neocities.sh index 8ea0547..374ad10 100755 --- a/update-neocities.sh +++ b/update-neocities.sh @@ -21,114 +21,71 @@ BLUE='\033[0;34m' YELLOW='\033[1;33m' NC='\033[0m' # No Color -echo -e "${BLUE}Removing existing files...${NC}" +# Clean up public folder and create redirect files +echo -e "${BLUE}Cleaning public folder...${NC}" rm -rf public/ +mkdir -p public/log -# Build the Hugo site -echo -e "${BLUE}Building Hugo site...${NC}" -hugo +# Create index.html with redirect to https://ritual.sh +cat > public/index.html << 'EOF' + + +
+ +Redirecting to ritual.sh...
+ + +EOF -if [ $? -ne 0 ]; then - echo -e "${RED}Hugo build failed!${NC}" - exit 1 -fi - -echo -e "${GREEN}✓ Hugo build successful!${NC}" - -# Remove folders that shouldn't be uploaded to Neocities -FOLDERS_TO_REMOVE=( - "about" - "archives" - "audio" - "blog" - "buttons" - "gear" - "guestbook" - "media" - "now" - "resources" - "tags" - "test" - "updates" - "uses" - "fonts" - "images" - "js" - "games" -) - -echo -e "${BLUE}Removing excluded folders from public...${NC}" -for folder in "${FOLDERS_TO_REMOVE[@]}"; do - if [ -d "public/$folder" ]; then - rm -rf "public/$folder" - echo -e " ${GREEN}✓${NC} Removed $folder/" - fi -done -echo -e "${GREEN}✓ Folder cleanup complete!${NC}" - -# Remove specific files that shouldn't be uploaded -FILES_TO_REMOVE=( - "index.html" - "404.html" -) - -echo -e "${BLUE}Removing excluded files from public...${NC}" -for file in "${FILES_TO_REMOVE[@]}"; do - if [ -f "public/$file" ]; then - rm -f "public/$file" - echo -e " ${GREEN}✓${NC} Removed $file" - fi -done -echo -e "${GREEN}✓ File cleanup complete!${NC}" +# Create log/index.html with redirect to https://ritual.sh/logs/ +cat > public/log/index.html << 'EOF' + + + + +Redirecting to ritual.sh/log/...
+ + +EOF +echo -e "${GREEN}✓ Redirect files created!${NC}" echo "" -# Count total files +# Upload the redirect files cd public -total_files=$(find . -type f | wc -l) -current=0 - -echo -e "${BLUE}Uploading $total_files files to Neocities...${NC}" +echo -e "${BLUE}Uploading files to Neocities...${NC}" echo "========================================" echo "" -# Upload files using the API -find . -type f | while read file; do - cleanfile="${file#./}" - ((current++)) - - # Calculate progress percentage - percentage=$((current * 100 / total_files)) - - # Create progress bar with simple characters - filled=$((percentage / 2)) - empty=$((50 - filled)) - bar=$(printf "%${filled}s" | tr ' ' '=') - space=$(printf "%${empty}s" | tr ' ' '-') - - # Upload and capture response - response=$(curl -s -H "Authorization: Bearer $NEOCITIES_API_KEY" \ - -F "$cleanfile=@$file" \ - "https://neocities.org/api/upload") - - # Parse result from JSON - check if response contains "success" - if echo "$response" | grep -q '"result"[[:space:]]*:[[:space:]]*"success"'; then - result="success" - else - result="error" - fi - - # Display progress with color - printf "[${YELLOW}%s${NC}%s] %3d%% (%d/%d) " "$bar" "$space" "$percentage" "$current" "$total_files" - - # Show file status - if [ "$result" = "success" ]; then - echo -e "${GREEN}✓${NC} $cleanfile" - else - echo -e "${RED}✗${NC} $cleanfile - ERROR" - echo " Response: $response" - fi -done +# Upload index.html +response=$(curl -s -H "Authorization: Bearer $NEOCITIES_API_KEY" \ + -F "index.html=@index.html" \ + "https://neocities.org/api/upload") + +if echo "$response" | grep -q '"result"[[:space:]]*:[[:space:]]*"success"'; then + echo -e "${GREEN}✓${NC} index.html" +else + echo -e "${RED}✗${NC} index.html - ERROR" + echo " Response: $response" +fi + +# Upload log/index.html +response=$(curl -s -H "Authorization: Bearer $NEOCITIES_API_KEY" \ + -F "log/index.html=@log/index.html" \ + "https://neocities.org/api/upload") + +if echo "$response" | grep -q '"result"[[:space:]]*:[[:space:]]*"success"'; then + echo -e "${GREEN}✓${NC} log/index.html" +else + echo -e "${RED}✗${NC} log/index.html - ERROR" + echo " Response: $response" +fi echo "" echo "========================================"