Sunline Devlog #1

End of Sprint 6 2/26/2022

In sprint 5 of Sunlines second semester of development the team goal was to complete our pre-production.

This meant that as a team we had to nail down pipelines, finish all relevant documents, and have playable prototypes of every planned mechanic.
Doing all of this now will help us in development later, making sure we don't waste time in the coming weeks doing things we could nail down now.

Greenlight





This was the presentation we gave to our professor to get the go ahead to step out of pre-production and into alpha. We had to represent who we are as a team, and how what we have spent the last five weeks will help us in the future development of sunline.

I was brought onto liminal loop studios after one semester of development, when the game was given the greenlight for full development. The original team doubled in size, taking on one producer, two artists, three designers, and one programmer, Me. I was brought on to specialize in tools programming, and doing the animation programming. For pre-production it was important that I had documents written up for every planned tool, knew how the animations would be imported into engine and communicate with the animators about that. These documents and conversations makes sure that all team members will be able to work efficiently, especially in areas that overlap with my part of the programming.

In sprint 4 we also decided to add a weather mechanic to the game, that would consist of wind, debree and lightning. Both the other programmers were working on other important parts of pre-production at the time, so I also took on the prototyping of these mechanics.

Debree

Debree are game objects that launched by a spawner. This debree gets picked up by the storm, and can knock a player off course.
The player also has the ability to knock them away in a QTE to avoid being hit and disrupted

Wind

Wind will blow players around if they enter a wind area.
Because wind can be any where in a level, it was important that designers can easily visualize its effect on the level

Lightning

Lightning strikes randomly within defined areas, but creates a floor electrifying effect for a few seconds before it strikes to warn the players.
If a player gets struck by lightning they will be slowed down for a few seconds, making it harder to parkour.

All three of these mechanics were defined with a week and a half of pre-production left. Because we wanted all mechanics to be in build by the time we started alpha, this meant that all three mechanics had to be prototyped in this time. Each of these mechanics includes both designer visualization and options, as well as player effects, and it was important we had both of these parts to efficiently begin to use the mechanics before we exit pre-production.

It was a challenge to get these mechanics set up in time, however it was not doable. I did both debree and wind in the first half week, and then spent the first few days of the next one getting lightning set up. I have had to come back to wind and lightning a few times to fix bugs and tweak the way the mechanics work, but all mechanics are already featured in levels, making these bugs easier to find as we use them after pre-production.

My other role through pre-production was to create tools that will improve the teams pipelines, most specifically around our in engine design and art processes. Before alpha I fully developed two tools, the Replacer/Placer and ROP. Both of these tools were created and designed through discussions with artists and designers. A pain point in the level creation process that was discovered last semester were repeat art passes as the level layout changed. Because of this the environmental artists decided to create "lego blocks" for the world, walls, doors, windows and pipes that can easily be used mulitple times and modularity.

PlacerReplacer.mp4

This tool helps designers and artists seamlessly transition from grey box to fully rendered levels.

Designers can start by placing the most basic version of all decorative items, like tables, windows and fences, without worrying about the visual design of an area. Once the layout is made, instead of having to re-paint over all the greybox, and risk needing to do it every time a level layout is changed, they can instead easily replace the basic placed version with any of its variants, going straight from greybox to art pass, and be able to change the layout whenever without ruing the art.

super ROP.mp4

The Repeatable Object Placer tool creates lines of objects with ease.


There are a lot of situations with the Lego block based art where designers need to place multiple of the same object next to each other in a line, like fences or walls. This can be annoying to do in unity, especially in a non-cardinal direction, so the ROP tool evenly places objects between two points. There are multiple options, like perfectly lined up, or spaced out, and even choices to randomly rotate objects like trees for variety. ROP has allowed us to use the Lego blocks in more places, without the worry of erroneous scaling.

Pre-production is an important milestone for every game to reach, and it is important that the team is prepared for alpha by the end of it. I took on an important roll for this major step, by improving pipelines through programming, and helping the team have prototypes for every planned mechanic.

//more words here pls :)

In the next few weeks of development, during our alpha period, I will be taking on improving the animations and the creation of another tool

We are hoping to rig our main character model with IKs, so we can accurately place hands and other body parts around the environment and reduce clipping. I will be in charge of the hand retargeting to the correct part of the mesh, fixing clipping that occurs without IKs.

Because sunline is all about level feel, I am also creating a "QA Tool" that tracks player movements in levels, making it easier for our designers to find pain points and hold ups in the levels. This tool takes data every few frames and lets us import this data into unity to re-watch players movement.