begin process at 2012 02 06 01:07:34
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Jeux

 > MOTEUR DE RPG EN LIGNE

MOTEUR DE RPG EN LIGNE


 Information sur la source

Note :
9,17 / 10 - par 12 personnes
9,17 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Jeux Classé sous :jeu, rpg, forgotengine, ajax, dhtml Niveau :Initié Date de création :21/04/2006 Date de mise à jour :29/04/2006 17:57:03 Vu :16 499

Auteur : Scraat

Ecrire un message privé
Site perso
Commentaire sur cette source (22)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
Vous avez déjà joué aux Baldur's Gate ? Icewind Dale ?
Ce "moteur" est une imitation de l'InfinityEngine, le moteur de ces jeu, en Javascript, c'est à dire jouable en ligne.
Ce n'est qu'un timide début ne vous attendez pas à un vrai jeu, mais vous pouvez déjà avoir un aperçu de ce que je cherche à faire.
Démo ici : http://gravytea.com/florian/ForgotEngine/

Source

  • //(fichier core/game/game.inc.js)
  • ////////////////
  • //FICHIER GAME//
  • ////////////////
  • //à terme vous devriez pouvoir adapter le moteur à vos besoin en utilisant ce seul fichier
  • //pour l'instant ça me semble délicat, cependant vous pouvez déjà voir ici un exemple d'utilisation basique du moteur
  • //PARAMETRES
  • //Le "Volumetric Lights" est une sorte de blur, c'était au début un bug et j'ai trouvé que ça rendait pas mal sur les toits/arbres
  • //ça rame pas mal par contre
  • OverMask = 0; //"Volumetric Lights" activé
  • OverMaskOpacity = 0.2; //intensité (immonde lorsque > 0.4)
  • ScrollSpeed = 50; //vitesse de défilement de la map
  • StaticZone = 0.4; //sensibilité pour le scroll, 0 < StaticZone < 0.5
  • BorderLim = 0; //affiche une bordure autour de la map, plutôt laid en fait
  • DynCursor = 1; //change l'apparence du curseur pendant le scroll
  • DefInterval = 5; //temps par défaut pour les setTimeout
  • WinOpacity = 0.9; //opacité des fenêtres
  • WinLightDrag = 1; //annule l'opacité des fenêtres pendant les dragndrop
  • Locator = 0; //affiche map
  • GamespaceBg = 'url(img/map/bg/fog.gif)'; //map de fond
  • MapBg = 'img/map/bg/AR3300.jpg'; //map
  • function StartGame() {
  • CreateGamespace(); //crée un div prenant tout l'écran où sera crée la map
  • CreateMap(5120,3840); //crée la map de tailler 5120*3840 (attention pour l'instant l'image MapBg sera ETIREE si elle est trop petite)
  • StartGamespace(); //démarre le tout
  • //CreateChar(400,900,'Elemental, Water',17,0.65);
  • CenterView(2060,2260); //cadre la vue sur ces coordonnées (assez peu précis en fait)
  • //CreateChar est aussi utilisé pour crée des objets tels que la fumée ou de l'eau...
  • //C'est assez illogique la fonction changera bientôt de nom
  • CreateChar(2510,3035,'FOUNTN',2,0.7);
  • //créer l'objet FOUNTN aux coord 2510,3035 avec l'id 2 et une opacité de 0.7
  • //veiller à ne pas créer 2 objets avec le même id
  • CreateChar(1940,355,'CHIMSMK',3,0.4);
  • CreateChar(2585,1125,'CHIMSMK',4,0.4);
  • CreateChar(1325,1045,'CHIMSMK',5,0.4);
  • CreateChar(4752,2425,'CHIMSMK',6,0.4);
  • CreateChar(930,2560,'CHIMSMK',7,0.4);
  • CreateChar(795,2710,'CHIMSMK',8,0.4);
  • CreateChar(4476,2553,'CHIMSMK',9,0.4);
  • CreateChar(4738,2571,'CHIMSMK',10,0.4);
  • CreateChar(4490,2419,'CHIMSMK',11,0.4);
  • CreateChar(3005,1713,'BUTRFLY',12);
  • CreateChar(3657,993,'BUTRFLY',13);
  • CreateChar(3275,995,'BUTRFLY',14);
  • CreateChar(4492,1084,'BUTRFLY',15);
  • CreateChar(1539,970,'BUTRFLY',16);
  • CreateChar(1500,1500,'wyvern',1);
  • MoveChar(1,2350,2300,5);
  • //bouge l'objet d'id 1 (la wyvern) vers le point 2350,2300 à la vitesse 5.
  • }
  • //les fonctions "Action" sont appelés lorsque certains évenèment ont lieu
  • function ActionClick() {
  • MoveChar(1,MouseXCoord(),MouseYCoord(),5);
  • //MouseXCoord()/MouseYCoord() retourne les coordonnées du curseur, tenant compte de la position de la map sur l'écran
  • }
  • function ActionMove() {
  • window.status = Math.round(MouseXCoord())+'/'+Math.round(MouseYCoord());
  • //affiche en status les coordonnées de la souris, pratique pour placer de nouveau objet
  • }
  • function ActionOver(Id) {
  • document.title = Elmt[Id];
  • //ci-dessous, un petit essaie d'intégrer Ajax au moteur... très basique.
  • //pour essayer décommenter aussi l'elemental d'eau
  • /*if(Id == 17) {
  • CreateDialog(100,100,'<img src="img/spinner.gif">',18);
  • //crée un div de dialogue au point 100,100, d'id 18, contenant l'image spinner.gif
  • StickDialog(18,17);
  • //"colle" ce div à l'élémental
  • AjaxRequest('test.php','CreateDialog(100,100,Request.responseText,18);');
  • //appelle en arrière plan la page test.php, quand le résultalt arrive place dans le div de dialogue le contenu du fichier
  • }*/
  • }
  • function ActionOut(Id) {
  • }
  • //pour modifier le menu regarder dans le fichier index
  • //CreateWin(350,350,WinAbout(),'About');
  • //crée une fenêtre déplaçable d'id 'About' au point 350,350
  • //de contenu WinAbout(), fonction définie dans le fichier game/win/options.win.js
//(fichier core/game/game.inc.js)

////////////////
//FICHIER GAME//
////////////////

//à terme vous devriez pouvoir adapter le moteur à vos besoin en utilisant ce seul fichier
//pour l'instant ça me semble délicat, cependant vous pouvez déjà voir ici un exemple d'utilisation basique du moteur



//PARAMETRES
//Le "Volumetric Lights" est une sorte de blur, c'était au début un bug et j'ai trouvé que ça rendait pas mal sur les toits/arbres
//ça rame pas mal par contre
OverMask = 0;				//"Volumetric Lights" activé
OverMaskOpacity = 0.2;		//intensité (immonde lorsque > 0.4)

ScrollSpeed = 50;			//vitesse de défilement de la map
StaticZone = 0.4;			//sensibilité pour le scroll, 0 < StaticZone < 0.5
BorderLim = 0;				//affiche une bordure autour de la map, plutôt laid en fait
DynCursor = 1;				//change l'apparence du curseur pendant le scroll
DefInterval = 5;			//temps par défaut pour les setTimeout

WinOpacity = 0.9;			//opacité des fenêtres
WinLightDrag = 1;			//annule l'opacité des fenêtres pendant les dragndrop

Locator = 0;				//affiche map

GamespaceBg = 'url(img/map/bg/fog.gif)';	//map de fond
MapBg = 'img/map/bg/AR3300.jpg';			//map

function StartGame() {
	CreateGamespace();		//crée un div prenant tout l'écran où sera crée la map
	CreateMap(5120,3840);	//crée la map de tailler 5120*3840 (attention pour l'instant l'image MapBg sera ETIREE si elle est trop petite)
	StartGamespace();		//démarre le tout
	
	//CreateChar(400,900,'Elemental, Water',17,0.65);
	
	CenterView(2060,2260); //cadre la vue sur ces coordonnées (assez peu précis en fait)
	
	//CreateChar est aussi utilisé pour crée des objets tels que la fumée ou de l'eau...
	//C'est assez illogique la fonction changera bientôt de nom	
	CreateChar(2510,3035,'FOUNTN',2,0.7);
	//créer l'objet FOUNTN aux coord 2510,3035 avec l'id 2 et une opacité de 0.7
	//veiller à ne pas créer 2 objets avec le même id
	
	CreateChar(1940,355,'CHIMSMK',3,0.4);
	CreateChar(2585,1125,'CHIMSMK',4,0.4);
	CreateChar(1325,1045,'CHIMSMK',5,0.4);
	CreateChar(4752,2425,'CHIMSMK',6,0.4);
	CreateChar(930,2560,'CHIMSMK',7,0.4);
	CreateChar(795,2710,'CHIMSMK',8,0.4);
	CreateChar(4476,2553,'CHIMSMK',9,0.4);
	CreateChar(4738,2571,'CHIMSMK',10,0.4);
	CreateChar(4490,2419,'CHIMSMK',11,0.4);

	CreateChar(3005,1713,'BUTRFLY',12);
	CreateChar(3657,993,'BUTRFLY',13);
	CreateChar(3275,995,'BUTRFLY',14);
	CreateChar(4492,1084,'BUTRFLY',15);
	CreateChar(1539,970,'BUTRFLY',16);

	CreateChar(1500,1500,'wyvern',1);
	
	MoveChar(1,2350,2300,5);
	//bouge l'objet d'id 1 (la wyvern) vers le point 2350,2300 à la vitesse 5.
}


//les fonctions "Action" sont appelés lorsque certains évenèment ont lieu

function ActionClick() {
	MoveChar(1,MouseXCoord(),MouseYCoord(),5);
	//MouseXCoord()/MouseYCoord() retourne les coordonnées du curseur, tenant compte de la position de la map sur l'écran
}

function ActionMove() {
	window.status = Math.round(MouseXCoord())+'/'+Math.round(MouseYCoord());
	//affiche en status les coordonnées de la souris, pratique pour placer de nouveau objet
}

function ActionOver(Id) {
	document.title = Elmt[Id];
	
	//ci-dessous, un petit essaie d'intégrer Ajax au moteur... très basique.
	//pour essayer décommenter aussi l'elemental d'eau
	/*if(Id == 17) {
		CreateDialog(100,100,'<img src="img/spinner.gif">',18);
		//crée un div de dialogue au point 100,100, d'id 18, contenant l'image spinner.gif
		
		StickDialog(18,17);
		//"colle" ce div à l'élémental
		
		AjaxRequest('test.php','CreateDialog(100,100,Request.responseText,18);');
		//appelle en arrière plan la page test.php, quand le résultalt arrive place dans le div de dialogue le contenu du fichier
	}*/
}

function ActionOut(Id) {
	
	
	
}

//pour modifier le menu regarder dans le fichier index
//CreateWin(350,350,WinAbout(),'About');
//crée une fenêtre déplaçable d'id 'About' au point 350,350
//de contenu WinAbout(), fonction définie dans le fichier game/win/options.win.js

 Conclusion

Le fichier étant un peu gros, vous trouverez la dernière version ici : http://gravytea.com/florian/ForgotEngine/fe.zip
Ca rte et persos sont inclus.


 Historique

22 avril 2006 14:16:03 :
Plus de problème lors du déplacement de la map sous IE.
29 avril 2006 17:57:03 :
La map est dorénavant découpée en 256 morceaux d'une vingtaines de Ko qui se chargent de façon intelligente (plutôt qu'une seule grosse image de plusieurs Mo comme avant).

 Sources du même auteur

Source avec Zip SYSTÈME DE NOTATION PAR ÉTOILES

 Sources de la même categorie

Source avec Zip Source avec une capture AVVDA : A VERY VERY DARK AFFAIRES DEMO par Cyreb
Source avec Zip Source avec une capture 3D AVEC WEBGL + MESH par Hakumbaya
SUDOKU RESOLVER (BRUTEFORECE, RÉCURSION) par amezghal
Source avec Zip MACHINE À SOUS par loicseg
Source avec Zip DOODLE JUMP EN JAVASCRIPT par Toshy62

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture AVVDA : A VERY VERY DARK AFFAIRES DEMO par Cyreb
Source avec Zip MACHINE À SOUS par loicseg
Source avec Zip Source avec une capture JEU DE POKER LOCK par GhislainLavoie
Source avec Zip Source avec une capture AUTRE MAP RPG AVEC UNE APPROCHE DIFFÉRENTE par rekam
Source avec Zip Source avec une capture ESSAI DE JEU DE CARTE EN JAVASCRIPT par jppsg36

Commentaires et avis

Commentaire de Scraat le 21/04/2006 15:04:15

Attention, même si cette source est sur la partie Javascript du site vous aurez tout de même besoin d'EasyPHP pour pouvoir l'utiliser en local ! Cependant aucune connaissance de PHP n'est requise pour comprendre le code.

Commentaire de apxa le 22/04/2006 12:49:30

Iop,
Ca delire un peu au niveau deplacement de la map mais c du beau travail.

Have Fun ;)

Commentaire de Sannazzarotiti le 22/04/2006 13:03:56

Le fichier dans un zip stp

Commentaire de Scraat le 22/04/2006 13:59:58

Pour le zip : http://gravytea.com/florian/ForgotEngine/fe.zip
Effectivement la map se balade un peu quand tu es pas sur firefox...

Commentaire de Sannazzarotiti le 22/04/2006 14:47:23

merci, de toute facon IE a toujours un probleme

Commentaire de bobicarte le 24/04/2006 09:31:50

avec quel logiciel tu as cree la map

Commentaire de Scraat le 24/04/2006 15:45:33

La map n'est pas de moi ! Elle est tiré du jeu Baldur's Gate, j'ai pu la récupérer grâce au programme InfinityExplorer.
Tout est expliqué dans le zip (readme.txt).

Commentaire de patrick532 le 25/04/2006 18:54:33

très bien, à suivre jusqu'à ce que tu ai fini de plancher sur un système de chargement intelligent de la map.

Commentaire de emilia123 le 30/04/2006 22:29:10

bonjour,

Les démo/zip ne sont plus disponibles :'(

Est ce temporaire?

Em.

Commentaire de Scraat le 30/04/2006 22:51:08

Salut,
c'est le serveur qui a un problème, ça devrait vite revenir...

Commentaire de thedeejay le 04/05/2006 20:24:00

ok thanks!

Commentaire de thedeejay le 04/05/2006 20:24:23

ok merci beaucoup...

Commentaire de thedeejay le 10/05/2006 16:44:51

mais en fait cela sert à quoi?
et le zip marche toujours pas.
ya t-il une adresse ou vous joindre?
merci

Commentaire de TheCric le 16/08/2006 01:28:41

le zip n'est pas un zip mais un rar donc il faut renommer l'archive en .rar et l'ouvrir avec Winrar, 7-zip ....

Commentaire de thedeejay le 14/12/2006 21:07:59

ok! merci beaucoup!

Commentaire de franco_se le 15/12/2006 01:20:01

genial

mais ce projet est-il toujours en cours ?

Commentaire de Scraat le 15/12/2006 08:06:58

Oui oui...

Commentaire de franco_se le 18/12/2006 17:59:26

mais dans ce cas, j'ai 2 petites questions:
1/ comment compte-tu gerer les limites de mouvement du perso ( s'il marche, il sera limité par les murs par ex)
2/ avec une map pre-dessinée, comment passer derriere un arbre ? ... a moins de faire un map "fond" et une autre "1er plan", transpartante ... mais ds ce cas un systeme de tiles aurait été plus simple ....

enfin, j'ai hate de voire la suite  :)

Commentaire de DyoChris le 16/01/2007 09:01:59

J'ai hate de voir l'évolution du projet, comptes-tu permettre aux utilisateurs de se voir sur la map? J'ai testé sur Opera, c'est pas compatible. Enfin bonne chance, je suis sur que ce projet peut aboutir à quelque chose de sympa, mais il te faudra beaucoup de temps.  

Commentaire de delta38 le 06/02/2007 17:35:40

comme certain l'on dit plus aux internet explorer c'est nul :)

Commentaire de stfou le 09/04/2007 18:24:24

DELTA38 >> Bin ça c'est constructif... C'est quoi le rapport avec la source ?

Commentaire de gigamaster le 06/08/2007 10:34:25

Excellent rendu sur FF. C'est très prometteur. Bon courage pour la suite!
:-)

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Cherche programmeur(s) AJAX pour aider dev. RPG par navigateur [ par witchgunn ] Bonjour, je suis webmaster (28 ans) et je mets sur les rails un projet de RPG jouable dans le navigateur. Le design en est aux finitions : [img]ht [CS]Un thème HTML [ par rt15 ] Salut, Il y a pas mal de questions sur le HTML qui finissent dans la bar (Ou sur le site du langage côté serveur utilisé, alors que le problème se li Jeux d'arcade en DHTML: personne n'a réussi à en faire un bien? [ par Duxmachin ] Bonjour &#224; tous,Je suis nouveau en JS, je code depuis 2 mois,je me posais la question de savoir si quelqu'un a d&#233;j&#224; r&#233;ussi &#224; c impression jeu de cadre tout entier [ par attarte ] J'ai un jeu de cadre d&#233;coup&#233; en deux. Un des deux cadres contient un bouton imprimer. Le javascript window.print() ne m'imprime que le cadre [AJAX+DIV] Probleme de positionement de basile "<DIV>" [ par frostie ] Boujour tout le monde, Je suis en train de developper une application PHP/AJAX (Asynchronous JAvascipt Xml) qui utilise beaucoup les balises &lt;DIV& Afficher un texte ou menu depuis un menu DHTML [ par 1ouf ] Bonjour,Je sais que mon titre de sujet n'est pas clair mais je sais pas comment le dire, ni o&#249; chercher.Voil&#224; alors en faite je souhaite cr& AJAX ? [ par tony1239456 ] Bonjour, je suis tr&#232;s int&#233;ress&#233; par la nouvelle forme de progrzmmation AJAX. J'ai vu des scripts en action et sa m'a beaucoup pl&#251; Ajax bug userInteractive = 3 [ par littlebigfox ] Bonjour a tous!J'ai un petit souci, j'espere que quelqu'un peu m'aider, je ne comprend absolument pas. C'est tout bete, j'ai creer un objet xmlhttpreq Heure visiteur en cookie ou autre [ par zonevirtuel ] bonjour, en fait j'ai un gros soucis ... je suis concepteur d'un jeu sur internet a traffic international, francais, canadiens, et autres viennent r& [DHTML] Apparition calque en transparence [ par bractar ] Bonjour, j'aimerais reproduire une effet "classique" que j'ai pu voir sur diff&#233;rents sites (je ne me rappelle plus lesquels ^^; ). J'ai sur une p


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,952 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales