Les Packs sont des stk contenant des scripts LUA qui sont chargés au runtime par votre jeu. Ils sont complétement cross-platforme.
Les packs peuvent être utilisés gratuitement dans l'éditeur ShiVa 3D, alors soyez libres de les télécharger et de les essayer.
J'ai programmé de nombreux jeux durant ces dernières années et j'ai acquis une expérience avec ShiVa très intéressante. A chaque fois que j'ai un nouveau jeu à programmer, certaines choses sont similaires par rapport aux jeux précédents, des fonctionnalités sont identiques, des problèmes aussi...
C'est pourquoi j'ai décidé de créer des packs qui pourraient facilement être intégrés à un jeu pour ne pas avoir à réinventer la roue à chaque fois. Chaque pack est indépendant. Il fait une seule chose mais il la fait bien. Avec ces packs, vous (et moi) allez gagner un temps précieux et en les utilisant vous renderez votre code plus lisible, également plus facilement maintenable.
Les packs sont le moyen le plus simple et le plus efficace d'ajouter de nouvelles fonctionnalités à votre jeu.
Ce que j'appelle un 'pack' est en fait un fichier .stk. Ce type de fichier ne sert pas uniquement à contenir le jeu ShiVa qui va être exécuté, mais peut également contenir des ressources indépendantes. Le pack peut en effet être chargé lors de l'exécution du jeu afin d'utiliser les ressources qui s'y trouvent.
L'objectif des packs proposés ici est de pouvoir intégrer des comportements complexes à vos jeux avec une implémentation très simple. Vous le verrez, un pack peut proposer des fonctionnalités habituellement difficiles à implémenter, mais grâce aux packs seules quelques lignes de code suffiront. Le gain de temps dans le développement du jeu est juste énorme.
L'utilisation de ces packs est très simple : placez le fichier .stk dans le répertoire de votre projet, chargez le, et utilisez le.
Afin de faciliter l'étape de chargement de ces packs, vous trouverez ci-dessous un fichier nommé JPPackLoader qui va permettre de charger ces différents packs en une seule ligne de code.
Lorsque vous voudrez publier votre jeu, il suffira de mettre les packs dans la section "Additional files" de l'Authoring Tool.
Les packs peuvent contenir très facilement tous types de ressources propres à ShiVa (AIModels, textures, modèles, ...). Cependant la plupart des packs que vous trouverez ci-dessous contiennent exclusivement des AIModels. Tout comme les plugins, les packs peuvent créer de nouvelles api de script, alors quelles différences y a t'il avec les plugins ?
Les packs ont 2 inconvénients : la completion n'est pas disponible pour leur API (impossible de faire un Ctrl+Espace et absence de colorisation) et ils ne fonctionnent qu'avec les projets LUA (pas de compilation C++). Ce dernier point est en réalité un avantage face aux plugins car cela permet au pack d'être compatible sur absolument toutes les plateformes car il n'a pas besoin d'être recompilé, ce qui veut également dire que le pack est d'ores et déjà compatible avec les plateformes qui ne sont pas encore sorties!
Autre avantage pour les packs, leur taille très petite. Prenons pour comparaison le pack JPTweener et le plugin Tweener (disponible dans le magasin en ligne officiel de ShiVa 3D) : les 2 produits proposent les mêmes fonctionnalités mais le pack JPTweener fait seulement 25KB alors que le plugin fait 4.5MB!
L'absence de completion et de colorisation de leur API dans le LUA n'est en fait pas un problème et peut être contourné. En effet, pour chacun des packs proposés sur ce site, une "extension LUA" est fournie qui est en fait un "mini-plugin" qui va servir uniquement à disposer de la completion et de la colorisation du LUA. Ils ne vous serviront que dans ShiVa Editor lors de la programmation de votre jeu et ne seront pas exportés. La combinaison des packs avec leur mini-plugin est la meilleure solution qui soit puisqu'elle permet d'obtenir le meilleur des 2 mondes sans en avoir les inconvénients.