Tower Defense Arcade Game and Box

by audds, brandonyu11, frankie77777, jackkolb, and noah.marty | updated December 13, 2014

Every journey begins with one step. A single forward movement of bravery and determination,symbolizing commitment and perseverance. This is our first step in the war against Global Warming: a battle that we can't fight ourselves, but instead can spread awareness of using a medium everyone loves: a game.

5

This is a blog of our building process for the creation of our Tower Defense Arcade Game. We are making an old-style, 8-bit arcade game, where the player places various trees and ponds to help rid the air of Greenhouse Gases (represented by cars). Just as you would see in an arcade, we are also designing a big heavy arcade box with which to play the game! (with cool pretty pictures on the side. Our final goal is to ultimately rid the world of the greenhouse gas threat, and perhaps continue with our efforts and present this game at Maker Fairs, Save the Air Events (we have future ideas of perhaps making this game solar-powered), hopefully making an impact on others and encouraging them to partake in what may be the greatest challenge for the human race: fixing Global Warming.

Friday, June 20 at 7:10 PM
Created by jackkolb
I like this idea! Can you explain what a tower defense game is? Also, do you know about Gamestar Mechanic? I wonder if it might be useful for developing your game: https://gamestarmechanic.com/ Looking forward to seeing how this project develops!
6 months ago
hey, just noticed that your image seems to be mirrored! the text is backwards. do you mind uploading an updated image?
6 months ago

Once we got to know our group, we realized that we were missing one crucial person: a programmer. Since no one in our group has any idea how to program in Flash (which is the language we are using to make this game), we thought we would try to download the source code to a basic tower defense game and then modify it to fit our purpose (with permission from the author of course).

After about three minutes of searching (which involved opening Google Chrome, typing in "how to make a basic flash tower defense game", and pressing the first link), we found a pretty cool and very basic game from a website called  http://makeflashgames.com  (which could not be more conveniently named) . After visiting the site, looking through the 15 or so tutorials, and thinking "oh, this should be easy. We can do this!", we downloaded the 1000 or so lines of gibberish and set of to decoding it!

When we tested out this un-modified game, we really liked it. The graphics were incredibly basic (which we liked), there wasn't any bizarre clutter (which we adored), and we knew how we could make this basic game into the final project (which took my heart). There was one monster type, which we thought was fine for now, three towers, and a really easy tower placement setup. At the time, it was an idea come true!

After some high-fives, fistbumps, and cheers, we thought we had this project in the bag.. on the second day of the internship. We had our design, all our plans, and felt totally ready to get started! So embarked we went!

From our sketches and designs, the process seemed all nice and easy until we started (which is how all projects are I guess). We first tested our boundaries with Flash, and were able to modify the very bare-boned basics of the prototype game, such as how much damage a tower dealt, or how far away it could shoot. After feeling incredibly happy with how easy life was, then the dreaded question came up.. The one that our minds had been subconsciously forgetting while we basked in our ecstasy: we wanted 5 towers, not 3..

Friday, June 20 at 8:45 PM
Created by jackkolb

So our towers, in progression from least powerful to most powerful:

Grass, bush, normal tree, pine tree, pool/puddle/lake

The larger, and the more surface area a tree has, the more carbon dioxide it absorbs, which explains going from grass to normal tree. Pine trees also absorb the largest levels of carbon dioxide, which is why there is a pine tree. The ocean absorbs two thirds of the worlds carbon dioxide, which explains have the lake as the most powerful.

The attackers, going from least powerful to most powerful:

Methane cloud -> lawn mower -> robot w/ exhaust -> hummer -> molten something in a giant pot

Overall, out of the different uses of energy, agriculture produces th least, then Commercial, then Industrial, then transportation, then Electricity. The different attackers represent these different areas of energy. 

-Audrey

 

 

Friday, June 20 at 8:56 PM
Created by jackkolb and audds
wow, so cool that you guys are jumping right into programming!
6 months ago

Since no one in our group knows how to program, and our we had no choice but to follow a path that we with our current non-existant coding abilities could follow: Taking a game and modifying the graphics and variables to suit our wants. We downloaded the game, and set off on the first step: changing the tower designs.

There were three towers already included in the prototype game: Fire Tower, Ice Tower, and Lightning Tower. Our first task was to change the  pictures of the towers.. a task easier said than done.

After a few hours of trying to figure out what the heck we werte supposed to do, we decided that Frankie, Audrey and Jack would go draw out the arcade box, Noah would design the buttons (which we are currently printing out on the 3D printers), and that left Brandon to explore the dark lonely cavern which is Adobe Flash. 

Sure enough, after 30 minutes, everyone completed their tasks, and we were proud to have completed all three of our tasks: Detailed dimensions of the arcade box, a nice 3D model of our button design, and lo and behold we saw Brandon fighting cars with an army of trees.

We are all very excited about this project, and each Monday and Wednesday morning passes with angst from each of our group members, as we are all deeply enamorated with this creation that we can call *kind of* our own, and we can not wait to get over to the Clubhouse and continue the development.

In the next few days we hope to exponentially improve our designs, and let Brandon improve his seemingly magical talent of using flash to expand our project to new heights.

-Jack

Monday, June 23 at 9:38 PM
Created by jackkolb
NIce! It's Awesome seeing how all of you are learning and progressing through this project! Are you guys sharing what you learn, or are you guys strictly sticking with your roles?
Can't wait to see how this project unfolds!
6 months ago
Great work dividing and conquering! I would love to see what the detailed dimensions of the arcade box and 3D model of the button design ended up looking like. Would your group members be able to add that to the project?
6 months ago
Great team work guys. Divide and conquer. You're game looks great so far!
6 months ago
cool - rachel
6 months ago

We then designed the basic blueprint for the arcade game. We are planning on making the box around the screen out of plywood, and holding the plywood together with nails and duct tape. The dimensions are not exact, and depend on the size of the screen, but if we get the screen that fits our materials list then none of our hardware dimensions will change. We are planning on painting the plywood with acrylic paint to add color and make our game more eye-catching. 

-Audrey

Wednesday, June 25 at 9:29 PM
Created by audds
interesting choice of materials! just wondering what the duct tape will be for?
6 months ago

This is our materials list, which adds up to about $70. However, we are probably going to reduce the cost of the LED lights, nails, and the speaker, so it should fit under budget. 

-Audrey

Wednesday, June 25 at 9:33 PM
Created by audds

Today, our group made a lot of progress on both the hardware and the software for our game. while some of the group members worked on the dimensions, one of our members, Noah, worked on 3D Printed buttons to control the game. it started as an idea, then a draft in Tinkercad ( a 3D design program ), and then finally a first draft 3D print. Still a work in progress, the button will hook up to a Makey Makey ( a microcontroller ) and will control most functions in the game. --> link to the model https://tinkercad.com/things/jKSmxT6fZq8-3d-button-model

Wednesday, June 25 at 9:53 PM
Created by noah.marty
very cool! is there a spring in your button?
6 months ago
Great work Noah, after finding the right spring these buttons will be fantastic.
6 months ago
Wow, You guys are really taking this game to the next level!
6 months ago

At 4:12 pm, a collective sigh as emanated from our group members as a monumental goal was at last achieved: version 1 of our game was COMPLETE!!!!!!!!

Right now, our game is exactly 47% complete. Our next goals in the software department are:

1. A customized background featuring a city (where the cars come from) and the countryside (where the sheep reside)
2. Original car artwork for our CO2 producers
​3. Better pond artwork/animation
4. Debugged Waves/Gold/Definitions/Lives
5. More Towers!

While the following days are certain to be wrought with terror and distress, I alone seem to have total confidence in our group's future, progression, and completion of our project.

As for now, bottles of Martinelli's Non-Alcoholic Sparkling Cider are flying open, cheers being given, glasses clinked, and our under-aged group is rejoiced with the happiness and enthusiasm of a professional game development studio.

Wednesday, July 2 at 7:06 PM
Created by jackkolb
I tried out your game so far, and it was really fun to see how many cars I could get rid of! Is the idea that you would get more gold based on how many cars are eliminated? Also, I'm curious what the pond represents. Do ponds help eliminate CO2?
6 months ago
While the game graphics have greatly improved since the first release, and there are still some buggy things (such as fixing the gold/waves/lives... it's there, but the display is messed up for some reason).

The pond was created for multiple reasons: The purpose of the pond is to slow cars down, so we had to think of reasons why ponds would help remove CO2. Here is what we came up with (we couldn't really find any good reasons.. so..):
- Drivers would slow dow to see nature
- Drivers would slow down out of fear of driving into the water
- Drivers would slow down out of respect for the wildlife

But, in reality, we thought ponds would be very useful in eliminating CO2, since they house lots of different plant life, which we believed would absorb quite a lo of CO2.
6 months ago
And to answer your question (sorry for the delay.. was just reviewing the comments when I realized I hadn't answered your question!): The idea is that you get rid of cars and use the gold gained from them to build more Trees/Ponds. We hope to add points into the game as well, along with an endless amount of waves, however first we need to address the current issues.
6 months ago

Today was a grandeus day, as our group acheived a goal that we had previously thought insurmountable: a complete, originally-designed, game. We are now able to play this basic game, whose features we may add to later on, and our second complete, fully playable version is ready to be released for people to play!

Changes since V1:
- Original Car design!
- Added grassy hills, a city, and a sheep in the background!
- Changed the "You Win!", "You Lose!", and other screens to feature our original, beautiful, 8-bit pixel art

------

Someone asked us what a wave is... so here is the best example I could come up with!:

When you play the game, at first just one car appears and travels the road. That car is the first wave. once you kill (*disperse*) that car, 5 more cars come out from the city and start traveling along the path.. That is the second wave. Once you kill those, 10 or so cars come out.. They are the third wave. Each set of cars that you have to defend against are a wave.

 

Monday, July 7 at 9:36 PM
Created by jackkolb
I like your additions, especially the sheep, which are cute. what is a wave? also, perhaps you can have different types of cars that are more difficult to remove (like a hummer)
6 months ago
@scientiffic Thanks for the compliment! Since our group has close to no artistic talent, we really appreciate all forms of appreciation for our pixel-art :) A wave is a set of monsters (in this game the monsters are cars) that the player has to defend against. Upon killing (*dispersing* -in case Sarah is reading this) a wave of cars, the next wave will come out. If that doesn't make any sense, I edited the post to describe what a wave is (I tried to make paragraphs in the comments, but was unable to do so.. perhaps that is something you can request to be allowed!). Right now, our gold, wave, lives, and descriptions are really wak (that's what we are currently trying to fix)! After we figure out what's going on in the display department, we hope to tinker some more and figure out how to add additional towers and cars. We are glad that you have been enjoying this project, and hope to soon release more updates soon!!!
6 months ago
ah, now I understand what a wave is. thanks for the clarification!
6 months ago

As our deadline comes near (next wednesday!), the time is approaching for our team to combine the two branches of our project into the final product. To do this, there are quite a few things we need to change on the software end in order to create the bridges that shall bind the two components. 

Our first step is to integrate a mouse into the game. We have already arranged for a trackball that we will place in the box, and the idea is to have the trackball along with four buttons: one button for selecting each tower, and then another "select" button to be used for placing. We have rigged the box and the buttons so that by pressing a button it simulates a keyboard press, however we need to modify the code a little bit in order to utilize this to it's full potential.

Right now, the game works by using the mouse to click and place towers. However, for the final product we want to change this so when you press a key (I will use "w" for the examples), it moves the mouse cursor to a certain place and clicks on that spot. Not only would that be more arcade-like than using the trackball to move the cursor to the tower and then clicking on it, but we want to remove the cursor display so that you only have to press button and move a trackball to place towers. Cursors kind of ruin the vibe.

After we figure out how to select a tower using the keyboard, then we can use a device circuit-board thingy called a Makey-Makey to connect the buttons to the keyboard commands. With all this done, our game will be on the verge of completion!!

Question
If anyone knows how to program AS3, and could help me, that would be great! I am best reached by email: jackhunterkolb@gmail
Friday, July 11 at 5:21 PM
Created by jackkolb

Now that we are in the final stages of development, there are a few bugs that we dearly need help squishing. The next posts on this branch will contain information about each bug, everything we know about it, and screenshots of the code and the bug in game. 

Any help with any of these bugs will be GREATLY appreciated, and anyone who helps lead to their arrest will be duly compensated with a spot on the Credits section giving our many thanks, hugs, and kisses! These bugs probably are not hard for your average programmer to figure out.. but since our group has VERY minimal programming experience, these dilemmas seem impossible for us to solve.

Many thanks to everyone in advance!

Friday, July 11 at 7:13 PM
Created by jackkolb

We successfully figured out this bug. THANK YOU JOSEPH!

 

Name: Wave/Life/Gold Bug

Issue: Our Wave/Life/Gold values always display 0

Notes: Even though you play the game as you are supposed to, and you lose lives, the waves continue, and the gold changes as it's meant to, the display always shows a 0 for those variables. The code seems fine (we haven't modified any code, only .fla stuff), however since beginning this project this bug has been very prevalent. Attached are screenshots of the bug, and you will be able to view the code by downloading the source files.

How to help: If you have any ideas on what may be causing this issue, please leave a comment below! 

 

Funny Introduction that Jack wrote..:

The first and foremost bug we encountered was the Life/Wave/Gold/Desciption bug. Definitely the most annoying and soul-cringing bug in this game, it has taken all of our bravery, valor, and self-determination of pure will to hunt down this vile creature and squish the life out of this treacherous beast. However, the battle isn't over yet.. while we successfully unencrypted the descriptions, and a value is now displayed for the gold, wave #, and life, IT LIES TO US!!!! Before being squished, that blasted bug must have unleashed a terrible curse upon those three variables, causing them to be unchanging, unmoving, and forever displaying a 0.. as though the beast is reminding us of how petty we are, and how nothing can stop his eternal reign of terror over our project. We had thought he was finally gone, rid from our out innocent game, but no! He is still here. Still causing trouble.. Getting the last laugh.

 

Friday, July 11 at 7:40 PM
Created by jackkolb
We successfully squashed this bug! Thank you Joseph Wu for your help!
6 months ago

Version 10, uploaded 7/11/14.

Remaining Tidbits: 
-Keys need to be programmed to move cursor
-More Cars (if we have time)
-More Towers (if we have time)
 

Friday, July 11 at 7:57 PM
Created by jackkolb

As we are nearing the end of the software department of our project, three branches will come from this post. 

The first branch will be modifications, and the final tidbits we are trying to add in order to create the final product. 

The second branch is the Debugging Section (codenamed the Bug Bounty Board). It is where we invite all our readers to help us track down those bugs!

The third branch is where we will upload the latest versions of our game, primarily for our group members to be able to work outside of the internship, but also for anyone who wishes to view them.

This is the final stretch of our game, and we are all extremely proud of our progress and are excited for the days to come.

Friday, July 11 at 8:09 PM
Created by jackkolb
thanks for describing your different branches! you might considering using branch labels to make it easier for people to read your project: http://buildinprogress.media.mit.edu/help#create_branch_label
6 months ago
I considered this, however thought that a post describing the different branches would make it a lot less confusing. However, after some thought, I think I shall add a few branch labels to indicate stages of the project. Thanks!! Also, if you are in close contact with the creator of this website, I have a few suggestions that could improve Build in Progress,
6 months ago

As of 7/14/2014

Next Steps:
- Music!

*WE ARE ALMOST DONE!!!!!*

Monday, July 14 at 9:53 PM
Created by jackkolb

Now that the game is just as we want it, we need to find out how to remove the mouse cursor. We first thought that this would be a lot of extra work and time, however with our deadlines being met ahead of time I thought I would tackle this stretch-goal of ours! Luckily, this is VERY simple to do, and it took us a total of 3 minutes to complete this!

All we had to do was add this small phrase to the main function of our game:

Mouse.hide()


And that's all! This step was very easy, very basic, and did the perfect job. I have uploaded pictures of the code where this was placed in, and what it looks like ingame!

Monday, July 14 at 10:00 PM
Created by jackkolb

One of our final finishing touches was adding Points. Since we are making an arcade game, we thought it fitting for the player to receive points based on the cars they have killed.

To add points, we thought that we would simply copy everything Gold does (since points would essentially be Gold that can't be spent) except rename it points! That's exactly what we did, and to our great surprise and enjoyment that worked!!

The next thing to do is make an endless amount of waves, and perhaps add additional cars or maybe boss cars!

Wednesday, July 16 at 9:53 PM
Created by jackkolb

One of the biggest things that we've had to figure out has been making the buttons do stuff in the program. Our tech-guru, Noah, at last solved the puzzle! By using a thing called a Makey-Makey, which connects to something called an Arduino (both of which are beyond me), he was able to make it so by touching a wire it would simulate a keyboard press. Now, by pairing this up with our other challenge on the Software side of things, "Keyboard-Selected Towers", we successfully ran a test run where Noah was able to essentially play the game by using the mouse (representing our trackball), and the wires (representing our buttons). AND IT WORKED!! I embedded a small youtube video that we made (it would be longer, however our camera ran out of card memory), and I must say that I am thoroughly impressed with how far our game has come.

Wednesday, July 16 at 10:02 PM
Created by jackkolb
This is looking great! I know originally, your team mentioned building a frame out of wood. How do you plan to incorporate the mouse?
6 months ago
We have acquired a trackball, which we plan to use in order to move the tower in order to place it. It will be placed next to the buttons.
6 months ago

Uploaded July 16, 2014

Modifications Include:
-Points! Now you earn points based on your number of car-kills!
-Removed the Pond background color.. lots of people said it was annoying
-Fixed the Forest animation, the tree colors were wrong

Wednesday, July 16 at 10:04 PM
Created by jackkolb
I downloaded the zip file, but I'm not sure how to run your application. Could you provide some instructions?
6 months ago
You download the zip file, and run the swf file with the latest version (I believe it's v11).

Sorry! I'll tidy it up more next time it's released.
6 months ago
got it! I tried running v12 from the folder, but I wasn't able to drag out any of the items (trees or ponds). also, I've noticed that on the title screen, defense is spelled "defence" looking forward to trying this out!
6 months ago
Yes, you won't be able to drag out towers: since we are in the midst of integrating the game with the buttons, I forgot the mention that you press the "w" key to make a tree, "e" for a pond, and "r" for a forest.

I will fix that typo :) thanks!
6 months ago
I too tried to run your game.
Unfortunately I don't think I had the right program to run, any pointers?

Also is there a way for you to make it as it was before? Where it was playable in the browser?
5 months ago
I got it to work!
I also found that when you click one of the options (tree, pond, forest) after clicking it once before, you are no longer able to click/place anything down.

It also seems a bit fast :/
5 months ago
Hey! The latest upload was primarily for our testing purposes. it was not mean't to be playable!! We have since removed a few errors and other tidbits, and I shall now upload a more recent version.. perhaps our final ;)
5 months ago
Sounds good! Can't wait to try it out!
5 months ago

Today we painted the box. The sides are scenes of both the city and the field of sheep. Because we are not including a back panel, we painted the entire inside a sky blue.

Monday, July 21 at 9:38 PM
Created by jackkolb
We unfortunately had some issues with our server last night; do you mind reuploading your image to this step? I'm really intrigued to see what the painting on the box looks like!
5 months ago

On our final stretch, we are at last piecing together all the different parts and making our final product: an old-style arcade game with it's own box!

We had to:

  • Fix a few buttons
  • Sandpaper everything (which sucked)
  • Solder the Button Wiring
  • Touch-up the Box Paint
  • Hammer some nails back in
  • Figure out how the trackball worked (we encountered quite a few issues getting it to work)
  • Wire everything
  • Touch up the programming files (remove clutter etc)
  • Test the game
  • Label buttons (apparently the colors weren't very clear)
  • Finalize our reset plan (reset plan: if the game messed up, what would we do!)
  • Make it look beautiful
  • Have a group dinner at Extreme Pizza
  • Reflect on the internship
  • Play our game!!

Fortunately, we got all of the list done.. and on Wednesday we shall be presenting our final product to all who decide to stop by and see it!

Our camera currently isn't working very well.. so I will have to stop by and take some pictures to share with you all!!

 

Tuesday, July 22 at 5:04 PM
Created by jackkolb

So.. as the internship is wrapping up, so are our group's feelings. Our group members come to many different schools, and the separation of our new-found friends will be very sad.. also we probably will never see each other again! 

This internship, and project, has been one of the greatest experiences of my (and hopefully my group's) life. I am VERY proud of all the work we have done, all the things we have learned and the achievements we have strived for.. It is very sad to see this all come to an end. 

Our final product looks fabulous, and during the presentation worked wonderfully. Amazingly, during the presentation I was approached by someonewhowon'tbenamedforprivacypurposes and asked whether my group would like to present our project in a Mini-Maker Fair this September! Of course we accepted, so during the next few months I (and hopefully my group as well) will come in and finesse the product so that it is 100% beautiful and done for the maker fair.

This project has come a LONG way, from our original idea of "Carbonopoly" to a wonderful 8-bit tower defense game. We have successfully built our game, and can't wait to see where our paths shall lead in the future.

Thank you everyone who gave advice, feedback, suggestions, and help. There are too many to name, so you know who you are!! Thank you for making this the most favorited, most posted-upon, and most commented project on Build in Progress.

I shall be uploading pictures soon. 

Tuesday, July 22 at 5:15 PM
Created by jackkolb
Congratulations on finishing the internship and also the project! It's been great to see it develop over time. I'm looking forward to trying out the final version!
5 months ago

[Going to be updated soon!]

Design Files
Wednesday, July 23 at 10:04 PM
Created by jackkolb
looking forward to seeing it; congratulations!
5 months ago

While we had originally decided on having points and a leaderboard for our game, someone asked us: "Hey, since there are a certain number of cars, you can only get a certain amount of points.. so why go through the trouble when everyone who beats the game has the same score?"

The logic behind this.. and it's honesty, has influenced us to decide that maybe Points aren't the best thing for our game! 

Unfortunately, we had to make a lot of code modifications to add in points.. So I have spent the past few days finding and undoing all the changes that were made. Since in AS3 (Actionscript 3) if there is just one error then the program doesn't work, I had to be quite meticulous and precise in my adventures!

Tuesday, July 29 at 4:50 PM
Created by jackkolb
How'd it all turn out? Were you successful in taking out the point system?
5 months ago