Qual a viabilidade de se criar um programa assim?

1. Qual a viabilidade de se criar um programa assim?

Ordan
ordan

(usa Outra)

Enviado em 25/03/2013 - 15:17h

Olá Pessoal,

Alguém já viu o Robocode? Então, Ele é um programa em Java que possibilita a criação de inteligência artificial para um robô em um jogo. O usuário cria um arquivo fonte com toda a lógica e coloca as funções pre-definidas pelo programa para movimentar o robô (Só com o código, não modifica o jogo) e coloca no programa. Eu queria fazer algo parecido, só que com outros jogos, definir as funções, e poder controlar o jogo a partir de um código fonte externo (como o robocode), só que eu não tenho ideia de como fazer isso em c/c++ (não sei programar em Java). Se fosse possível, teria que interpretar o código? Qual a viabilidade disso em c/c++? Em Java seria mais fácil?

Não tenho muita experiência com linguagem orientada a objeto, ainda estou estudando, preciso fazer isso para um projeto de pesquisa. Não encontro nada em c/c++, Alguém poderia dar uma luz?

Inicialmente eu queria fazer algo simples, colocar um quadrado no meio da tela por exemplo, e mover ele com um arquivo fonte externo ao programa, assim, submetia um arquivo fonte e o usuário não teria acesso ao programa principal, somente controlaria com o seu arquivo fonte criado com funções pre-definidas. Seria isso. :)


  


2. Re: Qual a viabilidade de se criar um programa assim?

???
gokernel

(usa Linux Mint)

Enviado em 25/03/2013 - 16:46h

nao conheço o robocode ...

Mas se vc quer algo com IA , tem essa engine completíssima usando LUA que é muito fácil extender com C:

http://apocalyx.sourceforge.net/info.php

Lembrando: o binário é para windows e pelo que parece o cara que criou já partiu para a eternidade. ;)


3. Re: Qual a viabilidade de se criar um programa assim?

Paulo
paulo1205

(usa Ubuntu)

Enviado em 25/03/2013 - 18:58h

A capacidade de disparar a execução de diferentes funções que o programa possui, mediante uma série de instruções externas bem formatadas e que podem mudar ao longo do tempo, é o que se chama de tornar o programa scriptable.

Você pode desenvolver seu próprio interpretador de comandos. Mas uma prática relativamente comum, inclusive em jogos para PC de video games, bem como em aplicativos de Engenharia, Ciências Naturais e Informática, é embutir um interpretador que seja leve de uma linguagem de programação simples, como Lua ou Python, e escrever os scripts na linguagem escolhida. O programa em C ou C++ é quem relaiza o processamento pesado, e utiliza uma API padronizada para receber e transmitir informações dos scripts que controlam seu processamento.

Nem sempre os scripts se limitam a automatizar tarefas que poderiam ser realizadas por pessoas. Dependendo da criatividade de quem programa, poderíamos, por exemplo, ter um engine capaz de renderizar personagens com base em regras definidas por comandos em forma de script, de modo que seria relativamente fácil criar novos personagens, com novas representações e modos de se comportar apenas criando novos scripts, sem mexer no código base.


4. Re: Qual a viabilidade de se criar um programa assim?

???
gokernel

(usa Linux Mint)

Enviado em 31/03/2013 - 08:48h

ATUALIZANDO INFO ...

Na maioria das vezes em que precisa de usar SCRIPT em um programa eu indicava a LUA, agora ATUALIZEI-ME e indico a LuaJIT ( http://luajit.org ) ...

Motivo:
A LuaJIT é praticamente LUA, a única diferença é que:

01 - LUA utiliza VM ( Maquina Virtual com BYTECODE ) e LuaJIT executa o codigo compilado nativo ...

02 - As diferencas visíveis são:
a - Maior velocidade de execucao do código com LUAJIT.
b - Menor consumo de memoria.

MEMORIA INFO:
Lua 5.1.4, a runtime consome: 712 KBytes ... em windows
LuaJIT 2.0.1, a runtime consome: 388 KBytes ... em windows


O pior é que os caras criadores da LUA parecem reconhecer a superioridade mas não utilizar oficialmente o codigo da LuaJIT ... ;)







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts