Friday, August 31, 2012

FPS/Roguelike Hybrid

First of all guys, sorry I've been gone so long. (Haha, like anyone actually reads this.) I had computer issues. But now I'm back to posting!

Anyway, I've been experimenting over the past 2 days with an FPS / Rogue like hybrid. It's sci-fi, set on a space station, and it's looking pretty cool. It has gameplay like classic FPSes (IE Doom, the original one) but features of roguelikes such as randomly generated levels, inventory management, customization, and perma death.

I'll show you a few screenshots of my progress so far.

Customization screen. I'm feeling pretty good about this so far.

Gameplay with some temporary textures. These will be replaced.

I also entered the Ludum Dare! I made a town building sim where you "evolve" your little village. You can play it here: Magistrate.

Thanks for reading! See you later!

Sunday, August 5, 2012

Game Idea: Space Station Survival

In this game, you create a character each time you want to play. Your character can have a certain job which affects their skills and items; a security officer will get a gun, a technician will get a toolkit. Then you spawn in on a space station. This is a MMORPG, so all the other players are there, and the space station is persistent; it never resets. The space station has been attacked by alien zombies. Your objective is to stay alive and to help others. You can move around and interact with things: open doors, repair computers, and etc. Repairing the space station and killing aliens will earn you points. Eventually, however, the aliens will get you. Then you turn into an alien. Your goal is now to kill players and wreck havoc. You can quit the game at this stage of course, but then you lose all the points you accrued as a human as well as the points from the alien, so that's not a good idea. When you are killed by humans, you are now back to the character create screen. However, the points you earned will allow you to start as new jobs, get perks, etc. So this game is a game where you only play for short sessions, but while alive, you have to try to make the world better for you and the other players.

How to do Treeviews

In Terra Duo, we have a tree view for displaying all the units and who's commanding who. Let me give you the concept behind the treeview.

Have all your elements stored as something. (Arrays, objects. We used arrays.) Each of these elements also needs to store it's parent in some way. If it's at the top of the tree, give it's parent a special value such as -1.

Now, to display your tree, you need a script. What this script will do is draw the specified element, then search through all other elements that have the specified element as a parent, and call itself specifying them. This way, you just need to call the script on the top element and it will draw out the entire tree. Now this can be a little slow and can lead to overlap, so it's not the ideal solution, but it is a simple one.

Game Idea: Sim RPG

So I had an idea a while back. What if there was a game where instead of playing the RPG, you created the world for it?

Areas
You could place areas, which are each rectangles of say, 25x25 tiles. An area has certain properties. Foremost in this is the spawn list. Adding monsters to the spawn list will make it so the player has something to fight. If you have no monsters, this is a peaceful area. You would start with a peaceful area, and then could click in any direction to add in a new area there. This is 3D, so you can also make areas above and below the current area. Each area has to touch another in some way though.
Tiles
Placing tiles is pretty simple. At the top you have a selection area where you can select any tile you want, perhaps a dropdown for selecting different environments so it doesn't get too cramped. Then you simply click on a tile in the area to switch it to the selected tile. Tiles can be purely visual, can be solid to block player's movement, can be stairs to go up or down, etc.
NPCs
There is a special menu for NPCs. You can place them on a tile, then click on them to give them certain features. For example, you can set them to be a quest giver, shop keeper, healer, etc. You can also give them whatever dialogue and appearance you like.
Chests
You can also place chests down, these you can fill with items.
Quests and Shops
You specially design quests and shops to give to NPCs. For quests, you first set up a name and a reward. Then you can add as many parts to it as you want. Each part could be "kill x monsters", "talk to y", etc. Shops, you simply add all the items that the shop will buy and sell and give them prices.
Gameplay
You have a certain amount of points which are used to place NPCs, monsters, chests, etc. You can also buy heroes with these points. Heroes will wander around trying to level up. They will complete your quests, buy from your shops, and fight your monsters. When they level up, you gain points. So your goal is to build things for your heroes. If you don't give them enough NPCs and safe areas, they will be killed. But if you don't give them enough enemies, they won't be able to level up.

I hope that makes sense. I'm not much good at explaining things.

Procedurally Generated Dungeons (Includes GM implementation)

[This article will be appearing in indie(Magazine); which comes out of hiatus this weekend.]

In this article, I will explain how to procedurally generate a dungeon. Most of the work is in the implementation, not the concept. First, let's think about how a dungeon (The crawl type, not the prison type) would work in the real world. There would be various rooms of different sizes to hold monsters and treasure, and hallways to connect them. With that in mind, let's begin coding. The first part to creating our dungeon is to set up an array. It should be a variable width and height and filled with 1s, which represent walls. Then, create a function to add "rooms", which will clear out a random rectangle and record the center of that rectangle in an array. Next, write some code to connect all of these center points with two-tile wide "hallways". For displaying your new dungeon, simply create a function that loops through the array and draws each tile if it's a wall. You could also create more numbers, such as a "2", for storing other tiles. You might also want to create a player and give it x and y variables, then place it in the center of one of your rooms.

Let's look at how you can do this in different languages.

GameMaker:
-Read this in Indie Magazine out this weekend-

Current Projects

So an overview of what I'm working on right now.

Long Term Team Project: Terra Duo
Terra Duo was originally created for the GMC Jam #7 in 72 hours by Team 49, which consists of Rusty, Ziggler1, HayManMarc, and myself. It's a top down shooter with army management elements. We're continuing development on it albeit very slowly.

Long Term Personal Project: Edenite
Edenite has been in development for several months now. It's a persistent browser based multiplayer online RPG. Wow, what a mouthful. It takes place in space. You can buy ships for your fleet and fight other players. I'm the only real developer although Armen has kindly helped with the design of the website. Edenite is my "dream" game but it's not high priority. It's just something I work on during my spare time.

Short Term Personal Project: Weekly RPG Challenge
So I started a challenge where you create an RPG once a week. Who knows if it will actually get attention? But it should be fun. I won't participate in it all that often as some might view that as "cheating" though it's not actually a competition.

Blog Started

So I finally got around to making a blog. Let's see if I can force myself to keep this updated. Anyway, expect articles soon!