Author Topic: SCI Unlocked - Sierra's game engine running on Python3 + Raylib  (Read 1725 times)

0 Members and 1 Guest are viewing this topic.

Offline deckarep

SCI Unlocked - Sierra's game engine running on Python3 + Raylib
« 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.



Give a careful listen to Ken's blabbing...



Offline MusicallyInspired

Re: SCI Unlocked - Sierra's game engine running on Python3 + Raylib
« Reply #1 on: February 27, 2024, 11:30:51 AM »
Eyyyy I like what I see.
Brass Lantern Prop Competition

Offline robbo007

Re: SCI Unlocked - Sierra's game engine running on Python3 + Raylib
« Reply #2 on: March 18, 2024, 05:15:06 PM »
I love the audio and music!!! Top blues solo... Amen!

Offline cosmicr

Re: SCI Unlocked - Sierra's game engine running on Python3 + Raylib
« Reply #3 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)?

Offline deckarep

Re: SCI Unlocked - Sierra's game engine running on Python3 + Raylib
« Reply #4 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.

Offline Kawa

Re: SCI Unlocked - Sierra's game engine running on Python3 + Raylib
« Reply #5 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...
  • Docs on the scripting language in general and its keywords, both old and new
  • Docs on the kernel calls
  • Docs about OOP
  • Docs on the system class libraries and global variables
  • Docs on the parser
  • Docs for the message editor
  • A changelog for the system scripts
  • A changelog for the game engine
  • Various notes on for example memory management
  • A code style guide from Dagger of Amon Ra
... which I think is pretty neat.

Offline deckarep

Re: SCI Unlocked - Sierra's game engine running on Python3 + Raylib
« Reply #6 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.

Offline lskovlun

Re: SCI Unlocked - Sierra's game engine running on Python3 + Raylib
« Reply #7 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...


SMF 2.0.19 | SMF © 2021, Simple Machines
Simple Audio Video Embedder

Page created in 0.023 seconds with 23 queries.