Les membres ayant 30 points peuvent parler sur les canaux annonces, projets et hs du chat.
La shoutbox n'est pas chargée par défaut pour des raisons de performances. Cliquez pour charger.

Forum Casio - Projets de programmation


Index du Forum » Projets de programmation » From Far, un univers infini sur vos caltos.
Az Hors ligne Membre de CreativeCalc Points: 548 Défis: 10 Message

From Far, un univers infini sur vos caltos.

Posté le 26/05/2015 04:21


Explorer un univers infini? Plein de vie et de mystères? Ce sera bientôt possible.
Que peut bien cacher un univers dont personne n'a jamais dessiné les contours?
Voyagez dans l'espace, vivez la science-fiction pixelisée plus réelle que jamais. Allez savoir ce qui se cache dans les plus profonds recoins de l'univers. Eh bien si vous acceptez de vous lancer dans le vide froid de l'espace... vous aurez des réponses, la réponse ! Serez-vous naufragé perdu sur une planète aride, chasseur de trésors, explorateur assoiffé de savoir ou roi absolu de la navigation ? À vous de voir...

J’ajouterais les nouveautés et autres aux plans du jeu après le bac et je commencerais la programmation sérieusement quand deux ou trois personnes seront dispo pour aider pars ce que là c'est un tout autre niveau que Runner , dsl si je suis pas trop dispo avant...


Le but du projet est de créer un univers infini, généré procedurallement. Chaque planete sera explorable avec la possibilité d'upgrade , de craft, de collecte de ressources etc... Tout ça en C Casio


Ce projet est ouvert a tout le monde, MP pour participer.

https://github.com/AzCasio/From-Far-Casio-Project


Progression en chiffres
au ralentit...

Interface
   11%

Générateur Systèmes Solaires
   8%

Générateur Astres
   15%

Générateur Terrain
   1%

Générateur Entitées
   3%

Moteur Graphique Spacial
   30%

Déplacement
   3%

Système de Ressources
   2%

Graphismes
   20%



Interface prévue (modifiée)
Cliquer pour enrouler

L'accueil:
Avec les tabs toutes fermées:


Avec les tabs toutes ouvertes:

-Tab gauche: Options
-Tab bas: Credits et changelog+infos
-Tab haut: Lancer le jeu
--------------------------------------------------------------------------------------------------------------------------------------
L'interface d'acces rapides:
J'ai affiné en peu le style de l'UI :
La tab de craft rapide et sac a dos (dispo hors et dans vaisseau):

-scrolable inventory per ressource type (select to send to crafting bench)
-crafting bench 3 slots

La tab d'ifos sur l'environnement et la navigation (dispo hors et dans vaisseau):

-air/liquid composition
-temperature
-life/no life
-compass (direction in space and on orbit)
-planet/base/(solar sys name)/coordinates...

Les tabs d'info du vaisseau et celle de pilote auto (dispos dans vaisseau):

Ship stats (only on ship)
-ammo
-integrity
-fuel
Auto Pilot
-on/off/auto
-set speed
-set distance/infinite

Les tabs s'ouvrent et se ferment indépendamment, le 4 ouvertes + quelques sprites en bas:

Voila, le principe: des intercalaires de chaque coté de l'écran s'ouvrent avec les flèches correspondantes, il y a l'accueil, les intercalaires in game et l'inventaire complet accessible depuis le vaisseau. le vaisseau et le joueur ont deux stockages indépendants, le joueur se ballade ,collecte et dépose au vaisseau. On peu crafter depuis son sac a dos mais la table de craft complète se trouve sur le vaisseau avec 3 espaces supplémentaires.
--------------------------------------------------------------------------------------------------------------------------------------------------------------


Inventaire dans le vaisseau:
Screen only available in ship
-Backpack is smaller carryable inv.
has option: quick drop to Ship or one by one using ?shift?
quick drop , drops everything exept non-ship consumables and tools
-Craft: 6 spots
Output name and quantity
Start stop button
Process progression bar

---------------------------------------------------------------------------------------------------------------------------------------------------------------

PS: j'ai crée pour plus de simplicité des jauges doubles (plus épaisses), elles se vident ligne de pixels par ligne de pixels et une plus grande précision sur une plus petite longueur...



Plans et détails de gameplay
Cliquer pour enrouler

Fontionement Hors système solaire.
Cliquer pour enrouler

-Vitesse superieure (partie du pilotage ou auto?)

-Seuls les soleils sont affichés. (Autres élément a voir dans le futur)

Fonctionement Dans un système solaire.
Cliquer pour enrouler

Les systèmes sont delimités par la distance joueur-soleil, si celle-ci est inferieure a 1.5*(distance soleil-planete externe).
/!\ Ca implique que une planete devient a peine visible a une distance moyenne de 0.5*(rayon moyen d'un sys), a partir de ca
on devrais pouvoir calculer l'intervale optimal de tailles des planetes/soleils/objets. (je parle en pixels tout le long )

-Vitesse réduite (partie du pilotage ou auto?)

-Soleils, planètes et autres élements affichés.

-Les planetes suivent une orbite TRES LENTE autour du (des) soleil(s). -> nécessite un refresh constant ou pas? a voir.

-

Fonctionement a l'approche d'un objet (planete surtout).
Cliquer pour enrouler

A partir de 2*(taille de l'objet) en distance joueur-objet on se concente sur l'objet (les autres n'aparaissent plus).

-L'objet est pourvu de textures detaillées. (générées procédurallement, oui ca va etre dur mais possible )

POUR PLANETES SEULEMENT:

-Si l'on continu a approcher on finit par atteindre l'atmosphere, a ce momment petit effet visuel de nuages/brouillard et on passe en mode surface.

-L'idéal serait que plus on approche plus la texture est detaillée, cad: terrain + nuages et que le terrain soit une representation réelle du terrain que l'on explorera en surface.
Ca veut dire que l'on pourrait generer la surface en fonction de la texture (OUI) ou la texture en fonction de la surface (quasi impossible).

Détail de l'aproche et des textures:
-space aproach: cloud texture to be generated...
-HIGHT FOG
-hight orbit: cloud texture scrols on planet in opposite direction.
-LOW FOG
-low orbit: (zoomed cloud texture scrolling slow). entities(up veiw) and surface scrolling fast. air life
-LANDING ANIMATION
-ground: entities(side veiw)+surface slow scrolling

Fast Travel and saved locations.
Cliquer pour enrouler

Il sera probable ment possible de marquer/sauver un certain nombre de possitions, par exemple des bases comerciales,
lieux intéressants et autres.
Cela permet de faire des voyages rapides dont la duré depend de la distance, probablement une animation sera affichée...

Il est prevu que le joueur puisse choisir une ou plusieures planétes qu'il aura découvert et exploré et les sauvegarder en temps
que "mes planètes découvertes" ou un truc du genre. Il serait interessant de pouvoir nomer les créatures et plantes de cette/ces planète(s)
Il est très intéressant de developper le teraforming et construction... On se limite a un certain nombre de planètes car tout ca nécessite des sauvegardes importantes.
Au niveau gameplay ca permeterais au joueur de s'identifier a un endroit, d'y établir sa base et de ne pas etre qu'un voyageur flotant dans l'espace sans but...

Ressources list.
Cliquer pour enrouler

MINABLES:
-stone natural
-clay natural/ dirt+water
-coal natural/ fuel+wood
-gold natural
-silver natural
-iron natural
-copper natural
-diamond natural
-zinc natural
-titanium natural
-salt natural
-sand natural/ coral+stone+fuel
-uranium natural
-aluminium natural
-ice natural/ water+fuel
-tin natural
-sulfur natural
-ancient tech natural/ computer chip+relic+copper+batteries
-relic natural
-dirt natural


HARVESTABLES:
-wood natural
-oil natural
-nutriments natural/ fruit+fuel
-seeds natural
-hal. plant natural
-plasma natural
-vine natural
-fruit natural
-coral natural
-water natural/ ice+fuel/ ice+salt

HUNTABLES:
-bone natural
-scales natural
-venom natural/ drugs+acid
-acid natural/ fruit+sulfur+fuel/ water+fruit+fuel
-flesh natural
-fat natural/ flesh+fuel
-fur natural

EQUIPABLES:
-backpack leather+plant fiber+plastic
-radiation suit silicon+carbon fiber+plastic+fuel+gass mask+fuel
-gass mask plant fiber+silicon+glass+plastic
-heat suit aluminium+silicon+glass+leather
-cold suit fur+plant fiber+silicon+leather+plastic
-diving suit air tank+cold suit+glass+silicone
-gun
-blaster
-excavator steal+fuel+batteries+motor

CONSUMABLES:
-organic food nutriments+salt+calcium/ fruit+ice/ flesh+salt+ice+fuel
-drugs halucinogenic plant+water+fuel
-medecine drugs+nutriments+water+fuel
-fuel natural/ coal+oil/ fat+oil/ plasma+oil
-repair kit flash light+batterier+copper+titanium
-laser ammo batteries+steal+plasma
-explosive ammo steal+coal+sulfur+fuel
-amulet ancient tech+relic+gold+diamond

CRAFTABLES:
-leather fur+salt+fuel
-steal iron+coal+sand+fuel
-calcium bone+acid
-plastic coal+fuel+water+/ sulfur+fuel+water
-plant fiber vine
-stick wood
-plank stick/ wood+fuel
-glass silicon+fuel+calcium
-container plank+iron/ steal+fuel
-carbon fiber coal+fuel
-silicon iron+fuel+acid

TECH:
-batteries copper+iron+sulfur+steal /zinc+carbon+steal/ acid+copper+steal
-power generator batteries+fuel+repair kit
-air tank steal+plastic+fuel+backpack
-motor copper+iron+steal+silicon
-flash light batteries+glass+iron+plastic
-computer chip gold+plastic+copper+iron+fuel+batteries





Précédente 1, 2, 3, 4, 5, 6, 7, 8 Suivante
Ninestars Hors ligne Membre Points: 2462 Défis: 24 Message

Citer : Posté le 18/07/2015 20:16 | #


Quelques nouvelles, je suis un peu bloqué sur la gestion de la caméra, à savoir les rotations dans l'espace, j'utilise le paramétrage polaire, mais il ne fonctionne que dans certains cas (phénomène du blocage de cardan), je regarde du coté des Quaternions, modèle mathématique, apparament très efficace pour les rotations de vecteur dans l'espace
Az Hors ligne Membre de CreativeCalc Points: 548 Défis: 10 Message

Citer : Posté le 18/07/2015 20:20 | #


Ninestars, je suis content que tu t'occupe de cette partie car pour moi c'est du chinois Dis moi sinon, qu'est ce qui est le plus urgent? T'aura besoin de quoi pour le code?
Je fais du Biohacking, des jeux vidéo et j'écris... Un lien pour les controler tous et dans les ténèbres les lier https://linktr.ee/axelfougues
Lephenixnoir Hors ligne Administrateur Points: 24678 Défis: 170 Message

Citer : Posté le 18/07/2015 21:22 | #


Ninestars, je pense que les quaternions sont ce que tu cherches, en effet, pour le calcul de coordonnées (on peut aussi utiliser les matrices mais plutôt pour les surfaces).

Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Ninestars Hors ligne Membre Points: 2462 Défis: 24 Message

Citer : Posté le 18/07/2015 21:48 | #


Merci Az, mais on en a parlé, pour l'instant je n'ai pas vraiment besoin d'aide
Je regarde de ce côté en effet, ça n'a pas l'air bien compliqué.
Après j'avance pas très vite, je code pour le plaisir quand j'ai le temps
Dark storm Hors ligne Labélisateur Points: 11641 Défis: 176 Message

Citer : Posté le 18/07/2015 21:54 | #


Lephenixnoir a écrit :
Ninestars, je pense que les quaternions sont ce que tu cherches

Ajoute 3 mois de plus à la date de sortie du projet le temps de les maitriser
C'est sur que c'est puissant, mais est-ce nécessaire ?
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Lephenixnoir Hors ligne Administrateur Points: 24678 Défis: 170 Message

Citer : Posté le 18/07/2015 21:55 | #


Pour la 3D ? Oui.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Ninestars Hors ligne Membre Points: 2462 Défis: 24 Message

Citer : Posté le 18/07/2015 21:57 | #


En fait ça permet de faire tourner un vecteur selon n'importe quel axe, alors qu'en coordonnées polaires, ça devient très complexe, voir impossible dans certains cas, par exemple quand ton vecteur est orienté à la verticale, peut importe thêta, il est à la même position, ça donne une infinité de solution pour un même vecteur, c'est pas top
Lephenixnoir Hors ligne Administrateur Points: 24678 Défis: 170 Message

Citer : Posté le 18/07/2015 21:59 | #


Ninestars a écrit :
par exemple quand ton vecteur est orienté à la verticale, peut importe thêta, il est à la même position, ça donne une infinité de solution pour un même vecteur, c'est pas top

Euh, il y a deux angles en 3D polaire hein...
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Dark storm Hors ligne Labélisateur Points: 11641 Défis: 176 Message

Citer : Posté le 18/07/2015 21:59 | #


Sinon tu fais juste une lib de calcul matriciel et c'est fini. Cf les endomorphismes orthogonaux dans un espace vectoriel de dimension 3. C'est plus facile (je trouve) à appréhender que les quaternions.
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Ninestars Hors ligne Membre Points: 2462 Défis: 24 Message

Citer : Posté le 18/07/2015 22:01 | #


Oui c'est pour ça que je précise à la verticale (phi = 90) dans le repère usuel
Lephenixnoir Hors ligne Administrateur Points: 24678 Défis: 170 Message

Citer : Posté le 18/07/2015 22:01 | #


Dark storm a écrit :
Sinon tu fais juste une lib de calcul matriciel et c'est fini. Cf les endomorphismes orthogonaux dans un espace vectoriel de dimension 3. C'est plus facile (je trouve) à appréhender que les quaternions.

Oui mais moins adapté, les matrices. Plus pour la gestion de surfaces, là il n'a que des points et des vecteurs.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Dark storm Hors ligne Labélisateur Points: 11641 Défis: 176 Message

Citer : Posté le 18/07/2015 22:05 | #


Phi = pi / 2 oui (pense à tout mettre en radians, toutes les fonctions trigo utilisent les radians)

<Plus pour la gestion de surfaces, là il n'a que des points et des vecteurs.>
Pour les points ça marche pareil. C'est juste que du coup tu transforme un ev de dimension 0, 1, 2 ou 3. Enfin, c'est à 9* de décider
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Ninestars Hors ligne Membre Points: 2462 Défis: 24 Message

Citer : Posté le 18/07/2015 22:11 | #


Dark Storm a écrit :
Phi = pi / 2 oui (pense à tout mettre en radians, toutes les fonctions trigo utilisent les radians)
Merci bien, mais tu te doutes que je n'en serais pas là si je ne le savais pas :P
C'est tout à mon programme de math les matrices de rotation (en PT Dark Storm )
Je vais voir

Ajouté le 22/07/2015 à 16:47 :
Ca fait 3 jours que j'essaye de comprendre comment utiliser cet atrocité magnifique de quaternion !!!
On trouve tout sur leur fonctionnement, leurs opérations, leurs transformations, mais rien sur la manière de les utiliser...

Finalement j'y suis arrivé !! Plus de matrice, plus de cosinus ni sinus à tout va, et ça tourne très bien (c'est dingue...).
Lephenixnoir Hors ligne Administrateur Points: 24678 Défis: 170 Message

Citer : Posté le 22/07/2015 16:57 | #


T'as vu, ça fonctionnne bien hein

Quelques gains en termes de vitesse ?
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Ninestars Hors ligne Membre Points: 2462 Défis: 24 Message

Citer : Posté le 22/07/2015 17:03 | #


A vu d'oeil, 4 fois moins rapide
Mais pour le moment c'est pleins de calculs bruts, pas optimisés.

Ajouté le 28/07/2015 à 22:29 :
Bon ça avance bien ! J'ai enfin résolu mon problème de rotation avec les quaternions, j'arrivais à tourner la camera, mais par rapport aux axes du monde et non pas par rapport aux axe de ma camera. Je viens de trouver la solution, une simple multiplication dont j'ai inversé l'ordre (elle n'est pas commutative AxB != BxA).
Du coup je viens de m'appercevoir que selon l'ordre, soit je tourne par rapport aux axes de mon monde, soit je tourne par rapport aux axes de ma caméra, pratique !
Il me reste à gérer les 3 translations et par rapport aux axes de ma camera, coder l'interpolation pour aller d'une vue à l'autre et on sera bon pour la gestion de la caméra.
Un petit screen qui n'apporte pas grand chose pour la route (8 étoiles formant un cube):
Lephenixnoir Hors ligne Administrateur Points: 24678 Défis: 170 Message

Citer : Posté le 29/07/2015 08:06 | #


Ninestars a écrit :
Je viens de trouver la solution, une simple multiplication dont j'ai inversé l'ordre (elle n'est pas commutative AxB != BxA).

Aaah !

Ninestars a écrit :
Du coup je viens de m'appercevoir que selon l'ordre, soit je tourne par rapport aux axes de mon monde, soit je tourne par rapport aux axes de ma caméra, pratique !

Pratique ce genre de trucs...

Ninestars a écrit :
Un petit screen qui n'apporte pas grand chose pour la route (8 étoiles formant un cube):

Bon boulot !
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Ninestars Hors ligne Membre Points: 2462 Défis: 24 Message

Citer : Posté le 29/07/2015 11:25 | #


9* a écrit :
Il me reste à gérer les 3 translations et par rapport aux axes de ma camera
Cette tâche est terminée. Maintenant on peut se déplacer librement dans n'importe quelle direction, n'importe quel sens, avec n'importe quelle orientation facilement

Merci lephenixnoir

Ajouté le 29/07/2015 à 11:54 :
Une petite vidéo :
Xavier59 Hors ligne Membre de CreativeCalc Points: 1337 Défis: 12 Message

Citer : Posté le 29/07/2015 12:05 | #


Beau boulot ! Et de sacré connaissance en math déjà j'imagine !
1337
Lephenixnoir Hors ligne Administrateur Points: 24678 Défis: 170 Message

Citer : Posté le 29/07/2015 12:07 | #


Un seul mot : excellent !!
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
-florian66- Hors ligne Ancien rédacteur Points: 2384 Défis: 20 Message

Citer : Posté le 29/07/2015 12:34 | #


Ouai pas mal du tout
In Arch, I trust ! And you ?
Silaxe Hors ligne Membre Points: 809 Défis: 12 Message

Citer : Posté le 29/07/2015 12:50 | #


La vidéo est impressionnante, la 3D est vraiment bien faite.
Cependant j'ai peur qu'une fois sur la calculatrice, cela donne une "bouillie de pixels".
En même temps cela rend plus réaliste quand le fond est noir que s'il était blanc.
Précédente 1, 2, 3, 4, 5, 6, 7, 8 Suivante

LienAjouter une imageAjouter une vidéoAjouter un lien vers un profilAjouter du codeCiterAjouter un spoiler(texte affichable/masquable par un clic)Ajouter une barre de progressionItaliqueGrasSoulignéAfficher du texte barréCentréJustifiéPlus petitPlus grandPlus de smileys !
Cliquez pour épingler Cliquez pour détacher Cliquez pour fermer
Alignement de l'image: Redimensionnement de l'image (en pixel):
Afficher la liste des membres
:bow: :cool: :good: :love: ^^
:omg: :fusil: :aie: :argh: :mdr:
:boulet2: :thx: :champ: :whistle: :bounce:
valider
 :)  ;)  :D  :p
 :lol:  8)  :(  :@
 0_0  :oops:  :grr:  :E
 :O  :sry:  :mmm:  :waza:
 :'(  :here:  ^^  >:)

Σ π θ ± α β γ δ Δ σ λ
Veuillez donner la réponse en chiffre
Vous devez activer le Javascript dans votre navigateur pour pouvoir valider ce formulaire.

Si vous n'avez pas volontairement désactivé cette fonctionnalité de votre navigateur, il s'agit probablement d'un bug : contactez l'équipe de Planète Casio.

Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 101 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements

Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd