Lift-Off Laetus

how to build a site for free

5/10/21- Beta!

In this week of development for Lift-Off Laetus, the team is preparing for the game's Beta. 


This week we finished up our final character, Nembus. We made textures for him, as well as created an alternate color scheme for the enemy team. Now we have a total of three characters, each with a red/blue and green/yellow color scheme. We also modeled out the final version of the rifle weapon, which also has the same color palettes as the characters. Furthermore, the team created particle effects for polish, providing better visual feedback for attacks.

This week, the tech team continued to implement various parts of the game! One of the biggest mechanics was the action bar, which limits the amount of moves a player can make during their turn. Certain actions, such as the Grenade Attack (5) are worth more action points than others like Movement (1). We also added feedback in the HUD that informs players how many action points they just spent, as well as a message for when they select a move that is worth more than their current action points. There is also an “End Turn” option (with a message on the HUD) that lets the player end their turn before finishing their action points, as well as a message that informs the player when they are switching turns.
We also brought in the art team’s assets for Lyra and Nembus, along with their animations. The game now spawns one of each character on both teams. Additionally, we implemented a tile overlay system so when you’re about to attack with a rifle or grenade, the tiles within range are highlighted in blue, and in the case of the grenade, the currently selected tile is highlighted in green. The left screenshot shows the grid when you enter Rifle Attack mode, the right screenshot shows it for Grenade Attack mode.

5/4/21- Astronomical Progress

This week the team has continued to work hard towards the fast-approaching Beta! With more gameplay implemented and character creation going strong, Lift-Off Laetus has a good trajectory for our deadline goals.


This week the art team continued progress on character modeling, texturing, and animation implementation for our second character, Lyra. We also started blocking out the shapes for our third and final character, Nembus.
This week, the Tech team continued working on features for the Beta version of the game based on playtesting feedback. We did some general debugging based on bugs that were reported during playtesting, and implemented a few new features.
The general infrastructure for power-ups was implemented using Data Assets in Unreal Engine, which allows us to associate effects with power-up types in-editor. This would be most helpful if we had time to make and test many more power-up effects, but it’s still nice to define some behaviors in the editor instead of making new C++ classes just to store some basic information. Other parts of the power-up system, such as applying effects to players and tiles using Actor components, are now working properly as well. Now that the backend of it is functional, we can focus on adding the visuals and specific in-game effects for each power-up type.
We also implemented moving characters and core fragments between two tiles with walking and pushing animations. Additionally, there are now spaces on the board to drop core fragments, thus scoring a point for your team. Once a team reaches 3 core fragments collected, they now win the game! The following screenshot is the placeholder design for a tile where you can deposit a core fragment. We plan to add a more visually interesting “collection device” model to clearly mark where the core fragments should go.

4/27/21- Alpha Centauri

Lift-Off Laetus has successfully built our Alpha! With both art and tech teams working hard, we were able to get many core mechanics working with polished assets.


This week the art team wrapped up finishing touches for the game’s alpha. In doing so, we were able to get a better idea of what the final game will look like aesthetically and gained a better idea of what direction future development will take.

For the environment, the team tinkered with lighting, along with polishing the crashed ship models by burying them in the planet’s surface sand. We also created a procedural tiling texture for the ground, so that the grid-based layout of the map can seamlessly work with the runtime generated map from the config file.
Additionally, the art team began creating a new character, Lyra, in which both the high poly and low poly models for the character were made.

This week, the tech subteam implemented the basic game mechanics for the alpha! This included:
- Support for keyboard for player 1 / gamepad for player 2
- Switching turns
- Moving around the grid
- Pushing core fragments
- Implementing animations for shooting and grenade throwing when those actions occur

A key feature that was implemented was the ability to throw grenades to a specific tile on the grid. This involves using the Unreal Engine API to calculate the projectile path and then passing this path to the grenade to follow. The photo below is what the path looks like then a crew member throws a grenade across the map. The player can also fire their rifle in one of the four cardinal directions and it will damage the first player it hits with a range of 5 tiles.


4/18/21- Config, Creation, & Cleanup

In this past week the team has made great progress toward our playable Alpha Build. Both tech and art teams have been working hard to not only create new assets and code, but also refine and polish existing work.


Early this week, the artists finished the rough design of both ships for the opposing teams to be cleaned up and textured. We built a modular kit of ship parts, and used it to construct and design each ship from the same components. This will make the texturing process a lot easier when we get to it down the line.

Additionally, the art team got started with the first character of our game, Pavo. We modeled out the high-poly version of the character in ZBrush, then moved to Maya to retopologize the mesh and start on UVs.

We were also able to build some of the environmental assets, including rocks, trees, and foliage. The assets were modeled and unwrapped inside of Maya, then sent over to Substance Painter to get textures applied. We had to play around with the colors to nail the alien feel we’re going for, while still accurately communicating what each object is.

Additionally, we finished the unwrapping process for our first character, Pavo. This was followed by texturing, in which we created two alternate color schemes, to represent the two different teams. Animations for Pavo were also gathered. This included uploading him to Mixamo, fixing the bone structure and naming and then shopping around for animations for the game. These included walks, runs, shoot sequences, taking damage, slipping and falling, turning on the grid, and pulling and pushing the core fragments around.

Finally, UI assets were made for the tech team to implement within the game engine. Such assets included portraits for the playable characters, status effects, and playable actions (with a respective action point meter).

This week, the tech subteam continued implementing the base classes from last week’s class diagram. We also created a system for spawning the map tiles and the harvest sources via config files. This allows us to spawn each harvest source as an Actor while simultaneously passing a reference to that actor to all the surrounding tiles. This way, a player can query the tile they’re standing on to find out if they can harvest a power-up. The images below are a before and after of the map when the game starts: 

Before the game starts

After the game starts

In the screenshot above, red tiles are the ones where players can harvest from a slime tree, blue tiles are where players can harvest from a rock, and the green tiles are where players can harvest from a shrub. This is only for visual debugging, as this information will be communicated in-game without using tile color.

One config file, grid.txt, is used to specify the number of rows and columns in the overall map grid, as well as the location to start placing tiles and a text-representation of a 2D array of integers, which specify which parts of the grid have a tile and which parts have a hole in the map.  The second config file, grid_env.txt, specifies each of the harvest sources, what tiles to place them on, and which neighboring tiles should be able to harvest from it.

Additionally, we created the Crew and CrewMember classes, and successfully created two crews with three teammates each. We are currently working on adding appropriate meshes to each crew member. 

grid.txt

grid_env.txt

4/5/21- BLAST OFF!

This week Lift-Off Laetus took off with development of the game! After two very iterative brainstorming sessions to solidify the main gameplay loop, the team felt confident heading into asset creation and program design. The art team's main objective for this week was getting the greybox built and sent over to the tech team. They created greybox-friendly shapes for the terrain tiles and created tree, foliage, and rock models, along with each respective team's ships to serve as obstacles on the playing field to give a sense of the alien environment. 


Additionally, the art team got started with the first character of our game, Pavo. We modeled out the high-poly version of the character in ZBrush, then moved to Maya to retopologize the mesh and start on UVs.

As the whole team worked to iron out details for the game, the tech team got to work with planning out the code structure. They figured that getting our architecture ideas into one page would give us a better sense of the project’s scope, as well as ways we could split up initial tasks. They created a couple loose diagrams for this planning stage. First was a class diagram, which helped us make sense of the many components that would make up the game’s codebase.


Game Flow Chart

Class Structure Chart

Additionally, the tech team began implementing the grid representation in the game. They set up a config file that specifies the number of tiles along the length and width of the board, as well as numeric values for each entry in the grid, specifying if that tile contains an obstacle or not. At the beginning of the game, it parses the config file and places a GridSpace tile object on top of each tile in the map. This way, the team can reference the grid like a 2-dimensional array. The image below shows GrideSpace objects being placed above each map tile. In the game, they will be invisible so you can see the map underneath, but the gray square mesh is being used for visual debugging.


Mobirise