Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.
Man hopes. Genius creates. Ralph Waldo Emerson
Never worry about theory as long as the machinery does what it's supposed to do. R. A. Heinlein
Ik vind die 0.1 sec wel een beetje langzaam, ten eerste heb je flink wat letancy en ten tweede zal je moelijker een actueel overzicht scherm kunnen maken, aangezien een tank wel heel hard rijd over het speelveld.
Misschien een idee om een appart programma hebt waarbij je alle moves(van iedereen) achteraf kunt bekijken, zodat je de wedstrijd kunt volgen met een beetje vertraging? Je kan er dan geen voordeel uit halen, maar analyseren des te beter.
Het lijkt mij dat je een behoorlijk speelveld nodig hebt. Als je namelijk een klein vlakje hebt kun je bijna lukraak schieten.
Noobs don't use "F1", Pro's do, but they can't find the information they needed
tot het protocol "gereleased" wordt
volgens mij is er behoorlijk wat competitie
-niks-
Het "beste" priemgetalalgoritme kun je downloaden van internet, das een beetje het jammere.silentsnow schreef op vrijdag 28 januari 2005 @ 21:50:
GoT contest lijkt me erg leuk, maar ik kan alleen meedoen als het over het ontwerpen van algoritmen gaat. Assembly, Java en C will doHet priemgetal algoritme vind ik een voorbeeld
Zo'n soort competitie eindigt altijd +/- gelijk, omdat iedereen een net iets anders geoptimaliseerd algoritme heeft als de ander. Daarom vindt ik zoiets als tankbattle wel een beter idee, dat kun je niet downloaden
-niks-
Verwijderd
Maar hoe zou de complete contest er dan uitzien?
eerst een paar weken een soort van open server, en dan op een vaste dag de daadwerkelijke "battle"
of simpelweg een openserver en de bot met de meeste kills aan het eind van de contest tijd wint?
voor doodgaan zou er eigenlijk wel een soort van straf tijd moeten zijn.
anders gok ik dat je heel veel "shoot first, move later" bots krijgt.
Als in bots die gewoon stil staan tot er iemand langs komt.
[ Voor 28% gewijzigd door Verwijderd op 28-01-2005 22:59 ]
denk het niet... ikzelf heb een goed kwartiertje gegoogled en heb niet echt een performant algo gevonden...MLM schreef op vrijdag 28 januari 2005 @ 22:45:
[...]
Het "beste" priemgetalalgoritme kun je downloaden van internet, das een beetje het jammere.
Zo'n soort competitie eindigt altijd +/- gelijk, omdat iedereen een net iets anders geoptimaliseerd algoritme heeft als de ander. Daarom vindt ik zoiets als tankbattle wel een beter idee, dat kun je niet downloaden
ASSUME makes an ASS out of U and ME
Dan moet je mss leren googelen?HIGHGuY schreef op zaterdag 29 januari 2005 @ 12:20:
[...]
denk het niet... ikzelf heb een goed kwartiertje gegoogled en heb niet echt een performant algo gevonden...
http://www.google.nl/sear...+eratosthenes+C%2B%2B&lr=
eerste hit, zelfs in ASM geprogt, ik bedoel hoeveel sneller wil je het maken?
Edit:
En om nog ff te laten zien hoe snel het kan, lees ook ff de 6e hit:
Edit 2:To give you a feeling of its speed: it generates all primes less than 1 milliard in less than 1 minute and all primes up to 2^32 in less than 3.5 minutes on a 133MHz Pentium CPU
Of dit:
bron: http://cr.yp.to/primegen.htmlprimegen is a small, fast library to generate prime numbers in order. It generates the 50847534 primes up to 1000000000 in just 8 seconds on a Pentium II-350
Je kan zo de source downloaden
En dat alles binnen 10 minuten gevonden...
[ Voor 49% gewijzigd door MLM op 29-01-2005 15:15 ]
-niks-
jij zocht op een naam van een algoritme... ik zocht op vagere termen... dus dat maakt wel wat...MLM schreef op zaterdag 29 januari 2005 @ 15:07:
[...]
Dan moet je mss leren googelen?
http://www.google.nl/sear...+eratosthenes+C%2B%2B&lr=
eerste hit, zelfs in ASM geprogt, ik bedoel hoeveel sneller wil je het maken?
Edit:
En om nog ff te laten zien hoe snel het kan, lees ook ff de 6e hit:
[...]
Edit 2:
Of dit:
[...]
bron: http://cr.yp.to/primegen.html
Je kan zo de source downloadeneen leuke programming contest zou dat worden
En dat alles binnen 10 minuten gevonden...
maar oki je hebt een punt
ASSUME makes an ASS out of U and ME
- Discussies hier hebben vaak de neiging om helemaal af te dwalen van het originele onderwerp en te eindigen in een flamewar over protocollen, programmeertalen en priemgetallen
- Ten tweede: KISS (keep it simple, stupid!). Maak het geheel niet te ingewikkeld. Er zijn ook mensen hier die nog niet zo ver zijn met het programmeren van AI's. Ik heb geen zin om rekening te houden met de wrijvingcoefficient van mijn linkerrupsband bij de terugslag van het afvuren van een raket, om maar een extreem voorbeeld te geven
Voorzover mijn bijdrage, ik hoop jullie binnenkort aan gort te schieten!
Onvoorstelbaar!
Toch snap ik niet waarom ASM sneller is dan bijv. C. Want een compiler zet programmeertalen toch ook in ASM in principe?MLM schreef op zaterdag 29 januari 2005 @ 15:07:
Dan moet je mss leren googelen?
http://www.google.nl/sear...+eratosthenes+C%2B%2B&lr=
eerste hit, zelfs in ASM geprogt, ik bedoel hoeveel sneller wil je het maken?
Verwijderd
ASM hoeft ook niet sneller te zijn, het hangt er maar helemaal vanaf hoe je programmeert. Wel kan je in asm zelf kiezen welke registers je gebruikt, en als je dat slim doet gebruik je minder (langzame) geheugenlocaties..JER00N schreef op zaterdag 29 januari 2005 @ 16:24:
[...]
Toch snap ik niet waarom ASM sneller is dan bijv. C. Want een compiler zet programmeertalen toch ook in ASM in principe?
Maar laten we aub. inderdaad ff naar het hoofdonderwerp terugkeren.. Ik sluit me aan bij het feit dat het niet TE ingewikkeld moet worden.
enorm mee akkoord.writser schreef op zaterdag 29 januari 2005 @ 16:22:
Ik ben geen vaste klant hier, maar de tank-competitie lijkt me een erg leuk plan. Heb zelf ook al eens wat geklooid met robowars en getracht zelf zo'n server op te zetten (wat, zoals het hoort bij een hobbyproject, na een tijdje werd afgeblazen). Ik wil even twee dingen onder de aandacht brengen:
- Discussies hier hebben vaak de neiging om helemaal af te dwalen van het originele onderwerp en te eindigen in een flamewar over protocollen, programmeertalen en priemgetallen. Laten we dat deze keer proberen te voorkomen. Robowars is een uitstekend idee, daar zijn de meesten hier het wel over eens. Mietje en Creepy zijn al bezig met een framework, wij nog niet, dus we moeten niet te kritisch zijn. Beter een halfbakken robowars competitie dan een discussie over een perfecte competitie. Ik stel dan ook voor dat zij in grote lijnen bepalen hoe de competitie eruit gaat zien. Ben je het er niet mee eens, maak dan zelf maar een framework.
- Ten tweede: KISS (keep it simple, stupid!). Maak het geheel niet te ingewikkeld. Er zijn ook mensen hier die nog niet zo ver zijn met het programmeren van AI's. Ik heb geen zin om rekening te houden met de wrijvingcoefficient van mijn linkerrupsband bij de terugslag van het afvuren van een raket, om maar een extreem voorbeeld te geven. Tanks moeten rijden (constante snelheid), schieten (constante snelheid, constante schade), scannen en ze hebben een schild. Misschien twee soorten kogels, maar maak het in godsnaam niet te ingewikkeld. Op die manier is de drempel om mee te doen zo laag mogelijk. En voor de echte die-hards is er toch altijd de uitdaging om een zo geavanceerd mogelijke tank te maken.
Voorzover mijn bijdrage, ik hoop jullie binnenkort aan gort te schieten!
er is helemaal nix tof aan een superingewikkeld systeem te bouwen dat je dan ook nog eens 3 maand kost eer je de eerste test kan doen.
ASSUME makes an ASS out of U and ME
Dan kan ik beginnen.
* MLM heeft er zin an
-niks-
Verwijderd
Ik heb nu anderhalve dag aan de netwerk code besteed, maar dat kan nog wel een paar (programmeer)uurtjes duren, ik moet namelijk flink testen of m'n code die "heartbeat" van 0.1 seconden trekt; het is niet leuk als er deelnemers worden overgeslagen cq. hun commando's een beurt te laat worden uitgevoerd.
Ik ga in principe het protocol hanteren zoals beschreven in het vorige topic, ik zit er alleen nog over te twijfelen of ik expliciet een gameclock ga meenemen in de status informatie die een deelnemer iedere beurt krijgt. Ik kan pas daadwerkelijk cijfertjes aan die energiewaardes van het protocol toekennen als de server zover compleet is dat er proefrondes gedraaid kunnen worden (mogelijk in samenwerking met de modjes of een nog op te zetten contest-organisatie).
Tenzij je echt een supercoder bent is het nog nuttig om wat kritische routines in assembly te programmeren. Maar de compilers van tegenwoordig doen dat met de huidige processoren erg goed, met meer kennis van de processoren dan de gemiddelde ontwikkelaarVerwijderd schreef op zaterdag 29 januari 2005 @ 16:39:
[...]
ASM hoeft ook niet sneller te zijn, het hangt er maar helemaal vanaf hoe je programmeert. Wel kan je in asm zelf kiezen welke registers je gebruikt, en als je dat slim doet gebruik je minder (langzame) geheugenlocaties..
Maar laten we aub. inderdaad ff naar het hoofdonderwerp terugkeren.. Ik sluit me aan bij het feit dat het niet TE ingewikkeld moet worden.
"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney
http://www.toadstool.net/games/omega/index.htm
Staat ook een leuk lijstje met "clones".
Ik denk dat we het tot het eind gesloten moeten houden. Aan het eind kunnen we dan nog kijken om mensen mee willen doen voor allerlei eervolle nominaties.Creepy schreef op donderdag 27 januari 2005 @ 16:03:
Source downloadbaar zouden we wel verplicht moeten stellen.
Kan je er eventueel nog extra competities bij verzinnen zoals kleinst werkende bot, most obfuscated bot, etc. etc.
Wat wel interessant is om 1 of enkele bots open source te maken. Deze kunnen dan als voorbeeld dienen voor beginners. Eventueel kan 1 of meer bots in het openbaar door iedeen ontwikkeld worden. Kijken wat dat oplevert. Misschien moet je ze dan wel een aparte status geven. Huisbot ofzo.
Vraagje:
Bevat het terein meer elementen dan tanks? Bijvoorbeeld rivieren, muren of bomen die je zicht of je beweging of je schoten beperken. Dit maakt het wel ingewikkelder. Misschien iets voor een vervolg (als er tegen die tijd animo voor is).
continu lopende server vs 1 malige battle?
Ik denk met anderen dat de server een tijdje laten lopen en punten uit te delen aan de zich steeds verder ontwikkelende bots interessanter is enkele battles aan het eind van de competitie. Hoewel dat een leuke toevoeging zou zijn.
Dan zeg ik nu vast wat anderen ook al gedacht hadden als ik zeg dat het dan handig is om naast de competitieserver een testserver te starten, waar mensen naar hartelust kunnen proberen. Dit om half-af botjes van de competitie te vermijden en mensen de gelegenheid te geven te experimenteren voor ze met een grote negatieve score zitten. De competitie-server kan dan gestart worden als er voldoende bots zijn.
Verwijderd
Als je nou eens shadow door zou gebruiken om de combat in het spel Neverwinter Nights plaats te laten vinden. Shadow door is in principe een koppeling tussen een character in het spel en een achterliggende AI implementatie. Dit werkt in eerste instantie via C++, maar andere talen kunnen hier ook op gekoppeld worden (ik heb zelf de beginselen liggen voor Java en het is ook al gemaakt voor LISP).
Op deze manier bespaar je je het werk van een 'engine' en de complexere omgeving (meerdere vormen van waarnemen, vele acties mogelijk) en meerdere character mogelijkheden (= 'verschillende typen tanks') maakt de contest des te uitdagender.
Als je niet via Shadow Door wilt werken kun je ook nog altijd een eigen NWN server extensie schrijven die via TCP/IP werkt, dan heb je de taal-compatibility ook weer in orde. Ik heb de sources liggen over hoe je een dergejijke server extensie schrijft als er interesse is in dit plan.
En ook ik wou graag toevoegen dat het volgens mij erg belangrijk is dat je eerst van iets heel simpels uitgaat.. Dan krijg je in eerste instantie meer mensen die bots gaan bouwen, en het project in leven houden. Als dat allemaal goed blijkt te werken; het protocol uitbreiden, zodat je robot ook daadwerkelijk wat slimmer moet zijn..
Enkel Assembly, Java en C ? Waarom geen andere talen toelaten ?silentsnow schreef op vrijdag 28 januari 2005 @ 21:50:
GoT contest lijkt me erg leuk, maar ik kan alleen meedoen als het over het ontwerpen van algoritmen gaat. Assembly, Java en C will doHet priemgetal algoritme vind ik een voorbeeld
* Boegel denkt aan Haskell
boegel - er zijn maar 10 soorten mensen in de wereld: diegene die het binaire stelsel kennen en diegene die het niet kennen
Onvoorstelbaar!
zelfs als je taal dat niet kan.. als hij maar library's kan importeren of dynamisch linkenwritser schreef op dinsdag 01 februari 2005 @ 14:26:
in het geval met de robots kun je elke taal gebruiken, zolang deze maar overweg kan met netwerkverbindingen.
ASSUME makes an ASS out of U and ME
Anders rij je mss 'verloren'
Nog een vraagje over de projectielen.
Uit het vorige topic leid ik af, dat je kunt bewegen en schieten in één beurt, zolang je maar genoeg energy hebt. Maar wat gebeurt er dan eerst?
Wordt er geschoten en dan bewogen, of andersom, ...?
[ Voor 55% gewijzigd door Lukse op 02-02-2005 23:00 ]
Verwijderd
Misschien op de volgorde waarin je je opdrachten stuurt?Lukse schreef op woensdag 02 februari 2005 @ 11:54:
Moet er ook geen limiet geplaatst worden op de grootte van het speelveld?
Anders rij je mss 'verloren'
Nog een vraagje over de projectielen.
Uit het vorige topic leid ik af, dat je kunt bewegen en schieten in één beurt, zolang je maar genoeg energy hebt. Maar wat gebeurt er dan eerst?
Wordt er geschoten en dan bewogen, of andersom, ...?
Bedoel je dat, wanneer je op de grens zit, je nog steeds de info van een circel/vierkant om je heen krijgt, alsof er geen grens bestaat?Verwijderd schreef op woensdag 02 februari 2005 @ 12:31:
Het speelveld heeft een (onbekende) grootte, maar is in zichzelf gekeerd. Dus als je er aan de bovenkant vanaf rijdt, kom je er aan de onderkant weer op. Alle informatie die je krijgt is als ik me het goed herinner relatief, dus heel veel rekening hoef je hier niet mee te houden.
[ Voor 35% gewijzigd door azteke op 03-02-2005 12:12 ]
CMDR azteke || You never get a second chance to make a first impression...
Ja, je moet het speelveld zien als een bol, onbegrensd dus.Bedoel je dat, wanneer je op de grens zit, je nog steeds de info van een circel/vierkant om je heen krijgt, alsof er geen grens bestaat?
Dat heb ik alleszins uit het andere topic kunnen opmaken.
Je hoeft dus geen rekening te houden met grenzen.
Verwijderd
Mwha, juist wel zou ik zeggenLukse schreef op donderdag 03 februari 2005 @ 12:24:
[...]
Ja, je moet het speelveld zien als een bol, onbegrensd dus.
Dat heb ik alleszins uit het andere topic kunnen opmaken.
Je hoeft dus geen rekening te houden met grenzen.
nu moet je rekening houden met het feit dat X:0 Y:0 schuin onder X:999 Y:999 ligt.
dat of alles relatief aan je eigen positie houden, maar welke simpeler of beter word ligt dan weer aan hoe we informatie door krijgen. en hoeveel.
Als je het andere topic even naleest, kan je daaruit afleiden dat je inderdaad relatieve posities doorkrijgt.Mwha, juist wel zou ik zeggen
nu moet je rekening houden met het feit dat X:0 Y:0 schuin onder X:999 Y:999 ligt.
dat of alles relatief aan je eigen positie houden, maar welke simpeler of beter word ligt dan weer aan hoe we informatie door krijgen. en hoeveel.
Het is misschien handig als mietje of iemand anders even alles herhaalt wat er nu vaststaat?
Is dat echt belangrijk?Soultaker schreef op donderdag 03 februari 2005 @ 16:06:
Trouwens, als je de zijden van een rechthoek aan elkaar verbindt, dan krijg je een donut-vorm (a.k.a. een torus) en niet een bol.
Verwijderd
Uit het vorige topic:Lukse schreef op woensdag 02 februari 2005 @ 11:54:
Nog een vraagje over de projectielen.
Uit het vorige topic leid ik af, dat je kunt bewegen en schieten in één beurt, zolang je maar genoeg energy hebt. Maar wat gebeurt er dan eerst?
Wordt er geschoten en dan bewogen, of andersom, ...?
De server voert de bevelen in de volgende volgorde uit (dit is belangrijk voor de eindrichting en eindsnelheid van een afgeschoten projectiel): stuur de tank, schiet, voeg energie toe aan het schild, doe een scan. De resultaten van een scan worden dus pas bij de volgende beurt bekend, maar zijn wel up to date.
Ja, spijtig genoeg...Soultaker schreef op donderdag 03 februari 2005 @ 16:25:
...maar bij gebrek aan inhoudelijke discussie in dit topic...
Verwijderd
Hoe onvollediger de info naar de clients, des belangrijker hun AI wordt.
Verwijderd
Een paar vraagjes:
- In het topic staat een gedeelte van het protocol beschreven. Hierin zijn getallen verwerkt (energie bijvoorbeeld). Zijn dit integers of floats?
- Is het geen idee om er eerst voor een werkende server te zorgen die niets meer doet dan het voorgeschreven protocol, en daarna pas iets als (bijvoorbeeld) gezichtshoek, obstakels of whatever te bouwen?
- Wordt de server open source, en in welke taal wordt deze geschreven?
floats, de richting zelfs tot 12 cijfers na de komma dacht ik- In het topic staat een gedeelte van het protocol beschreven. Hierin zijn getallen verwerkt (energie bijvoorbeeld). Zijn dit integers of floats?
Dat is de bedoeling. Mietje is hiermee bezig, maar ik weet niet hoever hij ermee staat.- Is het geen idee om er eerst voor een werkende server te zorgen die niets meer doet dan het voorgeschreven protocol, en daarna pas iets als (bijvoorbeeld) gezichtshoek, obstakels of whatever te bouwen?
De server wordt in c++ geschreven.- Wordt de server open source, en in welke taal wordt deze geschreven?
Ik weet niet of ie open source wordt, maar ik denk het niet.
Je hebt de source niet nodig om een client te schrijven.
Eventuele bugs in de server kunnen dan ook niet zo makkelijk misbruikt worden om te cheaten.
Verwijderd

Niets is zo veilig als een systeem dat niet werktLukse schreef op vrijdag 04 februari 2005 @ 16:26:
Eventuele bugs in de server kunnen dan ook niet zo makkelijk misbruikt worden om te cheaten.

daar heb je gelijk in, maar het moet ook nog een beetje leuk blijven heVerwijderd schreef op vrijdag 04 februari 2005 @ 13:45:
Ideetje: maak de radar-scan niet een volledige cirkel maar verwerk er een gezichtshoek in. En de mogelijkheid een voorwerp over het hoofd te zien (bv door afstand en diens geringe snelheid).
Hoe onvollediger de info naar de clients, des belangrijker hun AI wordt.
nee, opzich een goed idee maar het wordt er wel meteen een stuk moeilijker door. wellicht is er een idee om verschillende niveau's aan te houden?
met een hamer past alles
Ik denk dat daar niet genoeg mensen voor zijn.Punksmurf schreef op vrijdag 04 februari 2005 @ 17:26:
[...]
daar heb je gelijk in, maar het moet ook nog een beetje leuk blijven he![]()
nee, opzich een goed idee maar het wordt er wel meteen een stuk moeilijker door. wellicht is er een idee om verschillende niveau's aan te houden?
Overigens is een scan van een bepaalde rijkwijdt al genoeg imho
Verwijderd
/me steekt voorzichtig zijn vinger op en zegt: Zijn floats wel platform-onafhankelijk?Lukse schreef op vrijdag 04 februari 2005 @ 16:26:
[...]
floats, de richting zelfs tot 12 cijfers na de komma dacht ik
Kunnen we niet gewoon hele grote integers pakken? Dat is in elk geval veilig...
Ugh. Ik hoop eigenlijk van wel. Ten eerste hoort de server geen bugs te hebben (want het hoeft niet zo'n ingewikkeld apparaat te worden), en ten tweede worden eventuele bugs er des te eerder uitgevist als het programma open soers is.Ik weet niet of ie open source wordt, maar ik denk het niet.
[ Voor 9% gewijzigd door Verwijderd op 04-02-2005 18:50 ]
Misschien dat na een 1e wedstrijd de server alsnog vrijgegeven wordt, danwel er genoeg animo is om meerdere vertakkingen te onderhouden (met bijv. uitgebriedere mogelijkheden).
Gewoon lekker afwachten wanneer mietje klaar is.
{signature}
Die 0.1 seconde is toch helemaal niet belangrijk? Je werkt gewoon met een tijdseenheid, een 'tick', als de server klaar is met berekenen stuurt ie naar alle clients de resultaten. Dan heb je bijvoorbeels 2seconde om te reageren met je volgende move/actie. Als alle robots nog leven kan de server waarschijnlijk eerde verder. die 2sec is een timeout (als er een robot offline gaat).Verwijderd schreef op zondag 30 januari 2005 @ 18:47:
ff een update:
Ik heb nu anderhalve dag aan de netwerk code besteed, maar dat kan nog wel een paar (programmeer)uurtjes duren, ik moet namelijk flink testen of m'n code die "heartbeat" van 0.1 seconden trekt; het is niet leuk als er deelnemers worden overgeslagen cq. hun commando's een beurt te laat worden uitgevoerd.
[..]
Koop of verkoop je webshop: ecquisition.com
Verwijderd
Liever niet, want je wilt de tijd tussen de ticks in optimaal benutten neem ik aan. Des te meer tijd tussen de ticks, des te hoger je je AI kunt maken. Een constante interval tussen de ticks lijkt mij wel handig.mocean schreef op vrijdag 04 februari 2005 @ 19:22:
[...]
Als alle robots nog leven kan de server waarschijnlijk eerde verder.
Euhm, floats zijn toch gewoon getallen met een aantal cijfers na de komma...Verwijderd schreef op vrijdag 04 februari 2005 @ 18:49:
/me steekt voorzichtig zijn vinger op en zegt: Zijn floats wel platform-onafhankelijk?
Ik denk dat 34.345328 wel platformonafhankelijk is
Verwijderd
Verwijderd
Vind ik een non-argument, want dan probeer je er een waarde in te stoppen die niet in het bereik van het datatype ligt. Dat is niet hetzelfde probleem als optreedt bij het gebruik van een float.Soultaker schreef op vrijdag 04 februari 2005 @ 21:37:
Bij integers heb je net zo goed het probleem dat je geen idee hebt hoe nauwkeurig ze zijn. Floats zijn juist een stuk betrouwbaarder omdat je ze altijd wel ongeveer correct kan representeren; het verschil tussen 0.99 en 0.989999999999 is gewoon verwaarloosbaar. Als je echter 'drie miljard' in een 32-bits signed integer stopt wordt 't -1294967296. Nu mag jij kiezen wat je liever hebt.
Maargoed; het gaat me meer om de communicatie. Aangezien ik alleen overweeg om mee te doen in Python hoop ik niet dat er dadelijk ruwe C++ floats over het netwerk gegooid gaan worden. Al zal het met een beetje gegoochel en de struct module daar ook wel in lukken.
een mooie XML interface lijkt me ook wel handig :-)Soultaker schreef op vrijdag 04 februari 2005 @ 23:05:
In binaire vorm zijn floats inderdaad niet portable (ook niet binnen C/C++ trouwens) maar ik ga er vanuit dat er een soort tekst-protocol gemaakt wordt.
Koop of verkoop je webshop: ecquisition.com
Verwijderd
Ik hoop heel erg dat dat een grapje was...mocean schreef op vrijdag 04 februari 2005 @ 23:20:
[...]
een mooie XML interface lijkt me ook wel handig :-)
Gebeurt er nog wat, of hoe zit dat?
Dan zou ik ze niet als een decimaal getal representeren in text, dat wordt veel te onnauwkeurig. Bovendien ken ik geen platform die een 32 bits float niet als 1 sign-, 8 exponent- en 23 mantissabits representeert. Ik zou de textuele representatie dan ook op die manier doen.Soultaker schreef op vrijdag 04 februari 2005 @ 23:05:
In binaire vorm zijn floats inderdaad niet portable (ook niet binnen C/C++ trouwens) maar ik ga er vanuit dat er een soort tekst-protocol gemaakt wordt.
Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.
Niet alle talen kunnen daar even makkelijk mee omgaan. Nu zijn er voor de meeste talen wel libraries te verkrijgen die dat doen en het zal in dit geval niet zo complex zijn dat het niet met de hand te schrijven is. Toch lijkt het me handiger om met een simpele string te werken, deze is in vrijwel alle (hier bruikbare) talen met een of twee regels te converteren naar het formaat dat de programmeur wil. Minder overhead betekent meer tijd voor het daadwerkelijke probleem (AI). Verder zal het programma iha sneller kunnen draaien met minder overhead, waardoor er meer rekentijd voor de AI overblijft (voor zover nodig).mocean schreef op vrijdag 04 februari 2005 @ 23:20:
[...]
een mooie XML interface lijkt me ook wel handig :-)
[ Voor 16% gewijzigd door ritsjoena op 07-02-2005 11:16 ]
Valt toch wel een beetje mee? Gewoon een kwestie van genoeg significante cijfers printen, lijkt me? Een kleine afwijking is dan niet zo belangrijk en lijkt me zelfs bij een float (23-bits precissie) beperkt tot minder dan 1 miljoenste deel (ik hoop sowieso dat de server intern doubles gebruikt en die ook print, maar stel dat je ze inleest als float)..oisyn schreef op maandag 07 februari 2005 @ 10:48:
Dan zou ik ze niet als een decimaal getal representeren in text, dat wordt veel te onnauwkeurig.
Er zullen vast nog wel wat vage floating point processors zijn die er andere formaten op na houden, maar die zul je op een general purpose hardware platform vast niet tegenkomen. Wat dat betreft heb je wel gelijk. Toch lijkt een binary formaat me ingewikkelder (ook met het oog op debugging). Maar goed, het is misschien het beste als Mietje het laatste woord heeft.Bovendien ken ik geen platform die een 32 bits float niet als 1 sign-, 8 exponent- en 23 mantissabits representeert. Ik zou de textuele representatie dan ook op die manier doen.
ik stel ook niet voor om een binary formaat te kiezen, slechts om de exponent en mantissa in gehele getallen uit te drukken zodat je 0 precisionloss hebtToch lijkt een binary formaat me ingewikkelder
Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.
Onvoorstelbaar!
Verwijderd
Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.
Go Mietje, Go Mietje...
[/supportermode]
laten we niet in stommigheden vervallen ondertussen over floats en andere zooi.
ASSUME makes an ASS out of U and ME
If you can't beat them, try harder
Mietje, kun je ons een update geven over hoe ver je staat?
If you can't beat them, try harder
Onvoorstelbaar!
mietje, kom eens terug van vakantie ofzo
-niks-

ASSUME makes an ASS out of U and ME
Misschien is het handig als mietje maandag nog niet terug is, iemand anders een spelomgeving met protocol specificieert? Het is ook fijn om een referentie-implementatie te hebben. Op zich lijkt het mij handig als er twee mensen zijn die daar aan werken (eentje aan de specificatie en eentje aan de implementatie).
Mietje zijn laatste bezoek is van:
dinsdag 01 februari 2005 15:04
The best thing about UDP jokes is that I don't care if you get them or not.
Ik wil eventueel wel 1 van de 2 taken doen, als iemand anders dan de 2e op zich neemt
-niks-
Hieruit begrijp ik nl dat het al zo goed als af is.Verwijderd schreef op zondag 30 januari 2005 @ 18:47:
ff een update:
Ik heb nu anderhalve dag aan de netwerk code besteed, maar dat kan nog wel een paar (programmeer)uurtjes duren, ik moet namelijk flink testen of m'n code die "heartbeat" van 0.1 seconden trekt; het is niet leuk als er deelnemers worden overgeslagen cq. hun commando's een beurt te laat worden uitgevoerd.
Ik ga in principe het protocol hanteren zoals beschreven in het vorige topic, ik zit er alleen nog over te twijfelen of ik expliciet een gameclock ga meenemen in de status informatie die een deelnemer iedere beurt krijgt. Ik kan pas daadwerkelijk cijfertjes aan die energiewaardes van het protocol toekennen als de server zover compleet is dat er proefrondes gedraaid kunnen worden (mogelijk in samenwerking met de modjes of een nog op te zetten contest-organisatie).
De wereld ligt aan je voeten. Je moet alleen diep genoeg willen bukken...
"Wie geen fouten maakt maakt meestal niets!"
Maar anders moeten maar wel overwegen om wat anders in elkaar te drukken.
Na anderhalve dag?questa schreef op zondag 20 februari 2005 @ 12:58:
Mietje is als ik zo bekijk eigelijk ook zo goed als klaar,
Das wel snel dan, en niet echt afgewerkt dan.
Heeft iemand dat meeltje al gestuurd?
-niks-
Ik zou wel willen, maar hij heeft geen e-mailadres in z'n profile staan (en ook geen MSN of ICQ adres). Misschien dat een moderator een mailtje kan sturen, of is dat tegen de privacy policy?MLM schreef op zondag 20 februari 2005 @ 20:44:
Heeft iemand dat meeltje al gestuurd?
[ Voor 3% gewijzigd door Soultaker op 21-02-2005 17:24 ]
gedaan: wacht op antwoord
antwoord gekregen, ga een meel maken morgen, zal hier een kopietje zetten.
dan geven we mietje tot woensdag om te reageren, daarna nemen andere mensen het over van mietje
[ Voor 91% gewijzigd door MLM op 21-02-2005 20:27 ]
-niks-
Verwijderd
Noem die jongen nou gewoon eens bij z'n naam, mietje
Ik heb overigens wel intresse maar vrees te weinig tijd te hebben...
[ Voor 16% gewijzigd door RobIII op 22-02-2005 17:24 ]
There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.
Je eigen tweaker.me redirect
Over mij
Het is hopelijk wel mogelijk om op de scan de naam/unieke tag van de bot te zien, zodat je zijn individuele bewegingen kunt tracken? Ik vind dat er wel enige manier van herkenning moet zijn
Verwijderd
maar heb je kans dat je grapjassen krijgt die alleen maar achter 1 persoon aan gaat ? Dat kan ook niet helemaal de bedoeling zijn.Pulsher schreef op dinsdag 22 februari 2005 @ 17:56:
Vraagje:
Het is hopelijk wel mogelijk om op de scan de naam/unieke tag van de bot te zien, zodat je zijn individuele bewegingen kunt tracken? Ik vind dat er wel enige manier van herkenning moet zijn
als de bots een uniek random code krijgen of zo. Zou wel leuk zijn. Kun je bijhouden tijdens een run hoe de tactiek is van zo bot en je eigen bot daarop in laten spelen.
Volgens mij begrijp ik je verkeerd, maar of die bots nou een random code of een naam (nick?) krijgen maakt toch niet uit? En juist achter 1 persoon aan gaan is ook een tactiek, en lijkt me gewoon "geldig". Wel mag je wat mij betreft niet "samenspannen" om er 1 te pakken te krijgen (tenzij er nog maar een paar over zijn wellicht?)Verwijderd schreef op dinsdag 22 februari 2005 @ 22:31:
[...]
maar heb je kans dat je grapjassen krijgt die alleen maar achter 1 persoon aan gaat ? Dat kan ook niet helemaal de bedoeling zijn.
als de bots een uniek random code krijgen of zo. Zou wel leuk zijn. Kun je bijhouden tijdens een run hoe de tactiek is van zo bot en je eigen bot daarop in laten spelen.
There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.
Je eigen tweaker.me redirect
Over mij
Verwijderd
Verwijderd
Maar identificatie van een bepaalde speler over meerdere rondes lijkt me ook wel mogen. Dan kun je bijvoorbeeld in "vendetta" gaan tegen een bot die je in een vorige ronde gedood heeft
En als de gevechten een beetje goed gelogd en gevisualiseerd kunnen worden, dan kan er altijd nog menselijk ingegrepen worden bij onsportief gedrag.
Ik stel voor dat hij tot en met donderdag heeft om te antwoorden, vrijdag gaat iemand anders verder met mietje's werk.Beste Mietje,
Deze meel gaat over de GoT Programming Contest ([rml][ Alg] Nieuwe GoT contest?[/rml]), waar een heleboel geinteresseerden voor zijn. Jij hebt destijds de organistatie van de contest voor je rekening genomen, en een server gebouwd. We zijn je zeer dankbaar, maar je hebt nu al lange tijd nix meer van je laten horen.
We zouden graag willen weten of je nog mee wilt helpen met de contest, Zo ja, reply dan ff in het draadje Zo nee, reply dan ff in het draadje, stuur mij (of iemand anders) de code die je al hebt gemaakt, zodat wij het niet helemaal opnieuw hoeven te doen.
Als je om de 1 of andere persoonlijke reden niet wilt replyen, stuur me dan een meeltje terug, dan zorg ik dat het op GoT komt.
Hopend snel iets van je te horen & met vriendelijke groeten, MLM
-niks-
Als iemand anders de server verder gaat maken hoe gaat dat dan werken? Wordt ie nu wel open-source, krijgen we al inzicht in het protocol (als dat er al in zit) etc?
www.fendt.com | Nikon D7100 | PS5
Protocol lijkt me genoegKayshin schreef op woensdag 23 februari 2005 @ 11:21:
Ik denk dat we wel idd bepaalde code nodig hebben ivm communicatie met de server ofzo...
There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.
Je eigen tweaker.me redirect
Over mij
Op het verkeerde bericht gereageerd. =)
Nogmaals: naar mijn mening hebben we enerzijds een specificatie nodig (beschrijving van de spelwereld en specificatie van het netwerkprotocol) en anderzijds een referentie-implementatie waarmee getest kan worden (ofwel een online testserver, ofwel een downloadbare testserver).
[ Voor 255% gewijzigd door Soultaker op 23-02-2005 13:29 ]
maar die specificatie ligt bij mietje denk ik
maar iemand anders kan er vast ook 1 verzinnen
-niks-
Perfect, dit hoop ik ook. Ik wil namelijk per bot bij gaan houden waar deze zich bevind, en een aantal andere data. Anders is het zo lastig beweging te trackenVerwijderd schreef op dinsdag 22 februari 2005 @ 23:19:
Bij een random code die de server dan geeft aan een bot. Weet je dus nooit welke bot nu bij welke speler word. Dus je kan zeg maar niet persoonlijk worden. Wel kun je gewoon richten op een bepaalde target. Bijvoorbeeld omdat die al bijna aan zijn einde is. Easy kill
Onvoorstelbaar!
Verwijderd
Het programmeren van de server kan ik alleen niet.
maar dat is dus pas, als mietje morgen niet reageert op mijn meel
-niks-
Bots moeten wel een nick aan de server kunnen doorgeven.Verwijderd schreef op dinsdag 22 februari 2005 @ 23:19:
Bij een random code die de server dan geeft aan een bot. Weet je dus nooit welke bot nu bij welke speler word. Dus je kan zeg maar niet persoonlijk worden. Wel kun je gewoon richten op een bepaalde target. Bijvoorbeeld omdat die al bijna aan zijn einde is. Easy kill
Anders weet niemand van wie de winnende bot is
* Hagar wins the match !
Nu ook zonder stropdas
Mooi, dat is fijnMLM schreef op woensdag 23 februari 2005 @ 19:55:
ik prog wel een server dan... probleem is ik heb geen serv om op te testen (wegens niet-door-mij-configureerbare-NAT op mijn kamer), thuis kan ik het wel testen, maar daar kom ik komende anderhalve week niet, dus als iemand daar iets voor heeft, dan doe ik het wel
maar dat is dus pas, als mietje morgen niet reageert op mijn meel
Grrr, je jatte mijn naam! Zo wilde ik mijn bot noemenHagar schreef op donderdag 24 februari 2005 @ 02:34:
[...]
Bots moeten wel een nick aan de server kunnen doorgeven.
Anders weet niemand van wie de winnende bot is
* kunnen wins the match !
Geweldig, zou super zijn. Want het moet niet zo zijn dat we in /14 geen progger kunnen vinden voor de serverMLM schreef op woensdag 23 februari 2005 @ 19:55:
ik prog wel een server dan... probleem is ik heb geen serv om op te testen (wegens niet-door-mij-configureerbare-NAT op mijn kamer), thuis kan ik het wel testen, maar daar kom ik komende anderhalve week niet, dus als iemand daar iets voor heeft, dan doe ik het wel
maar dat is dus pas, als mietje morgen niet reageert op mijn meel
betekent dat ik geen server heb, dus iemand moet een server hebben waar ik op de 1 of andere manier files kan dumpen, en ook een prog kan starten (server executable). De vraag is of iemand wel zo'n server beschikbaar wil stellen...probleem is ik heb geen serv om op te testen (wegens niet-door-mij-configureerbare-NAT op mijn kamer), thuis kan ik het wel testen, maar daar kom ik komende anderhalve week niet, dus als iemand daar iets voor heeft
-niks-
Dit topic is gesloten.
Voor je ideeën spuit over een nieuwe contest, bedenk dan dat in principe alle talen mee mogen doen en het derhalve vooral gaat om algoritmische implementaties, niet low-level optimalisaties waarin native talen vrijwel altijd een voordeel zullen hebben