[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.