Jump to content

Recommended Posts

Posted

Oi!!!

Gostaria de desenvolver um jogo 3d que funcionasse como o xadrez, mas em vez das peças habituais fossem soldados, etc...;

No entanto não tenho a minima ideia como isso se faz, a única coisa que percebo é um pouco de C!!!!!

Penso k vou ter de usar um programa para fazer a modelagem, mas e o resto??????????????

H160r

Posted

A ser um jogo provavelmente terá alguma componente de computação gráfica (CG) sendo para um único jogador, então isso vai ter inteligência artificial (IA).

Antes de fazeres o que quer que seja, é necessário teres algum conhecimento de IA, e de CG.

Aconselho-te a dares uma olhadela ao Prolog, que pode ser o teu motor de IA e que liga facilmente com C/C++ e creio que com Java e VB. Quanto a CG, não faltam por ai motores e livros que podem dar um bom kick off nessa área.

10 REM Generation 48K!
20 INPUT "URL:", A$
30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50
40 PRINT "404 Not Found"
50 PRINT "./M6 @ Portugal a Programar."

 

Posted

será que posso começar primeiro pela modelagem 3d???????

Humm... Não acoselho isso.

O primeiro passo é escrever as especificações/requisitos, ou seja, o que o jogo deve e não deve fazer.

Depois defines o caminho, ou seja, como o jogo deve funcionar, funcionalmente, e como deve ser implementado.

Quando tiveres o modelo a funcionar, então ai sim, podes começar a preocupar-te com a beleza da coisa. A não ser que haja mais pessoas envolvidas e então podes paralelizar algumas tarefas.

Para saberes mais sobre o processo de desenvolvimento de um produto, lê este artigo: Gestão, Ferramentas, Sistemas e Ambientes

10 REM Generation 48K!
20 INPUT "URL:", A$
30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50
40 PRINT "404 Not Found"
50 PRINT "./M6 @ Portugal a Programar."

 

Posted

será que me podiam dizer o nome de alguns programas a utilizar na vertente 3d (o 3d stuio max 8) dá????

E já agora no resto o que eu tou a usar é só o blosheed dev c++.

H160r

Posted

só mais uma pergunta nesta ideia que tenho era melhor construir o campode xadrez sozinho e depois o resto (tipo se quiser por árvores à volta) ou construir o campo e os elementos cénicos tudo no mesmo ficheiro???????

H160r

Posted

Tal como já foi sugerido, o melhor talvez fosse começares pela parte do código, e limitares-te a ter um "P" de peão a passear pelo tabuleiro e depois mais tarde uma textura a sério, do que ir já para esse tipo de problemas.

Disseste no inicio que tens conhecimentos de C, embora poucos.

Talvez o mais fácil para ti seja aprender DarkBasic

Posted

Tal como já foi sugerido, o melhor talvez fosse começares pela parte do código, e limitares-te a ter um "P" de peão a passear pelo tabuleiro e depois mais tarde uma textura a sério, do que ir já para esse tipo de problemas.

Disseste no inicio que tens conhecimentos de C, embora poucos.

Talvez o mais fácil para ti seja aprender DarkBasic

Desconhecia e achei isto engraçado.

Até que ponto isto é mesmo bom, ou seja, se alguém quizer fazer um jogo "a sério" para comercializar, usar isto é viável ou isto serve apenas para se fazer umas brincadeiras?

10 REM Generation 48K!
20 INPUT "URL:", A$
30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50
40 PRINT "404 Not Found"
50 PRINT "./M6 @ Portugal a Programar."

 

Posted

Desconhecia e achei isto engraçado.

Até que ponto isto é mesmo bom, ou seja, se alguém quizer fazer um jogo "a sério" para comercializar, usar isto é viável ou isto serve apenas para se fazer umas brincadeiras?

Também estou interessado nessa resposta!!!

H160r

Posted

Eu não faço ideia, visto nunca ter usado.

Simplesmente ouvi falar há uns tempos, passeei pelos foruns deles, fiz alguns downloads dos teoricamente "melhores jogos" e achei que, para quem isto não passa de um hobie, pode ser uma ferramenta útil e um bom passatempo.

Para comercializar.. já se sabe que os gráficos não vão ser soberbos, não vão brilhar pela inteligência artificial dos adversários (se existirem) nem provavelmente pela originalidade, visto estarem limitados..

FPS Creator

The 3D Game Maker

Posted

Da pouca experiencia que tenho de DarkBasic posso dizer que é uma linguagem mt boa para fazer

grandes cenários e quem sabe uns screensavers jeitosos

deixa a desejar quando entramos para a parte de fazer um jogo propriamente dito

isto porque a não ser que queiras fazer um fps tipo dukenukem ou um jogo de aventuras (em que andas a passear o boneco á procura de pistas)

torna-se muito dificil

DarkBasic como nome indica é um Basic .. mt semelhante ao Qbasic

a diferença é que tem todas as bibliotecas de gráficos 2d e 3d já instaladas e funções mt boas para as implementar

uma grande + valia é poderes fazer grandes efeitos sem mt código

para criar 200 planetas com força gravitica seria necessário um código deste estilo:

`Creates 200 planets with their own mass and velocity.
`Each one effects every other one and can some times orbit each other
`in a frictionless enviorment. As they collide they grow in mass
`(and gravitational pull). The force of inpact DOES NOT effect any
`velocity. Put the mouse near any dot/circle to see its mass!


`---------------------------------------------------
`HOLD THE MOUSE near any of the dots to see its mass

`CLICK THE MOUSE to restart the dots

`It will randomly place dots every time they are all destroyed
`-------------------------------------------------------------

set text font "Arial"
set text size 16

set display mode 1024,768,32

type DotInfo
   Xpos#
   Ypos#
   Xspeed#
   Yspeed#
   Mass#
   Used
endtype

dim Dots(200) as DotInfo

input "Speed? (1) ",Speed#
input "Gravitational constant? (0.2) ",GravConst#

sync on
sync rate 30
set text size 10

do
`make 200 dots all going differnt directions
for DotSlot = 0 to 200
   Dots(DotSlot).Xspeed# = newXvalue(0,DotSlot,Speed#)
   Dots(DotSlot).Yspeed# = newZvalue(0,DotSlot,Speed#)

   Dots(DotSlot).Xpos# = rnd(screen width())
   Dots(DotSlot).Ypos# = rnd(screen height())

   Dots(DotSlot).Mass# = 1

   Dots(DotSlot).Used = 1
next DotSlot

#constant GravConstant = GravConst#

do
for DotSlot = 0 to 200
if Dots(DotSlot).Used = 1
inc DotsExist
   for CircleSlot = 0 to 200
   if Dots(CircleSlot).Used = 1 and CircleSlot <> DotSlot

      `get distance
      Dist# = sqrt((Dots(DotSlot).Xpos#-Dots(CircleSlot).Xpos#)^2 + (Dots(DotSlot).Ypos#-Dots(CircleSlot).Ypos#)^2)

      `if it hits the circle then get rid of it
      if Dist# <= Dots(CircleSlot).Mass#/3 then Dots(DotSlot).Used = 0 : Dots(CircleSlot).Mass# = Dots(CircleSlot).Mass# + Dots(DotSlot).Mass#

      `Get the amount of gravity
      Gravity# = (GravConstant*Dots(DotSlot).Mass#*Dots(CircleSlot).Mass#)/(Dist#^2)
      Gravity# = Gravity#*(Dots(CircleSlot).Mass#/Dots(DotSlot).Mass#)

      `calculate the differnce in speeds (with gravity)
      X# = newXvalue(0,atanfull(Dots(DotSlot).Xpos#-Dots(CircleSlot).Xpos#,Dots(DotSlot).Ypos#-Dots(CircleSlot).Ypos#)+180,Gravity#)
      Y# = newZvalue(0,atanfull(Dots(DotSlot).Xpos#-Dots(CircleSlot).Xpos#,Dots(DotSlot).Ypos#-Dots(CircleSlot).Ypos#)+180,Gravity#)

      Dots(DotSlot).Xspeed# = Dots(DotSlot).Xspeed#+X#
      Dots(DotSlot).Yspeed# = Dots(DotSlot).Yspeed#+Y#
   endif
   next CircleSlot

   `rember old pos and get new pos
   OldXpos# = Dots(DotSlot).Xpos#
   OldYpos# = Dots(DotSlot).Ypos#

   Dots(DotSlot).Xpos# = Dots(DotSlot).Xpos# + Dots(DotSlot).Xspeed#
   Dots(DotSlot).Ypos# = Dots(DotSlot).Ypos# + Dots(DotSlot).Yspeed#

   `make shure the dot still exists
   if Dots(DotSlot).Used = 1
     `draw the dot (and where it was)
     line OldXpos#,OldYpos#,Dots(DotSlot).Xpos#,Dots(DotSlot).Ypos#
     circle Dots(DotSlot).Xpos#,Dots(DotSlot).Ypos#,Dots(DotSlot).Mass#/3

     `if the dot is close to the mouse tell its mass
     Dist# = sqrt((Dots(DotSlot).Xpos#-mouseX())^2 +(Dots(DotSlot).Ypos#-MouseY())^2)
     if Dist# < 25
        line Dots(DotSlot).Xpos#,Dots(DotSlot).Ypos#,Dots(DotSlot).Xpos#-4,Dots(DotSlot).Ypos#-4

        TxtMsg# = int(Dots(DotSlot).Mass#*100)
        text Dots(DotSlot).Xpos#-12,Dots(DotSlot).Ypos#-12,str$(TxtMsg#)
     endif
   endif

   if Dots(DotSlot).Xpos# < 0 or Dots(DotSlot).Xpos# > screen width() or Dots(DotSlot).Ypos# < 0 or Dots(DotSlot).Ypos# > screen height()
      Dots(DotSlot).Used = 0
   endif
endif
next DotSlot

`if all dots have been destroyed then exit (and make new ones)
if DotsExist = 0 then exit
DotsExist = 0

`if the mouse is clicked then restart
if mouseclick() = 1 then exit

sync
cls

loop
loop

pode ser que ainda venha a fazer uns screensavers bonitos km esta aplicação 😄

  • 2 weeks later...
Posted

essa linguagem é como uma outra qualquer da categoria Basic, tu n trabalhas com aspecto grafico nem nada 😛 mas sim é mais easy por isso o nome blitzBASIC

Exacto, era o que estava a tentar explicar. Essa linguagem já tem metade do trabalho feito, ou seja, não aprendes os aspectos mais básicos de como fazer, e se ele quer progredir depois para jogos mais complicados, então deve apostar no C++.

<3 life

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.