Return to Level1Techs.com

[Devember 2021] QFTLC - Zelda-like

DESCRIPTION

My project for this years Devember is a Zelda-like game (NES / SNES style) currently titled Project QFTLC. I have wanted to work on a project like this for many years now and I think my experience level is high enough to finally make a good go of it. Another reason I chose to work on this project is the lack of zelda-like games out there.

I will be streaming / recording each day to document my progress.

GOALS

  • An Overworld to explore.
  • At least 1 Dungeon to complete.
  • Some basic Enemies / Threats to overcome.
  • Some basic Items (Treasures) to find, which allow access to new areas / allow defeating certain enemies.

STRETCH / BONUS GOALS

Things I would like to add that may not be possible before the end of December.

  • Map / Adventure Editor, effectively making this an engine where people can make their own adventures.
  • Procedural content, one of the down sides of zelda-likes is their replay-ability, try and come up with ways of making the Overworld / Dungeons / Puzzles procedurally generated.

LINKS

[Project Page]
https://dac3.net/QFTLC/

[youtube playlist]

9 Likes

Week 1

November 1 - 7

Wanted to start off by getting the Player implemented. Being a able to move and attack is the most basic element, so seemed like a good place to start.

Made a basic place holder character and some animations for it (idle, move, attack). Movement is similar to zelda games, press left and go left, press up and go up, etc. Had to keep tweaking it to feel right, but got it to a good place. Attacking still feels off, but works for now. Think I need to modify the animation for it to go more smoothly from walking to attacking.

Wanted to add something to destroy to test attacking, so made some Grass. Made a basic grass model, with some animations for walking through it. Attacking the grass will destroy it. Looked weird just being destroyed, so added some particles to make it more interesting.

Wanted something to randomly drop from destroying the grass. Added a test pickup object for now, it just checks for collisions and triggers a function that it got “picked up”. Made it so the grass will randomly drop this item when being destroyed.

Finally, added the most basic Enemy of any game, a Blob. Created the model, and animated it (idle, move, charging-up, attack). It will face the player and move towards them. At a certain distance it will be triggered to charge up, once complete, dash forward very fast.

3 Likes

Week 2

November 8 - 14

Started off the week implementing a “transport” object. Allows for moving from one area to the next. This method works good, but has the downside of needing to make the areas in Untiy editor. sooo…

Began to work on a Map Editor to be able to create the areas from within the program itself. Currently can place tiles that react to neighbor tiles (adjust shape), place ramps, and delete. Still need to make it more robust, but it is a good start for now.

3 Likes

Week 3

November 15 - 21

Spent the first few days this week re-doing the way the tiles work. Realized I should have went with a marching squares type approach so wanted to get that in place before doing anything else with the editor.

The remainder of the week was spent getting the editor to a better place. Can make and manage multiple areas now. Having multiple base tiles to work with, can draw out the terrain. Have a detail layer which for now just deals with things like ramps / stairs, but can be used for other static terrain elements such as boulders, bridges, etc. Have a terrain objects layer, which can be used for non static terrain elements, such as the grass that can be cut down or moved through. Have an enemy layer to place enemies into the area. Finally have the portals and destinations for allowing to create spots for area transitions.

Still need to finish up the UI for the portals and destinations as there is no way to specify data for them currently.

3 Likes

Week 4

November 22 - 28

Started off the week finishing off Portals / Destinations in the editor. They could still use some more options for setting them up, but for now it allows for making the maps work.

Spent most of the remaining part of the week being able to save / load the adventure for editing and exporting it to be playable. Since the information that needs to be saved and loaded is likely to change, I just went with a plain text dump of the data for now. I will likely use something more structured in the future, like XML, JSON, etc.

Added a couple new things to be used in the maps, A tree, and some boulders. Helping make the areas look a little more interesting.

Spent more time than I thought was going to be needed on the map editor so far, hoping to be moving on to more game play related elements for the next week.

5 Likes

Week 5

November 29 - December 05

With most of the basic map editor functionality in place was able to get back to dealing with the game itself. Started off the week tweaking the player and blobs to behave better. Mostly dealing with movement and getting hit. During being hit, there is an invulnerable state where player/blobs can not be hit and also will not collide with each other. Also made sure the hit directions were corrected (being hit from the left should knock to the right).

Wanted to add some more areas to go to, so created a cave entrance that can be placed in the areas and Made an underground / cave area.

This led to adding in lighting to the areas. There is now a toggle for if an area is lit or not. Gave the player a weak default light to start with. Going into the cave will turn off the main scene light and enable any lights the player may have on them.

Added a torch object that can be placed, lights up an area.

Created the first Equipment object, a Lantern the player can collect which gives them some directional light and increases the default light strength / distance.

Added Chests, these can be placed in the editor and be given a Collectable object to give to the player.

Added a basic UI which displays current equipped equipment and health / mana bars.

2 Likes

Week 6

December 06 - December 12

Not much to show off for progress this week, mostly just tinkering with things that are already implemented.

Added a place holder Main Menu to open the Map Editor or Game.

Added in water and ability to swim. Also added a mostly water area for testing swimming.

2 Likes

Week 7

December 13 - December 19

Wanted to add an ability to the Lantern besides just giving light. It now can be used to make a small fire in front of the player at the cost of 1 magic point. Added the ability for objects to be flammable as well, currently grass is the only thing using it. Making a fire near grass will ignite and destroy it. Will want to use this mechanic later for some puzzles.

Added Doors, which can be locked and require a specific Key to open. Added a Key item which can be given a unique value to open a specific Door. I want to change this later to be more zelda-like where keys are a collectable per dungeon, and can open any locked door in that dungeon.

Finished off the week starting on the first Dungeon. Got the first section finished. There is a room with a key and a locked door in the beginning. The Lantern will be found in the locked room and will be required to advance on, as the remainder of the dungeon will be dark.

2 Likes

Week 8

December 20 - December 26

Added in some expanded lighting options for Areas. The ability to change the color of the scene light and also the color of the ambient light.

Added item drops to the enemies. Also made it so there are unique drops for enemies, such as keys, that can only drop and be picked up once.

Made an new object, Brazier, that can be lit with the Lantern and will go out after a short time. The Braziers keep track of how many are lit at once and can now be used for puzzles.

Modified Doors to have an additional state, Sealed. The sealed state can be triggered with a WorldFlag, like a certain number of Braziers lit at once or maybe a button/switch later on. Also added some additional graphics to show the locked and sealed states of the door.

Finished the week off starting to get the boss of the dungeon implemented.

-various bug squashings-

1 Like

Week 9

December 27 - December 31

Finished up the first Boss, a Giant Blob.

Did some more work with handling world flags and being able to react to unique events, such as the boss dying.

Got a Dialogue system in place and some signs that can be read.

Spent the last day adding an intro and cleaning things up a little to be presentable. :slight_smile:


Got my base goals complete and the stretch goal of having a Map/Adventure editor is in place as well. Was actually really useful to go that route early on to build things for myself easily. Overall really happy where I ended up in 2 months on this.

dac3.net/QFTLC

Now that Devember is over, can spend some time cleaning up the various rushed areas, fix bugs, complete some of the non-essential features, and general de-spagettification.


1 Like