Sword of Jade original version tech support thread

Make games! Discuss those games here.

Moderators: Bob the Hamster, marionline, SDHawk

User avatar
FyreWulff
Slime Knight
Posts: 107
Joined: Wed Mar 13, 2013 9:16 pm
Location: The Internet
Contact:

Sword of Jade original version tech support thread

Post by FyreWulff »

This has come to light due to a recent Youtube let's play ( https://www.youtube.com/watch?v=IhNWQvibgMI ) of the game, but bug reports in general, that showed the game has some issues, some of which are the game, and some of which may be due to the data file being upgraded over the years. Particularly, it seems to have issues where the party is incorrectly modified and the wrong heroes are added or removed from the party. While it'd be understandable for an old game to have bugs, it somewhat bothers me that there's bugs that absolutely kill progress in the game. But I also have to move on at some point both time-wise and mentally.. I just want to give it one last defined polish before I do so.

So, like other devs like James and so on have been doing recently, I'd figure I'd make a liveblog style thread.

Goals of this final update

- Restore the game to reasonable working order, particularly preventing hard locks and soft locks alike.
- Level out some of the game's warts on the broad strokes where possible.
- Make it easier for those interested in modifying the game to do so, via updating the script code files to be heavily commented and documented.
- Properly track said changes.

Not Goals of this final update

- Don't redevelop the game. While it would be possible to take the tweezers to the battles, dialogue, map layouts, what have you, it's important to not get lost in the woods and end up redeveloping the game. While the feedback over the years has been taken to heart, and self-review after the fact over the years we've both learned from what happened with the game. Changes will be persued with the idea of "It is what it is". The game will, for example, remain sort of easy to defeat the Jade Countdown towards the back half. Certain things will auto-incure a cascade of changes to account for them, and this must be avoided.
- Speed. This will be a project I'm doing with the spare time of my spare time. It's absolutely lowest in my priority list on each day. It could be a year+ before this is finished from this post, maybe even longer. Also given the projects and games I've worked on since then, I no longer have a brain-index of where everything is, so I sort of have to rebuild that map, and this is slow.

How It Will Be Done

Because of the above reason of not being able to jump right to where I need to in the game data because it's been pushed out of my memory, my plan is to update the game by playing through it, seeing which scripts get set off, then pulling the script up and doing the indentation / bugfix / safety check code update right then and there, and then keep playing forward through the game to completion. This will take longer overall but ensures the most code gets looked at.

Once this update is finalized and out, that's it, I'm moving on from it, and all bugs become features. Some of the scripts are coming up on their 20th birthday, and even scripts written right before release are nearing their 15th. The Hamsterspeak scripts in this game pre-date some of the users of this engine. There's only so much to do before you have to say 'enough'.


Wishlist - Reasons why or why not

!DONE! Properly track the game's source file changes again
A while back, I did actually set up a SVN to track game updates over on Castle Paradox. However, due to time, and me losing all my login details constantly because of computer breakages/moving, the SVN was left long ago on autopilot. It still faithfully rebuilds the game zip each day over there for a decade now, but I've long had all the SVN knowledge leave my noggin, and I honestly would be afraid of breaking such a long running script now. Between now and then, I've updated Jade by quite literally redownloading it from the same download link as everyone else, updating it, and repackaging it to the upload, so there's no real in-between tracking, and my hosting has changed a few times, so I've come reeeaaaal close to actually almost losing the game off my hosting. Since Git is now the In Thing these days, I have now uploaded Sword of Jade to Github:

https://github.com/fyrewulff/swordofjade

All updates for this project will be checked in via this. I'm more than willing to have the git repo cross-hosted elsewhere (like Gitlab and elsewhere), but I'll worry about that later.


NOPE Convert the game to use slices or overhead per-pixel graphics

I did a proof of concept a long while back where I converted Fralin to use overhead transparency, the issue arises in that each area has 4 different maps, and the tiles aren't 1:1 between them so they have to all be manually converted. And it gets weird, like there's lightposts that come on at night. You can't walk behind them at all, because Charbile used tile graphics to make them light up at night. You could make them properly pixel transparent during the day time, but then that breaks at night due to that, and the engine doesn't support replacing the effect with an actual GPU light or something like that. Considering the work required, the game will remain with the usage of tiles that it has. Sorry.

While slices would be nice to have had back then, the way the game fakes menus works still. A HUD would be nice, but there's no option to render the HUD at higher resolution than the game runs at, so a 320x200 HUD isn't gonna work out.

Locked In Redo how the game treats saving and saves

Add a ton more save points. I can't remember how much of it was us emulating games of the era and how much of it was because the save points where we put them broke the time script less. I'd like to just add save-at-any-time, but I should also implement protection so people don't accidentally save with like, half a day left and are soft locked forever. Due to the save slot script commands, I could either implement the game autosaving when you have < X amount of days left on the jade counter, or have it actually just keep the last, say, 3 saves as safety saves to bail you out. The autosave < x days would be a soft save that you could use, wouldn't replace the actual save itself. Also, add a couple of "you know, it'd be a REAL GOOD TIME TO SAVE" points, like the inn ambush. This also makes it friendlier to phone users.


Maybe Sound Effects

I dropped adding these long ago because they always played at max volume. I think there's more control over that now. The remaining problem is curating and adding all the sounds. This probably has a 50% chance of being implemented, I know a lot of people want them in there, but the curation/editing/balance step will take a while. The goal is to not leave the game in a worse state than it's been left in before, and this could easily go south.


Extremely Likely Redo music

Okay. Jade's in a weird place with music - it's got music across multiple file types, generations, and conversions. Music that played slow as BAM on MS DOS suddenly got really fast when converted to MIDI on modern engine version. The way the MIDIs are played sometimes sound really garish and harsh, versus the Adlib original playback where it had proper attack/decay/bass/warmth-y feel to it.

The goal here would be to unify the game's music in style and loudness. BAM-era songs would be re-recorded as OGG, possibly willing to either recapture them via DOSBOX or an actual Adlib enabled retro computer, and master all levels so they aren't playing near clipping all the time. They would also be placed in a stereo soundscape to also make it easier to listen to them. I would likely look to remove any 'live' sounding song replacements, as while it was neat to be able to do that with OGG, it does sound funny when the game blasts chiptunes at you for a couple of hours and then suddenly you fall through a trap door into a concert.

Extremely Likely Rebalance the intro's usage of the time system / Jade Countdown

Fix some of the intro balance of the time system, with the thought that up until the first dungeon, I may have it advance day phases at half speed to make it less intimidating, or make it a soft game over (you're just returned to Fralin with a full stack of the days you start the game with) until you pass the first dungeon with some minor plot glue to explain why. The dungeon completion would also start you off with a minimum top-off amount of days. A large amount of complains and feedback have been from people feeling overwhelmed about the amount of days at the start of the game, and we lose a lot of people in the intro. This would make the intro much less of a roadblock.

Won't address how it becomes less of a concern in the back half+ ish of the game. See above about not getting lost in the woods.

I may even be willing to add a toggle where you can disable the Jade countdown at any time. While this is thematically garish, players can technically already modify the game to do this, so this would be cutting out the middleman. There would be no punishment to using this toggle re: obtaining endings or bonuses. This also would be a lot easier to implement, hook a menu option into a tag, and simply loop on 1 day left if enabled.

For those interested in EXTRA challenge, however, I am thinking of implemented a permadeath mode on the other end of the spectrum, or something close to it because I'm not sure how much it can be enforced in the engine, where death from the Jade Countdown would reset your game entirely. There would be no extra rewards, because I have no time to develop them, this would be something solely for people interested in playing it.

Locked In Speed up script updates by grafting the textboxes as comments into the Hamsterspeak code

Write a python script that takes the textbox export of the game, then looks for where the tb(##) function is called and then adds the textbox itself as a comment on that line in the HSS files. This makes it easy to see where a bug happened in a Let's Play or elsewhere by quickly searching for the dialog and you get taken right to the script line it's set off by. It will add about 1.5MB to the script file sizes, but considering today's internet, it's worth the tradeoff.
Last edited by FyreWulff on Tue Mar 16, 2021 5:56 am, edited 4 times in total.
User avatar
FyreWulff
Slime Knight
Posts: 107
Joined: Wed Mar 13, 2013 9:16 pm
Location: The Internet
Contact:

Post by FyreWulff »

Extremely Likely Mod Support

Upon further research, I've discovered the engine now supports constructing native menus via scripting, so I think I'll consider implementing the disabling of the jade countdown and any other features along that line as "Mods". Mods will be a menu option available at all times, allowing you to modify how the game itself runs. I think this communicates that you're modifying the game significantly in some "unintended" way, rather than an option you're setting (even though I'm implementing the mods myself)

The current gameplan would be to separate out the functionality as "mods.hss". Easier ways of inserting scripts via entry point scripts for common game events/context (ie, an easy way to add a script that fires off each time a day cycles, etc) will make it easier for anyone to add functionality to the game without even touching the base script files, which should be less intimidating for new scripters.

And since we can build menus out of scripts, the mod can insert it's toggle into the game's mod menu itself, so it's entirely possible to grab a script somewhere, past it in, compile, and you're done. No need to set it all up manually - it just appears in the game.

Of course, the limitation is that you're limited to what you can do via scripting, so (as far as I know) there's no way to include new graphics in a mod in such manner cleanly. But I think this will be a good way to pull off a couple of the above features in the first post and shouldn't actually be too hard to implement - just need to make some nice wrapper scripts, create the entry points (NOP scripts, basically) and it should be good to go.
Attachments
Annotation 2018-12-26 055603.jpg
Annotation 2018-12-26 055603.jpg (244.93 KiB) Viewed 5419 times
Last edited by FyreWulff on Wed Dec 26, 2018 2:08 pm, edited 2 times in total.
User avatar
Mogri
Super Slime
Posts: 4668
Joined: Mon Oct 15, 2007 6:38 pm
Location: Austin, TX
Contact:

Post by Mogri »

It's awesome that you're doing this. Sword of Jade is still one of the best, most polished OHR games.
User avatar
charbile
Metal Slime
Posts: 601
Joined: Tue Jun 21, 2011 6:18 am

Post by charbile »

Been thinking about making another rpg and wanted to do a play-through. The OG version I have won't even start in win7. Is cool to see you're fixing it.

I tried another... newer older version of game.exe and whenever you would use a skill, it would insta-end all battles. Some of the text is extremely corny, but most of it still holds up to me. I could probably do a quick pass to remove the corn but is probably best to not mess with it too much. Relic of youthful vidja gam design. The maps seem overly spacious, the day/night transitions are very abrupt, but man, the game still has a lot of charm and is very playable and fun to explore now that enough time has passed for it to feel fresh for me.

Sound fx seems like it should be easy? Just put in a title menu where you can toggle it, if you're afraid it might affect the experience. Would put in a toggle for the countdown too, could have it where it............... counts up from 1 to taunt the player. 1 day down, how many more until you give up? 2 days gone by, and you're still here? etc etc

I have all the original files if you need anything. Rinku and Komera still haven't finished a rpg yet LOL
Attachments
dq2title.png
dq2title.png (6.11 KiB) Viewed 5279 times
squall_fanart.gif
squall_fanart.gif (22.6 KiB) Viewed 5272 times
soj1_bsohr.gif
soj1_bsohr.gif (7.19 KiB) Viewed 5280 times
TMC
Metal King Slime
Posts: 4308
Joined: Sun Apr 10, 2011 9:19 am

Post by TMC »

A new rpg to finally demystify this Gold Crystal??

What's an OG version?
The insta-kill skills bug was due to garbage data in the .rpg file that was unused at the time it somehow got inserted into the file but now means something unfortunate. Fyre already cleaned that up years ago.

Sound effects is absolutely my most wanted feature. I'm so spoilt now that playing an old OHR game without sound effects feels like sitting in an anechoic chamber!

How about mouse support, now that the OHR supports it? Unfortunately while it would be easy to enable in most games, in SoJ you would have to script mouse controls in the custom menus for consistency, and maybe also update the Zelda-style camera movement, and who knows what else. So, admittedly, probably not worth the effort.
Last edited by TMC on Sat Feb 16, 2019 10:06 am, edited 1 time in total.
User avatar
charbile
Metal Slime
Posts: 601
Joined: Tue Jun 21, 2011 6:18 am

Post by charbile »

OG just means original gangster. It's slang I've picked up in the harsh world outside the peaceful town of ohr. (*edit* slang meaning 'original', should clarify)

The lack of sound effects was actually the biggest con against the ohr when i was deciding between it and uh... verge or rpgmaker. It really shouldn't be that difficult to add in sounds (FYRE) beep boops waa waa wow so easy. there's that bfxr app out there.

is mouse support a thing people expect now? how spoiled, geez
Attachments
dungeon3design.gif
dungeon3design.gif (330.86 KiB) Viewed 5236 times
face_off.gif
face_off.gif (11.63 KiB) Viewed 5243 times
Last edited by charbile on Sat Feb 16, 2019 8:16 pm, edited 1 time in total.
TMC
Metal King Slime
Posts: 4308
Joined: Sun Apr 10, 2011 9:19 am

Post by TMC »

I don't think anyone actually expects mouse support unless you're a causal gamer who accidentally wandered into this hardcore joke RPG den.

Design sketches! *saves for the archive*
ArtimusBena
Slime Knight
Posts: 251
Joined: Thu Nov 16, 2017 5:22 am

Post by ArtimusBena »

Joke RPGs are okay, but let's consider how fun Diablo is.
User avatar
charbile
Metal Slime
Posts: 601
Joined: Tue Jun 21, 2011 6:18 am

Post by charbile »

Point made, but different kinds of fun to consider. How can one rate Diablo against the joys of ohr joke rpgs? With a 10 point system? Impossible, my friend. To live in a world with both, truly this is what is best.

I have never played an ohr game I don't like in some way. I'd play them all day everyday if I could. Yep, that's me. Just someone really into ohr games. Not someone who makes and fails a new years resolution year after year to stay away from here. That'd be depressing, haha aaaaaaaaaaaaaa
ArtimusBena
Slime Knight
Posts: 251
Joined: Thu Nov 16, 2017 5:22 am

Post by ArtimusBena »

Real mouse support would be signs on mouse traps with arrows pointing to the cheese with signs saying "Don't do it, buddy. This isn't gonna end the way you think"
User avatar
Nathan Karr
Liquid Metal Slime
Posts: 1215
Joined: Fri Jan 25, 2008 3:51 am
Contact:

Post by Nathan Karr »

ArtimusBena wrote:Real mouse support would be signs on mouse traps with arrows pointing to the cheese with signs saying "Don't do it, buddy. This isn't gonna end the way you think"
Those things consistently fail to break my spine, so I always wind up getting my cheese after a bit of wrestling myself free. You'd think I'd learn to just start poking it with a stick to trigger it without touching directly, but I don't.
Remeber: God made you special and he loves you very much. Bye!
User avatar
charbile
Metal Slime
Posts: 601
Joined: Tue Jun 21, 2011 6:18 am

Post by charbile »

It's like you have no sense for your own safety. One day you'll walk right into the mouth of some large animal, then you'll learn.
User avatar
Nathan Karr
Liquid Metal Slime
Posts: 1215
Joined: Fri Jan 25, 2008 3:51 am
Contact:

Post by Nathan Karr »

charbile wrote:It's like you have no sense for your own safety. One day you'll walk right into the mouth of some large animal, then you'll learn.
That describes the start of nearly every relationship I've been in, so clearly I haven't learned.
Remeber: God made you special and he loves you very much. Bye!
User avatar
charbile
Metal Slime
Posts: 601
Joined: Tue Jun 21, 2011 6:18 am

Post by charbile »

in writing circles, it's often said that the principal difference between characters in fiction and real life is that in fiction, characters have a story arc where they change by the end

wait till my boy fyre comes back and sees this party we're having in his soj thread, haha
Attachments
ohyou.jpg
ohyou.jpg (18.06 KiB) Viewed 5161 times
User avatar
Foxley
Metal Slime
Posts: 832
Joined: Sat Nov 09, 2013 5:54 pm

Post by Foxley »

Regarding sound effects, I made a ton about a year and a half ago:
https://www.slimesalad.com/forum/viewgame.php?p=131191
Post Reply