|
back to dev log
project: |
april 16, 2026it's been a couple weeks since the jam ended. I'm not really thinking about it anymore, but I'll talk about it for a second just to catch you up. I played a good few of the submissions shortly after the jam ended. a lot of them were the visual novel type, and the rest was quite a mish-mash. a lot of them felt so dreary and boring to play, honestly. I don't think anything really wowed me, and after playing for a short while I felt relieved because it felt as if NNW would've been so out of place in that group of submissions. not because it's better than all of them, but because the vibe just wasn't matching, and there wasn't a single game like it there. and NNW was nowhere near ready to show off anyway. current progresssince then, I've been steadily adding to NNW and refining it. I thought I'd revisit the list of things I wanted to implement that I wrote in the feb 26 dev log. ✅ Nev core AI: movement, detection and interaction with the worldI've spent a lot of time on Nev's movement, detection and interaction. Currently his default behaviour is fully implemented as intended. Nev fully interacts with all hauntable objects now. He and his van have a detection radius for actively haunted objects, as well as a weighted-chance random wandering system while driving around the town. When haunted objects affect NPCs, their infamy increases, making Nev's van more likely to drive nearby. Detected hauntings are added to a 'todo queue' which is often sorted by distance. He'll park near a haunted object, get out, and path to it. When he gets there, a short 'survey' animation/sound plays (which is different for each gear upgrade). If the object is still haunted, he gains subs. If the object is not haunted or deactivated by the time he gets there, he loses subs. This is immediately evident with the use of a particle system which either emanates plus symbols (+) or minus symbols (-) depending. The amount of subs gained/lost is based on his current gear upgrade level. If his 'todo queue' is empty, he'll then return to the van and drive around town again. If it isn't empty, he'll walk to the next haunting. Areas which still need work include: making Nev return to his van and parking spot at the end of the day (to sleep), adding extra pathing when leaving a building (this applies to NPCs also), and potentially also his Fear mode (more on that later). ✅ Nev backend: subscriber gains/losses depending on daily events, upgradesAside from the very last gear upgrade, Nev now upgrades and downgrades his gear at the end of each day if he has passed certain sub thresholds, as intended. I've left out the last upgrade because it has a unique sprite, animation and interaction logic compared to the other upgrades. I wanted to name the last upgrade the "Poltergust" in reference to Luigi's Mansion, but the smart thing to do is pay homage instead. The logic behind the upgrade remains the same, so it still looks similar but it's now called the Ectoextractor. ✅ Nev's podcast and graphical daily events breakdown for the playerHappy to say this is almost fully working, as it seemed quite daunting at first. Currently the way it works is that when midnight rolls around, the game world pauses and the player sees a message that the day has ended, along with a transcript of Nev's podcast for that day. Currently the transcript is static, but in future I want to make it dynamic so that the podcast is tailored to match the events of the day. I also implemented a toggleable 'sidebar' in-game which displays Nev's sub count, sub goal, and his next gear upgrade. It is reminiscent of a Twitch streamer's overlay which displays their sub goal etc. There's also a 'live chat' chatbox in the lower section of the sidebar, which currently has no logic. I'd love to be able to implement a live chat which appears to comment on the state of the game, or Nev's actions. This would take some serious logic and coding in order to work well and its definitely a low-priority feature, but would be really cool! Tom has volunteered to do voice lines for Nev's podcasts; he is brilliant at VA in general. Once everything is more locked down, that should be really fun. He'll need to voice various quips and ad libs for the game world as well. ✅ haunted building interiorsI overthought this at first. I was thinking, "how am I going to make it so that the player can click on a building, see inside it, and the game world still persists outside?" I first considered switching rooms, but this was definitely the worst consideration. Switching rooms meant that I would have to have the time stored in a persistent object, and when going back to the 'world' room, all instances would needed to be recreated and repositioned at whatever point matches the current time. This would not work without all coordinates being choreographed or predetermined in some way. This was incompatible with the pathing system I was using. Next I considered that when clicking a building, it would create an instance of the 'inside view object.' Each building would pass certain vars to the inside view object so that it displayed the correct interior, etc. But this had several issues. Creating an instance like this with so many vars passed would cause slowdown for the player, undoubtedly. Additionally the complexity surrounding hiding NPCs in the game world and then drawing them in the inside view object and vice versa was a total headache. The solution which seemed to work best was teleporting the camera view to a different part of the room, far away from the town itself (roughly 20,000px away). This solution should've been obvious to me at first because I know that in COD Zombies' Kino der Toten, the various rooms that you visit whilst teleporting away from the Pack-a-Punch room are in fact little boxes that are placed underneath the map. The player is simply teleported within the same 'level' to ensure that the rest of the game world persists. ✅ full NPC interaction: enticing, scaring, killing, possessingYep, enticing, scaring, killing and possessing all work as intended! Great stuff. Currently, there are two buttons which appear beside an NPC that has reached max Fear (a state called 'SCARED_STIFF'), each representing kill or possess. One small issue is that when the NPCs are close enough to each other inside, the buttons overlap on to each other. I do want to implement a fix which prevents the NPCs overlapping each other. Separately, I think the buttons should only appear when hovering over a SCARED_STIFF NPC. That would tidy up the scene a bit. ✅ adding more hauntable world objectsAdmittedly I have only added one or two extra world objects: the manhole and goat, which are the objects that I mentioned in the prior dev log. The manhole is realised (and oh so simple), but the goat requires extra logic and behaviour states. The goat has actually become quite complex. Originally they were supposed to stand near the path where NPCs would walk past and stay still for the most part. I think it'd be far more interesting if the goats wandered the town whilst haunted: so, a bit like possessed NPCs, but still being able to be turned off at will. Maybe the goat should wander the town via the roads, which would lead to interrupting Nev's van... I guess further playtesting will help to inform this. 🔳 random events to add some unpredictability to the daysNo random events yet. I do plan on adding them. On a similar note, Nat had a great idea which came out of nowhere, and I'm going to implement it. Either randomly or on a set day in the week, there will be a flock of ducks that come down to the town from the northward path. The majority of them head straight to the pond by the bridge and reside there, but one of them wanders through the town towards the Lemonade Stand. There will be one NPC kid whose routine is unique, in that he operates his Lemonade Stand all day before returning to his house at night. This is obviously an homage to The Duck Song, a classic internet sensation from the late 2000s. It just made sense and fit the vibe (bizarre and ridiculous). Additionally, the Lemonade Stand is a hauntable world object, so any NPC including the duck will become Spooked if they get close to it while haunted. After being spooked, the duck returns to their flock. They leave the town at nightfall. 🔳 win and game-over eventsI haven't got win or game-over events in yet. I think I'll get this done once Nev's final upgrade is fully implemented. These events are crucial and instrumental in NNW feeling like an actual game, so it is a priority. ✅ lighting system with day/night cycleThis is the most recent addition, actually; I worked on a basic lighting system just yesterday. Currently, the time manager object controls light_change_timer and global.light_change_progress. From 2000-2300 the sun sets, and from 0500-0800 the sun rises. The 'night lights' (being the streetlamps, Nev's van lights and anything else similar) are activated at 2100 and deactivated at 0700. The lights are white sprites which are 'subtracted' from a darker surface that is overlayed on top of the game world, whose darkness is controlled by global.light_change_progress. 🔳 save/load systemI've not tackled the save/load system yet, it seems as though I've just prioritised other things. I do plan on getting to this though. Full game sessions are likely to last long enough to warrant it, so it will be figured out soon. 🔳 audio: music and sfxNo audio or sfx has been added yet, but that's okay. I realised when the jam ended that I needed to focus on the art direction and setting more so that the overall idea of what the game sounds like would become more clear. Now, after redesigning the town layout and building sprites, I feel a lot closer to being able to tackle the audio. ✅ extensive playtestingA lot of playtesting has happened, but the game was certainly not near completion at that point. A lot has changed and is still needing to be implemented, so more extensive playtesting will be needed once I have made substantial progress, once the game is feeling more like an actual game. ✅ polish and bug fixingWhen writing this initially, I assumed this would be the sort of final 'polish' and bug fixing before being ready to ship. NNW is still not ready to ship, but I have been polishing and bug fixing along the way. At the time of writing, Nev was quite buggy when interacting with scary objects and entering/leaving buildings. That is very much fixed now, I believe. No doubt there will be more constant polishing and fixing as I proceed with development. summarywell, that's a tick on 9 out of 13 tasks, that's pretty good. I already had a Jira project set up which I was using to track progress throughout March, and I've since also set up a Trello board. Trello feels like a stripped-down Jira, it's quite quick and easy to write down todos and track progress that way. I'll keep using Trello until I have a more solid idea of the ultimate deadlines/timelines etc. Still lots to do, but progress is good. Hopefully by the time I write another dev log I'll have a rough timeline going forward in mind. I imagine I'll start an online campaign of sorts soon also to garner some attention. written by rubinbizarre |