One Gunman

One Gunman

One Gunman Overview

You play as One Gunman, who must gather the rewards for shooting the bandits (Evens, Odds, Fibonaccis, Squares). Each bandit has a numerical value associated to it, which determines if it is one that can be shot for a reward. The reward will change periodically to a new set of bandits. Shooting an incorrect bandit will result in One Gunman losing a life. When all of his lives are gone, the game is over.

 

One Gunman Post Mortem

One Gunman is my third official Ludum Dare entry, and it was my eleventh game developed for this site (including mini-LDs and warm-ups) since I registered in April 2013. I feel like I’ve learned a lot during that time, and these projects have definitely made me a better Unity developer. For this Ludum Dare, I knew I wanted to do something different.

After hearing the theme announced at our local Knoxville Game Design meetup, I knew I wanted to make the number “one” a central part of the game. Going with that approach, I decided to make the number “one” humanoid, since I knew how to quickly make meshes from text in Blender. I added eyes, arms, and legs, but the character was still sort of boring. I thought about some of the characters in my latest XBox Live Indie game TTY GFX ADVNTR, and remembered the character “Needles”, which is a humanoid cactus wearing a cowboy hat. Then I remembered playing the classic game GunSmoke at one of those 20-in-1 arcade machines not too long ago. There really haven’t been too many western themed games lately. Therefore, I gave my humanoid one a cowboy hat, boots, and a gun to shoot. I also went ahead and modeled a cactus in Blender as well as a background prop.

OneGunman 2013-12-25 01-02-19-01_small
One Gunman gameplay

Another classic western game was Wild Gunman. I liked the Gunman name, so I decided to call this game “One Gunman”. The name is also sort of a play on the term “Lone Gunman”, which differs my game’s title name by just the leading “L”.

After creating the models, I got the main character imported into Blender and moving around. I also created some enemy boxes that moved around. Next, I implemented shooting projectiles. However, I quickly found that trying to aim on the X-Z plane with no lock-on could be quite difficult. Therefore, I limited the character to just being able to move left and right, and he is only able to shoot forward. This makes the game similar to other classic arcade shooters, except this game uses a third person view instead of a top-down birds eye view. Shooting enemies was fine, but it still seemed really boring.

One Gunman Time-lapse

Then I had the idea that One Gunman would shoot number sequences as the targets. For each enemy, I assigned a random digit value in the range of 2 through 9. First I decided to use evens and odds as the requirements. Once I got those working, I added a countdown so that the requirement would change periodically. I was really inspired by a game called Pig and Bullet, which makes the player switch between collecting red and blue bullets every few seconds. The problem with that game was that you never knew when the objective would change, so I added a visible countdown in my game. New objectives were added, such as Fibonaccis (2 3 5 8), Squares (4 9), and Perfects (6). I didn’t include 1 in the sequences, because that would mean that One Gunman would be wanted as well causing unneeded confusion. Each sequence also has a set reward associated with it, where the more complex sequences have higher reward values. For the lose condition, I made it so that the player lost a life if they run into a number or shoot an incorrect number. Finally, I rendered 3D numbers in Blender, which replaced the box enemy meshes in my game. I included statistics such as number of shots and accuracy percentage on the game over screen, which was inspired by other classic arcade shooters.

Since I had the core engine finished on the first day, I worked on polishing the game on the second day. A “WANTED” poster was added which displays the current objective in the lower right portion of the screen. The objective change countdown was converted into to a bar which shrinks as it nears zero. Like my previous entries, I used Garage Band on my laptop to make the music for the game. The piano and guitar sounds were primarily used to give the game a more western feel. Bxfr was used again for making the gunshot and other sound effects. Using my computer microphone, I recorded myself saying “Shoot X”, where X is the current objective. Then, the vocal recordings were modified a bit in Audacity to give it a better sound. The voice seems to really enhance gameplay, since it keeps the user’s attention on shooting the numbers, instead of looking at the Wanted poster. Finally, particle effects were added using a star texture that I made in Gimp. I tried changing the particle system color over time, but for some reason it just wasn’t working for me.

I learned a few lessons from this game. The first lesson is that people don’t like shooting at a perspective. I thought the controls were intuitive, but some people definitely found it difficult to shoot. The best I can explain the shooting controls is that it is similar to rolling a bowling ball on a bowling lane. The game could have included some additional visual cues to help line up the shots down range. I could have also used a top-down view, but then the player would not be able to see the details of the model that I had created. Using an orthographic projection may have helped as well, which would have kept the numbers and bullets traveling vertically on the monitor screen. Another option would be to highlight the number that the player is currently targeting, but I thought that may make the game too easy.

onegunman_weightpaint

There was also some difficulty with getting the model moving correctly. When I assigned the armature, I used the default “with automatic weights” that I always use in Blender. However, since the arms and legs were so skinny, it didn’t properly weight paint all of the vertices. I’ve done manual weight painting before, but this model had some difficult to reach vertices. After some trail and error, I discovered that it is possible to pose the model while weight painting it. This made reaching some of the difficult to reach vertices much easier, and you can see the vertices snap into place while weight painting it.

Overall, I am satisfied with the game that I have created. I would have liked to made the other numbers humanoid as well, and I really needed to add more props to the environment. Things like buildings, dust, and tumbleweed could have really added to the environment. If I get the time to work on this game some more, I definitely think it could be turned into a great game.

One Gunman

 

Trailer Video

MetroPulse Article

The MetroPluse entertainment paper interviewed me and other members of the Knoxville Game Design group during Ludum Dare 28. The article features my One Gunman entry.

 

TTY GFX ADVNTR

TTY GFX ADVNTR


Levi D. Smith presents TTY GFX ADVNTR for Windows 10, a popular role playing game that was originally released on the XBox Live Indie Game marketplace.  TTY GFX ADVNTR puts the player in the role of a hero who must defeat the dragon to save the princess.

The idea for the game was originally conceived through a game jam competition, where the theme was to create a game using a low level programming language in 48 hours.  The game was inspired by BBS DOOR games of the mid-90’s, and it uses a graphical style of games that were played through a computer terminal (TTY).  After receiving positive feedback from the Indie developer community, the original game was ported to the Xbox Live Indie Game platform so that it could be enjoyed by a wider audience.

As the hero, the player must battle monsters across five different lands to gain the experience needed to conquer the dragon.  Long time RPG fans will find the battle system and mechanics very familiar.  While on the adventure, the player will meet various allies who will assist the player in progressing through the story.  Weapons and armor crafted by the blacksmith will give the player the needed power to complete the adventure.

Platforms

PC – Microsoft Store

https://www.microsoft.com/en-us/store/p/tty-gfx-advntr/9pdtw60d6pg5?rtc=1

PC – Humble Store

XBox 360 – XBox Live Indie Games
TTY GFX ADVNTR on XBox Live Indie Games

Release Trailer

Contact

Website  http://levidsmith.com/tty-gfx-advntr/

Twitter  http://twitter.com/GaTechGrad

Facebook  https://www.facebook.com/LeviDSmithGames

Official Soundtrack  https://soundcloud.com/gatechgrad/sets/tty-gfx-advntr

 

Reviews and Other Information

TTY GFX ADVNTR is #1 on Splazer Productions Top 5 XBLIG for November – XBLIG Show

Bradley Metrock – TTY GFX ADVNTR Review

TTY GFX ADVNTR mentioned in Metro Pulse article

Writings of Mass Deduction

XBLA Ratings – Review by Joebal

the XBLIG – TTY GFX ADVNTR Review

Splazer Productions: Gameplay video

Knoxville Indies are Taking Over! – Knoxville Game Design

TTY GFX ADVNTR on GameFAQs

Defunct Games TTY GFX ADVNTR Review

GameTrailers – Trailer Video

 

Twitter Buzz

: @GaTechGrad I had a lot of fun playing your game TTY GFX ADVNTR!

knoxvillejeff:  Just finished TTY GTX ADVNTR by @GaTechGrad. Great fun!

danielauger:  Nice looking BBS / DOS / retro graphics RPG for XBLA: marketplace.xbox.com/en-US/Product/…

DefunctGames: I’ll be digging into the curiously titled TTY GFX ADVNTR this weekend. The trailer is intriguing: youtube.com/watch?v=wwZXs5…

bmetrock: Just bought, played, and finished TTY GFX ADVNTR on Xbox 360 (XBL Indie Games) by @GaTechGrad. Old-school text-based RPG.

daydalus: @GaTechGrad awesome! Will dust off my 360 and check it out 🙂

WilloTheNight: @GaTechGrad Awesome game! Everyone, go buy it.

freestylecoder: I play tested it. It’s good. Go get it MT @GaTechGrad: TTY GFX ADVNTR launches tonight at midnight for XBox Live Indie Games! #TTYGFX #XBLIG

 

Box Art

boxart

 

About Levi D. Smith

Levi D. Smith graduated from the Georgia Institute of Technology in Atlanta, Georgia in 2002 with a bachelor’s degree in computer science.  He graduated from the University of Tennessee in Knoxville, Tennessee in 2008 with a master’s degree in industrial engineering.  He currently works in the Knoxville area as a software engineer, and he develops computer games in his spare time.

ttygfx_levidsmith

Previous Titles

Levi released Resistor for XBox Live Indie Games in September 2012.  The game was praised by numerous Indie game review sites, such as Armless Octopus, Ramble Media (formerly XBox Ramble), Did not Finish, and Indie Theory.

Bomb Squad

Bomb Squad

 

Gameplay Video

 

Overview

This was my entry for the Ludum Dare 27 competition.

Evil terrorists are spreading bombs across the the city. These bombs are set to explode in ten seconds. It is your job as a member of the elite bomb squad to disable them and save the city!

Cut the wire that matches the color of the bomb to disable it.

Cutting the wrong wire will make the bomb explode.

Your suit will take damage from exploding bombs. When your suit reaches 0% the game is over.

Exploding bombs will damage objects, which will add to the property damage. Try to achieve a low property damage value.

 

Play now on Game Jolt

View the original Ludum Dare entry

 

Post Mortem – A Culmination of Learning Experiences

This is my second time participating in the official Ludum Dare competition. Overall, I feel like my skills with Unity have significantly increased since the last competition, when I submitted Amish Brothers. Since the last competition, I have submitted a game to each mini-LD, and each game developed taught me something new about Unity.

Bomb Squad Timelapse video

This time around, the theme was “10 seconds”. My idea was a game where you play as a bomb squad technician, where you have 10 seconds to disable each bomb. If the bomb explodes, the objects around it will be propelled away and add to the property damage value. The objective is to keep the property damage as low as possible, while avoiding bomb blasts which damage your suit. If your suit reaches zero percent, then the game is over. Additionally, you must “cut the wire” that matches the color of the bomb, otherwise the bomb will explode and you will take damage. For more details on my design decisions, see my Bomb Squad Day One entry.

 

bombsquad06
Bomb exploding next to a wall

 

For this game, I knew I wanted to use Unity’s physics engine for handling the explosions. I first started learning about Unity’s physics engine when I developed Earthball for the mini-LD42. When the bomb explodes, it applies an explosive force to all of the objects in the game, including the player. I found that this starting causing problems when there were over about 600 objects in the scene. When the objects were exploded and scattered everywhere, the slowdown didn’t occur. It was only when the objects were stacked, which I believe is because when the objects are stacked, they are continually colliding with each other, which requires a significant amount of processing power. The player is also affected by bomb blasts, but I feel that if I learned how to use the “ragdoll” physics in Unity, the effect would have been much more impressive. Currently, the player just has a cube bounding box, so the player looks very stiff when thrown by an explosion.

The ground is just a terrain object (like I used in the test Giga Guy game that I developed), but I always have issues with my models falling over when going up the terrain, therefore I just left the game area flat. However, I was able to use the blended terrain textures to make the ground look much more pleasing.

I used Blender again for rendering my models. There were really only two models that are in this game, which are the player and the bombs. From my LD27-warmup game North Avenue Adventure, I learned how to properly project my mesh to a 2D layout, and how to modify the unwrapped vertex “islands” properly to generate an image layout to be textured in Gimp. I am happy with the model that I created, but I would like to go back and add more details later. However, I found that it can be difficult to modify a model in Blender once all the modifiers (mirror, subdivision surface) have been applied and the armature added. I also think I could have done a much better job on the bomb model, since it is just a stack of cylinders. A spark particle system on the bomb would also be a nice touch.

My mini-LD43 game, Marching Band Simulator 2013 taught me more about composing music in games. However, for Bomb Squad I decided to go with Garage Band on my Mac laptop for composing the music. In my previous entries, I have used PxTone Collage which is a great tool, but the blips and bloops it uses cannot compare to the music that can be created with Garage Band. For the complete soundtrack, please visit my Sound Cloud page. The only problem with Garage Band is that I had to export my songs to iTunes to get the audio file, and then copy it over to my development system. It is a bit of a hassle, but I think it is worth the extra effort.

Another game I created in Unity for #1GAM was called Genetic Disorder, which is where I learned how to make the text meshes for the title screen using Blender. It’s a fairly simplistic process, but the number of vertices must be reduced otherwise the model file size will end up being huge.

bombsquad02
Text mesh zooming in on title screen

For the 7dRTS challenge, I created a game called Ninja Squad Commander, where I learned many more Unity tricks. First of all, it taught me how to center a text object over a model, and how to make the 3D text sharp (by default the 3D text will be blurry). This was used in Bomb Squad to display the number of seconds until explosion over each bomb. In that game, I also learned how to make detailed particle systems, like the fire effects, using Gimp to create the fire texture using a gradient and IWarp filters. The game also taught me how to attach lights to particle systems at runtime, to give the fire a glowing effect which can be seen on objects around it. Both of these effects were used in Bomb Squad at the location of an exploded bomb. When I was developing the RTS, I also learned how to determine the distance between two objects in 3D space, since using multiple physics colliders for different events can cause problems. The 3D distance calculation was essential to determine how much damage the player would take from a blast, and how much property damage is received by an object. The distance calculation is also used to determine if a bomb is selected to be disabled. My 7dRTS game also taught me how to make a shadowed font from a text object, which made the static text in the game look much better.

The one new feature that I added that I hadn’t implemented in a previous game is the mini-map. I felt that it was needed, since the player can’t always see the entire game area, so there would be bombs hidden to the player. That problem could be helped by adding code to fix the camera behind the player, so that is something I will look into for a future release. I think the mini-map would still be beneficial, but some players noted that it makes the game a little too easy, so I may eventually take away the bomb color on the mini-map.

Honestly, I can say Bomb Squad wouldn’t have turned out as good as it did if I hadn’t created all of those other smaller games after LD26. One important factor in being successful in Ludum Dare is knowing your tools and all the tricks before the competition starts. Trying to learn new technologies during the competition is a recipe for failure.

Follow me on Twitter at @GaTechGrad and visit my website at www.levidsmith.com