Welcome, Guest. Please login or register.
Did you miss your activation email?

Login with username, password and session length

 
Advanced search

1367703 Posts in 64164 Topics- by 56074 Members - Latest Member: d410

October 14, 2019, 08:55:49 PM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsCommunityDevLogsGrave Robbers
Pages: [1] 2
Print
Author Topic: Grave Robbers  (Read 1472 times)
fuedhq
Level 0
***



View Profile WWW
« on: September 17, 2019, 08:35:51 AM »

In ancient times, there was a kid who acquired an old tome for its cover.
The tome taught many mystical spells and lucky was the kid as one of them was a very powerful one.

But good mojo tends not to strike the same spot twice and soon he realized the spells failed.
Fearing shame from the whole ordeal, the kid set into a crusade to solve the powerful spell´s riddle.

It was written in a similar dialect he knew so with time and help from other forgotten scrolls,
he eventually mastered what is one of the most powerful reality creation spells.


Welcome!
Romance aside, the old tome´s cover I´m talking about is this one here:



Now that I have your attention with that fake self testimony and this awesome cover art,
Here is what to expect of the game soon to be developed here:

Story: As the 3 best robbers in the world take their last breath of life, they face Death and a tempting deal.
Their life back if they can retrieve an ancient artifact stolen from her and kept hidden and protected on a
sacred graveyard where she can´t dwell herself.

Gameplay: This is to be a top down viewed game where you (or 3) control the heroes in a turn based fashion similar to strategy tactic games, with action points. It is to be fast paced and action oriented while still retaining a rogue vibe. Survive, increase your stats, fend the undead and battle mid bosses while searching the graveyard for the relic Death wants.

Mechanics: The most important one is related to light. Players carry fueled lamps and they can light the environment by either setting stone torches or swinging the lamp to throw temporary burning pieces on the ground.

With the overall idea laid out, one wonders why the cheesy italic introduction and Usborne´s book cover.
Well, it was a sad day when I realized TRS-80 is a different thing than TRS-80 COLOR and the later was the one I had.
Fun part was that the INPUT magazines were going about and they also had multi system listings so I ended up studying this all to try and fix the listing myself, which eventually taught me a practical use for ARRAYS in game.

If you saw my other devlogs, you may know that I create games using a modern version of BASIC called GLBASIC.
So before I actually start GRAVE ROBBERS game dev, I will recreate GRAVEDIGGER from this book as a tribute to what it means to me.

You check the whole book here:
https://drive.google.com/file/d/0Bxv0SsvibDMTRUl3SFRONGN0MFk/view

If you are interested in GLBasic, check here:
https://store.steampowered.com/app/819510/GLBasic_SDK/
« Last Edit: September 30, 2019, 10:36:53 PM by fuedhq » Logged
fuedhq
Level 0
***



View Profile WWW
« Reply #1 on: September 17, 2019, 12:49:56 PM »

...and here is the grand thing! Notice how the background illustration mimics the cover! So lovely! Kiss
What a strange time for file transfer the 80s were, one would share an app by printing its code on paper, then send it through post and then the receiving part would retype that code and voila! File downloaded, not even analogically but manually! :D  



And here you have the game running in full glory on the ZX spectrum:



It plays similar to ROGUE, CHASE or ROBOTS, say, turn based: you move, the rest moves, repeat, and you have to perform a certain number of moves on the map till a time expires (60 turns) while avoiding the skeletons hunting you. The map has random crosses which block both player and enemie´s path and you can create up to 5 holes that will also block enemies. You can get an idea by reading the description and instructions on the book under the game´s title.
Here is a neat link: https://en.wikipedia.org/wiki/Chase_(video_game)

More importantly for the game creators, might be the section under it called "How the program works", that is more or less the structure between the game idea and the code itself, so it is like a pseudo code, here it is:

50-90         Fill the array A with empty spaces
110            Sets the number of holes allowed
120-170     Code the symbols to be used
180-260     Put the walls into the array
270-310     Choose random positions for the gravestones
320-390     Set starting positions for you and the skeletons
400-420     Put skeletons into the array
440-640     Calculates your new position
650-740     Looks to see what is in new position. If nothing, moves to it
770-850     Print various ends to the game
860-980     Print graveyard
1030-1100 Put a hole in the array if you want one
1100-1310 Move skeletons

Very neat uh?
The new tribute version has to keep with the original spirit, this will be a great way to warm up for the main game!

EDIT: here is me playing the dragon version on a TRS-80 COLOR using XROAR.

« Last Edit: September 18, 2019, 06:48:14 PM by fuedhq » Logged
fuedhq
Level 0
***



View Profile WWW
« Reply #2 on: September 18, 2019, 05:55:01 PM »

Here is the structure to be used:



Overall, I want low resolution low palette pixel graphics, some level of animation, sound and music, maybe music only at the title and some mood stuff for in game, better controls, a game over and won celebration screens as well as title and credits.

When it comes to gameplay, I will make 2 modes, A and B, where the first attempts to closely mimic the original and the later will sport some of the simpler ideas I thought to add to GRAVE ROBBERS later on. I will discuss these changes and modes as we go along.

Today I made a layout and animation of what I think to be all the sprites and tiles I will need in game.
The layout is very important, here it is showing game mode B:



Of course the dotted black grid is just an overlay guide, but I´m quite happy with all proportions.
Notice the game map increased from 20x10 to 20X12, I also will be using less tombs then the original ~10 or less instead of 20.

One may think the world area is quite small, but since everyone moves separately, you can´t have 200 foes and wait for them all to move to play again, so one has to balance max amount of enemies tolerable against game world area, I didn´t think of that in my first thoughts.

Here are the sprites, player and enemies, and a tile set to create the sematary.
There are extra tiles and actions to support the newer ideas for game B.


« Last Edit: September 18, 2019, 07:10:06 PM by fuedhq » Logged
Superb Joe
Level 10
*****



View Profile
« Reply #3 on: September 18, 2019, 11:46:53 PM »

this website suffers a spiritual deficiency as a result of not knowing about european computers, invoking the dragon 32 and its frankly inhumane colour palette is like speaking an unknown language of the gods that will visit upon them in a form as unknowable phenomena, like wind or birdsong.

this looks really cool. i'd never heard of glbasic, it seems fun. thank you.
Logged
fuedhq
Level 0
***



View Profile WWW
« Reply #4 on: September 19, 2019, 05:37:22 AM »

I still fail to wrap my head around the reasons behind the Dragon´s palettes. First I thought it was what the hardware could make and that is it, but later I suspected there were herculean efforts behind it because you can´t create a set of colors so ugly an unmixing without a very deep knowledge of colors, a team of 100s of technicians and at least 4 years round the clock research.

And if one thinks the color clash on the ZX is a challenge, one should try the color artifacts of the COCO´s high res in NTSC.
Beware though, it is a Cthulhu summoning activity. :D
Logged
fuedhq
Level 0
***



View Profile WWW
« Reply #5 on: September 19, 2019, 02:06:30 PM »

Code started, the more boring part is done, like control and display handling, debugging areas, code intending purely for aesthetics, etc.
Added the FUED intro as well as a temporary title screen worked of from the book illustrations.
Original author´s name is Rob McCaig. I really should look into them all updated works!



Game mode is switchable with the B button and A starts the game, I also added a venetian blind transition effect between screens going about the same size as the game´s board tiles, should look sleek.
Here in slow motion, will be 4 times faster.



As we now get into the real game, let´s first implement game mode A.
While it is to be very close to the original, some gameplay changes will be done.
Most notably, sematary closed exit gates, which will open should you stay long enough and will lead you to freedom.

Time to create the game map.
Logged
fuedhq
Level 0
***



View Profile WWW
« Reply #6 on: September 19, 2019, 05:14:27 PM »

Here is the level generator for game mode A. It´s tempting to advance to game B map generation, but lets keep vertical.
The order goes like:

.Draw the surrounding walls
.Choose up to 3 grid wall areas on each up and lower horizontal walls, each area can contain up to 3 grid wall tiles
.Choose a gate position on the lower horizontal wall, add grid walls to each side
.Put a set of ground bricks in front of the gate
.Spread 8 tombs around the semaraty
.Choose up to 11 big ground block locations and choose if each 4 sides should have a smaller ground block
.Spread 2 types of ground foliage

You can see the process going on the GIF and the numbers behind the curtains.


« Last Edit: September 19, 2019, 05:26:07 PM by fuedhq » Logged
fuedhq
Level 0
***



View Profile WWW
« Reply #7 on: September 20, 2019, 04:39:36 AM »

A word of warning to those who are looking into start coding games...
be aware when creating random generators as they are one the most addictive things in the universe.
One can spend eons just looking at it going.

Should I don´t show up today with any update on the game, please send help my way. Tongue

Logged
fuedhq
Level 0
***



View Profile WWW
« Reply #8 on: September 20, 2019, 02:05:41 PM »

As we saw before, we have a random spawn point for the player.
As with the skeletons (be zombies on this one), I thought they could slowly raise from the graves as turns go by. Probably more coming out as the time reaches the limit.

Player is also moving about and collides with walls and tombs.
So does the zombies but now I have to fix the tomb positioning so they don´t appear just above another and one.

Zombies should also not spawn if someone is on that spot and I have to add collision between zombies and zombies to player.

In this gif, you can check everyone moving about more or less at the same time, I will have to tune it to one by one yet.
Also notice the layout is designed to avoid having to draw scenery on the foreground, but that won´t cut for the sprites so I have to figure out a Z system to sort them. Ye, like the lower on screen the sprite is, the higher its priority when drawing, so no one overlaps each other wrongly.

Logged
fuedhq
Level 0
***



View Profile WWW
« Reply #9 on: September 21, 2019, 08:19:32 AM »

Now each character moves alone, no more zombies moving all together though it feels together is faster and better, we will see.
The zombies intelligence is up and running and based on 3 distances to the player.
You can see squares around the player to mark the regions, zombies close by will hunt you more precisely.
Zombies closer by will shwrick more wildly! Smiley

Now everybody respects each one´s space, no more overlapping.

Tombs are adjusted to spawn correctly without stacking and zombie spawn does not happen if the area is occupied, though I still have to add the player´s hole to that.

Yep, now you can dig! The game sports up to 4 zombies till turn 50, then it may spawn up to 12!
At turn 60, the gates open.

We are now reaching a point where there are enough elements on the soup to start shaping the game.
I need to add a win condition, player hit by zombie and a game over condition.
Then to the fine tuning...

Here another gif running a bit slow.

Logged
fuedhq
Level 0
***



View Profile WWW
« Reply #10 on: September 21, 2019, 09:24:10 AM »

Here is how the game looks while running in debugging mode.

While GLBasic has excellent tools for that, I prefer to code my own variable display overlay.
I try to keep the more important ones around and make visual marks over the game too.

Logged
fuedhq
Level 0
***



View Profile WWW
« Reply #11 on: September 21, 2019, 10:34:12 AM »

Putting up a win temporary pic, same as the title, from the book illustrations.

Logged
fuedhq
Level 0
***



View Profile WWW
« Reply #12 on: September 21, 2019, 11:29:43 AM »

Needs another image for when you loose.
According to the original game, you get scared stiff I think,
so here is one.

Logged
fuedhq
Level 0
***



View Profile WWW
« Reply #13 on: September 21, 2019, 05:48:33 PM »

Game over and win condition is working.
I also added a timeline of difficulty based on turns and maximum zombie count, it starts with 3 and scales up.

Zombies are now attacking, they push you back if the space is vacant, they can push you in your own hole.
I love the falling animation.

Logged
Superb Joe
Level 10
*****



View Profile
« Reply #14 on: September 22, 2019, 04:01:43 AM »

the animation is really charming (especially the elongated eyes) but have you tried playing with the animation speed, it seems a bit leisurely during the fall
Logged
fuedhq
Level 0
***



View Profile WWW
« Reply #15 on: September 22, 2019, 06:51:21 AM »

Yep, tried a few ones. It looks like a road-runner kind of comic fall.
The speed there is a bit tricky to adjust.

The background tiles are 10x10 while the sprites are 16x16, when you go over a hole, it works similar to walking but with different animated frames, as you get over the hole, a frame is frozen and the sprite starts moving down. When it aligns with the background tile border, it holds still and go over the falling frames, which have their own speed in-drawing. Main reason is that I didn´t want to draw a mask over the animation to cover for the disappearing part.

I probably didn´t make any sense. In sum, I made a mess with that part and it is hard to tune, :D
But I sure will play more with it and all other animation/timing things in game as soon as I get a simple complete version.

edit:hmmm the current movement is like an "L" move with a little stop on the corner, maybe if I change that to a circular motion and remove the stop?
Logged
fuedhq
Level 0
***



View Profile WWW
« Reply #16 on: September 22, 2019, 07:15:08 AM »

Ahhh, excuses and more excuses hehe, that L movement got me bugged, made the circular version using the same system.
Here is each one side by side.

The new one kind of surprises for its speed, the older, is more of a comic relief.
Such details mess with the feeling of the game more than gameplay itself.
On the new one, a player might go: "Oh heck! I fell!", the older: "Oh no, I´m going to fall!".
What do you think?




Logged
fuedhq
Level 0
***



View Profile WWW
« Reply #17 on: September 22, 2019, 01:49:41 PM »

I will try to keep the game view clean of HUDs.
The player now has 3 lives as level of scariness, like the stiff-o-meter!
He also shows a standing frame while waiting for his turn.

His idle animation shows his level of stress.

Logged
fuedhq
Level 0
***



View Profile WWW
« Reply #18 on: September 23, 2019, 03:46:53 PM »

The joys of bugs! :D
Logged
fuedhq
Level 0
***



View Profile WWW
« Reply #19 on: September 24, 2019, 02:51:50 PM »

Got to a nice point on game A. Did some extra changes to the gameplay.
The original had the player spawn on a fixed position on the top left of the semetary and 3 skeletons on the top right part, your objective is to stay alive for 60 turns.

I wanted my zombies to spawn randomly from graves as time flows, player to be placed randomly and I had a semetary gate open when turn 60 is reached.

That leaves the start of the game without much of a purpose while you wait for the zombies to spawn, so I added a key to open the gate instead of turn 60. That also presents a bit of trouble as things can´t be as random otherwise easy games might come up.

So I made the gate be placed randomly and player and key randomly too but positioned more towards the following rule:
-gates in the middle -> player spaws on one side and key on the other.
-gates on the sides - > player at the same region and key on the opposite side.

The key also only spawns on the semetary upper area, player on the lower. This works nice to level the game challenge but still provides a possibility for easy to solve games. So I added an extra element. If you pick the key before turn 30 (which is easy), when that turn is reached, one of the zombies has a high chance of dropping a bottle of booze. If you go pick it up before leaving, you are the man!

Game starts with a maximum of 3 zombies, as with the original, but adds 3 more when you pick up the key and 3 more when you get the booze. I kept the shovel use to 5 but it does not feel like a useful ability, it is, but hard to understand where.

As for scoring, it would not make sense to count turns since all the randomicity will break that, maybe when you pick the key? Some sort of score would help this simple game live longer but I think I will let this part go.

Another thing that changed is the movement speed. I thought to have all zombies move at the same time, but that would break combo situations. If each one moves at its own turn, the thing gets very boring with some 6 zombies on screen, it just takes too long for your turn to happen. So everything moves 2x now and that poses another trouble as it breaks the purpose of the animations. They work, but feels too fast and cartooning, I might change the frames but I think this is of the nature of this kind of game. This very doubt I had before and this testing game is sure a good way to try some solutions before a bigger game dev.

To have game A fully complete, sound and music should be added.
I should also start coding game B with more cool extras and better gameplay.
I hope to have it done by this week, it should be enough time for this warm up.
Logged
Pages: [1] 2
Print
Jump to:  

Theme orange-lt created by panic