Aller au contenu
San Andreas Multiplayer
Guest

Projet communautaire

Êtes-vous pour ou contre un projet communautaire ?  

27 membres ont voté

  1. 1. Êtes-vous pour ou contre un projet communautaire ?

    • Oui, c'est intéressant mais je serais seulement utilisateur
    • Oui, c'est top ! Je pense participer activement mais j'y connais pas grand chose
    • Oui, je participerai activement et je maîtrise vraiment !
    • Oui mais je préfère l'option du choix d'un mod de jeu et développer un GM
    • Non c'est pas nécessaire


Messages recommandés

Guest

Bonsoir à tous :P

 

Voilà, j'ai eu l'idée de mettre en place sur Github un dépôt de fichiers pour un projet communautaire.

 

Pour information, Github est un hébergeur de fichiers, utilisant un gestionnaire de versions Git. Ce site est développé en Ruby.

 

Voici le profil Github de la communauté SA-MP francophone.

 

Introduction

Qu'est-ce c'est un framework ?!

 

Un framework, est un ensemble d'outils, organisés selon une nomenclature, une architecture (Patterns). Dans notre cas, l'architecture sera limitée à SA-MP et au Pawn (principale langage de programmation).

Ce framework va nous permettre de former un « squelette » d'outils, de librairies.

 

Cette bibliothèque d'outils va permettre aux développeurs (qui ne participerons pas nécessairement au développement du framework), de les aider dans le développement de leurs gamemodes. Ce framework a pour but de faciliter le développement des développeurs ^_^.

 

Mais, qu'est-ce que cela implique ?

 

Cela impliquera surtout beaucoup de documentation de notre part afin de bien guider les contributeurs et développeurs.

Mais dans tous les cas, il est certain qu'il faille avoir des bases en développement (Pawn principalement ;)).

 

Dans l'idée, comment cela va se dérouler ?

 

Il va déjà y avoir une phase où vous aurez le libre choix de dire oui ou non à ce projet et d'y participer ou non ;)

 

Nous avons déjà une première idée de la manière de voir les choses.

Le framework possèdera un système permettant de charger des « packages » (ou plus communément appelé système). C'est à dire qu'à partir d'une documentation, il vous sera possible, ou par le biais de ce qu'aura pu développer les contributeurs du framework, télécharger un ou plusieurs packages et les installer sur votre serveur ^_^.

 

Autre idée possible

 

Nous avons aussi eu l'idée, si jamais celle du framework vous semble inutile ou trop compliquée, de choisir ensemble un mod de jeu (Excepté un Roleplay), voir même sur un autre mod de jeu (Gostown, Anderius, Gta United, Criminal Russia).

On développerai ensuite ensemble, selon ceux qui le souhaitent (via Github) le gamemode qu'on hébergerait sur un dédié (que nous possédons).

 

Selon l'issu du sondage, une nouvelle section fera son apparition avec différents sujets explicatifs pour en dire plus et détailler le projet ;)

On mettra certainement en place un petit formulaire libre afin qu'on puisse voir ceux qui souhaiterai participer activement au développement du framework communautaire afin de les intégrer dans un groupe.

 

En espérant que l'idée plaise à certains d’entre-vous ;)

 

Amicalement.

Partager ce message


Lien à poster
Partager sur d’autres sites

Bon je pense que tu connais réponse ^^.

 

L'idée du framework avec les packages est vraiment intéressante et peut permettre de développer des systèmes robustes. Cela va donner de bonnes bases de systèmes pour de nouveaux développeurs. Surtout que les systèmes pourront être vachement optimisés si il y'a des plugins derrière ou des très bons scripts.

Partager ce message


Lien à poster
Partager sur d’autres sites

A voté !

 

Sinon, comme je l'ai dit à Eidorian, ce n'est pas un projet secret, beaucoup le savent, je développe une include qui consiste à intégrer officiellement l'Objet en Pawn.

 

Alors, je vais déçevoie l'espoir de Papawy certainement, mais la syntaxe sera similaire au JavaScript, car il m'est totalement impossible d'imaginer des patterns pour une classe de manière globale, ce serait l'anarchie et le pointeur du stack serait corrompu, alors que l'Objet se baserait sur des Headers comme celui du segment CODE et DATA.

 

Pour faire, ce sera codé en pur AMX pour jouer avec la mémoire, un peu comme y_malloc mais en plus simple.

 

L'avantage, c'est qu'on ne se casserait plus la tête avec des tableaux à mille dimensions et simplifierait grandement l'ergonomie du code.

Partager ce message


Lien à poster
Partager sur d’autres sites
Guest

C'est intéressant, ce que j'expliquai à vous deux. Il serait intéressant, en plus du framework, de pouvoir définir une sorte de trame. Afin qu'on puisse déclarer toutes sortent de choses :

 

Class Phone implements PackagesController {
	 
}

Interface PackagesController {
    public function getPackageName(packageid, &packageName[]);
    ...
}

Etc etc...

:P

 

Mais après je reste sceptique à la syntaxe JS car je reste pas trop accroché à la syntaxe (et mes collègues par la même occasion ^_^). A voir ce qui est possible de faire ;)

Partager ce message


Lien à poster
Partager sur d’autres sites

Meh :P

 

J'pense qu'il faudra une base en plugin pour gérer les packages. Faudra forcément un "master" package pour gérer les autres.

Si les tableaux sont gérés dynamiquement c'est cool !

 

Faudra simplifier tout ce qui est gestion des entités (joueurs, véhicules, objets, etc.) : par exemple, dans OnPlayerConnect le dév aurait directement accès à l'entité Player. Ca donnerait un truc du style : Player.id, ou Player.setPosition, etc.

Partager ce message


Lien à poster
Partager sur d’autres sites
Guest

Au fil du développement, sa prendrai cette allure. Mais sans qu'il y est d'impact sur le système de package. Ou le but sera de proposer une syntaxe de développement d'un package pour ensuite l'installer et le faire marcher. Tout en gérant la notion de dépendances.

Partager ce message


Lien à poster
Partager sur d’autres sites

Il faudra des fonctions pour communiquer entre les packages ouaip'. Mais faudra se concentrer sur des packages indépendants et pas forcements tous tournés vers le RolePlay :) .

Partager ce message


Lien à poster
Partager sur d’autres sites

Je pense que c'est une bonne initiative qui pourrait améliorer de grandes choses.

Mais comme dit dans la discussion il faudrait que cela soit adapté pour tout types de mods.

Partager ce message


Lien à poster
Partager sur d’autres sites
Guest

Oui, que nous partions sur un framework ou un mod de jeu, celui-ci sera adapté pour tout type de mods :).

 

Avec VC-MP ou encore United Multiplayer, il peut-être possible de proposer quelque chose de nouveau ^_^.

Partager ce message


Lien à poster
Partager sur d’autres sites

Un projet communautaire est intéressant, ça fais toujours du bien de pouvoir réunir différents membres pour partager des connaissances, mais en vain, cela permettra à certains de faire des découvertes. Pour la documentation, il faudrait quelque chose d'un peu alléger, et pas trop agressif comme un pavé, ça n'en incitera pas beaucoup à lire, seul les plus intéressés le feront, sachant que certains s'y intéressent une fois que tout est présent et qu'ils ont eu l'occasion de lire.

Partager ce message


Lien à poster
Partager sur d’autres sites

Bon j'ai fait des tests sur mon include OO, concluant mais pas trop content.

 

static const
	core = CLASS_INIT;

class maClasse:
{
	new
		maPropriete = 5;
		
	getPropriete()
	{
		return this.maPropriete;
	}
}

main()
{
	new
		Instance:premierTest = NEW maClasse();

	printf("%d", core.premierTest.getPropriete());
}

 

Résultat :

[22:38:21] 5

Temps d'exécution pour récupérer la valeur d'une propriété à partir d'une méthode : 7 millisecondes, pas cool

 

 

Modifié par Dutheil

Partager ce message


Lien à poster
Partager sur d’autres sites

C'est intéressant si t'arrive à optimiser ça, tu serais m'expliquer comment fonctionne un peu l'include ? (Je n'y connais rien en ASM)

Partager ce message


Lien à poster
Partager sur d’autres sites
Le 29/2/2016à17:06, TheArrow a dit :

C'est intéressant si t'arrive à optimiser ça, tu serais m'expliquer comment fonctionne un peu l'include ? (Je n'y connais rien en ASM)

Bah c'est en fait un mixte de pré-processeur pure, les classes sont déclarées en fonctions publiques, je récupère leur pointeur et j'ai repris le principe de y_inline pour intégrer une fonction publique dans une autre, du coup les méthodes dans une classe sont des fonctions publiques.

 

Les propriétés sont syntaxiquement parlant déclarées dans la classe, mais en réalité ce sont des variables globales, j'ajoute ensuite à un tableau dynamique similaire à l'utilisation de y_malloc, l'adresse relative pointant sur la variable.

 

Le this permet tout simplement un déréférencement de l'adresse relative comme en C, comme une simple utilisation de #emit LREF.

Modifié par Dutheil

Partager ce message


Lien à poster
Partager sur d’autres sites

Ok donc si j'ai bien compris les attributs et les méthodes peuvent être utilisée indépendamment de la classe, comme si je faisait une fonction/variable en dehors ?

Si c'est le cas c'est un peu dommage.

Modifié par TheArrow

Partager ce message


Lien à poster
Partager sur d’autres sites

Oui si tu maîtrises l'AMX, comme je l'ai parfois fait en C++ avec l'asm x86.

Mais sinon, non.

 

Edit : J'oubliais de préciser, que les fonctions publiques intégrées à SAMP, devraient subir une conversion avant.

Les paramètres passés seraient directement des instances, donc des paramètres taggés syntaxiquement parlant, mais dans le core, ce serait des instances.

 

J'ai eu une discussion avec Y_less sur Skype et il m'a expliqué qu'il a rencontré le même problème de consommation.

Zeex sur le forum sa-mp.com, m'a dit que c'était faisable en modifiant le compilateur, mais ça serait assez limité. Donc, j'vais y réfléchir, étudier le compilateur et surement le fork sur Github quand j'aurais compris comment faire.

Modifié par Dutheil

Partager ce message


Lien à poster
Partager sur d’autres sites
Il y a 17 heures, Dutheil a dit :

J'ai eu une discussion avec Y_less sur Skype et il m'a expliqué qu'il a rencontré le même problème de consommation.

Zeex sur le forum sa-mp.com, m'a dit que c'était faisable en modifiant le compilateur, mais ça serait assez limité. Donc, j'vais y réfléchir, étudier le compilateur et surement le fork sur Github quand j'aurais compris comment faire.

 

Donner une version custom du compilo juste pour le projet communautaire et ton include ce serait un peu contraignant non ? 9_9

Partager ce message


Lien à poster
Partager sur d’autres sites
il y a 6 minutes, Papawy a dit :

 

Donner une version custom du compilo juste pour le projet communautaire et ton include ce serait un peu contraignant non ? 9_9

Non il n'y aurait pas d'include, mais seulement le compilateur forké de Zeex.

Partager ce message


Lien à poster
Partager sur d’autres sites
Guest

Salut à tous,

 

Je viens réagir par rapport à ce sondage qui est toujours en cours.

 

Je me rend compte (lorsqu'on repense au contexte de SA-MP et surtout du Pawn), est-ce que ça vaut vraiment le coup, à l'heure actuelle (en 2016), de développer un « Framework » ? Le temps qu'on y passera vaudra il le coup ? Je reste assez secptique au final, qu'est-ce que vous en pensez ? Sachant aussi que je n'aurai peut-être pas le temps libre suffisant pour superviser le projet.

 

A voir si on voit ensemble pour développer un GM pour la communauté (truc fun sans que sa engendre quoi que se soit sur les serveurs officiels en activité) sur un des mods disponibles ou si on abandonne l'idée complètement.

Partager ce message


Lien à poster
Partager sur d’autres sites
Invité THERP
Le Thursday, March 10, 2016 à 23:37, C_far a dit :

Moi je pense qu'il faut tenter !

 

Tout est dit..

Partager ce message


Lien à poster
Partager sur d’autres sites

ddb, signal gouv deux sucres pour up de poste datant d'un an prépare toi a répondre a Gilbert!

Partager ce message


Lien à poster
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant

×