Welcome to BattleBonk

Developer's Blog

2022.11.14 20:37 UTC+0

Greetings, it's been a month since my last blog entry, and I am not making any progress with BattleBonk. I removed my 'progress meters' from the main page and I've decided I'm going to shelve the plans for Leaderboards and the accompanying anti-cheat code.

The work involved to create effective Leaderboards is just too large in scale and I'm losing interest as a result. It also doesn't help that several aspects of the work that needs to be done are untested in practice/real world scenarios for me, so there may be many technical problems I can't even forsee right now. This makes the whole thing more daunting since many hours of work could be lost on assumptions/theories I have about how I believe the overall architecture should be.

Since I set out to make Leaderboards, I have had a number of other ideas which I want to try and implement, both creative and new game mechanics. I'm not going to abandon the work I've done so far though, which was largely restructuring the existing game code, and further modularising elements. In real terms, it means I will stop building the parallel deterministic game code that was required for Leaderboards/Anti-cheat, and repair the random generation code that the game has always used.

Whilst I've been building the deterministic game code over the past few months I have been keeping in mind the overall game code, with the intention of making allowances for entirely new game modes. I'm interested in pursuing both a Creative/Survival mode, similar to Terraria; being able to harvest blocks and build with them. Also a Story mode of sorts, with hand crafted levels arranged non-linearly, something like CastleVania: Symphony of the Night, or the original NES Zelda.

Basically, it'd be interesting to move away from the arcade/horde game modes that are currently available. There are a bunch of new features I'd like to add to the existing modes as well though.

The Leaderboards were entailing a vast amount of work, and while I recognise what I've listed above is no different, they are challenges focused on JavaScript rather than both JS and PHP (the PHP work was going to involve a tough learning curve).

At the end of the day, I am doing this for fun, and whatever idea it is that takes my fancy - I'll pursue that - rather than railroad myself into one thing that's boring me.

BattleBonk is sleeping, it's not dead. Unlike what all the FUD'ers on /biz/ say: DogeBonk lives too, and here to stay. The DOBO communities and the token's transactional activity speaks for itself.

Stay bonkin', dobros. Finally, RIP Shitposters Haven.

2022.10.14 12:13 UTC+1

Greetings, I'm way behind on the work I had planned but it is progressing. Besides the reasons stated in the previous blog entry (which now trouble me far less), the bulk of the slow down is determining structural/design decisions in the overall coding.

Trying to make BattleBonk capable of both predetermined and randomly generated games is more challenging than I expected. In principle it's not that complicated but actually restructuring+coding everything and tying it all together is a large task.

Getting there though, but there's still the even larger task of writing the PHP anti-cheat code, and to make the feature manageable I'll probably design a web front-end for myself too.

At this rate the planned work isn't gonna be completed by the end of this month as I first projected, I'm wary about even suggesting a completion date before Christmas now. I will keep toiling though.

We just enjoyed a nice October 13th birthday for DogeBonk; we already had a birthday earlier this year marking the date the contract was born, but this one was for it's rebirth on /biz/ where it truly revealed itself to the world and saw an influx of trade. Was good vibes with the dobros in TG communities, cheers everyone!

Till next time, frens.

2022.09.20 15:48 UTC+1

Hey dobros, I'm going to just be honest: I keep getting blackpilled and losing the motivation to work on BattleBonk. Spending time building a 'computer game' of all things sometimes doesn't feel like the best thing to be doing with my time.

So for a couple of weeks now no work has been done but I feel like I can finally resume it again today. I was in such a great mood in my last blog post coming back to BB and I got 3 or 4 days work done, but then that mood/motivation just vanished after one bad day.

Let's see how far I progress this time.

2022.09.01 00:11 UTC+1

Greetings dobros, I basically took a break from everything DOBO for roughly 2 weeks as I had basically burnt out.

Since yesterday I've been examining the state of BattleBonk; thinking about where to take it, what features to add (if any), and which would be most beneficial for the game while also being considerate of time required to implement them.

Today, I nearly concluded that the Web3 Wallet integration + Online Leaderboards that I started on weeks ago might need to be scrapped: I'm tormented by the thought of cheaters ruining any 'online'/competitive feature I might take the time implement.

However, I think I have devised a new anti-cheat solution that will make it sufficiently difficult for unscrupulous actors to cheat undetected. It's currently largely theoretical with little code produced but it basically shifts tonnes of authority onto the server, resulting in player actions in a given game being heavily tracked and scrutinised.

I don't want to implement this 'as standard' so I will probably add a toggle to the main game screen where players can choose an Offline or Online state before playing any game mode. So if you want to participate in the Leaderboards (submitting your game scores), you'll have to ensure you have internet connectivity (probably only required at the start and the finish of a given game; to be determined).

It's going to take quite a while to implement (many weeks) and there's still some elements to the whole design which I've never done before which will need experimenting with/testing, but I'm confident it should come together.

So BattleBonk is the focus again. I'm sorry the Meme Generator is abandoned but... well, I guess I'm also starting to think I was mistaken about there being a 'demand' for one, so as it stands, perhaps my time isn't best spent working on it after all.

If people want to tell me otherwise though, it would be encouraging; I will juggle both going forward if it's worthwhile to do so.

Long live DogeBonk. To the moon, no horni *bonk*, 50B Prophecy, etc.

2022.07.18 19:38 UTC+1

I'm taking a break from working on BattleBonk to pursue another Bonky project!

Since the 'mysterious' fall of the Meme Generator (originally hosted by DogeBonk.com) I haven't seen another developed to replace it.

I'm convinced there is still a need for one; the utility of having one far outweighs what BB could ever provide, so I'm going to give it a go. If the original generator is magically resurrected, or someone else delivers one before I complete mine, I will likely continue developing mine anyway to act as a redundancy tool.

BattleBonk's in a pretty good place right now anyway, and as much as it'd be nice to complete the Leaderboards/Web3 integration, it feels like a Meme Generator is a more important community call to be answered.

The url for my Meme Generator will be App.BattleBonk.xyz. I will deliver stable alpha updates whenever they're ready.

Catcha later dobros.

Note (2022.08.01): I removed this blog entry for at least a week because I had a retard moment, and finally remembered to republish it. I've also added messaging on the main page again to indicate that my current focus is the meme generator.

2022.07.04 17:23 UTC+1

Greetings, a new BattleBonk update is being released today!

This has to be one of the worst development cycles I've ever endured with BattleBonk. Missed loads of release targets, didn't get as much work done as I could of with the time available, and generally it just feels like a flop. I've addressed some of the reasons for the delays a couple of blog entries back, but another I didn't mention is as follows; I'm not confident about the PWA deployment.

I can get BattleBonk to a 99.9% state of stability, but I feel like my PWA is less than 90%. I don't want to mess people about who take the time to install my game, only for me to deliver them a dysfunctional PWA experience. I've just done more work on it today as I realised there was a 'website approach path' which I hadn't covered and could result in a wonky update procedure.

At this point, I think I'll just have to risk it. It seems the behind-the-scenes data management is fine so I can't fill-up user devices with 10 different versions of BattleBonk, but I fear the update process could fail even though it works very well for me. It'll just have to be battlefield tested with an official release.

As I mentioned previously, this has been a long but patchy dev cycle so there might be some changes that aren't in the patch notes. It's a pretty boring update overall really, no new game content, but Webby is introduced along with the PWA, so hopefully I've managed to craft a nice solution for at least maintaining the game going forward.

Next on the agenda is the development of online Leaderboards; a much needed game feature! Btw, -I know-, the storage and display of local high scores/game stats still isn't implemented. I have a week of solid free time and I don't want to waste it working on UI/data management to support that when I could be doing online leaderboards instead - local highscores/stats will come some day though, so you can at least compare your offline gameplay performance against prior play-throughs.

Fingers crossed this release goes smoothly. Laters dobros~

2022.06.20 21:48 UTC+1

Greetings, I once again feel obliged to at least write a blog entry because BattleBonk PWA still hasn't been released as stable.

This past week has been rather awkward IRL-wise for getting much coding done (Father's Day, and a crap set of slavewage shifts). Since yesterday, and for the next few weeks, it's finally back to normal and coding is well under way again.

I also haven't gone stable with the PWA for a couple of reasons: there's a lot of code work/tidying I want to do to make the PWA release reasonably polished. At this very moment, I'm changing the way Keyboard input is handled for system screens (it's long been awkward to code keyboard shortcuts to navigate menu's). Also doing some 'detail' work with the uText objects that make up the text on Buttons so Keyboard shortcuts are auto-generated for Desktop users, but isn't for touch screen users as it's redundant.

It's coming along well but the detailing does take time, and I'm trying to get it as close-to-correct first time so I don't have loads of dysfunctional buttons or UI problems to return to and repair. Such changes are also kinda tedious to implement but there isn't many Navigation menu's in the game currently so it's a good time to do it. This also helps with implementing dialog screens; to add Yes/No messages when users try to Quit/Resign games. The Quit screen is now more like an Options screen, and for a moment I thought of removing the Pause screen as a result but it may be beneficial to keep it as, effectively, a simple 'Lock' screen without loads of buttons.

Also some other stuff to do; add volume buttons to Quit screen for mobile users, add factory default button to Keyboard Remap screen. It'd be really nice to (finally) add an extra screen when selecting Horde mode so the player can choose the stage they want rather than be dished one at random, will try to get that in.

Anyways, 'Codings back on the menu, boys!', it's now coming along again and I appreciate the continued patience. I've blown past my Late May and Early June release estimates, at this rate it will be Late June now (a week or so).

So it's good to be bonking again, dobros! I'm also enjoying producing the odd meme or two on the side, which I'm pushing out via my Twitter! *Bonk*

2022.06.14 01:17 UTC+1

Greetings, a blog entry to explain what's been happening lately with BB development; several things came about lately which practically halted development.

1) I experienced a bit of general burn-out, I had been coding a lot for several weeks and it finally took its toll. 2) I was getting caught up A LOT on some complicated (it is for me anyway) XHR/LocalStorage/Web GUI code and it was really grinding me down every time I worked on it, it was very frustrating to try and make progress. 3) I think I needed to sate some creative impulses and do something different too, so I made a couple of DOBO related meme videos and stuff, which was fun! 4) I also just took it easy for a while and dossed about a bit.

I finally overcame the coding issues this evening; the Web GUI now operates basically how I want it by fetching data and loading from cache as required. It's undoubtedly not perfect, but damn, it's close enough. Now, finally, I can pursue the creation of the Leaderboards - I couldn't move onto this until the Web GUI was sorted. Not because it depends on the Web GUI functioning, rather because I just couldn't 'let it go', I couldn't start work on something else whilst leaving it in a half-working/incompleted state. So the past week I kinda ended up in a bit of a jam, but I'm past it now, thank goodness.

Because the stable release still only has the crappy original TSC prototype, I think I will resolve a couple of outstanding game bugs that are particularly bothersome (items falling through the floor when dropped, and an issue of uDynamic entities sometimes being double-loaded into the _gi.ar_uDyn array), and then deploy the dev build as stable. It's been held back for so long now that it's getting kinda silly.

It'll be nice to get back to a bit of game code and away from the HTML/AJAX type stuff for a while. Anyways, on a separate note, the crypto market is doing a kamikaze act with BTC at around $22600, while DOBO has dipped under $0.000000004. It's brutal times but my plan is to just hold. Time to sleep, take care dobros!

2022.06.06 22:35 UTC+1

Greetings, it feels like progress has slowed lately (reading this back afterwards: what a wonderful opening line to the blog entry, kek). I don't think it's burn-out from excessive coding but rather I'm venturing into new code I've never handled before so I'm having to learn new ropes (such as learning some PHP, and handling 'new tools' like XmlHttpRequest's in JS). The PHP stuff is server-side processing and I'm trying to grapple with how to handle debugging when things go wrong, as the console logging errors are again novel to me, and it can't point me to specific lines of troublesome code like JS can most the time.

Nevertheless, the new web interface to unify the Desktop and Mobile experience is getting there. PWA Updates are being recognised and installed perfectly, besides 1 hitch today which I'm not sure what happened... but it seems to have been a one off, an oversight somewhere on my part when deploying no doubt.

Not really much to say. It's not particularly exciting for me at this point but I think I should do a minor pass on the Touch Screen Control code; I recall the sprint/jump/bonk buttons aren't snapping together, don't know why, but it ideally needs fixing.

Now I've dipped my toes into PHP (for dynamically serving HTML content to the new web interface) I'm quite eager to look at creating an online Leaderboard after this. Before I started working on the TSC I did a quick test for Database connectivity and it was a green light success, and I've done some database work before, so I think I can whip together something in reasonable time. It would be without any anti-cheat detection efforts though, as that'll involve working with the still-new-to-me PHP for server-side interrogation of game data.

Indeed, it would be incredible to deliver an official BattleBonk PWA release for desktop and mobile WITH a functioning online Leadboard - that would be a serious milestone - to finally engage mobile users with a stable release, and have everyone able to share their scores after playing.

Once the PWA is officially delivered, and Leaderboards are done - and every thing seems stable - I'll likely return to regular BattleBonk development. I've been thinking for a while now it'd be nice just to randomly generate various DOBO memes into the Stages - that would be quite easy to do and spice them up a bit.

Ya, that's pretty much it for now, catcha later dobros and keep the bonk alive.

2022.05.?? ??:?? UTC+1 (I forgot to write the date and time when I posted this, just amazing)

Greetings all, the Mobile edition currently in the development channel is coming along well overall but I'm struggling with getting the website service worker to complete Game updates properly. I obviously don't want people to have updates half completed and the game breaking, or requiring total reloads of the PWA to get updates to take effect. It's a stubborn bit of kit!

Apologies to anyone trying to play the Mobile version, I'll push a stable version out as soon as I can safely do so. Also, I also want to see about making a "trackpad" style movement button for Cheems (as an alternative to the current octagonal arrangement of buttons), like the movement control you get in Roblox.

Anyway, back to coding!

2022.05.16 18:18 UTC+1

Greetings all, it's been a little while so thought I'd jot a few words down here, I'm tinkering around with the website a bit today anyways.

Been occupied with some other things IRL lately, social and work related, so not been able to focus so well lately. Some time ago (Sunday 8th), I had a fantastic day working on Touch Screen Control (TSC) code for BattleBonk, hammered lots of good hours in and produced a tonne of functional code. It was messy, but it was dealing great results. I've done a lot of tidying/improvement on it since of course, but it was exactly what I needed to get going on the mobile-front.

Speaking of mobile support, I've also got a PWA compliant bit of code set-up for BattleBonk! It's a web standard I didn't explicitly realise existed but is something I've used before without knowing it (Gab use it for their social media app). It's a hybrid website/app standard; allows you to add your website to the icons on your mobile screen (Android or iOS), and you can use it offline, and also have it fullscreen. This is perfect for BB too, and it's working great in my closed testing.

I'm really excited about it as I might not ever have to spend loads of time coding/developing a Play store or Apple whatever~ store compliant app. I haven't gone live with my PWA version though because I need to get the TSC in a better place first; it'll be pointless to ask people to try and play it with poor/incomplete controls. I also need to do some graphics work so the game window isn't stuck as only 1280x720px, because it's very cramped on a mobile screen; it is kinda painful on the eyes with such a canvas size. This resolution is larger than nearly all Viewports featured on mobile phones by some margin. Currently I'm able to make it fully visible on my phone with viewport modifier code via TSC buttons, but Cheems is 'microscopic' on the screen doing it this way, so this issue has to be resolved by making the canvas adapt its size (and the relevant UI items resize/reposition too).

I hope by the end of the month to have BattleBonk Mobile ready-to-deploy. This is easily the most requested 'feature' for BattleBonk, which I totally get; mobile gaming is a big market these days. I hope I can finally deliver something usable for everyone who has been hoping and waiting for it.

Tonight I'm realising there's more aspects to consider/make accomodations for. To give you an rough idea what is entailed I just released the patch note preview, plus my 'to-do' list. There is a bit involved!

Well, I will keep going at it! Laters~

2022.05.03 11:48 UTC+1

Happy Birthday DogeBonk! Today's a big day, and I hope everyone enjoys themselves! I'm not gonna be about most the day due to IRL responsibilities, but despite the big patch 3 days ago, I've had enough time to throw together a bit of Birthday content.

When I think about the BattleBonk code I had only a month or so ago; this wouldn't have been possible to create in just a few hours. What I have managed to produce - seemingly bug free - is quite satisfying. And indeed, for a short time only you can regain health just by blowing Cheems' birthday party horn (key 'B' default), and why not! It's just a bit of fun :D

Have a great day everyone!

2022.05.02 23:24 UTC+1

Hey bonkers, it looks like the latest big release was received well, and the website saw a nice bump in traffic, and a lot more consistant too. I used to be a bit wary about spreading the word about BattleBonk in the past because I didn't want it's unpolished/underdeveloped state to deter people (first impressions and all that), but the game's starting to look quite respectable now.

Regarding the traffic, a big thanks to the official DogeBonk twitter account for announcing the release, that almost certainly helped drive some traffic and newcomers to my neck of the woods. I loved the response in DogeBonk TG chat as well, you bonkers are the bestest~

I'm really tired, but I really wanted to say thank you. I also want to mention I'm releasing another micro patch now, I rather embarassingly used the replace function in Visual Code too aggressively and ended up turning all references of DogeBonk into CheemsBonk - silly me - this is now repaired, as is a Mob/uDyn coding mistake.


2022.05.01 18:44 UTC+1

Greetings bonkers, today is a big day for BattleBonk with a great update released! There is a lot of changes in this one, both gameplay and behind-the-scenes engine work.

We have our first framework for handling multiple stage instances, and a method to transition between them (including using Events for audio/visual fades, input control, etc). There's also now a stage data module that contains relevant meta-data, including stage width, height, name, type (combat/vendor/simulation) and id/subId properties which lend additional granularity to work it (some crossover in their current usage, but it'll be useful down the road). This quickly played into the realisation I could remove the hard-coded limits of the Parallax system and define custom amounts in stage data; opening up the possibility for stages of almost any width.

Honestly, there's actually just too much to write about right now that I won't sink the time into this blog post, hehe. I will let the patch notes convey the changes, I think they are sufficiently detailed.

There is one thing that I must address though, and that's the choice to implement script obfuscation. This is the first time I've done this, and perhaps it'll raise some eyebrows, but there's a few reasons for it, the major one being as follows:

I intend this year to introduce a public scoreboard, and a feature like that ramps up the temptation for people who are inclined to cheat, to then do so. I know code obfuscation isn't perfect, but I believe it'll play a role in mitigating the speed and ease of cheating. It'll also help to introduce this now after having done 'major engine work', as v1.1.1.0 source is notably different to v1.2.0.0.

So that's something I'm looking forward to pursuing. I hope my PHP turns out better than my JS though, otherwise it's gonna be a really challenging journey, heh.

I hope bonkers everywhere enjoy this new update!

2022.04.20 00:24 UTC+1

Greetings, I've been a lil' busy IRL lately but nearly every free moment I have I am enjoying spending it on BattleBonk. Got a really nice build coming along, I have never minted it so much, it feels pretty sharp right now.

I've updated the unreleased patch notes. I almost released the current development build as stable a couple of days ago, but then I realised Mob movement around ladders was irritating me, and there were issues with mobs being stunned and failing to show the correct status in the overhead healthbar. Those issues are now resolved.

I've decided I'm going to 'keep' what I have so far (although I am transparent in the patch notes) as I'm currently working on some content injection, and besides having a really smooth game for people to play, I want there to be new things to play with too. Not gonna lie, I love building, I love the coding, but once the framework is built I don't tend to be as interested in creating content for the framework. With the game working so nicely right now I've got a taste for adding some content without feeling like there's problematic fundamentals lingering underneath. The new content is nothing super special but it will make stages more interesting to play on - some additional nice but minor gameplay elements.

I just had fun playing the current iteration of my development build anyways; Horde mode was awesome to play, and the new coin drop rebalance, combined with the new items, and the lowered BonkWave shop price, it all makes it more accessible and fun to play. I want people to have fun playing my game too, and I've been finding it wasn't fun to not earn enough DOBO in-game to actually buy the BonkWave (which is so cool to use), especially when 25% of your DOBO is lost on death now. But it's now balanced out better, and DOBO coins are flying off mobs everywhere - it's great! I don't think the next eventual release will disappoint~

I don't intend to hold back this release much longer though because it's been a while since the last update, and I've got another ~dozen bug fixes in -- besides the awesome new stuff like the Cheems 'sprint' mechanic and new/expanded item ranges. So... I think 1.5 weeks maximum. I will release by 1st May at the latest.

Thanks for reading, and speak again soon. Bonk!

2022.04.14 15:16 UTC+1

Greetings once again, just a quick blog entry to say I haven't keeled over and died, and that BB development continues. It's moving at a somewhat slower pace, but it is continuing. I'm trying to maintain the unreleased patch notes list so it remotely resembles what I've been working on.

The work into Instancing is going well. I didn't realise it would affect so many parts of the code though; I'm having to work on xBuild (previously xStage) and xAudio to accomodate the changes, and Stages are receiving their own object to store meta-data to directly support instance switching.

A lot of re-engineering to get it all to sit together properly as it's adding more complexity, but at the same time more flexibility too. It'll be worth it in the end~

Keep HODLing and bonking fellas!

2022.04.04 17:28 UTC+1

Greetings bonkers, it's been just over a week since I last touched based.

Since the last big release, and the following patches to resolve many bugs, I've been taking a lighter pace with BB development. I have still been tinkering with the game though, and in quite a significant way.

I mentioned in the last update I was going to butcher the code by changing how all the major data arrays are managed, and I've ended up doing just that, and working on it at a leisurely pace since it's broken a lot of code and I want to get it fixed calmly and cleanly. Honestly, although it's interesting for me to pursue, and despite it opening up an additional exciting angle for the game - it's perhaps an angle I may never actually get around to truly exploiting. I'll explain~

In the current game there are two stages that the player can visit at any moment: the Main stage where battle unfolds, and the Shop. I've been using global variables (_blocks, _ladders, _mobs, _items etc) to store and manage all the relevant stage objects. When the shop was entered, all the Main stage arrays were simply copied to a series of similarly named xGameData properties, and then the globals are cleared for the Shop to be built. When leaving the shop, the Main stage gets reloaded into the globals, and since the only aspect of the shop that can change is the items laying around in there, that array would simply get moved into the xGameData Item cache for later recall. It's just a back-and-forth juggle of data arrays.

It was reasonably effective with only 2 lots of Stage data to retain and recall, but I was starting to encounter errors where remnant graphical or event data were not being cleared properly when exiting the game, which resulted in game breaking errors. These could be remedied with specific lines of code to ensure their removal, but going forward, these could increasingly become troublesome band-aids. It seems the correct way to deal with this problem is to create a new object which stores an entire Stage 'instance', the instances of which can then be alternated between as required.

So that's what I'm doing, and the 'exciting' avenue this ultimately opens up is the ability to have as many instances as I want, potentially multiple stages could be loaded at once which Cheems could travel between, or multiple doorways to different shops/scenes on the same Main stage. I don't think it needs to be said though: it's been 5 months of building this game and I only have 2 stages (more like 1.5 really, one of them is terrible), and a Shop without a shopkeeper. So this work might be redundant in the long run, but who knows what the future holds! I'm just glad the latest stable build is finally pleasant to play...

With all the above said, game updates will be quiet for at least a couple of weeks whilst I toil away. Before I started gutting the code, I did a little testing for another exciting and much needed feature: an online scoreboard. I've experimented with the absolute basics: getting database connectivity, and it works. It's a big job though, especially as I'm unfamiliar with PHP, but damn, it'll be worth it to introduce a competitive angle to the game.

I've had a fellow bonker suggest Telegram Game integration (Cheers BonkYe West!), but unfortunately, just like many other things I'd love to do, it's a big job due to the need to resolve controller integration. It seems rather on par with producing an an Android/iOS app -- both would be great for game dissemination, but both also have deterrant learning curves/time costs involved. Maybe by Christmas these targets can be achieved!?

Keep on bonking, dobros!

2022.03.26 17:56 UTC

I'm not a big fan of bug fixing sometimes, especially when it involves the collision system, but I spent a few hours on it yesterday and I finally found the fraction of code (1 erroneous condition inside an 'if' statement) that was preventing mobs from properly descending through ladder secondary gates. Finally, mobs will now properly descend ladders with more than two exits (which is currently only seen on the 'Under the Surface' stage, with the central ladder featuring 3 exit points).

A lot of other fixes in, I honestly didn't realise just how bad it had gotten. I mean, I made a lot of changes in the previous update, and in all the testing I did I never encountered any game-breaking bugs. I've been playing it again lately though and oh boy, there's some real balls-ups in there.

Anyway, a nice quality control update - order is being restored. Today, I'm considering butchering basically all the game's main data arrays and containing them in a 'respawnable module', but before I go ahead with that, I'll release this patch first. I have a tendency to get the game to a good place, and then immediately rip it's guts out again. Not this time!

I decided to name the new Bonking code which was introduced in the previous patch: "SmartBonk". The addition of SmartBonk is a big deal for the combat mechanics of BattleBonk given how poor they've been since inception; it plays a crucial role breathing more life into the gameplay. I recognise it does punish combat unfolding on staircases though, or at angles, so in the future I will do more work on it and probably make it so the player is not punished for having the higher ground.

I've only realised a short while ago, and to my great shame, that the Bonking sound has stopped working; only the 'Bonk Miss' sound functions. Wow. It has been fixed. After re-introducing the sound I noticed it stands quite sharply against the other SFX so I've lightly modified the 'shape' of it to bet less jarring - I hope this isn't too blasphemous...

Thanks for following and playing fellow Bonkers, till next time~

2022.03.22 14:15 UTC

Greetings bonkers! This new Official build has been in the works for ages and there's so many cool things to mention, and I haven't been writing down notes like I normally do. New bonking mechanics; you can't hit mobs through blocks, and partial block coverage reduces damage to the Mobs - and it's the same with block damage being fractional and distributed.

New Physics: Objects reflect off walls, objects have momentum, objects bounce when falling to the ground, some Decor (lighting specifically) is now added to the Collision system so you can bonk them about.

New Mob mechanics: Experience 2 and 3 mobs can spawn rarely and randomly, featuring increased health and damage ouput, and all mobs of all kinds now have slightly different health pools - so combined with the new bonking mechanics, everything takes damage at slightly different rates.

The new death animation has come along quite well, although not fully realised creatively speaking (I want Cheems to drop his bat on death, then only to have another one fall down on him from the light above, hehe). It was always quite jarring to respawn elsewhere (and have the whole stage parallax move) in a split second the very instant Cheems dies, so now it's an eased transitional event (using the new Event system!). I need to add stage transitions by using fades as well, but that's not super urgent.

Oh, and I mustn't forget: there is now a prototype keyboard remapping tool so you don't have to be stuck with the keys I have long been forcing you to use.

Lots of new stuff, I'm really happy with it. Still noticed a couple of oddities during my campaign but I did play it to the end with no serious glitches, so after making some small corrections, it's time to go live with it! Look forward to a sprint button (and a sprint meter) for Cheems in the next update - it's become clear to me that it'd be a great addition!

Bonk bonk!

2022.03.16 18:35 UTC (Constituting 4 Weeks-worth of notes)

Note: This blog entry will likely read rather erratic, but it was commentary/notes compiled since roughly the middle of February; attempting to catalogue many game modifications. These notes attempt to address/highlight any notable/controversial changes.

The new update has officially dropped featuring the new UI and Collision system!

As I've said before, I've done a lot of work on the more invisible elements of the code the past 2 weeks. It's been long and difficult, and after so much code tinkering there may be some changes I've forgotten to document in the patch notes. If they come to mind later I'll make patch note ammendments as necessary.

The Bonkalot buff finally received a much needed tweak. The problem being is you can almost entirely circumvent the bonk meter by tapping the Bonk key rather than holding it down, and this made the bonk-meter largely redudant. The game is about bonking though and it felt very punishing to discourage that tactic when I programmed massive bonk-drainage for bat swings. So the solution was to have the BonkRegen also halve the time interval between possible swings, and I'm pleased with the result.

Since the start of the year, the idea of adding a platform which could be passed through from underneath and from the side, but not from above, was something I was eager to put in and now I finally have: the Shelf. Perhaps comically, the operation of the shelf doesn't rely on the new Collision System, and actually uses a watered-down version of the old system, but the simplicity of it's operation lends to it fine. I haven't re-designed and added them into the main stages, but I have added two invisible shelves into the Shop, so you can stand on the Bar counter and the Bar's (literal) shelf.

I finally coded the long overdue 'Active buff' list into the UI; whenever temporal or quantity oriented buffs are consumed, a square list of tiles are organised by time-remaining in the top right of the screen. The Triple Bonk buff never had a visual indicator which rather made the item unnecessarily mysterious when players consumed it. I'm conscious the instruction as to what items do in the game is still very lacking though, but for now, I will continue to rely on the out-of-game BattleBonk Tips nav bar to cover this until I find an effective solution - perhaps converting the Beginner campaign with pop-up messages when collecting items.

I should also address the removal of the Insane campaign: it was a fan request long ago to bring it back - shortly after the first time I removed it. I'm afraid it's time for it to be permanently removed though. Even with the revision I gave it, the play time to completion was still at least 5 hours, and while BattleBonk continues to mature it was no longer appropriate to retain. The infinite waves in Horde mode now takes its place in offering a game mode for an extended playtime.

Some time ago I specifically coded the shop to close during Intervals (e.g. when a wave or level is completed and the countdown timers begin). I'm not sure why I made that change if I'm honest, it was a bad choice. If anything, during the downtime between fights, the player should be able to take a breather and enter the shop to re-equip their inventory if necessary. So to correct this, the shop will now be toggled open to ensure access inbetween waves.

Regarding the freezing of the Game Timer in the shop, this further complements the previous issue discussed: during game intervals, the player can go in the shop and consider it a safe haven. Re-equip as necessary without a countdown looming which would otherwise eventually trigger a new wave or stage change were you outside the shop. The CountDown timer will turn cyan to indicate it's frozen. The Wave Timer will continue to tick over in the top right, but for the moment in the current games design, this is purely just a statistic/metric to monitor how fast you are spending in a given Wave (the Wave Timer includes the buffering intervals either side of the active wave too).

There's still some balancing and tweaking to be done for this one; but a brand new type of item has been added to BattleBonk! The Bonk Wave, a proper temporary weapon upgrade! The specification is elaborated in the patch notes. I've had this weapon upgrde idea for weeks now, and I decided to make it a priority to spice up the next release. Honestly, I think currently it's OP but it's hella fun; used in combination with the Bonkalot buff, you can shoot many Bonk Waves through entire crowds of mobs and tear them up, it's awesome. I hope it's well received!

Perhaps the most controversial change I've also introduced this patch, is Lives for the player. It's a bit of a game changer; no longer do you have to critically manage your Health bar the same way, because you may be able to fall back on an extra reserve Life.

Keyboard Input just received a notable revision; previously key presses in a lot of circumstances would only trigger when the key was de-pressed, now everything triggers on the initial press. Hopefully should lead to a more responsive gameplay experience and UI environment.

Another bonus from the overhaul of the UI work is being reaped: buttons now highlight by tracking the mouseMove event! Simple thing I wanted to have for quite some time, finally got around to implementing it whilst dealing with the new Keyboard Input handling.

The old W&W II Ironsword shop doorway has been removed, and a slightly more visually appropriate (and suitably sized) door now generates utilising decor blocks. Might as well note these decor blocks are a little special as they're the first to use id/subId properties, similar to what I used for Overlay objects. I had to introduce this so I could directly access and modify those specific blocks so to synchronise the change of their colour along with the door sign. Well, I didn't *have* to do that, but it looks better!

Just added smarter Mob Jumping AI, they now determine the highest point in there block-based obstacle scan and select a suitable iGinc to surmount it more cleanly. I can already see in 'The Old Castle' they are far more neatly ascending up the stairways - much better!

Just removed all-but-one of the process wasteful ForLoops that have been sitting in xCheems.Update() for months now: they flicked through the _blocks, _mobs and _items array to detect relevant collisions and process them. Now, with the latest Collision system working well, the initial checks for these game-related events (like Cheems bonking Mobs, or bonking Blocks) are now residing in the appropriate CD.MobHandle(), CD.ItemHandle() and CD.Loop_Blocks(). It's great when everything starts to come together!

Also made behind the scenes changes to how the visual indicators for Buff's are handled. Originally there was a pQueue() entity which contained the relevant rectangles, text and image to build those 'buff tiles' in the top right, but they were packed in a seperate array, with a nested array of UI objects -- it was just a giant mess. Now the uBuff entity itself creates all of those graphics (inserting them into the Overlay UI array) and handles their positioning, modifications and eventual removal.

With the way things are going with the UI/Graphics side of things, at this rate it will all get condensed into one single array, without requiring the recently added concatenation - which I will mention next! I recently changed gameUpdate() to branch off with a seperate canvasPaint() function which contains the concatenation of all arrays containing graphics. This paints all objects in a custom order (using a ubiquitous iZ 'Layering' property for all entities), which finally overcomes the issue of getting all the graphics to layer-upon each other in the correct order (e.g. maybe you want decor to appear in front of Doge, but it wasn't straight-forward to accomplish by hard-coding the order the arrays themselves are looped through).

This is becoming a giant wall of text. I doubt I've even addressed everything I'd like to address that I've done, but hopefully it is illuminating for those interested in what I've been doing.

BattleBonkers, I feel the best is yet to come~

2022.03.14 14:09 UTC

I released a new experimental build in the usual place. I made some alterations to the existing mobs, they're a bit tougher with mildly variable health pools so they aren't as predictable to deal with.

They also now come in Experience II and III varieties with double and triple the amount of health respectively, and enhanced attack power. The Experience III BTC mobs with a frenzy active take off about 25 health, so fairly dangerous!

Items, and to a lesser degree Mobs, now bounce when landing on platforms if they gain enough fall speed. It was enabled for Cheems as well initially, but I noticed while jumping across the platforms in the Shop that the bounces nullify attempts to jump (you aren't allowed to jump when a gravity modifier isn't Zero), so I've disabled it for Cheems for now.

The bouncing was taking effect even after just a normal jump; that is, if Cheems doesn't bonk his head on a ceiling. Everything is capped to a 20px per frame fall rate, and it appears the final frames of a regular jump on level ground meets that cap so every jump resulted in bouncing, which in-turn interferes with player requests to jump again.

It was a fairly quick implementation, so I need to do some work on it again: it'd be nice to have it for Cheems too, if the fall is great enough, or I code it differently to allow jumping during bounces.

Shop door was resigned to match the stage, and the background blocks that compose the door frame also change colour with the shop's open/close state.

Finally, Cheems has a death transition scene, the first type of Event to enter the game. I created a new global array which stores 'uEvent' objects, which are intended to control scripted moments; whether it's graphical fade in/outs to transition between screens, or to animate special in-game events, where player control is likely briefly disabled.

Last thing; keyboard remapping tool is now available on the main screen. It might be easy to break it if you try weird things with it, so go easy on it!

Laters Bonkers~

2022.03.07 22:56 UTC

Just a quick blog entry: Work continues, been more distracted IRL recently so have lost some focus on BattleBonk. At the moment I'm trying to clean up some new bugs from all the tinkering I've been doing, and from all the new little features I'm putting in.

Overall, it's coming along nicely, and the new development build I put out a little while ago on the Experimental page I think speaks for itself, I hope folks are enjoying it.

The unreleased patch notes have been updated, but due to bugs I'm currently trying to work out, I have not uploaded what I have to the experimental page.

Catcha later, Bonkers~

2022.02.22 20:48 UTC

Greetings, I wanted to throw out a quick blog entry just to break the silence. I said in the previous entry I was going to push a new release 'very soon', but then I thought: besides bug fixes and largely unnoticable background work, there wasn't any interesting new content to speak of. So I decided to add something nice to sweeten it up a bit.

Well, here we are another week later, and the sweetener is basically done: a new projectile object has been created and incorporated to form a proper weapon upgrade. Trouble is, I've just found myself once again looking at the new CD (Collision Detection code).

It's been just over a week since I finished the new CD; I'm comfortable with it in principle because it is working really well, but now the smoke has cleared and I can see the chaotic mess it actually is. I crammed all the Mob AI requirements and special Cheems control requirements in, and it has become very wasteful with repetitive For-Loops which can be handled better.

The general order of unfolding events in a given frame needs revision too. For example, I've noticed for a while now that some bat swings don't always connect with mobs, I believe this is simply down to the ordering of method calls. Reshuffling them could cause undesirable ripple effects that'd need correcting.

So I've decided I'm just going to keep working on it a while longer until I'm really satisified it will deliver a solid gameplay experience. There are also more Mob AI improvements I'd like to make, and I can't just keeping adding Loops everywhere to check the presence of Blocks, so this is disrupted by the chaotic code too.

So, boring stuff I guess (apart from the new weapon ugrade), but I think the quality of the game will rise a little bit more with this TLC. I'll post the patch notes as they currently stand now and mark it as unreleased (obviously subject to change), so my fellow bonkers can take a peek at what's coming.

Will speak again soon dobros~

2022.02.13 21:07 UTC

Greetings, 'bout time for a blog update! The re-engineering of the UI took 4 days to complete, squash bugs and polish off (with some small visual changes/enhancements too). Another 5 days just went into creating a whole new Collision system, and although it was a bit brutal at times to overcome, it's now basically done.

The old collision system received 7 revisions in it's life time, but never a full replacement. The old system was predicated on allowing all entities to move inside blocks, and then attempt to correct them, and clean up the messy position. This approach contained since inception a bug (among many others) where if you stood within 8 pixels of the left or right edge of a platform, you'd get pushed off, as the Collision code thought you were walking into the side of the block you stood upon. This particular bug was largely indiscernable, but nevertheless present and a particular irritation of mine (7 revisions and I couldn't squash it).

The new collision system operates by gathering all requested movement data (climbing, jumping; all horizontal and vertical requests), determining the new position that it would lead to; identifying the blocks that might conflict that new position, and make alterations to accomodate their presence. There will no doubt be edge cases still, but it should be much more difficult for entities to insert themselves inside the borders of blocks now.

To my relief, the seperate function that constitutes Items integrated quite seemlessly with the new Collision code too. I seperated them when items were first introduced, and ever since I had to manage two seperate Collision codes - and tbh I failed to properly do that, it frequently got left behind. Now, just like the Actors (Cheems and mobs); items should no longer glitch through ceilings or walls like they commonly used to.

With the UI and Collision overhaul completed, I can finally get back to producing content! I'd like to inject the campaign modes with serious content - that is - a goal that isn't only "bonk everything that moves". I reckon I have some great ideas on how to expand upon the gameplay that are also 'crypto-thematically' very sound.

I feel like we've gone through another brief content drought with all the behind-the-scenes work, so I think it's time to return to the content and hit it hard.

I will probably push the new UI and Collision changes (along with some other bug fixes) out as an official build very soon, will drop an update here and in the Telegram when it happens.

Keep on bonkin' dobros~

2022.02.04 22:11 UTC

Greetings everyone, I decided to bring that blog back after a month because I kinda missed doodling my BattleBonk thoughts down. For anyone that is interested in the game, I like to do it to explain the changes I make, as well as what I'd like to work on next/idea's I have.

For nearly 2 weeks now I've fallen back into BattleBonk development -- I took about 3 weeks off and it really helped. I'm refreshed, I'm eager to take on the big scripting jobs again, and it cleared my mind from the roundabout 2-month straight development streak I initially put in.

I transitioned from Alpha to Beta labels with the release of v1.0.0.0 a little while back, after having spent a lot of time doing behind-the-scenes work on structural elements of how the game operates (like wave/level transitioning). A lot was also done relating to general data handling; all campaign specific data is now loaded as a seperate object into the initial game object, rather than a gigantic intertwined mess. Honestly, it was difficult, and sometimes painful to re-engineer all this stuff, but it's put the game in a much better place to grow.

What I thought was cool was loading all wave data into it's own array too. This way everytime a new wave begins, a 'Wave data' object is pushed, and simple operations can be done to add up multiple Wave data objects for Campaign/Level statistics, or only detail an individual wave. This actually resulted in each Wave having its own timer too rather than just relying on the main timer in the top right (which is now playing a direct role in Wave/Interval transitions) to more accurately calculate the time spent playing.

Speaking of re-engineering, that's what I'm doing again right now. This is all an obvious sign that my game was pretty poorly coded, but considering I started developing BattleBonk with an almost non-existant JS experience, this was all bound to happen anyway; I'm constantly learning and improving.

The aspect I'm re-engineering at the moment is the Graphical Overlay; it will all be modularised as objects stored in one or two arrays (the underlay might get it's own too, but the job of the underlay pales in comparison to the overlay). If it didn't give me some perks I might not be going through this trouble, but by having Buttons and UI elements (like Cheems' health bar, inventory etc.) as stored objects, I can reference them from anywhere in the code to manipulate their layout positions/displayed data.

Anyways, I released a small update (v1.0.0.1) to fix bugs with block destruction. I've got some other bug fixes sorted too but they're now part of the code I'm absolutely butchering, so bare with me, more fixes and game mechanics/content will come in time!

Thank you as always for your interest, BattleBonkers!

PS: I recently noticed how ugly my website displays on a mobile phone. Honestly, I want to fix it but it's just another HTML/CSS timesink taking me away from the game, so it will just have to remain that way for now.

2022.01.09 19:40 UTC

Greetings Dobros, I hope everyone is doing well.

I've taken a week off developing BattleBonk and caught up with podcasts/telegram and things. I'm not sure how much I have left in me to continue developing this game.

The reality is, my website receives very little traffic - I suspect half the traffic is just web crawlers and things. Whilst I was very content creating BattleBonk just for my own fun, I feel like I'm reaching the natural end stages of it's production. I do still feel an urge to work a little more on it, and I'm sure I will, but I think it's going to be a scaled back time investment.

I have some fun idea's to make the shop, the campaigns and the wave system either more interactive or interesting. If the passion re-ignites while I'm tinkering with the code, then I will try to build it and of course share it.

For the 100th time, I will also try to create new ultra-wide stages to beef up the campaigns; I think the prototype I made was too cramped and actually too detailed to play in, which is fortunate for me because it should mean a lower time investment requirement for stage design and building.

Anyway, I'm probably talking into the void so whatever, if you are here playing the game: thanks for giving it a go!

2022.01.03 20:35 UTC

I built the new stage. It revealed a couple of bugs pertaining to collision detection in items, and in actor movement. Fixing them shouldn't be too much trouble.

I thought I was going to be thrilled to finally play a new ultra-wide stage but I'm actually rather apathetic about playing in it. Either the stage is just bad/boring design, or I'm burning out on the game.

The new stage can be played on the test page here if you are interested in seeing it. My immediate take-away's are that it is perhaps too cramped in places, and maybe going for finer detail in block arrangements (rather than more straight lines) is a bad move.

The game's not finished but I think I need a bit of a break, I'll probably reduce my time investment for a while. Perhaps more thoughtful time about the game and less coding is in order.

The game 'engine' is basically built, so perhaps tinkering more casually with content to inject would be a nice alternative (new buffs/items etc).

Thank you for following the game this far, there will be more to come.

2022.01.03 00:09 UTC

Rushing out this bug fix update with a few other things I managed to throw in. I'm just gonna say right now: tomorrow, at minimum, I will build the existing stage, even if it's the last thing I do. All the mobs end up running around the bottom because the stage is crap for the new stage-scrolling.

I've added tips to the top of the Game page; some information there is temporary until I introduce in-game visual indicators/text of selected inventory items/active buffs etc.

The bug involving items not being moved with parallax is for now resolved by another change elsewhere. Parallax resetting, with Cheems being moved to the centre of the screen when a Level ends was sudden and disorienting, so sorta two birds one stone. I'll properly clean up the parallax/item movement problem another time.

The rest of the patch notes are fairly self-explanatory.

2022.01.02 16:16 UTC

Just so it doesn't look like the game/development is dead, I just wanted to post and say it definitely is not. Many hours still being ploughed into BattleBonk, got some amazing game changes in the pipeline.

I've already mentioned in the DOBO telegram that Ultra-wide stages are implemented (and bug free as far as I can tell, woot). To explain, the game canvas is 1280x720, but the stage can scroll up to 640 pixels to the left and right, so the effective stage size will be 2560x720. Since that has been successfully introduced, I might also add vertical scrolling too, to effectively add... probably 720 pixels in height, but it's not high priority.

I've also added what I term Stage-folding, which means Cheems' and mobs (and items) can move off an edge of the screen and re-appear on the otherside, so hopefully you'll feel even less restricted whilst playing. It's not possible to bonk mobs through the stage-fold, but I have provided indicators to forewarn you of mobs near the stage-fold; so you aren't pressured to blindly walk through and potentially appear on top of them.

Another arguably fascinating feature for a game of this nature (I guess it's slowly discovering it's nature) is destructible terrain. Nearly all platforms are allowed to be destroyed via cheems bonking them repeatedly. If a platform is smaller than 40 pixels along both sides, then it will be completely destroyed when enough damage is taken. If it's longer than 40 pixels, it will either break into two, leaving a 40px hole in the middle, or you'll break away 'the end' 40 pixels of it which you are 'targeting'.

Block health is basically scaled around the pixel length of the longest side of the block. This feature is implemented and could make for some interesting/game-breaking(?) gameplay, so we'll see how this goes.

Lastly, I've already devised code to randomly place Decor blocks and Mobs (it's all similar code), and I think I will add random 'debris' in the same manner. Everytime a stage is loaded some additional pre-defined smaller blocks/block piles are placed around the stage. This way, the stage is unlikely to ever present itself the same way twice, and may even result in blocked passages where you'll need to bonk some blonks to clear the way!

So these changes only somewhat recently went onto the Wishlist (adding destructible terrain is a very recent idea), but I prioritised them because I want to make a game that's hopefully novel and unexpected. I have no desire to stop at just a barebones bonky platformer game.

So all these changes aren't released yet; I'm playing with the idea of re-launching the game with these features (and ditching the 'alpha' developemnt label), along with some other visual candy/extra mobs/special mob attacks, to suitably fill-out and 'mint it' for an overall better feel. To get all that extra work done will take a while though, at least 3 weeks I for what I have in mind, and I don't want to leave the game standing cold for too long. I'll ponder my orb about this decision.

Late edit: Well, the site upgrade went horribly wrong so the aforementioned changes, along with other changes and bug fixes, are live now anyway :)

Another Edit: I typed this up the other evening to explain some of the changes, dumping it here;
Stage destruction; this will no doubt receive a lot of tweaks in the future, in extreme circumstances I might even remove it if it adversely affects gameplay too much. I like the idea of malforming most the terrain, especially the smallest blocks being easily destroyed. Makes things interesting, hopefully open up some interesting strategies on the stages. I'm strongly considering adding small blocks that drop from mobs, so the player can replace/add blocks, again, for interesting strategies.

Cheems' and mob health bars have been scaled up; this lends well to the detail of various damage values produced by frenzied/non-frenzied mobs, the bonk-rate meter affecting damage dealt, and so forth. For the most part, everything was roughly multiplied by 10 so the mobs largely feel the same, until you really get swinging with the bonk key held down. I know repeatedly hitting the key circumvents the bonk-meter, this requires some consideration...

Cheems' fall rate was reduced firstly to prevent him from glitching through platforms when I switched from 30 to 20 pixel platforms depths (collision detection limitation). I think this slower fall-rate is better anyway to play with.

Shop items are no longer cleared out in Horde mode: if you desire to play Horde mode (endless gameplay until death), then I think even a 1 in 10 chance of the Shop items being cleared out when it closes is harsh. Mob drops have been reduced, and the shop doesn't always sell health related items. So if you are playing Horde mode, you can hoard all the items you want in the shop - they won't be arbitrarily deleted anymore.

ShopGoods: All items for sale in the shop have had their prices changed. In-line with the coin spawn changes listed here, this is to help re-balance the currently silly monetary system.

Coins: The values are still the same, but to rebalance the monetary gain a bit, only large coins can drop on mob deaths now. It was too easy to accumulate DOBO and buy loads of buffs.

2021.12.30 19:47 UTC

Greetings, development continues with hours being poured into BattleBonk most days. Got some great changes on the way, a mixture of completion requiring testing, near completion and early work.

This update is starting to feel like a milestone. Behind us now is the original vision of BattleBonk, whilst ahead of us, the next update has awesome feature additions which I hadn't even considered until fairly recently. To quote Simon Lane, "It's like a whole new game~".

2021.12.26 17:24 UTC

I hope everyone's having a Merry Christmas, I know I am! I've finished the overhaul of this page, now it's less wall-of-texty. Added some notable new wish list items surrounding stage mechanics; I'm excited to be getting on with those soon. Still early days for the next patch.

2021.12.22 00:07 UTC

The Shop has finally arrived! Now you can spend your hard earned in-game $DOBO bucks. The following details the operation of the Shop:
• Randomly generated limited quantity for each of the avaiable items, which in-turn are also made available by random generation.
• If an item is in stock, and Cheems has collected sufficient $DOBO to cover the price, bonking the display item will spawn a real item on the counter for Cheems to pick-up.
• The Shop will consistantly open and close every 30-90 seconds; this is one of two mechanisms designed to mitigate item-hoarding inside the shop.
• Campaign Mode Operation: The shop goods will refresh every new Wave, and any and all loose items will be cleared with every new Level.
• Horde Mode Operation: The shop goods will refresh every new Wave, and to mitigate item hoarding: there is a 1 in 10 chance it'll be cleared of any and all loose items every time the Shop closes.
• Click the Speaker icon in the top right of the screen (or press 'M' key) to un/mute the Shop music.

To be totally honest, I'm not thrilled with this update. I encountered a lot of resistance trying to make a couple of 'simple' changes due to the way I've coded actors, and due to how _blocks/CD is processed.

On top of that, I'm starting to see glitches appearing in mob movement, which means the tiny tweaks I've been making to actor.collide() (the collision system for cheems and mobs) appears to be upsetting the order of things.
Which means I'm going to have to go back into it and sort it out. In the process of tinkering with it the past week I've noticed at least one segment of code that seemingly does nothing useful, but I'm leaving it in for now in case it does actually do something.

I won't get down about it though, the game is still coming along well enough, but I think I need to start doing some significant maintenance to eliminate as many glitches in CD as possible, and allow for some new mechanics to be added without adding logic absolutely everywhere. It might be that splitting the actor function up into a Player and a Mob function will resolve issues, and I will just have to maintain similar pieces of code.

Finally, there's a whole load of stuff I want to write about to explain the patch notes for this one but it's late, I have a headache, and it's not really important in the grand scheme of things anyway, hehe, so I'll leave it all for another time.

2021.12.19 01:00 UTC

Throughout the week I haven't done much work on the game as I took a bit of a break from it, but I have been thinking about it and how to proceed forward/resolve existing problems. I did spend a little bit of time on graphics work actually, experimenting with some 'artistic styles' that I might be able to use to good effect. (Not gonna lie, no one has come forward to volunteer graphics, so I must toil! It's kind of a relief to have artistic control anyway)

But today's Saturday and I've spent all day working on BattleBonk, a combo of graphics and coding efforts. This next update is turning out to be a major thematic overhaul. The buff items which I introduced in last weekend's update (are supposed to) look like candles from a trading chart, and like BattleBonk was always supposed to be, the thematic overhaul continues along this line.

The Super Mario Brothers 3 clown-world stage edit will be gone, the soyjak mobs will be gone. The new stage background will effectively be a TradingView chart, and I will design several stages with this theme but probably different colour schemes to try and keep it fresh. I have BTC, ETH and SHIB mob graphics completed and coded in.

I don't think it'll look terrible, but it won't be state of the art either. There's not really a lot going on with a trading chart so it's easy to replicate it's basic elements. In fact, I'm making the _blocks (platforms) generate their own colours and will no longer be 'hard drawn' into the background image, so making platform adjustments will be easier, and I could even have platform changes occur during gameplay!

The background itself will be multiple alpha-enabled layers of PNG too. It's currently beyond the scope of this update (and I'd say my current scripting abilities) but stage design is being broken down enough that it opens the avenue of randomly generated stages.

I have also spent longer than I care to admit on designing a Shop background; I've decided a shop will be accessible in each of the stages. The doorway to enter the shop will randomly generate on a suitable platform, and inside the player is safe to purchase items with in-game DOBO - activity unfolding back on the regular stage will be frozen in time.

Anyways, that's a bunch of spoilers I guess, I'm hoping to have something to show for it by end of tomorrow but the graphics work is adding another layer of time-expense, though I suppose the majority is done at this point.

I'll leave an update in the Telegram chat when it's out!

2021.12.13 23:19 UTC

Okay, get this: I've never programmed a game like this before and given that's the case - and I'm just gonna toot my own horn for a bit here - BattleBonk is fukken' awesome. I think so anyway, I'm super pleased with it.
I spent all weekend adding content and tweaking/fixing things, doing quick test-runs and then straight back to coding again. Today, I just sat and actually played my game on hard mode, and although I died on L5 W1, it was overall sufficiently compelling (with no glitches that actually adversely affect the experience).

I had to consider the buffs I had collected, and the available buffs scattered around on the stage to determine which mob engagements would be reasonable to engage in. I ended up dying to a mob that decided to drop from above onto me rather than jump the gap before it, but it didn't feel unfair.

It's just a bit surreal I've managed to get this far, and I hope there are at least a few people enjoying playing, pleased with the new features, and the general direction the game is heading.

In recent times a member of the BattleBonk team helped me procure a new custom stage background and it looks amazing. I fear I will butcher it adding platforms and stuff though - I've just been attempting exactly that today rather than coding. I hope to have a new stage for players to play on within the coming week or so.

As this game is taking up so much of my time and with the code continuously growing (and readily available in the page source to 'take'), I decided to add a license to my code and have opted for the MIT License.

Last point to make; I will overhaul this page when I get time and divide it into several sections because it's growing into a wall of text..

Oh, very last point to make: the price action of the real DOBO coin has recently dipped under 0.00000008. I've only been trading crypto since around late 2019 but I feel like the past couple of years have prepared me for this time: that is, to endure hard times with diamond hands. I've not sold at all, and I have strong faith (but not blind) that DOBO will very likely prevail in 2022, the DOBO community is just that fukken' hench, warm and funny, and can't fail in enticing the masses.
We can all see BTC is all over the place lately, and in a way it's comforting that DOBO's current price action would be related to greater crypto-market forces, which is currently flailing around. So don't get too down about it; spread some DOBO memes, join in with the Telegram or Reddit chats (see links in top right of page) and perhaps play a bit of BattleBonk ;)
(Disclaimer: My crypto asset musings are not intended as financial advice)

2021.12.12 23:32 UTC

An incredible weekend! Got loads of work done on BattleBonk, finally moving it in the direction I hoped for without much resistance from JavaScript.
Got item drops in, got buffs working, got cheems inventory in, got mob 'anticipatory' collision detection in so they jump up onto upcoming platforms and avoid dropping off high platforms (although still influenced by a randomness so not predictable).
Please note: I made quite a few small tweaks to mob movement (around ladders and things), it looks like everything is okay but be forewarned of any more strangeness than usual. Also, sound effects for items picking/using/dropping. Also, display current buffs that are active in overlay.

Since actually creating the base game, this feels like the first big content update, and I'm really pleased! I might say more on this latest update later, for now, it's getting late and I just want to push the update out as it seems really stable for me. Hope it's fun and not too buggy!
Note to self: Consider item expiration timers so the stage isn't littered with items.

2021.12.11 17:38 UTC

The last 5 days have been a bit rough; a lot of other IRL stuff got in the way of properly working on BattleBonk. With the exception of Christmas looming, the next couple of weeks are going to be a lot better for me to focus on it.

I introduced a new Endless Horde mode which I initially wasn't prioritising but a fan of the game asked so I did my best to deliver. Please note, the calculation that determines the threat level of a new wave is pretty dire right now so take it with a pinch of salt.
Cheems can now only bonk 1 enemy again in Standard Campaign, and now 2 enemies in all other modes; the previous 3 at once ended up being over-powered when combined with the new bonk-striking distance. This remains subjects to change, especially when item drops arrive leading to weapon buffs.
Made some other changes to the Victory/GaveOver screens, like showing game mode victory-specific messages, and showing total time played.

Lastly, and perhaps controversially, I've deployed a bonk-rate reducing mechanism which punishes the player for just holding down the attack key. I'm not sure I like it, but I'll roll it out for public testing because previously there was nothing to discourage the player from running around with the attack button held down permanently, as the fixed rate of delay between bonks wasn't that much of a deterrent.
It's one of these changes that seems a good idea to make the gameplay more thoughtful, but perhaps it diminishes the overall fun?

The code is starting to increase to a size where testing is taking longer because of various eventualities, but I'm trying not to allow silly mistakes like which was delivered in the last update: where the main menu said Insane Campaign was accessible by pressing 'Y', which was the same Key as the Hard Campaign, and in fact, no shortcut key was even assigned to the Insane Campaign. Rather embarassing!

Feedback is welcome via my telegram (see top-right corner in handy links). I want to roll-out soon a new stage mechanic soon that'll probably shake-up existing cheesy gameplay strategies...

2021.12.08 12:56 UTC

Okay, I don't like it but I'm admitting defeat, for now. I refuse to let the game go stale any longer over the fact I'm too inept to code touch screen controls. A single touch works fine, but it keeps going wrong with multiple touches, and troubleshooting game issues that arise on a phone via a computer is killing my soul. For now, BattleBonk will remain the preserve of the desktop/laptop domain.
I'm keen to return to the game and make improvements; that, I know I can do.

2021.12.07 22:45 UTC

I'm still battling with the touch screen controls but been busy slavewagin' lately. There seemed to be a lot of interest in smartphone support, so until I resolve that actual game development will effectively be on hold.
If DOBO moons tomorrow I can retire early and just work on the game, so CAM ON DOBO!
What's this update about? A fellow dobro asked for the original demo campaign, and I had the spec still in my backups and it was easy to add, so here we are.

2021.12.06 01:03 UTC

I have surprised myself and made great progress this evening adding mobile device web browser support (didn't think it was going to be possible, how ignorant was I?). I'm looking into the TouchEvent system and the HTML Meta Viewport controls; very useful stuff.
It's making my canvas buttons - which I almost wrote-off - work properly on my mobile device. It currently supports only one touch at a time but I'm referring to Mozilla Dev pages to properly implement multi-touch.
I'm hoping I'll have it done within a few days (I have other distractions to contend with in the week). Will report back soon.

2021.12.05 20:45 UTC

The issue with mouse clicking on the canvas appears to be resolved. I needed to subtract the offsetLeft and offsetTop values of all ancestor elements of the game canvas from captured mouse event coordinates (in getButton()); I was only subtracting one of them.
In addition to that problem, while the Brave browser developer console was open for debugging, it was causing the page elements to shift around due to auto margin. I kept getting thrown off course with different values.
I believe it's all fixed now...

2021.12.05 16:27 UTC

Congratulations to Antonio for winning 1st prize in the DOBO Community BattleBonk competition! Also the runner's up in 2nd and 3rd place; Sol Lull and Ludwik Ludwicki. It's incredible you all took on the (now obsolete) demo campaign and reached Level 10, which contained 1 Wave of 512 mobs - an absurdly high order - and I'm actually glad most of you didn't try to beat it.
I can only apologise that I never tested it properly for myself, and as a result it cost you so much time trying to beat the game; it's what prompted me to help increase the size and spread of the prize fund, so you could be rewarded for your heroic efforts.
It's worth noting there was a glitch where the Game Over screen didn't have updated Total Kills/Total Points (only the intermission screen did), this was properly accounted for when declaring the competition winners.

I got a lot of feedback that the game is generally too difficult/unforgiving, the latest v1.02 changes try to address this issue by increasing the striking distance, and up to 3 mobs can be struck with one bonk rather than just 1 mob at a time.
I've introduced two difficulty modes which affect the number of mobs per wave and level, and how many can spawn at a given time.
The new hard campaign now has a total of 356 mobs that will spawn, compared to the old demo mode which was a crazy 1856.
The revised Hard mode has not been tested to completion but it's flexibly coded and should respond with a victory screen like the standard campaign certainly does.
In the future, I want to move away from 100% random mob spawning to a weighted system where Easier modes produce less speedier/tougher mobs.
My original plan for the game was also to feature a Horde mode; where the player could take on infinite waves of mobs -- effectively something like the old demo campaign (it's unfortunate that's basically what it was).

I also heard that the game is thematically not where it should be at and I'd agree. The soyjak mobs are placeholder images (as is the background too), I inserted them so while I was game testing I didn't have to look at rectangles moving around.
You could argue I shouldn't have released the game until the graphics were more suitably completed, but given how everything's panned out since going public with it, on balance it's been worth it.
I'm in touch with a very helpful Dobro who is assisting with procuring some professionally produced graphics.

Again, in line with fixing game theme; I decided to change the Points earned into 'DOBO earned' (disclaimer: not real DOBO!), but in the future I want to make coins drop from mobs which cheems must pick up to earn the DOBO instead. I think tasking the player to kill and collect things would be a good change.

Finally, on a website related issue; JavaScript (game building) is proving easier than the CSS and HTML (presentation). I tried to implement some touch buttons for mobile device support but interacting with the buttons on a phone just results in the screen moving around and zooming in/out.
It's all a bit troublesome because I'd prefer to get on with developing the game, but I know mobile is king so I'm not going to discard the platform. I will continue to look into this.
Some people have mentioned configuring it into an app for Android/Apple store distribution; I only have brief experience in android app development, so right now it would be too much to take on.

Thanks for coming along for the BattleBonk ride and trying the game out, the comments I see on Reddit and in Telegram are really encouraging me to keep improving upon it!

2021.12.04 16:54 UTC

Much to my surprise and delight, BattleBonk has been used for a Telegram community event, but it is also a misfortune for me as I never coded a final victory screen! I didn't think I'd have to worry about it for a time as I presumed interest in the game would be low, and rather than keep the game in closed-testing for much longer, I decided to go public with it.
Thankfully the game is difficult enough it wasn't a problem.

Cheems gonna bonk