Hello friends! It's been a while, so surely it must be time for some gnorp news. This post will be about Epilogue, an upcoming (free) expansion to the game that will bring new mechanics, an (almost) entirely new set of talents, new buildings, and lots more! Where Are We At?? Ther
Hello friends! It's been a while, so surely it must be time for some gnorp news.
This post will be about Epilogue, an upcoming (free) expansion to the game that will bring new mechanics, an (almost) entirely new set of talents, new buildings, and lots more!
Where Are We At??
There's been some ups and downs. A few months ago I decided to implement a new system for the expansion. That system was implemented in full, but in testing it was found lacking, which meant I had to re-engineer it. It was supposed to be the final piece of the puzzle but ended up as the final (fingers crossed) headache.
The Headache
I set out to solve the following problem: Decision making in Gnorp can sometimes feel a little bit front-loaded. You pick your talents, and set sail towards a certain future. At least certain in the sense that you know what you're about to do. A slammer-focused build means buying lots of slammers. I could provide another example, but I am trying to be less wordy in my writing, and in the age of LLMs the last thing I want is to subject you to wordy writing.
So, in order to solve this problem of front-loaded-ness, I came with an unoriginal system I unoriginally call Augments: Randomly chosen modifiers that you could activate or re-roll, and I strapped it to another new system in Epilogue: Space Travel.
Space Travel
Gnorps are exploring the possibility of space travel. Boosters are installed on stacks of housing, and off they go towards (not to) the stars.
Why do they do this? [REDACTED] and recycling.
Treasures from the heaven
The cost of housing just keeps going up. In Epilogue, you'll be able to apply recycling as a solution to this problem. Here's how it works:
Step 1: Send some unemployed gnorps on vacation It's a long vacation, sort of like when Frodo went to visit the elves in the Undying Lands.
Step 2: Treasures from the heaven Through a process that is not well-understood by down-to-earth gnorps, objects that are particularly useful for constructing housing falls from the sky post-departure.
Step 3: Reconstruction While we wait for Frodo to return, we can make some new friends. Gnorps collect the materials to make new housing, which, of course, grants new gnorps!
It's not always wise to send gnorps to space. While you'll have more gnorps to spend, you'll have less housing in the world. Why does that matter?
Live Ammo
The zookagnorp is a new unit, available from Gun v. Rock.
The ammo used by the zookagnorp is generated by housing. That means the more housing you have in the world, the more ammo you spawn.
As sending gnorps on a merry mission towards space results in lower ammo generation, it then follows that it's not always a great idea. Though there are work-arounds.
Back To Augments
Space Travel is fully fledged in its own right, but the version of augments I had in mind would grant an augment on launch. Since Space Travel is important and useful, having augments as an additional factor in your decision-making turned out to be a bad idea. It didn't feel good to be forced to gamble with random modifiers.
"It was a terrible experience, and as a result whatever love was once between us is now gone" - The QA tester (also wife), after having tried the augment system.
To save my marriage, I had to come up with a solution.
Describing the process of ideation is a bit weird though. I thought about things until I found a good solution, and in lieu of a better explanation here is a representative illustration of my physical and emotional state during that time.
The Antigravity Machine
I concluded the following: a) Augments can be interesting and cool b) Augments shouldn't be mandatory
So, augments need a new home. An optional home. That home is called the Antigravity Machine.
The antigravity machine was already part of the Party Pad, and if you missed the post about that, it's a new building where you pick a party to host. The antigravity machine also looks very much like a lottery draw machine, so it was a perfect fit.
And that was the end of that headache.
I think this post came together quite nicely. I took us on a journey. We had a few laughs, and maybe we learned something new.
Playtesting?
Not quite there yet, but we are nearing the point where I might consider the possibility of doing some public playtesting of Epilogue. I'll make another post when the council of consideration has concluded that it is time, but when that moment is will ultimately depend on my ideation, which fundamentally is a process with a highly variable duration and outcome.
Big patience, big thank
This whole thing has been a battle against scope creep and perfectionism, and I lose every time. Well, until now, I hope. The list of tasks remaining is shrinking, and I'll do my best to keep it that way.
I know that gnorp news have been sparse lately, so thank you for your patience, and thanks for reading.
Hello everyone! Trading cards are here! In addition, there are also a whole bunch of Points Shop items, and there is a limited time bundle for the Steam Winter Sale. Trading Cards Trading cards are now available. Completing a set of them, allows you to craft badges. When crafting
Hello everyone! Trading cards are here! In addition, there are also a whole bunch of Points Shop items, and there is a limited time bundle for the Steam Winter Sale.
Trading Cards
Trading cards are now available. Completing a set of them, allows you to craft badges. When crafting badges, you will also be able to get background and emoticons.
Completing a set of foil cards, allows you to craft this stunning badge, in all it's radiant glory.
John Apologue
Animated Avatars
These are animated avatars you can buy in the points shop to use as your Steam profile picture. They are amazing, and I'm glad you agree.
Animated Avatar Frames
If you just love your current profile picture, you can combine it with one of these frames. Also amazing, and one of them is from the Party Pad, from the upcoming Epilogue Expansion.
It's incredibly cool to be part of this bundle for the winter sale, that features some of the absolute best incremental games that you can find on Steam.
Hello! With no Half-Life 3 announcement, the world needs (the) New Gnorp Times more than ever. Today we'll talk about hats, and the current status of the Epilogue Expansion, I hope you are doing well, by the way! Hats All the hat winners are now live in-game! Here are a few of th
Hello! With no Half-Life 3 announcement, the world needs (the) New Gnorp Times more than ever. Today we'll talk about hats, and the current status of the Epilogue Expansion,
I hope you are doing well, by the way!
Hats
All the hat winners are now live in-game! Here are a few of them:
The Mug Gnorp becomes a literal mug at the garden. Also featured are the Rock Gnorp, and the Unfortunate One.
When enabled, the Hooded Gnorp appears in certain buildings. And there is also the Anglerfish Zygnorp.
This hat, if enabled, appears during prestiges (and endings), and is a little raincloud.
Some hats can be combined. This one is Stereoscopic + Bring Your Gnorp To Gnorp Day.
These are all the implemented hats, made by you guys:
Lei, by Pumpkinburger
Snail, by Joy
Bandana, by Zymosan99
Drill, by anonymous
Dented, by SleepyHead (with idea from Ultrakill Enjoyer)
Frog, by Kero
Robin Hood, by Goat
Bunny, by Pecan, and Popgoes
Gnome, by Popgoes
Stereoscopic, by Firmamentality
Bring Your Gnorp to Gnorp Day, by Caty, MetallicSaladFork, Pumpkinburger, and Sting
The Unfortunate One, by Matsan
Allseer, by Popgoes
Dorp, by MetallicSaladFork
Hooded, by Popgoes
Anglerfish, by Borgage, MetallicSaladFork, and Dokkefyxen
Drone, by Matsan
Fox, by Doshige
Mug, by Pecan
Raincloud, by DailyNightmares, ThatOneGuy, and Popgoes
Rock, by Matsan
Bundle of balloons, by Doshige
Thank you to everyone who submitted a hat, and thank you to all the winners who have now left a permanent mark within the game.
Epilogue Status
It's been a while since I last spoke about the progress of Epilogue, so here is the gist of it: Implementation is ongoing. Once that is finished: Lots of testing, polish, localization, more polish, more testing.
Full disclosure: I was certain to have finished the Epilogue Expansion by now, and I've been crunching to accomplish exactly that. Alas, I've missed a couple of self-imposed deadlines, and as a result the world remains deprived.
Progress is continuing though, and since we last spoke some (many?) things have changed.
Talent+, revisited
I previously discussed the plan of Talent+, a system for Epilogue. The gist of it was to implement cool new talents on top of existing ones, allowing you to leverage your experience playing Apologue. You would be able to "upgrade" or replace a talent through socketing an additional talent point.
It was a cool system that would allow me to add more talents on top existing ones. But as I worked on implementing more of them, I realized that working with the talents in Apologue was just not fun enough. Don't get me wrong- I love (most of) the Apologue talents, but I want Epilogue to feel and be fresh.
A new talent for Epilogue: Capsaicin Cocoa
In addition to that, there's also the new ring mechanic and the party pad. In order for them to be a holistic part of Epilogue, it would require deeper integration with the modifiers of the game.
So, in order to reach a state of overall freshness and integration, I thought it would be a good idea to replace almost all talents with new ones. Currently only 6 of the 41 talents in Apologue are present in Epilogue, and out of those 6, some might not survive.
Another new talent for Epilogue: The Scoop
I still think it was a good idea in terms of quality, but perhaps not such a good idea in terms of finishing the project in reasonable time. The Talent+ system remains cool and is still in place, allowing you to modify the 35 selectable talents in Epilogue with another point.
How the talent tree looks in Epilogue (currently). The hole in the middle is a talent that doesn't exist yet!
I'm very satisfied with the overall design of the new talents, and the ability to modify the talents with another point opens up more interesting possibilities.
Uh-oh, what about upgrades (and inspirations)?
The talents are just one part of the systems of Gnorp, and they are integrated with the inspirations and zybellium upgrades. As I was working on the new set of talents, making them fit in with the Apologue zybellium upgrades and inspirations felt too much like treading old ground.
The conveyor belt, a zybellium upgrade for runners in Epilogue. Fun fact: The first ever version of Gnorp had no pile, just a single conveyor belt automatically carrying all shards.
The conclusion was simple: In order to make Epilogue the best it could be, I would have to replace some of the zybellium upgrades and inspirations. This would not only be super neat and fresh, but it would also make the process of creating new and satisfying talents easier.
Another Epilogue zybellium upgrade: Fusion, for slammers
I've had a lot of fun, and still am, making the new modifiers. Once finished, I hope that Epilogue will provide an experience that'll feel fresh, with brand new ideas.
Finishing up
And that's the current state of the Epilogue Expansion! I'm very excited for you all to have fun with this new puzzle to solve, in the form of picking your units, talents, upgrades, inspirations, etc.
There is a lot of hindsight to be had here, but the scope is definitively locked now, and I am pushing to release an update that I can be proud of. I think it's getting there, and I hope you will agree that it was worth the time and effort!
The Epilogue Expansion will be a free expansion in the form of a new mode. You will be able to re-experience the gameplay of Gnorp with a new core mechanic, a new set of talents with plus-variants, and new zybellium upgrades and inspirations. There are a couple of new units, and several new buildings. Completing the mode will reward you with a new ending, concluding the story of (the) Gnorp Apologue.
Another new talent for Epilogue: Instant Housing
A couple of days from now will be the 2-year anniversary of the release of the game. Thank you for playing, and thanks for your patience as I figure out this whole "supporting a game after its release".
It's time for another TNGT. I'm hard at work with the Epilogue Expansion and the end is finally in sight. Today I'm going to talk about buildings in Epilogue. The Epilogue is an upcoming free expansion to (the) Gnorp Apologue in the form a new mode, which will include new talents
It's time for another TNGT. I'm hard at work with the Epilogue Expansion and the end is finally in sight. Today I'm going to talk about buildings in Epilogue.
The Epilogue is an upcoming free expansion to (the) Gnorp Apologue in the form a new mode, which will include new talents, buildings, mechanics and a different ending.
Names??
A feature that has been requested a few times, and that I myself wanted to see, was the ability to have gnorps with names. So I implemented that feature.
The Naming Ceremony is held at a new building in Epilogue -- The Party Pad. At the Party Pad, you will be able to host three different parties for the gnorps, each granting a different benefit.
One of the open questions with Epilogue was whether or not to remove the shrine. All other buildings are staying, but with the shrine I felt it would be interesting to find a replacement. In the base game, the purpose of the shrine is to unlock the accords through embedding a sword into the rock, but since Epilogue is a sort of continuation of the base game, it didn't sit right with me that you would embed the sword twice.
So, the shrine became the Party Pad, and now a few lucky gnorps will be blessed with a name, including, but not limited to Tako, Gnorbius, and Beast. They even move into housing stacks.
The Naming Ceremony provides a bonus in the form of free housing, but if you are unhappy with that you can choose to host one of the other two parties, like this one.
The current design is that you'll be able to construct the Party Pad quite early, so that you can reap its benefits throughout most of the expansion.
As a small little aside, one of the more fun parts about game development is when you hit upon an idea that is too juicy to ignore. You are compelled to put it to life; there is no choice in the matter. That's how the Party Pad came to be.
I love the Party Pad.
A renewal
I mentioned earlier how only the shrine is being replaced when playing Epilogue, but YX1-AB is also subject to removal in some form: Renewal. In Epilogue, the building is changed to be the Missile Assembly, and it allows you to assign gnorps to assemble missiles for you. Don't worry, the button gnorp is still buttoning.
With gnorps being required to increase the throughput of the Missile Assembly, it's important that the missiles have a compelling niche. I'm currently working on upgrades and talents for the missiles, and I think they'll be quite a fun tool to apply.
The end is coming
Work on Epilogue has been going on for quite a bit now, but I am very pleased with how it is turning out. I think it will be worth the effort. So now I'll have to go back in my cave to continue.
Tower Wizard
I also want to give a shoutout to Barribob and his new incremental game, Tower Wizard. It was released just a week ago, and is finding enormous success — and it's well deserved. One of his inspirations were (the) Gnorp Apologue which is REALLY COOL, and together we made a bundle.
I really warmly recommend Tower Wizard, and his other (free) game Magic Archery.
Welcome to another issue of (the) New Gnorp Times, voted superior to The New York Times in a recently conducted survey (Sample size: 1; Margin of error: ±0%). The topic of today is The Ring, a new mechanic designed for the Epilogue Expansion. The Epilogue is an upcoming free expa
Welcome to another issue of (the) New Gnorp Times, voted superior to The New York Times in a recently conducted survey (Sample size: 1; Margin of error: ±0%). The topic of today is The Ring, a new mechanic designed for the Epilogue Expansion.
The Epilogue is an upcoming free expansion to (the) Gnorp Apologue in the form a new mode, which will include new talents, mechanics and a different ending.
The Ring
If you look above while playing the Epilogue, you will find a number of particles that compose a ring around the planet of the gnorps.
The ring is not precious. It is the worst. Not only does the ring reduce the amount of damage and collection the gnorps do through its oppressive presence—it is also hoarding talent points.
Besides further beating up the rock, in Epilogue you also want to reduce the ring integrity in order to get those talent points, increase collection and damage, and ultimately win.
It was the rock all along
The ring is the rock's fault. In the base game, during compression events and prestiging, the rock reclaims shards that were ouput. In Epilogue, things are slightly different.
When a compression event occurs in Epilogue, shards fly up and coalesce into more ring particles. This further reduces damage and collection, and makes it harder to collect talent points from the ring. This downside of compression is intended to allow for a little more strategy about when to compress, but is not meant to be very punishing.
How do you destroy the ring? I'm not telling.
Other news
Before we get into the next section, which will be about optimizing the performance of the ring, I want to quickly mention a couple of things:
I am not 100% happy with the beta patch. More work has to be done, but Epilogue feels right to prioritize right now.
I've shifted the road map a bit. Gnorps in Space will be the next focus after Epilogue, but I will talk more about that in the future.
More hats are coming!
I got pneumonia from a bacteria called Mycoplasma Pneumoniae, which I thought funny because Mycoplasma is the origin of my handle, Myco. Being knocked out for several weeks was less funny.
I did an interview about speedrunning (the) Gnorp Apologue with the guys at Board Boosters. You can watch it below.
There's a couple of very exciting things we can do to optimize the performance of the ring. If you're interested in that, keep reading. If not, escape.
The roids
First of all, the ring particles, or roids as I call them (they are not asteroids or meteors as one might assume (in Gnorps in Space there will be asteroids (no meteors because meteors are defined as objects from outer space that enter the atmosphere of a planet and Gnorps in Space takes place in space (shooting stars are meteors (an asteroid that briefly became a shooting star killed the dinosaurs (except for the ones that evolved to become birds (birds are avian dinosaurs (pterodactyls were not dinosaurs)))))))), fly above the planet of the gnorps at the same velocity. This simple fact allows us to make some cool optimizations. More on this later.
Let's establish a few points to walk through things:
The ring has a fake orbit, the roids move at a fixed velocity on the X-axis
When going beyond the maximum X-position, the roid wraps around to the minimum X-position by subtracting the width of the ring
For this, we define the Width=50, Minimum X-position=0, Maximum X-position=50
We define the speed as 1, meaning every update the roids move 1 position to the right
The roids do not collide with themselves
So, assuming a list of four roids with the following X-positions: [25, 10, 50, 17] We update the ring, and end up with this: [25+1, 10+1, 50+1, 17+1] -> [26, 11, 51, 18] -> [26, 11, 0, 18] The third roid in the list has wrapped around because it had an X-position greater than the maximum X-position.
This is essentially the first optimization we make, as we do not delete roids outside the maximum X-position and insert new ones--we recycle them. You can follow individual roids by color in the gif below.
And here is the pseudo-code for the behavior of the roids. const ORBITAL_VELOCITY=1; const MAXIMUM_X=50; const RING_WIDTH=50; function update_roids(list_of_roids) { for roid in list_of_roids { roid.position.x += ORBITAL_VELOCITY; if roid.position.x > MAXIMUM_X { //We found a roid that needs to wrap around roid.position.x -= RING_WIDTH; } }; }
Collision
Next, we have to look at collision. The roids will be able to collide with certain game objects, so we need to allow for that. Now, normally we might define the roids as circles with a radius—but objects that orbit around a planet tend to move at terrifying speeds, and therefore we do not need the precision of collision between circles. That is a benefit as collision detection of circles can be fairly computationally expensive. So roids are circles, but for collision they are considered squares—and so are the objects that they collide with.
Below we can see the function we use to check for collision. Within it, we can see another function, intersects(house, roid), which is a simple function that compares two rectangles against each other. An intersection means collision. As mentioned before, roids are converted into rectangles within the function in order to reduce the computational cost of collision detection. function check_collision(list_of_roids, house) { for roid in list_of_roids { if intersects(house, roid) == true { //We found a collision! } } }
To illustrate the work being done, the gif above pauses on every update and highlights the roids we are checking against. The object we collide against is a house with two gnorps inside. The collision detection function simply goes through the list of roids to find if there is any intersection.
Checking for intersections can take fair bit of time, as there might be many objects to check against. For example, if we have 100 roids and 10 objects to check against we will have to do 1000 (100 x 10) intersection checks every update.
Height
The roids fly above the planet, which means we have knowledge about where they won't be. When the roids are generated, they are given a Y-position that is always under 100 as they are in the sky. (Lower values here mean the roids are higher up in the sky.) We also know that roids have a maximum radius of 10. Armed with those two pieces of information, we can do this: function check_collision(list_of_roids, house) { if house.y > MAX_RING_Y + 10 { //No collision can happen, so we exit this function immediately return } for roid in list_of_roids { if intersects(house, roid) == true { //We found a collision! } } }
Now there are far fewer comparisons being made, and that's a job well done. Thanks for reading.
Benchmarking
Just kidding; life isn't that easy.
At this point in our journey, it's important to establish a benchmark. We need to know the speed at which the computational work is being done in order to take the potential out of "potential improvements". The more you run a benchmark, the more accurate it is. Any good benchmark is also reflective of the real-world conditions: When players run the game.
We set up the benchmark with the following conditions:
Create a list of 1500 randomly positioned roids
Create a list of 10 randomly positioned houses (the objects the roids collide with)
Run the movement and collision functions 10000 times
Repeat the the steps above 99 times
This should give us a fairly accurate benchmark, and we will collect three data points: The time it takes to update the movement of our roids and houses, the time it takes to check for collisions, and the number of collisions. The reason we collect the number of collisions is that we need to make sure that our changes do not alter the results of the collision detection itself—any meaningful change in the number would indicate that something got messed up.
So for every benchmark we run 1 million updates, which is equivalent to running the game for 4.6 hours.
And with that, we arrive at these numbers, our baseline:
Benchmark: 10k updates, 100 runs. Numbers are the average of 100 runs.
Movement
Collision detection
# of Collisions
Overall time
Overall % reduction
Baseline
10ms
229ms
22833
239 ms
---
We observe that 95% of the time is spent on collision detection. Reducing that number should then be our focus.
Left and right edges
Optimization is all about not doing things. For example one method of optimization is asking an LLM to write (the) New Gnorp Times for me, but that would change the output from "hopefully good" to "definitely artificial", so it would be a bad optimization. We need to find a way to skip work while not changing the outcome.
Let's look a picture I made in paint.
In the picture several roids can be found, and their left edges have been marked with either red or green based on the following comparison: Is the right edge of the house greater than the left edge of the roids? If the comparison is true, there might be a collision: We'll have to do further checking to find out. But if the comparison is false, then a collision is impossible, because a rectangle where the right edge is less than the left edge of another rectangle can never intersect.
The key observation we make here is that if we were to check the roids for collisions according to the order of their left edges, we can skip all remaining collision checking once we hit upon the first roid where the right edge of the house is less than the left edge of the roid.
So, every update, after updating the positions of all the roids we also sort them by their left edges. Reiterating upon the above, that allows us to go through the list of roids in the order shown on the picture, and once we find a roid where house.right() < roid.left(), we skip all the remaining roids. function update_roids(list_of_roids) { for roid in list_of_roids { roid.position.x += ORBITAL_VELOCITY; if roid.position.x > MAXIMUM_X { //We found a roid that needs to wrap around roid.position.x -= RING_WIDTH; } }; //We sort the list according to the left edge of the roids list_of_roids.sort_by(|roid1, roid2| roid1.left() } function check_collision(list_of_roids, house) { if house.y > MAX_RING_Y + 10 { //No collision can happen, so we exit this function immediately return } for roid in list_of_roids { if house.right() < roid.left() { //No collision can happen at this point onwards, // thanks to our list of roids sorted by their left edges, // so we exit this function immediately return } if intersects(house, roid) == true { //We found a collision! } } }
Here's how it looks in our little simulation:
And here is the result of the benchmark: Benchmark: 10k updates, 100 runs. Numbers are the average of 100 runs.
Movement
Collision detection
# of Collisions
Overall time
Overall % reduction
Baseline
10ms
229ms
22833
239 ms
---
Sorted
89ms
57ms
23067
146ms
39%
The time it took to check for collisions was significantly reduced, but the time it took for the roids to move was increased by 9x! The increase is due to the time it takes to sort the list, because we need to do that every update as roids might have wrapped around. Overall the change was an improvement, but still—can we reduce the amount of time it takes to maintain the sorted order?
Circular buffer
Sorting lists are expensive. This has to do with moving things around in memory. In our instance, if we have to sort a list like this in ascending order: [20, 25, 30, 0] -> [0, 20, 25, 30] — The 4th element in the list moves to the 1st position and 3 elements have to shift to the right. The more elements we have to shift, the longer it takes. We have a lot of roids, so it takes quite a bit of time.
Since all the roids have the same speed, we know then that the order of the list never changes except when they wrap around, and when that happens the back of the list simply moves to the front of the list.
This allows us to use a circular buffer to maintain our sort. What that means is fairly simple. It's a list that can rotate its "head", the start of the list. Instead of the actual list changing, it is the starting point of the list that does!
Consider the list of roids here as rotation is applied. The index indicates the order of the list, and we start at 0. Roids: [20, 25, 30, 0] -> [20, 25, 30, 0] Index: [0, 1, 2, 3] -> [1, 2, 3 , 0] The list remains the same, but the starting point changes.
So, when we go through our list, we start at index 0 and that yields the X-positon 0. That means our sort is maintained!
Upon creation of the roids, they are sorted according to their left edges as usual—but only then! After that, the rotation takes care of the rest. function update_roids(list_of_roids) { rotations=0; for roid in list_of_roids { roid.position.x += ORBITAL_VELOCITY;
//We also need to change the wrap-around behavior to make it // so that roids wrap around based on how we want the list to be sorted // (by left edges) if roid.left() > MAXIMUM_X { //We found a roid that needs to wrap around roid.position.x -= WIDTH;
//We add to the number of rotations we need to do // in order to maintain the sort rotations += 1; } }; //The list has its "head" rotated to the right in order to // maintain the sort list_of_roids.rotate_right(rotations); }
We implement and benchmark, and our results are: Benchmark: 10k updates, 100 runs. Numbers are the average of 100 runs.
Movement
Collision detection
# of Collisions
Overall time
Overall % reduction
Baseline
10ms
229ms
22833
239 ms
---
Sorted
89ms
57ms
23067
146ms
39%
Circular buffer
9ms
79ms
22969
88 ms
63%
An enormous improvement compared to sorting every update! We took a hit to the collision detection speed, and that has to do with circular buffers being slower to iterate through.
Positional heuristic
Now, we have another key detail about the belt that we can use to skip even more checking, the coup de grâce of our optimization work: A positional heuristic.
The ring has an even distribution of roids along the X-axis, that is to say that you can expect to find a similar number of asteroids comparing any given bound with the same width. The even distribution is due to the way asteroids are generated: They are given a random position between the minium X-position and the maximum X-position of the ring. When you do that enough times, you get a fairly even spread of roids along the X-axis. That allows us to make an assumption about where to start checking within the belt.
Our goal will be to turn an X-position into an index, a number we use to access the list. In order to do that we take the X-position and divide it by the width of the ring. That gives us a number that represents the ratio of progress, which we then multiply with the number of roids in our list. This gives us a roid that we expect to have a similar X-position as the house we may collide with.
There is no guarantee we were right, however! We need to do some additional work to make sure that we won't miss any collisions, as any misses would invalidate the optimization. In order to that, we go down the list in descending order to find a roid that we cannot possibly collide against. Remember, we sort by the left edges of the roids, so we need to compare with the maximum possible radius of a roid: roid.x + 10 < house.x would mean we have found the point where we will never find roids that we can collide with.
Let's see how it works within the simulation.
Pure heuristic beauty. We can see that very few checks are made, and the benchmark should then show significant improvements.
Benchmark: 10k updates, 100 runs. Numbers are the average of 100 runs.
Movement
Collision detection
# of Collisions
Overall time
Overall % reduction
Baseline
10ms
229ms
22833
239 ms
---
Sorted
89ms
57ms
23067
146ms
39%
Circular buffer
9ms
79ms
22969
88 ms
63%
Positional heuristic
9ms
10ms
23120
19ms
92%
And indeed it does. We go from 79 milliseconds spent checking for collisions to 10 milliseconds, a rather significant reduction! Optimization! Our positional heuristic is extremely effective at guessing thanks to the properties of the ring. function assumption(x, number_of_roids) -] Integer { //We take x and divide it by the ring width // which gives us the ratio of progress //We then multiply by the number of roids, // which gives us the index of roids with hopefully similar progress return round_down((x / RING_WIDTH) * number_of_roids) } function check_collision(list_of_roids, house) { if house.y > MAX_RING_Y + 10 { //No collision can happen, so we exit this function immediately return } //We make our educated guess index=assumption(house.x); //To prevent missing any collisions, // we go back down the list to find a roid we can't collide with while list_of_roids[index].x + 10 > house.x { index -= 1 } //We only check roids from the found starting point for roid in list_of_roids[index..] { if house.right() < roid.left() { //No collision can happen at this point onwards, // thanks to our list of roids sorted by their left edges, // so we exit this function immediately return } if intersects(house, roid) == true { //We found a collision! } } }
Can we do more?
The answer to that question is always yes. But is it worth it? No. Our optimizations are more than enough for what we need, so our time is better spent elsewhere. We did great!
Bonus optimization
Our view into the game, whatever you can see in the game window, is just a giant rectangle. It would be wasteful to draw things outside the view into the game, so in order to to figure out what is within the view we also apply collision detection: The rectangle representing the screen is checked against the list of roids, and if an intersection occurs we draw the roid in question. This allows us to apply all the optimization work we did in order to also optimize the speed at which we find which roids to draw.
Write straightforward code
I made this because I thought it would be fun to show the work that might go into optimizing a game. Normally naïve implementations of systems are fine most of the time, because computers are extremely fast, especially when using a low-level programming language like Rust (which Gnorp is written in).
What matters the most is if the code is an accurate description of the steps required to accomplish your desired outcome, written in such a way that it can easily accommodate any future changes to both desired outcome and desired performance. In other words: Write straightforward code.
While working on a different project a while back, I came across this Sort, sweep, and prune: Collision detection algorithms post about collision detection. A few of the things I apply to optimize the ring I learnt from that post. I drew inspiration of visualizing the collision detection from the post as well.
The end
I'm quite excited to continue the work on Epilogue, and I hope you are looking forward to playing it. Thanks for reading (the) New Gnorp Times #21.
There's a new bundle in town and it is called Gnome Apologue because it consists of yours truly's game and Gnomes —a tower defense game where you endeavor to murder hundreds of goblins as, you guessed it, gnomes! I've been privileged enough to be part of the playtesting for the g
There's a new bundle in town and it is called Gnome Apologue because it consists of yours truly's game and Gnomes—a tower defense game where you endeavor to murder hundreds of goblins as, you guessed it, gnomes!
I've been privileged enough to be part of the playtesting for the game, and I think it's a really interesting game with great music and great atmosphere.
The developers, Tommy and Patrick, have done really great work, and if a turn-based tower defense game with well-designed mechanics sounds interesting to you, I hope you will check their game out.
Another issue of the LLM-free, Gnorpitzer prize winning publication (the) New Gnorp Times has arrived. Today we'll talk about: — Another hat batch — A new beta version — Talents in the Epilogue Update Hat Batch #2 More hats have been implemented! You'll find them both in the live
Another issue of the LLM-free, Gnorpitzer prize winning publication (the) New Gnorp Times has arrived.
Today we'll talk about: — Another hat batch — A new beta version — Talents in the Epilogue Update
Hat Batch #2
More hats have been implemented! You'll find them both in the live version and the beta version. A big thank you to the hat creators, and I hope they will be pleased to finally see them in-game!
Zygnorps become united with machine — the drone gnorp. This was made by Matsan, and is acquired by the achievement "Y2K". I gave the Drone Gnorps some extra love with an animated booster effect as a replacement for the regular Zygnorps' little tadpole tail.
Directors get some glasses. Nerds. This was made by Popgoes, and is acquired by the achievement "MY EYES".
Wildly unsafe, but it's Bring Your Gnorp to Gnorp Day for the gunners. This was made by Caty, MetallicSaladFork, Pumpkinburger, and Sting — they all had the same wonderful idea. Acquired by the achievement "Uh, is this allowed?"
Only the hardest working, fastest archer is deserving of a hat like this. It was made by Goat, and is acquired by the achievement "Getting somewhere".
A beautiful flower wreath for your runners. This hat was made by Pumpkinburger, and is acquired by the achievement "First compression".
Balance and Rework Beta
Thanks to everyone who has tried the balance and rework beta, and thanks for all the great feedback!
The talent changes have been received well, particularly Supershatter and Sacred Mountain, and I do agree that it's quite nice to not have to click on drones in order to brutally, viciously murder them. A lot of you have mentioned that you especially enjoy the drone rework, and I am very pleased about that. The mountaineers also got significant changes, and it's been great to see them finding additional use.
We're not quite done yet, though, as there are many elements I would like to improve before the beta becomes a proper update.
I've just uploaded a new beta version, and you'll find the changes here. You can access the beta the following way: Right-click the game in your Steam Library -> Properties -> Betas, and then write 4gnorplovers in the private beta field.
Here are some of the highlights of this round of changes: — Clear button for the talents — The Supershatter rework has been reworked, and it is now called Minishatter — Baby drones now have a cooler way to attack — Slam 2: Re-Rockening (neé Combo Power) now allows for possibly infinite combos — Melty Bullets has a synergy of sorts with Future to the Back — Ice immunity is visible as a status
A big reason for these changes are to improve the foundation of the base game to in order to make the Epilogue a better experience. So let's talk about talents in the Epilogue Update.
The Epilogue Update will have a new mode, Epilogue, that will feature additional gameplay mechanics, like sending gnorps (almost) to space, and a new ending.
Talents in Epilogue
(the) Gnorp Apologue is a bit like a puzzle. The problem of the puzzle is always "How to get more", but the solution will depend on your progression level — your talent points. With only a few talent points available, many people find Popcorn and Superhot to be an excellent solution, but that specific talent combination can only take you so far without adaptation. Along the way, as the player discovers more interactions and gets a more intimate familiarity with the units and mechanics, more solutions are discovered.
I'm very satisfied with the idea of the design. I think (the) Gnorp Apologue would be a poor game if the player was not encouraged to seek out new solutions for progression or their own curiosity.
Now, the tree itself initially started as a tree-like structure — the sort you'd find in WoW or Borderlands. Then I realized a tree-structure would feel too restrictive. My goal was to have the player feel like they are carving a path through a forest. The tree-structure goes against that goal, as then the player merely picks a path through the forest to walk.
Concepting the talent tree we have today.
The talents themselves were meant to allow for exploration of the game, and with an open non-tree structure it was important that the talents adhered to the following rules: — Not openly synergetic with other talents — Opens up new opportunities for exploration — Have a downside, apparent or otherwise, that could ideally be worked around
If you have a very good memory or have recently played the game, you might be asking "What the fuck, Myco. There are many woeful exceptions to these". Yes, indeed. Some talents exist to feel good—to shelter the player from the chaos of permutation. Complicated talents might not have a downside, besides the cognitive load of reading the tooltip.
Some talents could use a bit of a redesign. That's what the ongoing beta is for, and I feel confident that it's moving things in the right direction. But let's not have perfect be the enemy of perfectly adequate.
Now, assuming a delightful talent tree of interesting choices—can we extend that? Should we? I think most of you would agree that more talents would be cool. I am also of this opinion, so I decided that—yes, we should—the Epilogue Update will have more talents.
The question then is, how? A few options are apparent: — A clean wipe of the existing talents, replacing them with new ones when playing the Epilogue — New talents are inserted into the tree, resulting in a total 6 or 7 talents per milestone section, up from 5 — The talent tree is extended with new milestones and milestone sections
Ironically, the clean slate option might be the easiest. It would allow for more creative freedom allowing for all sorts of possibilities, instead of trying to come up with new talents that would cleanly fit with all the other ones. Unfortunately, there is a significant downside with the clean slate: You, the player, would not be able to leverage your existing knowledge going into the Epilogue — and that's a deal breaker.
The second option, with new talents being inserted into the tree, could be neat. It would be difficult to come up with talents that fit with the existing ones, but certainly not impossible. The biggest problem would be cognitive overload, where there are simply far too many options to consider — and that's a deal breaker.
The third option, an extended talent tree with new milestones and milestone sections, is a bad option for the following reason: You, the player, would be retreading too much old ground — and, because the Epilogue is supposed to be fresh, that's a deal breaker.
So all the readily apparent options are terrible, but now we can move on with an understanding of what the unknown, good option must do: — Avoid cognitive overload — Allow the player to leverage previous knowledge — Fresh
After tossing ideas like a salad in my brain, I came up with a solution that I am happy with: Talents+. That's a terrible name, but (the) Gnorp Apologue might not the best name either, considering how many "gnorp analogues" I've seen online.
Talents+ is an extension of the talents in the game, where all talents have two slots for points. You'll have to spend two points to get the the Talent+ effect. A talent might look like these:
HIKING BUDDIES — Mountaineers bring a friend when they depart the Cocoa Cafe BRING THE WHOLE GANG Unwilling participants galore! — 4 hiking buddies now join the mountaineer
Doubling down on the talent avoids cognitive overload and gives a significant power increase to the talent.
BULLET BREATH — With Fire Breath acquired: Slammers will spray gatler bullets instead of breathing fire on their 7th combo BABY BREATH "Where did you get these? Why did you eat them? Why are you the way you are?" — Instead of bullets, shoot baby slammers that.. despawn when completing their combo
For this one the talent is replaced by something different — it works similarly and slammers breathing babies should be a delightful viewing experience. Since it'll cost 2 talent points and is a replacement, it has to be powerful.
POPCORN — Fire damage has a range of 7-10, up from 0-3 SOME GNORPS WANT TO SEE THE PILE BURN Actually, all gnorps if this proves effective. — Gnorps that shoot fire arrows will now aim for the pile. Burning the pile shifts shards forward.
For this one you keep the previous talent and get an entirely new one!
This solution is exciting, and ultimately the superior one as it sidesteps the issues with leveraging knowledge, cognitive overload, and freshness. The end result will ideally achieve the following results: — Unhinged and interesting — The above
The end
— The work to increase the frequency at which I release (the) New Gnorp Times continues. — Currently splitting my time on the Epilogue Update and the currently-beta-update. — Doing well! I hope you are too.
It's time for another edition of well-respected publication (the) New Gnorp Times. Today is the start of the Idler Fest on Steam, and I thought it cool to also provide a couple of new things to mark the event. Hats (and a bundle of balloons) The first batch of hats are now availa
It's time for another edition of well-respected publication (the) New Gnorp Times.
Today is the start of the Idler Fest on Steam, and I thought it cool to also provide a couple of new things to mark the event.
Hats (and a bundle of balloons)
The first batch of hats are now available! It's been a long time coming, but the first ones are finally here! There will be over 20 hats implemented into the game, but we're starting with six of them. These first six hats are amazing and they all look great in-game. They're unlocked by completing certain achievements — for example the SPEED achievement unlocks the snail-gnorp (snorp?), made by Joy. Fitting!
Thank you to submitters Joy, Sleepyhead, Doshige, Zymosan99, and Popgoes! More hats coming soon.
Beta update
A new beta update has just been made available. You can access it by right-clicking the game in your Steam library -> Properties -> Betas, and then write 4gnorplovers in the private beta field.
Please note that the localization for the beta has not been updated to match the changes.
The goal of this update is to meaningfully improve units and talents to make your choices a bit more interesting and to enable new and cool builds. With the Epilogue Update on the horizon, ensuring a solid base-experience to further build upon is very important.
Slammers, Mountaineers and Drones have all received updates. Here are some of the highlights: — Drones now consume shards to spawn baby drones — Mountaineers can now, with the help of a talent, designate an area of the pile sacred — Slammers have can now deal significantly more damage with the help of the redesigned talent Remembrance of the King — Reclamation Nullification has been replaced with a new, more interactive upgrade called Don't touch my pile! — A new talent called Melty Bullets. How does it work? Really well!
The changes touch on many parts of the game, and I'd love to hear your feedback if you end up trying the beta update. The best place to provide feedback is in the Gnorp Discord, in the #beta channel. However, I will also try to check for feedback in the Steam forums now and then.
Below you'll find a comprehensive list of the changes.
Outro
(the) New Gnorp Times, well-respected publication, will now be released roughly every 14 days until the release of the Epilogue Update/Mini-expansion. The work on the Epilogue is going well, and I might tell you more in two weeks. Thank you for your patience, and I'll talk to you soon.
<3
And here's the beta notes
Reclamation Nullification has been replaced by something better. The something better is intended to allow for a more interesting way to work around reclamation. Don't touch my pile! The rock might be fighting back, but the mountaineers (and drones) resist. — Prevents reclamation where mountaineers (and drones) are planning to go — When told to rest, Mountaineers now rest on the pile, as long as there is space and the pile is worthy of climbing
A replacement to clicking on drones Roboticide Would be a shame if anything happened to one of these drones. — Murder a random drone
Drones have been modified to no longer eat shards for no gain. Instead they spend some time eating, then spawn a baby drone. Drone Get yourself a drone, but be careful — they're hungry! Drones are auxiliary units that need some help to succeed. — Drones pick up a fixed amount of shards, based on the current tier — Drones consume 70% of their capacity over 3.5 seconds. If Drones finish eating, they spawn a Baby Drone — Baby drones deal damage equal to the consumed amount, with a range of 7-10, then die — Drones die during compression events
Higher the pile has been replaced by: SACRED MOUNTAIN The gnorps bless the pile, for it represents the fruit of their labor. — Mountaineers now consider the rightmost area of the pile sacred, and attempt to build a large mountain of shards there — Mountaineers do not dig the sacred area
This new talent replaces drone targeting. It gives bullets an interesting effect. MELTY BULLETS Perpetuate that fire with some melty bullets! How does it work? Really well! Pyromaniacs pick this. — Bullets that hit the rock while it is on fire deal their damage as fire damage
Descent of the king has been redesigned to empower the king when he is present and to also empower slammers when he is not. DESCENT OF THE KING -> REMEMBRANCE OF THE KING When will He return? — The King of the Pile will always dig an additional 2ø of the current tier — Slammers gain a bonus to their damage when the king is gone — Bonus starts as +10, increasing by +2ø every minute — To facilitate The Return, slammers halve their range when Remembrance is active
The flow has been modified to give slammers a bit of extra damage and now they only fly farther when they actually combo THE FLOW Allow slammers to unlock their latent power, displaying the power of dumb determination. — After having meditated, slammers deal +3ø damage, plus an additional +3ø damage for every slam in their current combo — Slammers fly much, much farther away after a combo
Supershatter has been modified and moved in the talent tree! Old supershatter took away the ice multiplier, but this version does not SUPERSHATTER Let's put this rock on ice. — Ice arrows immediately freeze the rock — When ice shatters, an additional 60 shards, doubling with every tier, is dealt. This additional damage has a range of 0-6 or 4-10, picked randomly with every occurrence. — Ice arrows striking the rock when frozen deal 4x damage, up from 2x — Frozen duration increased to 20 seconds, up from 4 — Shattering the ice with fire effects allows the rock to be frozen again immediately
Combo power has been renamed, and now has an additional benefit when combined with baby drones COMBO POWER -> SLAM 2: RE-ROCKENING Starring: The slammers, and the baby drones in a guest appearance. — Slammers gain an additional 1% chance to combo every time they do a preparation jump — When triggering Combo Power, slammers cause baby drones that are attached to the rock to explode for 2x their total damage
Drone capacity is adapted to fit the new drone behavior DRONE CAPACITY Drones get more capacity and they spawn more baby drones, but at a cost. — 2x capacity to drones — Drones eat twice as much and now spawn 2 baby drones — Descent speed reduced by 50%
A redesign to fit with the new drones, and a name to highlight potential synergies with zygnorps and baby drones. DON'T EAT THAT -> BABIES TOGETHER STRONG United by the power of shared suffering! — When drones spawn a baby drone, zygnorps gain energy equivalent to the consumed amount — Zygnorps never collect from the left side of the pile
This used to be a talent. Now it's an upgrade that costs gnorps. New upgrade: Drone Targeting By default, drones are directed to target the highest points on the pile. With some additional gnorp-power, additional targeting modes can be unlocked. — Drones unlock the FAR and NEAR targeting modes
Redesigned to fit with new drones Inspiration: Drone-Bomber Drones enter efficiency mode, reducing their overall movement speed and consumption. — Descent rate is halved — Consumption reduced by 30%, without affecting baby drone damage
Redesigned to fit with new drones Inspiration: Drone-Rocket Drones enter burn mode, increasing their overall movement speed. — Descent rate is doubled — Acceleration is doubled
King of the pile has been modified to give the king some additional power and now also affects his mobility. King of the Pile A zybellium crown with powerful effects is granted to a single mountaineer: The King of the Pile. — The King digs 10x faster — The King digs twice as much — The King has significantly increased mobility — The King will not rest
Acid has been modified slightly to avoid instances of it being doubly good for both damage and compression. Acid Puke flowers create Spewers. Spewers explode on the rock, leaving Acid. While acid is present on the rock, it has the following effects: — 1.5x increase to all damage — The minimum range of damage is reduced by 3, ex: 7-10 -> 4-10
Rest in piece: Adaptive Learning Rest in piece: Terathrusters Rest in piece: DRONE.TARGET = FAR |DRONE:TARGET = CLOSE
Hello, friends. It's been a little over one year since the release of (the) Gnorp Apologue. 2024 I hope 2024 has been a good year for you — that you have made progress in life, whatever that might mean for you. For me, 2024 was a year of relative tumult and honestly personal fail
Hello, friends.
It's been a little over one year since the release of (the) Gnorp Apologue.
2024
I hope 2024 has been a good year for you — that you have made progress in life, whatever that might mean for you. For me, 2024 was a year of relative tumult and honestly personal failure: My primary goal at the end of last year, was to deliver lots more Gnorp. We're now at the end of this year, and the goal remains the same.
The headlines of 2025:
(the) New Gnorp Times (what you are currently reading) will be published at a regular cadence
The Epilogue Update will be released
A new game announcement and, ambitiously, release
Idle Colony
I would love to highlight a recently released game, a game which had (the) Gnorp Apologue as one of its primary inspirations. Idle Colony is, like (the) Gnorp Apologue an explosively visual incremental game. If the game looks interesting to you, I hope that you will support the developer. Together we have made a bundle featuring the two games at a discount.
It's an incredibly cool feeling to have the gnorps be a small part of the journey of the development of Idle Colony.
What started as a numerically harder game mode, has now morphed into something more distinct. I want to share with you a little teaser which features a new core gameplay feature of the Epilogue Mode — a different kind of firework.
I hope you'll enjoy the update when it releases, and I hope it will deliver on the idea of (the) Gnorp Apologue with a different flavor, and new mechanics to explore (and abuse).
And finally...
??v?
Look at all these bullies ganging up on a single gnorp, just to get a shard.
Happy New Year!
Take care of those you care about (a list which should ideally include yourself), and have a great 2025. Thank you for reading, and thank you for playing Gnorp. You're the best.
Hey guys. It's been, frankly, far too long. Developing (the) Gnorp Apologue continues to be a privilege, and today I'm going to share my current plans for the future. During the development of (the) Gnorp Apologue, game design solidified itself as my passion. I have too many idea
Hey guys. It's been, frankly, far too long.
Developing (the) Gnorp Apologue continues to be a privilege, and today I'm going to share my current plans for the future.
During the development of (the) Gnorp Apologue, game design solidified itself as my passion. I have too many ideas that I want to execute, but I want to get to as many as possible. My dream is to create gameplay-focused games with satisfying gameplay and a strong visual identity.
Here's what I've been working on, divided into three parts:
PART I: (the) Epilogue Update
I've talked in previous news updates about the development of a hard mode, and this is the evolution of that hard mode. I realized that I would not be happy with myself if I didn't take the opportunity to add some form of new content to the game with the addition of a new mode, and thus a new path presented itself: (the) Epilogue — a more challenging, hopefully not frustrating, version of the game that works as a continuation of the base-game, with the following highlights:
Two new gameplay features: Shard-spilling and the slightly unhinged Weaponized Housing
A new building
A new, perhaps alternate, ending
Updates to talents, replacing some, renewing others
Altered scenery and some music to fit the tone of the (the) Epilogue
Think of it as a tiny expansion in the form of a new mode, that will allow you to revisit (the) Gnorp Apologue with a fresh new perspective.
The new, perhaps alternate ending will lead us to two places: PART II & PART III.
Part II: [Untitled Project]
A project that I am very excited about, [Untitled Project] will be a new game that will deal with the aftermath of the ending of (the) Epilogue. The goal is to talk more, including a title reveal, about this project with the release of (the) Epilogue Update, provided I reach a point where I have something representative to show you. For now, here's a little teaser.
PART III: Gnorps in Space
The project that will take the gameplay and the gnorps to the stars, it is planned as an expansion to (the) Gnorp Apologue with entirely new gameplay, but may end up as a standalone game. It *also* deals with the aftermath of the ending of (the) Epilogue, but in a different way.
Space is vast, and so is the design-space for this project. I've worked on several gameplay ideas & prototypes, and I believe I am approaching something that fully encapsulates my goal for the project. The plan is still for Gnorps in Space to be a physics-based incremental game, but I am drawing influences beyond that as well. There are several considerations to make, but chief amongst them are 1. Executability and 2. Satisfying gameplay
I'd love to tell you more, but I'll leave it at this for now: I tend to think of the gnorps as a force of nature, and I want Gnorps in Space to adequately portray that force of nature.
Timeline & Ongoings
So this is my vision and plan. All three parts are playable, with Gnorps in Space the most in flux. Right now, the focus is on completing (the) Epilogue Update.
In terms of timeline, I don't want to overpromise. I know when I *want* to complete all of these projects, but development can be unpredictable. Additionally, I've been hamstrung, as some of you may already know, by the release of an app on the Play Store that bore striking visual & gameplay similarities to (the) Gnorp Apologue. If it had been a benign fan-game with differing gameplay, I probably wouldn't care — but it was monetized with ads and microtransactions. I've received a truckload of emails and messages about it, and it's currently a work in progress to resolve the situation. It's honestly been an tough time, and not to mention a huge distraction from what I actually want to be doing — working on the game(s).
So, I want to apologize for the past months of silence, and I want to thank everyone who has notified me about the game on the Play Store. I'm working on it. But more importantly I'm working on all these projects that I am so looking forward to seeing through, and I hope you are excited about them.
HATS!
I haven't forgotten about hats! I would love to have hats ready for (the) Epilogue Update, but there is one outstanding issue: Originally, I intended to add new achievements to the game that would allow you to unlock hats, but I am not certain if this approach is correct. The approach I am currently considering is to have hats be unlocked through a currency that you earn passively while playing the game. Once I arrive upon a solution, I'll be able to move forward with the full implementation. If you have any feedback on this, I would love to hear it.
Thank you again for all the wonderful hat submissions, and I am so looking forward to seeing the winners be represented in-game.
Outro
Summing up, I'm super excited to see all of these projects through. First off is the release of (the) Epilogue Update. Following that, [Untitled Project] production will proceed, along with smaller-scale updates to (the) Gnorp Apologue. Then, we set course for Gnorps in Space.
Finally, I'd love to give you more frequent updates (both news and updates to (the) Gnorp Apologue), so I am going to make that a priority.
My wife and I also got two cats: Beast Gnorp Bosemeow (right) and Jean-Claude Luc-Pierre I (left). They're high-quality cats, except on days when they jump onto the kitchen counter, which is every day.
Yesterday I uploaded a patch that changed the order of shop items. I got some feedback that this should be an option, so now it is! "Reverse shop" is now an option than can be enabled. Enable this to get back to the previous order.
Yesterday I uploaded a patch that changed the order of shop items. I got some feedback that this should be an option, so now it is!
"Reverse shop" is now an option than can be enabled. Enable this to get back to the previous order.
Localization has been well received! Thank you! This patch seeks to remedy a couple of text issues from the localization patch that, ironically, exists in the English version of the game. I have also thrown in a couple of quality-of-life changes. User interface fixes Shop items a
Localization has been well received! Thank you!
This patch seeks to remedy a couple of text issues from the localization patch that, ironically, exists in the English version of the game. I have also thrown in a couple of quality-of-life changes.
User interface fixes
Shop items are now listen in reverse order, thus preventing unintentional upgrade purchases
UI now (mostly) disappears during prestige
The logo should now be centered better during scene transitions
Fixed some text issues
Miscellaneous
Fixed an issue that could cause a diagonal line to appear during prestige transitions
Hello everyone! I hope you are having a great summer (or winter). It's been a while coming: (the) Gnorp Apologue has finally been localized! I've been working with a company called IndieArk to bring this to life, and I'm very happy with to see the game translated. Besides English
Hello everyone! I hope you are having a great summer (or winter).
It's been a while coming: (the) Gnorp Apologue has finally been localized!
I've been working with a company called IndieArk to bring this to life, and I'm very happy with to see the game translated. Besides English, the game is now available in the following languages:
Simplified Chinese
Japanese
French
German
Brazilian Portuguese
Spanish
The game will attempt to detect your Steam UI language (or your system language if running without Steam), and if it matches one of the supported languages, it will switch to that language. You may also manually select one of the available languages.
Fun-fact about the Simplified Chinese translation of the game: (the) Gnorp Apologue is translated to 糯米团子历代记, which roughly means "The Chronicles of Glutinous Rice Dumplings", or perhaps "The Mochi Chronicles". I think it's a great translation. If you haven't had glutinous rice dumplings or mochi, they're foods you absolutely ought to try!
Thanks to all who requested localization support, and thanks to IndieArk for the localization! Now that the game supports additional languages, I may implement more of them based on demand.
In other news— work continues on several gnorp projects (including hats, of course!), and I am very excited to share more with you soon.
Welcome back to Gnorp News! Today we're going to talk about the Saving Update, and the Wiki. First off, the game has reached 200,000 copies sold! The success of the game was something I was wholly unprepared for, and it has taken time to adjust this new reality. My plans for the
Welcome back to Gnorp News! Today we're going to talk about the Saving Update, and the Wiki.
First off, the game has reached 200,000 copies sold! The success of the game was something I was wholly unprepared for, and it has taken time to adjust this new reality. My plans for the future have been upended (in a good way), and I am now working on three Gnorp-related projects: Gnorps in Space, a secret project, and most importantly: the base game.
Today I released a new update to the game, which is a foundational update that includes improvements to saving and adds support for cloud saving. Here are the patch notes:
Added cloud saving
Gnorp saves are now saved in a new location! Your old saves will still be loaded, but new saves will be saved in the new location. This prevents a permissions-related issue, where saving could silently fail. Your settings are also saved in the new location.
Gnorp save location: %APPDATA%\Gnorp\Apologue
Gnorp saves are now much smaller — a prerequisite for cloud saving, and a general improvement to loading and saving performance. This change comes at the cost of fidelity, however, as some information is no longer saved — projectiles and shards are among the game data that is not fully stored to disk.
A new option menu has been added, which I call "the outgoing menu"
Added several links to the outgoing menu, including links to the Wiki and the Discord.
Added a quit button, which you'll also find in the outgoing menu.
Added a new toggleable option: Save on quit. This option is enabled by default.
Added a new button in the Save menu: Recover save. If you have lost your save data, either by error, mistake, or regret, this button will, based on your Steam achievements, grant you a number of talent points representative of the progress made when the achievement was unlocked. Speedrun mode remains unlocked if you delete your save.
Laptop users rejoice: Horizontal scrolling with a trackpad has been enabled. Let me know if you encounter any issues with this.
Removed the requirement to have Steam running to launch the game
Next up is the Wiki. The wiki for the game started out as a simple Google Docs, maintained by Discord member and moderator Frogie, but it is now a real website: https://gnorp.wiki.gg. The wiki has been a community project from the start, and I was so pleased to see it go live. The wiki.gg staff was extremely helpful to the maintainers in setting up the wiki, and they even styled the wiki according to the user interface of the game itself.
A thousand thanks to everyone involved in the project, and I am looking forward to seeing the wiki grow with updates to the game and the eventual release of Gnorps in Space.
What's next?
Hat-preview update
Hard mode + Hats update
General improvements to UI, balance, etc
MacOS support, pending some issues with building universal binaries
Ben Reber of Chillquarium fame and I have teamed up for a little bundle called Gnorp & Chill. That means you can get Chillquarium for 15% off if you already own (the) Gnorp Apologue! Chillquarium is a wonderful little idle game, where you collect vast quantities of fish. It's
Ben Reber of Chillquarium fame and I have teamed up for a little bundle called Gnorp & Chill. That means you can get Chillquarium for 15% off if you already own (the) Gnorp Apologue!
Chillquarium is a wonderful little idle game, where you collect vast quantities of fish. It's a relaxing experience, and I am currently trying to get an aquarium full of golden fish, which I find very satisfying. I like to check in with my fish often, but you can also take it very chill and just enjoy watching your cute fishies. It's a game made with passion, and I think that's what indie games are all about,
Ben and I are both solo devs, and I believe our games offer complementary flavors of incremental gameplay. So, if you enjoy Gnorp — check out Chillquarium.
Today I want to share with you a very early look at the Gnorps in Space, and talk about some of my goals with the expansion. We're also going to be taking a look at more winners of the hat voting. You can read this here, or on the website . I recommend the website for some higher
Today I want to share with you a very early look at the Gnorps in Space, and talk about some of my goals with the expansion. We're also going to be taking a look at more winners of the hat voting.
You can read this here, or on the website. I recommend the website for some higher fidelity video viewing.
Gnorps In Space
Gnorps in Space, for those that don't know, will be a free expansion to the game. It will be a new experience within the game, where I aim to create something fresh and new through the leveraging of my knowledge and experience gained while designing the base game. It will still be an incremental game, and it will story wise be a continuation of where the base game left off — just set in space.
In space, things will get as wild as they did in the base game — perhaps even wilder — for Gnorps In Space will be designed with physics in mind. The above video should serve to give you an idea of the look and feel of the expansion, and I can't wait to show you what the gameplay will look like. Gnorps In Space will provide ample opportunities for exciting game design, thanks to physics, the blank canvas that is space, and the DNA of the base game.
On the engineering side of things, tackling physics will be a challenge in terms of performance. The soul of (the) Gnorp Apologue is visually representing an incremental game, and that will remain true for Gnorps In Space. Thinking about performance early is so critical, as the performance headroom I am working with will inform how Gnorps In Space is designed. To that end, I have been doing some stress testing of demanding scenes, and the physics library I am using, Rapier2D, has been really impressive. The below video is not a stress test, but it sure does look funny.
So, Gnorps In Space, summed up: — An incremental set in space, with the same DNA of the base game — A focus on physics, providing new game design opportunities — A new experience, with its own unique feel
It'll take a substantial amount of time for Gnorps In Space to reach maturity, but I hope this has given you an idea of what you can expect, and I hope you'll look forward to it.
Future Updates
The base game will of course also receive updates, including the previously talked about hats and hard mode. Some of the things that are on the way: — The Hard Mode, which will provide an added challenge with a new gameplay mechanic, and modified talents — Hats for gnorps, along with new achievements to unlock those hats — MacOS support — Native Linux support, along with specific improvements aimed towards Steam Deck users — Localization for certain languages — And general improvements, including cloud saving
Hat Results
There has been voting, and winners have been declared. These beautiful hats will be implemented with the coming hat update.
— Bundle of Balloons, submitted by @Doshige — Stereoscopic Gnorp, submitted by @Firmamentality — Drone Gnorp, submitted by @Matsan — Bring Your Gnorp To Gnorp Day, submitted by @caty , @MetallicSaladFork , @Pumpkinburger , @Sting — Mug Gnorp, submitted by @pecan — Rock Gnorp, submitted by @Matsan — Hooded, submitted by @popgoes — The Unfortunate One, submitted by @Matsan — Gnome Hat, submitted by @popgoes — Bunny Gnorp, submitted by @pecan — Anglerfish Gnorp, submitted by @Borgage, ruler of the 9 realms, @MetallicSaladFork — Fox Gnorp, submitted by @Doshige — Frog Gnorp, submitted by @Kero — Snail Gnorp, submitted by @Joy
Thank you so much for the amazing hat submissions!
Expect the next Gnorp News in about two weeks, and thank you for reading.
Hello everyone. It's Saturday, so that means it's time for Gnorp News. I'm still fatigued, and I think there is a valuable lesson to be learnt here: Don't crunch. But rest assured that I am really proud of my game, and that I am committed to being even prouder. You can read this
Hello everyone. It's Saturday, so that means it's time for Gnorp News. I'm still fatigued, and I think there is a valuable lesson to be learnt here: Don't crunch. But rest assured that I am really proud of my game, and that I am committed to being even prouder.
You can read this Gnorp News here, or on the website.
Hat Winners
First off, we had some winners of the previous rounds of hat voting. They will be implemented into the game as cosmetics that you'll unlock based on achievements. There is also more voting to be done, so if you are interested in that, check out the Discord!
Winners of Absurdist Gnorps
Dented Gnorp, submitted by @SleepyHead, who was inspired by @Ruthenium Chip Resistor's initial dented gnorp idea
Dorp, submitted by @MetallicSaladFork
Gnorp On Top Of Gnorp Gnorp, submitted by @semtimmy
Winners of Level-Up Gnorps
Drill Gnorp, submitted by anonymous
Robin Hood Gnorp, submitted by @Goat
Bandana Gnorp, submitted by @zymosan99
All-Seer Gnorp, submitted by @popgoes
Winners of Flower Hats
Lei Hat, submitted by @Pumpkinburger
Leaf Hat, submitted by @MetallicSaladFork
Look at these guys. Amazing.
Hard Mode Talk
With the coming hard mode, my goal is to get things really right. I want to avoid the idea that a higher difficulty means more tedium, as tends to be the case with higher difficulties in games. The idea with Hard Mode is to apply a few choice modifications to the game that will force you to adapt. Bloat is bad.
Let's talk a little bit about the Hard Mode specification.
Hard mode will feature "shard spilling", where shards will spill to the side when reaching certain heights relative to its neighbors. Here's how it looks, and pay attention to the columns to the left and right of the cursor:
This seemingly minor feature will force you to rethink how you approach your damage and collection, and if the shards spill too close to the rock, it will reclaim them — uh oh!
Hard mode will also change some talents, to better fit the mode. Big Pile is an example of this: Doubling the required height to reach compression events will make compression events, much, much harder than in Regular Mode, which necessitates some changes to the talent. Changed talents will be indicated in the talent tree, so that you know what's up.
Another change will be how reclamation works. In Regular Mode the speed at which passive reclamation occurs scales drastically with the height of the pile, but when you reach a compression event, that rate is reduced. This will change somewhat in Hard Mode, and the intent is to make compression something you attempt when you are ready to handle it.
When Hard Mode is released, the update will feature a balance update that will also affect Regular Mode and Speedrun Mode.
That's it for Gnorp News! Remember to join the Discord if you want to participate in the hat voting!
Welcome to the second Gnorp News of 2024! You can read this post here, or on the website . Hat Voting Commences In total, there have been over 200 hat submissions, and yesterday the voting started on the Discord . Winners will be determined and added to the game in a future updat
Welcome to the second Gnorp News of 2024! You can read this post here, or on the website.
Hat Voting Commences
In total, there have been over 200 hat submissions, and yesterday the voting started on the Discord. Winners will be determined and added to the game in a future update, forever immortalizing the creator of the hat in-game.
The first batch to be voted on is the Absurdist Gnorps, with the next vote happening tomorrow, on Sunday. Here are the Absurdist Gnorp Hats:
1. Upside Gnorp 2. Gnocket. Gnorp Rocket. A gnorp that would press the button on the YX1-AB. 3. Dented Gnorp 4. Dorp 5. Handstand Gnorp. Do Gnorps have hands? 6. Gnorp On Top A Gnorp Gnorp 7. Sideways Gnorp
These are all amazing in their own way. The current ranking is: 3. Dented Gnorp 4. Dorp 6. Gnorp On Top A Gnorp Gnorp.
If you would like to participate in the voting, you can join the Discord.
Here are just some of the over 200 hats that have been submitted and may be voted on:
If you have any cool hat ideas, you can still submit hats! Join the Discord and send them to me through Direct Message.
Art Showcase
The creativity of the community, gnorpmunity?, is amazing, and in that vein I would like to showcase some art.
Made by Loom (loom_haunteir on Discord)
Made by Jas (jasxy_ on Discord)
Made by Matsan (.matsan on Discord)
Made by Firmamentality (firmamentality on Discord)
Made by Mikenoob (mikenoob122 on Discord)
Things to look forward to
More hat voting
Hard Mode (more details coming next week, promise!)
Balance changes
The Hat Update
UI improvements
Cloud saving
Thank you for reading, and thank you so much to everyone who has contributed with hats and art!
Read this Gnorp News here, or on the website . 100k Yes, that is correct — (the) Gnorp Apologue has now sold over 100,000 copies on Steam. I never imagined that the game would reach this level of success. (the) Gnorp Apologue was to be a niche game, with weird gameplay, for a sma
Yes, that is correct — (the) Gnorp Apologue has now sold over 100,000 copies on Steam. I never imagined that the game would reach this level of success. (the) Gnorp Apologue was to be a niche game, with weird gameplay, for a small audience. I am again absolutely astounded that so many of you enjoy the game.
Thank you.
I am also fatigued. The success has been amazing, but trying to stay on top of messages, feedback, comments, issues, has been overwhelming. Do not worry though, for the gnorping continues. I will steadily improve my workflow in this post-release world, and continue to deliver improvements and, eventually, the expansion for the game, Gnorps in Space.
The Upcoming Hard Mode
The initial goal with hard mode was to adjust some numbers and call it a day. However, I feel that would not make the mode adequately interesting. That's why I have decided to introduce a new mechanic — another layer of complexity, that will force you to rethink how you approach the game. I am currently testing the mechanic, and it works like this: When the pile is tall enough, it will start to spill over. This will cause the pile to become flatter, and will affect how you choose to allocate your shards, gnorps and zybellium. The gnorps will have to work harder to reach compression events, and the range of your damage will become a more important factor.
In relation to hard mode, I have also been asked to add an infinite mode to the game — an option that would allow you restart the game with a bonus that accumulates with every victory. I am considering baking this request into hard mode, but instead of a bonus, you would get a penalty — so that every hard mode victory would make the game even harder. Like I said, this is still in consideration, and a bonus might be the better choice. What are your thoughts?
In the next Gnorp News, I will talk more about the "shard spilling" mechanic of hard mode.
Submit A Hat
I have received so many hats! There have been small hats, crazy hats, tame hats. Not all hats fit with the theme of the game, but I still want to showcase those hats, with the permission of the creators, somewhere permanent. I so appreciate the creativity of the community, and I am thankful to everyone who has devoted their time to work on some pixelated accessories for the gnorps.
Voting will occur sometime next week, on the Discord.
That's the end of Gnorp News. Thank you for reading, and thank you once again for playing (the) Gnorp Apologue.
Coming in hot with fixes. In other news, I am currently working on hats, balance, and the hard mode. I will have more to share on this Saturday. Minor changes The festive hats are gone! See you next year! Both the gatlegnorp and riflegnorp reload sounds will now be disabled if yo
Coming in hot with fixes. In other news, I am currently working on hats, balance, and the hard mode. I will have more to share on this Saturday.
Minor changes
The festive hats are gone! See you next year!
Both the gatlegnorp and riflegnorp reload sounds will now be disabled if you have gun sounds disabled
Bugs
Ice shattering is no longer audible everywhere
Fixed an inconsistency with the sprites of the talent stone
Text
Fixed acid tooltip error regarding range
Fixed some typos, and three instances where it would say "movementspeed" instead of "movement speed". In my defense, you are allowed to combine words in Norwegian.