forked from irmen/bouldercaves
-
Notifications
You must be signed in to change notification settings - Fork 1
/
FAQ
56 lines (40 loc) · 17.2 KB
/
FAQ
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
Boulder Caves+ Frequently Asked Questions
=========================================
Q: What is Boulder Caves+?
A: Boulder Caves+ is a Boulder Dash clone/remake written in Python 3 and based on Boulder Caves v5.7.2 by Irmen de Jong. Essentially, it's a Boulder Caves fork that offers many bug fixes and mechanics improvements compared to the original, making the game closer to the reference Boulder Dash rule set implementation, and is also the first Boulder Dash remake to offer compatibility with Krissz Engine, a closed source, limited access online engine made by Krissz. A conversion tool is bundled with the game to aid in converting caves from Krissz Engine for use with Boulder Caves+. Boulder Caves+ also comes with an improved and bug-fixed Boulder Caves editor, renamed to Construction Kit for consistency with other BD engines, that allows you to design your own caves or edit the existing ones. Boulder Caves+ also has a simple UI-based graphics launcher to simplify setting the common game options.
Q: Why was Krissz Engine chosen as a target for a clone implementation?
A: Krissz Engine represents the current generation of actively maintained Boulder Dash clones and boasts a database of over 15000 unique caves with many brilliant design ideas implemented in a time span of 7 years (as of 2021) by some of the best Boulder Dash cave designers, which, in my opinion, makes this engine a highly important one. It is also an unquestionably high quality engine with traditional Commodore 64 style graphics and with many interesting features that are harmoniously integrated on top of a standard Boulder Dash I/II rule set core and extend it in unobstructive and believable ways that do not contradict the fact that you're still playing Boulder Dash and not some other puzzle game. At the same time, unfortunately, it's also one of the most closed implementations of Boulder Dash in existence, being a closed source engine running on an online-only service with restricted access. The engine author appears to be very protective of the exclusivity of these caves to the engine, and it is possible, albeit not certain, that the service may intentionally be designed in a way that hinders possible export. The only export options available in the engine are essentally screenshots, taken from either the Construction Kit or from a cave preview image, with some of the elements not represented in full (e.g. the inbox, the outbox, the magic walls are not visible on the cave snapshots or semi-cloned caves). Due to all the outlined circumstances, not only are a very limited number of people aware of the existence of the engine and are able to access it, there is also a concern regarding the long-term perspectives for the engine, as it's unclear what would happen if its author decides to shut down the website at some point in the future, or if the service is shut down for any other reason, possibly beyond the author's control. Several people started building up collections of cave images from Krissz Engine for preservation purposes, as documented on Arno's Boulder Dash fan forum, and Arno himself also makes regular videos of some of the best caves to document this experience. All of this is a good and commendable effort, but in the long run, unless Krissz plans to publicly release the cave database and possibly the engine source code when the online service is closed down, years of hard work by multiple devoted fans of Boulder Dash will be at risk of being forever lost to history, with little to no way for the possible future generations of Boulder Dash fans to experience this amazing work except through Arno's videos and possible image-based recreations. Boulder Caves+ aims to attempt to prevent this unfortunate outcome by providing the fans with an open source engine and a conversion toolset that would allow preservation of Krissz Engine caves in a portable exchange format based on the BDCFF specification through optical image recognition of cave snapshots and cave images taken from Krissz Engine Construction Kit. Boulder Caves+ may also pave the way for more compatible implementations to be made in the future. It will, of course, be up to the cave authors themselves to make the cave conversions and then either reserve them for personal use or release them to public in some form. Therefore, ultimately, the preservation of Krissz Engine caves and their public availability depends on the cave authors themselves, as it should be, with Boulder Caves+ being the first targeted tool and engine in existence (but possibly and hopefully not the last one) that specifically targets Krissz Engine compatiblity and can aid in working towards this goal.
Q: What platforms does Boulder Caves+ run on?
A: Similar to the original Boulder Caves, Boulder Caves+ is cross-platform and was tested to work on several different Linux distributions and on Microsoft Windows 10. It should also run on MacOS with relative ease, but wasn't tested on this platform so far due to the inavailability of the platform to the developer.
Q: What are the minimum system requirements for Boulder Caves+?
A: Speaking of the low-end hardware that performed relatively well with the game and may be an indication of what the minimum system requirements are, Boulder Caves+ was tested to have acceptable performance in most tested caves on an overclocked 2 GHz Raspberry Pi 4 B+ with 4 GB RAM. Except for very big caves with a lot of dynamic objects, it was possible to play the game in either 60 fps or 30 fps mode in full screen without needing to turn on many (or any) optimization options. Therefore, any relatively recent (5-7 year old) PC with a midrange CPU should be able to play Boulder Caves+ with little to no difficulty and without any limitations. The weakest hardware the game was tested on was a Raspberry Pi 3 with 1 GB RAM. The game was rather playable with standard-sized (40x22) or smaller caves (intermissions and mini caves) in 30 fps mode, but would grind to a halt and even hang on bigger (e.g. 60x60, 80x80) and "busier" caves, even with all optimization options enabled. It's not clear whether it was due to the CPU performance or the lack of RAM or both, but pretty obviously, Raspberry Pi 3 does not make a good target for playing Boulder Caves+ unless you only plan to play simpler and smaller-sized caves.
Q: What software is required to run Boulder Caves+?
A: In order to run Boulder Caves+ on your PC, you need Python v3.6 or newer installed, and you need the following libraries, all of which can easily be installed using Pip, a command line Python package manager that usually comes bundled with the modern Python 3 versions or can be installed from your software repository:
* Tkinter (may come bundled with your Python 3 installation)
* Pillow (or PIL)
* Synthplayer
* Miniaudio
Q: I played the original Boulder Caves and it was quite slow and buggy. Is Boulder Caves+ going to suffer from the same problems?
A: Boulder Caves+ is a heavily modified and partially rewritten version of Boulder Caves, with multiple bugs and optimization issues from the original fixed. While it may have its own share of issues, it's a different project and you shouldn't expect the same problems or the same performance as the original Boulder Caves. Due to the heavy rework, the original Boulder Caves should not be taken as an indication of how Boulder Caves+ will play or perform. Therefore, you're advised to give Boulder Caves+ a try and see if you deem it playable on your machine or not, regardless of what experience you may have had with the original Boulder Caves.
Q: Why does Boulder Caves+ use Tkinter and Pillow for graphics? Wouldn't it be a better choice to use SDL 2 / Pygame 2?
A: Yes, it would have been a better design choice to use Pygame 2.x based on SDL 2, which is faster than the Tkinter/Pillow graphics chain. However, the original Boulder Caves implementation by Irmen de Jong uses Tkinter/Pillow, and this choice was "inherited" for now by Boulder Caves+. There are plans to attempt to port the game to SDL 2 (Pygame 2.x), but it's a long-term plan which will only be implemented once other development targets are met. Porting the game to SDL 2 will likely bring additional performance benefits and may further reduce minimum system requirements, but I don't expect major breakthroughs in performance compared to the current implementation, because in most tested conditions, the bottleneck wasn't the graphics display, but the ability to perform a per-frame cave scan in a timely manner, especially in bigger caves with thousands of objects scanned per frame.
Q: What caves does Boulder Caves+ come bundled with?
A: Boulder Caves+ comes bundled with the standard cave set representing Boulder Dash I by Piter Liepa and Chris Gray, which it inherits from the original Boulder Caves. Also, four cave sets that were distributed with the original Boulder Caves (Arno Dash 01, Firefox 01, Sendy Dash 01, and irmen) are still distributed with Boulder Caves+ and can be found under the "BoulderCaves Bundle" category in the launcher. On top of that, Boulder Caves+ comes with several dozen Krissz Engine cave conversions, categorized by author, as a demonstration of the Boulder Caves+ clone engine capabilities and the capabilities of the KrisszConvert conversion tool. These caves are categorized by author in the game launcher.
Q: How do I get additional caves for Boulder Caves+? Where can I find additional Krissz Engine caves?
A: If you're interested in Krissz Engine caves, unfortunately, due to the closed nature of the engine and the website, there is no way to download or export a cave from the engine except for saving cave snapshots and images, and there is no way to access the engine for someone who is not registered at Krissz's website. Therefore, you would have to rely on cave authors who make caves for Krissz Engine to make their own custom exports using the provided conversion tool and then share those caves with the community at various websites dedicated to Boulder Dash. If you have access to Krissz Engine, you can export your own caves or the caves you like by other authors by (semi-)cloning them, editing them to properly have all the elements, then saving the cave image from the Krissz Engine Construction Kit and processing the image using KrisszConvert, a converter bundled with Boulder Caves+. You will also need to manually set the cave properties to match the properties in Krissz Engine. Please check the README file in the "tools" folder for details about how to perform the conversion of your Krissz Engine caves for preservation and use with Boulder Caves+.
A: In addition to Krissz Engine caves, Boulder Caves+ has limited compatibility with various other cave sets stored in BDCFF format - many are available, for example, at Arno's website in the Game Base section. Note that only the "simpler" BDCFF cave sets without any non-standard elements and without any non-standard or "exotic" options will be supported. For example, advanced GDash cave sets which use various custom objects and options will not work correctly and may not work at all. To play these cave sets, please use another engine such as GDash.
* Please note that any caves you would like to use in Boulder Caves+ will need to be placed into the "caves" folder of the game or one of its subfolders. You can categorize the caves in subfolders by author, type, or category as you see fit. Subfolders within subfolders are currently not supported.
Q: Is Boulder Caves+ fully compatible with the New Krissz Engine?
A: Boulder Caves+ is designed with New Engine compatibility in mind as a priority task, and should be able to play many, and hopefully most, caves designed for the New Krissz Engine as of December 2021. However, due to the closed source nature of Krissz Engine, it's challenging to learn about the minute details of the functioning of the engine, especially when it comes to "side effects" and corner cases. Therefore, certain functionality in Boulder Caves+ may not yet match the New Engine perfectly, and as such, some caves that rely on these unimplemented side effects may not yet be completable. Hopefully there are not many cases like that, and it's the intent to flesh out the implementation over time for compatibility with as many caves as would be possible. Please also note that some features might differ slightly or not be a perfect representation of the relevant features in Krissz Engine - for example, infinite scroll is not yet perfectly implemented and is slightly jerky when crossing the open border.
Q: Is Boulder Caves+ fully compatible with the Old Krissz Engine?
A: While Boulder Caves+ is not designed with Old Engine compatibility in mind, at least as a priority task, it should be able to load and play Old Engine caves if they are converted using KrisszConvert using the same procedure as for any other Krissz Engine cave. However, Old Engine, as far as I know, is somewhat substandard in how the cave scanning is performed, which may create unique corner cases in game mechanics that are not standard to other reference implementations, including the New Engine and GDash. I couldn't find any information detailing this difference, and it's impossible to learn about the relevant algorithm because the engine is closed source and there's no Construction Kit available anymore that would allow to design caves for the Old Engine in order to test functionality. As such, if there are caves for Old Engine that rely on this special, unique functionality and the side effects that it brings about, these caves are unlikely to work correctly in Boulder Caves+ and will most likely not be completable. Also, there's very little chance that there will be targeted improvements in this area in the future in order to support these side effects. However, any standard cave that doesn't depend on functionality that is unique to Old Engine should be loadable and hopefully completable with Boulder Caves+.
Q: Is Boulder Caves+ fully compatible with the original Boulder Caves?
A: Yes, Boulder Caves+ should still be able to load any cave or cave set that the original Boulder Caves by Irmen de Jong can load. The only differences you will notice are the fixed bugs and mechanical functionality improvements. If you find a cave set that works in Boulder Caves but doesn't work in Boulder Caves+, it's most certainly a bug that needs to be fixed.
Q: Are there any features in Boulder Caves+ beyond the features supported by Krissz Engine?
A: Yes, on top of being able to work in a Krissz Engine compatible manner, Boulder Caves+ also supports a number of features that it inherits from the original Boulder Caves which allow it to offer extended functionality. For example, caves are not limited to a 4-color palette, and you can use a full 7-color Commodore 64 style palette, e.g. with a unique color for amoeba and slime. Also, you're not limited to a single life or to a single cave per set, you can merge several caves, even converted Krissz Engine caves, into a cave set that starts with 3 lives and allows bonus lives to be earned, and Boulder Caves+ will happily play the cave set in this form. Several BDCFF cave options are supported that are not Krissz Engine-compatible, for example, the amoeba ratio can be defined fractionally, and unpredictable slime permeability is supported in addition to the Krissz Engine predictable slime permeability. Line shift is supported, which is an option supported by, for example, GDash that shifts Rockford to the next cave row when the open horizontal border is crossed. Intermissions are supported in cave sets, which are essentially single-attempt small bonus caves.
Q: Are there any plans to add any custom objects to Boulder Caves+, such as biters, ghosts, and keys, similar to GDash?
A: There are currently no plans to implement custom objects in Boulder Caves+, at least until other priorities are complete to the maximum possible degree. However, some of the simpler custom objects such as alternate fireflies/butterflies, biters, and possibly alternate graphics sets such as the Boulder Dash III style "space" tile set, may be considered for future implementation if time permits.
Q: Is there any way to contribute to Boulder Caves+?
A: Boulder Caves+ is an open source project published in a public repository at Github. Code contributions and improvements are welcome. You are also welcome to start your own fork if you feel the need to, the only thing I'm asking about is that you adhere to the GNU General Public License v3 terms that the project is released under and that you properly give credit to the authors of the original projects, not only Boulder Caves+, but also Boulder Caves which it is based on.
Q: Do you accept donations for Boulder Caves+?
A: No, Boulder Caves+ is a strictly non-commercial, non-profit fan product. Like any other Boulder Dash clone or remake made by a third party, it is my strict opinion that it should not be commercialized in any way, being based on a franchise that does not belong to me or to anyone else in the fan community. Therefore, please do not offer any form of payment for the game, even in the form of a voluntary donation. If you would like to make a donation to the Boulder Caves+ project, please instead consider making a donation to any of the existing charities that you would find appropriate for you. That will benefit many people, possibly even someone who is close to the author of this project, and would therefore be an indirect contribution to the well-being of people involved in the project.