[Game] Glitch [1.2.4]

User avatar
Wuzzy
Member
Posts: 4801
Joined: Mon Sep 24, 2012 15:01
GitHub: Wuzzy2
IRC: Wuzzy
In-game: Wuzzy
Contact:

The Making Of Glitch

by Wuzzy » Post

Also found at: https://wuzzy.codeberg.page/games/makingof_glitch/

The Making Of Glitch
Introduction / TL;DR
In this GIGA-post I am going to describe in detail how I developed the game "Glitch" during the 2022 Minetest Game Jam. This includes development up to version 1.0.1. Later updates are ignored (unless mentioned).

This post is for developers and nerds who want to understand my design reasons for Glitch. If you're interested in the nitty-gritty details, read on. If not, then you can skip this. :P Sorry, I don't know of a better way to summarize.

Developing Glitch
Before it began
I didn't do anything, not even think of a game concept. But a few days before, just one word floated in my head: "Eyeballs". Don't ask me why. I wanted to do "something with eyeballs, lots of eyeballs". That was it. :D

Day 1

The Game Jam theme was announced and I immediately looked what it was. I was FLOORED. The theme was "Space | Story | Secrets"? WTF. I hated this theme. I didn't like any of these things, and the only tangible theme was "Space". The obvious interpretation of space is "outer space", but I was certain I didn't want to do anything with that. And "eyeballs in space" sounds meh. I quickly decided to completely discard "eyeballs", as I had no idea how to bring it together. Plus, it was also not clear if I have to use all 3 or just one. And if I use only 1, if that would incur a penalty.

Early game idea (that was later discarded)
I made no real progress for a few days, as I still needed to think of a proper game idea. Which is more difficult than you think! I still did not even have an idea. I wondered how much time I would spend with the idea, but I had to get an idea FAST. I was stuck. Eventually, one idea hit me: "Glitch". Or actually, just "something in cyberspace". The game I actually created doesn't have much to do with the first idea, except the theme.

Basically, my first idea was to make something like a "walking simulator" or adventure-style game in which you are lost in a strange, otherworldly place (cyberspace) in which each node represents a piece of data. What's crucial about that idea is the levels expand "infinitely" and have their own unique logic to them and you have to figure it out on your own, it's part of some puzzle. How exactly, I didn't plan that out. Also, you would play as a human.

I thought this was a good idea, and it matched the "Space" theme (Cyberspace!).

At later days, I made little progress. I coded a few very basic nodes to walk on, but no game logic. My game was still an empty shell with just a few nodes. The biggest problem was, I didn't really have any idea for puzzles.

But very early on, I already had the idea of levels that connect to each other.

The early story I thought of was this: You're a human. You start in your home, came back from work and are frustrated by the numerous bills you find in your mail. You get to do a few household tasks, then you go to sleep. When you wake up, you're still in your house, but when you go outside, you find suddenly in ... the Glitch World. This was the world I initially imagined. The Glitch World was a series of interconnected levels (similar to the actual game). I had no concept of collectible items yet, I was more focused on somehow tell a story and interact with other characters who are equally lost. I wanted to make an adventure/puzzle-like game.

Additionally, the game was supposed to have two level types: Puzzle, and city.

A "puzzle" level is a level in which you have to interact with blocks to solve puzzles, but the twist is you must first understand how everything works, and my idea is to add many mechanics that might not be obvious; the blocks are supposed to behave in strange and unexpected ways. But I just didn't have any concrete ideas to make it work.

The "city" levels are not puzzle levels, they are more like levels that connect other levels. And they roughly look like cities. Those levels are more story driven and supposed to have lots of NPCs, including quest givers that give you quests like retrieving a quest item from one of the puzzle levels.

So the idea was, you would travel from level to level, trying to find clues how everything works, until you eventually find the final level which would be some kind of "digital castle" which would be a place where you can escape the Glitch World and get back home, which would be the end of the game.

This was my rough game concept very early in the development time, but it was still very rough around the edges. Most importantly, I was completely stuck on the puzzle mechanics.

[Note: This original game idea was mostly discarded.]

The first breakthrough
So, in the first days, I was stuck. My initial idea wasn't actually great, I had no ideas how to build on it. I added a few dummy nodes but I realized that coding is pointless when I have no good plan what I'm doing. XD

I made very little progress. Especially the intro scene I planned would require very different graphics (the initial house is supposed to look "realistic" and not abstract like the Glitch World), and this bothered me, esp. since I wanted to create all content myself this time. I thought I could make textures based on some real-world photos, however, this would eat important time and is only for a short intro and outro.

But then I FINALLY had a real breakthrough: I thought to myself, why does the main character have to be human? And why does the intro sequence have to be outside of the "Glitch World" anyway? And then I decided the main character would be a bit. This also has another reason because creating the graphics would be way easier if everything is abstract. :-)

The idea of how bits look is very simple: Bits are to be represented by black or white color. Zero being black, and one being white. This is because color in computer is sometimes defined as a range from 0 to 1 and in all graphics programs ever (that I know of) 0 represents colorlessness / black and 1 is "full color" / white. The reason why the character is One and not Zero is completely arbitrary tho.

I initially also planned to spread other "bit" characters in the world around, but time constraints forced me to limit the number of NPCs in the game.

Early coding
Once I was finally happy with my basic concept, I could finally start with some coding. This was at day 3 out of 21. In the early days, I mostly wasted time with adding a bunch of dummy nodes so get the absolute minimum controls working.

One of the first things I did was to figure out the proper player physics, which includes player movement speed, jump height, acceleration, etc.

I intentionally deviated from the default Minetest physics which are too overused. I learned from other game devs that is important to get this thing working and balanced early on and THEN build the levels around your physics, not the other way round. For example, I initially balanced jumping strength to be strong enough to cross a gap of X blocks easily (I don't remember how many exactly). Yes, jumping was initially enabled. I'm glad I remembered this important advice. :-)

One unique physics aspect in this game that sets Glitch apart from other Minetest game is that you can't easily change direction while you're in air, which is why in-air movement seems a bit sluggish. If you have noticed this by playing, this is not the physics being weird, this is by design. But you can change direction *just* enough so that launchpads are useful. I can't set the air acceleration to 0, otherwise using launchpads would be much, much harder; it would mean you once you have left the ground, you can't change direction at all.
I did this "sluggish air movement" so that when you fall down from a platform, you can't easily (or not at all) move back while falling to reach a platform below. You can see this effect easily in the Void Pipe Sector, below the little "bridge".

I'm more or less happy with how the physics turned out in the end. Note that more advanced physics, like powersliding, were coded (and thus balanced) later, when I added those things.

Level spawning
A very important thing to get working early was generating the levels (i.e. sectors) and placing them in the world. I had to make sure to generate levels reliably and with no errors, and also needed a way for the player to teleport between them (for the gateways).

The way this technically works is simple: I use schematics (these are files or pieces of data which save a section of the world on disk) and place them at a pre-programmed position. Each level is somewhere on the X axis in the world with a distance of ca. 2000 blocks. (OK, it's not that simple, I also need to force Minetest to "emerge" the level area first to make it actually work.) When the level is placed, several other things need to be done: Placing electrons, abilities, NPCs, and even setting the node color (which is not stored in the schematic).

Levels are not just made out of schematics, tho, they also need metadata, like level name, spawn positions, special events when you enter (like a dialog), etc. The level metadata is all written in the source code, there is no fancy file format (which would be overkill anyway). Levels can have multiple spawn positions which are used by the story and gateways.

How the electrons work
This is kind of dirty, actually. The spawn position of electrons is simply added by putting a special node in the level files themselves. If you start the game in the hidden Editor Mode, you can see them, but in the real game, they are invisible.

Detecting when the player touches an electron (to collect it) is also tricky. Basically, I just check every tick (globalstep), which happens around every 0.1 seconds if any electron is near the player. However, after the Game Jam I noticed this does not work if the player is very fast as there are too few globalsteps.

[Note: In version 1.1.0, I fixed this by checking 8 points on a straight line between the current and the previous detected player position on a tick, e.g. about every 0.1 seconds. This is much more reliable.]

There is another problem I needed to solve: The game must always remember *which* electrons the player already has. I solved this by simply giving every electron a name. The name is automatically generated looks something like "void|4,6,-3". Where "void" is the level name and the numbers are the coordinates relative to the level origin. So, now all electrons are uniquely identified. Now all I need to do is to store a long list of collected electron names in the player data. Now whenever a level is loaded, only the electrons the player didn't collect are spawned.

But this is not everything: There are actually two lists: All collected electrons and saved electrons. "All collected electrons" includes electrons that were not saved yet (in a save zone) and you're in risk of losing if you fall out. If you fall out, all the game needs to to is to copy the list of "saved electrons" to "all collected electrons".

You can actually view the list of your electrons yourselves with the "/list_collected" chat command, which is an old debug command I left in (Warning! It might fill your screen with text! :D).

Why save zones?
I realized during play tests that falling down and then getting reset is just annoying but not really a problem, as you don't lose anything. Worse, you could just collect electrons in air and fall out of the sector and still keep them. Which means there is no real reason to avoid falling out, as you constantly progress through the game anyway. It meant that once an electron was collected, it was yours forever.

This is why I introduced the concept of "save zones". Save zones were NOT actually created to save the game, as I could easily save any important changes to disk instantly anyway. Save zones actually exist to force the player to not be too careless and to add a little bit of a challenge. And if you paid a lot of attention, you noticed that a collected ability will be saved instantly (no save zone needed).

The first level
The first real level I built is also the level you start in: Void Pipe. The story in this level including the intro was already quite early in my head, although I coded the intro sequence close to the end.

Initially, jumping was permitted so it was actually possible to reach many electrons of the level border by jumping. However, on playtesting the level for a while, I realized how overpowered jumping actually is and that it might offer an interesting change to not allow it, also for level design reasons. Only the launchpads allow you to "launch" upwards, but not jumping. The launchpads are also really useful for level design as I can control possible player moves in a level more. :)

Small nitpick: I called them "launchpads", not "jumppads" because you "launch" from them, rather than jumping. Jumping implies you propel yourself upwards using your own body. Plus, I think it's just a little bit more original name. :P

The Hub
When about the half time of the Game Jam was over, I managed to complete the most important gameplay features. I was *really* happy then because it meant I had now over 10 days left only for content. This was huge! So I started building level after level and was quite productive. OK, later, it turned out I still had to do some coding (for example, completing the dialog system), so I didn't have the full 10 days for levels and content but I still had lots of time.

Anyway. So I was building level after level, but I was still not really happy. So I had a few levels eventually, but they were without real connections. It was a loose, messy set of levels, which didn't feel great.

So I had an idea to build a special level that connects everything else, just to have an "access room". This eventually became the Hub.

Ooff! I cannot stress enough how IMPORTANT the Hub idea is to this game, especially for my personal motivation. :D Once the Hub stood, I had hopes I could actually put a (semi-)complete game together. My motivation got a major boost once this level was complete.

Designing the Hub was actually based on a very simple idea. First I thought about the basic shape. I wanted the Hub to be special ... First, I could do a cube like the Void Pipe, but I thought that would be too boring. I remembered the classic building advice: Build the ground floor first before going 3D. Because the "block"-shaped buildings are too overused! VERY good advice. So I thought about various basic geometrical shapes, and the octagon won. I tried out different sizes and wall, when I was happy, I just //stacked it with WorldEdit. The rest was just decorating the level. I am very happy I chose an octagon instead of a boring cube, the octagon shape really works great.

Level design in general
I don't know what to write here, except I just tried to be creative? :D
Okay, one technical thing: For each level, I needed about 6 hours to complete it.
Okay, another thing: I designed various levels so that you can't reach all electrons initially, but if you get more abilities, you can return and collect the rest. This is intentional. The first sector has many electrons you need new abilities for to get them all.

The final Day
The final Day way quite hectic. This is when I tried to polish and get the story finally to an end. It was very important to me to have a complete story, with a beginning and an end, even if the story is simple. I wanted to make sure this game isn't just a level collection. On the final day, I finalized the dialog and also wrote the ending on the story. The ending dialog (not the final level tho!) was written entirely in the final day, so it was quite hectic to me, and I was afraid it would not be liked by people, but apparently, it was. :)
I even wanted to create music on this day but then I realized I don't have any skill so I just quickly took something from FreeMusicArchive. This was allowed.
Another feature I did in the final day was level colorization. Before this point, every level was white only. I decided to just use the same color per level, rather than mixing color. This is directly inspired by the old FOSS game Freedroid (not to be confused by FreedroidRPG). I was briefly tempted to also turn "solved" levels (all electrons collected) gray, like in Freedroid but decided against it and instead used gray color as a regular level color. I think this was the right decision. Level colorization is done automatically, the color is NOT stored in the level schematic, but in the metadata. This is nice because I can change the level color with a single line of code, I don't have to open the level editor for that. :)

Time came to an end. And just when I was about to submit the game, I have found a critical bug! :O I noticed in the final level, the teleportation did not work correctly and it would have broken the story. I had to think FAST and only had about 10 minutes left but thankfully, I found the bug and it was a simple bugfix. But imagine my shock when I found it. :D
We developers still got an extra hour anyway, but still!
It was almost a Lazarr! situation all over again. (In Lazarr!, my previous game jam game, level 8 was impossible to win and I noticed it too late.)

Development Tools
I have used numerous tools which saved me time:
  • The GIMP (2D graphics, textures)
  • Blender (3D models like electrons, abilities and slopes)
  • sfxr (sound generator)
  • Mod: Schematic Editor (schematics)
  • Mod: WorldEdit (makes building levels easier)
  • Mod: Get Item (basically a creative inventory)
  • Mod: Perlin Explorer (helped making "Far Lands" and the final sector)
  • Minetest itself (yes, Minetest was itself a development tool. For me, it was for level building and playtesting)
That's quite a lot tools I used, some of which made by me. NEVER underestimate the power of a well-written development tool, even if you don't think you need it yet. Also: I just now realize I actually used 3 of my own development tools.

Glitch is the first time I've actually used Perlin Explorer for something useful, I would have NEVER thought back then I would use this like this. I originally thought I would just use this to find values to put into the mapgen, not to actually generate an entire level template directly! In case you're wondering, sorry, no, I no longer have the noise value settings I used for creating the levels. :( I needed this tool for the "Far Lands" sector and the mysterious final sector. I used it for a basic shape/landscape of these sectors. This has saved me so much time, I could have never built these massive structures by hand. I still needed manual editing for placing all the game-specific stuff, of course, the work was still about as much as for most other levels.

The "Get Item" mod [getitem] saved me a lot of time, because I needed to switch items during level building all the time. For my previous Game Jam project (Lazarr!), I used the Chest of Everything mod from Development Test, but this was always awkward to use as I had to place it somewhere, and the chest was always in the way. Using an item instead to open the "all items" inventory was a big upgrade, it was much faster and more convenient. I published this mod post-jam, this is very useful if you write a new game but don't have a built-in creative inventory.

sfxr is a tool that was specifically made for game jams. I used it often before, although it has a limitation; the sounds are always so retro and usually those sounds are meant more like dummy sounds so you can quickly dump in sound effects quickly into your game. But this time was different. Because for Glitch, this tool was actually PERFECT, the retro style is EXACTLY what I needed. I am very happy with how my sound effects turned out.

Things I wanted to do but couldn't due to time
  • Fix the controls. Sometimes, electrons don't get collected. Sometimes, the powerslide ability doesn't fire. I partially blame Minetest here because Aux1 sucks. (note: controls got fixed after the Game Jam)
  • More levels. I wanted to do a HUGE number of levels but then I always got carried away of creating polished levels. These levels took LONG. Always around 6 hours. I'm still glad I went for quality over quantity. The levels I was still planning at the end are mostly "transitional" levels that act as a buffer between the Hub and the ability sector because some sectors from the Hub lead directly to an ability, and not with a level between them. I wanted to have at least one "buffer" level for each Hub direction. Also, I wanted to have levels at all eight sides of the Hub octagon
  • Have 1024 electrons in the game, because it's a power of 2 :D
  • More story and characters / more polished out story: Especially I wanted to introduce a few more helpers for story, but probably they weren't necessary. Especially I wanted to add other bit characters to talk to for some story, but on the other hand I'm not sure it's a good idea if the levels become too crowded with story. Some players complained the dialog is too long so I might cut it down to the relevant parts (without compromising the story)
  • Music: I did the graphics, models, story, design, levels, testing, sounds, ... EVERYTHING. Except for the music. But I actuallly planned to even do the music myself, I wanted to make a 100% Wuzzy creation this year. But I postponed music for the last day. Obviously, I failed, I had no experience anyway, silly me. :D I still tried, wasted a few hours, then I caved an grabbed something from FreeMusicArchive. I'm glad I did. Good I postponed music to the end and didn't waste too much time.
Discarded/unused features
I created a few features during developemt that I had to discard:
  • "Jump" ability: Early on, I thought the player could learn jumping as an ability. But I realized jumping is just too overpowered for my levels so I removed it completely. I added the launchpads as a replacement.
  • "Carry" ability: This ability would allow you to hold one item. A mini-inventory, basically. I thought it would be useful for some fetch quests. But once I added electrons, this became mostly pointless, and I removed it. This feature was even fully functional, with GUI and everything.
  • Blocks that move when you punch them: Very early on, I had simple block that move to a certain direction in a straight line until they collide when you punch them. This was meant to be a simple puzzle mechanic, while I was still thinking of the game as a puzzle game. It was a lazy experiment that didn't go anywhere, so I removed them.
  • Toggleble lamps: Initially, I wanted the yellow "lamps" (light blocks) to be togglable, meaning a type of lamp that must be "turned on" first. My idea was for levels which start dark and you have to spread the light to make more of the level visible. This was when I still saw the game as a puzzle game.
  • The Sneak Glitch: You won't find a commit in the code repository, but I briefly experimented with a "sneak glitch" ability (if you don't know what this is: https://wiki.minetest.net/Sneaking). I thought it would be funny because the game was called Glitch. But I quickly scrapped the idea because the sneak glitch doesn't "work" if the player is only about 1 block tall
  • Rainbow noise: This is like the normal white noise block, but with rainbow colors. It's still in the game files, but not used in any level. I wanted to try to have a special event with this, but I had no good idea, so this is unused.
The awkward moments when I had to fight against Minetest and my tools
These are some situations in which my tools worked not with me, but against me and I had to work around them …
  • I found a Minetest bug in which entities (including the player) that use the "cube" visual (e.g. they look like a cube) become invisible when they are near a light source. This bug was an old known bug actually, but I reported it again (accidentally), they even fixed it during jam-time, but this was useless for me of course since I was stuck with 5.6.1. Thankfully, I found a workaround: Just make a mesh instead in Blender really quick. The light bug does not happen for mesh files. I'm glad I actually went out of my way to do a workaround for this, the helpers would have been invisible otherwise. :O
  • My Schematic Editor mod bugged around when I exported the schematic for the Void Pipe sector. Sometimes, the upper portion was not exported. I quickly found the reason: The area wasn't loaded, so the schematic editor exported only half the level. I pointlessly wasted some time with that. I fixed the bug in Schematic Editor after the game jam.
  • WorldEdit keeps TRIGGERING me because its border marking keeps z-fighting with nodes. Argh! XD
  • IMHO the WorldEdit usability could still use some improvement IMHO. Working with it is not efficient, even if you know what you must do. Typing commands is tedious and WorldEdit GUI is not a great improvement either (in terms of efficiency).
  • The climbing ability isn't as simple as it seems. It was not possible to turn climbing on or off for a player in Minetest. A node is either climbable or not, but it cannot be changed per-player. So what I did do instead was adding 2 nodes for each cable, one that is climbable and one that isn't (the player does not see any difference). All cables start non-climbable in a level by default. But if the player collects the Climbing ability or already has it, these nodes will be replaced by their climbable counterpart automatically. A dirty trick, but it works as this game is singleplayer. :-)
Closing
Overall, I did have fun making the game and it was a challenge, but I am very happy how it turned out, for obvious reasons. :P

Thanks for reading this GIGA-post, I hoped it gave some insight. :)

There's probably a ton of other things I could have mentioned but I have to stop at some point. If you have questions, just ask.

----
EDIT 25 Jan 2023: Added section about climbing
Last edited by Wuzzy on Wed Jan 25, 2023 01:40, edited 3 times in total.

User avatar
jp
Banned
Posts: 947
Joined: Wed Dec 18, 2013 09:03
GitHub: kilbith
Location: France

Re: [Game] Glitch [1.1.0]

by jp » Post

Image

sfiedler
New member
Posts: 7
Joined: Thu Feb 02, 2023 16:12

Re: [Game] Glitch [1.1.0]

by sfiedler » Post

All fine, just wondering how to use transport pipes?

User avatar
Wuzzy
Member
Posts: 4801
Joined: Mon Sep 24, 2012 15:01
GitHub: Wuzzy2
IRC: Wuzzy
In-game: Wuzzy
Contact:

Version 1.2.0 released!

by Wuzzy » Post

Small update: Version 1.2.0 is released. This version adds a German translation, mostly by Dirkfried, with a few corrections from me.

User avatar
TenPlus1
Member
Posts: 3721
Joined: Mon Jul 29, 2013 13:38
In-game: TenPlus1
Contact:

Re: [Game] Glitch [1.2.0]

by TenPlus1 » Post

Controls are a little fiddly at times but this is a fun game and I love puzzles :) Thanks Wuzzy...

Special thanks to Visager for the music that goes so well with the game, it's stuck in my head now :P

User avatar
MisterE
Member
Posts: 693
Joined: Sun Feb 16, 2020 21:06
GitHub: MisterE123
IRC: MisterE
In-game: MisterE

Re: Version 1.2.0 released!

by MisterE » Post

Wuzzy wrote:
Tue Feb 14, 2023 15:35
Small update: Version 1.2.0 is released. This version adds a German translation, mostly by Dirkfried, with a few corrections from me.
consider making a blog post entry

User avatar
SuperStarSonic
Member
Posts: 160
Joined: Fri Oct 14, 2022 20:30
GitHub: Python-Sargent
In-game: SuperStarSonic
Location: Earth (may be out of date)

Re: [Game] Glitch [1.2.0]

by SuperStarSonic » Post

This game is great, no wonder it won the 2022 Game Jam!
I like the music too.

User avatar
Wuzzy
Member
Posts: 4801
Joined: Mon Sep 24, 2012 15:01
GitHub: Wuzzy2
IRC: Wuzzy
In-game: Wuzzy
Contact:

Re: [Game] Glitch [1.2.1]

by Wuzzy » Post

Version 1.2.1 released! This is mostly just a maintenance release for the updates of Minetest 5.7.0. Glitch version 1.2.1 still works in Minetest 5.6.0, but using Minetest 5.7.0 (or later) is recommended now.

Changelog:
  • When you create a world, the map will no longer be saved on disk to save disk space
  • The selection box of NPCs will now rotates with them
  • Fix a few typos and translation mistakes
  • Technical change: Forceload block limit removed when a sector (level) is loaded
Additionally, Minetest 5.7.0 has fixed the awkward sliding when you keep pressing the jump key while moving on the floor.

User avatar
Wuzzy
Member
Posts: 4801
Joined: Mon Sep 24, 2012 15:01
GitHub: Wuzzy2
IRC: Wuzzy
In-game: Wuzzy
Contact:

Plans for version 2.0.0 abandoned

by Wuzzy » Post

ANNOUNCEMENT: I abandon my plans for version 2.0.0. I originally planned to make a version 2.0.0, by adding a few more levels. These plans are abandoned. I think this game is already good as-is. There still might still be small maintenance updates.

However, I might create a successor game instead. I don't know when.

WillowLeafWing9
Member
Posts: 10
Joined: Fri Jun 25, 2021 20:20
In-game: Sundew

Re: [Game] Glitch [1.2.2]

by WillowLeafWing9 » Post

I hope you plan on making that successor game, since this game left me on SUCH a cliffhanger. The idea is great, and I look forward to any further updates. Dissapointed at the cancel for 2.0.0, but look forward to anything. Thanks for the AMAZING game, Wuzzy!

Cheers,

-Sundew

User avatar
Minisleep
Member
Posts: 14
Joined: Sun Jun 18, 2023 09:09
Location: Sydney, Aus
Contact:

Re: [Game] Glitch [1.2.2]

by Minisleep » Post

I played through this on the weekend and enjoyed it thoroughly. It's nothing like traditional minecraft games but I think it uses the engine well.

Thankyou for making and publishing this Wuzzy :)

N.B. I don't expect you to like any of my pull requests or want to implement anything I mention here, but I think you might enjoy reading it anyway.

Hub world and levels

Wow this game has a lot of levels. I had to draw a map of the hub to keep track of which is which.

I couldn't help but draw comparisons with Super Mario 64 whilst playing. Jumping into paintings vs using portals with decorations near them.

It took me an embarrassingly long time to realise that the decorations near each portal represented the level on the other side. That... made things quite a bit easier. I still kept using my paper map (especially for keeping track of the few level-to-level portals).

Level: Farlands

Gorgeous faux-reflection either side with the corruption occurring. It's a shame that I spent my time only looking at the central section.

Level: Tower

This is the one level I will complain about. I thought that a light near a jumppad means it sends you higher, but there is one platform of the tower where this rule doesn't apply. Lots of frustration was had from repetitively traversing this layer and trying to remember which jumpads in the almost-rotationally-symmetric room were the good ones and which were the duds.

Level: Cube processing

One of the pathways in this level is a taunt. It shows you something, but doesn't let you reach it.

I kept expecting to be given another ability to finish this level; but eventually I realised that it was a puzzle I had the keys to all along. Cheeky bastard :)

Level: Climbing

The exploring was a lot of fun. The two types of pipe/rope create good interactions and the hidden pathways everywhere were good to uncover.

The tunnel level leading to climbing however: not so sure, felt more like work to play than fun. I skipped most of it.

Technical: Ground detection - distance

(You've already seen the pull req for this one. It's taken me a few more days to sign up to the forums because the user registration email wasn't working. I'll keep discussing it there.)

Technical: Ground detection - mismatch between minetest engine physics & player abilities

For ages I thought the lua code for dashing was unreliable and laggy. I then read the code and had a lightbulb moment, gameplay became much easier after that.

Player expectation: whilst I'm still standing on a block I can dash. When I'm falling or in the air I can't dash.

Lua scripts: you can only dash when a node is directly under your centre.

There is a big difference. When walking off a ledge you are still supported until the last corner of your body leaves the edge (minetest physics); but during this last 1/2 player width you are unable to dash (your centre is off the edge). This means there is a big deadzone around the edges of platforms where dash unexpectantly stops working.

A workaround might be to probe 5 points (player centre + 4 corners) and choose the most interesting block (activ pads, anything non-air, air) if the centre one is uninteresting.

I don't think this change would break any of the puzzles. It would make things less frustrating (easier to hit bounce & jump blocks, less likely for dashes to fail), but not necessarily easier (I don't think it would create easier puzzle solutions; eg initial dashing positions & pathways would still be the same).

Some games take this further and let players perform a jump within a few frames of falling off an edge. Albeit this is probably more important on consoles + TVs which traditionally can have a lot more input lag.

Technical: Slope traversal

Early on in the game my character walked up shallow slopes like stairs, with the screen shaking vertically. It was nice later when this stopped (was it because of the slope climbing pickup perhaps?).

Technical: Node highlighting
Turning this off in Minetest's settings made sense. There is no block placing or clicking in the game so it was an annoying distraction.

Music & SFX

In general: I really like them.

I don't think I recognised any SFX as coming from a stock source, which means you either found a nicer niche source or generated them all yourself (which is always more effort than you imagine). It was worth it :)

Music became a bit repetitive after a while. Perhaps spacing it out with some quiet segments in between repeats might be a cheap and easy way of reducing fatigue.

(You've already seen this Wuzzy): The loud high-pitch content of some of the sfx really hurt my ears, I had to turn sound off by the end of the game.
Last edited by Minisleep on Tue Jun 20, 2023 02:26, edited 1 time in total.

User avatar
rubenwardy
Moderator
Posts: 6978
Joined: Tue Jun 12, 2012 18:11
GitHub: rubenwardy
IRC: rubenwardy
In-game: rubenwardy
Location: Bristol, United Kingdom
Contact:

Re: [Game] Glitch [1.2.2]

by rubenwardy » Post

Minisleep wrote:
Mon Jun 19, 2023 23:30
I played through this on the weekend and enjoyed it thoroughly. It's nothing like traditional minecraft games but I think it uses the engine well.
...
This is a nice review, it would be great if you could post it as a review on ContentDB so it can be seen there (and inside Minetest in the future)
Renewed Tab (my browser add-on) | Donate | Mods | Minetest Modding Book

Hello profile reader

User avatar
Minisleep
Member
Posts: 14
Joined: Sun Jun 18, 2023 09:09
Location: Sydney, Aus
Contact:

Re: [Game] Glitch [1.2.2]

by Minisleep » Post

ContentDB refuses my review with "Field must be between 10 and 2000 characters long."

Lets see how... oh dear 4600 characters xD Not sure if I really want to cut 60% of it out.

wsor4035
Member
Posts: 182
Joined: Sun Aug 11, 2019 21:23
GitHub: wsor4035
IRC: wsor
In-game: wsor

Re: [Game] Glitch [1.2.2]

by wsor4035 » Post

Minisleep wrote:
Tue Jun 20, 2023 02:35
ContentDB refuses my review with "Field must be between 10 and 2000 characters long."

Lets see how... oh dear 4600 characters xD Not sure if I really want to cut 60% of it out.
split it across a couple of posts in the same thread
j5uBLfc6NxgersvVj5D5dIsiKDkoQb0o

User avatar
Wuzzy
Member
Posts: 4801
Joined: Mon Sep 24, 2012 15:01
GitHub: Wuzzy2
IRC: Wuzzy
In-game: Wuzzy
Contact:

Re: [Game] Glitch [1.2.2]

by Wuzzy » Post

Thx for review! :)
Hub world and levels

Wow this game has a lot of levels. I had to draw a map of the hub to keep track of which is which.
Yes, I'm surprised how much I manged to make in only 3 weeks. If I ever make a successor game, I consider adding a map or rethink the level layouting. But I thought the decorations alone were already hint enough. :-/
This is the one level I will complain about. I thought that a light near a jumppad means it sends you higher, but there is one platform of the tower where this rule doesn't apply.
Oops. The rule applies to the "basement" but not throughout the whole sector. Yeah, this was a design fail on my part.

Maybe a simple fix would be to colorize the launchpads. But then again, I consider this game complete and only want to touch it for important reasons.
Technical: Ground detection - mismatch between minetest engine physics & player abilities
All of this is by design. It is intentional you can only powerslide if your center is on the floor. You're right, I could check the 4 corners too but I decided against it. Changing this at this stage means I would have to playtest the entire game again to make sure all electrons are still reachable. This sounds like a major change that needs a lot of care; but I'm done with the game. I'll keep this in mind for a theoretical successor game.
Did you not see the status indicator on the bottom? It tells you when an ability (like the powerslide) is available. One of the green helper NPCs tells you about it. I hope this helps.
Technical: Slope traversal

Early on in the game my character walked up shallow slopes like stairs, with the screen shaking vertically. It was nice later when this stopped (was it because of the slope climbing pickup perhaps?).
Technically, this works by modifying the player stepheight. In reality, all slopes are actually just stairs so you're actually climbing stairs and stepheight just changes the height of a single step you can take. This is also because why the camera seems to wiggle a bit here. But I think this is not that bad.

I don't think I recognised any SFX as coming from a stock source, which means you either found a nicer niche source or generated them all yourself (which is always more effort than you imagine). It was worth it :)
I've generated the sounds with sfxr, a tool to generate sounds; it was specifically created for game jams. :D The sounds generated by sfxr fit perfectly. And yes, finding the right parameters is still work.
Technical: Node highlighting
Turning this off in Minetest's settings made sense. There is no block placing or clicking in the game so it was an annoying distraction.
Good point. Unfortunately, I can't force this in the game myself although it would make sense.
Well, you are wrong about 1 thing: You can rightclick the green helpers and other NPCs in the game. But yes, clicking on blocks has absolutely no effect.


And finally: As long there's no successor game, you can still try to find all electrons. ;-) After you've completed the game, you can just join the same world again and you respawn in the Hub with all the electrons you already got. There's no new story, reward or anything tho. Your inventory menu shows how many electrons you got. I wonder if anyone managed to get them all.

User avatar
v-rob
Developer
Posts: 971
Joined: Thu Mar 24, 2016 03:19
GitHub: v-rob
IRC: v-rob
Location: Right behind you.

Re: [Game] Glitch [1.2.2]

by v-rob » Post

Wuzzy wrote:
Tue Jun 20, 2023 08:35
I wonder if anyone managed to get them all.
Are you kidding? This game was too fun to not get them all. Although, a few electrons in the Far Lands were tricky to find how to get to, and I confess I did a little wireframe cheating to find how to access them. Shame on me.
Core Developer | My Best Mods: Bridger - Slats - Stained Glass

User avatar
Minisleep
Member
Posts: 14
Joined: Sun Jun 18, 2023 09:09
Location: Sydney, Aus
Contact:

Re: [Game] Glitch [1.2.2]

by Minisleep » Post

No way am I going to collect them all. I tried for just one level and couldn't do it.

crabycowman123
New member
Posts: 5
Joined: Sat Dec 18, 2021 15:10
GitHub: crabycowman123
IRC: crabycowman123
In-game: crabycowman123

Re: [Game] Glitch [1.2.2]

by crabycowman123 » Post

I made a mod that automates the challenge described in my review at https://content.minetest.net/threads/5308/

In order to do this, I override glitch_abilities.add_ability with my own function that normally passes through to the original function, except when "glitch:slide" is the ability to be added, in which case I remove it instead. This is necessary because the game give the player this ability after they join (so I can't just remove glitch:slide on join because it will be added later if it's the first launch).

I thought I might add a feature to warn the player if they progressed in the game without the mod enabled, in case it gets disabled accidentally or they forget they intentionally but temporarily disabled it, but to do this I override 2 more functions from the Glitch base game, including a function that's not part of an api.lua file, which might make things more likely to break? So maybe I should go back to the version with only 10-15 lines that doesn't detect if the player had disabled the mod at some point. I have attached both versions of the mod. What do you all think?
Attachments
glitch_no_slide_draft.zip
contains 2 versions of the mod
(2.78 KiB) Downloaded 67 times
cdb_25eddf37fd15

User avatar
Wuzzy
Member
Posts: 4801
Joined: Mon Sep 24, 2012 15:01
GitHub: Wuzzy2
IRC: Wuzzy
In-game: Wuzzy
Contact:

Re: [Game] Glitch [1.2.2]

by Wuzzy » Post

Interesting and very silly challenge. For me, I just keep sliding at the same speed when I powerslide without stopping, making movement very hard. You might say the movement is … glitchy. xD

Is this the same for you or is it just me? I mean, can you control the movement more?

The hardest / most annoying part is actually going through a gateway because I keep overshooting. The problem is the gateways only check for a teleport once a second so if you move very fast over it, it is very unlikely you can teleport with the Aux1 key but not impossible. So after trying again and again, I finally can get thru the gateway.

And yeah, it's impossible to find all electrons that way because climbing doesn't work without the Slide ability but this is critical to 100% the Data Pipes level.

crabycowman123
New member
Posts: 5
Joined: Sat Dec 18, 2021 15:10
GitHub: crabycowman123
IRC: crabycowman123
In-game: crabycowman123

Re: [Game] Glitch [1.2.2]

by crabycowman123 » Post

Wuzzy wrote:
Tue Aug 08, 2023 19:21
Interesting and very silly challenge. For me, I just keep sliding at the same speed when I powerslide without stopping, making movement very hard. You might say the movement is … glitchy. xD

Is this the same for you or is it just me? I mean, can you control the movement more?

The hardest / most annoying part is actually going through a gateway because I keep overshooting. The problem is the gateways only check for a teleport once a second so if you move very fast over it, it is very unlikely you can teleport with the Aux1 key but not impossible. So after trying again and again, I finally can get thru the gateway.

And yeah, it's impossible to find all electrons that way because climbing doesn't work without the Slide ability but this is critical to 100% the Data Pipes level.
Yes, the movement is the same for me. The only control over movement is via Power-Sliding, which means you can only change your velocity with a powerslide or when you hit a wall. For some of the gateways you can set up the powerslide so that you go to the gateway slowly (by sliding almost straight into a wall but at an angle slightly), but it doesn't seem possible for the very first gateway, in the Void Pipe, so sometimes it takes me several minutes to get through that first gateway. That might be the most annoying part, but it's easy compared to collecting/saving some of the electrons in the Powerslide Playground and the Super Slope Sliding Sector.

I would be surprised if it's possible to get all of the electrons in any one sector or come close to getting enough electrons to reach the ending, not to mention actually getting through the ending sequence. Maybe with yet-to-be-discovered techniques it is possible, though.
cdb_25eddf37fd15

User avatar
Wuzzy
Member
Posts: 4801
Joined: Mon Sep 24, 2012 15:01
GitHub: Wuzzy2
IRC: Wuzzy
In-game: Wuzzy
Contact:

Help translate Glitch in your browser

by Wuzzy » Post

Translators can now translate Glitch from their browser.

I'm using Weblate on Codeberg.org. This is still somewhat experimental as this is the 1st time I'm doing something like this but so far it seems to work.

Go to <https://translate.codeberg.org/projects/glitch/> to start translating. You need a Codeberg.org account. Currently, there are only 2 translations, German and Spanish, and Spanish is incomplete. Any new language is greatly appreciated.

If you have any questions or problems, please let me know! I want to make the translation process as smooth as possible.

Technical notes:
Spoiler
Currently, none of this will automatically update Glitch. I will consider manually updating the game once a bunch of changes have been made.

The way this works is that I've written a TR-to-PO converter (and vice-versa) and I've literally just converted all TR files to PO and committed it in "locale/poconvert" of each mod directory so that Weblate is able to read these files. And currently I'm pulling translations manually back so I can convert PO to TR. At least that's the plan.

This is somewhat hacky as the PO files only exist to make Weblate happy; they are ignored by the game, of course.
All translations will be under CC BY 4.0 Int'l.

User avatar
Wuzzy
Member
Posts: 4801
Joined: Mon Sep 24, 2012 15:01
GitHub: Wuzzy2
IRC: Wuzzy
In-game: Wuzzy
Contact:

Re: [Game] Glitch [1.2.2]

by Wuzzy » Post

I've just did the first merge of the new contributed translations into the main Glitch codebase. No translation except German is on 100% but there was significant progress. Thanks so far to everyone who has contributed.
The testing/experimental phase of the online translation is now over, too. It's now official.

User avatar
SuperStarSonic
Member
Posts: 160
Joined: Fri Oct 14, 2022 20:30
GitHub: Python-Sargent
In-game: SuperStarSonic
Location: Earth (may be out of date)

Re: [Game] Glitch [1.2.2]

by SuperStarSonic » Post

crabycowman123 wrote:
Wed Aug 09, 2023 03:11
I would be surprised if it's possible to get all of the electrons in any one sector or come close to getting enough electrons to reach the ending, not to mention actually getting through the ending sequence. Maybe with yet-to-be-discovered techniques it is possible, though.
You just need to try a lot of times and use some problem solving skills, most levels you can get all of the electrons.
For example, the Super Slope Sector and the tower sector you can get all of them. The Farlands Sector is much harder but still possible I believe.

I've actually just started playing this game again, still love it. Thanks for the undying quality of the best RPG game for Minetest.

On par with Exile, and maybe even better. Definitely more interesting than Nodecore :)
I still love the music too.


[EDIT:] I finally made it to the end, definitely a cliff-hanger.
the last part is very disorienting, especially with the noise nodes.

sfiedler
New member
Posts: 7
Joined: Thu Feb 02, 2023 16:12

Re: [Game] Glitch [1.1.0]

by sfiedler » Post

sfiedler wrote:
Thu Feb 02, 2023 16:14
All fine, just wondering how to use transport pipes?
There was just a matching sector and I didn't found it :D

User avatar
Wuzzy
Member
Posts: 4801
Joined: Mon Sep 24, 2012 15:01
GitHub: Wuzzy2
IRC: Wuzzy
In-game: Wuzzy
Contact:

Version 1.2.3 released!

by Wuzzy » Post

Version 1.2.3 released! This is the first release which includes new translation work from Codeberg Translate.

Changelog:
  • New partial translations: Russian, French, Polish (thanks to everyone who contributed on Codeberg Translate)
  • The noise background sound and powerslide sound is now easier on the ears (thanks, Minisleep!)
  • Fix launchpad sometimes not working w/ high FPS (thanks, Minisleep!)

Post Reply

Who is online

Users browsing this forum: No registered users and 6 guests