ShiVa3D Curation

From Flashpoint Datahub
Revision as of 11:55, 23 August 2022 by Nosamu (talk | contribs) (Undo revision 8294 by VFDan (talk))
Jump to navigation Jump to search

This guide will show you how to curate ShiVa3D games using Flashpoint Core.

Recognizing ShiVa3D

There are a few ways to know that you found ShiVa3D content on the web:

  • You see the text "Application created with ShiVa" somewhere on the page.
  • You right-click the page and choose View Page Source, and see one of the following
    • A reference to a script with a name like stkobject. For example, you might see stkobject1.8.js.
    • A reference to a file with a .stk extension.

Notes

Before you begin, there are a few things to keep in mind:

  • The ShiVa3D browser plugin relies on servers which are no longer online, so it will not work. Instead, Flashpoint uses the standalone ShiVa3D runtime.
  • You can install the ShiVa3D runtime from here. Once it is installed, you'll be able to open ShiVa3D (.STK) files by double-clicking them. Or, right-click the STK file for more options.
  • The standalone ShiVa3D runtime does not obey the system proxy settings, nor does it have its own configurable proxy settings. Instead, Flashpoint's ShiVa3D setup uses Flashpoint's server as a standard localhost.
  • The Application Path for all ShiVa3D games is FPSoftware\startShiVa.bat.
  • The Launch Command for a ShiVa3D game is a URL matching the folder structure inside the content folder of your curation. This is the same as any other Platform in Flashpoint. startShiVa.bat will automatically convert the launch command into a localhost URL before passing it to the ShiVa3D runtime.
  • All ShiVa3D curations must have the -extract Mount Parameter.

Curation Steps

Flashpoint comes with a copy of the ShiVa3D standalone runtime, and a launcher script called startShiVa.bat. This section explains how to create and test a basic ShiVa3D curation. We will use The Hunt as an example: http://www8.agame.com/mirror/shiva/t/the-hunt/TheHunt.html

  1. Open this page in your browser. Right-click anywhere on the page, click "View Page Source", and search for .stk. You should see a line that looks like this:
    stkobject( '950' , '533' , 'http://www8.agame.com/mirror/shiva/t/the-hunt/TheHunt.stk' , '' , '' , '' , 'http://www8.agame.com/mirror/shiva/t/the-hunt/TheHunt-startup.stk' , '' , '' , 0 , 1 , "<V t='2' n='S3DStartUpOptions.BackgroundColor'>038,038,038</V>" , 0 , 0 , 0 , 0 , 1, null , null , null, 0,'262626',0);
  2. Find and download the main STK file. In this case, TheHunt.stk is the main file. As a general rule of thumb, the main file will be the largest file, while the smaller file will be a loader.
  3. In your Flashpoint Core directory, navigate to Legacy\htdocs. In htdocs, create a directory or series of directories to match the original site's structure. In this case, we'd create a series of directories matching this path: www8.agame.com\mirror\shiva\t\the-hunt\. Finally, move your STK file into the the-hunt directory.
  4. Now, we are ready to test the game in Flashpoint Core. Click the "New Game" button on the bottom right corner and enter the game's title, platform, application path and launch command. In this case, they would be:
    Title: The Hunt
    Platform: ShiVa3D
    Application Path: FPSoftware\startShiVa.bat
    Launch Command: http://www8.agame.com/mirror/shiva/t/the-hunt/TheHunt.stk
    

    The Application Path will always be the same. The Launch Command will always be an HTTP (not HTTPS) URL pointing to the main STK file that you downloaded. You can run the game by double clicking its thumbnail in the launcher. You should now see the game running in its own window. Press Alt-Enter to toggle fullscreen mode.

  5. When creating your curation, make sure it has the -extract Mount Parameter.

Wrapping It Up

First, make sure that you have thoroughly tested your curation and followed the Curation Format. Scroll down in the Curate tab and click the Export button at the bottom of your curation to save it as a .7z file. After you've exported the curation, you can find it by clicking the Exported Curations button on the Curate tab (as long as you didn't choose to save it somewhere else). Once you have the file, submit it to the Flashpoint Submission System. An explanation of how the site works is available here.

After you have uploaded your curation to the website, a Curator will check it. This can take some time, so please be patient. You will be pinged in the #fpfss-notifications channel about whether or not your submission was approved, and if any changes need to be made.

Congratulations! Your submitted game/animation will appear in a future version of Flashpoint.


Finding the STK file

You might have noticed that the embed code for ShiVa3D Plugin content is generated using JavaScript, specifically the stkobject script. However, the stkobject script no longer exists on the ShiVa servers, so you cannot use Inspect Element to find the embed code like you can with other plugin content. Luckily, when curating ShiVa3D content, you only need to find the link to the main STK file. However, sometimes even this is a challenge. This section will go over an example of how to find the main STK file if the site uses a JavaScript trick.

This tutorial assumes basic knowledge of JavaScript. If you're having trouble finding the link to an STK file and this tutorial doesn't help, be sure to ask in the Flashpoint Discord server.

Example: ShiVa Chess

Navigate to the webpage: http://ezis.appspot.com/ShiVaChess.htm. Right-click and choose "View Page Source".

Instead of the usual type of stkobject line, you'll see this:

stkobject( screensizeW.toString() , screensizeH.toString() , stk_url , null, null , null , null , null , null , 0 , 1 , "<V t='2' n='S3DStartUpOptions.BackgroundColor'>034,034,034</V>" , 0 , 1 , 1 , 1 , 1, null , null , "jpg", 0 , 222222,1);

There's no STK URL there! In its place, there's a JavaScript variable called stk_url. So, we need to find the value of this variable.

Searching the page for .stk again, you'll see this:

var stk_url=url.substr(0,url.length-4)+".stk";

url refers to the URL of the webpage, so url.substr(0,url.length-4) will yield http://ezis.appspot.com/ShiVaChess. The final bit of code will add .stk to the end of that, so the value of stk_url will be http://ezis.appspot.com/ShiVaChess.stk.

Now that you've found the STK URL, you can proceed with the curation as normal.