Robo Home | Changes | Preferences | AllPages

Shiva/WayTo2K , Shiva/Roadmap , Shiva/Versions



What's special about it?

It's my third try o writing a bot that can surf waves. It's a 2K bot. You can see your blood get infected :D

Great, I want to try it. Where can I download it?


How competitive is it?

Best ranking in the RR was 2025 points. Currently #5 in RR General

How does it move?

It surfs EnemyWaves. For this it doest not dodge the GuessFactor that the enemy shoots most likely with, but it moves to the 'valleys' of its hit movement profile.

How does it fire?

It fires using a GuessFactorGun with two stats-arrays. One low segmented for fast-learing and the other one highly segmented for long battles.

How does it dodge bullets?

It dodges always that wave that it going to hit it next and selects its movement direction (it circles around the point, where the bullet was shot) by searching for that factor it has been hit fewest.

How does the melee strategy differ from one-on-one strategy?

What is melee ? :D

What does it save between rounds and matches?

Nothing between matches and nearly everything between rounds.

Where did you get the name?

Shiva is the name of a virus in the book "Operation Rainbow", by Tom Clancy

Can I use your code?

Well source code was included in version 1.11.1 . My current versions are completely unreadable, but if you ask me for the source i may refactor my code and post it.

Does it have any WhiteWhales?

Shiva hates PatterMatchers? and bots that use to fight close to their enemy

What other robot(s) is it based on?

It is not really based on any other bot, but it is based on ideas from other bots.


go to rozu for his PrecisePrediction code
go to jam,abc,PEZ and axe for their detailed descriptions about WaveSurfing
go to all others i may have forgotten

Comments, questions, feedback:

Uploaded version 1.11.1 which is a very experimental one. Might fall to 1900, but lets see. Source is included. --deathcon

Hm 2004. RECALLED. I just reached the point that every change i do with Shiva makes it performe worse. test, test, test ... --deathcon

Welcome in the club! -- PEZ

And, you might have reentered the wrong version 1.10.3 got impressing 2022 points. -- PEZ

Oh yes, fixed that. --deathcon

Version 1.12 leads the PL rankings :P. Only 3 looses to Locke, CC and Ascendant. --deathcon

Some brainstorming :

Shiva leads the PL and nearly the whole elo ranking table looks green. My gun proofes that it is a quite good one - 3rd in the RRGC with about 10 point left to the top. What is left is my movement. It obviously has errors in the getMovePoint? calculation, that make me bump into walls and move not really smart sometimes. Now when i wrote a new function for that, that controls the wall evasion angle in order to stand still if it would get to big, my tests showed me that i loose performance - altought it worked exactly as i wanted it to do. This all makes me think that there is nothing more to do with Shiva - and of cause i am really happy with this bot as it is impressive good - it only looses to 3 bots. So where are "all the other" points hiding ??? I think there are the mid-ranked bots i dont win with such a big margin as others do. Has it anything to do with the way of surfing waves that is different to what all the others do or do i not fire hard enough (default firepower is 1.9) to get these incredible percentages. Any comments ??? --deathcon

Some of the other points are hiding in head-on avoidance (HOA). Look at your LRP graph. Then look at RaikoMX's. Use a browser with tabs and flick between the graphs and you'll see it. There's a HUGE rating difference between winning against a head-on targeter with 99.7% instead of 98.9%. Huge. Really huge. I did something like what you describe to control my wall evasion / smoothing. It lost me points. There's plenty to do with Shiva. Concentrate really, really hard on HOA. Then focus on your gun. Shiva is my bet on which bot will stand the king in a while. -- PEZ

deathcon's brainstorming:

Now after some time of inactivity i am going to have a new try on the fight for the crown :D . Stil i am not really sure where to improve but i think i will have to try just everything and keep those changes, that make me perform better. First of all is my gun. There are just so many possibilities of how to segment a GF gun. I WILL HAVE TO TRY TEST ALL OF THEM :D . Then i agree with you PEZ, my HOA is sill not 'perfect'. But this leeds me to me next problem. Should i continue my way of surfing enemy waves of should i join the mainstream ??? Well again I WILL HAVE TO TEST WHICH ONE TAKES ME HIGHER . And even if i have found the best surfing-methode i dont have found a way to make my code faster: with my current code i just can search that enemy bullet that is going to hit me next. When i use more bullets for my surf-prediction is becomes a giant Slowbot?. So TEST,TEST,TEST ...

By all these things to be done it is really disappointing having great new ideas on another bot, but i just dont want to start it for now, because there is so much potential left in Shiva. So if i dont have the time to do it right now, maybe somebody else: My idea was you take a wave surfer, that loggs all the enemy shots and their guess factors and different data about the current situation and stores them in an array. Then you can find our about the enemyies targeting habbits, by searching for rules or any order of the enemy bullets ( using neural nets, pattern matching or whatever ). This would make your surfer become much more adaptive, because the success of dodging gets independet from the targeting methode the enemy uses. All the current wave surfers (afaik) have their Guess Factor array and they can the good dodge the more similar their segmentation is too the segmentation of their enemy.

Hope anyone could understand the main idea behind it. --deathcon

First step of my testing now is the B version of Shiva. It uses mainstream-wave-surfing and no longer my 'cool way' :D . It is also able to surf multiple waves which makes this first version (0.1) really really slow. --deathcon

I'm hoping this B version will fail. Much more fun with your cool way than the mainstream I think. =) Besides, I have a feeling your way is better than than the mainstream. Also, please update your wiki name on the Preference page. -- PEZ

As i am the only one who tried something different to the mainstream it is hard to say which way has more potential - so i am trying both :D. About the wiki name : i dont have a flat rate so i use an LCR ( least cost router ) which dials in to that provider that costs currently fewest. So my ip changes nearly everytime i reconnect and sometimes i forget to set my wiki name. Sorry, i hope i will remember in the futur --deathcon

I am still alive :D. Just released 2.0 beta, but dont expect too much, as it is a major release but doesnt really introduce major changes. Just some tweaking. Maybe it can make the 2030 points.

@vic: Sorry, i completely ignored your post above. Yes, you are right, it is a reverse of the concept i described at Lockes page. I came to it because my tests with this gun got completely broken. The reason for this was the big number of data that your get when implementing such things as a gun - so everything became very slow. But if you use it as anti-gun-adaption (<-- doest this give any sense) it could be a heavily effective thing.


2.0beta2 is out!!! This default fire power of 2.1 was definitly to much so back to 1.9 again. --deathcon

Nice to see you active again :-). I was just browsing the robocode repository and noticed that there are a lot of Shivas from you. You actually dont need to create a new entry each time you update your bots. To reuse existing entries you can log in, go to the robots page, optionally change name/description and click 'Save & Upload...'. --Mue

Nice somebody is whatching me :D Oh thanks, i didnt know that. --deathcon

Now after the launch of 2beta2 it should give me some time to be inactive AND to stay #5 :D the reason for this is that i will go on holiday for two weeks. =D cy all --deathcon

I know of a Swede who wants to welcome you back from the holidays as a returning #6. But don't let that bother you during your holiday. =) -- PEZ

Seems like this Swede didnt get it, but mue. Can version 2.0 top that??? For details look at the [release notes[Shiva/Versions]].

BTW, i am back from holidays, but i still wont have the time to do any major things with Shiva, because tomorrow starts an informatic competition for pupils here in germany, which i will spend alot of time with in the next 1 to 2 months. --deathcon

What's "informatic competition"? -- PEZ

Oh, my mistake. This doesnt exist in english. It's informatics, computer science or informtion technology. --deathcon

Released 2.2 which is basically a bugfix for 2.1. It should perform around 2030 again.

Well a lot of action while i was not able to do anything relating to robocode. Nice fight for the crown PEZ and mue you had there :D .

Version 2.2 might be the final one if it doesnt perform as bad as 2.1 because of a bug. I decided to quit the development of Shiva definitely. As you can see from its package name it IS a prototype of a bot. I started writing it as a test for a new type of movement i wanted to implement in HuntedHunter?. But as HuntedHunter? was to complex and slow i kept Shiva as it was and developed it further. But now the time has come that i cant continue like that. Shiva has been developed as a really simple bot with a complex idea behind it. Maybe it sounds strange or even depressing to those of you who have not been able to write such a competive bot, but Shiva is not sophisticated even if it acts sometimes. It showed me, that the direction i was going was right and so i will take all the ideas behind it and built a new bot. CU


Who needs sophistication? Raw competetiveness is much better in my book. -- PEZ

You might be right but im am sure that the new bot will increase competiveness. Shiva has some inaccuracies and small bugs. --deathcon

... you really cant believe how recreative a pause of robocoding can be. Last time - when i was in development of HuntedHunter? - i went snowboarding. Some weeks later i started Shiva and it became a big success. Now that i paused robocoding because of that programming competition (so i was not completely of from java-stuff) i got great new ideas for robocode. I invented a new technique that should help me to increase efficiency of both movement and gunning. At the moment i dont have the time to start my new bot using this stuff (still this contest + break my collarbone :((((( ) but i will start as soon as possible. So long! --deathcon

I finally made up my mind and now i am sure that Shiva has reached that level where i cant take it higher on the ranking table by tweaking here and there. Its definitely time for something new - more innovative. So i will realease the source of Shiva in the next time but there is some refactoring and cleanup to do first ;D

I also started my new project (current development name Wiz). I hope my new technique can bring me the performance enhancement i need to join in the fight for the crown.


Robo Home | Changes | Preferences | AllPages
Edit text of this page | View other revisions
Last edited May 11, 2006 20:39 EST by Voidious (diff)