EDIT: Sorry if you got a version where the Ratbots were messed up. They should be fixed now in the new version, just re-download it!
Doozie would be putting it lightly. This one took a lot of work, and it’s far from perfect, but I’m proud of it and I’m sharing it with you! This week’s game is called ZTR: Zap That Robot! and it’s a game about zapping robots while running around a randomly-generated arena. There are two enemies in the game, Ratbots and the Core. The Core is the most vital part of the game. It wanders around the level and is non-aggressive, however it will hurt you if touched. “Zapping” the Core steals its energy, sapping it of electrical power and charging your own power. Once your energy reserves are full, the Core deactivates, unlocking the door to the next level. Ratbots wander around and eventually find you, make a beeline towards you, and begin to zap you with electricity. You can zap the Ratbots for a few seconds to destroy them, but be careful: this uses up some of your energy reserves. The idea is to see how many levels you can get through without dying, while each level gets increasingly more difficult.
The Good, the Bad, etc.
I have to admit, the level generation is pretty cool. It’s not always perfect, but it creates a wide variety of maps from a very limited selection of pieces. I’ve spent probably too much time simply generating new maps and running around in them, which is very fun, but running isn’t all you’ll be doing in ZTR. The gameplay is, as far as I know, fairly unique/experimental, and for what it is I think it came out pretty well. I wish I had more time for playtesting, but I’ve played enough of my own game to tell you that it’s pretty fun. I am aware that it gets grindy and tedious after a few levels, so maybe if I decide to flesh this game out in the future, I can alter the gameplay. And now on to the bad: it’s kind of buggy. For being built in a week it works surprisingly well, but the Ratbots get stuck inside geometry, the Core wanders into corners and gets himself trapped, sometimes parts of levels might generate a bit funky… however problems like these are to be expected when dealing with a procedurally generated world; Things are often highly unpredictable and you can only try your best to minimize the chaos. That said, check out the game (it’s free!) and come back soon! I’ll post a “development update” later in the week when I’m a bit less sleep deprived. Thanks!
Posted by TerryDiF on September 22, 2011
What’s all this about?
Due to numerous requests to share more of the development process, I thought I’d show a sneak peek at this week’s game, and give a bit of insight into the process. This week’s game is a simple first-person shooter of sorts. I won’t ruin too much of the gameplay, but I will say that each round of the game takes place in a randomly-generated arena. I’ve got the basics of the level-generation down; Here’s a video (sorry about the annoying mouse pointer on the screen):
Now, I have my reasons for making the level randomly generated. Sure, it might not always turn out to be a perfect level, but it’s incredibly time efficient. Creating massive amounts of content is possible without the need of hand-crafting each level. Additionally it holds the player’s interest for longer, and makes the experience less repetitive. Both of these things are great when you have limited time and resources.
Behind the Video
Each level is stored in a 2×2 array, where each item represents the tile at that x-y location. There are many different types of tiles that can be generated, from floors and ramps to bridges and platforms.
I started with generating an area approximately 10-20 units long on each side and filled it completely with the middle floor level. Then I chose 2-4 areas in which to place some squares of the lowest floor level (which I call “pits”). A “hallway” is also created which is one or two tiles thick, and connects the center of two of the pits. A bridge or two is sometimes added across a random part of the pits/hallway as well.
The next step was to create some ramps down into the pits. I iterated over each pit, and added 3-5 ramps to random points along its edges where applicable. I then added a few randomly-sized squares of the third, highest floor. This floor is a solid block when it’s placed over the middle floor, but becomes a bridge/overhang when it’s placed over a pit.
A similar method as before is used to add ramps leading to to the upper floor. Some areas containing obstacles (poles) at different density levels are placed throughout the area. Finally, the map doubled in size. Some elements of the map are flipped or mirrored, while some may not be. After all this is finished, a script iterates over each item in the array of tiles and places the appropriate mesh, with the appropriate rotation, in the game world.
And there you have it! That’s pretty much how my level-generator was created. Come back this Thursday to play the finished product, as well as see more insight into the design process!
Posted by TerryDiF on September 18, 2011
Source (Unity Project)
About the game
A screenshot of a typical game of Dots!
I’m starting this thing off with a small puzzle game, the idea for which has been brewing in my head for a few days. It’s called “Dots!” and the goal of the game is to get the 4 dots of each color to sit in their respective colored square. There are 16 dots, 4 of each color, set up in a 4×4 grid. Clicking the buttons along the side of the game board will rotate the 8 dots in front of the button in a clockwise loop. That might sound confusing, but the basic idea is easy enough to get a hang of. I should note that this game, while simple, is extremely difficult. I am thinking about making a 3×3 version, as this one might turn some people off with its difficulty. I should also note that I’m not 100% certain that every round is solvable, as the location of the dots are completely randomized for each round (Note: This is not the case anymore. See edit at bottom).
Development was simple enough, as far as game-development goes. All of the work was done in one day, including graphics and sound.
An early concept of the game
I created a pixelized mockup of the puzzle, and intended it to be the final version, but I abandoned that idea and am pleased with my current choice in visual style. Not much else to say regarding the development process other than Unity’s Lerp function is mega-handy.
EDIT: I have updated the files linked with a better version. Each round of the game is now solvable, the logo screen now automatically changes, and the New Game/Exit Game buttons now work on the victory screen.
DOUBLE EDIT: Oops, I uploaded the old files last time. New ones are up for real now. Also I added the source files!
Posted by TerryDiF on September 15, 2011
I am Terry DiFeliciantonio and I will be making one game every week for 15 weeks.
They will likely not always be complex, long, visually appealing, fun, or even entirely functional, but I’m going to try the best I can.
This is an experiment in using my current skills, as well as a chance to improve them over the period of the semester. Maybe I will become exceedingly efficient at making games, or maybe I will grow to loathe game development (I’m hoping for the former), or maybe something else will happen, but I won’t find out until it’s over. Check back each week for a new game to download and play!
Posted by TerryDiF on September 8, 2011