another one IVAN fork

Jan 12, 12:29 am
Joined: Sep 3, 2024
Occupation: Childcare Provider
Location: Victoria, British Columbia
Interests: Retro gaming, retro computers, TTRPGS, painting and crafting miniatures and terrain, wargames
Posts: 10
I've been playing IVAN for at least 20 years now, what's another 7? I'll check back often!
Jan 12, 3:14 pm
Joined: Sep 5, 2010
Interests: make more ivans!
Posts: 138
in the end of the day… our corporation is always happy to serve our customers! here is win32 preview version some of our customers asked for. don't forget to visit our store to buy skins and shiny new DLCs!

SPOILER ALERT. Click here to see text.
as i don't have windows, this is cross-compiled, and tested (just a little) with Wine. i don't know if it will work on the real system, sorry. the archive includes current source code snapshot, and executable binary.

note that this is very WIP: expect crashes, broken quests, and various other weird things. also, community content is not ported yet.

i will upload new builds when i see fit.


upd: quickfix for one crash (wrong config value in "define.dat", lol).
Attached files
k8ivan-600112-1.7z (7.3 MB)
Jan 13, 1:47 pm
Joined: Sep 5, 2010
Interests: make more ivans!
Posts: 138
copypasted most new materials and liquids from the comm fork… and i'm not sure if i like it. maybe it's simply because i used to the old set, and confused by the new things (and i really do), but maybe it's because there is too much almost similar things. tbh, the game starting to look filled with… well, fillers: a lot of "almost the same" items, differs in almost nothing, creating illusion of rich content without the real content itself.

besides, the game started generating CROWDS of golems in UT1. most new materials are ok for golems, and there are many weak golem possibilities… and i DEFINITELY don't like it. it feels like a very different game, which only looks like I.V.A.N. i mean, hordes of golems on UT2? 'cmon! (actually, even on UT1.) seeing golem for the first time should be terrifying. in the previous versions golems sometimes spawns in UT, but they were quite rare, and each encounter was terrifying. now it is almost trivial: "eh, another golem. get out of my way, you stupid thing!"

for the time being i will prolly revert all changes. or block new content from appearing in the game: no golems for new materials, no item config extensions… and no way to harden into new things too. this is because hardening is more-or-less balanced around current material chains. with new materials there, everything need to be rebalanced: materal probabilities in items, probabilities of SoHMs, and so on.

nope. i prolly revert most added things. i appreciate all the hard work community put into this new content, and it is prolly my fault trying to simply dump it in k8ivan. i hoped that it would work… but no. it simply killing the game.

i believe that comm. fork was gradually rebalanced, so new content works there. i mean, adding new materials to weapons, for example. it means that the game has wider choice of things to spawn, and doesn't have to resort to golems. without such balancing adding dozens of new materials simply destroys everything.

so i think that i will have to rework new dungeons and characters, replacing new comm. materials with ones already in the game.

i prolly need to play more of comm. fork games too, to see if it has the same feel.
Jan 13, 3:08 pm
Joined: Sep 5, 2010
Interests: make more ivans!
Posts: 138
ok, i'll try to forbid golems from weak materials first. this should prevent low-tier golems spawns in UT, and should not affect the game. i mean, who would want to create a cheese golem anyway, wasting the scroll on it? it is fun, of course, but this is "one-time fun", doesn't worth ruining the game.
Jan 13, 4:07 pm
Joined: Apr 2, 2014
Occupation: Navastating
Location: Aslona
Posts: 781
Golems needed quite a bit of rebalancing after all the new materials were added. I think they were made much more rare and their stats were changed a bit? Same for equipment - a lot of material probabilities were tweaked in the base game.

While I agree food golems are simply a comic relief, I really like some of the new quick golems (bamboo golem, some cloth golems), while liquid and gas golems are really "fun" (they spray their liquid/gas around on death, so killing a mustard gas golem is... interesting).

BTW, if you haven't seen the bamboo golem vault in UT, I think that one is really fun.
Jan 13, 5:04 pm
Joined: Sep 5, 2010
Interests: make more ivans!
Posts: 138
i haven't looked at dungeon changes in comm. fork yet, only to new materials, and to some new items. comparing and porting those things is mostly mechanical work, after all. but for dungeons i prolly need to write some tool to visualise them, because it is hard to build a mental picture of a dungeon from textual description (especially with multilayered special room maps).

tbh, i always wanted to write a kind of "visual dungeon builder" (and visual item/material editor too). maybe i'll do it this time instead of looking at walls of script text.


i fully agree that more materials is more fun, and edible golems are really fun too. but i prolly need to introduce "chance to make a golem" instead of simply "golem allowed" boolean. this way we can both have our lunch and eat it too.

i decided to not revert the changes, and try to think out the way to incorporate them instead, 'cause i really love all new things added.


the biggest problem is that i don't understand how the game calculates danger levels and spawn chances, so i prefer to not touch that code. i have a very rough idea of it, but as this is the core of the game, any change there may break everything. and i won't be able to tell if this is due to my changes in the code, or due to tweaking some probabilities, or if this is simply a bug i introduced.

that is, i tried the lazy route, and failed. now i'll try it for real.


still, the problem with SoHM needs to be solved too. SoHM basically skips materials with Int requirement much lower than the player's Int, but i feel that it needs some rebalancing too. it currently simply makes skips gradually harder with each step. maybe it should look not only on the number of steps, but on Int requirement difference too, to easily skip various trash materials… dunno, i need to write a "material chain visualiser" first, to see all new chains, and then try several approaches to find a good one.
Jan 13, 7:39 pm
Joined: Sep 5, 2010
Interests: make more ivans!
Posts: 138
and a side note: you may noticed the SQLite amalgamation in source archive, and wonder what the hell it is doing there? well, i have the answer! it is to make the code big… oops. wrong one. i actually plan to store hiscores in sqlite database. and not only hiscores, but all things the game shows you when you're dead: message history, detiled kill statistics, and so on. hey, it's important info (which nobody needs, of course). and instead of inventing my own storage format for it, i'd better use SQLite. tbh, i want save games to be SQLite databases too, but this is too much work. maybe someday…

to be even more honest, i want EVERYTHING to be stored in SQLite database. imagine how easier it would be to manage materials, items and such if you can use SQL queries to find various things about them? you want to see the hardening chain? ok, here's SQL query for ya. you want to know which items can use the given material? SQL query to the rescue! the possibilities are infinite.

i will prolly experiment with converting scripts to SQLite db. let's see how far i could take it.
Jan 14, 12:58 am
Joined: Sep 3, 2024
Occupation: Childcare Provider
Location: Victoria, British Columbia
Interests: Retro gaming, retro computers, TTRPGS, painting and crafting miniatures and terrain, wargames
Posts: 10
Trying it now- I use Windows 11. Works so far. I tried to change the resolution but that made it crash but the magnification function works fine.

Really loving the changes so far. I hadn't realized how much I'd gotten used to some of the QOL stuff in the newer IVAN release but other than that I'm really loving all the popups telling me what weapon is on the ground, how it compares to my current weapon, all the colour coding etc.

Are there plans to have pop-ups showing what items are on the ground when there's a stack as well?
Jan 14, 1:01 am
Joined: Sep 3, 2024
Occupation: Childcare Provider
Location: Victoria, British Columbia
Interests: Retro gaming, retro computers, TTRPGS, painting and crafting miniatures and terrain, wargames
Posts: 10
Oh one thing I've noticed about the 2021 IVAN is that I've always felt leprosy was REALLY easy to contract- almost every run going through the UT I had to go back to the doctor at least once to get healed. If you're looking at balance things you definitely don't want porting over from the newer version.

I think your complaints about the newer version are legit, but I also am aware that it was a huge update that was never properly balanced.
Jan 14, 3:36 am
Joined: Sep 5, 2010
Interests: make more ivans!
Posts: 138
Yancakes wrote
Trying it now- I use Windows 11. Works so far. I tried to change the resolution but that made it crash but the magnification function works fine.
hm. it should not crash (obviously , just change the resolution on restart. but tbh, that part wasn't really tested: i set the resolution once, and never touched it again. thank you, i'll take a look!

Yancakes wrote
I hadn't realized how much I'd gotten used to some of the QOL stuff in the newer IVAN release
like what? maybe i'll eventually port them too. just throw all your wishes and crazy ideas into me, and something will stick.

Yancakes wrote
but other than that I'm really loving all the popups telling me what weapon is on the ground, how it compares to my current weapon, all the colour coding etc.
thank you! the colors should be configurable, but… k8ivan has only one active user so far, and he never complained.

Yancakes wrote
Are there plans to have pop-ups showing what items are on the ground when there's a stack as well?
you mean the whole stack, not just comparisons? yes, i will prolly do it later.

the first version of item comparison was writing messages into log window, and i didn't want to clutter the log, so i implemented only the most necessary stats. when i switched to popups, i basically kept the same code, because i wasn't sure if it will work at all, and if i will like it or not. and then i simply forgot to improve it. so i will definitely add other things there.


Yancakes wrote
Oh one thing I've noticed about the 2021 IVAN is that I've always felt leprosy was REALLY easy to contract- almost every run going through the UT I had to go back to the doctor at least once to get healed.
i remember that this was the problem in some older IVAN versions too. it was either fixed in the mainline, or in some fork from which i inherited it.

thank you for pointing that! i definitely don't want leprosy to be that easy to get. it is mostly just an annoyance (run back, return, run back, return), and it doesn't feel like something interesting if it happens too often. you get used to it, and it's harder to miss it accidentally. so i'm with you here.

Yancakes wrote
I think your complaints about the newer version are legit, but I also am aware that it was a huge update that was never properly balanced.
eh… it is really hard to balance such huge and mostly random game as IVAN, especially considering that the game basically a black box. we can change some values here and there, but it is not easy to predict the outcome. and after a lot of playing you got used to it, and may honestly think that it is perfectly balanced.

so i'm not blaming the team for that. just wrote some of my thoughts as somebody who missed almost a decade of updates. sadly, IVAN lacks proper tools (actually, any tools to work with its databases, and this makes everything really hard and tedious. like, if you want to add a new material, you also have to go through most items, adding new material configs, tweaking the probabilities, and such. it quickly gets out of control.

i am trying to convert scripts to SQLite database now, just to see how it goes. if i'll ever succeed, it would be much easier both to query, and to change things. but i need to create a good DB schema for that… and i already redesigned the schema like dozen times.
Jan 14, 5:45 am
Joined: Apr 2, 2014
Occupation: Navastating
Location: Aslona
Posts: 781
I would very much like to see the visualizers.
Jan 14, 2:30 pm
Joined: Sep 5, 2010
Interests: make more ivans!
Posts: 138
that's what we need SQL queries for! of course, while writing the converter, i hit crash bug in my Oberon compiler. i HAET chain bug explosion!
Jan 14, 8:30 pm
Joined: Sep 5, 2010
Interests: make more ivans!
Posts: 138
i finally found the bug in my compiler (in case you wonder, yes, i am that crazy: i using my own Oberon compiler written from scratch as my main programming tool). and i partially converted .dat files to SQLite db. i am not happy with the result yet, but i'm planning to do it in two stages: first, full conversion to the current database schema. that schema is not ideal, nor even good, but it will allow me to never ever reparse scripts again. from there, i can work with the DB i have, experimenting with various data representations, don't bother with text parsing anymore. and second, experiment with DB schemes (raw, dictionary, strictly key/value, etc.).

the main problem is that if i'll implement SQLite DB into the game, i'd have to stick with it. so it is better to spend some time trying various schemes than to implement the first one which came to my mind, and then force myself to use something which is barely usable. as i have no prior expirience with designing DBs for games like IVAN, R&D phase is inevitable.

of course, it is possible to convert db back to raw text files readable by the game, so if i'll manage to produce some usable tools, comm. fork may benefit from them too: just convert comm. fork dat files to database, run the tools, and convert it back. or, even better: switch to SQLite db too!
Jan 15, 3:10 am
Joined: Sep 3, 2024
Occupation: Childcare Provider
Location: Victoria, British Columbia
Interests: Retro gaming, retro computers, TTRPGS, painting and crafting miniatures and terrain, wargames
Posts: 10
vasiliy wrote
hm. it should not crash (obviously , just change the resolution on restart. but tbh, that part wasn't really tested: i set the resolution once, and never touched it again. thank you, i'll take a look!

I manually set the resolution, restarted the game was now the same size but the window was bigger- and then it crashed when after the intro title scrawl lol. Changing the resolution is pretty irrelevant when I noticed the magnifier setting though- setting it to like 6x was good (I'm on a 2k monitor), the only issue is that the graphics are a bit blurry which isn't a problem in the 2021 release.


Quote
like what? maybe i'll eventually port them too. just throw all your wishes and crazy ideas into me, and something will stick.
The main thing I was thinking isn't actually a problem- for some reason I thought in yours you couldn't use the arrow keys to go up and down.

The other thing off the top of my head would be having to click "Y" every time I want to open a door- I want to just be able to move in the direction of the door and my dude auto-attempts to open it. Maybe there's a setting I missed? It's a minor thing but stands out when a door takes like five tries to open.


Quote
thank you! the colors should be configurable, but… k8ivan has only one active user so far, and he never complained.
Conveniently I'm not the type of colour blind that can't tell red from green lol, but that might be an issue for some people!


Quote
you mean the whole stack, not just comparisons? yes, i will prolly do it later.
sweet!

Quote
the first version of item comparison was writing messages into log window, and i didn't want to clutter the log, so i implemented only the most necessary stats. when i switched to popups, i basically kept the same code, because i wasn't sure if it will work at all, and if i will like it or not. and then i simply forgot to improve it. so i will definitely add other things there.
I REALLY like the popups. It makes it much more convenient to see and compare what's in the stack rather than having to read the message log or open any inventory. This was an excellent choice.



Quote
i remember that this was the problem in some older IVAN versions too. it was either fixed in the mainline, or in some fork from which i inherited it.

thank you for pointing that! i definitely don't want leprosy to be that easy to get. it is mostly just an annoyance (run back, return, run back, return), and it doesn't feel like something interesting if it happens too often. you get used to it, and it's harder to miss it accidentally. so i'm with you here.
yah leprosy should be rare and interesting to deal with.

Quote
eh… it is really hard to balance such huge and mostly random game as IVAN, especially considering that the game basically a black box. we can change some values here and there, but it is not easy to predict the outcome. and after a lot of playing you got used to it, and may honestly think that it is perfectly balanced.

so i'm not blaming the team for that. just wrote some of my thoughts as somebody who missed almost a decade of updates. sadly, IVAN lacks proper tools (actually, any tools to work with its databases, and this makes everything really hard and tedious. like, if you want to add a new material, you also have to go through most items, adding new material configs, tweaking the probabilities, and such. it quickly gets out of control.

i am trying to convert scripts to SQLite database now, just to see how it goes. if i'll ever succeed, it would be much easier both to query, and to change things. but i need to create a good DB schema for that… and i already redesigned the schema like dozen times.

That sounds like a lot of work, I always wondered why I didn't see more forks for IVAN when some roguelikes seem to be flush with them. It's such a great game so I'm absolutely thrilled to see ANYONE working on it, and I will play your version when I play for the time being! Thank you so much for your work
Jan 15, 3:13 am
Joined: Sep 3, 2024
Occupation: Childcare Provider
Location: Victoria, British Columbia
Interests: Retro gaming, retro computers, TTRPGS, painting and crafting miniatures and terrain, wargames
Posts: 10
Oh yeah- are the noxious orchids one of yours? I don't remember them. They are scary lol
Jan 15, 3:17 am
Joined: Sep 3, 2024
Occupation: Childcare Provider
Location: Victoria, British Columbia
Interests: Retro gaming, retro computers, TTRPGS, painting and crafting miniatures and terrain, wargames
Posts: 10
I just ran in to an ommel cerumen golem in UT1 and eating it after killing it didn't increase my wisdom

EDIT: I turned on wizard mode- it took three whole golems worth of ommel cerumen to get a stat up.
Jan 15, 4:24 pm
Joined: Sep 5, 2010
Interests: make more ivans!
Posts: 138
wow. SQLite rox.
how much items we have in db?
SELECT COUNT(name) FROM objects WHERE base=0 AND class<>name ORDER BY name;
well, 340.
now for something more interesting: how many items can be made from balsa wood?
SELECT objects.id, objects.class, objects.name, objects.config FROM objects
INNER JOIN definitions ON definitions.objectid=objects.id AND
  definitions.schemaid IN (SELECT id FROM schemas WHERE class='item' AND name LIKE 'mainmaterialconfig') AND
  svalue LIKE '%balsa%';

and the reply:
| id  | class |     name      |    config     |
|-----|-------|---------------|---------------|
| 484 | item  | meleeweapon   | QUARTER_STAFF |
| 508 | item  | meleeweapon   | ROLLING_PIN   |
| 752 | item  | helmet        |               |
| 835 | item  | stick         |               |
| 838 | item  | mangoseedling |               |
DB scheme still sux, though. but at least this is something i can experiment with.
Jan 15, 4:47 pm
Joined: Sep 5, 2010
Interests: make more ivans!
Posts: 138
Yancakes wrote
I manually set the resolution, restarted the game was now the same size but the window was bigger- and then it crashed when after the intro title scrawl lol.
yes, changing the resolution increases internal game resolution, not scaling. you have to use scale setting to make the window bigger then. as you may know, internally the game is using hardcoded 800x600 bitmap to render everything. i tried to un-hardcode that, but it may fail for too big or too small resolutions, or fail randomly due to me forgetting to unhardcode something somewhere.

config window needs help text, badly. some owls there are not what they seem to be!

Yancakes wrote
the only issue is that the graphics are a bit blurry which isn't a problem in the 2021 release.
it currently using simple bilinear filtering (just OpenGL blit). i am planning to change that to use oversampling. i.e. the picture will be crispier, and "sharp pixels" mode will look much better. it's not hard to do, but there are always other things to implement first, so it always slips to the bottom of the list.


Yancakes wrote
The main thing I was thinking isn't actually a problem- for some reason I thought in yours you couldn't use the arrow keys to go up and down.
you can even use ctrl+arrow for "Go" command. and the player will follow tunnel turns.

Yancakes wrote
The other thing off the top of my head would be having to click "Y" every time I want to open a door- I want to just be able to move in the direction of the door and my dude auto-attempts to open it. Maybe there's a setting I missed? It's a minor thing but stands out when a door takes like five tries to open.
yes, there is even a setting "Kick closed doors" there, which you prolly noticed. what you haven't noticed, i believe, is that there are several valid anwers on "do you want to open … door [y/n]". you can simply press the corresponding direction key again, and it will be counted as "yes". i.e. just press the direction key until the door opens, you don't even need to read that message.


Yancakes wrote
I REALLY like the popups. It makes it much more convenient to see and compare what's in the stack rather than having to read the message log or open any inventory. This was an excellent choice.
thank you! it is one of those things which seems obvious… when implemented. i now cannot understand how i didn't thought about it before, and how i managed to play without it. but it took me amost two decades to realise that i need it.


Yancakes wrote
That sounds like a lot of work, I always wondered why I didn't see more forks for IVAN
have you ever looked at IVAN code? i spent a lot of time restructuring it. it is still shit, but now it stinks slightly less.

Yancakes wrote
It's such a great game so I'm absolutely thrilled to see ANYONE working on it, and I will play your version when I play for the time being! Thank you so much for your work
thank you! sadly, i don't know if (or, rather, when) i'll run out of steam again, but until then… i'm living in Ukraine, so it's hard to predict anything.

i love roguelikes, and played a lot of them, including much hyped ADOM and DF. but there is only one game i'm still playing after almost two decades, and only one game in which i want to invest my coding time. among roguelikes, i mean.

tbh, i really wonder why IVAN is not widely known. yes, it is mindless fun, but there is surprisingly deep and rich game under that cover. maybe it's just because not many people managed to get under the cover. but it seems that those who did became dedicated IVAN followers.
Jan 15, 4:53 pm
Joined: Sep 5, 2010
Interests: make more ivans!
Posts: 138
Yancakes wrote
Oh yeah- are the noxious orchids one of yours? I don't remember them. They are scary lol
oh, missed this one. they prolly came from CLIVAN or some other fork. k8ivan was the amalgamation of several forks when i created it. LIVAN, IVANX, CLIVAN, Alien Mod, community fork — i robbed everyone i could.
Jan 15, 4:58 pm
Joined: Sep 5, 2010
Interests: make more ivans!
Posts: 138
and btw. if you'll look into k8ivan directory after the first run, you'll find ".ivan.keys.rc" file there. it is not just a help, this is actual keybind config the game is using.
Jan 16, 4:41 am
Joined: Sep 5, 2010
Interests: make more ivans!
Posts: 138
moved hiscore table to SQLite database. the game will still show top 100 entries, but there is no reason to remove anything from db, so db will never be wiped. now i can start accumulating high-scores again, and check what will be there in another 20 years.
Jan 16, 7:39 am
Joined: Apr 2, 2014
Occupation: Navastating
Location: Aslona
Posts: 781
vasiliy wrote
config window needs help text, badly. some owls there are not what they seem to be!

If you haven't done it yet, grab the Options help text from vanilla. It should describe at least some of the configs.
Jan 16, 7:41 am
Joined: Sep 5, 2010
Interests: make more ivans!
Posts: 138
thank you, i'll take a look!

meanwhile, i implemented saving massacre history to hiscores db. it is not possible to view it yet, but at least it is preserved.
Jan 16, 6:56 pm
Joined: Sep 5, 2010
Interests: make more ivans!
Posts: 138
The Main Problem of I.V.A.N. Development…

…is insolveable.

somehow you need to convince yourself to stop "testing the game" (aka playing, and playing, and playing, and pla…), and start coding. but hey, what if i'll catch some bug on the next playthrough? ok, just one more time…
Yesterday, 1:09 am
Joined: Sep 5, 2010
Interests: make more ivans!
Posts: 138
i always wondered why backpack with powder has so little uses. so… i think that if you have "flaming something" in your inventory… we have several choices here.

first, the moment you pick up flaming thing and already have a backpack (or vice versa), the backpack should KABOOM! because why not? it's I.V.A.N. we are talking about!

second, we can turn backpack into a grenade instead. 'B'urn it (i already have that command for webs), and then throw away. kinda like Holy Grenade. this is less fun than KABOOM, but more useful.

by the way: if you're wielding a flaming weapon, it will automatically burn the webs. with a random chance, of course, but most of the time it succeeds. (this is already implemented.)


any other ideas how to turn the backpack into a grenade? i really love to do it, but i want flaming weapons to perform KABOOM! too.
Jump to