Computer Game Creation

My project is to create my own computer game, and I chose to make a Touhou bullet-hell game, which is an STG(Shooting Game) with a massive amount of bullets.
Notice: The computer game I created with Unity was based on the Original Touhou Project bullet-hell game by ZUN, and most of the elements, including bgm, sound effects, bullets, characters, and painting are all either from the original game or doujin (fan base) creations. The background of the game was borrowed from opengameart (https://opengameart.org/content/space-background-01) by Satur9.

Engineer

Sam

Interests

Anime, Video Game, Coding, Music

School

Hotchkiss School

Grade

Incoming Senior

Third (Final?) Milestone

Final? Milestone

So here it goes, my third and potentially the last milestone since my time at Bluestamp will end in less than two days. When I saw there is an option to create games with unity, I got so excited, thinking I can finally do something big and potentially somewhat contribute to the gaming community, being a passionate gamer. I am a Passionist but also a realistic person, and I know I can’t create something like Witch Hunt or Grand Theft Auto, so I decided to try to create a simple version of Touhou bullet-hell game. Honestly, I don’t really deserve being a Touhou fan, for I don’t put as much time reading the plots, setting, trying to understand each character and their distinct beauty, and I even have hard times trying to pass the easy stage of the original games. I am just an ordinary “Otaku” who likes Touhou music, MMD, and sometimes go and search for mangas. I only know a few characters, and loves Marisa (Sadly due to my inability, I can’t find a way for her to cast the final spark spell card), which is also a reason I made her the antagonist in the game, so I can listen to “love colored master spark” over and over again. I regretted that so much later. I thought I would never get sick of it, but soon I did have hundreds of test play runs. After reading my milestones, one can tell I spent almost half my time creating and designing the bullet patterns (or the spell cards), which I consider is the main part of the game. Seeing it transforming from random shots to some actual patterns with some aesthetics to it was really satisfying personally. In contrast, one can also tell I did not even spend one tenth the amount of time creating features for Reimu, the protagonist. The main reason I picked her as the protagonist was that it was so much easier to find materials relating to her. One just type “Reimu Material Touhou” into Google Image and here you go, and it is a lot harder to find materials for Alice, who should’ve been the protagonist.
About the setting of the game, I actually only changed it a few days ago. I was not satisfied with the original background, so I went to open game art website to find a better replacement. While searching for background, I found this cool universe background, and I suddenly feel it would be cool to have the setting in the universe. I then thought of a simple plot, which Marisa lost her way in searching to become a true magician in the universe, and then was saved by Reimu. To my personal convenience in testing, the bullet pattern is simple in the game, and I convinced myself it is because “Marisa lost faith in her own beliefs, and that is why her “danmaku” is a lot weaker. It was also why she cannot perform Final Spark (sadly) in the game. One might also notice that there is a column of empty spell card on the right side of the game screen. Not only because I can’t (and too lazy to) create a spell card feature for Reimu, being the most powerful? in Gensokyo, she would be too lazy to even use spell cards in fights with a weakened Marisa. One thing I love about the plots of original Touhou games is that although something that seems intense or dangerous is happening, most of the time it would be solved by itself or the antagonist would never achieve anything anyways (RIP Yuyuko), and mine (although sketchy) is similar. Marisa seems to be empowered by the universe, but even if no one bothers to come she will get bored after a few hours (not even?) and come back to Gensokyo. How did she get out in the first place? Hmm, she probably had stolen some books in Patchouli’s library and found some interesting stuff again ^_^.
As I said in the video, a big challenge was getting used to the Unity Engine, but the biggest challenge was actually enduring through one test play after another. There are incidences in which I test played for 10 times just to get the spawning time of the next bullet pattern right, and I somehow could not even pass my own game to see the next bullet pattern for another few times, and when I finally got to the place I found out that I mistyped the number or collision was not working for some reasons. During that, I had to listen to “Love Colored Master Spark” over and over again, to the point which I finally and reluctantly decided to mute the music and change it to “Wind God Girls” temporarily. It was a good experience, but for the next few days, I probably won’t listen to “Love Colored Master Spark” again.
Finally, something big I learned, besides coding in C# and fooling around with the Unity Engine, was the pain and joy in digital game creation. I loved what I was doing in the past few weeks and even the moments when the process was repetitive, boring, and frustrating. Please feel free to download the game file on my website as I said in my video, leave some comments whether you like it and dislike it to help me make my game better. Although it will be one of the busiest time in my life as a rising senior, I still want to do my best to make this game as complete as possible. Thank you. My game: ( https://drive.google.com/open?id=0B5rbvSF1HWcuWl9MSnhJdHRtVzA )

Second Milestone

In my second milestone, I successfully transformed my game from an alpha version to a beta version–a version of the game which is runnable and featured complete. I first changed my bullet patterns to make them look more interesting. Instead of firing shots randomly like in milestone I, I made a gameobject which rotates and fires shots rapidly, making a pattern like this:
I also created another rotating gameobject, but this time it fires from six different points, and larger bullets, making a pattern like this:
Besides making the bullets more entertaining, I also included some basic interfaces. On the right side of the game screen, there are two columns, showing both the number of spells that will be a feature included in my final milestone and the health bar for the player. On the top, there is a health bar for the enemy. I also created a win screen, a loss screen, and a basic starting screen, indicating the start and the end of the game.

First Milestone

The collision box is a 3D rectangular cube that surrounds the game screen, destroying any object colliding with it. It is really useful in terms of deleting the bullets when they exit the game screen and make the rendering process more efficient. In the process, it was frustrating seeing bullets passing through the box even if I added thousands of layers of collision detections, only to realize that my bullets are 2d sprites, which cannot collide with a 3d object. I then have to remodel each of my bullet and characters, making them each a 3d object. The process was frustrating, but seeing bullets disappearing was satisfying.  The Reimu game object, besides all the default rigidbody and collider, contains a script that both controls its attack and movement. I created a series of bullet objects for Reimu’s attack method, and a bullet class and a velocity class just for the Reimu’s bullets. Marisa is pretty much the same, except the movements are automatic, and the bullets are more creative, as one can see that it contains five bullet game objects. The game currently only contains two attacking patterns for Marisa, and more will be added for milestone 2.
At the end of my milestone I, I started adding music and sound effects to my game. It worked, but it was not as completed, so I didn’t include it in my first milestone video, and hopefully, it will be a complete feature for my milestone II.
Because of the complexity of unity engine, I had a really slow start, but after I got familiar with the program I started making progress.
For my first milestone for the intensive project, which is making my own computer game, I finished an alpha build of my game– a simple sample of the game with a start, fundamental game feature, and an end. Currently, the game has five main game objects: camera, background, collision box, Reimu (the player character), and Marisa(the enemy character). The camera shoots the screen, and the background represents the background, whereas the collision box, Reimu, and Marisa are relatively more complex.
The collision between the game objects was the most challenging part, even after switching all the objects to 3D, the objects were still not colliding with each other in the way I wanted. Even now when it works, I still didn’t know how I did it–which is something I need to figure out for my milestone 2.

Starter Project

My Starter Project is the mini POV, which controls the 8 LEDs to shine in different patterns when one waves it. The resistors on the board control the amount of current flowing from one place to another component, and for example, the resistors on the top control and balance the current flowing through the three transistors. The transistors are generally for amplifying or switching current or power to other energy, and in this place, the transistors transform the voltage into the colors in the LEDs. There is a big blue potentiometer on the top of the circuit board, which confers rotation into resistance, and controls the frequency that the LEDs blink. the three capacitors are for controlling the voltage and frequency for both input and output from the batteries. The microcontroller is a small computer of the mini POV, which stores images and patterns of the LEDs. The Zener Diodes are semiconductors that control the connection between the computer and the circuit board. The crystal on the mid-bottom part of the circuit board keeps track of the time and turns the LEDs off automatically after a certain amount of time has passed. The LEDs shines in 4 different colors, and each color is controlled by one of its legs. While enjoying the massive soldering and desoldering process, one major lesson I learned is that direction matters significantly in projects like this. For example, although a resistor is non-polar and direction does not matter, Zener Diodes’ do because they are semi-conductor. Because of carelessness, I had to desolder many components, which took three times as much time as the time it took to build it initially. Some parts are frustrating, but mostly it is a fulfilling learning process.

Leave a Comment

Start typing and press Enter to search