bbr's People
bbr's Issues
Vise aktivering av poster på scoreboard
Label med lagnavn vises ikke når spilles kjøres
Nye navn på VS-prosjektene
Til "Bouvet.BouvetBattleRoyale."? Pluss tenke på navn ift skallmodellen:
"Bouvet.BouvetBattleRoyale.Application",
"Bouvet.BouvetBattleRoyale.Core",
"Bouvet.BouvetBattleRoyale.Infrastructure"
Ideer/tanker?
Infisert sone blir beregnet feil, eller kartet viser ikke korrekt på koordinat
Dersom man tegner infisert sone, og starter spillsimulatoren er det caser hvor meldingen sier infisert, og lokasjon vises på kart utenfor, og omvendt.
Simulator for spillflyten (Game monkey)
En konfigurerbar simulator som kan kjøre gjennom et spill slik det vil gjennomføres under selve arrangementet.
Implementere funksjon for smittede soner / faresoner
Det vil til enhver tid være områder på øya hvor man vil få minuspoeng for å oppholde seg. Disse sonene skal kunne administreres. De skal også kunne publiserer til PIF og Base.
Lage kobling mellom lag og poster de skal igjennom ila konkurransen
F.eks. ny property på Lag: List RegistrertePoster
Legge inn feillogging
Uhåndterte feil eller feil som skjuler seg bak CustomErrors kunne vært kjekt å hente ut.
Tanker rundt dette? Lage en /errors/get og bruke Log4Net med FileAppender f.eks.?
Er en ekstra trygghet å ha "i drift".
DB - Sett opp tabeller
Oppgaven er todelt:
- Bestemme persisteringsstrategi, tablestorage, documentDB.
- Bestemme tabelloppsett.
Hittil ser oppsettet slik ut:
Aktivitetslogg
- LagId, Hendelsestype, Tid
Meldinger
- LagId, Type, Tekst, Tid
PifPosisjoner
- LagId, Latitude, Longitude, Tid
Gjennomfør en lasttest
Liker ikke disse DocumentDB-feilene så tenker å gjennomføre en massiv post-spamming for å opprette 1000-vis av documents. Bør være en grei smoketest for å finne ut av om noe må rekonfigureres i Azure-portalen.
Planen er å bruke LagController og spamme Create() og bruke en egen DocumentDB-database for denne testen
POST api/game/base/sendpifmelding og GET api/game/pif/hentmeldinger/ bør ha samme type for "Type"-feltet
Slik det er i dag så returnerer GET api/game/pif/hentmeldinger/ et tall som Type, mens POST api/game/base/sendpifmelding kan benytte en streng for å sette Type. Det bør være harmoni mellom disse.
Implementere tildeling av score
Api'et må tildele score til lagene etterhvert som de registrerer koder fra postene
Må bestemme:
- Når skal det tildeles poeng i API'et
- Hvor mye poeng skal tildeles
- Trekk poeng når man er i infisert sone
API - Implementer RegistrerGeoPosisjon()
Dersom man laster inn infisert siden, kan man ikke fjerne sonen
Dette er litt merkelig, men man må først tegne 2 nye polygoner for freedraw skjønner at man tar delete....
Dersom man starter med blanke ark, fungerer det fint
Authentication
Man trenger en måte å identifisere klient for hvert api-kall. Akkurat nå er det bare satt opp LagId:string i hver inputmodel. Dette er slitsomt, og har åpenbare sårbarheter.
Det er blitt foreslått at man sender med id i request headeren. Vurder også om man burde ha noe mer sikkerhet, men husk at det må være lett å implementere for lagene.
Enkleste måte å authenticate er vel å sette på en auth attr på controlleren.
Lage en dump av "end state" på spillet til json-filer
Vise "skade" ved opphold i infiserte soner på scoreboard
Vi snakket om "flying numbers" som viser skade ved opphold i infiserte soner.
Slett alt som har med PostRepo og PostService, PostController + tester
Vi koblet post direkte mot Lag-objektet og da trenger vi ingen PostController, PostService eller PostRepo. Slett!
AktivitetsLogg
API - Implementer HentPifPosisjon()
Finne en god måte å både ha en lean struktur for Lag og Poster, samtidig som man kan bygge et arkiv med logghendelser, meldinger, pifposisjoner
Å ha en liste på Lag med PifPosisjoner, Meldinger og LoggHendelser førte til altfor stor og tungt Lag-objekt å sende over-the-wire til DocDB. Enten så bør vi sette en maksgrense for hver liste eller så bør dette lagres async til et arkiv. Målet bør være å ha så tynne objekter som mulig under spillet for Lag, Post og GameState
Legge inn Ddos/High request rate-beskyttelse på api-metoder basert på IP
For å mitigere risiko for feil lengre ned i kodekjeden ved veldig høy request-rate kan vi legge på Ddos-beskyttelse i api-metodene. F.eks. sette opp at en IP kan maks sende 1 req/sek.
Å støtte høy request-rate ned i repo er en annen issue som krever en litt annen løsning.
api/game/base/sendpifmelding må være strengere på input
Slik det er nå så vl jeg kunne sende inn input som ser slik ut til api/game/base/sendpifmelding:
{
"Type": "Himmelretning",
"Tekst": "Det brenner på dass",
"LagId": "175"
}
Det burde ikke være mulig, da dette kan utnyttes til å jukse med fritekstmeldinger. Forslaget er å gjøre input av alle meldingstyper strengere.
Meldingstype Lengde bør være et tall
Meldingstype Stopp bør være bool
Implementere admin-side
Implementere en admin-controller som tilbyr visning av lagrede data
API - Implementer RegistrerKode()
implementere sending og henting av Base/Pif meldinger
Legge inn Knockout på Scoreboard.html
For å rydde i js-koden og restrukturere og gjenbruke kalkulerte verdier kan vi se på å bruke Knockout.
- ScoreboardViewModel
- getLagListe(), getPostListe(), getInfisertSone()
Implementer AktivitetsLogg modul
AktivitetsLogg skal logge viktige hendelser som blir triggered av api-kall.
Skal logge HendelsesType, Tid, LagId.
Vi diskuterte at det ikke er nødvendig å logge endringer GeoPosition
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.