Hi, My name is Ryne. I started this project a few months ago, and since have been too busy to work on it. Luckily I have saved all of my progress so I can continue what I started.
The name I have chosen for my project is Lovely Zombies.
The Idea of the final project (should it reach that point) is to have zombies attacking from the bottom of the game board. The player would be able to build small barriers and traps to stop them. The player would also have a gun (the primary means for survival) so the traps would just be extra, or some type of pick-up/power-up.
Interface
As far as the interface is concerned, the bottom left would show the selected unit. In the case of the screen shot, a "Level 1 Zombler", which isn't on the board, so the image in the bottom left is simply a graphic to test how it would eventually be laid out. The HUD also needs to be modified to display power-ups and other items, as well as player status(health, ammunition, etc).
I originally intended to have a timer so the player would have a certain amount of time to set traps, and to prepare for the wave, which I'm unsure of now but it may still be the case. The screenshot above is the basic interface, I also intend to have a city type layout, including cars and types of debris to hide behind.
Taking into account the way that the game is laid out, I'm not sure how the enemy system would work, Things that I haven't really considered when I first started the game (too excited to get it going). I'm thinking of changing the layout so that it isn't a perfect square, but a rectangle instead. Then have the enemy units approach from the furthest side. This would make it easier for the player to set traps since the enemies would be coming from a single general direction.
Multiplayer
A Multiplayer option in the future would be a fantastic addition, but based on my programming skills, I would say that is a long shot at this point.
Traps
- Land Mines
- Simple trap doors (the enemy units would fall through the floor, this would of course have to be limited, since the player would have the ability to make a wall across the map)
- Some sort of beacon, like an item that emits a noise (a power-up that would be used in game, sort-of a panic item that would draw enemies near)
Gameplay
The game would be played with the WASD keys for movement. Numbers 1-9 would be used for power-ups, and other items (macro's on screen). Traps would be placed by selecting them from the inventory and placing them on the desired tile. The player has a certain amount of time to prepare for the wave (currently undecided), when the countdown reaches 0 the first wave of zombies would near(the number of zombies increases per wave). The player also has a weapon (possibly just a pistol, or even a mele weapon) the addition of other weapons is undecided.
The game hasn't been completely thought out at this point. I would like to take it in an RTS direction, using the mouse for almost everything.
My programming skills are limited, and so far I've mostly worked on the interface. The entire game itself has only taken a few days to get to its current stage. I would love some help if anyone is interested, or if they have any experience with an isometric direction like this.
I would love for this to be the type of game that anyone would like to play on a daily basis, like a game of solitaire.
Thank you for reading my post, I hope you come back to see any future updates.
- Ryne
Old Lovely Zombies.
Old Lovely Zombies.
Last edited by Ryne on Wed Nov 10, 2010 1:53 am, edited 2 times in total.
@rynesaur
Re: Lovely Zombies!
You haven't said that much, but this sounds kind of like Plants vs. Zombies. Is it?
Re: Lovely Zombies!
No, Ive never played Plants vs. Zombies. Ill edit my post to explain a few more things.
@rynesaur
- Taehl
- Dreaming in associative arrays
- Posts: 1025
- Joined: Mon Jan 11, 2010 5:07 am
- Location: CA, USA
- Contact:
Re: Lovely Zombies!
That looks... Startlingly familiar. Did you base it off of the code I posted when asking for help in this or this thread?
Earliest Love2D supporter who can't Love anymore. Let me disable pixel shaders if I don't use them, dammit!
Lenovo Thinkpad X60 Tablet, built like a tank. But not fancy enough for Love2D 0.10.0+.
Lenovo Thinkpad X60 Tablet, built like a tank. But not fancy enough for Love2D 0.10.0+.
Re: Lovely Zombies!
No, I coded this about 8 months ago. I had some help from someone on these forums though(the name escapes me, but he made "ProtRTS"). Other than that I just referenced code from the Love Wiki and some of the thing I learned from LUA books and tutorials. Your code, however, looks a lot like mine, except more advanced. Though at the time being the only code I have so far is literally just the grid being drawn, and some basic butons that spawn units at specific tiles.
@rynesaur
- Taehl
- Dreaming in associative arrays
- Posts: 1025
- Joined: Mon Jan 11, 2010 5:07 am
- Location: CA, USA
- Contact:
Re: Lovely Zombies!
Ah... Darn. I was going to ask if you had come up with a good way to do collision. I figured out an efficient way to do it, but it was a little buggy. Not ideal.
Earliest Love2D supporter who can't Love anymore. Let me disable pixel shaders if I don't use them, dammit!
Lenovo Thinkpad X60 Tablet, built like a tank. But not fancy enough for Love2D 0.10.0+.
Lenovo Thinkpad X60 Tablet, built like a tank. But not fancy enough for Love2D 0.10.0+.
- Taehl
- Dreaming in associative arrays
- Posts: 1025
- Joined: Mon Jan 11, 2010 5:07 am
- Location: CA, USA
- Contact:
Re: Lovely Zombies!
Here's what I had, at the time I had to shelve my engine (I got busy with other stuff). sz, sx, and sy are "starting z coordinate", "starting x coordinate", and "starting y coordinate", respectively. dz, dx, and dy are the destination coordinates.
Its only problem is, it lets moving objects move too far - it'll let them pass exactly one step /inside/ of tiles, and then they'll get stuck, since they can no longer move without colliding with the tile. And I guess it'll only be useful if you, like me, store tiles in the format: tiles[z][x][y] = {tiledata}
Code: Select all
-- Returns the distance between two points
function math.dist(x1, y1, x2, y2, z1, z2) return ((x2-x1)^2+(y2-y1)^2+((z2 or 0) - (z1 or 0))^2)^0.5 end
-- move something through grid coordinates, checking to make sure you can't walk through tiles
function move(sz,dz, sx,dx, sy,dy)
local dist = math.dist(sx,sy, dx,dy, sz,dz)
local ltz, ltx, lty = sz, sx, sy
for i=0, dist, 1 do -- Trace a line from start to dest, checking each grid location on the way
local tz = math.round((sz*(dist-i) + dz*i)/dist)
local tx = math.round((sx*(dist-i) + dx*i)/dist)
local ty = math.round((sy*(dist-i) + dy*i)/dist)
if tiles[tz] then if tiles[tz][tx] then if tiles[tz][tx][ty] then -- If there's a tile here, stop them
return ltz, ltx, lty
end end end
ltz, ltx, lty = tz, tx, ty
end
return dz, dx, dy -- You got to dest without hitting anything!
end
Earliest Love2D supporter who can't Love anymore. Let me disable pixel shaders if I don't use them, dammit!
Lenovo Thinkpad X60 Tablet, built like a tank. But not fancy enough for Love2D 0.10.0+.
Lenovo Thinkpad X60 Tablet, built like a tank. But not fancy enough for Love2D 0.10.0+.
Who is online
Users browsing this forum: No registered users and 6 guests