Difference between revisions of "Talk:Wintermute"

From Robowiki
Jump to navigation Jump to search
(the background on the name)
(Robobot 0.1 : correcting user page links)
 
(7 intermediate revisions by 4 users not shown)
Line 9: Line 9:
  
 
Thanks! I was wondering what to call my new bot, and I had just read a book from 1984 called [http://project.cyberpunk.ru/lib/neuromancer/ Neuromancer]. Wintermute is the very smart AI that is striving to gain a personality by merging with the AI called Neuromancer, which in turn lacks resources and the drive to collect and process information. So my bot Wintermute will be exactly the same: no witty insulters, no victory dances, just straight plain functionality. If it ever attains number 1 then I'll give it a couple of these 'extras' =) --[[User:Skilgannon|Skilgannon]] 17:12, 4 April 2009 (UTC)
 
Thanks! I was wondering what to call my new bot, and I had just read a book from 1984 called [http://project.cyberpunk.ru/lib/neuromancer/ Neuromancer]. Wintermute is the very smart AI that is striving to gain a personality by merging with the AI called Neuromancer, which in turn lacks resources and the drive to collect and process information. So my bot Wintermute will be exactly the same: no witty insulters, no victory dances, just straight plain functionality. If it ever attains number 1 then I'll give it a couple of these 'extras' =) --[[User:Skilgannon|Skilgannon]] 17:12, 4 April 2009 (UTC)
 +
 +
: Yeah, Neuromancer is a great book! That's neat to hear about the significance of the name to the bot's design, too. --[[User:Voidious|Voidious]] 18:25, 4 April 2009 (UTC)
 +
 +
Nice, but score lower than I expected :-) Anyway, it also has many code very similar with [[DrussGT]] (and it look really like old [[Stormrider]] code, btw) &raquo; <span style="font-size:0.9em;color:darkgreen;">[[User:Nat|Nat]] | [[User_talk:Nat|Talk]]</span> &raquo; 06:49, 14 April 2009 (UTC)
 +
 +
I just released this as an early version to see how it's doing, it is still a long way from being complete. Look at the list of things left to implement in the "What's next". I'm actually surprised at it's high rank, considering that it's coming close to bots like Lukious, XSeries, SilverSurfer, Chalk etc without even looking at the second wave, my danger function barely being tuned, etc.
 +
 +
I'm not sure how the code is like [[Stormrider]], the movement code is a complete rewrite. Maybe you're confusing my coding style/structure with actual functionality? Stormrider was 1) a goto surfer, 2) didn't use a tree, 3) only had one weighting system, 4) surfed both waves, 5) didn't use precise angles, 6) had a flattener, and 7) smoothed all the scans into bins before surfing them, 8) getting the danger at a point as the value in the corresponding bin. Wintermute is a 1) True surfer, 2) uses [[User:Simonton|Simonton]]'s tree, 3) has 3 (and soon more) weighting systems, 4) only surfs the until the first wave has passed over it, 5) uses precise angles in the movement, 6) doesn't have a flattener, 7) keeps a list of scans similar to the firing one and 8) figures out the danger over a GF range by testing the GF's nearness to them. That doesn't leave much room for shared code. The only code they might share (I'm not sure if [[Stormrider]] used the current one or if it was only introduced in a later DrussGT) is the orbital (ie. non-wave) movement, which doesn't affect the surfing. One other thing they might share is finding which wave to log a hit to, but that is pretty much as-is from BasicSurfer. --[[User:Skilgannon|Skilgannon]] 08:04, 14 April 2009 (UTC)
 +
 +
* I may confusing, but I don't actually look at [[Stormrider]] code, I looked at commented DrussGT code (which I figure out that it is DC surfing) About weighting system, do [[Stormrider]] has only 1? I see almost the same StoreScan parts. &raquo; <span style="font-size:0.9em;color:darkgreen;">[[User:Nat|Nat]] | [[User_talk:Nat|Talk]]</span> &raquo; 08:50, 14 April 2009 (UTC)
 +
 +
* The StoreScan is in the gun, which does have a lot of shared code with DrussGT. Yes, Stormrider only used 1 weighting. I tried using a different one for the flattener but it didn't help. But the movements, I think they are about as similar as any 2 DC wavesurfing bots would be, by the very nature that they both store waves with DC information rather than VCS. --[[User:Skilgannon|Skilgannon]] 12:15, 14 April 2009 (UTC)
 +
 +
I can't believe that version 0.2 even reach 2000! (it is not unbelievable with old ranking, but today score is a lot harder) Or even 2100 in Glicko2! &raquo; <span style="font-size:0.9em;color:darkgreen;">[[User:Nat|Nat]] | [[User_talk:Nat|Talk]]</span> &raquo; 13:45, 16 April 2009 (UTC)
 +
 +
== Paint buffer in 0.4 ==
 +
 +
Just noticed, in 0.4 the it seems to spew so much at the painting buffer that robocode complains loudly on the console:
 +
<pre>
 +
SYSTEM: Exception occurred on robocode.PaintEvent
 +
java.nio.BufferOverflowException
 +
at java.nio.Buffer.nextPutIndex(Buffer.java:501)
 +
at java.nio.HeapByteBuffer.putInt(HeapByteBuffer.java:347)
 +
at net.sf.robocode.robotpaint.Graphics2DSerialized.put(Graphics2DSerialized.java:1728)
 +
at net.sf.robocode.robotpaint.Graphics2DSerialized.drawOval(Graphics2DSerialized.java:411)
 +
at jk.precise.move.PreciseSurfDC.onPaint(PreciseSurfDC.java:163)
 +
at jk.precise.Wintermute.onPaint(Wintermute.java:107)
 +
at robocode.PaintEvent.dispatch(PaintEvent.java:61)
 +
at robocode.Event$HiddenEventHelper.dispatch(Event.java:249)
 +
at net.sf.robocode.security.HiddenAccess.dispatch(HiddenAccess.java:195)
 +
at net.sf.robocode.host.events.EventManager.dispatch(EventManager.java:486)
 +
at net.sf.robocode.host.events.EventManager.processEvents(EventManager.java:459)
 +
at net.sf.robocode.host.proxies.BasicRobotProxy.executeImpl(BasicRobotProxy.java:403)
 +
at net.sf.robocode.host.proxies.BasicRobotProxy.execute(BasicRobotProxy.java:119)
 +
at robocode.AdvancedRobot.execute(AdvancedRobot.java:565)
 +
at jk.precise.Wintermute.run(Wintermute.java:36)
 +
at net.sf.robocode.host.proxies.HostingRobotProxy.run(HostingRobotProxy.java:250)
 +
at java.lang.Thread.run(Thread.java:619)
 +
</pre>
 +
--[[User:Rednaxela|Rednaxela]] 18:09, 3 May 2009 (UTC)

Latest revision as of 08:47, 22 May 2009

Do we expected to see a True Surfing Stormrider here? » Nat | Talk » 12:33, 4 April 2009 (UTC)

No, Stormrider didn't use any sub-pixel precise targeting or movement. This bot is, in concept, similar to RougeDC I think. --Skilgannon 12:40, 4 April 2009 (UTC)

I mean Stormrider re-create with current DrussGT. Isn't sub-pixel SuperBotWidth? I think DrussGT use SuperBotWidth in both Movement and Targeting. » Nat | Talk » 12:55, 4 April 2009 (UTC)

  • DrussGT uses SuperBotWidth in the gun but not in the movement. I tried it in the movement but it actually hurt my score. This isn't going to be pure True Surfing however, because I want to be able to evaluate all points on the next wave, which will require some goto stuff =) --Skilgannon 17:12, 4 April 2009 (UTC)

Awesome name. :-) I presume this will be the heir to the throne? Good luck! --Voidious 16:41, 4 April 2009 (UTC)

Thanks! I was wondering what to call my new bot, and I had just read a book from 1984 called Neuromancer. Wintermute is the very smart AI that is striving to gain a personality by merging with the AI called Neuromancer, which in turn lacks resources and the drive to collect and process information. So my bot Wintermute will be exactly the same: no witty insulters, no victory dances, just straight plain functionality. If it ever attains number 1 then I'll give it a couple of these 'extras' =) --Skilgannon 17:12, 4 April 2009 (UTC)

Yeah, Neuromancer is a great book! That's neat to hear about the significance of the name to the bot's design, too. --Voidious 18:25, 4 April 2009 (UTC)

Nice, but score lower than I expected :-) Anyway, it also has many code very similar with DrussGT (and it look really like old Stormrider code, btw) » Nat | Talk » 06:49, 14 April 2009 (UTC)

I just released this as an early version to see how it's doing, it is still a long way from being complete. Look at the list of things left to implement in the "What's next". I'm actually surprised at it's high rank, considering that it's coming close to bots like Lukious, XSeries, SilverSurfer, Chalk etc without even looking at the second wave, my danger function barely being tuned, etc.

I'm not sure how the code is like Stormrider, the movement code is a complete rewrite. Maybe you're confusing my coding style/structure with actual functionality? Stormrider was 1) a goto surfer, 2) didn't use a tree, 3) only had one weighting system, 4) surfed both waves, 5) didn't use precise angles, 6) had a flattener, and 7) smoothed all the scans into bins before surfing them, 8) getting the danger at a point as the value in the corresponding bin. Wintermute is a 1) True surfer, 2) uses Simonton's tree, 3) has 3 (and soon more) weighting systems, 4) only surfs the until the first wave has passed over it, 5) uses precise angles in the movement, 6) doesn't have a flattener, 7) keeps a list of scans similar to the firing one and 8) figures out the danger over a GF range by testing the GF's nearness to them. That doesn't leave much room for shared code. The only code they might share (I'm not sure if Stormrider used the current one or if it was only introduced in a later DrussGT) is the orbital (ie. non-wave) movement, which doesn't affect the surfing. One other thing they might share is finding which wave to log a hit to, but that is pretty much as-is from BasicSurfer. --Skilgannon 08:04, 14 April 2009 (UTC)

  • I may confusing, but I don't actually look at Stormrider code, I looked at commented DrussGT code (which I figure out that it is DC surfing) About weighting system, do Stormrider has only 1? I see almost the same StoreScan parts. » Nat | Talk » 08:50, 14 April 2009 (UTC)
  • The StoreScan is in the gun, which does have a lot of shared code with DrussGT. Yes, Stormrider only used 1 weighting. I tried using a different one for the flattener but it didn't help. But the movements, I think they are about as similar as any 2 DC wavesurfing bots would be, by the very nature that they both store waves with DC information rather than VCS. --Skilgannon 12:15, 14 April 2009 (UTC)

I can't believe that version 0.2 even reach 2000! (it is not unbelievable with old ranking, but today score is a lot harder) Or even 2100 in Glicko2! » Nat | Talk » 13:45, 16 April 2009 (UTC)

Paint buffer in 0.4

Just noticed, in 0.4 the it seems to spew so much at the painting buffer that robocode complains loudly on the console:

SYSTEM: Exception occurred on robocode.PaintEvent
java.nio.BufferOverflowException
	at java.nio.Buffer.nextPutIndex(Buffer.java:501)
	at java.nio.HeapByteBuffer.putInt(HeapByteBuffer.java:347)
	at net.sf.robocode.robotpaint.Graphics2DSerialized.put(Graphics2DSerialized.java:1728)
	at net.sf.robocode.robotpaint.Graphics2DSerialized.drawOval(Graphics2DSerialized.java:411)
	at jk.precise.move.PreciseSurfDC.onPaint(PreciseSurfDC.java:163)
	at jk.precise.Wintermute.onPaint(Wintermute.java:107)
	at robocode.PaintEvent.dispatch(PaintEvent.java:61)
	at robocode.Event$HiddenEventHelper.dispatch(Event.java:249)
	at net.sf.robocode.security.HiddenAccess.dispatch(HiddenAccess.java:195)
	at net.sf.robocode.host.events.EventManager.dispatch(EventManager.java:486)
	at net.sf.robocode.host.events.EventManager.processEvents(EventManager.java:459)
	at net.sf.robocode.host.proxies.BasicRobotProxy.executeImpl(BasicRobotProxy.java:403)
	at net.sf.robocode.host.proxies.BasicRobotProxy.execute(BasicRobotProxy.java:119)
	at robocode.AdvancedRobot.execute(AdvancedRobot.java:565)
	at jk.precise.Wintermute.run(Wintermute.java:36)
	at net.sf.robocode.host.proxies.HostingRobotProxy.run(HostingRobotProxy.java:250)
	at java.lang.Thread.run(Thread.java:619)

--Rednaxela 18:09, 3 May 2009 (UTC)