1. PogoChamp
  2. News

PogoChamp News

Weekly Progress Report #9: Metrics

Bug of the Week

This week's bug has to do with the camera in the level select menu. The camera originally was a fixed horizontal distance from the center point of the level (the center of the pillar). This meant that when the character went beyond that distance, the camera would flip over, meaning the arrows showing which way to move would be flipped, and it just looked really stupid.

The fix was relatively straightforward, now I offset based on the character's position so that the character is always between the camera and the center of the pillar.

Metrics Recording

After I discovered that Unity Analytics both isn't GDPR compliant, and seems to be primarily designed for free-to-play/retention-based games and not actually for making games "good", I decided to implement my own metrics backend. I've been working on it little by little for the last few weeks, and I finally got it all working, with a web endpoint storing data into a mongodb backend. Now, when various game events occur, I can track them and use that data to fine tune progression / level difficulty. Here's an example of the "crash" collection, which I can use to determine which levels people crash on the most, and how long it takes for them to crash.

I'm pretty happy with this, as it's fairly robust and expandable, is GDPR compliant, and is free!

New Website Url

So my old domain registration for www.pogochamp.bike was set to expire on Oct 6. I've changed a lot about how the website works over the year since I first registered it, including changing to using Netlify as the web host. I got sick of dealing with multiple different services, So I decided to let that domain registration expire, thinking that I could just re-register it with Netlify afterwards. Unfortunately that's... not how it works. So instead I've decided to change the game's url to pogochampgame.com , a much more normal url. Pogochamp.bike will live on in my heart though.

New Computer Complete

Last week I got very lucky and happened to check the Nvidia website when 3080s came back in stock for a few minutes. The new card got delivered this week, so my new computer is finally complete! Pogochamp now runs at nearly 600 FPS in the unity editor, which is pretty much pointless because my monitor is only 60 hz, but it's still fun. I spent most of Wednesday taking apart and rebuilding my old PC before I mail it to a friend.

Vote!

I voted, and you should too!

Changelog
  • Added several new swimming levels.
  • Added rings you have to jump through in order to activate the goal zone.
  • Updated the level select camera so that it doesn't go upside down when you move far away from the center of the tower.
  • Add more levels to the level select.
  • Update various difficulty ratings based on player feedback.
  • Fix missing paths between levels.
  • Update goal zone size in several levels to be more forgiving.
  • Update level select input directions for several connections.
  • Add even more levels to the level select.
  • Add metrics recording that reports to a custom metrics backend.
  • Fix metrics upload not working in release builds.

Weekly Progress Report #8: Just Keep Swimming

This week I mostly worked on a new power up.


This new power up allows you to swim in water. Normally landing in water counts as crashing, but with this power up you gain the powers of a fish!

Bug of The Week




While working on the new power up, I realized that replays don't include obtaining power ups. This meant that in a replay where you got the fish power up, it would show non-powered up version of your character swimming. It was a relatively straight forward fix, and only adds 1 float value per replay to the replay file, so I'm pretty happy with it.

Changelog
  • Added Fish Power Up.
  • Implemented Swimming.
  • Fixed issue where all jumps below 50% power were actually the same strength.
  • Prevent 5 digit times from wrapping to 2 lines.
  • Added post processing effect when underwater.
  • Fix bug where post processing effects only worked when they were on the "Default" layer.
  • Prevent buoyancy effects from giving objects massive speed when they are very deep.
  • Add school of fish.
  • Added some new levels.
  • Add power ups to replay ghosts.

Weekly Progress Report #7: Double Bug Day

This week I worked on some quality of life features & fixes.

Bug of the Week

Ever since I first implemented ragdoll ghosts in the game, there was the possibility for them to be positioned between the spawn point and the camera. This meant that if you timed your reset wrong, you could end up unable to see your character at the beginning of a level. It was funny, but also pretty annoying, so this week I decided to fix it.

While experimenting with possible fixes, I ran into the above situation. In the above image, instead of freezing the ghost's position immediately up resetting the level, I defer the freeze until 2 seconds later. I assumed this would work fine; the ragdoll would be active for an extra 2 seconds after resetting, and that would give it ample time to fall out of the way of the camera. Unfortunately, for some reason this resulted in the ragdoll snapping back to it's "root" position, as defined by the blue wireframe outline you see in the image. I didn't actually find a solution for this, so instead I reverted back to the instant freeze, and if the ghost is between the camera and the spawn point I hide it. A simple, effective, "dumb" solution.

Bug of the Year(?)

I skipped the Bug of the Week last week, so I present you with my favorite bug so far.

While working on the issue where ragdoll ghosts blocked the camera, I also caused this bug. What is happening here is that instead of freezing the ragdoll a second after resetting the level, the code is freezing the newly spawned character. I love this bug, and have some plans for something like it in the future ;)

Changelog
  • Fixed issue where jump charge UI was misplaced.
  • Remove reset text that appears backwards in reset tutorial level.
  • Gates now make it more clear that they can be opened (they change color and shake).
  • Save file deletion now works correctly.
  • Adjusted location of save data to be more organized.
  • Fade in the jump charge UI when starting a level (fixes single frame misplacement issue).
  • Update "Down the Chute" level conveyor placement to be less annoying.
  • More moving platform experiments.
  • Hide ghosts that would be between the camera and the player on level start.
  • Add Option to automatically explode when you don't beat your high score in a level.
  • Disable Unity Analytics.
  • Fixed variety of issue with the build now that I am on a new computer.


Let me know what you'd like to hear about in the comments!

Weekly Progress Report #6: Difficulty Ramp

[h2]Playtesting[/h2]
Early on this week I did a couple of playtests with people who had never played the game before. Playtests are super interesting, because you get to see the kinds of things people do when they've never seen your game. I'm frequently surprised and occasionally confused by the way people interact with the game.

Something that became clear after these playtests was the fact that the introductory levels don't introduce mechanics quite as well as I thought they did. The controls are relatively simple, so people understand them pretty much immediately, but how to think about moving around in the world is another story.

This playtest also showed me that the initial levels spike in difficulty much too quickly for novice players. My wife (who doesn't play 3D games), had a ton of fun on level 1, beat level 2 like a pro, but quit on level 3 because it started to get frustrating. Up until that playtest, I honestly wasn't thinking about people who don't normally play games as part of my potential audience, but they should be! Games are for everyone!

This reminded me of the problems I ran into with the very first playtest I did. In that original playtest, I created a single tutorial level, which was supposed to require the player to demonstrate all of the skills they would need in order to play any level that came later. It was terrible! One of my friends said "this is the hardest game I've ever played in my life". After that playtest I went back and broke the level into 5 individual levels, each focusing on a single aspect of controlling your character.

Something that all of these playtests have demonstrated is something that I forget: This game is kind of hard to control even at its most basic.

A rough approximation of the difficulty curve.

In a game like Mario, your character moves right when you push right, moves left when you push left, and jumps when you push jump. Changing your direction is straight forward, simple and almost immediate. By contrast, PogoChamp requires a decent amount of finesse to do even the most basic things, like move forward. I need to allow players several opportunities early on to practice those basic mechanics before introducing new, more complicated things. That required adding some new levels, and also changing existing intro levels to more clearly demonstrate the skills players should be learning.

I'm very happy with the new introductory levels, but I'm sure they'll need additional tweaking over time.

[h2]New Computer[/h2]
This week I also built a new computer! I was pretty excited for the new 3080 graphics cards, but they sold out instantly so I'm still using my old 970. Still though, the upgrade has been significant. It turns out computers from 10 years ago are a little bit slow compared to modern tech.

Unfortunately my old motherboard doesn't have a display out connection, so if I want to get files off of it I need to swap the graphics card between computers, so I haven't transferred any of my files.

[h2]Metrics Website[/h2]
Something else I've been working on a bit is making my own metrics website for PogoChamp. Unity Analytics are basically advertising focused, and aren't GDPR compliant, so they really don't match my needs. I've been working on a simple DB endpoint that I can send analytics to. It should be done in the next week or so, and when it is I'll disable Unity Analytics and use this version instead.

[h2]Bug of the Week[/h2]
Unfortunately (or maybe fortunately?) no bug of the week this week. There weren't any big or interesting bugs I found.

Have a great weekend!

Weekly Progress Report #5

I hope everyone had a nice labor day weekend. This week, I honestly didn't really work on PogoChamp. I updated the steam store page a bit, and opened up the game to experiment with moving platforms a little, but I didn't really get anything done. I'll be honest, I was playing a little too much Factorio...

As I've worked on this project, I've come to see that it's important to take a break every once in a while in order to maintain enthusiasm and not get burnt out. I usually work on PogoChamp in the mornings, before my regular full-time job, and it has been the majority of how I spend my free time for the last few months, so it was nice to take a week off to recharge.

Bug of the Week


This bug hasn't actually been fixed yet. I stumbled onto it while trying to add moving platforms to the game. Due to the way the pogo skid/slide works when landing on a surface, if the character is on a platform moving down, they tend to pop up of the platform, which is really bad. This is going to require either some specific detection logic for moving platforms, or a pretty big change to the bounce logic, and I'm uncertain how that change will effect other things.

You can also see that the spheres on the right side clip through the platform. That's a whole other issue, with a whole other set of things to deal with. It's gonna be annoying, but once I get this working, it will open up a whole new set of possibilities when it comes to level designs, so it's worth it.

Art Update

I'm still working with the artists to try to zero-in on the style for the game. It's a fairly long process, but I'm willing to put in the time to get something that I really like. Still no ETA on when I'll be able to share some "final" designs, but hopefully soon.

California Wildfires

I hope everyone is staying safe in the areas affected by the CA wildfires. I'm in the Bay Area, and it has been pretty crazy the last few days. The smoke & ash from the fires has pretty much completely blocked out the sun, and it has been just an overwhelming shade of orange outside. It's like the whole world is in a flashback, or we're on Mars. Stay safe out there!

New PC

Also I decided to build a new PC as an upgrade from my ~10 year old one that I've had since college. It has been very exciting getting packages full of new computer parts, and I'm itching to finally have everything delivered so I can actually put it together. I'm a bit nervous that the new Nvidia 3080 graphics cards will sell out before I can buy one, but I guess we'll see...


Have a nice weekend!