Vertical Slice

From Wulinshu
Jump to navigation Jump to search


Vertical Slice

A vertical slice is, "a type of milestone, benchmark, or deadline, with emphasis on demonstrating progress across all components of a project.".

d3t left a few references to a vertical slice for Shenmue I, both in unused code and also within game files. Most notably, the PS4 release of the game contains the most references to this.

Overview

In the re-releases, there existed 3 VS modes:

  • VS Explore
  • VS Fight
  • VS QTE


The modes showcase different components of the game in different areas and are accompanied by custom scripts and save files which are never used normally.

Implementation

The vertical slice modes are implemented through system modules. Each mode has its own system module which would have done some setup for the rest of the implementation to make use of. Unfortunately, in all cases, these appear to be unused and not functional. As these are included in the debug code created and used by d3t, they can be triggered through the d3t Debug Enabler in Shenmue II by LemonHaze but are not implemented in any way.

The leftover PS4 code which references the Vertical Slice seems to be more complete and attempts to load /ui/mainmenu/MainMenuDemoVerticalSlice.ui or /ui/gamemenu/GameMenuDemoVerticalSlice.ui depending on whether the input to the function which returns these strings is either 4 or 6, respectively. This is guarded however by a function which returns an integer, either 0 or any non-zero number, presumably to denote whether or not the game is running with/in support of the Vertical Slice modes. However, this function always returns zero, which points to stripping out this functionality before release.

This process can be shown with pseudocode in C like this:

int d3t::GetMainOrGameMenuForVerticalSlice(int Type)
{
  if ( d3t::IsVerticalSlice() == 1 )
  {
    if ( Type == 4 )
    {
      return "/ui/mainmenu/MainMenuDemoVerticalSlice.ui";
    }
    else if ( Type == 6 )
    {
      return "/ui/gamemenu/GameMenuDemoVerticalSlice.ui";
    }
  }


The DebugSaveSetup document could have been used to load into the vertical slice through UI code which would be aware of the custom scripts.

Modes

VS QTE

The QTE mode is a direct copy of Disc 2: Dobuita, with some changes, presumably during development of the re-releases and when paired with the accompanying save file, the Asia Travel Co. QTE with Jimmy starts immediately.

Attempting to load the save game without the VS_QTE script in-place will cause the game to load normally into Dobuita.

The following logging strings are not found in this version of the Dobuita script and the training issues in the Parking Lot seem to be present and unfixed in it:
training_npc_too_close: set
training_npc_too_close reset before training starts

VS Fight

The Fight mode is a direct copy of Disc 2: Hazuki Residence (Exterior), again with some changes presumably during development as noted above.

VS Explore

The Explore mode, provided with just a save file, is a direct copy of Disc 2: Sakuragaoka, again, with changes as noted above.