Boulder Dash Forum Forum Index Boulder Dash Forum
The only Boulder Dash discussion board in English language!
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

[Release] BoulderCaves+, a Krissz Engine compatible remake
Goto page Previous  1, 2, 3, 4, 5, 6, 7, 8  Next
 
Post new topic   Reply to topic    Boulder Dash Forum Forum Index -> Games: Remakes
View previous topic :: View next topic  
Author Message
SheepsTooth
Member


Joined: 04 Sep 2020
Posts: 4

PostPosted: Thu Dec 23, 2021 1:34 pm    Post subject: Reply with quote

Hello Agetian,

I just wanted to thank you for the work you have put into this project - it is much appreciated.

I don't get to play nearly as much as I'd like to these days but when I do I shall use your version of the remake.

Enjoy the holidays!
Back to top
View user's profile Send private message
Agetian
Member


Joined: 19 Sep 2021
Posts: 78

PostPosted: Thu Dec 23, 2021 3:19 pm    Post subject: Reply with quote

SheepsTooth wrote:
Hello Agetian,
I just wanted to thank you for the work you have put into this project - it is much appreciated.
I don't get to play nearly as much as I'd like to these days but when I do I shall use your version of the remake.
Enjoy the holidays!


Thank you so much for the kind words! Smile Happy to hear that you enjoy my project so far! Good luck to you and happy holidays to you as well!

- Agetian
Back to top
View user's profile Send private message
Chris Neilson
Member


Joined: 29 Aug 2007
Posts: 33

PostPosted: Sat Dec 25, 2021 6:03 pm    Post subject: Reply with quote

There error at editor

Quote:
PLAYTESTING: saving temporary cave file...
Exception in Tkinter callback
Traceback (most recent call last):
File "C:\Users\Chris\AppData\Local\Programs\Python\Python310\lib\tkinter\__init__.py", line 1921, in __call__
return self.func(*args)
File "C:\Users\Chris\Desktop\Chris Neilson\Python\Boulder Cave\Source\bouldercaves\editor.py", line 934, in playtest
if self.save(gamefile):
File "C:\Users\Chris\Desktop\Chris Neilson\Python\Boulder Cave\Source\bouldercaves\editor.py", line 899, in save
mapline += BDCFFSYMBOL[obj, direction]
KeyError: (<GameObject EMPTY (#0) at 0x190044c8430>, <Direction.RIGHT: 'r'>)

firefly or butterfly direction at editor. whlie playtest or save.



Here map code is
Code:

[map]
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WP.....................................W
W......................................W
W......................................W
W........ .............................W
W........ .............................W
W........ .............................W
W........ ............ ................W
W........o............ ................W
W........ ............ ................W
W..    Q   O      ....b................W
W........ ............ ................W
W........q......    C   B        ......W
W........ ............ ................W
W........ ............c................W
W........ ............ ................W
W........ ............ ................W
W........ ............ ................W
W..................... ................W
W......................................W
W.....................................XW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
[/map]

if there firefly and butterfly direction
Firefly direction: o-up O-right Q-left q-down
butterfly direction: b-up B-right C-left c-down
if space or dirt or etc. is not direction.
_________________
Boulder Dash Construction Kit
Crazy Light Construction Kit
GDash <> XDC-engine
Back to top
View user's profile Send private message
Agetian
Member


Joined: 19 Sep 2021
Posts: 78

PostPosted: Sun Dec 26, 2021 7:23 am    Post subject: Reply with quote

Hi Chris, thanks for the report!
It was a little tricky to reproduce, but I think I figured out what the problem was. I released an update which will hopefully fix this Smile If it still persists, let me know and I'll look around some more.

UPDATE (12/26/21): Version 1.1.2 has been released. It's a minor bugfix release addressing the following issue:

* Editor: fix a bug with the direction improperly assigned to objects that can't have a direction in certain cases when RMB-erasing objects.

- Agetian
Back to top
View user's profile Send private message
Chris Neilson
Member


Joined: 29 Aug 2007
Posts: 33

PostPosted: Sun Dec 26, 2021 6:13 pm    Post subject: Reply with quote

Hey. there problem with width or height cave with open border.
Quote:
ValueError: invalid playfield/cave width or height (2-100)


I change the code game.py at line 425
Code:
if width < 2 or width > 100 + self.mirrored_border_size or height < 2 or height > 100 + self.mirrored_border_size:

to
Code:
if width < 2 or width > 100 + 100 or height < 2 or height > 100 + 100:


I playtest the cave went through.


A min/max is 2 - 100 + open border (100).
_________________
Boulder Dash Construction Kit
Crazy Light Construction Kit
GDash <> XDC-engine
Back to top
View user's profile Send private message
Agetian
Member


Joined: 19 Sep 2021
Posts: 78

PostPosted: Mon Dec 27, 2021 7:40 am    Post subject: Reply with quote

Thanks for the report, Chris! Fixed Smile

UPDATE (12/27/21): Version 1.1.3 is released. It's a bugfix release that addresses the following issues:

* Fixed a bug that caused the maximum allowed open border size to be less than what's needed for a map with width/height above 90.
* Converted the slow per-object checks in the editor and cave decoder to faster per-ID checks (only noticeable in the editor on slower legacy hardware).

- Agetian
Back to top
View user's profile Send private message
zsom
Member


Joined: 10 Apr 2010
Posts: 65

PostPosted: Mon Dec 27, 2021 7:47 am    Post subject: Reply with quote

Hi.
I noticed a little inconsistency with the original BD,
the intermission caves are movable here, they move.
In the original BD, the intermission caves stood still.

The cool thing about BC +, as well as Gdash, is the Rockford animation pushing the boulder through.

This is the idea for future releases:
Could Rockford's animations be extended to what they are in "Boulder dashes" by Honz Liepa.

Such a small thing, and it makes me happy.

greetings
Back to top
View user's profile Send private message
Agetian
Member


Joined: 19 Sep 2021
Posts: 78

PostPosted: Mon Dec 27, 2021 12:18 pm    Post subject: Reply with quote

zsom wrote:
Hi.
I noticed a little inconsistency with the original BD,
the intermission caves are movable here, they move.
In the original BD, the intermission caves stood still.


Hi! That's an interesting observation, can you give an example of this? Usually intermission caves are small and I guess they shouldn't scroll anyway, but maybe there's a special case of some sort that I'm missing. At any rate, this should be relatively straightforward to implement, I just need to know what kind of an effect would be desirable exactly, and possibly an example cave where this would manifest itself and could be tested.

zsom wrote:

This is the idea for future releases:
Could Rockford's animations be extended to what they are in "Boulder dashes" by Honz Liepa. Such a small thing, and it makes me happy.


I think it should be possible, but I'm not familiar with "Boulder Dashes", I'd need to look into it to determine what differences are meant Smile

- Agetian
Back to top
View user's profile Send private message
zsom
Member


Joined: 10 Apr 2010
Posts: 65

PostPosted: Mon Dec 27, 2021 1:05 pm    Post subject: Reply with quote

Hi
The intermission caves in BD do not have to be small at all.
Only its upper left corner is visible.
That is why they are stationary.

In BC + it occurs in the built-in game "Boulder dash I".
Back to top
View user's profile Send private message
zsom
Member


Joined: 10 Apr 2010
Posts: 65

PostPosted: Mon Dec 27, 2021 1:09 pm    Post subject: Reply with quote

"Boulder dashes" shows Rockford walking up and down.
Classic BD always shows positions like Rockford goes left or right.

This could be done optionally.
Back to top
View user's profile Send private message
DarkStoorM
Member


Joined: 14 Dec 2021
Posts: 15

PostPosted: Mon Dec 27, 2021 1:46 pm    Post subject: Reply with quote

Agetian wrote:
I just need to know what kind of an effect would be desirable exactly


I don't know what the actual cave size for intermission is set for C64, but I guess it's reasonable to scroll the cave if it's still just 40x22, but filled with titanium wall, the game will see that rendered area is still in an acceptable range (between 0 and 40 width, and 0-22 height).

I can think of two solutions:
- there is an Intermission flag in the cave file, I believe you could just disable scrolling if the current cave is an intermission
- set max cave size if the current cave is an intermission to maximum that is your rendered, visible area (or an actual 20x12 intermission)

With solution two, intermissions can still be smaller than 20x12, the rest of the cave can still be just filled with titanum wall anyway, but the game won't be able to scroll.

I'd personally just toggle the scrolling if the cave is an intermission.

I also don't see anything in GDash source regarding the scroll for intermissions, can't check things at the moment.

---

A bit of off-topic, yesterday I noticed that in GDash, whenever I just hold a movement button (even if Rockford is not moving), my CPU spikes from 2% usage to 25% Very Happy now that's odd.
Back to top
View user's profile Send private message
Agetian
Member


Joined: 19 Sep 2021
Posts: 78

PostPosted: Mon Dec 27, 2021 2:02 pm    Post subject: Reply with quote

Alright, I changed this upstream so that caves that are marked as "Intermission" no longer scroll. With this approach, they can be 20*11 or smaller (even not necessarily filled with titanium wall, just smaller sized) and they won't scroll, but caves bigger than that and marked as Intermission won't scroll either. Please check to see if this is the desired effect. At the very least, it makes BD1 intermissions not scroll in C64 mode. You'd need to download the current master source to test this behavior since it's not yet in an actual release.

I also spent some time today experimenting with the mysterious "lag spikes" that we're experiencing. It's really weird actually. I narrowed it down to the call to repaint() made from tick_loop() - no other call has quite the effect on "dt", which is the delta time between the current update and the previous one. I then started disabling parts of repaint() to determine what exactly did this, but interersingly, no single part seemed to be the culprit. Moreover, even disabling pretty much all of repaint(), leaving only the increase to the graphics counter in, doesn't solve it - it looks almost as if the very call to repaint was somehow "costly" and would take a random amount of time to complete, sometimes taking nearly 500 ms more than at other times. Disabling repaint() completely made the game update timer "calm down" and stop jumping up and down (there were some minor jumps, but within the 0.1 s range, as opposed to 0.2-0.5 s). Interestingly, the game logic update call doesn't seem to have this kind of an effect on things. So, I'm still stumped as to what's going on there :/

- Agetian
Back to top
View user's profile Send private message
DarkStoorM
Member


Joined: 14 Dec 2021
Posts: 15

PostPosted: Mon Dec 27, 2021 2:33 pm    Post subject: Reply with quote

Hmmmm...

Perhaps the delta needs to be updated more frequently?
I can only guess that can be a clue. Updating the delta for cave scanning more frequently with some external timer (to not update the entire game), more than 60 times a sec can result in higher accuracy, let's say update the variable 240 times/s, having 4ms of time difference only for the cave scanner rather than 16ms. This is what I believe can be happening here. There should not be any impact on performance if you run a timer just to update the delta for cave scanner.

Let's say we are playing a cave that has speed of 8fps (125ms per scan)

One tick_loop is 16ms, because you are using floor division (1000 // 60)

So we keep looping every frame, incrementing the delta until it ends up being above 125ms:

16 -> 32 -> 48 -> 64 -> 80 -> 96 -> 112 -> 128 [we run a scan, and we are left with 3 milliseconds]

Next scan:

3+16 -> 19 -> 35 -> 51 -> 67 -> 83 -> 99 -> 115 -> 131 [another scan, and we are left with 6ms)

With each scan you will have to wait for a couple milliseconds more until it eventually gets to this point

12ms + 16 -> 28 -> 44 -> 60 -> 76 -> 92 -> 108 -> 124 -> 140 [new scan]

Heads-up, this is only how I think it works both in BC+ and GDash, haven't tested it out yet.
---

I the end, you could try to find a very close interpretation of JavaScript's setInterval function in Python, maybe that would give some high accuracy updates
Back to top
View user's profile Send private message
Agetian
Member


Joined: 19 Sep 2021
Posts: 78

PostPosted: Mon Dec 27, 2021 3:05 pm    Post subject: Reply with quote

That's an interesting suggestion, DarkStoorM! I'll see if I can implement something like that and see if that would help things.

- Agetian
Back to top
View user's profile Send private message
Chris Neilson
Member


Joined: 29 Aug 2007
Posts: 33

PostPosted: Thu Dec 30, 2021 12:23 am    Post subject: Reply with quote



Hey. Should put black background in popup window.

text got through on right window.


Fix this popup window.
_________________
Boulder Dash Construction Kit
Crazy Light Construction Kit
GDash <> XDC-engine
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Boulder Dash Forum Forum Index -> Games: Remakes All times are GMT + 1 Hour
Goto page Previous  1, 2, 3, 4, 5, 6, 7, 8  Next
Page 7 of 8

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group