Flight of a Dragon

Use this forum to share and discuss Uzebox games and demos.
User avatar
Jubatian
Posts: 1564
Joined: Thu Oct 01, 2015 9:44 pm
Location: Hungary
Contact:

Re: Flight of a Dragon

Post by Jubatian »

CunningFellow wrote: Mon Jun 22, 2020 8:43 pm Bugger. Does

-fno-toplevel-reorder

help ?
It is there since the start. This version of GCC apparently doesn't give a damn. ( https://github.com/Jubatian/foad/issues/1 ; https://github.com/Jubatian/foad/blob/m ... kefile#L37 )
User avatar
Artcfox
Posts: 1382
Joined: Thu Jun 04, 2015 5:35 pm
Contact:

Re: Flight of a Dragon

Post by Artcfox »

How about:

Code: Select all

-fno-stack-protector
I'm not sure if it even applies to avr-gcc, but I found it here: https://stackoverflow.com/questions/494 ... -variables
User avatar
Jubatian
Posts: 1564
Joined: Thu Oct 01, 2015 9:44 pm
Location: Hungary
Contact:

Re: Flight of a Dragon

Post by Jubatian »

Took ridiculous amount of effort, but should be fixed now.

I reimplemented the resource file in assembler, and of course all the generators to produce assembly output, so the end result remains having the same level of maintainability like before.

Stumbled upon a ridiculous problem once spending days with this mess. Once it was all done, the resource data compiled, it wouldn't show up in the binary! For some obscure reason, I can't imagine why, once it was in assembler, the linker didn't add the Allocate flag onto the section. The section wasn't discarded, it was there in the .elf, having tons of references to labels in it, but with no Allocate flag. In the same environment, for the .c resource, the Allocate flag is added. I don't have the faintest idea why. I resolved it by adding an actual linker script instead of having the section by linker command line flag.

Anyway it compiles and works now. Checked resource area for binary equivalence (lots of work just to get there that it is equivalent!). Still can play the game through just fine without death (hadn't done so since quite a while). Even thought it was too easy back then. Did anyone manage it to the end?
CunningFellow
Posts: 1445
Joined: Mon Feb 11, 2013 8:08 am
Location: Brisbane, Australia

Re: Flight of a Dragon

Post by CunningFellow »

Sounds like a lot of stuffing around you had to go through.

No I never completed game at all. I just can't play platformers very well. I was lucky if I ever made it out of the dungeon. I once made it to some castle that had barrels of gunpowder or something and died there. I've seen the map and I know the game is a lot bigger than that. I have no hope of seeing any of it in game though.
User avatar
Artcfox
Posts: 1382
Joined: Thu Jun 04, 2015 5:35 pm
Contact:

Re: Flight of a Dragon

Post by Artcfox »

I haven't made it to the end. I can't tell when the dragon is tired and I miss the jumps you need to be rested for and then die.
User avatar
Jubatian
Posts: 1564
Joined: Thu Oct 01, 2015 9:44 pm
Location: Hungary
Contact:

Re: Flight of a Dragon

Post by Jubatian »

Artcfox wrote: Sat Jun 27, 2020 7:36 am I haven't made it to the end. I can't tell when the dragon is tired and I miss the jumps you need to be rested for and then die.
Was thinking about this thorough design, first thought about animation, but ran out of ROM, maybe could flash the energy bar, but that probably needs some RAM for state (Absolutely every single byte is used at the moment! Even such crazy stuff like finding unused members in various structures, gaps, to repurpose them for various variables). Fortunately have enough ROM for adding some code without risking stuff not fitting :P

Will look at this, maybe would work! At least flashing might probably catch attention, that something is not right!

EDIT: Could add it without requiring any bit of RAM for state! RC2 can be fetched from the repo!
User avatar
Artcfox
Posts: 1382
Joined: Thu Jun 04, 2015 5:35 pm
Contact:

Re: Flight of a Dragon

Post by Artcfox »

Sweet! I'm super busy right now, but I am excited to check it out when I get the chance.
User avatar
Artcfox
Posts: 1382
Joined: Thu Jun 04, 2015 5:35 pm
Contact:

Re: Flight of a Dragon

Post by Artcfox »

Wow! The blinking is awesome. I was able to get to level 5 now.

The blinking really gets my attention, and I can rest in a safe spot. Some of the jumps were still really hard. I guess I needed horizontal velocity, but that wastes energy. I tried walking and that helped conserve energy in the spots I needed it. It took me forever (many continues) to get past the part where the guy drops stuff off the edge of castle onto me. I tried to stay out of his reach and torch the door, but the fire kept on going out. Finally I got lucky and made it past.

I would love to see a full playthrough video sometime. I might learn some survival tricks. If the game is deterministic, you might be able to just send an input log that can be played back, rather than recording a super-long video.

Nice addition!
User avatar
Jubatian
Posts: 1564
Joined: Thu Oct 01, 2015 9:44 pm
Location: Hungary
Contact:

Re: Flight of a Dragon

Post by Jubatian »

Artcfox wrote: Sat Jun 27, 2020 9:48 pm Wow! The blinking is awesome. I was able to get to level 5 now.
Wow, thanks, great to hear that!

I have a playthrough for levels 1-4 uploaded:

Purposely didn't add more back then to leave some stuff to discover :)

But it should show how it can be played, and also shows the locations of the first three power-ups (on levels 2, 3 and 4), collecting those are pretty important, the game would be quite difficult to finish without them (didn't try, though).

With rock droppers the trick is to avoid their line of fire, the difficulty being noticing them and not advancing onto the door if they are waiting above on the edge. Better take archer fire instead (for minuscule damage). When your fire is out, you can of course still keep it on, only your rate suffers, so you have to take caution. If necessary, clean up people on the ground, better lose some score for bloodshed than being dead! (Note: Doors are torn down with a fixed amount of fireballs, unless you move a screen away from them, then they would restore! The dragon with full fire upgrades, on full breath can tear a door down in one go)

For high jumps, yes, you need some horizontal velocity AND energy! So the occasional double jump is tricky since you have to land on the first platform and launch still having the momentum (if you hit the wall after you already took off, that doesn't matter, the jump height is the same).

Running doesn't consume energy, but it doesn't allow it to replenish. You can walk, but the easiest is to just let the dragon stand still to catch his breath in a reasonably safe spot (so it needs a bit of attention to the surroundings, to see where lays an opportunity to have a rest).

The game uses a prng, fixed seed, but using the timing of user input as entropy. So I think doing an input capture from game startup could be deterministic. Dunno whether any emulator has the necessary feature though (sure would be a good one for CUzeBox, but quite some effort to get there)!

Thank you, and hope these help a bit figuring out what to do! :)
User avatar
Artcfox
Posts: 1382
Joined: Thu Jun 04, 2015 5:35 pm
Contact:

Re: Flight of a Dragon

Post by Artcfox »

Awesome, thanks! I see how you play, and hit all the underground caves. What are the different powerups? I didn't see them explained on the game's wiki page.

I just know to try to collect the stars and the chicken wings.

I initially held off on releasing a full playthrough of Bugz, but eventually I put one up on YouTube.
Post Reply