Aller au menu - Aller au contenu
Inscris-toi au e-camp "Héberge ton jeu Facebook sur Azure" de Microsoft vendredi 25 mai à 13h30 !

[UDK] zFortress

Eh non, UDK ce n'est pas que pour les FPS !

Pour accéder à cette section
Connectez-vous !
connexion_rpx

Résolu Le problème de ce sujet a été résolu

Page 1  2  3  4  5  6  7  8  Suivante
Auteur Message
2 visiteurs sur ce sujet (2 anonymes)
Page 1  2  3  4  5  6  7  8  Suivante
Hors ligne Gwenn # Posté le 07/11/2011 à 23:20:02
Chez moi ça marche.
Avatar
Groupe : Anciens

Bonjour tout le monde !

Je vois régulièrement des gens discuter sur les moteurs de jeu et leurs limitations. Histoire de me lancer un petit défi, j'ai décidé de réaliser un petit Tower Defense, ou plutôt un affrontement entre deux camps fortifiés avec différentes armes.

Les règles de base


  • Vous pouvez construire une tour sur une zone active
  • Construire une tour vous coûte des ressources, qui se régénèrent doucement mais qui s'obtiennent par la destruction des tourelles ennemies !
  • Construire une tour active les zones alentour
  • Une fois toutes les défenses éliminées, la base ennemie entre sous le feu de votre artillerie !

Le jeu se déroule en vue stratégique : le joueur se déplace en 2D au dessus du terrain.

En images...



Image utilisateur

Image utilisateur

Image utilisateur



Contributions


  • Maximilien_bertrand pour une bonne partie des meshs de la map Orbiter
  • Alex-D qui nous a créé une superbe musique de fond
  • Moi-même...

Quelles versions ?


Télécharger la Preview2 de zFortress pour Windows (236Mo)


Télécharger la Preview2 de zFortress pour Mac OSX (125Mo)


Télécharger les sources de la Preview2 (code, packages UDK, sources Blender de la tourelle basique, sources Flash) (118Mo)



Quel contenu ? Quel code ?


Ce projet est réalisé à 100% avec du contenu et du code perso. Bien entendu, le code s'appuie sur les classes d'UDK, mais le code d'Unreal Tournament n'est pas utilisé puisque ce n'est pas un FPS. ;)

Voici un extrait du code pour vous convaincre !

Secret (cliquez pour afficher)
Code : Java
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
class TowerActor extends Actor
	ClassGroup(TowerDefense)
	HideCategories(Display,Collision,Physics)
	placeable;


var(TowerActor) bool			isOnBlueTeam;
var(TowerActor) bool 			bIsCapturable;
var(TowerActor) bool 			bIsRoot;
var(TowerActor) int 			ActivateRadius;

var LinearColor					TeamColorRed;
var LinearColor					TeamColorBlue;
var LinearColor					TeamColor;
var LinearColor					Black;

var StaticMeshComponent			Mesh;
var MaterialInstanceConstant	MaterialInstance;

var int							PowerCount;


simulated function PostBeginPlay()
{
	Super.PostBeginPlay();
	MaterialInstance = Mesh.CreateAndSetMaterialInstanceConstant(0);
	if (!bIsCapturable)
		IncreasePower();
	else
		UpdateColor();
}


simulated function int UpdateStatesInRadius(bool bIsPowerUp)
{
	local TowerActor target;
	local int count;

	count = 0;
	foreach VisibleCollidingActors( class'TowerActor', target, ActivateRadius)
	{
		if (target.bIsCapturable && IsSameTeam(target)){
			count++;
			if (bIsPowerUp)
				target.IncreasePower();
			else
				target.DecreasePower();
		}
	}
	return count;
}


simulated function bool IsSameTeam(TowerActor T)
{
	return (isOnBlueTeam == T.isOnBlueTeam);
}


simulated function IncreasePower()
{
	PowerCount++;
	UpdateColor();
}


simulated function DecreasePower()
{
	PowerCount--;
	UpdateColor();
}


simulated function UpdateColor()
{
	if (!IsActivated())
		TeamColor = Black;
	else if (isOnBlueTeam)
		TeamColor = TeamColorBlue;
	else
		TeamColor = TeamColorRed;
	MaterialInstance.SetVectorParameterValue('Color', TeamColor);
}


simulated function bool IsActivated()
{
	return (PowerCount > 0);
}


defaultproperties
{
	Begin Object class=DynamicLightEnvironmentComponent Name=MyLightEnvironment
		bEnabled=true
		bDynamic=true
	End Object
	Components.Add(MyLightEnvironment)

	Begin Object class=StaticMeshComponent Name=IconMesh
		StaticMesh=StaticMesh'TowerEffects.Mesh.SM_Icon'
		Rotation=(Yaw=32768)
		LightEnvironment=MyLightEnvironment
	End Object
	Mesh=IconMesh
 	Components.Add(IconMesh)

	Begin Object class=StaticMeshComponent Name=TowerMesh
		LightEnvironment=MyLightEnvironment
	End Object
 	Components.Add(TowerMesh)
	CollisionComponent=TowerMesh

	Black=(R=0.0,G=0.0,B=0.0,A=0.0)
	TeamColorRed=(R=5.0,G=1.0,B=0.0,A=1.0)
	TeamColorBlue=(R=0.0,G=1.0,B=5.0,A=1.0)

	PowerCount=0
	isOnBlueTeam=true
	ActivateRadius=400

	bEdShouldSnap=true
	bCollideActors=true
	bBlockActors=true
}


Qu'est-ce qui est prévu ?

  • Deux environnements : l'environnement actuel, situé dans l'espace et un second univers plus naturel.
  • Plus d'armes.
  • Un jeu complet. :)


Et nous dans tout ça ?

Le jeu sera proposé gratuitement en téléchargement une fois terminé. Il sera bien évidemment possible de créer vos propres niveaux !
Le code sera également proposé en téléchargement sous licence libre pour autoriser les modifications plus en profondeur.


Combien de temps ça prend de faire tout ça ? Comment on fait ?

Pas beaucoup de temps : quelques semaines de développement intense principalement.

Je suis prêt à répondre, comme toujours, à toute question technique sur UDK. J'espère que ce projet saura vous donner envie d'essayer ce moteur ! :p
Sachez que vous pouvez participer, il suffit de lire le cours du site !
Édité le 20/01/2012 à 19:37:00 par Gwenn

Image utilisateur
 
Publicité # Posté le 07/11/2011 à 23:20:02

Hors ligne Le solutionneur # Posté le 07/11/2011 à 23:38:42
La clé du problème...
Avatar

Ouah, c'est un super projet !

En cours de rédaction d'un tuto de C sur psp !
Fait de l'asm z80 et de l'asm x86.
 
Hors ligne Gwenn # Posté le 08/11/2011 à 00:33:30
Chez moi ça marche.
Avatar
Groupe : Anciens

Merci !

Petite news, déjà, très vite : le premier mode de jeu disponible sera "contre l'IA". L'IA est encore en travaux mais fonctionne déjà !

Petite image aussi avec un emplacement de construction, et l'animation de construction :
Secret (cliquez pour afficher)
Image utilisateur
Édité le 08/11/2011 à 00:33:47 par Gwenn

Image utilisateur
 
Hors ligne JohnCarmack # Posté le 08/11/2011 à 03:04:50
Avatar

Études : EPITA

Tu gères Gwen-Haël !
Continu comme ça , j'attends les news et la Bêta :)


www.creationjeuxjava.fr

Developpement de jeux 2D ! La Communauté Française de Slick2D , la librairie pour les jeux vidéos en JAVA !!Tutoriels sur les jeux en réseau ! A venir la 3D avec JavaMonkeyEngine !!

 
Hors ligne aska990 # Posté le 08/11/2011 à 04:27:03
Demopan-Kenobi
Avatar

Ville : Mont-dore
Pays : Nouvelle-Calédonie

Eh ben c'est vrai que ça a l'air bien sympa :)
Hâte de voir ça.
 
Hors ligne Gwenn # Posté le 08/11/2011 à 11:51:34
Chez moi ça marche.
Avatar
Groupe : Anciens

Merci pour vos retours !

J'espère terminer le gros du code ce soir avec la gestion de la fin de partie et la limite de déplacement de caméra.
L'étape suivante c'est l'ajout de contenu et un peu de mapping, et vous aurez une jolie beta. ;)

C'est un projet super pédagogique parce que je fais vraiment le tour d'un peu tout dans UDK, je me rends compte de la puissance de l'outil.
Vous avez peut-être remarqué que l'icone sur le sommet des tourelles indique leur vie : c'est un Material dynamique, qui prend en paramètre la vie. A chaque tir reçu, le code le met à jour. Et tout ça, c'est faisable super rapidement !
De même la couleur rouge/bleu et les textures sont de simples paramètres, si je veux ajouter une équipe Rose, ou si je veux créer un Material quasi identique, avec ces fonctions mais des textures différentes, j'en ai littéralement pour 30 secondes.
Édité le 08/11/2011 à 12:13:31 par Gwenn

Image utilisateur
 
Hors ligne MaX'' # Posté le 08/11/2011 à 12:16:07
War, war never changes.
Avatar

Les tourelles ont de la vie...?
Hors ligne JohnCarmack # Posté le 08/11/2011 à 12:20:26
Avatar

Études : EPITA

Effectivement , ça montre la puissance de l'UDK ! Dommage que je ne sache pas modeler , car utiliser a chaque fois les assets de l'UDK ou alors les models du net bof...

Oui les tourelles ont de la vie je suppose , sinon on est invincible ?


www.creationjeuxjava.fr

Developpement de jeux 2D ! La Communauté Française de Slick2D , la librairie pour les jeux vidéos en JAVA !!Tutoriels sur les jeux en réseau ! A venir la 3D avec JavaMonkeyEngine !!

 
Hors ligne MaX'' # Posté le 08/11/2011 à 12:22:26
War, war never changes.
Avatar

@John Dans un TD, normalement, on perd lorsqu'on n'a plus de vie, pas quand les tourelles ont plus de vie.
Hors ligne Gwenn # Posté le 08/11/2011 à 12:28:08
Chez moi ça marche.
Avatar
Groupe : Anciens

Les tourelles sont destructibles, on perd de la vie quand elles ne sont plus la pour vous défendre face a l'ennemi. Il y aura aussi des boucliers, purement défensifs .

Image utilisateur
 
Hors ligne MaX'' # Posté le 08/11/2011 à 12:32:58
War, war never changes.
Avatar

Bizarre cette idée de tourelles destructibles... qui les attaque ?
Hors ligne Gwenn # Posté le 08/11/2011 à 12:38:05
Chez moi ça marche.
Avatar
Groupe : Anciens

Les autres tourelles :p

Bon, c'est vrai que c'est effectivement assez éloigné d'un TD classique. Disons que pour l'instant du moins, il n'y a pas d'unité mobile et c'est plus un jeu de fortification qu'un TD. :euh:
J'ai l'intention de mettre des unités mobiles par la suite, mais bon, au pire, disons que c'est pas un tower defense, on se fiche un peu du nom :p
Édité le 08/11/2011 à 13:02:35 par Gwenn

Image utilisateur
 
Hors ligne MaX'' # Posté le 08/11/2011 à 13:07:41
War, war never changes.
Avatar

Désolé, je ne doute pas de ton mode du tout mais j'ai du mal à saisir, vraiment ce qui s'y passe ! Alors, on a des tourelles fixes qui tirent sur d'autres tourelles fixes ? :euh:
Hors ligne Gwenn # Posté le 08/11/2011 à 13:15:18
Chez moi ça marche.
Avatar
Groupe : Anciens

Chaque joueur démarre avec un nombre réduit de zones à construire. Il peut y bâtir des tourelles, qui vont tenter d'éliminer les tourelles d'en face, et qui activent les zones alentour pour y construire également. Elles peuvent donc se faire détruire, ce qui rapporte des ressources à l'adversaire.

On peut également choisir de construire des boucliers, purement défensifs mais plus solides que les tourelles.

Une fois que toutes les défenses d'un joueur sont éliminées, les tourelles adverses attaquent sa base.

Image utilisateur
 
Hors ligne MaX'' # Posté le 08/11/2011 à 13:23:42
War, war never changes.
Avatar

D'accord! Et bien ça s'annonce plus différent que je le pensais mais ça doit être tout de même sympathique!
Hors ligne maximilien_bertrand # Posté le 08/11/2011 à 13:44:44
Avatar
Flux RSS

Tiens je n'avais pas encore jeté un coup à ton TD (ou peu importe la catégorie en fait), et ça s'annonce vraiment sympa.
De plus, je suis particulièrement content du fait que ça continuera à promouvoir un peu ce magnifique soft qu'est Blender à travers cet excellent moteur de jeu.
J'ai vraiment hâte de pouvoir tester une partie! :)
Hors ligne Nomade067 # Posté le 08/11/2011 à 18:54:48
Avatar

Super projet !

Je suis vraiment impatient de pouvoir tester ce petit bijoux :lol:
Avec UDK on a vraiment l'impression que tout est faisable assez aisément et en un rien de temps. Je te souhaite une bonne continuation et tu peux être sûr que je ferai parti des premiers à le télécharger !

On n'est pas le meilleur quand on le croit, mais quand on le sait. Morpheus
 
Hors ligne darkeyes # Posté le 08/11/2011 à 22:37:15
Nyan nyan nyan !

Comme je m'en doutais, ça a l'ai super intéressent ! J'ai hâte de pouvoir tester. :)
Hors ligne Gwenn # Posté le 08/11/2011 à 23:47:54
Chez moi ça marche.
Avatar
Groupe : Anciens

Petite mise à jour ce soir...
  • Gestion du bâtiment "base ennemie" (le gros bâtiment cubique, oui)
  • Augmentation des ressources à la destruction de tours ennemies
  • Gestion de plusieurs types de tours
  • Boucliers : pas encore de model ni d'effets mais la tour "bouclier" qui intercepte les tirs fonctionne
  • Gestion fine des tirs : les tourelles tirent chacune sur la cible la plus proche et en priorité sur les boucliers
  • La vue est modifiée pour être plus lisible (quasi verticale)


Image utilisateur
Mise à jour !


Todolist avant la beta :
  • Vue limitée à la zone de combat (code)
  • Gestion de la fin de match (code)
  • Effets du bouclier
  • Map basique
  • Effets perso pour la tourelle de base

Ça avance bien ! Encore un peu de patience... Pas loin de 2000 lignes de code UnrealScript à l'heure actuelle, une dizaine de Mo de contenu perso et pas mal d'heures au compteur...
Édité le 09/11/2011 à 00:24:50 par Gwenn

Image utilisateur
 
Hors ligne aska990 # Posté le 09/11/2011 à 07:30:31
Demopan-Kenobi
Avatar

Ville : Mont-dore
Pays : Nouvelle-Calédonie

Joli !
Par contre, le modèle de la "base ennemie", j'espère que c'est encore un WIP parce que je le trouve assez moche...

Et aussi, une tourelle semble plus grosse que les autres, c'est juste un effet de perspective ou c'est bien un autre type ?
Édité le 09/11/2011 à 07:32:00 par aska990
 
Hors ligne Gwenn # Posté le 09/11/2011 à 09:13:21
Chez moi ça marche.
Avatar
Groupe : Anciens

C'est un effet de perspective.

Le model "base" est effectivement devenu pas terrible avec la vue à quasi 90°, il est en fait bien plus sympa de côté, je l'arrangerais un peu.

Image utilisateur
 
Hors ligne darkeyes # Posté le 09/11/2011 à 13:20:32
Nyan nyan nyan !

Pourquoi pas, pour les bases, faire derrière les tourelles un grande/moyenne/petite structure ?
Hors ligne Gwenn # Posté le 09/11/2011 à 13:30:37
Chez moi ça marche.
Avatar
Groupe : Anciens

C'est prévu dans le code les tailles variables, ça arrivera après, et les tourelles coûteront plus cher à construire sur ces emplacements . :)
Les bases elles-mêmes doivent rester à l'écart pour éviter les tirs accidentels...

Pour la beta, je me focalise sur le coeur du jeu pour voir ce qui plaît ou non. Le code sera normalement achevé ce soir pour les mécanismes essentiels, je proposerais la beta quand le contenu minimal sera terminé.

Image utilisateur
 
Hors ligne MaX'' # Posté le 09/11/2011 à 13:49:35
War, war never changes.
Avatar

Ce qui serait sympa, mais c'est mon avis, ce serait de faire une map un peu plus sympa, et remonter de quelque degrés la caméra, parce que là, c'est limite vue vers le sol. Du coup, avec la map, avoir un environnement plus classe ? C'est juste une idée comme ça... ^^
Hors ligne Gwenn # Posté le 09/11/2011 à 13:57:15
Chez moi ça marche.
Avatar
Groupe : Anciens

Oui oui, il y aura un environnement bien rempli, là c'est juste pour les tests. Sur cette map, je prévois un décor très "technologique" à la façon de certaines maps Starcraft II pour donner une idée.

L'ennui de la vue c'est que actuellement, les tours interceptent les traces des clics souris, ce qui me gêne pour les boucliers d'ailleurs. Tant que ce problème n'est pas résolu, le jeu est injouable en vue penchée... Mais j'y travaille. ^

Image utilisateur
 
Hors ligne Le solutionneur # Posté le 09/11/2011 à 14:40:50 Message supprimé pour le motif suivant : Dis ça dans le forum Commentaires ! C'est HS. Merci !.
Hors ligne Gwenn # Posté le 09/11/2011 à 23:27:44
Chez moi ça marche.
Avatar
Groupe : Anciens

Au programme du code de ce soir : vue limitée à une zone dans la map via un volume, déboguage en tout genre, meilleure gestion des ressources. Ça progresse !

Image utilisateur
 
Hors ligne FlashFire # Posté le 10/11/2011 à 09:41:45
"Ma louve et moi ;)"
Avatar

Impressionnant , bravo !

Sinon les autres ont déjà tout dit ...

"Mais je vous dit, que je ne l'ai pas fait exprès!"
 
Hors ligne Gwenn # Posté le 11/11/2011 à 16:33:38
Chez moi ça marche.
Avatar
Groupe : Anciens

Le travail continue... :)

Image utilisateur


Quelques bugs assez lourds encore, et il manque une tourelle et quelques ajustements avant la beta, mais ça arrive. :)

Image utilisateur
 
Hors ligne Le solutionneur # Posté le 11/11/2011 à 16:54:47
La clé du problème...
Avatar

Cool !

Juste la police et la couleur en haut à gauche qui me chiffonne :honte:
Édité le 11/11/2011 à 16:55:47 par Le solutionneur

En cours de rédaction d'un tuto de C sur psp !
Fait de l'asm z80 et de l'asm x86.
 

Retour au forum "Mapping et modding" ou à la liste des forums

Pour accéder à cette section
Connectez-vous !
connexion_rpx