top of page
封面1.png

Genre:  VR game

Engine: Unity

Date: 2022.11

My Role: Programmer, Game Designer, Technical Artist

Intro

Dongpo's Zen World is a lowpoly VR game based on Chinese poet/gourmet Su Dongpo's Diary
In the game, In the game, you need to enter the fantasy world of Dongpo, who is forced to temporarily give up meat due to illness.

It's very difficult for a foodie, thus illusions of different meat ingredients will move towards Dongpo and disrupt his practice. And Dongpo needs to purify these "evil thoughts" with his bow and arrow

Intro
Inspiration

Inspirations

Dongpo(苏东坡) is the most famous poet in China. He is like 'Chinese Leonardo Da Vinci' in the heart of most Chinese people.

As a legendary gourmet, he discovered many new ingredients and recorded them in his diary, including pork, scallops and puffer fish.

Dongpo.jpg
Bow.jpg

In Chinese Buddhist culture, the bow and arrow is a sacred weapon used to ward off evil spirits.

Dongpo was also a qualified archer accoring to his poems.

Why VR?

According to Professor Jesse Schell, I came up with a VR solution in at the prototype stage for 3 reasons.

Firstly, in this interactive technology support, the operation of bow and arrow is more detailed and interesting.

Also, As the enemies are closer to the player's eyes, they appear more oppressive.

Additionally, our players can use this game indoors to fully move their limbs during the pandemic.

Dongpo Pork1.gif

Gameplay Design

Bow and Arrow

In this fantasy world, Dongpo needs to take out arrows from the quiver and shoot the enemies in different directions

Bow&Arrow.gif
Gameplay Design
Level Design

Enemy Design

"Dongpo Pork"

"Dongpo Pork" is the basic enemy of our game. It will spawn from the "Ding" (sacred vessel) of Confucius' Temple and walk on ground.

This is the most famous dish invented by Dongpo. Every New Year's Day, the Chinese worship the Confucius Temple with this dish

Dongpo Pork1.gif
Pork.png

The pork is cut thick (about 5cm square), then red-braised, stewed with yellow wine and sugar.

Before this great invention, Chinese seldom eat pork because of the lack of proper cooking ways.  This dish has made pork the most usual ingredient in China.

Scallops

Scallops will hatch from the pond and can be shot when they open their shells and reveal their glittering pearls.

Shell.png
Scallops.gif

When Dongpo was relegated to the tropical Hainan island, he became friends with the local aborigines and became enamored with the scallops there.

He wrote playfully in a letter to his brother: Don't let other officials be relegated here as well, I fear they will eat up my delicious scallops。

Pufferfish

Pufferfish will fly over the Great Wall and move towards Dongpo.

 Targeting an airborne target is a more difficult task, but when the fish blows up, the Dongpo can aim it more easily.

Puffer.png
Puffer.gif

Pufferfish is a traditional Chinese delicacy.  However, the fatal poisonous parts of the fish need to be removed by qualified chef.

Technic Detail

VR Bow & Arrow

Firstly, I added an XR Grab Interactable component on the model of the bow and arrow to make them follow the player's hand position while being grabbed

Then, an XR Socket Interactor was added to the bow to create a notch.

When the Unselect Exit event is triggered, the arrow's rigidbody will get a force.

BowScript.jpg

VR Transportation

For every walkable surface, I need to add a Transportation Area script as a component. 

Enemy Spawn

In each spawn area, I set up a list containing several points. The script will select a point randomly and spawn enemy there. Coroutine is used here to make a certain time interval after the enemy is generated.

The system is very easy to use in teamwork. When my teammate want to add a new spawn area, they just need to create a new point list.

EnemySpawn.gif
EnemySpawn.png

Enemy Follow

Follow.png
Nav.png

Based on the NavMesh system, I was able to create the enemy moving on the landscape automatically.

In script, I set the player as the enemy AI agent's target.

The puffer fish flies high on the sky, thus I used a cube as its parent to navigate on the landscape. 

Outline Effect

Utilizing the Shader Graph system, a black plane will be extruded and rendered along the vertex normal direction of the mesh face.

Lotus.png
Puffer.png

Dissolve Effect

We created a lotus model as the reticle of teleportation system.

I used a shader graph to make the dissolve effect of the lotus. All of the value below threshold value will be clipped, a noise texture was used to create the random effect.

Outline.png
Lotus.gif

Inheritance

In order to reuse the function in base class

All of my enemies will have some same behaviors.

Then, I utilized inheritance features to override the specified functions, creating the various characteristic of them, such as the special skills of different enemies.

EnemySpawn.gif
Inheritance.png

Singleton Pattern

DemoScore.png

Singleton Pattern allows me to create a global function in my ScoreManager script. Each time when a enemy get shot, the function will get accessed and player can get a point according to its type. 

Single.png
Score.png
Technic Detail
Teamwork

Teamwork

Wentao Zhang

Historical Consultant, Game Designer

  • Collected research papers about Su Dongpo, Chinese Buddhism and Chinese food

  • Created the level GDD  based on the data of Diaoyu Castle, China

  • Composed the story of the game

Shuqin Huang

3D Artist, 2D Artist

  • Created all of the 3D models in the game scene in Maya

  • Unwrapped the UV map of models

  • Designed and produced the textures using Substance Painter

  • Rigged the 3D models and created character animation in Maya

  • Drawed UI icon resources

Ruzhang Zhao

Programmer, Game Designer, Technical Artist

  • Created scripts in Unity, including gameplay, VR features, enemy spawn, combat system, sound system and UI system

  • Designed and produced the level prototype based on GDD

  • Designed the enemies based on the papers provided by Historical Consultant

  • Created the VFX and outline shader.

Prototype Design

I am a Tower Defence Game fan. When I got my Oculus, I came up with an intersting idea: How about making a VR Tower Defence Game?

My favorite tower in Kingdom Rush is Archer Tower, so I chose Bow and Arrow as the main weapon of my game.

Prot.jpg
Prot1.jpg

In prototype, the enemies will move towards player on platform from three different directions, thus the player need to walk to different position and aim at them. Based on this feature, I designed the landscape and skills of enemies. 

Map Prot.png

Map of Diaoyu City

After researching the reference material collected by our historian, we selected Diaoyu City(钓鱼城), a small fortress located on the Mountains of Chongqing. It is known for its resistance to the Mongol armies for 36 years miraculously. The archers there killed Mongol leader Möngke Khan and resulted in the immediate withdrawal of Mongol troops from Syria, East Asia and Europe.

In this war, there were three main directions of defense for the fighters of Diaoyu City: some soldiers defended the docks in the flat areas at the foot of the mountains, some blocked the enemy climbing up the mountains, and others fought the enemy on the river. This story from Wentao Zhang inspired me to produce the level.

bottom of page