Jump to content

Sphene - SCM Interpreter - N.O.E mission


Megadreams

Recommended Posts

Just now, The_GTA said:

How did you implement this? Is this a regular Lua resource? Or is this a special MTA client?

This is indeed a regular Lua resource. It's also why for the time being we can't finish the cutscenes as we need object animation support for that. Sphene does have a standalone client as well (in a very early stage) that is focused on the Co-Op part alone.

  • Like 1
Link to comment
1 minute ago, Lergen said:

Great to see progress on this. Any rough estimate on when we might see a playable release, or are you guys waiting to reach a certain "goal point" before doing so?

I wonder, too! From what we know by inspection of his YouTube channel, Sphene has been in development for at least 8 months (https://www.youtube.com/watch?v=kbgKXM4QN9c). I would be interested in what the challenges of implementing this interpreter are and how Megadreams wants to overcome them.

Link to comment
3 hours ago, Lergen said:

Great to see progress on this. Any rough estimate on when we might see a playable release, or are you guys waiting to reach a certain "goal point" before doing so?

 

3 hours ago, The_GTA said:

I wonder, too! From what we know by inspection of his YouTube channel, Sphene has been in development for at least 8 months (https://www.youtube.com/watch?v=kbgKXM4QN9c). I would be interested in what the challenges of implementing this interpreter are and how Megadreams wants to overcome them.

Sphene first went into development in 2018 while I was in Project Beast as a simple experiment to see if SCM could be parsed in MTA and enough logic could be implemented to run it. This was the case and a simple test script was run (https://www.youtube.com/watch?v=TBsQSw7B_XQ). Its development was slow at first but picked up significantly towards the end of 2020. Our current plan is have enough implemented to have a few fun/memorable missions working (Wrong Side of the Tracks, Breaking the bank at Caligula's, Black Project, etc...) and then open up a server that specifically allows you to try out these missions.

Afterwards we keep continuing implement more logic and getting the entire storyline itself to work from start to end while further fixing issues and adding improvements after. Only after that stage will we introduce our ultimate goal which is adding a Co-Op experience on top of the storyline. We unfortunately are not able to estimate when this would happen due to the complexity of the project and the fact we have our real life obligations that at times can eat up more time than we'd like.

Note: Sphene is going to be open sourced at some point. When this happens during the timeline described above I do not know yet.

Also, I want to take the time to thank @GTX for all the contributions he has made to Sphene since the moment he joined the project back in 2018.

Edited by Megadreams
  • Like 3
Link to comment
3 hours ago, Megadreams said:

 

Sphene first went into development in 2018 while I was in Project Beast as a simple experiment to see if SCM could be parsed in MTA and enough logic could be implemented to run it. This was the case and a simple test script was run (https://www.youtube.com/watch?v=TBsQSw7B_XQ). Its development was slow at first but picked up significantly towards the end of 2020. Our current plan is have enough implemented to have a few fun/memorable missions working (Wrong Side of the Tracks, Breaking the bank at Caligula's, Black Project, etc...) and then open up a server that specifically allows you to try out these missions.

Afterwards we keep continuing implement more logic and getting the entire storyline itself to work from start to end while further fixing issues and adding improvements after. Only after that stage will we introduce our ultimate goal which is adding a Co-Op experience on top of the storyline. We unfortunately are not able to estimate when this would happen due to the complexity of the project and the fact we have our real life obligations that at times can eat up more time than we'd like.

Note: Sphene is going to be open sourced at some point. When this happens during the timeline described above I do not know yet.

Also, I want to take the time to thank @GTX for all the contributions he has made to Sphene since the moment he joined the project back in 2018.

Awesome news, was wondering about whether or not you guys would decide to OS it. Thanks for you and everyone else's work on this so far, it's really shaped up over the past few years and is exciting to see the development move along.

  • Like 1
Link to comment

Wow, I've had an idea like this myself a long time ago - didn't think that someday someone would make this.

Where does the SCM execution take place? Server or client? When I had the idea, I was thinking it should be on client because some parts of SCM scripts are supposed to work without delay for the player. For example, if we have an operation "wait 0", execution will wait for the next frame before proceeding. But what I considered the problem was that if the script creates elements (like vehicles) and they're supposed to be synced, the client has to tell the server to create the element, and since there will be a delay before the client becomes aware of that element, execution will have to pause as SCM script won't be able to use the element which doesn't exist on the client yet. But now it doesn't look like a big problem, just making some wrapper that will take care of sync stuff, and operating on that wrapper. On the other hand, relying on client to tell the server what to do may cause problems like hackers creating lots of cars in one place, or creating an army of peds and sending them after some player :)

But making all SCM scripts of GTA work with this is much more than just making an interpreter, right? SCM relies on lots of other functionality that has to be reimplemented in Lua. Ped AI, zones, gang wars, wanted levels. I mean some of those things are big enough to be made into separate projects, with SCM interpreter using them as dependencies.

Anyway, looks great, and I hope you guys will be able to do even better.

  • Like 1
  • Thanks 1
Link to comment

SCM is executed on the client and we have wrappers to allow us to interact with elements that have not yet been created on the server. Similarly those wrappers make it easier for us to keep behavior consistent. Not only do you have wait opcodes (which are easy as we use coroutines for this part) but SCM can actually render things as it's executed per frame (the airport text on the very start of the game is rendered this way) and therefore would seriously complicate things when running it on the server.

When it comes to the possibilities of cheating, we're aware of that and will look for a possible solution when Co-Op gets implemented.

The actual interpreting of SCM is only a very small part of what Sphene is as we have to recreate a huge amount of game logic to make this work. This is the part that is taking so long to do.

Link to comment

Yes, rendering, that's what I had in mind. And it's nice to know you use coroutines, a very useful mechanism that is underused.

If you implement all those game features, it could eventually replace single player. I mean even people who just want to play alone, could do so on their own local servers, with ability to run other MTA resources being the bonus.

This inspires me to do some related scripting, not necessarily something exclusively for MTA, but something that could be used on MTA.

  • Like 2
Link to comment
1 hour ago, CrystalMV said:

Yes, rendering, that's what I had in mind. And it's nice to know you use coroutines, a very useful mechanism that is underused.

If you implement all those game features, it could eventually replace single player. I mean even people who just want to play alone, could do so on their own local servers, with ability to run other MTA resources being the bonus.

This inspires me to do some related scripting, not necessarily something exclusively for MTA, but something that could be used on MTA.

To me CO-OP was the first idea I had when searching for GTA SA multiplayer back in 2008. But I think that we will have to advertise this feature to people that use DYOM or CLEO as content creators. Just imagine if Megadreams does all this work for nothing. If we get the passion of these people then it is more likely that their followers will reach us too. Like with any strong addition to our multiplayer engine we also need a good release strategy. This could be the thing that attracts people!

  • Like 3
Link to comment
9 hours ago, The_GTA said:

But I think that we will have to advertise this feature to people that use DYOM or CLEO as content creators.

For that reason Sphene will also feature a compiler/decompiler directly build-in and in time a way to create SCM scripts using a in-game editor (like DYOM) that can be both run in Sphene and singleplayer. But with Sphene you could have the added benefit of being able to add a Co-Op experience on top of your missions. Naturally this is just something I'd love to see but that's not going to be finished for quite a while.

NOTE: We are looking for a community manager to help us with building out our community and help us figure out said strategies.

Edited by Megadreams
  • Like 2
  • Thanks 1
Link to comment
  • 2 weeks later...
On 12/09/2021 at 11:19, The_GTA said:

To me CO-OP was the first idea I had when searching for GTA SA multiplayer back in 2008. But I think that we will have to advertise this feature to people that use DYOM or CLEO as content creators. Just imagine if Megadreams does all this work for nothing. If we get the passion of these people then it is more likely that their followers will reach us too. Like with any strong addition to our multiplayer engine we also need a good release strategy. This could be the thing that attracts people!

These kinds of things don't usually go to waste either way - if it gets released, there are going to be people who will use it in MTA. But letting people outside MTA community know about it would make things even better.

It could set higher standards for GTA multiplayer in general. An unfamiliar person might expect that multiplayer has the same things that single player does, except it allows multiple players to play together - seems like what you were thinking of back then, if I understand you correctly. With Sphene, that could become a standard rather than just an expectation.

On 12/09/2021 at 21:10, Megadreams said:

For that reason Sphene will also feature a compiler/decompiler directly build-in and in time a way to create SCM scripts using a in-game editor (like DYOM) that can be both run in Sphene and singleplayer. But with Sphene you could have the added benefit of being able to add a Co-Op experience on top of your missions. Naturally this is just something I'd love to see but that's not going to be finished for quite a while.

An in-game editor? That's amazing! Sure, if we have a map editor that people use for purposes not limited to MTA, why not a SCM script editor as well? xD

  • Like 2
Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...