Skip to content

Switch to a JSON-based format for .ssproj #48

Description

@fatcerberus

The implementation, as it is now, is simply a surrogate for the game.sgm file. The SGM is generated from the project automatically when the user clicks the Test Game button or makes an .spk package.

An .ssproj file is stored in true INI format:

[Animals]
maggie=hippo
Fattesty=cow
Machel=ape
FTG=hunger-pig

[WhatAreTheyDoing]
What=Preyin' on you
When=Tonight
How=Hunt you down
How2=Eat you alive

This makes the file easy to manipulate by the user while still providing some flexibility for organization. I have some questions, however:

  • How are we handling directory structure? VS allows a project to be stored anywhere and reference files in any arbitrary directory, either relative or absolute. This is probably more flexibility than we need, but we do probably still need a standard for what is considered part of the project and what's not. So how should inclusion be specified in the .ssproj?
  • Where is the project built? Currently game.sgm is generated alongside the .ssproj and everything else is identical to a normal Sphere game structure. This is probably not adequate for pipelining though, since project files will end up being included with the game that aren't actually part of it. I think you suggested dist/?
  • How to track incremental builds. For a multi-megabyte game (think 50+ MB), copying all the files into the build wholesale every time the user clicks Test Game will get very inefficient. So a way to detect only those files that changed is needed. Maybe store the last build time in the .ssuser file and ignore any files older than that when building?

And... that's all my questions for now.

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions