{"id":83,"date":"2021-01-06T12:21:28","date_gmt":"2021-01-06T12:21:28","guid":{"rendered":"https:\/\/blogs.scummvm.org\/tkachov\/?p=83"},"modified":"2022-05-24T12:21:56","modified_gmt":"2022-05-24T12:21:56","slug":"red-comrades-in-scummvm-not-gsoc","status":"publish","type":"post","link":"https:\/\/blogs.scummvm.org\/tkachov\/2021\/01\/06\/red-comrades-in-scummvm-not-gsoc\/","title":{"rendered":"Red Comrades in ScummVM (not GSoC*)"},"content":{"rendered":"<p>(* my\u00a0site puts a\u00a0post into RSS only if\u00a0it\u00a0has \u00abGSoC\u00bb in\u00a0it, so\u00a0I kinda had\u00a0to)<\/p>\n<p>One of\u00a0my\u00a0favourite adventure games from my\u00a0childhood are Red Comrades\u00a0\u2014 these, actually, might even be\u00a0the reason why\u00a0I liked the genre. So, I\u2019ve been keeping my\u00a0eye on\u00a0it\u00a0after it\u00a0was announced that the engine will be\u00a0added by\u00a0one of\u00a0the GSoC\u00a0students. Finally, there was a\u00a0<a href=\"https:\/\/www.scummvm.org\/news\/20201127\/\">support announcement<\/a>, and I\u2019ve decided to\u00a0play the games during the holidays.<\/p>\n<p>This post is\u00a0some kind of\u00a0a\u00a0less-formalized-than-bugtracker feedback. I\u2019m going to\u00a0actually submit some reports later, providing comparison with how the actual game worked, with screenshots, saves and probably even videos. For now it\u00a0is\u00a0only my\u00a0experience compared with the impression of\u00a0the game I\u00a0remember.<\/p>\n<p>Overall,\u00a0<b>the support is\u00a0good<\/b>. Both games are fully playable and there are no\u00a0gamebreaking bugs\u00a0\u2014 you can play it\u00a0from the start to\u00a0the end. Now onto my\u00a0grumbling.<\/p>\n<p><b>The Fonts<\/b><\/p>\n<p>First thing that caught my\u00a0eye: the fonts. I\u2019m not sure why I\u2019ve always played the game with subtitles, but now for me\u00a0the game is\u00a0incomplete if\u00a0subtitles are off. I\u00a0didn\u2019t compare screenshots of\u00a0the font yet, and IIRC it\u00a0was just a\u00a0usual Arial\u00a0\u2014 but it\u00a0looked a\u00a0little bit off to\u00a0me. To\u00a0be\u00a0more precise, there are multiple microissues with fonts\/subtitles that I\u00a0have.<\/p>\n<p>First: I\u00a0can see subtitles \u00abjump\u00bb and\u00a0I don\u2019t remember that in\u00a0the original game. Meaning that line height is\u00a0different for different glyphs: for example, if\u00a0line has \u00abp\u00bb, it\u00a0will draw higher than a\u00a0line without\u00a0it. It\u00a0can be\u00a0easily seen in\u00a0the dialogs how such lines go\u00a0after each other and show up\u00a0on\u00a0different position. If\u00a0the subtitles text is\u00a0long, it\u00a0will appear in\u00a0two or\u00a0three lines on\u00a0the screen, and you could also see sometimes that these lines have different line height, as\u00a0if\u00a0one line is\u00a0glued too close to\u00a0another.<\/p>\n<p>Second: there was a\u00a0different font for inventory descriptions. ScummVM uses the same as\u00a0in\u00a0subtitles.<\/p>\n<p>Third: when player is\u00a0prompted to\u00a0select an\u00a0option in\u00a0a\u00a0dialog, these options have no\u00a0outline or\u00a0something. I\u00a0don\u2019t remember how exactly it\u00a0looked in\u00a0the original game, but for some reason\u00a0I believe it\u00a0was easier to\u00a0read than in\u00a0ScummVM.<\/p>\n<p><b>The Walking<\/b><\/p>\n<p>A\u00a0really long time ago\u00a0I and some other folks were making a\u00a0fan continuation of\u00a0the Red Comrades on\u00a0Wintermute Engine. We\u00a0were tinkering with original game resources, and ripped off all the backgrounds, music, sounds, animations, text lines and even walking regions. Now I\u00a0don\u2019t remember exactly if\u00a0the original game also had some anchor points or\u00a0did we\u00a0add these in\u00a0WME\u00a0\u2014 but\u00a0I remember that in\u00a0original you could see heroes walking along some curved roads in\u00a0the backgrounds pretty naturally. In\u00a0ScummVM, however, this behaviour seems to\u00a0be\u00a0broken sometimes. I\u00a0will prepare some save files to\u00a0illustrate that in\u00a0issues, but for now\u00a0I will try to\u00a0describe\u00a0it. Again, there are two small issues that might (or\u00a0might not) be\u00a0independent.<\/p>\n<p>First: a\u00a0hero might ignore the walking region. Sometimes you could see how they are walking on\u00a0the air or\u00a0on\u00a0the wall\u00a0\u2014 obviously, outside the walking region. Sometimes I\u00a0could see \u00abWalk bug: Point doesn\u2019t belong to\u00a0any convex\u00bb message in\u00a0the ScummVM terminal window, but\u00a0I guess that only happened if\u00a0heroes were spawned outside the walking region after fast travelling via the map. But when that happened, they just jump to\u00a0the closest point which is\u00a0in\u00a0the region, so\u00a0I\u2019m not sure that\u2019s the reason.<\/p>\n<p>Second: pathfinding is\u00a0a\u00a0little bit strange. For example, we\u00a0have three buildings on\u00a0the screen: on\u00a0the left, on\u00a0the top and on\u00a0the right. Say, our hero is\u00a0at\u00a0the top building entrance. We\u00a0click at\u00a0the right building. The hero starts walking towards the left building, and when they reach the left building entrance, they turn around and walk to\u00a0the right building where we\u00a0asked them to\u00a0go. Not really critical, as\u00a0they go\u00a0where we\u00a0want to\u00a0in\u00a0the end, but seems pretty strange, and, again, I\u00a0don\u2019t remember that in\u00a0the original game.<\/p>\n<p><b>The Rendering<\/b><\/p>\n<p>I\u00a0only remember that in\u00a0the first game, and it\u2019s not like that was happening all the time, but there were a\u00a0few places where animations could \u00abglitch\u00bb a\u00a0little. What I\u00a0mean is\u00a0that a\u00a0part of\u00a0the sprite is\u00a0not erased, so, for example, we\u00a0could see two heads of\u00a0the same character.<\/p>\n<p>In\u00a0some cutscenes there could be\u00a0some \u00abrainbow rubbish\u00bb pixels at\u00a0the bottom. Not frequently, and I\u2019m not sure that is\u00a0easily reproduceable, but I\u2019ve seen it\u00a0happen.<\/p>\n<p><b>The Cutscenes<\/b><\/p>\n<p>Sometimes (mostly in\u00a0Red Comrades\u00a02?) there was just a\u00a0lag instead of\u00a0an\u00a0animation\/cutscene. For example, a\u00a0hero walks towards an\u00a0object and must play a\u00a0unique animation of\u00a0picking up\u00a0or\u00a0something, but instead your game freezes for a\u00a0moment and then continues after (as\u00a0if\u00a0the animation was played and nothing happened).<\/p>\n<p>Another variation: no\u00a0animation is\u00a0playing, but you can hear the sound effects, and the game continues after cutscene \u00abhas played\u00bb. Most striking example is\u00a0in\u00a0the beginning of\u00a0\u00abPart\u00a03\u00bb in\u00a0Red Comrades\u00a01, and\u00a0I even have a\u00a0save file for\u00a0it. It\u00a0shows a\u00a0pretty long cutscene, but all you see is\u00a0a\u00a0static background.<\/p>\n<p>In\u00a0Red Comrades 2\u00a0there was another issue once: the game shows you that something has changed on\u00a0the other screen, but in\u00a0ScummVM this animation is\u00a0very short, so\u00a0you could even miss\u00a0it.<\/p>\n<p>Finally, there was an\u00a0audio desync in\u00a0the first cutscene in\u00a0Red Comrades\u00a02: you already seen the action on\u00a0the screen, and only then you hear the corresponding sound effect.<\/p>\n<p><b>The only almost-gamebreaking bug<\/b><\/p>\n<p>In\u00a0Red Comrades 1\u00a0I once had a\u00a0strange dialog situation (maybe it\u00a0activated twice or\u00a0something): the dialog has stopped, as\u00a0if\u00a0it\u00a0was waiting for me\u00a0to\u00a0choose an\u00a0option, but there were no\u00a0options on\u00a0the screen, no\u00a0cursor and no\u00a0context menu available. So\u00a0I\u00a0couldn\u2019t walk away or\u00a0select an\u00a0option to\u00a0stop the dialog or\u00a0pretty much do\u00a0anything at\u00a0all. But I\u00a0think\u00a0I just pressed Escape and dialog finished, so\u00a0I didn\u2019t lose any progress because of\u00a0reloading.<\/p>\n<p><b>The Speed<\/b><\/p>\n<p>OK, another thing that was one of\u00a0the first I\u2019ve encountered, is\u00a0walking speed. It\u00a0is\u00a0configured on\u00a0the same screen you can turn subtitles\u00a0on, so\u00a0I\u2019ve made it\u00a0a\u00a0little bit faster, and got a\u00a0very fast walking heroes. I\u2019ll have to\u00a0compare that with the original, but\u00a0I think I\u2019ve got the max speed while it\u00a0wasn\u2019t on\u00a0max in\u00a0the options. I\u2019ve just lowered it\u00a0and played normally, so\u00a0that\u2019s not much of\u00a0an\u00a0issue.<\/p>\n<p>The loading speed, however, is. It\u00a0wasn\u2019t painfully slow while\u00a0I was playing, but when I\u2019ve launched the original game, I\u00a0was surprised how fluent it\u00a0was. When switching screens, or\u00a0loading animations, or\u00a0loading some assets like inventory suitcase and options screen, you can easily see that ScummVM loads\u00a0it, because it\u00a0takes some time. In\u00a0the original game it\u00a0is\u00a0barely noticeable. This might be\u00a0the reason of\u00a0some issues I\u2019ve mentioned up\u00a0there\u00a0\u2014 such as\u00a0audio desync or\u00a0lags instead of\u00a0the animations.\u00a0<b>TODO:<\/b>\u00a0I\u00a0think the game was able to\u00a0work with unpacked archives, and maybe ScummVM would work faster if\u00a0I\u2019d unpack its archives manually.<\/p>\n<p><b>The Saves<\/b><\/p>\n<p>Almost forgot about these! It\u00a0was a\u00a0little bit strange to\u00a0see that you can\u2019t use ScummVM own saving dialog. The cloud sync is\u00a0not triggered when game is\u00a0saved (or\u00a0loaded via in-game menu), which is\u00a0also a\u00a0little bit unusual. And there are no\u00a0autosaves, which could\u2019ve been useful for\u00a0me, because\u00a0I didn\u2019t save really frequently and thus\u00a0I was lazy to\u00a0play through the entire sequence again just to\u00a0reproduce a\u00a0bug\u00a0I have just seen. Otherwise I\u00a0would\u2019ve have more saves to\u00a0demonstrate these issues with.<\/p>\n<p><b>Some technical information<\/b><\/p>\n<p>I\u2019ve used a\u00a0daily build, ScummVM 2.3.0git11675-ga455b4c84a (Dec 31 2020 04:59:17).<\/p>\n<p>I\u2019m aware of\u00a0two versions of\u00a0the Red Comrades 1\u00a0game (which have different .exe files), but the only important difference between these is\u00a0probably that one version has a\u00a0compressed audio. I\u00a0believe I\u2019ve been playing the lossless version, and the game .exe version is\u00a01.0.0.1.<\/p>\n<p>I\u2019ve been mostly playing on\u00a0a\u00a0laptop with Win 10 1909 (x64), and\u00a0I also did a\u00a0few quick runs on\u00a0a\u00a0desktop with Win\u00a07 (x64).<\/p>\n","protected":false},"excerpt":{"rendered":"<p>(* my\u00a0site puts a\u00a0post into RSS only if\u00a0it\u00a0has \u00abGSoC\u00bb in\u00a0it, so\u00a0I kinda had\u00a0to) One of\u00a0my\u00a0favourite adventure games from my\u00a0childhood are Red Comrades\u00a0\u2014 these, actually, might even be\u00a0the reason why\u00a0I liked the genre. So, I\u2019ve been keeping my\u00a0eye on\u00a0it\u00a0after it\u00a0was announced that the engine will be\u00a0added by\u00a0one of\u00a0the GSoC\u00a0students. Finally, there was a\u00a0support announcement, and I\u2019ve [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-83","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/blogs.scummvm.org\/tkachov\/wp-json\/wp\/v2\/posts\/83","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.scummvm.org\/tkachov\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.scummvm.org\/tkachov\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.scummvm.org\/tkachov\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.scummvm.org\/tkachov\/wp-json\/wp\/v2\/comments?post=83"}],"version-history":[{"count":1,"href":"https:\/\/blogs.scummvm.org\/tkachov\/wp-json\/wp\/v2\/posts\/83\/revisions"}],"predecessor-version":[{"id":84,"href":"https:\/\/blogs.scummvm.org\/tkachov\/wp-json\/wp\/v2\/posts\/83\/revisions\/84"}],"wp:attachment":[{"href":"https:\/\/blogs.scummvm.org\/tkachov\/wp-json\/wp\/v2\/media?parent=83"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.scummvm.org\/tkachov\/wp-json\/wp\/v2\/categories?post=83"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.scummvm.org\/tkachov\/wp-json\/wp\/v2\/tags?post=83"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}