My contribution:
I’m currently programming game logic, level transitions and AI for some NPC creatures.
My contribution: Scrum master/developer
As scrum master I made sure we are managing the project the way you should in Scrum and helped to find solutions to problems that arose with development so that those whose role was mainly developing could focus on that. I also supported the product owner a lot in organizing the project workflow as I’m good at comprehending big pictures.
We used Git version control in this project and I was responsible for managing the merges.
The scrum master job was not very time consuming so I also did a lot of graphics to the game like the hull of the ship and some metahuman characters. The hull of the ship was not made from scratch, but we had available a model created for 3D-printing that could be modified to fit in game environment. The process included flipping of many many wrong way around normals, deleting or remodelling of unnecessary details and the creation of windows doorways and paint. I was also responsible for creating water elements in pools and the sea. I also added the assets others had made into the main level and created some of the lightning.
Demo (1:53 min): https://youtu.be/XYvSm3wwRV4
My contribution: Everything
I created c++ classes for game logic, scoring widgets, random spawning of the balls and also classes for players and balls. I also created all the graphical assets for the game (except ball textures) and experimented with sounds.
///
/// This checks if the ball is of striped colors
///
///
///
bool AStartSetUp::isStriped(int ball)
{
if (9 <= ball && ball <= 15) return true;
else return false;
}
///
/// This allocates starting positions in triangle for the balls, 1 = tip towards the cue ball
///
///
///
TArray AStartSetUp::startLocations()
{
srand(time(nullptr)); //random seed
short randValue = rand();
//list of balls in random order
TArray balls;
while (balls.Num() < 15)
{
int newBall = rand() % 15 + 1;
balls.AddUnique(newBall);
}
//8-ball must be in the middle
for (int i = 0; i != balls.Num(); ++i)
{
if (balls[i] == 8)
{
balls[i] = balls[4];
balls[4] = 8;
}
}
//low corner balls must be of different style
while (isStriped(balls[10]) == isStriped(balls[14]))
{
for (int i = 0; i < 15; i++)
{
if (balls[i] != 8)
{
int tmp = balls[i];
balls[i] = balls[10];
balls[10] = tmp;
}
}
}
return balls;
}
///
/// Create array of ball materials to blueprint use
///
///
TArray AStartSetUp::ballMaterials()
{
TArray materials;
for (int i = 1; i <= 15; i++)
{
// Path to the Material Instance in the Content Browser
FString materialPath = FString::Printf(TEXT("/Game/BilliardsAssets/M_ball_Inst%d.M_ball_Inst%d"), i, i);
// Load the Material Instance
UMaterialInstanceConstant* materialInstance = Cast(StaticLoadObject(UMaterialInstanceConstant::StaticClass(), NULL, *materialPath));
if (materialInstance)
{
// Material Instance successfully fetched
materials.Add(materialInstance);
}
}
return materials;
}
Demo (0:40 min): https://youtu.be/bHs27lhKdy4
My contribution:
I created the characters and movements.
Demo (1:59 min): https://youtu.be/z29HcSKYeYg