« first day (1282 days earlier)      last day (2164 days later) » 

12:00 AM
(I've also got spirals, but those circles are the best thing so far)
I think you may need to contact the Tate Modern
I'm working on a ray tracer
it's probably not going to work
I love those two brown/purple strokes in the centre that seem to go across the tangential direction
12:01 AM
@Sparr with spheres...?
@VisualMelon hehe, I will actually be at the tate modern tomorrow
@MartinBüttner no chance of getting that into 140 bytes then...??
@githubphagocyte with a single sphere. maybe.
@githubphagocyte I haven't found a way to apply the coordinate mapping within the given structure
nail one of those to the door and steal the show
12:02 AM
I'm starting with the famous business card raytracer
which is 1337 bytes
including main and output
@Sparr that's still a long way to go!
in that code the rgb functions still just build horizontal strokes, and then pixel_write applies the coordinate mapping when looking them up
algorithm code is maybe 1100 bytes, which I need to cut down to about 350
@MartinBüttner cheater! :p
@Sparr does it have features you can discard?
many :)
12:03 AM
@Sparr I told you I was going to ditch all the restrictions :D
multiple spheres? gone. stochastic sampling? gone. soft shadows? gone.
@Sparr the business card raytracer had antialiasing and soft shadows????
that's a deconstruction of most of its functionality
I love this blog
have you read his reverse engineerings of git and prince of persia?
the lost world trespasser one was how I discovered his site
12:06 AM
@Sparr I'd be tempted to keep multiple spheres and lose the checquered floor. Or would that be too stark?
@githubphagocyte I might have to ditch both
there's a good chance this isn't going to work at all
he's using operator overloading. I'm going to have to fake that with defines, I think.
@Sparr I guess it just needs at least 1 thing to reflect, but ideally 2 reflective things to get some recursive detail
@Sparr defines are expensive. Can you #define d #define?
I'm guessing not lol
I'm not too familiar with c++
You should be able to get a matt sphere though
That would be a challenge to lay down for everyone to try and beat...
12:23 AM
I'm heading off for today
see you guys... that was fun ^^
it was!
See you again
6 hours later…
6:36 AM
Programmin' Pacman posted
2 hours later…
8:23 AM
Congratulations people: We're above 6 questions per day now!
9:03 AM
@Doorknob We already were at some point last week I think. I suppose we've got to thank Calvin's Hobbies for the +1 there :D
9:31 AM
this sounds so interesting codegolf.stackexchange.com/questions/35664/… ... I really need to learn more about number theory
9:55 AM
@NathanMerrill Didn't you want to change the field of view for ghosts?
5 hours later…
2:44 PM
Has anyone else played a flash game called Bubble Tank?
I had the idea that a KOTH challenge could be made in similar spirit.
Link to the original game: armorgames.com/play/58/bubble-tanks
link to the "battle arena" version (much more complicated): armorgames.com/play/5967/bubble-tanks-arenas
The basic idea is that you design a "bubble tank" from a bunch of available parts, and you use your tank to fight other enemy tanks.
So I guess an adaption of the game could be the following:
1) There is a 2D battle arena
2) Each program is the AI for one tank
3) Each tank has a wide variety of weapons (guns, area effect, seekers, mines) and shields.
I played that game and actually have thought to myself it could make a good challenge
that sounds far more complicated than a typical battle bots challenge, which is an area that we haven't come close to fully exploring
I think it should be possible for each competitor to customize their own bot from a list of parts, but that could be hard to balance.
You'll have to simplify it somehow though
I think it could be simplified.
For example, it could be discrete instead of continuous.
And the list of available parts would be pretty small.
3:02 PM
so a bit like a 2D version of my dogfighting challenge but with more variety of movement and customizable weapons?
If there was a longer list of parts you could allow bots to take turns to choose a part before start of play, with each part only available to one bot. Then taking out a bot would mean you gain their part, so the bots gradually get stronger as the numbers dwindle. That would mean versatile bots though, rather than tailored to a specific set of parts.
It would mean choosing the best parts would make you a target for all the other bots.
I'm just thinking out loud, but maybe the sets of parts can be semi-randomly assigned at the start of the match? So, you don't always end up with exactly what you wanted?
By the way, here is the full list of weapons for the actual games: herointeractive.wikia.com/wiki/Bubble_Tanks:_List_of_Weapons
I like the part about allowing upgrades after you kill other bots.
Either the parts of departed bots could go to whichever bot took them out, or, if it won't always be clear who killed who, the spare parts could just be strewn across the battlefield for other bots to fight over.
Maybe we'll see cooperation between weaker bots if one becomes too powerful?
Another solution is to give each bot "1 skill point" at the beginning of the game. Each kill gives another skill point. Bots can spend skill points on weapon upgrades.
I like that idea @PhiNotPi
that does encourage going for all or nothing
It might be best to just give people what they want from the beginning
3:18 PM
To add the element of "fighting over parts" we could make it so that the skill point wasn't automatically given to the victor, but deposited on the battlefield to be collected.
And to encourage teaming up on big bots instead of going for easy kills, the larger bots will drop more skill points.
Why not give bots a sort-of Elo rating, and use that to judge drops?
I'm still concerned that that playing risky and thus extremely agressive in the beginning is going to be the best atctic.
like, small but tough bots may drop more than big but weak ones
At which point the question becomes: who will be the first one to get a few kills?
Why not modify the system such that killing a bot that's smaller than you increases the amount you drop when killed?
3:24 PM
how about the number of skill points dropped = the number of skill points that bot had acquired?
@PhiNotPi then you have to start out with a lot of skill points, as they can never be created
How would the elo rating idea work?
I like your system @PhiNotPi.
The more skillpoints you've gained, the more you drop.
@PhiNotPi well it wouldn't exactly be the elo system as I've never grasped it,
every player starts out with say 4000 points. When a battle occurs, the winner gains a 20th or something of the difference between their points, and the loser loses that same amount.
well, the winner would also score a bonus like 100 points
if the winner has more points than the loser, the negative points that should have gone to the winner will instead go to the winner's kill value
@PhiNotPi I like the idea of dropping however many they had acquired. So you just start with enough skill points in the environment to buy everything in the shop, and then bots pick them up as they go along and drop any they had when they die
3:29 PM
See, then you could have a strategy to have a bunch of bots have low scores and lose to a big bot, then one which kills it to get it's massive kill value
Although that massive points value could be used by the big bot to buy upgrades, so it wouldn't be trivial to then kill it
@githubphagocyte nope,
a bot can't access it's kill value
Unless the big bot is also by the same person?
To avoid the problem of the first-kill advantage, we could impose a sufficiently-high upgrade cost so that it takes several kills to get an upgrade.
That works
3:31 PM
kill value, when dropped, adds to the collector's points
can you see anyone's kill count?
@Trimsty I think I get it. Would this be separate from the skill points?
either way would work :P
@githubphagocyte yeah
the reason it's like that is so that killing little bots makes it more dangerous for you to be killed,
as you'd drop a whole lot more points
Do a bots upgrades just get dropped when it dies, for others to pick up, or do they get converted back to skill points and scattered, so others can pick up the skill points and spend them on something they prefer?
3:35 PM
@githubphagocyte they just get destroyed, the only value they have is in how the bot used them
i mean, to destroy something, you have to make it stop functioning, right? xD
it makes, say, killing a bot with a billion guns that never does anything, worthless
(except it'll probably boost your kill value if you have more than 4000 points, but meh)
also, newcomers don't have to worry as much, since killing you only does bad for the big bots
MY HOBBY: Designing systems where the functionality is in the implication; so stupid that it might just work
aaaaand now I'm implementing it in Python.
class BotsThingy:
	def __init__(self):
		self.bots = []
	def battle(self, bot1, bot2):
		winner = self.runBattle(bot1, bot2)
		loser = list({bot1, bot2} - {winner})[0]
		d = (self.bots[winner].points - self.bots[loser].points) / 15
		if d < 0:
			self.bots[winner].killValue -= d
			self.bots[winner].points += d + 50 + self.bots[loser].killValue * 5

# bot.killValue starts out at 10.
# bot.points can be anything that's above 100-ish, I'd say 4000 is good.
3:50 PM
@githubphagocyte I was thinking that they would be converted back into skill points
sorry for the dirty calculation of loser xD
@Trimsty it works...
@githubphagocyte i guess ;_;
I was thinking more that there would be several players in an arena at once.
As opposed to running battles between pairs of bots.
Yeah, my battle() function should really only take place when one bot kills another,
3:52 PM
Yes I had assumed this was an arena full of all the bots trying to evade each other and attack each other
it's not very complete, it just gives an idea of what I was thinking
instead of giving the winner the points, you can drop them.
Whether there can be direct assignment of spoils from one bot to its killer depends on whether the killer is unambiguous. Will there be weapons that damage several nearby bots? If two bots activated one of these at the same time it could kill several bots without it being attributable to either one of the attacking bots. If such cases will arise, the skill points could just be strewn around nearby for anyone to scavenge.
yeah, then you'd be choosing who's skill points to use in the calculation for the bots though
for example,
if the bots they killed were of less points than them
what would happen to the kill value?
you can't drop that, nobody would pick it up
Could you explain the kill value again? Is it intended to make bots go after the biggest around, to give smaller ones a chance?
i think it should just be given to both, i mean, they both killed the poor bot :c
4:00 PM
If the arena is big enough, could there be, say, 20 instances of each bot, all controlled by the same program and potentially hunting in packs?
I think that the points should be calculated based only on the killed bot, and that the points should be dropped near the location of death. That way, there's no problems determining who was the killer.
Then the controller could choose whether to buy upgrades for some of its tanks, or just to buy new instances
kill value is where negative points that should go to the "winner" (really just the guy who fired the killing shot) actually go, they're dropped as points (but 5 times their actual value) when the bot is later killed
Are they of any use to the winner? Or only to someone who kills the winner later?
When you kill a bot, you collect points from that bot. You can use those points to purchase upgrades.
4:02 PM
@githubphagocyte only to the killer later. Bots can do nothing with their own kill value (except increase it by killing bots with lower points)
Yes that's how I saw it, but kill points sounds different and I still don't understand it
@githubphagocyte kill points == kill value, i just can't make up my mind on what to say, lol
I mean I understand skill points, but kill points are lost on me so far
oh that was a typo oh oh
i'm confusing everyone :D
why on Earth did we pick the terminology skill points and kill points?
Okay, so there's no such thing as kill points?
4:04 PM
@PhiNotPi we must be really stupid smart people
@PhiNotPi no, kill points do exist--
this is why i wrote the python code above, I'm bad at explaining things, lol
from now on, let's call them "skill points" and "kill value"
Can you spend the kill value? If not I'm missing what they affect.
So, when you kill a bot, both your skill points and kill value increase, correct?
You can use skill points to buy upgrades, while kill value determines how many skill points you drop when you die.
Unless the skill points are strewn around locally
@githubphagocyte you can't spend it, but when you get killed, they get turned back into normal points and their value is multiplied by 5
4:07 PM
Light dawns...
Thank you
i quickly edited my python code a bit, any questions just refer to there ^^;
class BotsThingy:
	def __init__(self):
		self.bots = []
	def fatalShot(self, firer, victim):
		d = (self.bots[firer].points - self.bots[victim].points) / 15
		if d < 0:
			self.bots[firer].killValue -= d
			self.dropPointsAt(d + 50 + self.bots[victim].killValue * 5, self.bots[victim].location)

# bot.killValue starts out at 10.
# bot.points can be anything that's above 100-ish, I'd say 4000 is good.
Will this be set up in such a way as to ensure conservation of skill points or could the total number of skill points available in the end game vary depending on the order in which bots were killed?
@githubphagocyte It does vary, though it can never go down
You mean it could go up a lot potentially?
@githubphagocyte Yeah, though it's restricted by the kill binary
4:11 PM
I'm wondering if there's the potential for an end game where the remaining bots are practically superpowered.
I suppose that wouldn't matter as long as they were still vulnerable
It's limited by the kill binary though,
and you can always scavenge
For example,
the top ranked bot should never engage in battles, as it'll only heighten it's kill value
i mean, you can always heighten your kill value indefinitely if you're sure you'll never be killed, but that's quite the choice to make; a bot can definitely be better than it's point count dictates
a system that can't be fooled is a boring system
What is the overall winning criterion?
Is it to the death?
@githubphagocyte yup; it's like a tournament
Or stopping after a set time and the highest scored survivor wins?
There are a few options, I guess.
1) One massive battle to the death, winner-takes-all, order of finish is determined by the order of death
4:17 PM
There seem to be two approaches - tournament of one on one matches, or a free for all in one big arena. I lean towards the second...
i think the tournament system would work better here, a low score is a great way to deceive the other bots to leave you alone
@PhiNotPi sorry I think we both started saying much the same thing at the same time...
2) Several massive battles, and the winner is the person who has the highest average ranking.
yeah, @PhiNotPi has the right idea. I was thinking one big battle and the order of death in reverse is the standing
you could use time since battle start at death as score
the winning submission's score could be the sum of all the others'?
I'm thinking of making a koth question where the arena gradually shrinks so that conflict is unavoidable
4:20 PM
@githubphagocyte o:
(rainbolt is gone. deal with it.)
There's an iceburg question in sandbox about that (is that your sandbox answer?)
I'm not the iceberg
Ah yes
That's about pushing others off, right?
Would a shrinking arena help here to impose some kind of upper limit on the time?
If there is a tank that is good at evading but not good at attacking then things could go round in circles for a while before it gets down to just one survivor
@githubphagocyte Yeah, though what if the arena didn't shrink, but tanks got "rusty" after a while and eventually just die if they don't battle?
That way, if the 2 last bots both rust, it can be a draw
Either that or gradually sprinkling more skill points over the arena, so that if you wait too long all the bots become apocalyptically powerful
4:23 PM
well, it can be a draw between all of them d:
@Trimsty interesting. So you have to keep killing or at least picking up skill points just to keep your tank in good repair?
@githubphagocyte Hm, that would favor scavengers.
@githubphagocyte yup
I'm not against favouring scavengers...
yeah :P
It could give some interesting predator prey dynamics, with scavengers zipping around the bigger tanks trying not to get killed
4:25 PM
@githubphagocyte yeah, but the system's already a bit biased toward the humble :P
Maybe the weapons come with a weight, so that the more you build up your tank the slower you turn and move
@githubphagocyte sounds good to me, but you should also include speed upgrades
I don't know - I quite like the idea of a ridiculously overpowered tank lumbering slowly across the arena with everyone else fleeing in panic
@githubphagocyte speed upgrades are only so effective :)
...and trying not to gather in clusters where a weapon could take them all out at once
4:29 PM
Do you think the tanks should take up space or just be a single square on the grid?
I'm leaning towards taking up space.
Do you want it to be grid based or continuous?
continuous would be nicer
that, along with tank sizing, would make it quite interesting
4:30 PM
Either could be interesting but we need to decide as it will affect so much else
I like continuous.
Means continuous facing angles too
well, that's 3 against 0
/r/showerthoughts - you are in a never-ending 1 vs 0 battle
Will the finite size of the tanks mean they both take damage if they collide?
Will they be modelled as circles for simplicity or complex shapes with weapons?
In the game, the tanks passed through each other. I think that would be easier than having collision detection.
4:32 PM
Easier is better unless there's a good argument for it
in which case, you only need to worry about shape for visualizations ;P
so, the arena is infinite?
Do you mean it wraps or it really goes on forever?
the latter
In that case a bot could run off and make the game last ages
4:33 PM
@githubphagocyte no, it'll rust
Unless there is a centre with some advantage
ah yes
The centre could be lit, out to a certain radius, with the tanks solar powered
if you run too far from the centre in evading an attacker your power runs down
@githubphagocyte infinite darkness
with a little halo of light in the centre and nothing else
@githubphagocyte size is relative. Compared to infinity, finite numbers can't be distinguished from 0
One of the upgrades could be a battery to allow you to travel out from the light for longer at a time without failing
4:35 PM
thus, there is no light
@githubphagocyte sounds nice ;D
and then you have to be strategic about balancing solar panels and weapons.
The weapon recharge time could be dependent on the light too, so the closer you are to the centre the faster you can fire
If we are dealing with a continuous game, then the bots must have some size, so that bullets can "collide" with them.
This is getting complicated - I think this might be the makings of several different good challenges
@PhiNotPi circles, circles!
@PhiNotPi either that or the weapons target a patch of ground and damage is done to any tanks within range of the detonation
Depends what range of weapons we settle on
Will the weapons have a fixed range or will some go on forever, like a laser?
4:38 PM
if you need help writing a controller program, I'm game :P
I will appreciate all the help.
@githubphagocyte Ooh, lasers!
Just how crazy will it get?
You could have mines too
timed ones and proximity ones
Are the bots going to have full information or a limited vision radius?
there is one weapon that is absolutely mandatory
one sec
simple but effective...
4:41 PM
@githubphagocyte i think, limited relative to the amount of light
so you can escape into the darkness if you have the battery for it, and others won't be able to track where you are but you'll be able to see them
Let's see:
- mines (proximity and timed)
- guns (of different ranges and powers)
- lasers
- heat-seekers (which follow the nearest target)
- area-effect (which damages nearby bots)
@githubphagocyte mhm ;D Maybe flashlights should also be a thing,
you can see people but they can see you
@PhiNotPi heat-seekers need to be a bit inaccurate, they seem kinda op
@githubphagocyte mhm
4:44 PM
@githubphagocyte yeah
heat seekers can be expensive
also they could be highly accurate but low damage
maybe you could have a choice
some accurate low damage ones and some overpowered inaccurate ones
seems good ;D
What about self destruct?
In the original game, heat-seekers had high accuracy, low range, and low damage
4:46 PM
@githubphagocyte area-effect :D
Could be used for strategic effect if you know someone is above you on the rankings...
Maybe by self-destructing before you get killed, you can reduce the number of points your killer receives.
"No, people aren't stupid. On average, people are of average intelligence." - Cueball
@PhiNotPi Yeah, but you'd drop your kill value and theirs won't increase if it would have.
@PhiNotPi I like the idea of skill points never being destroyed, so that things get interesting at the end when there are lots to go around few bots. Maybe self destruct could scatter your points widely so that the bot about to kill you gets very few of them, and gets seriously damaged too.
@githubphagocyte yeah, in which case, you'd be giving out a lot more points than you would be if you'd just die.
4:50 PM
I like the idea that the skill points are strewn more widely.
Should I start a sandbox post to contain the details discussed so far?
@PhiNotPi i think so :P
What should I title it?
@PhiNotPi definitely - there are two many different ideas to keep track of here - time for a sandbox post to say what's in and what's not
@PhiNotPi hm.
The title can change as the details are settled
Something to do with tanks
and the rest of the name will depend on whether the light idea is included, whether the rust idea is included, or something new
5:03 PM
_"Hello, this is the repairs office. How can we help you today?"_
_"I can't type the letter after g. Tanks!"_
aaaand that isn't italic
"not italic"
oh wait that's also italic
bold italic
Two for bold, one for italic, three for both
5:05 PM
Still no idea why yours isn't working above
either _ or * should work
md support in here is pretty shoddy
"a long test sentence with punctuation!!"
@Trimsty I don't know what you did - it all works fine for me
5:06 PM
"test" "test"
it appears that it doesn't work when you use multiple lines.
Mine works with * too
*multiple line test"
so the system somehow discriminates against \n
*line one*
*line two*
*line one*
*line two*
good deductive work
5:08 PM
where's my cookie
*line one
line two*
"tab test"
works fine with tabs
it's hard to imagine a circumstance in which this glitch is not intentional.
It is pretty funny
the universe is pseudorandom, right?
What if background radiation is just messing with the parse params in js for those particular messages?
rather that then somebody saying "italic text can't have newlines. newlines are bad."
decided to have a go at drawing with the mouse yesterday, didn't go very far, it was too horrible xD
I'm working on the sandbox post.
In the game, there's also a leech weapon which steals health.
5:27 PM
Do you just leave them lying around or do you throw them at other tanks?
@Trimsty try drawing with tweets instead...
@githubphagocyte just read the spec for that.
i shall enter!
Careful - it's adictive...
@githubphagocyte i did fractal flames for a looong time :D
Too late to correct my spelling...
5:43 PM
@githubphagocyte what format is MathPic in?
A: Proposed Question Sandbox - Mark XIV

PhiNotPiEpic Customizable Tank Battle (Work-In-Progress) This is an idea I have been working on in conjuction with users @Trimsty and @githubphagocyte in the chat room. It is inspired by the flash game "Bubble Tanks" by Armor Games. This will be a king-of-the-hill challenge. Main Idea The main idea...

I wrote what I could remember, but if there's something you'd like to add, you can.
> Is may be that several matches are held
typo there?
5:47 PM
> The kill value of a bot determines how many skill points will be dropped upon that bot's death.

Hm, isn't the amount dropped determined as kill value * 5 + difference between skill points / 10?
(wow, markdown support in here really is terrible)
and it's 0 if the killer has more points, then the negative tenth of the difference is added to the killer's kill value
(if you changed it and i didn't see, then, oops :P)
I didn't change it, but I didn't elaborate.
A: Proposed Question Sandbox - Mark XIV

FrxstremProgram calculating its own length code-golf Task Your task is simple: write a program that produces its own length, without using any literals or built-in constants other than 0 (or its equivalents in your language). Rules Your code must print its own length in bytes when run, followed by a...

@NewSandboxedPosts incoming blank answer
or in php,
wait, i didn't see the literals thing ;_;
@githubphagocyte that sierpinski pentagon is absolutely great! :)
@PhiNotPi Ah, you're implying that the kill value is a multiplier though. Maybe you could elaborate or change it to "determined in part"?
5:53 PM
@MartinBüttner thank you! It took forever to get it into 140 bytes per colour but I'm really pleased with it now
and i have no idea how to view the output, so i can't enter
@githubphagocyte we actually did the chaos game variant for the Sierpinski triangle in our Practical Maths lecture (which was basically teaching Mathematica)
@PhiNotPi I think the visibility based on light level needs to be clarified so that tanks are less visible to others when in lower light, but can still see the tanks that remain in the light. Maybe over time battery level will drop and vision radius decrease, but initially I was picturing being in the dark as an advantage as you can still see those in the light but they can't see you. Does that work?
@MartinBüttner I love some of the higher numbered ones, up to about 11 vertices and then it starts to get too jumbled. I think 5 is the most I'm going to fit into this question though...

« first day (1282 days earlier)      last day (2164 days later) »