XDC engine development thread (alpha version)

Everything about the various Boulder Dash tools, and other stuff created by the fans.

Moderator: Admin

User avatar
LogicDeLuxe
Member
Posts: 638
Joined: Sun Jul 15, 2007 12:52 pm
Contact:

Post by LogicDeLuxe »

New version: http://www.file-upload.net/download-119 ... 8.prg.html

- keyboard scanning. It is currently in the IRQ, but I probably move it between scan intervals, to save some raster time.
- status bar for new cave with 20 chars for cave names with 1 or 2 letters and 40 chars for longer cave names.
- pause mode on space, including status bar message.
- life counter. No game over yet, though. It simply underflows right now.
- stop key to give up one life. Only possible after hatching, like in the original game.
- button to continue when you are dead for at least 16 frames.
- level support. After playing through those 4 caves, they start over with the next level. After level 5, it goes back to level 1.

You can press RESTORE to go to the next cave with 3 lives.

The going back to level one feature is there for testing purpose. Do you think, this should stay that way, or should the game stay on the last level forever, like the original does?
User avatar
RTADash
Member
Posts: 414
Joined: Sat May 26, 2007 3:21 am
Location: USA (in Ohio)

Post by RTADash »

LogicDeLuxe wrote:The going back to level one feature is there for testing purpose. Do you think, this should stay that way, or should the game stay on the last level forever, like the original does?
I think it should stay at the last level like the original. Otherwise, the game gets really easy all of a sudden, which can make it boring after the thrills of playing through level 5 (or whatever number).
Boulders are round.
Fireflies are square.
I need to find
a'way out of here.
User avatar
LogicDeLuxe
Member
Posts: 638
Joined: Sun Jul 15, 2007 12:52 pm
Contact:

Post by LogicDeLuxe »

Alternatively, I could force the game to end there. This would give the player a motivation to get as much diamonds as possible to make a high score, as there will be no further chance after the last level.

On the other hand, with a mere "game over"-message, this might be just as disappointing as no ending at all.

At least, I never saw anyone continue playing after going through an entire cave set and all levels, as this is boring as well while thousands of other Boulder Dash games are still waiting to be played.
User avatar
LogicDeLuxe
Member
Posts: 638
Joined: Sun Jul 15, 2007 12:52 pm
Contact:

Post by LogicDeLuxe »

New version: http://www.file-upload.net/download-119 ... 1.prg.html

- Bugfix: Fireflies also explode on Rockford in delayed state. He was almost invincible during walking.
- Sound implemented. Dynamic channel allocation. In contrast to the original engine, this allows any 3 sounds to be played simultaneously. For instance, you can hear a falling diamond, a falling boulder and picking up a diamond at the same time, which is very common in caves like I4. The original BD would have no polyphony at all in such a situation.
Some sounds do sound a bit different. This is due to SID's native ADSR instead of emulating Atari envelopes. This difference, of course, saves some raster time.
Only magic wall and amoeba sounds (not implemented yet) will be handled in the interrupt, since they are continues sounds.
- Keyboard scan moved between cave scan, which also saves some rastertime.
- Speed is 150ms frametime in this version, which is approximately what BD1 cave A/1 has on PAL.
- PAL/NTSC auto detection, so framebase timing is accurate no matter what. If the system is too slow to handle this, the timers would slow down with it, to keep everything in sync. An important feature, the original engine doesn't have.
- DTV detection and burstmode activation. That makes the engine even faster when played on a C64DTV. You will notice the difference in cave O4. Even on a well designed games, with no noticeable speed difference, you still prove from faster cave drawing, so that complex caves may appear a bit faster.

The final version will have a debug mode, which enables a warning symbol whenever the game runs slower then realtime. (Similar to the implementation "The new Dash Dimension" has)

Features from previous versions I forgot to mention:
- Boulder pushing
- wraparound on vertical border (not available in the current caves, though). In this routine, using the most significant bit for delayed versions of elements paid off. Instead of redirecting movements during the scan interval, which takes quite some time, I can simply copy all delayed elements outside the cave onto the opposite border, and all normal elements on the borders back out of the cave between scan intervals. A lot faster then redirecting.
User avatar
LogicDeLuxe
Member
Posts: 638
Joined: Sun Jul 15, 2007 12:52 pm
Contact:

Post by LogicDeLuxe »

New version: http://www.file-upload.net/download-119 ... 2.prg.html

- DTV crash fixed. It should really work this time.
- Snap Effect. It is currently global set to EXPLOSION3.
- Dissolve effect with animation and sound.
User avatar
LogicDeLuxe
Member
Posts: 638
Joined: Sun Jul 15, 2007 12:52 pm
Contact:

Post by LogicDeLuxe »

New version: http://www.file-upload.net/download-120 ... 3.prg.html

- DIRT2. It is automatically generated from regular dirt, ie. colors 1 and 2 are swapped.
- Experimental alternative 32 bit predictable random number generator. Cave A1, I4 and TEST are using it in this version. All 7 levels are used to have more seeds to test.
The code looks like this:

Code: Select all

	lda RandSeed2
	asl
	asl
	eor RandSeed2
	asl
	eor RandSeed2
	asl
	asl
	eor RandSeed2
	asl
	rol RandSeed1
	rol RandSeed2
	lda TempRand2
	asl
	eor TempRand2
	asl
	asl
	ror TempRand1
	rol TempRand2
	lda RandSeed1
	eor TempRand1
	rts
It is initialized with

Code: Select all

        sta RandSeed1
        lda #$00
        sta RandSeed2
        lda #$00
        sta TempRand1
        lda #$b4
        sta TempRand2
RandSeed1 is initialized with the seed from the cave data here.

What do you think about the random patterns? Worth keeping?
(I changed I4 with seeds 100 to 106 instead of all the same)
User avatar
LogicDeLuxe
Member
Posts: 638
Joined: Sun Jul 15, 2007 12:52 pm
Contact:

Post by LogicDeLuxe »

More random testing.
Version 1: http://www.file-upload.net/download-120 ... 1.prg.html
Version 2: http://www.file-upload.net/download-120 ... 2.prg.html

Is version 2 better than 1?
You can cycle through all 256 seeds by pressing RESTORE.

Version 1 uses the same settings than the previous version. It shows some similarities between seeds in the first few elements, ie. the first row.

In version 2, I set the seed from the cave data to all 4 bytes instead.
Which version do you prefer?
User avatar
LogicDeLuxe
Member
Posts: 638
Joined: Sun Jul 15, 2007 12:52 pm
Contact:

Post by LogicDeLuxe »

New version: http://www.file-upload.net/download-120 ... 4.prg.html

- no scroll support, ie. display is forced to the upper left corner. Cave TEST uses it now and switches to 40 column mode at hatching.
- cave timer with sound on the last 10 seconds.
- debug feature: first digit of the timer turns gray when the cave can not run at the intended speed. This feature can be disabled in the cave set, which will be a switch in the BDCFF compiler.
- adjustable Frametime and Hatchingdelay per cave and level.
User avatar
LogicDeLuxe
Member
Posts: 638
Joined: Sun Jul 15, 2007 12:52 pm
Contact:

Post by LogicDeLuxe »

New version: http://www.file-upload.net/download-120 ... 5.prg.html

- Butterflies implemented.
- Magicwall implemented. Optionally supports waiting for hatching.
- Diamond counter and scoring implemented, including bonus lifes for each 500 points.
- When running on a C64DTV, it supports custom colors and can also emulate Atari colors. Currently, A1 has original BD1 Atari colors. I4 has BD1 Cave D colors from Atari and Cave TEST has the Colors from BD1 Cave B from the Atari. C64 colors are always included and Atari or native DTV colors are optional.

Amoebas are not implemented yet, though they are both placed in Cave A1. They do nothing on their own, but the Butterfly can explode on them.
The lower wall in A1 is a magicwall (which is activated right at the start in some levels). The timer is set to 15 seconds.
User avatar
LogicDeLuxe
Member
Posts: 638
Joined: Sun Jul 15, 2007 12:52 pm
Contact:

Post by LogicDeLuxe »

New version: http://www.file-upload.net/download-120 ... 6.prg.html

- All 16 colors usable as brickwall. Only limitation: it can not be combined with any background color, but only the first 8.
- Exit open flash when you have collected enough diamonds.
- Bonus life effect with flashing border and sound.

Cave TEST has all 3 foreground colors chosen from the upper half, to show this possibility.
User avatar
Arno
Site Admin
Posts: 2826
Joined: Sat Mar 17, 2007 2:26 pm
Location: netherlands
Contact:

Post by Arno »

Great work!! :D Especially the 16 brickwall colors and the noscroll mode... Can't wait to build a game using these features!

For the sounds, I honestly prefer the originals... The start of the cave, falling diamonds and falling boulders sound very different now. And the explosion sound is interrupted by other sounds like walking or boulder falling.
User avatar
LogicDeLuxe
Member
Posts: 638
Joined: Sun Jul 15, 2007 12:52 pm
Contact:

Post by LogicDeLuxe »

Arno wrote:For the sounds, I honestly prefer the originals... The start of the cave, falling diamonds and falling boulders sound very different now. And the explosion sound is interrupted by other sounds like walking or boulder falling.
Yes, there is still room for optimizing things. I think, I can handle explosion sounds differently with a higher priority to make sure that they can play a little longer.
User avatar
LogicDeLuxe
Member
Posts: 638
Joined: Sun Jul 15, 2007 12:52 pm
Contact:

Post by LogicDeLuxe »

New version: http://www.file-upload.net/download-121 ... 7.prg.html

- Sound priorities. From highest to lowest. Extra life > magic wall, amoeba and disolve effect > Explosions > all the rest.
- Amoeba and amoeba 2 implemented. With optional explosions when touched.
- Full live counter and game over. Intermissions with instant life and/or reward life included.
- Loader for passing the names of intro, title, enemies, cavepack and highscores to the engine. (not included in the download).
- DTV support optimized. No more flickering on high foreground color 3 (cave TEST).

In this version, the first cave is an intermission with reward life. It also shows both amoebas in action.

After game over, the menu will appear once coded. For now, just press restore to start a new game.

Known problem: Pressing RESTORE too rapidly will garbage the gfx. About once per second is fine, though.
User avatar
Sendy
Member
Posts: 186
Joined: Sun Jun 17, 2007 10:33 pm
Location: Square Wave Heaven
Contact:

Post by Sendy »

Amoeba would be nicer in Wall colours, no? Also, I don't like the Monolith graphic, it doesn't fit with the classic caves, but this is probably all irrelevant since you can use your own graphics, I guess...

Having both dirt types at once gives a nice organic feel... I'm thinking in particular here of dig-dug where there were different layers of mud. Looks good randomly mixed together as well. Having more aesthetic choices is fun.
Watcher Kitty is always watching...
User avatar
Sendy
Member
Posts: 186
Joined: Sun Jun 17, 2007 10:33 pm
Location: Square Wave Heaven
Contact:

Post by Sendy »

Will we have a choice between the classic random distribution and the new 32-bit one (which is really cool I have to say)? Perhaps on a per-cave basis? More options = good.
Watcher Kitty is always watching...
Post Reply