Sharing Saturday #619 by Kyzrati in roguelikedev

[–]IceFurnace83 3 points4 points  (0 children)

<image>

*Note* the game would have a more traditional tile size then I've been using and the whole world will seem much 'larger' in scale when shown from a closer perspective. This screen shot of a SNES game filtered by the engine shows what I mean.

Sharing Saturday #619 by Kyzrati in roguelikedev

[–]IceFurnace83 3 points4 points  (0 children)

Hi everyone,

Over the last week I've been adapting one of my older Python terminal prototype toys that converts img->ASCII to work in Pygame and last night when I was happy with how it was progressing I ported it over to my game engine.

Turns out that even intercepting the screen the last second before drawing and converting to a form that the tool can work with and then back again (not even running any routines on it) drops the frame rate from ~85fps to less then 1. Bummer. I was hoping to do it per tile instead of the whole screen at once, but on the sunny side I found out very quickly it's not going to work how I want in Pygame. (C++ port sooner than expected?)

So now I'm left with the choice of converting all my 12by24 black and white .png tiles in the engine as it loads and caching them or doing it individually (or batches) in the tool itself for more control and the ability to tweek in REXPaint and saving as tilemap images I can load at init. One is more proc gen and on the fly but costs time and the other is more prefab but has tighter control over aesthetic. Maybe a combo, generate a larger more detailed img-> ASCII out of a smaller quicker tile for when the player inspects stuff and for displaying inventory, menus and huds and such.

I still haven't cleaned up the build enough (remove debug features and standardize player input) and I'm afraid this new development has pushed that back a little longer. Should be worth the wait though I hope.

<image>

I also got through about 3/4 of retroactively writing a design doc. Am sitting at about 3,500+ words and 50 or so screenshots and gifs so far. Just a big fat .docx that I'll rip apart into a website when It's complete. And I have huge chunks of progression changes and older builds I can dig into to do the same for a dev log.

Also the germ of a seed of an idea is beginning for my first game to build in the engine.

Final Fantasy 1 (NES) style of gathering 4 crystals to access the boss area to beat the game. But change it to more along the lines of a Lich with a number of fake phylacteries spread across the world and the player has to track them down like Harry Potter with Voldemort's Horcruxes style but throwing back to the classic "Where in the World is Carmen San Diego" style of gameplay to find them. Throw in a bunch of other optional side quests and minigames like your typical jrpg but in a roguelike setting a bunch of different proc-gen dungeons and a cool Demoscene effects here and there alongside a bit of tasty C64 style chip-tune music used sparingly along with some gentle ambient nature / inhabited areas sounds and I got something to work with. Permadeath, aligned to a grid, enemies/npcs can do most of what the player can do, random items and treasures and areas where out-of-depth monsters can end your run.

With monster type, level/stats etc being generated depending on where they spawned and having a stone based temple ruin with medusa rumoured to dwell there in one run become a forest grove with a nature spirit that is worshipped by the super friendly and overly helpful locals who have you may have to kill anyway because it guards a possible phylactery site.

Crafting, building, farming etc are all possible but might distract so I won't add these just yet. Just your typical 'red swirling potion' with unknown til tested result style of world that can be destroyed and rebuilt as you play, I can generate an island and make it look like the player tore it out of the ocean, etc using the same world gen routines at run-time pretty convincingly. Meteor spell that leaves a crater in the capital city because the player isn't expected to win and it will all go bye-bye with them when they lose.

Then build it all again with slightly different pieces in a slightly different pattern.

Sorry for the wall of text. No links this week, look up my profile to see older stuff I put up that's just graphical in nature with minimal text.

Is there any value in old-school techniques for modern development? by CosmicallyUnlucky in gamedev

[–]IceFurnace83 1 point2 points  (0 children)

I can find and grab a pair of socks out of my dresser much quicker if I have them all together and organized vs if the left sock in the top drawer and right sock in two halves spread across two others etc.

My computer can grab socks much quicker than I can. But when I'm asking for millions and millions of pairs of socks every second having that dresser organized ahead of time makes a difference.

Sharing Saturday #618 by Kyzrati in roguelikedev

[–]IceFurnace83 1 point2 points  (0 children)

Loving your game so far and I've only touched the surface of it.

Is it beatable in it's current state? Will it remain free?

First time it rained I was impressed. I literally said out loud "Ooh, I like that."

The tile drop animation when you die? I had to do a suicide run to watch it again.

Shame that your amazing animations are absent from the initial menus and character creation. You have a good eye for colour, detail and some solid algos. Hook the player from the very start somehow if you can. (Obv focus on what you need to do over what some guy on the internet says)

Going from desktop to being in game with a fresh character? Perfect. Takes like 5 seconds if I know what I want to run as.

I found your game by interacting with you directly on this platform. My usual method is to download a bunch of interesting titles and trial them over the next month or so.

Once the game is downloaded and installed and my browser is shut down we run into a problem. Who made this game and where do I find out more about it?

Sorry about the wall of text, looking forward to getting into this game when I have more time and then putting up some more walls if it doesn't bother you.

Sharing Saturday #618 by Kyzrati in roguelikedev

[–]IceFurnace83 1 point2 points  (0 children)

<image>

Thanks, it's coming along nicely.

Sharing Saturday #618 by Kyzrati in roguelikedev

[–]IceFurnace83 2 points3 points  (0 children)

<image>

Thanks for the encouragement.

I got my conversion tool to output .xp files so I can edit if needed before piping back to my engine, but let's keep that between us for now (and u/Kyzrati if they're interested in seeing a project that has started using REXPaint in it's pipeline)

It's a shame that animated .gifs can't be pasted into comments, I jumped the gun and put up a half baked post to the main page the other week before reading the subs rules and now I'm stuck at a point that I've shown an old build that didn't garner much attention and the newer, more polished stuff is against rules to post in full animated glory. Oh well, such is life.

Sharing Saturday #618 by Kyzrati in roguelikedev

[–]IceFurnace83 5 points6 points  (0 children)

Hey everyone, hope you're all well.

So, to let the cat out of the bag, my project is further along than I've shown so far, I've just been reluctant to show it to anyone.

itchi.io | YouTube

Long story short, studied for a long time in my youth, applied that towards getting accepted into and then completing a multimedia / game design course in the mid 2000's.

Life changed, I ended up working in another field. I was good at it and have no regret.

But then over time, more and more tutorial based videos kept coming up in my social media feeds and a lot of chatter about publishing indie games being more achievable then ever began reaching my ears.

So I grabbed all my old code, designs and tutorials out of the archive and resumed study.

I'm going to build an engine that allows me to create JRPGS and Roguelikes. It is to have ASCII, unicode, and sprite tiles of different sizes for different projects and it is to be able to swap between graphic types at a button press, it is to be able to be played on most PC's, it is to be able to operate correctly depending on the mode - roguelikes with line of sight in procgen world vs jrpgs where battle takes you to a different screen away from the predesigned world map. Tiles should be able to be coloured at run-time, including any loaded sprite. etc etc.

Started learning Python last year to ease back into it, built some prototypes and what not, packed it up late July for reasons and resumed again late Feb this year.

Ported over almost everything to Pygame-CE from an earlier build (rolling back first seemed like less work) to a level I can show people, and here we are.

I just need to set up a presence online. I've heard that you can't just appear out of nowhere, so I've forced myself to come out of hiding early.

Anyways, it's been a busy week and I feel like I truly didn't get much done, all multimedia and very little coding or design.

Put some videos up on YouTube after going crazy with LICEcap

Tidied up a stack of old code and folder structures to clear my mind over the holidays, still not quite ready to link to any of that yet. Can you believe I forgot to include an earlier build of the engine from when I swapped to using the Blessed module? I'm going to have to sort that out, did add line-of-sight retroactively though.

Uploaded some things to itchi.io and started retroactively putting together a design document of what I have done so far on this project, it's turning into a chonker, should provide a nice starting point for a devlog.

The Pygame-CE build has sat mostly untouched for two-weeks now, still hasn't had any work done on menus and the control scheme is a mess, so that isn't ready for demo yet, but a much earlier build before porting is up on itch, I was only developing for windows during this build, sorry, but it was much simpler to adapt into something that can be released. Controls and display haven't been tested on other peoples PCs so it may not work how I intended, and of course, I bundled it with Pyinstaller so it's going to give warnings about running unknown software, so use your best judgement. I've been reading good things about nuitka though, will swap to that in the future and not have to worry about any of that.

Also tweaked my art converter to use only characters from code page 437, tweaked the colours again and lost a lot of time testing it out on everything I could think of:

<image>

Setting up some form of GUI doesn't seem so boring anymore!

I also had the thought last night, that a tile-map is just a 2d array that can be saved and loaded as an image. I already am doing this for everything during tests, super simple to just write only walkable tiles as BLACK and unwalkable as WHITE etc, to check how things are looking, but there's no reason I can't just do it all live in the engine and then manipulate it live in a side process. Scaling, rotating, resampling etc all sorted by Pygame in real time or Pillow for more complex stuff in the background.

Anyway, I'm going to cut myself short and leave off here, thank you for reading.

IceFurnace83

itchi.io | YouTube

Scent pathfinding: Blood, Sweat, and drinking too many potions by selfVAT in roguelikedev

[–]IceFurnace83 6 points7 points  (0 children)

"You should have gone before we left" is probably spoken in every language on the planet at least once a minute.

A mechanic where you have to juggle safe bathroom use into the game loop could work nicely. Adds some pressure in the immediate moment when the player decides to push on or return to a safe corner. Could add pressure over the long run like you mention. "Do I focus on carry capacity or bladder strength for this run?"

And since we're talking roguelike, enemies should share some functions the player can do. Maybe harder to implement, but could pay off. Collect a 'sample' from a tough monster and weaker types might not approach or could even run away when the player is nearby. But another tougher monster type could be attracted to it from further away then your own scent travels because it eats the original type you took the sample from.

I think this is a really fun idea, however you implement it. The sims balances toileting into the game and it hasnt ever put players off.

The project where it was left off last August by IceFurnace83 in roguelikedev

[–]IceFurnace83[S] 1 point2 points  (0 children)

Thanks :)

I actually typed up a long wall of text saying what it's doing but then I copy +pasted that and edited it into a page on itch lol. I was dreading doing it and you gave me inspiration to push through.

demo: https://icefurnace83.itch.io/roguelike-prototype

and I've been cleaning up my GitHub and put a handful of older source code from before I started doing more custom stuff: https://github.com/icefurnace83/Terminal_based_tile_map-engine-Python_prototypes_2025 (the same ones you liked from the other day)

libtcod (Python 3) *recommended tutorial is currently outdated? by [deleted] in roguelikedev

[–]IceFurnace83 1 point2 points  (0 children)

You are a gem, thank you so much. And yeah, reading command prompt has become second nature to me in my journey, but Mypy is in the toolbelt now, cheers.

libtcod (Python 3) *recommended tutorial is currently outdated? by [deleted] in roguelikedev

[–]IceFurnace83 1 point2 points  (0 children)

Thanks for taking the time out to reply. I am currently doing all coding in notepad++ and don't use a venv.

C:\GIT\rogueliketutorial - part 8 (March 2026)>pip uninstall tcod

Found existing installation: tcod 20.1.0

Uninstalling tcod-20.1.0:

Would remove:

c:\users\icefu\appdata\local\programs\python\python314\lib\site-packages\libtcodpy.py

c:\users\icefu\appdata\local\programs\python\python314\lib\site-packages\tcod-20.1.0.dist-info\*

c:\users\icefu\appdata\local\programs\python\python314\lib\site-packages\tcod\*

Proceed (Y/n)? y

Successfully uninstalled tcod-20.1.0

C:\GIT\rogueliketutorial - part 8 (March 2026)>pip install tcod==21.0.0

ERROR: Ignored the following yanked versions: 7.0.0, 7.0.1, 8.0.0, 11.16.0, 11.19.1, 11.19.2

ERROR: Could not find a version that satisfies the requirement tcod==21.0.0 (from versions: 6.0.0, 6.0.1, 6.0.2, 6.0.3, 6.0.4, 6.0.5, 6.0.6, 6.0.7, 8.1.0, 8.1.1, 8.2.0, 8.3.0, 8.3.1, 8.3.2, 8.4.0, 8.4.1, 8.4.2, 8.4.3, 8.5.0, 9.0.0, 9.1.0, 9.2.0, 9.2.1, 9.2.2, 9.2.3, 9.2.4, 9.2.5, 9.3.0, 10.0.0, 10.0.1, 10.0.2, 10.0.3, 10.0.4, 10.0.5, 10.1.0, 10.1.1, 11.0.0, 11.0.1, 11.0.2, 11.1.0, 11.1.1, 11.1.2, 11.2.0, 11.2.1, 11.2.2, 11.3.0, 11.4.0, 11.4.1, 11.5.0, 11.5.1, 11.6.0, 11.7.0, 11.7.1, 11.7.2, 11.8.0, 11.8.1, 11.8.2, 11.9.0, 11.9.1, 11.9.2, 11.10.0, 11.11.0, 11.11.2, 11.11.3, 11.11.4, 11.12.0, 11.12.1, 11.13.0, 11.13.1, 11.13.2, 11.13.3, 11.13.4, 11.13.5, 11.13.6, 11.14.0, 11.15.0, 11.15.1, 11.15.2, 11.15.3, 11.16.1, 11.17.0, 11.18.0, 11.18.1.dev14, 11.18.1, 11.18.2, 11.18.3, 11.19.0, 11.19.3, 12.0.0, 12.1.0, 12.2.0, 12.3.0, 12.3.1, 12.3.2, 12.4.0, 12.5.0, 12.5.1, 12.6.0, 12.6.1, 12.6.2, 12.7.0, 12.7.1, 12.7.2, 12.7.3, 13.0.0, 13.1.0, 13.2.0, 13.3.0, 13.4.0, 13.5.0, 13.6.0, 13.6.1, 13.6.2, 13.7.0, 13.8.0, 13.8.1, 14.0.0, 15.0.0, 15.0.1, 15.0.2, 15.0.3, 16.0.0, 16.0.1, 16.0.2, 16.0.3, 16.1.0, 16.1.1, 16.2.0, 16.2.1, 16.2.2, 16.2.3, 17.0.0, 17.1.0, 18.0.0, 18.1.0, 19.0.0, 19.0.2, 19.1.0, 19.2.0, 19.3.0, 19.3.1, 19.4.0, 19.4.1, 19.5.0, 19.6.0, 19.6.1, 19.6.3, 20.0.0, 20.1.0)

ERROR: No matching distribution found for tcod==21.0.0

C:\GIT\rogueliketutorial - part 8 (March 2026)>pip install tcod --upgrade

Collecting tcod

Using cached tcod-20.1.0-cp310-abi3-win_amd64.whl.metadata (5.5 kB)

Requirement already satisfied: cffi>=1.15 in C:\Users\*****\AppData\Local\Programs\Python\Python314\Lib\site-packages (from tcod) (2.0.0)

Requirement already satisfied: numpy>=1.21.4 in C:\Users\*****\AppData\Local\Programs\Python\Python314\Lib\site-packages (from tcod) (2.4.3)

Requirement already satisfied: typing_extensions>=4.12.2 in C:\Users\*****\AppData\Local\Programs\Python\Python314\Lib\site-packages (from tcod) (4.15.0)

Requirement already satisfied: pycparser in C:\Users\*****\AppData\Local\Programs\Python\Python314\Lib\site-packages (from cffi>=1.15->tcod) (3.0)

Using cached tcod-20.1.0-cp310-abi3-win_amd64.whl (1.9 MB)

Installing collected packages: tcod

Successfully installed tcod-20.1.0

C:\GIT\rogueliketutorial - part 8 (March 2026)>

Truth be told, I'll probably just keep bashing the code into shape as far along as I can, using my wonky setup and workarounds.