Zelda with random dungeons!

Show off your games, demos and other (playable) creations.
User avatar
Imaculata
Party member
Posts: 102
Joined: Mon Aug 10, 2015 2:51 pm

Re: Zelda with random dungeons!

Post by Imaculata »

Image

Image link

Mini map update!

Now that there are long hallways, I figured the mini map should draw them as such. So as you can see in the screenshot, a long hallway is no longer drawn as 3 rooms, but rather as one really big one.

Doors are now also drawn with a special color, if they require a key. Before the mini map only drew the entrance as green, and the exit as red. I've changed this to:

Entrance: White
Exit: Orange
Boss room: Purple
Color door: Its color
Colorless door: Brown

The game already has green and red doors, with green and red keys. So it made sense to draw them on the map in that color. This should also make it a lot easier to remember where you encountered a certain color door.

Push strength

The player now builds up push strength the longer you push against a surface. This is used currently to determine if you want to jump down a ledge (instead of instantly jumping down upon touching it), and will in the future be used to push certain blocks, and uncover secrets.

Big code clean up

I sorted out my code a bit, and started moving code sections to separate files. This also uncovered some big bugs, which I fixed along the way. It's a lot easier to inspect the code, now that it is not being cluttered up so much by other stuff.

Camera stuff

The game now locks the camera to the player, whenever you enter a large room. I added some code to establish the camera bounds for rooms that are larger than the screen. The normal camera slide that the camera does when moving between rooms, is disabled while in a large room. This currently only works with the horizontal and vertical rooms. But I will be adding huge rooms later on, that expand in all directions.

Bow charge

The player can now hold down the attack button to charge the bow, and unleash one charged magical arrow.

Dodge Roll

The player can now quickly dodge in the direction he's moving, by pressing a movement key and either right- or left-shift. If no movement key is pressed, the shift key always makes you dodge backwards. This is very handy in case of traps.

New room type: Pit

The pit room type is one of the new common rooms that the game randomly selects for the dungeon. The pit room is just a big empty room with a giant pit in the middle.
User avatar
Imaculata
Party member
Posts: 102
Joined: Mon Aug 10, 2015 2:51 pm

Re: Zelda with random dungeons!

Post by Imaculata »

Big update!

I've implemented secret rooms now. Secret rooms can spawn when there is an unused room location that is adjacent to two or more rooms. Secret rooms and secret doors do not show up on the mini map, even after they've been explored. Secret rooms generate a random amount of connections to adjacent rooms, and choose a random secret door type. This can be:

1> A bomb wall. These cracked walls can be blown up with bombs, which have not been implemented yet.
2> An invisible bomb wall. These can also be blown up, but look like any other wall. Tapping the wall with your sword should make a hollow sound, which reveals that the wall can be blown up. Sword tapping has not been added yet either.
3> Hidden doors. These also look like ordinary walls, but the bricks slide open when a secret button is pressed. One secret button spawns in the adjacent room, and looks like a tiny button on a brick. It's very subtle, and players really need to pay attention to spot it. Pushing against the button is enough to trigger it.

Bug fix for reward spawns

Apparently the game wasn't spawning rewards as intended. I've fixed this, and now I'm getting far better results from the dungeon builder. I'm seeing a lot less treasures being left over after dungeon creation. I've also fixed bonus chests, which weren't spawning before. Bonus chests contain money, and may spawn at the end of chains, and in secret rooms if all other rewards have been placed already. The maximum number of bonus chests is related to dungeon size.

Bug fix for hallways blocking off dungeon sections

This bug has been squashed by changing the order in which certain dungeon processes take place.

Overhaul of door-post rendering

I've improved performance and the rendering of doorposts, by now directly rendering them to sprite batches. Now I just need to do the same to the doors themselves as well.

New room types:

Bridge - A room with a large bridge across a pit.
Stairs - A room with several staircases leading up to a door.
Platform - A slightly elevated platform in the center of the room, with small stairs leading up to it.
Zigzag - A room with a zig zagging path across a large pit.

All rooms have also had their sprite sheets updated, with better placement of the secret switches, and a change in the tiles used for walls. The wall tiles I used earlier were incorrect, and did not blend well with the cracked bomb wall sprites.
User avatar
Imaculata
Party member
Posts: 102
Joined: Mon Aug 10, 2015 2:51 pm

Re: Zelda with random dungeons!

Post by Imaculata »

Sub screen

The game now has a sub screen, where the player can select different weapons. Although most of the weapons have not been coded yet, selecting them already works. The game keeps track of all the items in your inventory, and displays them in this screen.

Bombs

The bombs are working. They explode after a few seconds, and destroy any breakable objects nearby, including breakable walls and vases!

Breakable walls

As mentioned above, breakable walls now work. When ever a bomb detonates in a room, the game quickly checks if there are any unopened breakable walls in the room, and then checks each door for overlap with the collision box spawned by the bomb. The wall section then breaks, to reveal a hole in the wall. These types of walls come in two varieties: An obvious cracked wall, and a not so obvious normal looking wall. Both break just the same when hit by a bomb.
User avatar
Imaculata
Party member
Posts: 102
Joined: Mon Aug 10, 2015 2:51 pm

Re: Zelda with random dungeons!

Post by Imaculata »

Some new screens!

Image

The new bomb in action. As you can see, this is a wall that has no clear markings that it can be destroyed. I used to love how the original Legend of Zelda kept some mystery, by not explicitly telling you where to place bombs.

Image

Here the wall is clearly cracked, and the player can easily tell there is a secret room here. But since these types of walls are randomly chosen, the game won't always make it quite so obvious.

Image

The secret switch is another type of secret passage that the game can spawn. The button that triggers the secret door is very subtle, and easy to overlook, unless you know what to look for. The secret passage is entirely invisible, until you push against the switch, and the bricks slide apart.

Image

The sub screen now features a lot of place holder items, for testing purposes. I've reserved some space for the gear that the player is carrying (his sword, armor and shield) in the bottom right corner, and for a full map in the top right corner(the mini map shows only your immediate surroundings). The bottom left part of the screen is reserved for relics, which are passive items that you can't select. If you have a relic, it is always active.
Cathetus
Prole
Posts: 3
Joined: Sat Aug 01, 2015 10:40 am
Contact:

Re: Zelda with random dungeons!

Post by Cathetus »

Do you want to push the project to a git repository in the future?
User avatar
Imaculata
Party member
Posts: 102
Joined: Mon Aug 10, 2015 2:51 pm

Re: Zelda with random dungeons!

Post by Imaculata »

I might. Its not far from becoming a playable project, and I'd love to get some feedback from other people on this forum.


Slight update

Door transitions

I've now implemented a proper mechanic to deal with door transitions. The game now makes sure that the player is passed through a door automatically upon touching it, so you end up on the other side. The game already did the camera transition, but then you'd still have to move your player through the doorway. The game now does this for you.

Loading a new level works

I now have a proper level transition. Upon touching the exit, the game makes a new dungeon, and places the player at the new entrance. Health is refilled, all keys and dungeon items are cleared from your inventory, and certain player variables are reset.

New room type: Large rooms

The game can now spawn a block of 4 rooms that are linked as one room.

Dark Rooms

I've been experimenting with a lighting system. I tried installing the Light and Shadow library, but it instantly brought performance to a crawl (even with only 2 lights and no shadows). I must be doing something wrong. In any case, the game does spawn dark rooms now, but I've disabled it for now.

Tweaks and polish

The mini map now reveals an entire room upon entering it, if the room is larger than one screen. Reward placement is better, certain door problems have been fixed, and door rendering on the mini map is cleaned up code-wise.
User avatar
Imaculata
Party member
Posts: 102
Joined: Mon Aug 10, 2015 2:51 pm

Re: Zelda with random dungeons!

Post by Imaculata »

Bridges

The player can now pass underneath, and over bridges. I made some special info tiles that indicate the start and end of a bridge, to handle the change in render order and collision detection. This does not yet work for projectiles though. So if you fire your bow on a bridge, they still collide with walls underneath the bridge. I'll probably have to do the same with projectiles, as I did with the player, and add a floor-property to each and every one.

New large room

I've completed updated my initial large room (room consisting of a block of 4 rooms), so that it now makes use of the new bridge feature. Just having this giant empty room felt rather underwhelming. There needs to be stuff in it. So why not make use of all that space, and add lots of height differences for a change? I've replaced the old version with the new one.

Special rooms

The game now tries to place one special room. If possible, it tries to use an existing dead end that has no rewards in it. But if this is impossible, then it creates a new room, and attaches it to an existing room, with a secret door. This does however have one draw back: Because it is considered a regular room, it shows up on the mini map if you've got the map-item.

So now I have a minor dilemma. Either I allow it, which means that you can always find a special room if you have the map. Or, I make special rooms invisible on the mini map as well (they have a secret door after all). Or, I make sure that special rooms use regular doors instead, and remain regular rooms.

So, what is the purpose of special rooms? Well, special rooms spawn in 6 varieties:

Lore room - Contains a collectible piece of lore, which I might keep track of in the sub screen.
Hint room - May give a clue where a secret staircase can be found in the dungeon (more on this below)
Healing spring - Just like the fairy fountain in Zelda, this is where you refill all your health, and can fill bottles with healing water.
Gambling room - This is where you can gamble money once, to try and earn more. I may replace this with a merchant instead.
Heart room - A room where you can find a heart piece, or magic container.
Altar room - This is where you can charge your sword, or receive some sort of powerful blessing.

Secret staircases

I really like searching for secrets. So I was thinking that it would be really cool to spawn a secret extra floor in every dungeon, with an entrance that is really hard to find, and which contains an extra optional boss fight. So every dungeon could secretly be twice the size it seems at first glance. Hint rooms could provide clues to where the extra entrance is, but of course you'll fight much tougher opponents as well, that are remarkably tougher than the other monsters in the dungeon. Of course, hint rooms don't always spawn. But I like the idea that there is always more to discover than you thought.

Thoughts on enemies

I've never coded ai before, but I do have some ideas for enemies. I want there to be plenty of humor, but also a lot of challenging combat. I feel a lot of Zelda games (clones included) make the combat too easy. I'd like to see what kind of game play can emerge if the enemies are really aggressive. Maybe they even utilize battle formations, and use line of sight?

Thoughts on bosses

Likewise, I think bosses should be really challenging as well. They should have multiple phases, a wide array of moves, and a desperation move. The latter is a move that only comes into play, if the player seems to be trivializing the encounter. This would be a kind of anti measure against ganking a boss, that should keep players on their toes.
Connorses
Citizen
Posts: 63
Joined: Fri Sep 06, 2013 7:02 am

Re: Zelda with random dungeons!

Post by Connorses »

Impressive what you've been up to since I saw this thread before! I want to play the game now. :P

So how do you plan to make money of a game made from Zelda sprites? heheh
User avatar
Imaculata
Party member
Posts: 102
Joined: Mon Aug 10, 2015 2:51 pm

Re: Zelda with random dungeons!

Post by Imaculata »

It's all going to be replaced with all new art work. The new art style will be more colorful, and have a lot more humor. Further more a lot of the items are just placeholders. I'll be adding new weapons gradually, and I think as the project progresses, it will diverge more and more from Zelda.
User avatar
Imaculata
Party member
Posts: 102
Joined: Mon Aug 10, 2015 2:51 pm

Re: Zelda with random dungeons!

Post by Imaculata »

Healing Spring

The healing spring now works, and I've improved the healing mechanic. The player receives a healing value, and the game then starts healing half a heart every second, until the player is out of healing, or reaches max health.

Movement improved

The game now allows diagonal movement. The next thing to do, is to also allow the player to move while a weapon is charged (such as the bow or the sword).

Changes to special rooms

The gambling room has been replaced with a merchant room (same room, just different functionality). The special rooms also no longer spawn with secret doors. They now always have an open door, so it makes more sense that they show up on the map as well. As far as the game is concerned, they are normal rooms.

New animation sets

I've added new sword charge animations, new strafing animations, lifting and throwing animations (for picking up and throwing vases), a big item-get animation (Link holds up both hands for special items), and a falling animation. Now its simply a matter of adding the functionality for these animations into the game.

Fixes to player shadow

The player's shadow wasn't rendering correctly, but this is now fixed.
Post Reply

Who is online

Users browsing this forum: No registered users and 89 guests