Minhas idéias...

Discussion in 'TabaHost General Discussion' started by Saddan, Apr 22, 2006.

  1. Saddan

    Saddan Well-Known Member

    Joined:
    May 4, 2003
    Messages:
    348
    Location:
    Olinda, Pernambuco, Brazil
    Minhas idéias...

    Eu vi o tabahost e gostei muito. Maravilhoso trabalho de voces.

    Eu tive algumas idéias, espero que não sejam mal recebidas, falo sem conhecimento do código atual nem das funções que já estão incorporadas nele :

    - Eu vi que existe um limite de 130 entidades globais :

    pensei na seguinte solução, tomando a arena FH atual (aquele mapa com a africa do norte) como exemplo :

    - um piloto em F1 não tem a minima nocao do que ocorre em F17, por exemplo.
    - normalmente as distancias envolvidas e a velocidade dos drones é tão lenta que eles podem ser considerados semi-estáticos.

    Portanto, poderia ser feito um tipo de "drone cache" :

    O FE do piloto só toma conhecimento das últimas 130 unidades com as quais teve contato, considerando "contato" como sendo uma distância especifica (digamos 500000 feets).
    Toda vez que o piloto está para entrar em contato com uma unidade, a última unidade do cache é removida para abrir espaco para essa nova unidade.

    Outro ponto, o rádio :

    Os rádios daquela época tinham alcançe limitado, poderia ser considerado cada elemento da arena, possuidor de rádio, tanto estatico quanto móvel, como sendo um repetidor potencial :

    Os rádios teriam um limite de alcançe, baseado em dados históricos, sendo impossivel um piloto em F1 (por exemplo) contatar um piloto em F17, ou mesmo a própria torre desse field...

    Existindo um campo com radio ativo, cuja distância permita alcançe eletromagnético tanto para o aviao em F1 quanto para o avião em F17, esse radio faz a "ponte" entre os dois pilotos permitindo que os mesmos se comuniquem...

    Havia uma dificuldade de comunicacao terrivel nessa época, os rádios eram bastante primitivos e ao mesmo tempo era difícil impedir que o inimigo ouvisse seus sinais (ou seja, quem você queria que ouvisse, não ouvia e quem você nao queria que ouvisse, podia ouvir...)

    Radar :

    Atualmente a cobertura de radar se limita aos campos, o que não é realistico.
    Existiam centenas de estações de radar (algumas até móveis) em toda a europa. (Vide radar Freya alemão, ou Home guard britânico).

    Poderiam ser adicionados fixos de radar por todo o mapa, evelopando boa parte do cenário, conforme fatos históricos (os japoneses tiveram algumas dificuldades em cobrir os territórios conquistados com radares, e os radares alemães na europa oriental sofriam constantes ataques de sabotadores, comandos, etc).

    Por outro lado, sempre existiu uma guerra de eletrônica e contra-eletrônica, os buffs reds, por exemplo, lançavam cortinas de chaff (pequenos pedaços de alumínio) que causavam ecos radar falsos e dificultavam a operação), e também haviam aviões bombardeiros convertidos especialmente para missões de escuta e embaralhamento (Jammer).

    Poderia ser adicionado dois novos comandos, para os buffs :

    .chaff : cria ecos falsos na área em que o buff está, centenas deles.
    .jammer [on|off[ : ativa/desativa o jammer onboard, fazendo os radares da área ficarem cegos.

    Não sei se é possível adicionar novas estruturas aos mapas atuais, como "Forward radar huts". O que eu sei é que os bombardeiros aliados não entravam no espaço aéreo alemão sem serem notados. (A nao ser o mossie e os bombers que vinham à baixa altitude)

    Por outro lado os radares da época tinham desempenho à baixa altitude sofrível, baixo PRF e o fato de não terem capacidade Doppler, faziam com que interceptações abaixo de 5000 feet serem baseadas em testemunhas oculares, oráculos, etc, tudo menos radar... Somado a isso, quando tais radares tentavam (focavam) baixas altitudes, surgiam centenas de ecos falsos provenientes da supefície e dos "Side lobes" (nenhum radar tem apenas um lóbulo de deteção, a maioria tem cerca de 5 principais, na verdade infinitos, mas os que vem depois desses 5 normalmente sao menores que o próprio comprimento de onda, sendo despercebidos).


    ......................2
    .......................\....3.....
    .........................\..|.....
    ...........1----------------R.....
    ........................./..|.....
    ......................./....5.....
    .....................4

    R = Radar

    !, 2, 3, 4 Lobes



    É meio complicado de desenhar com ascii :p

    Os operadores não tinham como saber se um alvo (alias, tinham, mas deixa isso pra depois) estava em 1, 2, 3, 4 ou 5, pois todos apareciam como sendo o mesmo eco... A única forma de diferenciar era "rodando" a antena de forma a comparar a "força" dos ecos conforme eles passavam em 1 e com isso diferencia-los, ou seja, não era algo simples ou imediato...

    Alguns radares como o Home Guard (O freya conseguia) nem isso conseguiam fazer, tinham multiplos ecos e pronto. (Por isso eles criaram lá aquela central de informações, pra cruzar os dados dos multiplos radares e saber o que era o eco realmente).

    Daí, poderia ser colocado um "delay de deteção", correspondente à época da guerra e à tecnologia envolvida, inicialmente os alvos apareceriam embaralhados e marcados em branco, enquanto os operadores (no caso, o server) fazia toda a triagem necessária para determinar altura, velocidade, tipo de alvo e que alvo o buffer ia atacar (estimado).

    As acks pesadas dependiam dessa informação para montar barragens.

    Assim que o processo fosse concluido, o host enviaria uma mensagem para quem estivesse proximo do field ou unidade de radar de solo indicando o alvo, sua velocidade, altitude, direção, etc... Sendo que, alvos muito próximos entre si seriam considerados "formação". (pra evitar repeticao de mensagens)

    -HOST- Alarm ! Buffers at X, Y Speed 000 Alt 000 Heading 000

    à partir daí os buffers passam a ter marcação Red ou Gold.

    Caso estivessem dotados de jammers ou usassem chaffs (chaffs teriam quantidade limitada), alguma dessas informações apareceriam deturpadas :

    -HOST- Alarm ! Buffers at X, Y Speed (cannot determine) Alt (cannot determine) Heading (cannot determine).

    Seria adicionado um novo comando :

    .interception <radar unit>

    Que atualizaria essa informação para o piloto, adicionando um vetor de interceptação :

    -HOST- Buffers at X, Y Speed 000 Alt 000 Heading 000
    -HOST- Alt 000 Vector 000 Speed 000, interception point at X, Y

    Uma mensagem dessas para cada grupo de alvos na área.

    Se o radar nao soubesse nada sobre alvos na área, responderia

    -HOST- No targets reported in our area of coverage.

    Field Chain :

    Seria construído um banco de dados de rotas, necessário para várias operações :

    Rotas aéreas, rotas navais, rotas terrestres, ligando cada estrutura do mapa, de forma que, quando um buffer estivesse perdido, poderia acionar o comando :

    .waypoint <target>

    E o host responderia (se houver um radio hut próximo o suficiente)

    -HOST- Your next waypoint to <target> is X,Y
    -HOST- Vector 000

    Indicando o waypoint mais próximo do piloto, motorista, etc, que leve ao alvo <target>. Se você não quiser seguir uma rota já manjada, TE VIRA.

    .homebase

    Indica que rota seguir para voltar à base de onde você decolou

    -HOST- Home base vector 000.

    ao comando .field seria adicionado um vetor :

    .field fX

    -HOST- Field F00 Side (Red) Status (CLOSED) Capture (TRUE) Vector (000).

    Blackboard AI :

    Esse mesmo field chain seria usado no field supply system, utilizando um sistema de inteligência artificial (Blackboard).

    A blackboard AI controlaria a maior parte dos efetivos terrestres e navais, inclusive o porta aviões. Os canais que ficam restritos à cada lado (101, 103) seriam usados para informar os eventos da AI.

    O funcionamento é simples :

    Toda vez que uma unidade detectasse algum tipo de alvo (visualmente), geraria no canal correspondente ao lado a seguinte mensagem :

    UnitXX: Visual contact <targettype> at X, Y

    essa mesma mensagem seria codificada em um Queue, no servidor :

    (eu nao sei C++ :p)



    Type
    TWBUnitIDType = Longint;

    TWBMapPosition = Record
    X, Y : Real;
    End;

    TWBMissionType = (MiInterception, MiJABO, MiLevelBomb, MiTankFight, MiSEAD, MiAirDefence, MiRessuply).

    TBlackBoardMessageKind = (MsgContact, MsgUnderAttack, MsgAttacking,
    MsgDestroyed, MsgOutOfFuel, MsgOutOfAmmo, MsgOutOfSpares, MsgFieldClosed, MsgFieldOpen, MsgSendingAmmo, MsgSendingFuel, MsgSendingSpares);

    TWBUnitType = (UnitFighter, UnitBomber, UnitTank, UnitArtillery, UnitNaval, UnitSubmarine, UnitHalftrack, UnitHeavyBomber, UnitLightFlak, UnitHeavyFlak);

    TWBWarningLevel = (LvIngore, LvLow, LvMed, LvHigh, LvExtreme);

    TWBSide = (Red, Green, Purple, Gold);

    TBlackBoardMessage = Record
    Sender : TWBUnitIDType;
    Position : TWBMapPosition;
    Mission : TWBMissionType;
    Kind : TBlackBoardMessageKind;
    Threat : TWBUnitType;
    Level : TWBWarningLevel;
    Side : TWBSide;
    Attrib : Byte;
    Time : TDateTime;
    Expires : TDateTime;
    End;

    TBlackBoardQueue = Array Of TBlackBoardMessage;



    Toda vez que ocorrer um evento, seja com alguma unidade da AI, seja com alguma unidade humana, o seu "ESPELHO" no servidor cria uma entrada no Queue da blackboard, descrevendo o ocorrido.

    Numa blackboard existem dois tipos de unidades, os geradores e os receptores.

    Os geradores criam essas mensagens (todas as unidades são geradoras).

    E os receptores pegam as mensagens conforme sua capacidade, gerando respostas e criando eventos. Por exemplo :

    Um bombardeiro pesado foi atacado por flaks pesadas em uma ilha distante, digamos F17. A unidade AI de F1 não tem rotas terrestres para alcancar F17, nem pode comandar bombardeiros (Aviões são atribuições dos jogadores humanos), então ela simplesmente ignora essa mensagem que está no queue.

    Mas F13 tem como chegar em F17, então ela pega essa mensagem no queue, gera uma resposta : Sending Tanks to supress acks at F13. Coloca no queue, e ativa uma coluna de tanques indo de F13 para F17, por uma rota terrestre.

    Agora vamos supor que o field F14 está sem aviões (MsgOutOfSpares). F14 coloca essa mensagem no Queue, com nivel LvExtreme. F11 é do mesmo lado e possui peças sobressalentes. Pelo campo Expires da mensagem F11 sabe que deve enviar rapidamente, além de ser uma mensagem de nivel LvExtreme, então F11 coloca uma resposta no Queue (MsgSendingSpares).
    E lança um voo de JU52 cargueiros para F14. Mas vamos supor que os reds são espertos, e ficam esperando por esse JU52. Quando o JU52 for derrubado, ele envia uma mensagem (MsgDestroyed). O que F11 responde criando um coluna de Jeep acks enviada para o local da queda, e um novo JU52 (isso dependendo se o próprio F11 ainda tem Ju52 sobressalentes e jeeps). Coloca
    no queue que esta enviando uma missão tipo MiAirDefence, e outra mensagem MiResupply). E assim por diante.

    Um jogo reativo. Onde as missões aéreas principais são feitas pelos jogadores (se eles quiserem e se ficarem com o rádio tunado no canal do Blackboard).

    Esses waypoints poderiam ser usados por unidades navais (um combio de navios saindo de um porto em direcao à outro para abastecer uma ilha que esta totalmente sem suprimentos).

    O que ganha uma guerra é a logística, se um lado isola totalmente uma ilha, os campos dessa ilha vao lutar com o suprimento que tem, até esgotar, tornando-se um alvo fácil logo após isso.

    Miscellânea :


    Patrol Boats : Um gripo de 3 barcos patrulha (tipo os S-Boats alemães) que pode atacar tanto CVs quanto barcos de suprimento, quanto defender um field (ficando estáticos).

    Field captured by ground units :

    Um campo foi fechado e outro campo aliado próximo lancou uma coluna terrestre e conseguiu capturá-lo. (coluna composta de um tanque e dois halftracks).

    Amphibious landing :

    Um porto lancou um grupo de desembarque contra um field fechado e foi bem sucedido.

    Etc.

    Commanders Front-End :

    Um novo aplicativo que permite visualisar a ação em 2d, num mapa, com ícones descrevendo alvos, unidades detectadas pelo radar, etc, toda ação que está ocorrendo e permitindo alterar os eventos da blackboard.

    Eu sei que é muita coisa, mas eu posso ajudar se preciso.

    Obrigado pela atencao ! E parabens pelo trabalho com o Tabajara Host.
     
    Last edited: Apr 22, 2006
  2. Saddan

    Saddan Well-Known Member

    Joined:
    May 4, 2003
    Messages:
    348
    Location:
    Olinda, Pernambuco, Brazil
    Re: Minhas idéias...

    Mais uma coisa.

    Seria muito difícil adicionar trens ?

    O supply chain comecaria numa fabrica, se espalharia em comboios de trem, navios e caminhões, até o ultimo field alcançável.

    Isso faria as pontes realmente úteis (e também útil bombardeá-las).

    Adicionando estruturas do tipo "train crossing", "train depot" ou "train station" afetaria a distribuição de recursos.

    Recon missions :

    A AI geraria voos com aviões específicos (realisticamente usados para reconhecimento de grande altitude). O aviao subiria até a sua altitude operacional (MUITO ALTA) e seguria por way points definidos. Se conseguisse voltar a base a AI teria um snapshot da situacao atual da área em volta. Gerando missões.

    Outra coisa que eu pensei :

    Os waypoints poderiam ser extendidos, vários deles. E funcionariam como um tabuleiro de xadrez : Tanques andariam pelos waypoints vagos (tornando esse waypoint vago um waypoint aliado) ou aliados até encontrar um waypoint obstruído por unidades inimigas. Comecaria então um combate (puramente estatístico) até que algum dos lados fosse destruído, tornando o waypoint vago e permitindo novo avanço. All the way to a field.

    Os pilotos poderiam ajudar fazendo missões CAS (com o il2 ou com o ju87).

    Esse sistema seria válido apenas para unidades terrestres.

    Unidades navais combateriam (excluindo ai os cvs) usando taticas mais complexas. Quando a esquadra inimiga fosse derotada, abriria caminho para um ataque de marines ou um ataque ao porto.

    Não sei até que ponto essas idéias são implementáveis, não sei quantos limites o atual FE do warbirds impõe.
     
  3. Saddan

    Saddan Well-Known Member

    Joined:
    May 4, 2003
    Messages:
    348
    Location:
    Olinda, Pernambuco, Brazil
    Last edited: Apr 22, 2006
  4. Saddan

    Saddan Well-Known Member

    Joined:
    May 4, 2003
    Messages:
    348
    Location:
    Olinda, Pernambuco, Brazil
    Um exemplo de blackboard em que eu estou trabalhando

    Code:
    // Blackboard for a Warfare MMOG
    // Copyright 2006 - (C) J. Aldo G. de F. Junior
    // Released under the terms of LGPL
    
    Unit Blackboard;
    
    Interface
    
    Uses Classes;
    
    Type
    	// Foward declared class, will be solved later
    	// Needed to inform the AI entity about the blackboard itself
    	TBlackboard = Class;
    
    	// Game Generics
    	
    	T2dPosition = Record
    	X, Y : Real;
    	End;
    
    	T3dPosition = Record
    	X, Y, Z : Real;
    	End;
    
    	TGameTimeStamp = Int64; // 64 bit signed
    
    	// Actions
    	TAIAction = (
    	ActIdle,            // Sitting there and doing nothing, only defending myself
    	ActPrepareToFly,    // Walking around towards the runaway start
    	ActTakingOff,       // Full power and taking off the ground
    
    	ActLanding,         // Landing in the airstrip
    	ActPrepareToLand,   // Preparing to land
    	ActMoveTo,          // Just moving to somewhere
    	ActAttack,          // Attacking somewhere
    	ActEvade,           // Trying not to be catch
    
    	ActEmergency,       // Doing fancy things
    	ActBail,            // Praying
    	ActSearch,          // Searching for the enemy
    	ActHelp,            // Assisting nearby units in their duties
    	ActFighting,        // Fighting with something
    	ActDropTroops,      // Droping the paratroopers somewhere
    
    	ActSupply           // Droping supplies somewhere
    	);
    
    	// What kind of entity sent this information ?
    	TBlackboardEntityType = (
    	EntLightFighter,     // Ki-27, I-5...
    	EntMedFighter,       // Bf-109, Zero...
    	EntHvyFighter,       // Bf-110,  Me-410...
    
    	EntDiveBomber,       // Ju-87
    	EntLightBomber,      // TBF
    	EntMedBomber,        // G4M
    	EntHvyBomber,        // B-17
    	EntHalftrack,        // Jeepack, and ...
    
    	EntFieldTower,       // The tower 
    	EntStructure,        // Something, like a fuel drum, a city, etc...
    	EntLightTank,        // Do we have some ?
    	EntHeavyTank,        // Panzer VIE
    	EntLightAAA,         // 12mm
    	EntMedAAA,           // 20mm, 40mm
    	EntHvyAAA,           // 88mm
    	EntSubmarine,        // Those things that can go below water and come back...
    	EntNavalEscort,      // Destroyers, Cruisers
    	EntCarrier,          // The carrier itself
    	EntTransportShip,    // Merchants
    	EntTrain,            // Train head
    	EntTruck,            // A GAZ truck
    	EntPTBoat,           // Small patrol boat, S-Boat
    	EntTransportPlane    // Ju-52, Li-2, DC-3
    	);
    
    	// What is this message main payload
    	TBlackboardMessage = (
    	MsgContact, 	     // I saw something
    	MsgAttackedBy,       // I was attacked by something
    
    	MsgDestroyedBy,      // Something destroyed me
    	MsgAttacking,        // I am attacking something
    	MsgDestroyed,        // I destroyed something
    	MsgOutOfSupplies,    // I´ve run out of something very important
    
    	MsgNoEnemyInArea     // I don´t see any enemy...
    	); 
    
    	// Wich kind of mission is this ?
    	TAIMissionKind = (
    	MissionCAS,               // Go and kill all the tanks and 
    
    halftracks in an area
    	MissionBombRun,           // Carpet bomb an area
    	MissionAntishipping,      // Go and destroy these ships
    	MissionIntercept,         // Go and bring down the bombers
    	MissionSupply,            // Go there and drop supplies
    	MissionInfiltrate,        // Go there and drop paratroopers
    	MissionAdvanceTo,         // Just move to another position
    	MissionRecon,             // Fly over somewhere and say to us 
    
    what you see there
    	MissionDestroy,           // Destroy some specific structure
    	MissionSEAD,              // Supress the enemy air defences 
    
    over an area
    	MissionAirDefence,        // Ground or naval unit, protect 
    
    something against enemy air attack
    	MissionEscort,            // Escort those bombers towards 
    
    their targets
    	MissionFighterSweep,      // Go there and atract the enemy 
    
    fighters, then shot them down, easy...
    	MissionInterdiction,      // Level bomb the battle field
    	MissionCloseField,        // Go there and try to close the field
    	MissionArtilleryStrike,   // Strike someplace with indirect 
    
    fire (MLRS, Cannon Arty, Naval Arty...
    	MissionIdle,              // Sit there and wait
    	MissionTransfer           // Ferry itself to another field
    	);
    
    	// Combo of actions and places
    	TAIRoutine = Record
    		Position : T3dPosition;
    		Action   : TAIAction;
    	End;
    
    	// Mission itself
    	TAIMission = Record
    		Kind : TAIMissionKind;
    		Routine : Array Of TAIRoutine; // Dynamic array is 
    
    built by the Blackboard manager
    	End;
    
    	// Wich kind of entry is this ?
    	TBlackboardEntryKind = (
    	KindContact,     // I saw something
    	KindRequest,     // I am requesting something
    
    	KindGeneric);    // I am doing something not specific
    
    	// How important is this information ?
    	TBlackboardEntryLevel = (
    	LevelIgnore,   // Just routine work
    	LevelLow,      // Low level threat
    	LevelMed,      // Medium level threat
    	LevelHigh,     // High level threat
    
    	LevelExtreme   // Something of utmost importance !
    	);
    
    	// A.I. Entities Interface, all entities must provide this 
    
    interface in order to be allowed to talk to the blackboard
    	IAIEntity = IInterface
    	// Unique BlackboardID for this entity, set by the blackboard
    	Property BlackboardID : Int64;
    
    	// Estimate time to reach a map position, results seconds
    	Function EstimateETA(Pos : T2dPosition) : Integer;
    
    	// Current Position
    	Property Position : T3dPosition;
    
    	// Current speed
    	Property Speed : Real;
    
    	// Current Heading
    	Property Heading : Real;
    
    	// Current Azimuth
    	Property Azimuth : Real;
    
    	// Current Action, what part of the current mission this unit 
    
    is executing
    	Property Action : TAIAction;
    
    	// Current Mission, what mission i am assigned to
    	Property Mission : TAIMission;
    
    	// Pointer to the blackboard itself
    	Property Blackboard : TBlackboard;
    
    	// Wich kinds of missions i am able to comply ?
    	Property PossibleMissions : TAIMissionKind;
    
    	End;
    
    	// Blackboard entry
    	TBlackboardEntry = Record
    		ID           : Longint; // This message unique ID
    		Sender       : Longint; // Who sent this ?
    		SenderEntity : TBlackboardEntityType; // Wich kind of 
    
    unit sent this ?
    		ObjectEntity : TBlackboardEntityType; // Wich kind of 
    
    unit this message talks about ?
    		Kind         : TBlackboardEntryKind; // Wich kind of 
    
    message is this ?
    		Level        : TBlackboardEntryLevel; // Estimated (By 
    
    the sender) threat level of this message
    		Message      : TBlackboardMessage; // The message 
    
    properly
    		Position     : T3dPosition; // Where was the object 
    
    when this ocurred ?
    		Heading      : Real; // Where was the object when this 
    
    ocurred ?
    		Speed        : Real; // Object speed when this ocurred 
    
    ?
    		Time         : TGameTimeStamp; // When this message 
    
    was sent ?
    		Expires      : TGameTimeStamp; // Estimated (By the 
    
    sender) time when this message will become obsolete
    		Specifics    : Int64; // Generic container for 
    
    specific data, can store aditional information needed by a entity
    	End;
    
    	// The blackboard properly
    	TBlackboard = Class
    	Private
    		fBuffer   : Array Of TBlackboardEntry;
    		fEntities : Array Of IAIEntity;
    		Procedure DelMessage(Index : Int64);
    		Procedure CheckExpiredMessages;
    	Public
    		Constructor Create; // Allocate everything 
    		Destructor Destroy; Override; // Frees all data
    		Function AddEntity(Var Entity : IAIEntity): Int64; // Adds a new entity to the chain
    		Function AddMessage(Msg : TBlackboardEntry): Int64; // Adds new information to the blackboad
    		Procedure DelEntity(Var Entity : IAIEntity); // Kills entity
    		Procedure Loop; // Game tick
    		Property Messages[Index : Int64]: TBlackboardEntry 
    
    Read fBuffer; Default;
    		Property Entities[Index : Int64]: IAIEntity Read 
    
    fEntities;
    	End;
    
    Implementation
    
    // I am tired.. he he Later i will write the rest
    
    End.
     
    Last edited: Apr 23, 2006
  5. Saddan

    Saddan Well-Known Member

    Joined:
    May 4, 2003
    Messages:
    348
    Location:
    Olinda, Pernambuco, Brazil
    Como prever Buff raids

    Num nivel mais alto de estratégia, uma das necessidades da AI é tomar a iniciativa, preemptivamente. Uma maneira de alcancar isso é imitar os jogadores humanos, da seguinte forma :

    Separamos os eventos em duas categorias :

    - Eventos táticos :
    Um tanque foi destruido, um barco afundou, um aviao derrubou outro, etc.

    - Eventos estratégicos :
    Um field sofreu uma sortie de bombardeiros, um cv foi atacado, um campo foi fechado e capturado, etc.

    Os eventos estratégicos são organizados numa tabela.

    Vamos supor que existam 4 eventos estratégicos possiveis (so existem dois fields na arena)

    Code:
               |F1 attacked|F1 Captured|F2 attacked|F2 captured|
    F1 attacked|     X     |    100%   |      0%   |      0%   |
    F1 Captured|      0%   |     X     |    100%   |      0%   |
    F2 attacked|      0%   |      0%   |     X     |    100%   |
    F2 captured|    100%   |      0%   |      0%   |     X     |
    Esta é uma "tabela de Markov" que registra a probabilidade da transicao de um evento estrategico para outro, indiferente do lado.

    Dai, conforme os eventos vão acontecendo, essa tabela vai sendo alterada em suas probabilidades a partir do histórico, levando em consideracao nao o campo mais atacado ou coisa do tipo, mas a fluidez, a sequencia de como os eventos aconteceram no passado.

    O computador usa essa informacao para planejar a sua defesa e o seu ataque. Se apos F1 ser atacado a maior probabilidade eh dele ser fechado, e F1 é um campo aliado, o computador se prepara para defender esse campo, enquanto a "outra face" se prepara para capturá-lo.

    Eu não sei se eu expliquei bem, mas tem um link na wikipedia para as series de markov. É um algoritmo adaptativo que permite imitar e simular sequencias de acoes humanas. Eu o usei para criar um bot que conversa e aprende, por exemplo.
     
  6. Saddan

    Saddan Well-Known Member

    Joined:
    May 4, 2003
    Messages:
    348
    Location:
    Olinda, Pernambuco, Brazil
    Radio jamming

    Tive uma idéia rápida agora, sobre radio jamming.

    As mensagens enviadas numa área que esta sofrendo jamming poderiam ser truncadas da seguinte forma :

    O sujeito digitou :

    Help, i saw a bomber !

    o server cortaria aleatoriamente entre 20% a 80% das letras da frase, gerando o seguinte resultado :

    H..p....saw..a.b.m.e..

    E quem ouvisse teria que decifrar o que está sendo dito...
     
  7. Sonic

    Sonic Well-Known Member

    Joined:
    Jan 8, 2003
    Messages:
    339
    Location:
    Curitiba/PR - Brazil
    Re: Minhas idéias...

    Caramba!
    Se eu me senti bombardeado agora, fico imaginando o franz!
    Quantas idéias! E quantas coisas interessantes para fazer!! Coitado do franz se todo mundo aprovar as idéias!

    Resumindo tudo o que você disse:
    - 130 drones -> drone cache (para aumentar a capacidade de drones);
    - Alcance do radar
    - Radar .chaff: cria ecos falsos na área em que o buff está, centenas deles;
    - Radar .jammer [1|0]: ativa/desativa o jammer onboard, fazendo os radares da área ficarem cegos;
    - Radar móvel (achei muito legal essa idéia!)
    - Field Chain - buffer perdido usaria isso... acredito que não seja necessário, afinal, quem se perde no WB? A tecla F1 diz tudo que é necessário para se localizar, daí fica inútil o Field Chain, embora seja uma idéia interessante;
    - Trens (hemant já deu essa idéia, devido a impossibilidade de criar um objeto com cara de trem, ele sugeriu -> Comboios com rotas pré-definidas, por exemplo, numa fila indianda, aparentando um trem, e a partir daí toda aquela idéia de reposição de aviões, combustível...)
    Cara, tem como vc resumir o resto, é muita coisa!! :D

    Rapaiz, vou abrir uma conta pra vc no wiki do tabahost, daí lá é melhor para organizar suas idéias! Uma em cada tópico!

    Abraços
     
  8. Franz-

    Franz- FH Beta Tester

    Joined:
    Apr 10, 2001
    Messages:
    329
    Location:
    Porto Alegre, RS, Brazil
    Re: Minhas idéias...

    Mein Gott!!!!!
     
  9. Saddan

    Saddan Well-Known Member

    Joined:
    May 4, 2003
    Messages:
    348
    Location:
    Olinda, Pernambuco, Brazil
    Re: Minhas idéias...

    - Field Chain - buffer perdido usaria isso... acredito que não seja necessário, afinal, quem se perde no WB? A tecla F1 diz tudo que é necessário para se localizar, daí fica inútil o Field Chain, embora seja uma idéia interessante;

    O computador se perde :p

    As vezes eu quero saber o vetor que me leve a um field sem erro (Quando eu to de Ju52 e quero chegar urgentemente). Acho que todo mundo já fez um buff raid e viu como é chato ter que ficar corrigindo a rota. Buffers na vida real tinham toda a ajuda para conseguirem chegar nos seus alvos sem ter que corrigir muito a tragetória (O que ajudaria os caças a interceptá-los).

    Além disso na vida real tanto os reds quanto os golds tinham sistemas de radionavegação (X-Gerat e Oboe, por exemplo). Poderiam ser simulados assim.

    A inteligência artificial poderia até dar dicas de quando soltar chaffs ou ligar o jammer... (O uso do jammer não é tão simples, as vezes ele ajudava, as vezes ele tornava os buffers um alvo mais fácil ainda, era possível usar home on jam... Ou você podia acabar jammeando um canal aliado)

    Pensei noutra coisa. O comando jammer poderia aceitar um parâmetro.

    .jammer <channel>

    e ele atrapalharia a comunicação nesse canal específico.

    .jammer radar

    e ele atrapalharia apenas o radar na área.

    Imagina a frustração de um buff raid se decola um He-177 com jammers, escaneia as frequências até descobrir qual eles tão usando, e bloqueia toda a cooperação de vôo

    :D
     
  10. Sonic

    Sonic Well-Known Member

    Joined:
    Jan 8, 2003
    Messages:
    339
    Location:
    Curitiba/PR - Brazil
    Re: Minhas idéias...

    >O computador se perde :p
    humm... computador...