Old Lovely Zombies.

Showcase your libraries, tools and other projects that help your fellow love users.
Post Reply
User avatar
Ryne
Party member
Posts: 444
Joined: Fri Jan 29, 2010 11:10 am

Old Lovely Zombies.

Post by Ryne »

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.

Image

ImageImageImageImageImageImageImage

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
Last edited by Ryne on Wed Nov 10, 2010 1:53 am, edited 2 times in total.
@rynesaur
User avatar
Tesselode
Party member
Posts: 555
Joined: Fri Jul 23, 2010 7:55 pm

Re: Lovely Zombies!

Post by Tesselode »

You haven't said that much, but this sounds kind of like Plants vs. Zombies. Is it?
User avatar
Ryne
Party member
Posts: 444
Joined: Fri Jan 29, 2010 11:10 am

Re: Lovely Zombies!

Post by Ryne »

No, Ive never played Plants vs. Zombies. Ill edit my post to explain a few more things.
@rynesaur
User avatar
Taehl
Dreaming in associative arrays
Posts: 1025
Joined: Mon Jan 11, 2010 5:07 am
Location: CA, USA
Contact:

Re: Lovely Zombies!

Post by Taehl »

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+.
User avatar
Ryne
Party member
Posts: 444
Joined: Fri Jan 29, 2010 11:10 am

Re: Lovely Zombies!

Post by Ryne »

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
User avatar
Taehl
Dreaming in associative arrays
Posts: 1025
Joined: Mon Jan 11, 2010 5:07 am
Location: CA, USA
Contact:

Re: Lovely Zombies!

Post by Taehl »

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+.
User avatar
Ryne
Party member
Posts: 444
Joined: Fri Jan 29, 2010 11:10 am

Re: Lovely Zombies!

Post by Ryne »

I'm afraid not, I'll be sure to post if I get that far :)
@rynesaur
User avatar
Taehl
Dreaming in associative arrays
Posts: 1025
Joined: Mon Jan 11, 2010 5:07 am
Location: CA, USA
Contact:

Re: Lovely Zombies!

Post by Taehl »

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.

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
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}
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+.
Post Reply

Who is online

Users browsing this forum: No registered users and 75 guests