Community

SCI Programming => SCI Development Tools => Topic started by: deckarep on February 22, 2024, 02:18:51 AM

Title: SCI Unlocked - Sierra's game engine running on Python3 + Raylib
Post by: deckarep on February 22, 2024, 02:18:51 AM
Hello,

Just wanted to share some progress on the viability of SCI's runtime reimplemented in Python3. The YouTube link will have much more context and details on exactly what is happening. But I now have a good portion of code running rm110 on LSL1-VGA. There's lot of things that are not yet implemented but many things do work. The game is running at ~60FPS but so far isn't doing anything too taxing except for animated like 5 cast members, playing some layered audio tracks and unlike the original engine rendering everything each frame.

It will be a lot more work to get even a single game playable, let alone completable. But this has so many possibilities.

https://www.youtube.com/watch?v=P1D0cdzexy4

Give a careful listen to Ken's blabbing...
Title: Re: SCI Unlocked - Sierra's game engine running on Python3 + Raylib
Post by: MusicallyInspired on February 27, 2024, 11:30:51 AM
Eyyyy I like what I see.
Title: Re: SCI Unlocked - Sierra's game engine running on Python3 + Raylib
Post by: robbo007 on March 18, 2024, 05:15:06 PM
I love the audio and music!!! Top blues solo... Amen!
Title: Re: SCI Unlocked - Sierra's game engine running on Python3 + Raylib
Post by: cosmicr on March 18, 2024, 10:40:47 PM
Sounds like fun little hobby project - good luck!  ;)

I haven't watched the full video yet, but are you planning on open sourcing it?

Can you tell us more about the implementation? What does the transpiler convert to? I see at the end code to specific to LSL, does it re-write SCI bytecode to python?

Are you using the game specs found on the Wiki? Or other sources, such as SCUMMVM? Did you consider any libraries more python specific like PyGame(I'm aware it's an SDL wrapper)?
Title: Re: SCI Unlocked - Sierra's game engine running on Python3 + Raylib
Post by: deckarep on July 20, 2024, 11:39:22 PM
Hmm, sorry for the late reply I don't know why I never got email alerts.

1. Before I open-source it I'd like to development the engine further but took a break from it. It's a fairly large under-taking for a hobby project.
2. The transpiler converts SCI script -> Python3 syntax
3. In order to work however I had to start building my own kernel code
4. I also had to implement my own bootstrap runtime - this is to simulate loading SCI modules in and out dynamically as well as to handle some in-memory intrinsics like knowing whether a handle to an object is either a "class" or an "instance". It's also, to instantiate at runtime anything which should live as an "instance".
5. I've been referencing ScummVM's implementation but writing the code from scratch where it's needed, I've been referencing some of the full-game source files that are out there on the interwebs and I've been referencing the SCI16 source code as well. Plus the wikis and various development docs that exist on System/Class files.
6. This giant effort has been a super deep-dive for me into how SCI works and as a result I've compiled a notebook of printed material that is starting to feel like a bonafide Sierra Developer Docs book for new hires. I would imagine Sierra had something like this for new programmers so they can get started building rooms for games.
Title: Re: SCI Unlocked - Sierra's game engine running on Python3 + Raylib
Post by: Kawa on July 21, 2024, 02:32:54 AM
I would imagine Sierra had something like this for new programmers so they can get started building rooms for games.
Well, at the very least we have... ... which I think is pretty neat.
Title: Re: SCI Unlocked - Sierra's game engine running on Python3 + Raylib
Post by: deckarep on July 21, 2024, 04:51:25 PM
Kawa,

I think everything you've mentioned are docs I've got in my book. At least for the docs I'm aware of, I know they don't cover all variations of the SCI engines *but by god* I'm just thankful some of them exist. It truly is great to have such documentation in place. It also helps to understand the rationals behind some technical decisions.
Title: Re: SCI Unlocked - Sierra's game engine running on Python3 + Raylib
Post by: lskovlun on July 21, 2024, 09:06:38 PM
Sluicebox blogged last year that:
Quote
Original Sierra source code. That subject has been off limits, but thanks to recent events I can relax that rule. If there's anything good about performance art, it's the unexpected. I consider this performance art, and I didn't expect to be presented with a Sierra cache on deep background. There's a good story there, but it's not mine to tell. The important thing, I told myself, is that it's found its way into enough hands that it won't get lost ? and won't stay underground forever.
I wonder how much other people have...