User:D414/Diary of a Robocoder

From Robowiki
Jump to navigation Jump to search

26th April 2024

My experimentation with micro sized melee guns is paying off; I've finally managed to squeeze Mirage's amazing gun into a micro! The only (intended) functional changes are switching to Quantum's bullet power selection and going back to a fixed size for bot width as per Mirage v0.1.

So far I'm down to 733 bytes from a starting point of 919 (both without colours).

Results are promising despite only spending 21 bytes on movement to move in an Infinity style box pattern.

18th April 2024

I've started playing around with ideas for an entrant to the micro melee rumble. For now I'm looking at guns and mostly finding that DustBunny's gun seems to give excellent performance per byte and is difficult to improve upon. The next best thing seems to be a good implementation of Circular Targeting but ultimately I think that movement is where the money is.

I should probably turn my attention to finding the most efficient way I can to track enemy state, rather than relying on rolling averages, since the obvious HashMap approach introduces a lot of overhead. I'd also like to see if there's much to gain by switching from a basic nano style radar to something a little bit more sophisticated.

In short, challenging Wallaby for the micro crown isn't going to be easy!

14th April 2024

It turns out that Quantum is rather competetive! It knocked DustBunny off of the nano melee throne for a few days before settling in to second place. It still achieves a 100% PWIN and has by far the best survival score of any nano melee bot (and it has colours!). If I remove the colours I have 7 bytes to play with but I've not been able to find any changes that make a significant improvement. It would be interesting to see how the table looks once Quantum has run a similar number of battle to the other nanos (currently it's at less than 10%) however my rumble client has stopped working, which is a pain. Once we have internet again I'll see if I can get one of my low power machines setup as a dedicated client.

6th April 2024

I haven't had much time for robocode over the last month but I have been able to experiment a little with a nano melee bot, heavily inspired by DustBunny and Infinity. I'm quite pleased with the idea to calculate anti-gravity forces based on the angle my bot would fire at instead of the angle to the enemy's current position. This bot (Quantum) is my first entry into the Roborumble!

5th March 2024

My experiments with a nano Shadow/Melee Gun haven't gotten me the results I'd expected and I got a bit burned out from debugging it so I tried throwing a PM gun on which was okay but nothing to write home about. I think I'm going to experiment with different movements for a while for a change of pace. I've found I enjoy codesize restricted bots much more than megabots - I was getting a bit bogged down in top down development when I was allowed as much code as I liked.

28th February 2024

Targeting everybody at once, Nanobot version!

I've managed to get a (very) basic version of Shadow/Melee Gun squeezed into my Nanobot. At the moment it only aims (at everybody) with Head-On Targeting weighted by distance. Once I'm done with bug fixing I think I'll be able to find room to add another gun or two and/or better energy management into the mix.

27th February 2024

For the past couple of evenings I've been playing with nanobots for the first time. I'm interested in developing guns so decided to start by borrowing a movement from somewhere. Infinity was most appealing because its movement doesn't depend on the radar and only requires 68 bytes. I've managed to shrink the movement code by a further 15 bytes, giving me almost 200 bytes to use for a gun. ::Edit:: I've gotten it down to 35 bytes!

23rd February 2024

I'm wondering if there should be an equivalent page to Wave Suffering for Displacement Vectors. My early efforts at collecting displacement vectors with a codesize restricted gun have resulted in some interesting and wild arrows being drawn all over the place. I'm making progress but I'm sure that subtle bugs will continue to be found for quite some time. Still not sure I'll make it work with enough space left to pair it with decent movement but the experience will be helpful either way.

19th February 2024

A picture is worth a thousand words

Over the last couple of days I've fallen face first into the pit of premature optimisation. I noticed some interesting behaviour emerging as a result of my risk function and got carried away tweaking parameters and adding cobbled together versions of bits of code I'd not implemented in the hope of perfecting it. This predictably led to another pile of spaghetti code that needs (another) rewrite. /sigh.

15th February 2024

My experimental bot had become a pile of spaghetti so it got a rewrite today. I'm still pleased with core design principle, especially given how quickly I was able to experiment with an idea I've not seen mentioned on the wiki before (no spoilers :p). My initial assessment is that it shows promise but definitely needs refinement as my bot now has the tendency under certain conditions to turn into a melee rambot...

14th February 2024

My Robocoding time has been quite sporadic lately so it's been difficult to make progress on the ideas I have for a build system, testing framework and modular robot class. On the one hand that's disappointing because it's greatly slowing my efforts to develop an advanced melee contender however a few throwaway experiments have led to some interesting ideas for movement in mini (or possibly even micro) bots.

The movement appears to be doing a good job at evaluating risk despite using a spinning radar and tracking very little information on enemies. The code is a bit buggy and needs some improvement but I think a half-decent gun could be implemented that mostly reuses the movement code, which is very interesting.

At the very least the graphics displaying the risk evaluation are very satisfying to watch, even if these experiments don't find their way into a released bot.