autre projet en commun , à définir ensemble

Programmation avancée de jeux en PureBasic
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

Message par Anonyme2 »

Titre du Message

Looking to purchase your PB project

ici

http://purebasic.myforums.net/viewtopic.php?t=9946
Oliv
Messages : 2117
Inscription : mer. 21/janv./2004 18:39

Message par Oliv »

Il est marrant lui :D
Pierre
Messages : 244
Inscription : ven. 23/janv./2004 20:29
Localisation : 77 (Région parisienne)

Message par Pierre »

moi je trouve la proposition de Comtois pour le réseau interressante
Image
julien
Messages : 846
Inscription : ven. 30/janv./2004 15:06
Contact :

Message par julien »

ça vous dirai pas de faire une application de téléphonnie via le net (Téléphonne de ip à ip) ? ou un bon serveur Web avec un langage dynamique (comme Php) mais avec la syntaxe de Pure ?

Bon je vois peut être un petit peu Grand :lol:
Pierre
Messages : 244
Inscription : ven. 23/janv./2004 20:29
Localisation : 77 (Région parisienne)

Message par Pierre »

ça serait bien pour un jeu!
on fait un petit jeu (vite fait puisque c'est la partie réseau qui (nous?) interesse)
Image
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message par Chris »

Julien a écrit :ça vous dirai pas de faire une application de téléphonnie via le net (Téléphonne de ip à ip) ?
C'est pas idiot, ton truc.
Moi, je ne verrais pas ça pour de la téléphonie, mais plutôt pour faire une sorte de "chat vocal" qui pourrait être intégré dans un jeu.

Bon, pour le moment, il faut déjà savoir comment procéder pour créer le jeu en réseau, mais une fois que ce sera fait, je dis que ça pourrait être un bon complément du chat en mode texte

Chris :)
CORBASE
Messages : 96
Inscription : mar. 24/févr./2004 14:06

Message par CORBASE »

J'ai plus trop de temps pour coder en ce moment, mais l'idée du réseaux est pas mal ..

Cependant avec des copains on a codé un petit MSN histoire de rigoler, alors moi je vous porpose comme idée de faire un client de dialogue en ligne sophistiqué comme MSN

Sinon, pour votre jeu 2D par le résaux, envoyé un msg à Nells fu forum qui code un jeu en 2D par le réseau, et sa à l'air de bien marcher !

Bref voila cee que j'en pense !

Bye all
Oliv
Messages : 2117
Inscription : mer. 21/janv./2004 18:39

Message par Oliv »

J'avais fait ça il y a 2-3mois je ne m'en rappelais plus, le code est pas très bien organisé mais l'idée est là. Contrairement au chat, plusieurs client sont gérés


Serveur

Code : Tout sélectionner

If InitNetwork() = 0 : MessageRequester("Erreur","Ne peut pas lancer les fonctions réseau",#MB_ICONError): End :EndIf

;- Declarations
; Structures
Structure Client
  ID.l
EndStructure

; Listes
NewList Clients.Client()

; Buffer
*Recevoir.l = AllocateMemory(1500)

; Variables
Sortie.b : EID.b
Port.l = 6494 : CID.l

; Creation du serveur
If CreateNetworkServer(Port) = 0 : MessageRequester("Erreur","Ne peut pas lancer le serveur",#MB_ICONError) : End : EndIf

;Creation de la fenêtre
If OpenWindow(0,0,0,300,20,#PB_Window_WindowCentered | #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_TitleBar,"Serveur pour Olivréseau") = 0
  MessageRequester("Erreur","Ne peut pas ouvrir une fenêtre",#MB_ICONError) : End
EndIf
  
;Creation de la SATUTSBAR
CreateStatusBar(0,WindowID(0))
AddStatusBarField(80)
AddStatusBarField(120)
AddStatusBarField(100)
StatusBarText(0,0,"Lancé")
StatusBarText(0,1,"0 Clients")
StatusBarText(0,2,"Pas de partie")

Repeat
EID = NetworkServerEvent()
CID = NetworkClientID()
Select EID
  Case 1
    Debug "Connection : " + Str(CID)
    AddElement(Clients())
    Clients()\ID = CID
    StatusBarText(0,1,Str(CountList(Clients())) + " Clients")
    For i = 0 To CountList(Clients())-1
      SelectElement(Clients(),i)
      SendNetworkString(Clients()\ID,"Il y a " + Str(CountList(Clients())) + " personne(s) connectée(s)")
    Next i
      
  Case 2
    FreeMemory(*Recevoir)
    *Recevoir = AllocateMemory(1500)
    ReceiveNetworkData(CID,*Recevoir,1500)
    Debug PeekS(*Recevoir)
  Case 4
    Debug "Deconnection"
    For i = 0 To CountList(Clients())-1
      SelectElement(Clients(),0)
      If Clients()\ID = CID : DeleteElement(Clients()) : Debug "" :  EndIf
    Next i
    StatusBarText(0,1,Str(CountList(Clients())) + " Clients")
EndSelect

Select WindowEvent()
  Case #PB_EventCloseWindow
    Sortie = 1
EndSelect
Until Sortie = 1
End

Client

Code : Tout sélectionner

; Initialise
If InitNetwork() = 0 Or InitSprite() = 0 : MessageRequester("Erreur","Ne peut pas lancer les fonctions réseau.",#MB_ICONError) : End : EndIf

;- Declarations
; Buffer
*Recevoir.l = AllocateMemory(1500)

; Variables
Sortie.b
ID.l
; Ouverture de la fenêtre
If OpenWindow(0,0,0,400,400,#PB_Window_WindowCentered | #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_TitleBar,"Client Olivreseau") = 0 Or OpenWindowedScreen(WindowID(0),0,0,400,400,1,0,0) = 0
  MessageRequester("Erreur","Ne peut pas lancer la fenêtre et l'écran.",#MB_ICONError) : End
EndIf

Procedure Ecrire(R.w,G.w,B.w,Texte.s,X.w,Y.w)
  StartDrawing(ScreenOutput())
    FrontColor(R,G,B)
    Locate(X,Y)
    DrawingMode(1)
    DrawText(Texte)
  StopDrawing()
  FlipBuffers()
EndProcedure

; Connection au serveur
ID = OpenNetworkConnection("192.168.0.1",6494)
If ID = 0
  MessageRequester("Erreur","Ne peut pas connecter au serveur",#MB_ICONError) : End
EndIf

Repeat
  Select WindowEvent()
    Case #PB_EventCloseWindow
      Sortie = 1
  EndSelect 
  Select NetworkClientEvent(ID)
    Case 2
      FreeMemory(*Recevoir)
      *Recevoir = AllocateMemory(1500)
      ReceiveNetworkData(ID,*Recevoir,1500)
      ClearScreen(0,0,0)
      Ecrire(0,255,0,PeekS(*Recevoir),10,10)
  EndSelect
  FlipBuffers()
Until sortie = 1
Avatar de l’utilisateur
cederavic
Messages : 1338
Inscription : lun. 09/févr./2004 23:38
Localisation : Bordeaux

Message par cederavic »

je vous conseil vivement de faire le jeux avant d'ataquer la partie reseau ;)
comtois
Messages : 5186
Inscription : mer. 21/janv./2004 17:48
Contact :

Message par comtois »

en fait , je pensais que ça allait être compliqué , mais en y jetant un petit coup d'oeil , je m'aperçois que purebasic gère déjà très bien le réseau , il ne nous reste plus grand chose à faire :)

Enfin je dis ça parce que je n'ai pas encore vraiment trempé dedans :)

Dès que j'ai un peu de temps , je ferai des tests , maintenant j'ai tout ce qu'il faut , j'ai deux pcs avec carte réseau ,et un cable de liaison .

pour le jeu , j'avais pensé à un jeu de dame , ou une bataille navale ?
ou alors un truc qui bouge plus ? on se tire dessus dans un labyrinthe ?

les autres idées sont les bienvenues
Oliv
Messages : 2117
Inscription : mer. 21/janv./2004 18:39

Message par Oliv »

La troisième solution mélangerai un peu de tout mais est plus dure :wink:
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message par Chris »

Il y a des tonnes de jeux, qui peuvent tourner en réseau, (y compris ceux qui ne sont pas encore inventés, ce serait chouette, d'en inventer un!), dames, bataille navale, bomberman, échecs, cartes, shot, plus tout un tas de jeux que tout le monde connaît, mais que je n'ai pas en tête!!!

Chris :)
comtois
Messages : 5186
Inscription : mer. 21/janv./2004 17:48
Contact :

Message par comtois »

bon on part sur un truc classique ?

un jeu à 2 ,3 ou 4 joueurs en réseau

un labyrinthe , un robot chacun , on peut s'associer pour en éliminer un , d'où l'intérêt du chat pour échanger des infos entre joueurs , mais sans que tout le monde puisse voir ,seulement ceux qui sont sélectionnés

la partie se termine quand il n'y a plus qu'un robot debout !

feu à volonté ? ou cartouches à ramasser ?

jeu en 3D ? ou 2D ?

Sinon , un simple jeu de bataille navale pour se faire la main ?

pour le jeu de dames ,j'avais l'intention d'en faire un , alors je vais commencer à l'occasion de préparer la trame , plateau , pions , et déplacement des pions . avec une version 2D et 3D .
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message par Chris »

Un jeu de dames, si c'est pour jouer à 2, c'est simple à faire, j'en avais fait un sur Atari.

La ou ça se complique, c'est quand il s'agit créer le jeu, pour jouer contre l'ordinateur.

J'avais trouvé un truc site, sur le net, qui parlait des stratégies au dames.

Ca ne parait pas, comme ça, mais c'est super compliqué.

Si ça t'interesse, voilà le site de la Fédération Française de Jeu de Dames. (FFJD).

Va faire un tour à la rubrique Jeu/Technique.
http://ffjd.free.fr/

Chris :)
comtois
Messages : 5186
Inscription : mer. 21/janv./2004 17:48
Contact :

Message par comtois »

oui je sais que ce n'est pas évident de faire l'IA , mais c'est justement pour ça que je voulais faire un jeu de dames ,ça pourrait être intéressant :)

Il faut mettre en oeuvre des algos dont je ne connais le nom que depuis quelques semaines.

Voici ce que dit l'auteur du programme français actuellement numéro un mondial des logiciels de jeu de dames.
Comme tous les logiciels de jeu, il repose sur 3 composantes :

- un algorithme de génération des coups légaux
- un algorithme de recherche qui permet de naviguer dans les variantes
-une fonction d'évaluation qui permet de donner une note à chaque position.

Lorsque les 2 premiers points sont correctement programmés, un logiciel atteint un niveau respectable, largement suffisant pour battre 99% de la population. En effet, le logiciel est déjà très fort en tactique (le court terme). Sa capacité de calcul énorme est son principal atout.

En revanche, pour atteindre le niveau des joueurs de club, voire celui des meilleurs joueurs mondiaux, le programme doit comprendre le jeu. Pour cela, il doit acquérir les connaissances liées au jeu, la théorie du jeu, ce que l'on appelle généralement la stratégie (par opposition à la tactique).
donc il est clair que je ne peux pas m'attaquer au dernier point , c'est pour les spécialistes .

Pour les deux premiers ,ça me parait bien difficile , mais je vais quand même essayer , même si je n'y arrive pas , j'aurai toujours appris quelque chose :)

et ça me fera travailler sur les algos MinMax, AlphaBeta , ces fameux algos dont je ne connais que le nom .

mais là , on s'éloigne du projet en commun :)
Répondre