Frontier

Indie Game Development
Deliverables
Game Design
Game Development
Year
2021
Team
Chenyi Wang
Qiuzi Huang
Juan Li
Yongjie Pan
Xuyun Han
Description:  Frontier is a development and construction simulation game with a carbon-neutral focus, where players need to constantly balance economic development with a stable and healthy living space, and if one side loses control, the game comes to an end.

My Works: First Playable Prototype, Major game mechanism implementation, Shaders/Effects
A Game for education
The Game Design
Nowadays, we are facing more and more environmental challenges. We are always in a situation where we need to keep our society growing while protecting our environment. It is important to be aware of the balance between our society and nature. We decided to make a game that could teach people about this balance.

Games are made for fun, but they could also have educational purposes. When designing this game, our main goal was to let players gradually understand that our environment's overall capacity is limited, and exceeding that limitation will cause problems.
Basic InfoGame LoopDetailsRandom Events and Props System
Prototyping the game
Game Development
Frontier went through a two-month design-development process. Together with my teammate Qiuzi Huang, we finished all the implementation work. In this process, I was responsible for building the first playable prototype. It took me about a week to implement the basic construction system and the land system.
Early gameplay and UI prototype
I didn't finish the prototype in a rush way. Instead, I took some time to decide the framework of our gameplay system, looking into topics such as how to use proper design patterns to make sure that the game base is well constructed in a way that further expansion and modification to the gameplay would be easy and quick.
Final Game
Shading and Effect
Technical Arts
Outline Rendering

Our game has a top-down orthographic view. Therefore, the operation of selecting a plot must be visually emphasized to give our players a clear indication.

At first, I tried using an outline approach usually seen on characters. The main idea is to use an additional render pass to expand the object by its normal in vertex shader and turn the culling mode to Cull Front. While this approach would work great on most characters that have a smooth body, it was not working well on most of the buildings in our game since they are quite sharp, especially on the edges. This would cause the outline to break on the edges.

I also tried to write a script to smoothen the normals by averaging the normal vectors of the same vertex (the vertices on sharp edges have several different normal vectors). While the outline was smoother, and there were fewer broken edges, it didn't fix the issue.

 After doing some research, I realized that the outline should be based on its' rendered image rather than its' physical object. Using techniques of Image Processing, such as Sobel Filtering, would do the right thing in this case.

First, I capture the object which we want to have an outline and store the picture in a render texture. That could be achieved by using another camera. After that, I wrote a script to extract the outline from the rendered texture. Finally, at the last step, before a frame is rendered to the screen, blend the outline with the current render result. This outline effect is much better than previous ones, and with this outline, the game is much more interactive and intuitive visually.