The first main struggle we faced was simply getting Groop studio as a whole into Groop Surfer. This wasn't too difficult, as unity actually has functionality to allow users to import other projects as packages into unity projects. This means for not only Groop Surfer, but all planned games in the groop suite, we will be able to import Groop Studio in its base form. However, after this we had to modify Groop surfer to our needs for this project. This required adding another scene where player can interact with the Groop Studio grid. Additionally, the player model has to be instansiated on the grid, and be aligned with the grid.
In order to set what the player changes as the new player model, we needed a system to distinguish between what the player can recolor, and what the player can add/erase. We accomplished this by having a set grid size, within which the player can add/remove voxels as they please. If the Voxels are part of the base player model however, the player can only set the color, not remove these voxels. the place-able voxels are limited, and the number a player has is increased by getting checkpoints and completing levels in the practice tool. This is what the serialized integer variable is for that is saved in the .save file.
Once the player has their desired look for their player model, they can save their model. this will update the player model, which is stored in the resources folder locally, so that when a player joins a server, their custom player model is displayed for other players to see. this also means that the non base player model components needed to be saved in a file type, in order to change and update these parts later on. since our game does not need to be compatible with other software as was the case with Groop Studio, we were able to create a custom file type to store this information, which alleviated some difficulty.
Because Groop studio was a general tool that allowed us to create voxel art of any grid size, and our needs in Groop Surfer were more narrow, we had excess functionality that was removed from group studio, and additional functiaonality added. This included:
[Removed] Load/Save of specified file
[Removed] Version History
[Removed] User specified grid size
[Removed] Scene settings
[Removed] Select tools
[Added] Instantiation of player model
[Added] modular control of player body parts
Added Lightweight Groop stuido
Added customization for character model