Skip to main content

On Sale: GamesAssetsToolsTabletopComics
Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines

Grid of Yendor: A roguelike set on a spreadsheet where you type to attack

A topic by Dr.Hippo created Jun 06, 2023 Views: 3,296 Replies: 48
Viewing posts 21 to 47 of 47 · Previous page · First page

Honour - a new score system

In the jam version of the game, the run time was the only stat tracked by the game and the only one that mattered. Now with the game expanded so much, I want to reward players for being accurate and playing on higher difficulties. 

The new equation takes accuracy, WPM, and total (correct) characters typed into account as well as run time. This aggregate score system is called honour. For now it's just a number on the results screen, but I have many ideas about expanding this.

As you can also see, cells now show their coordinates when emptied. This leads into a planned navigation update.

(1 edit)

GoY v0.1.2: Get better at typing!

This small update focuses on the typing aspect of Grid of Yendor, and prepares for future releases with behind-the-scenes refactors.

  • Added WPM and accuracy measurements/display
  • Added honour - an aggregate score system based on WPM, accuracy, completion time, and characters typed
  • Results screen shows more stats
  • Cells show their coordinates when emptied

I'm planning to expand many of these features in the future, but for the next week I'll be taking a break from development to focus on real life. Thanks for all the feedback from the community, which has been a great help in finding bugs and expanding the game.

(1 edit)

I took a break from programming, but that doesn't mean I stopped working!

Promo art has always been a weak point in my games. Mechanics don't matter if no one plays it. I'm redoing all the art on the game page (especially the cover) to make new players click that download button.

This was the old icon. It shows the name of the game but not much else. It's better than nothing, but it's uninteresting and won't attract players.

And here's the new one. It's a bit more complex, but it's still recognisable and shows the core game mechanic. Much nicer!

I also worked on BGM by changing some of my old tracks to fit the game. This is still in progress, but once I'm done there will be more variety than the single looping track in game right now.

(1 edit)

I've mentioned elements before as a way to improve variety, but they haven't received any attention since. I did make some structural changes beforehand to make implementing them easier, but I was more focused on modifiers and wards, which were simpler to implement and explain to new players. I was also worried they would find elements too complex and quit the game. But now that the other features are done, I figured I'd get back to it.

Here are the (semi-)finalised list of primary elements and their effects:

  • Fire: damage increase by one each attack (Implemented)
  • Water: cell switches state from unfrozen to frozen (and vice versa) every attack. Invulnerable when frozen. (Implemented)
  • Leaf: cell regenerates a character every two attacks (Inplemented)
  • Dark: cell darkens making text hard to see (not sure about precise values/patterns yet)
  • Lightning: casts a ward-piercing double-damage bolt every three attacks

These primary elements can also combine. I won't list them here, but that makes a total of 15 elements, which makes gameplay much more interesting, and less about typing speed as it's about choosing which enemies to fight.

As you can see the effects all depend on the number of attacks, and not an objective time unit. It did make implementing a bit easier, but it was primarily a design choice to make speed adjectives impact elemental effects, which adds dynamic complexity to the game.

There's still a lot of work to do adding animations and icons to properly show what the effects are, and I'll have to change the tutorial to include an explanation of elements.

Also added "drunk" and "chaotic" modifiers for enemies, which both randomise attack speed. I'm still working on the new cover for the game as well.

Updated the cover image to something much more interesting. I might retouch it before release but it's done for now. Also, all five elements are now functional.

Unrelated, but the game had a spike of views and plays in the last few days ;) It's even close to the top of "popular" for the dungeon crawler category now. Not sure if that's the algorithm pushing it up or a staff member adding it to some kind of verified list. But hey, it's nice no matter why.

(+1)

OMG I loved it! It was a genius idea to take spreadsheet navigation to exploring dungeon type of game

Keep up the good work!

Currently the only way to discover the level exit is to enter an adjacent cell. This is fine on smaller levels, but searching for exits gets frustrating as level size and difficulty increases. With that in mind I decided to add two new cell types to the game:

Inscription cell Signpost cell

These are the navigation cells, and they solve the problem by hinting where the exit is. Inscriptions reveal the exit’s row or column number, and signposts point to it (but don’t show distance). I think there’s great potential for dynamic gameplay here, and the skill ceiling for using these cells to get to the exit faster is very high.

Some situations in larger levels:

  • A player finds a signpost which points back towards where they came from. They find the exit is just out of sight from where they’ve explored, saving precious seconds.
  • A skilled player finds an inscription and a signpost. With this info, they work out the coordinates of the exit and are out of the level in less than a minute.

Movement should be less monotonous now, because a quick run doesn’t just rely on typing fast but also on using these hints well. To compensate, the average distance to the exit has been increased.

(2 edits)

Elements are a great addition to the game, but their effects aren’t obvious, especially when the player is focused on fighting. I realised I had to show what they did in a simple way. I decided to use an icon approach with simple animations. Designing the icons and animating them took time, but it was worth it in terms of clarity and simplicity.

Here are the five element icons. I went for a simple look emphasising diagonal lines to fit the game’s style.

And here’s how they look in actual gameplay: Element icons

Cells can have multiple elements at once, and the icon system represents that as well. Multiple elements

I’m hoping to release this update next week, so fingers crossed that it’s happening.

The v0.2 update is finally out after more than a month of development! Really big milestone for the game, as it's now (somewhat) of a complete product.

The full release notes are here, but to summarise:

  • 5 elements which which make enemies stronger, for that extra challenge!
  • Signposts and inscriptions to guide you to the exit
  • A new tutorial system for new player

Check it out!

Took a break from development and focused on the new player experience. I changed some potentially confusing labels and polished some visuals.

I’m really not sure if I should keep making web builds for the game. Obviously, browser games have less resources and can’t perform as well as native executables. The audio quality is worse and there’s input lag, to name two obvious issues. I’ve also had reports of the browser build lagging (which should make people download, but the stats show they don’t :&).

Despite the bolded disclaimer to download, the game has 10x browser plays compared to downloads, and many hits are from play-in-browser searches (so people wouldn’t even have found my game if I didn’t have a web build). I don’t know if I should let more people play a worse version of the game (which they do enjoy however judging by the reviews) or force them to download and get the best of what I made (but then some people won’t discover/play my game at all). Won’t get rid of the web build for now but if people stop enjoying it I’ll rethink if it really needs to be there.

A big announcement to make: I finally came back (yay!) and GY is being rewritten from the ground up to accomodate new features. I took the break because of exams, but those are mostly done now.

In hindsight, the jam version’s code was badly written, and I should have started back from scratch afterwards. Many features I want to implement require refactoring, which will only take more of my time as I update the game. Better late than never at least ;)

On the bright side I can reuse the art and sound effects, and adapt (better) code from the old codebase instead of completely rewriting.

You guys know how accurate update time estimates are, so I won’t make any right now. I should be able to add most existing features during the next week though.

In terms of new features, more exciting boss interaction (minigames?) is the priority. I also want to add comprehensive in-game help and start on permanent progression to retain players.

Core mechanics will stay the same, but there are some visual changes to make gameplay more engaging. More info on that, and more, coming next week. Until then, have a nice weekend!

Just posted a devlog entry marking one year since GY was published on itch. Time really flies ;)

I changed the font to a more angular one to fit the rest of the game, and added an in-game help screen so people won’t get too confused on how to play.

Here’s a screenshot from the new version, which I plan to release next week:

(Re-)implemented cell modifiers, bosses, and most of the GUI. Worked too quickly last week and was burnt out, but I’m back to normal now.

Features that still need to be implemented:

  • Elemental effects
  • Settings (i.e. adjusting volume)
  • Score
  • Background music changing depending on environment

One thing that has consistently surprised me is how small the new codebase is right now, even with most features implemented, which is an encouraging sign and shows how bloated the old version was.

(1 edit)

Every feature listed above, and plenty more, are now implemented. Just some testing and last-minute polishing to do before I can release the game, which will likely happen tomorrow. Too tired to write anything else right now, I’ll put full details in the release devlog post.

(1 edit)

v1.0.0 out now!

Full release (finally!) after a month of work starting from zero. Apart from the score system, there aren't any major new mechanics, but almost every part of the game's interface has been improved in some way (I did start from a blank project, after all). My experience in developing the previous version helped me avoid pitfalls in programming and project organization. I was able to redo 5 months of work in 1 both because I had a direction (re-implement all existing features, but better) and because of the projects I worked on during the hiatus. Here are some ramblings that I'm finally writing down. 

Font

The previous font, Roboto, was a good choice as it had variants for different font weights and italic text, which I used to indicate enemy size and attack speed. However it looked too generic, so I replaced it with Tomorrow, a more angular font, to give the game a distinct character. I'm honestly surprised that it had as many variants as Roboto, as most fonts I found didn't even had separate bold font file, let alone all the different font weights I needed. It fits the rest of the UI really well and is readable and stylized at the same time.

Sound effects/animations

One thing I realized during development was how important a game's presentation is. After all, mechanics are meaningless when no one plays your game.

I wrote a script to fade between soundtracks, which allows me to change the music smoothly. Menus, win and death screens, and gameplay now all have different background music. A big improvement from all previous versions, where there was one infinitely-looping track. As for sound effects, all five elements now have unique attack sounds, and I've added many other gameplay sounds as well to give feedback to the player.

Most developers want their players to win, so they pay attention to their win screen above everything else. But a game that most players win first-try can't be fun. I added a proper death animation and sound effect, as well as a unique soundtrack for the lose screen. A new player will probably see that much more than my win screen, so I prepared by putting more effort into designing that.

Had to adjust some sound effects over and over again because they didn't sound right, but eventually got them to a place where they were half-decent.

Code changes

The least glamorous but most useful change by far is the code restructuring. It won't go on any changelog, and players will never see it directly, but with a well-organized project I can actually add features and fix bugs without having to rip everything apart.

Wrestled for a few hours with the script execution order to fix cell values/modifiers not being set properly during floor initialization. I had to wait for the code to recompile every time I changed it. Learnt a lot about function execution orders from this. While it was frustrating, I solved the problems by refactoring so each task was done on as few scripts as possible, accessing values from others if needed, and resulted in much more modular and extensible code.

Finishing with a quote from a friend:

"it seems like an actual game now"

Really encouraging!

Changelog/more formal announcement here

Released a small update focused on polish and better game balance.

I've got some plans for future updates, but I think I need to learn more about how to implement them first before anything can appear as code. Also have to smooth out some unintended behaviours/minor bugs currently in-game.

Worked on giving the player a sense of progression for this update. As the developer, I understand game mechanics and progression extremely well, but players don't. I've learnt to show them to the player many times to make sure they understand it properly.

  • Added a bar at the bottom of the screen to show playthrough progress, complementing the preexisting text. 
  • The game now plays an animation that shows the current floor number at the beginning of each floor. It shows the floor number and the presence of bosses.

How it looks:

Because of playtester feedback, I buffed the fire element to increase damage by 3 instead of 1 every attack.

Also made a few smaller changes to cell colours and UI layout, but those aren't too important in the grand scheme of things.

Just patched the web version to fix a gap in the level opening animation. I just found about it as I was showing the game to another person. It really shows the importance of testing every build individually in case there are build-specific problems.

Normal enemies are exciting to fight with modifiers and elements, but as there isn't really a penalty for typing incorrectly (other than later characters not registering) it can be an appealing strategy. Even I keyboard-mash hard enemies sometimes. This isn't what I want the game to be: I want players to type more accurately. (just to be clear, GY is not meant to be a typing trainer, but it turns out I can kill two birds with one stone in this situation)

Here's the solution: traps like the ones you'd find in any good dungeon!

A brand new cell type, they spawn in later floors and deal 5x their base damage when you type incorrectly, which should make gameplay a bit more interesting.

I'm also adding two new elements: the first is wind, which reverses the capitalisation of each of their cells' characters for one turn every three. The second one will be revealed in the next devlog once I actually implement it.

I planned for this to be a minor update, but features kinda snowballed as the mechanics in this update rely on each other, and there are UI additions I really want to push out as well, so you might have to wait a while. I'll try to release it around July 16th.

Implemented the second new element, which involves a brand new mechanic! Venom enemies add one to the player's poison damage counter. Poison damage is dealt every second.

You'll also notice the new attack indicator UI on the top right corner. I added that because some playtesters couldn't tell when enemy cells were going to attack. It's a much-needed addition that should have been implemented a lot earlier.

There's a new type of trap as well: poison traps deal their base damage when attacked and inflict poison on the player.


Poison is removed after typing any part of a healing cell or moving to the next level. This mechanic should force players to move more quickly and make healing cells more important.


Added a help dialogue box that triggers based on player actions rather than level progression to teach new players about more complex parts of the game. Because more information is presented in a direct and graphic way, there's less that needs to be explicitly stated in help text (though the encyclopedia is available for anyone who wants to read about every mechanic in detail). 

I still need to do some testing once I finish implementing it, and I want to add a few new enemies. But the vast majority of the work is done, so I'm probably releasing this update (1.1.0) tomorrow!

Update v1.1.0

I finally released the update just now. Unfortunately it was delayed due to hard-to-replicate bugs and IRL stuff. I need to go to bed right now as it’s almost midnight where I am now and I need to wake up early tomorrow. I’ll post more thoughts once I have time.

See the changelog for more details.

Sorry for two weeks of radio silence. I’m back now and ready to put more work into the game.

Currently playthroughs are still a bit tedious, the Touchtyper (medium) difficulty especially so, but it’s less of an issue now. I obviously want to fix that, but I plan to refactor code first. After that I want to add the ability to see records of your past games and the shortest completion time for each difficulty. I’ll use MessagePack to save and retrieve data as it appears to be a fast and space-efficient tool for C#.

I’ll probably release a small update this weekend.

(3 edits)

Released a small update with some bug fixes. Nothing exciting to show on that front yet, but I’m still working on saving and loading player data.

I’ve realized the importance of continuous feedback during the development process, as I only have a narrow and biased perspective on the game’s playability and what needs to be improved. Therefore, I’ve added a link to the rating form (drhippo.itch.io/grid-of-yendor/rate) to the game’s main menu. The changelog is now also available directly from there as well.

I experimented with messagepack and it turns out it does not work well with Unity at all. I switched to using Json.NET and implemented saving and reading records of past games. I still need to display those records, that will be when I have pictures to show.

Here’s the new game records UI. Of course, this is not the final version, but the basics are done now. I should be able to release the update within the next few days if everything goes well.

(1 edit)

Update v1.2.0

The game now saves statistics about previous games (completion time, score, etc.), and displays them in a neat table.

This update took a bunch of experimenting and backtracking. Most of the work isn’t visible to the player, but it’s still essential for making sure the saves are displayed properly.

Oh, and I fixed a bug with the “average WPM” in fact showing the rolling average WPM. It has been in the game since I implemented WPM calculations, so about a year now. I’m kind of embarrassed I didn’t notice it for so long, but no one else did either, so…

In other news, I’m participating in GMTK (again!); that’s why I was so keen to release this update before it starts. Will pause development on this game for a few weeks to focus on the jam.

Viewing posts 21 to 47 of 47 · Previous page · First page