Cataclysm: Metal Gear Solid

Alright, figured I’d try compiling and running the 19th April (rev23b) version, so I can judge this based on the results as well as the poster. For reference, I’m running Ubuntu 12.10, with the standard gcc, make, and all that. I can also build vanilla DDA by just typing “make” in the source directory.

What I did was have Git open the nearest vanilla commit I could find (looks like this was built on 0.3?), and then extracted all the source files into my standard directory, in the hopes that I’d be able to get a decent diff on this (compare LazyCat’s changes with the vanilla version, in non-technical terms).

Here’s what happened:

[ul][li]First the game didn’t compile because all the audio functions were defined in catacurse.h and catacurse.cpp, which are Windows-only source files. Considering that audio calls are littered throughout the code, you really need to make sure that those functions are declared and defined somewhere that’s built under Linux (at a bare minimum, possibly dummied out, which is what I did).[/li]
[li]Then the game didn’t compile because the make file has apparently been edited to make Windows binaries regardless of the operating system? Dude, wtf? Didn’t the makefile already work under Windows? And even if not, why not just edit the Windows-specific parts? Why remove Linux support?[/li]
[li]So I grab the old makefile as well (I really should not need to do this >_>), and hurray, it actually builds this time. So I load it, and… black screen. Hmm. Force-kill the program? Oh, hey, that gets a result. No, I don’t want to quit, then. Hmm, old starting screen, maybe you didn’t base this entirely on 0.3.[/li]
[li]Random character, and… black screen again. Okay, trigger a force-kill again, confirm that I don’t want to exit the game, NOW it paints. Run around a bit, open the inventory, and… black screen. Oh, but I can use ANY keypress to get it to draw again, not just ctrl-c. But still. Dude. You broke something. And this is precisely the kind of thing you’ve been complaining about with vanilla DDA, except this time it’s a Linux bug. If you want to be taken seriously by other devs, fix your shit.[/li]
[li]In my first 5-ish minutes, I see some other drawing glitches, such as attack animations being so short that they’re just a brief flash (and sometimes don’t even get drawn); a bit of the options/help window failing to be erased (below the status sidebar); and confirmation boxes being positioned as if my window were WAY smaller. This is a significant downgrade in user experience, from the perspective of a Linux player using a terminal.[/li]
[li]Oh, hey, you show roofs? That’s kinda cool. Could do with a bit of refinement, IMO, but still a nifty idea.[/li]
[li]When I tried to get a diff using git, I saw something like 70,000 changed lines and 10,000 added lines. I don’t think that’s accurate (in particular, it looks like it marked every line in most files as changed, even when it didn’t appear to be). That’s going to make it really time-consuming to find and evaluate the changes you’ve made. Now, admittedly, this may be Git’s fault - but I’d still say it’s the responsibility of the Git devs or the code’s author to fix (or work around) that issue.[/li]
[li]Digging into the code itself… ah, yeah, this pre-dates the massive overhaul to the item system. Along with a bunch of other work that’s be done, I presume (although I did see a packed M72 LAW, and verified that it had been backported to the obsolete item system). Man, even if we did have a decent diff, that could still make it rather painful to get this to play nice with the current version.[/li][/ul]

So, basically, it’s buggy, it’s based on a heavily obsolete version, and it would be a major time sink to pick out all of your changes, given that I can’t get a good diff. In my personal experience, I see nothing that makes this particularly compelling. However, some people are enjoying this, so that’s good.

You know what I would call this? I’d call it a Windows-oriented fork. Some people may prefer your version. That’s okay. That’s what forks are for.

But, I’d consider this to be a separate-but-related project in terms of actually working with it. Maybe useful to crib some ideas from, or take particularly-compelling bits of code from (license permitting), but not something I’ll make any special effort to accommodate. If someone else wants to, fair enough, but I see no reason for me to.

And by the way, those too-short hit animations? I don’t know your actual intent, but I suspect that’s related to a fix you have for a Windows-specific crash bug. Thanks to a semi-anonymous stack trace submission, I believe we also fixed that (at least, TDW wasn’t able to reproduce the crash bug afterwards). Ours didn’t break Linux hit animations.

[quote=“Soron, post:41, topic:528”][ul][li]First the game didn’t compile because all the audio functions were defined in catacurse.h and catacurse.cpp, which are Windows-only source files. Considering that audio calls are littered throughout the code, you really need to make sure that those functions are declared and defined somewhere that’s built under Linux (at a bare minimum, possibly dummied out, which is what I did).[/li]

[li]Then the game didn’t compile because the make file has apparently been edited to make Windows binaries regardless of the operating system? Dude, wtf? Didn’t the makefile already work under Windows? And even if not, why not just edit the Windows-specific parts? Why remove Linux support?[/li][/ul][/quote]

This is Windows specific build. It does not work properly on Linux due to specific optimisation that needs to be done differently on Linux, it’s tagged in the code. If you can’t figure it out you should try asking me for help.

Why no Linux? Because my priority was to fix your broken Windows binary that is glitching and freezing instead of rendering and animating. I haven’t seen that kind of bugs in even the most amateur of games, that’s beyond buggy, simply non-working game. So I concentrated on Windows build as I felt sorry for people enduring these abnormally horrendous glitches you got there.

[ul][li]So I grab the old makefile as well (I [i]really[/i] should not need to do this >_>), and hurray, it actually builds this time. So I load it, and... black screen. Hmm. Force-kill the program? Oh, hey, that gets a result. No, I don't want to quit, then. Hmm, old starting screen, maybe you didn't base this entirely on 0.3.[/li]

[li]Random character, and… black screen again. Okay, trigger a force-kill again, confirm that I don’t want to exit the game, NOW it paints. Run around a bit, open the inventory, and… black screen. Oh, but I can use ANY keypress to get it to draw again, not just ctrl-c. But still. Dude. You broke something. And this is precisely the kind of thing you’ve been complaining about with vanilla DDA, except this time it’s a Linux bug. If you want to be taken seriously by other devs, fix your shit.[/li][/ul]

No, I did not break anything, I fixed many, many things. It’s just additionally optimised for Windows. You need to try Windows binary provided in the zip and you will see it works perfectly, smooth and fast, hundreds of times better, and prettier, and it is NOT CRASHING even with random NPCs turned on.

[ul][li]In my first 5-ish minutes, I see some other drawing glitches, such as attack animations being so short that they're just a brief flash (and sometimes don't even get drawn); a bit of the options/help window failing to be erased (below the status sidebar); and confirmation boxes being positioned as if my window were WAY smaller. This is a significant downgrade in user experience, from the perspective of a Linux player using a terminal.[/li][/ul]

It’s Windows specific build. I wish you just asked first. First batch of my bug-fixes are compatible with Linux:

[ul][li]When I tried to get a diff using git, I saw something like 70,000 changed lines and 10,000 added lines. I don't think that's accurate (in particular, it looks like it marked *every* line in most files as changed, even when it didn't appear to be). That's going to make it really time-consuming to find and evaluate the changes you've made. Now, admittedly, this may be Git's fault - but I'd still say it's the responsibility of the Git devs or the code's author to fix (or work around) that issue.[/li][/ul]

I was urging in several threads to merge it then when it was easy, I warned it would become increasingly difficult.

Here for example:
http://www.cataclysmdda.com/smf/index.php?topic=415.0

[ul][li]Digging into the code itself... ah, yeah, this pre-dates the massive overhaul to the item system. Along with a bunch of other work that's be done, I presume (although I did see a packed M72 LAW, and verified that it had been backported to the obsolete item system). Man, even if we did have a decent diff, that could still make it rather painful to get this to play nice with the current version.[/li][/ul]

I didn’t merge “massive overhaul” because there is nothing there in terms of game-play except bugs, too many bugs I didn’t want to fix all over again. I merged important bug fixes and changes from 0.4 and later, I just didn’t take the new bugs.

So, basically, it's buggy, it's based on a heavily obsolete version, and it would be a major time sink to pick out all of your changes, given that I can't get a good diff. In [i]my[/i] personal experience, I see nothing that makes this particularly compelling. However, some people are enjoying this, so that's good.

It is not buggy, just optimised for Windows. It is not based on obsolete version, it has most of the features from the latest build, minus bugs, plus hundreds of my own improvements and bug-fixes. You only have to try it on Windows, as is intended, to see it’s ten years ahead. Your build is obsolete compared to mine. What’s compelling about it? It’s enough that is working properly for Windows users, but there is more:

  • faster, smoother rendering, full and improved animations
  • dozens of improvements more, hundreds of bugs less
  • not crashing even with NPCs enabled
  • music and sound effects…

…in full detail:

[i]
NEW FEATURES:

  • music and sound effects
  • rounded lights for carrying light sources and on the ground
  • automatically shifts view forward to see more road when driving
  • automatically shifts view to keep target and character on the screen

BUG FIXES:

  • working animations on Windows, sleeping &waiting “fast forward”, as on Linux
  • optimised rendering, significant speed increase and much smoother game-play
  • flashlight to draw “gradual fade off” properly instead of only on one side
  • fixed disappearing headlights when car gets out of the view
  • included torch to give off light when dropped on the ground
  • show “Smash where?” and “Compare where?” messages

CHANGES:

  • vehiecle headlights have increased range
  • instead of grey “#” character darkness is completely black
  • cruise speed does not turn off upon impact, just sets to zero
  • road yellow lines visible with night vision and under low light
  • night vision with two shades of green, for lit and non-lit areas
  • (Windows) some brighter colors and more similar to Linux version

Cataclysm-MGS_rev19

  • Metal Gear ZK-Mk.3
  • enable/disable turrets individually
  • show available ammo for mounted turrets
  • show fuel tanks charges in constr. menu
  • range based mounted turrets targeting
  • prevent burst turrets shoot player
  • new flame bursts and trail effects
  • new explosion animations
  • mountable M72 LAW rocket launcher
  • animation for rockets smoke trails
  • beer also in cans not just in kegs
  • added moon phase indicator
  • extended monsters reaction to noise
  • read with wielded torch and candle light
  • added range info when looking around
  • some bugfixes from DDA v0.4 main branch
  • some additions from DDA v0.4 main branch
  • water sound effects: splash, swim, dive
  • game over will not delete save-file
  • combined looking around and shift-view
  • fixed remaining targeting bugs

MGSmod rev.23b

  • NEW ACTION: jumping
  • above ground z-levels
  • NPC commands: “wait here” and “follow me”
  • zombies in labs and silo launch room
  • glass walls and more excitement in labs
  • sound/noise when shooting stuff
  • firearms are more effective
  • proper monsters reaction to noise
  • fixed missile silo crash bug
  • remove missile and open hatch after launch
  • missile launch gas and fire animations
  • missile launch sound effects and messages
  • pavement ring around missile hatch
  • only one missile in a nuclear silo
  • spawn items if missile disarmed
  • underground/overground level indicator
  • indoor daylight shift-view lighting fix
  • fix for outdoor dawn/sunset lighting
    [/i]

What more? It’s better in every possible way. Do you really think anyone who has tried this would go back to play official build, especially on Windows? Why would they? What is compelling about your build compared to mine? Is there any one such thing, anything at all?

You know what I would call this? I'd call it a [b]Windows-oriented fork[/b]. Some people may prefer your version. [b]That's okay[/b]. That's what forks are for.

Around dozen lines need to be changed in order to make it compatible with Linux. I don’t have any desire or time to test it, so I don’t bother making it compatible with Linux at all, instead I extra optimise it for Windows.

But, I'd consider this to be a separate-but-related project in terms of actually working with it. Maybe useful to crib some ideas from, or take particularly-compelling bits of code from (license permitting), but not something I'll make any special effort to accommodate. If someone else wants to, fair enough, but I see no reason for me to.

You don’t think music and sound effects are compelling? And how about rounded lights, and improved lighting effects? How about proper monsters reaction to noise, how about driving and targeting shift-view? You just haven’t seen it yet. Play it on Windows for an hour or so, try to see all the new features and I dare you to tell me then if that’s not million times better.

And by the way, those too-short hit animations? I don't know your actual intent, but I [i]suspect[/i] that's related to a fix you have for a Windows-specific crash bug. Thanks to a semi-anonymous stack trace submission, I believe [url=https://github.com/TheDarklingWolf/Cataclysm-DDA/commit/013812de4dc9960a83099fba15a0c7b8ce3f3543]we also fixed that[/url] (at least, TDW wasn't able to reproduce the crash bug afterwards). Ours didn't break Linux hit animations.

My test show it all works properly on Windows.

What you have in your code is wrong in more than one way. You should not be creating a whole new window with absurdly small size of only one symbol just to display red background character, that’s insane in itself. However what was crashing the game in your build were non-checked coordinates getting out of viewing area and therefore out of range.

But those kind of problems are just a side-effect of far greater trouble. Your whole rendering loop is screwed up, it’s the most important thing in a game. You are just keep piling mistakes on top of old mistakes, producing more bugs than fixing. You have to stop adding new stuff and redesigning the code for the sake of aesthetics, you need to make the basic proper and the things you already have there to work as they should first.

Ah, cool, constructive reply :). Let’s see if we can get on that track, rather than bickering, yeah?

So, first of all: you say that your build is Windows-optimized. That’s pretty much what I concluded, yeah. Again, I’m not gonna use it, because I prefer when I don’t have to boot into Windows for games. But, for those who do play under Windows, it sounds like it’s useful. Especially because the game was originally developed for Linux, and even now that Whales is gone, most of the devs still appear to run Linux.

Now, in terms of your fixes to the code… perhaps you’d care to point me to where you fix vehicle headlights disappearing when the vehicle goes off-screen? And/or explain exactly how the render loop is screwed up?

By the way, I think we all recognize that the current codebase is all kinds of messed up. I’ve seen people fixing it, and I’ve tried to fix it myself, but unfortunately it seems like the more something is in need of a fix, the more arcane that bit of code is (and the harder the fix may be). Hence why I’m asking what the problems with the render loop are - if you’ve already figured out how it works and why it’s broken, that would potentially be rather useful.

Also, just to verify, you’re allowing your stuff to be used under the Creative Commons Attribution-ShareAlike 3.0 Unported License?

[quote=“Soron, post:43, topic:528”]Ah, cool, constructive reply :). Let’s see if we can get on that track, rather than bickering, yeah?

So, first of all: you say that your build is Windows-optimized. That’s pretty much what I concluded, yeah. Again, I’m not gonna use it, because I prefer when I don’t have to boot into Windows for games. But, for those who do play under Windows, it sounds like it’s useful. Especially because the game was originally developed for Linux, and even now that Whales is gone, most of the devs still appear to run Linux.[/quote]

I don’t think you would mind booting to Windows if you tried it out. Just play one game, just try it. I think you are up for surprise. I’d say you should have more concern for the Windows build as it is what’s representing the game, what majority of people is playing.

Now, in terms of your fixes to the code... perhaps you'd care to point me to where you fix vehicle headlights disappearing when the vehicle goes off-screen? And/or explain exactly how the render loop is screwed up?

There were several issues with vehicle headlights. That particular one was fixed later on in the main trunk as well. What remains is that lighting is fixed to hard-coded SEEX and SEEY defines for 25x25 grid, or at least was at the time I looked it, but still if you use larger view you will see the light gets cut of at 12 tiles distance when you walk away or shift the view.

Rendering loop is screwed up in many ways. Every piece of code writes or draws something on the screen arbitrarily using any one of more than few different ways to do it, where some ways are completely at odds with the rest of the code, writing over wrong windows, refreshing wrong windows, not using any windows, not refreshing, or even worse refreshing everything when it shouldn’t be refreshing anything. Everything is everywhere and coded in different ways to achieve the same thing, that’s wrong in itself and what makes everything screwed up. The code is C++ and yet is designed as if it is written in Assembler. I think I got at least 20% speed up just by removing redundant overwrites and refreshing of the screen. Additionally Windows build has one specific major mistake which is responsible all of its gltiching and lack of animation. I explained that here:

http://www.cataclysmdda.com/smf/index.php?topic=415.msg4309#msg4309

Also, just to verify, you're allowing your stuff to be used under the Creative Commons Attribution-ShareAlike 3.0 Unported License?

I don’t mind. I don’t see what difference any license makes when the code is given for free. What situation is it supposed to protect you from?

Other than the occasional targeting glitch (which can cause crashes), this really is fun to play. Never figured the MGS theme would fit in but it does so incredibly well. Made me laugh out loud a few times already.
Kudos on the speed and animation fixes.

I’ll be sure to keep my eyes out for any new revisions. (Sorry, not much else to say. It’s just… fun!)

Oops, I left that unfinished in the latest build. Got it now. Apart from that the game didn’t crash on me once since the first MGS build.

Never figured the MGS theme would fit in but it does so incredibly well. Made me laugh out loud a few times already. Kudos on the speed and animation fixes.

Yeah, it turned way better than I expected. Maybe any music and sound effects would fit just as well. I’m glad to hear I’m not the only one enjoying it, although I actually expected people would be far more excited about it.

I'll be sure to keep my eyes out for any new revisions. (Sorry, not much else to say. It's just... fun!)

In many ways this is pretty much it. I’ll just polish it a bit more, but I don’t know of any other bugs to fix or features to add. Except barrels, exploding barrels, they must be. So I’ll just try to script some missions and add some final goal, some kind of ending to the game. I think there is plenty of content already, lots of things to do, lots of items and everything, it all just needs to be connected with a story and missions. Missions that will walk you through the map to visit each area in a way you will need to utilise most of the items and weapons in as many different and unique ways and situations I can think of.

More buildings please, boats, abandoned cars, rails, trains and stations, airports and aircraft, more more more more!!!

Thanks Lazy

Well, I’ve had the starting NPC do some funky things when switching Z-levels. He’d appear on all 3 and I have no idea why.

I don’t mind. I don’t see what difference any license makes when the code is given for free. What situation is it supposed to protect you from?[/quote]
The general idea is that someone can’t yoink your code, then 1) claim it’s theirs, 2) release it under a different license (rent this cool post-apoc MGS game! only $20/month!).

I’ve been known to play buggy-but-functional Linux ports of games. Given that Cataclysm:DDA actually runs pretty well on Linux (and is easily fixable when it doesn’t), I’m personally going to stick with Linux builds. If I have a specific purpose, then sure, I’ll boot into Windows, but first it would have to get higher on my to-do list than writing more code.

That’s not to say I don’t have concern for the Windows build, mind you. I do want to see the game work well under Windows, and will gladly assist cooperative Windows devs. But, my own housekeeping efforts tend to be focused on eliminating the bugs and annoyances in the version that I use (partly due to being reminded of them constantly, and partly due to having more relevant expertise).

There were several issues with vehicle headlights. That particular one was fixed later on in the main trunk as well. What remains is that lighting is fixed to hard-coded SEEX and SEEY defines for 25x25 grid, or at least was at the time I looked it, but still if you use larger view you will see the light gets cut of at 12 tiles distance when you walk away or shift the view.

So you don’t actually have much that we don’t, in this case? Okay, let’s move along then.

Rendering loop is screwed up in many ways. Every piece of code writes or draws something on the screen arbitrarily using any one of more than few different ways to do it, where some ways are completely at odds with the rest of the code, writing over wrong windows, refreshing wrong windows, not using any windows, not refreshing, or even worse refreshing everything when it shouldn't be refreshing anything. Everything is everywhere and coded in different ways to achieve the same thing, that's wrong in itself and what makes everything screwed up. The code is C++ and yet is designed as if it is written in Assembler. I think I got at least 20% speed up just by removing redundant overwrites and refreshing of the screen. Additionally Windows build has one specific major mistake which is responsible all of its gltiching and lack of animation. I explained that here:

http://www.cataclysmdda.com/smf/index.php?topic=415.msg4309#msg4309

So… output.cpp and the use of ncurses are all kinds of messed up. Yeah, doesn’t surprise me - the original drawing code doesn’t seem to be the cleanest (and seems to sometimes follow bad C practices, rather than good C++ practices), which means that later coders copying the style are likely to copy mistakes. Add to that a gradual accumulation of lazy hacks, and… yeah.

That major bug in catacurse’s implementation of getch is interesting. That’s the kind of information I was hoping you’d have. I’m honestly not surprised that catacurse.cpp is buggy, seeing as it’s something that not many devs work on.

Okay, so, aside from the Windows-specific bugs in catacurse.cpp, what else sounds particularly interesting… you said you’ve fixed NPCs? Could you explain, say, one or two of the major things you did to fix them? Preferably with enough detail that I can find what you’re talking about in the code, and then see for myself if it looks like a good fix or not.

Yeah, if nearby they will teleport together with your character when it moves to another z-level, and then they can get embedded in walls and walk on air. They also seem to be immune to fire, explosions and other traps as well. Are those not standard bugs in mainstream DDA Cataclysm as well? In any case it doesn’t bother me too much, at this point I’m happy NPCs are not crashing the game and are actually pretty useful as company in action.

Try to gather 2-3 of them (spawn them with debug menu), take them with you in a car through a town, or try to clear some area with them on foot… see if you can find any bugs while doing stuff like that with NPCs. It’s fun too.

I think it’s best to tell them to attack only enemies that you attack, so they stay close. You should also find useful “wait here” and “follow me” commands in order to keep them alive and tactically advance through area. You should pick NPCs with good stats and give them good weapons, otherwise they can be more burden than helpful.

[quote=“Soron, post:50, topic:528”]I’ve been known to play buggy-but-functional Linux ports of games. Given that Cataclysm:DDA actually runs pretty well on Linux (and is easily fixable when it doesn’t), I’m personally going to stick with Linux builds. If I have a specific purpose, then sure, I’ll boot into Windows, but first it would have to get higher on my to-do list than writing more code.

That’s not to say I don’t have concern for the Windows build, mind you. I do want to see the game work well under Windows, and will gladly assist cooperative Windows devs. But, my own housekeeping efforts tend to be focused on eliminating the bugs and annoyances in the version that I use (partly due to being reminded of them constantly, and partly due to having more relevant expertise).[/quote]

It could very well get high on your priority list if you try it and see how much difference it makes. You can add hundreds more items and you will make the game a little bit better, but you can add music and sound effects and the game could be hundred times better.

You have to try it in order to judge it, try using flashlight or torch to during the night to see how much rounded lights and black darkness make the game better. Try driving a car or target something to see how automatic shift-view makes the game less tedious and more fun to play. You have to see it first, then decide whether any of it gets on your priority list, or not.

So you don't actually have much that we don't, in this case? Okay, let's move along then.

I can fix it, it slow the game down quite a bit, but I don’t need to as I’m going to make 25x25 only available screen size. If I was to allow for bigger screen sizes I’d call that high priority bug.

Okay, so, aside from the Windows-specific bugs in catacurse.cpp, what else sounds particularly interesting... you said you've fixed NPCs? Could you explain, say, one or two of the major things you did to fix them? Preferably with enough detail that I can find what you're talking about in the code, and then see for myself if it looks like a good fix or not.

I don’t know at what point the game stopped crashing, I wasn’t particularly looking to fix NPCs. I had them enabled to see if I can catch a crash that I can reproduce and track down the cause, but in the meantime I made a lot of other changes all over the place and the game just didn’t crash since then. Do you know what part of the code is causing the crash? Let me know and I’ll see what changes I made relating to that.

[quote=“nadia911, post:47, topic:528”]More buildings please, boats, abandoned cars, rails, trains and stations, airports and aircraft, more more more more!!!

Thanks Lazy[/quote]

Maybe if you will help me to test it, to play it for at least one hour each day and report the bugs. And I’ll make you terrain/building editor so you can design/draw all that stuff and new buildings yourself, and as you make them I’ll put them in the game. Ok?

Yeah, NPCs are… interesting. Someone was looking into things, and it sounds like the NPC framework has some systemic flaws. So, any NPC bugs are probably in vanilla DDA as well. They’re really immune to traps, fire and explosions, though? That’s news to me, and also fairly dramatic.

I’m actually running a significantly larger viewport, with no special modifications for that other than just maximizing my terminal. It appears to be… 123 tiles wide, not counting the sidebar? Is there anything in particular that’s keeping that from being possible when using catacurses instead of a terminal?

I don't know at what point the game stopped crashing, I wasn't particularly looking to fix NPCs. I had them enabled to see if I can catch a crash that I can reproduce and track down the cause, but in the meantime I made a lot of other changes all over the place and the game just didn't crash since then. Do you know what part of the code is causing the crash? Let me know and I'll see what changes I made relating to that.

So you didn’t actually fix NPCs then, it’s just that you happened to change other things which caused the NPCs to stop crashing the game? And you haven’t worked on NPCs to make them less broken? Hmm, I wonder if it was something drawing-related that was causing the crashes, then.

Okay, so, is there anything else that’s not Windows-specific that’s a non-obvious fix? How about… you said in another topic that monsters’ reactions to sounds were broken (which still doesn’t match my experience), and it’s listed in the things you changed. Maybe that would be worth describing?

Basically, you keep saying that other devs should pay attention to your code because the mainline version is buggy as all hell (which is true), and you’ve come up with proper fixes for things that have been completely neglected by everyone else (which is what I’m trying to determine). So far, it sounds like you did fix up catacurses, and managed to make the Windows experience nicer by making changes that degrade the Linux experience.

So, if you’ve got any bits of code that you think are particularly good fixes to a problem, then I’d love to have you point them out for me.

Because I will admit that you’ve got some interesting ideas, and you probably understand catacurses better than most of the devs (who, to be fair, probably haven’t looked at it much), but you haven’t really made it easier to judge the quality of your coding in general.

Head explodes

Catacurses can resize too, I just think original size is sufficient and makes the game more interesting.

So you didn't actually fix NPCs then, it's just that you happened to change other things which caused the NPCs to stop crashing the game? And you haven't worked on NPCs to make them less broken? Hmm, I wonder if it was something drawing-related that was causing the crashes, then.

I did comment out some NPC code in update_map() to figure out what is it for, when I didn’t notice any difference I left it commented out. Maybe it’s that. On the other hand most of my changes are indeed related to graphics, so it could be something about it too. And maybe the bug is still there but somehow I just didn’t trigger it yet.

Okay, so, is there anything else that's not Windows-specific that's a non-obvious fix? How about... you said in another topic that monsters' reactions to sounds were broken (which still doesn't match my experience), and it's listed in the things you changed. Maybe that would be worth describing?

They get sidetracked with all the the other noises closer to them, even another monster just walking close seem to attract them more than you breaking a window 20 tiles away, and stumbling I think impairs them even more.

I did quite a few changes there. I made it so during the day they will ignore you if you are far away even if they can see you, but if you make a noise and attract their attention they will come to eat your brains. I wanted this so you can see them while they are not alerted and maybe try to sneak around them while peeking behind corners and keeping the safe distance. During the night I made some changes in their stumbling so they can find you easier if they still can’t smell you when they come closer. Try it out, you’ll notice the difference, many more question marks when you knock on a wall in the dark.

So, if you've got any bits of code that you think are particularly good fixes to a problem, then I'd love to have you point them out for me.

Missile silo launch is easy fix for the bug that can crash the game and has been around for years:

http://www.cataclysmdda.com/smf/index.php?topic=827.0

But first I think catacurses should be fixed, graphics refreshing and rendering, it will speed up Linux version too. Then you should take amazing rounded lights modification, just look at it, it’s beautiful:

…then music and sound effects, and that’s it. That’s all it takes for Cataclysm to top the charts and become the best roguelike of all, almost as good as Cataclysm: MGS itself. Everything else is occasional, but these things are frequent or constant during the whole gameplay, they matter the most.

(I say LazyCat gets a unique roaming creature as tribute. Naturally, a lazy cat. Butchering it gets you an eyepatch or special bandana!) Cataclysm:MGS versus DDA really is like night and day when it comes to “performance”. Simply riding along in a car is much more enjoyable since you can see every twist, skid and turn happen in a near instant pace. No waiting at all.

I’m a big ol’ dumb clod when it comes to coding and understanding what’s been done to fix the general slowness of DDA. Hell, I’m a Windows user! Says it all. All I know is that people fix things and make the games I play run better so I need to extend my gratitude. Seems things will keep getting better as well so… uh, gratitude².

[quote=“Slax, post:57, topic:528”](I say LazyCat gets a unique roaming creature as tribute. Naturally, a lazy cat. Butchering it gets you an eyepatch or special bandana!) Cataclysm:MGS versus DDA really is like night and day when it comes to “performance”. Simply riding along in a car is much more enjoyable since you can see every twist, skid and turn happen in a near instant pace. No waiting at all.

I’m a big ol’ dumb clod when it comes to coding and understanding what’s been done to fix the general slowness of DDA. Hell, I’m a Windows user! Says it all. All I know is that people fix things and make the games I play run better so I need to extend my gratitude. Seems things will keep getting better as well so… uh, gratitude².[/quote]

I’m happy you enjoy it and appreciate bug reports. We’re even.

I’ve been checking this thread a lot and I still love what you’ve done.

But please

“That’s all it takes for Cataclysm to top the charts and become the best roguelike of all, almost as good as Cataclysm: MGS itself.”

Do you know how pretentious you sound? Fucking Christ, you think your mod for a game is better than the best roguelike of them all? You think your (somewhat small) coding changes and expansions will ROCKET it to the top of the “charts”?

And please don’t get me started on the square font. You, for some reason, think that people can’t have opinions (unless it’s your opinion). Things like “Square font is 1000x better” and “But how can you?! It’s worse!” are not only demeaning, they’re downright moronic. People can have their own opinions.

They can walk on air which is trap I made for upper levels, just like ‘tr_hole’ only light cyan. But maybe that’s only when they get spawned there, I haven’t looked into it.

As far as I tested NPCs seem completely immune to fire.

Not sure about explosions, I checked now LAW rocket kills them, so other explosions should work too. Perhaps I didn’t see well and they were in fact far enough to survive.