ANNOUNCEMENT Dev Diary #3 - Polish

PokéForce Development Diary #3: Polish


Hello PokéForce, Alycia here! Welcome to another Development Diary for PokéForce, and specifically go over how far we've come since our Summer Demo, and offer some new insights into the development of the game. We've been really working hard on ensuring that the game feels, and looks better than it did in our Summer Demo, including revamping our approach to UI, improving loading times, adding more animations, improving visual feedback, and optimizing everything we possibly can!



Foreword, Spring Demo​


With our upcoming Spring Demo, we're excited to have everyone join us again in Johto, and we're hoping this time it is a more enjoyable experience than the last. I've personally gone through the thousands of suggestions, all of the videos, and listened to everyones feedback and putting that into the game. Of course, our Spring Demo won't just be a feature of a polished version of the Summer Demo, we have been hard at work to introduce new content such as our Smithing, and Crafting skills; as well as enhancing our existing skills such as Foraging, Mining and Farming. We've also been working on a vastly improved Battle Engine, and will be featuring some fantastic battles for you to engage in.. but more on that later!



Loading the game​


Screenshot_3.png
Screenshot_1.png
Screenshot_2.png



I'm happy to announce that we've significantly improved the loading screen, ROM loading, and login screen. The mission for this in particular was to streamline it and make it "new player" friendly, specifically in the ROM loading portion of the process. Take a peek at the changelog for these features in particular!


Loading Screen:

  • Removed the loading bar, now that assets such as tilesets, and themes are loading asynchronously when requested
  • Added our new company logo for Rune Force as a splash screen
  • Added fade out animation
  • Overall speed of the loading screen has been improved from approximately 30 seconds to a whopping 2 seconds

ROM Selection Screen:

  • Completely revamped our ROM loader (which has been open-sourced here Nds4Godot), which significantly improves our ability to locate and extract assets from any given genuine Pokémon ROM.
  • Begun caching assets instead of hard-pulling them when they're required for display
  • The ROM selection screen now accepts *.zip files and will extract the file for you
  • The whole ROM process overall has been improved, and should fix random bugs we encountered such as assets not loading on very first load

Login Screen:

  • Animated multiple parts of the login screen, and improved the back-end code
  • Added various buttons that can be clicked for quick access such as your ROMs folder, settings, and viewing credits
  • Added our logo and the current client build
  • Added a "Forgot Password?" button
  • Added our game logo
  • Added a "Terms of Service" that must be accepted when loading the game for your very first time




UI Polish, Enhancements​


Screenshot_4.pngScreenshot_5.png
Screenshot_6.png
Screenshot_7.png
Screenshot_8.png
Screenshot_9.png
Screenshot_10.png
Screenshot_11.png
Screenshot_12.png


As we've mentioned in our last State of the Game, we really went in on making our UI more concise, and improving the overall user-experience. In combination with making everything easier to read, and improving controls in general (including controllers!), we've really wanted our UI to shine in terms of being unique but not confusing. Some of the newer features are making certain UI such as the Bank, and Shipping Container easier to use and determine if you're depositing or withdrawing items, and providing better options for amounts. You'll also notice we overhauled our Pokemon Party Summary screen, making it a more concise yet comfortable experience. You can also drag'n'drop your Pokemons moves now, too!

Here's some of the change logs for UI:

Chatbox:

  • You can now set font size, language channels, toggle flag icons, and hide the chatbox while playing
  • Improved the UI to be more responsive
  • You can no longer type in the Game tab

Action Bar:
  • Added button indicators to show which row of your bag you're on
  • You can now click on things in your action bar to use them. For example, you can click on a Potion to bring up the "Use On" UI
  • You can now use number keys (0-9) to use items in your action bar
  • Visually overhauled the bar itself, sized up the items & amounts
  • Added tool-tips to items
  • Added an animation when switching between bars
  • Added ability to drag'n'drop items on your action bar
Main Menu:
  • Visually overhauled the main menu with the existing TabContainer node that Godot provides
  • Improved controller functionality
  • The Bag tab has been updated to include a "View Pouches" button, which will be eventual bag upgrade(s) you can get
  • The Options tab has received a massive overhaul, separating Game, Chat, Audio and Graphics options into their own categories
    • There have been a significant amount of new options added, such as Field of View/Zoom, FPS limits, UI scaling, and more toggleable features such as the Tool Placement indicator, Wild Overworld Level Indicators, and more.
  • The Party tab has received some user-experience love including:
    • Removed the confirmation screen when clicking on a Pokemon in your party, it now goes straight to the Summary Screen
    • Improved switching Pokemon around
    • Added animations when hovering over Party slots
HUD:
  • Overhauled the HUD to start using Godot's native themes, including adding support for switching the theme to a different type (HeartGold, SoulSilver, Gruvbox, Catppucin...)
  • Added a "Basic Info" panel, which replaces the debug text that lived there previously. This houses things like your current money, current time of day, current weather, and where you are in the game world
  • Dialogue has received some changes to the option selections
  • Improved font legibility across various UI scaling types
  • Added a "Skill Progress" bar that displays how much experience you've gained in a single action, how much until your next level, and a fun level up animation
Notifications:
  • Added different notification types, mainly:
    • Critical Center: which displays directly in the center of your screen, typically used for telling a player they did/can't do something
    • Critical Banner: which displays as a banner in the top center of your screen
    • Item: which shows when and how many of an item you've just obtained, at the bottom-right of your screen
    • Text: a basic text notification, at the bottom-right of your screen
    • Key Item Obtained: similar to how BOTW works, this is when you receive a key item or similar, it'll display in the center of your screen and require you to confirm that you've received it

This is just a small list of the various changes we've made to UI, but we're excited to let you get online and see them all for yourself soon!




Engine​


Of course, UI is a big part of video games, and we've really wanted to get that part right, there was still some critical polishing required to do with the game engine, and the back-end itself. There's been a ton of bug fixes, and improvements in general that really makes the game feel more smooth when you're playing. From improving how our chunks get loaded on multi-threads, to how we rely on the game-server for state updates, and to making code more stronger in terms of being less buggy, we've made tons of changes. Here's a small sample of what we've done so far!

Chunks, Maps, Tilesets:

  • Chunks, and subsequently, tileset loading are now done on sub-threads to ensure that the main thread isn't blocked when being loaded. This solved a "hitching" error when traversing around the world
  • Tilesets now load much faster in general, and no longer use up so much memory
    • This is a massive improvement in general, our idle memory usage has gone from 920mb~ to 270mb~
  • Warps (when a player goes from one map to another, specifically indoor/outdoor maps) have been massively sped up, from taking approximately 3 seconds to sub 1 second (depending on latency with the game-server, roughly 200ms~ in either direction). They also use a more robust system to ensure that door animations, type of warp, and other various information is more elegant
  • Fixed a massive issue with chunks sometimes overlaying one another, causing some not so nice map visuals and extra performance issues
  • Tile data detection has also been overhauled, which means getting information from a specific tile has been sped up and should give some performance boosts to older devices
Movement:
  • When colliding with a wall, or otherwise, your player will no longer "stop" in mid-movement, and instead keep animating their "walk" until you let go of the movement key(s). This is a feature in the main games that we thought was a nice to have.
  • Fixed an issue with jumping down on ledges and wild encounter/tile data checks were not performed
  • Added a "Run" toggle button, which will ensure that when you choose "Running" as a movement option, it will stay consistent when it's time to switch out of a forced movement flag
  • Added support for what we're calling "Precise Collision", which is a thin line/polygon of collision. Previously we relied on full tile collision, and while we still do, we can fine tune collision in certain areas to give more control over map design
  • Added a whole host of new tiles including "Rocky", "Sandy", and "Mud"; which have their own effects on the player when moving
  • Added support for diagonal stairway movement
Player Animations, Customization:
  • With @Kenoxy finishing a huge undertaking with our character sprites, we've been able to add various animations to the player such as using a pickaxe, a hatchet, harvesting, and much much more that make you feel like you're actually doing things in the world
  • Added all of our clothing options officially into the game, including their items. Be on the lookout for more customization options in the upcoming Demo!
  • We've started work on the Boutique UI, which will let you change your clothes, appearance and cosmetics in a nice interface
  • Added support for Trainer Card sprites
  • Massively optimized memory when loading customization/cosmetic sprites
Controls:
  • The interact key "E" and "Space" have been combined, you can now use either or for continuing dialogue, interacting with NPCs, etc..
  • You can now use the interact key to interact with Nodes, provided you have the proper tool selected in your action bar
  • Fixed various issues with holding down interaction keys, and this should now be a much smoother experience overall
  • You can now interact with water directly to start using surf/raft/boats, etc...
  • Fixed various controller issues when interacting with certain UI
General Bug Fixes, and Additions since our Summer Demo:
  • Over 50 new maps have been added thanks to our new in-house Map Export tool (we use Tiled as our map editing software, and export to Godot!)
  • Added a "Server is Updating.. 00:00" UI, and you can no longer log-in when this timer is below 2 minutes
  • Fixed issues with follower "z_index" sometimes not being set properly
  • There has been a massive re-work on how mining nodes were spawned, including fixing an issue with them resetting before they were supposed to.. Double ores, anyone?!
  • Foraging nodes (pickables, in general) have also received a massive re-work, though we're keeping our lips sealed on how much we've changed.. We don't want to ruin the fun of hunting! Happy Foraging!
  • You can now use tools whilst on a Raft
  • Cleaned up a lot of spaghetti logic when using interact keys whilst moving
  • Entity synchronization (updating players, npcs, nodes, etc) has received some love, this should now be more reliable and faster
  • Improved general container updating (inventory, bank, shipping container, etc..), which should actually resolve a memory leak
  • Added repels, including showing your current steps in a buff UI
  • Added notifications for going into a new piece of Map Data
  • Boulders, Pit Boulders, Cut Trees, and Rock Smash nodes now reset on map switches
  • Added indicators (safe, caution, dangerous) to overworld encounters if they're above an average level of your Party
  • Tons of performance optimizations, and things I'm sure I'm missing here.. :)



What's next?​


Well, first off, thank you for tuning into another Developer Blog! I'm hoping to do these more frequently (at the delight of @Vizaryll) to share what's going on behind-the-scenes here at PokéForce. We've really been spending a lot of time making sure that all parts of the game will feel good, but now we're in a spot where we're ready to keep pushing forward on our content development. We've got a lot of things in the works at the moment, the biggest exciting one is the development of our battle engine by @Benoon! I'll have more information to share in our pre-Demo announcement on what to expect, but I hope this developer blog shared some insight into what we've been doing so far :)

Thank you from the entire development team here at PokéForce, and we can't wait to see you in-game again soon!
Alycia
 
Nice nice NICE JOB
May I suggest you to integrate emulator's shaders in order to have a not-pixellated graphics without having to use reShade?
I don't think Pokeforce needs to be as polished as Octopath Traveler, but on the other hand I think GBA graphics can be improved a little bit
 
I'm proud and happy about what we've achieved! We're getting closer and closer to success, and thank you to everyone who cares about this game! Can't wait to see you all at the next demo! 🍻 🍻 🍻
 
Looks much better than last time!

Regarding the UI for the Pokemon, I was thinking it might be good to use a dynamic 2D style, similar to Black/White.
I'm not certain if this would be compatible with the game's current engine or if it would significantly increase costs (it seems Gen6/7 Pokemon didn't have corresponding dynamic 2D).
However, I believe that if we were to use 2D, this would be the best representation.
 
Yall have been doing such an amazing job on all the progress thats been made. Its been fun to watch the game grow from what it was during the xmas event up until this point, and i grow more excited for the future of this game with every update. Cant wait for the next demo!
 
What an extraordinary journey you've charted since the Summer Demo! Witnessing the meticulous polish across UI/UX refinements, revolutionary engine optimizations, and the birth of groundbreaking systems like Smithing/Crafting has been nothing short of inspiring. The loading speed boost and memory reduction alone speak volumes about your technical mastery.

As you enter the final sprint towards the Spring Demo, know that your passion radiates through every pixel. The community's anticipation grows with each development diary, not just for the game, but to experience the love you've poured into Pokemon.

Keep conquering those code mountains - we'll be here cheering when you plant that victory flag at the summit!😇😇😇