Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Sandbox 2D][Pygame-Python] UrWorld

Anonyme
28 mars 2015 à 13:26:07

Je suis un jeune développeur en python (version 3.4) utilisant Pygame pour créer des jeux 2D. Ce n'est pas ma première expérience en ce domaine, j'ai déjà codé plusieurs petits jeux en C également. J'aime la liberté, la créativité et la programmation par dessus tout.

Genèse

Ce projet est né en aout 2014, quand je me suis mit à étudier Pygame. J'avais envie de trouver un projet pour bien assimiler toutes les connaissances acquises autour de Python et de Pygame. Étant amateur de jeux de sandbox, je me suis dit que j'allais créer le mien. De là est né UrWorld, du désir de construire son monde (en 2D), et de pouvoir le personnaliser le plus possible ! Il n'y a qu'une seule limite à votre créativité : la hauteur de la carte qui est de 20 blocs soit 20 * 30 px = 600 px.

Avancement

Maintenant tout ça est bridé, performant, amélioré … la carte est générée aléatoirement, et dernier ajout : des chunks sont générés à l'infini (plus on avance, plus la carte sera large). On peut mettre des blocs en arrière plan (on passe donc a travers), il y a de la mana (pas encore finie par contre, il me reste à coder le sceptre de construction), des biomes, le spawn de potions, d'argent et de personnage sur la carte. Le jeu fonctionne aussi en réseau (LAN seulement pour le moment), il y a le light start pour consommer moins de ressource, et donc faire tourner plus facilement le jeu (au détriment de certaines fonctionnalités optionnelles : affichage des blocs de fond, nuages, gravité des PNJ, checkeur de terre ...). J'ai aussi codé le système de DED (comprenez la redstone d'UrWorld), le checkeur de terre ... bref plein de choses à découvrir en jeu !

Objectifs

J'aimerai pouvoir ajouter des Mods aisément (un package Mods est déjà dans le projet pour ça), avoir encore plus de blocs, changer les graphismes, pouvoir ajouter des pack de textures (le code pour les gérer est là, maintenant faut que j'en crée ou que VOUS en créiez ! et oui c'est possible, c'est pas un code en dur qui gère tout ça ;) du coup n'importe qui peut avoir son texture pack). J'aimerai aussi pouvoir faire fonctionner le petit pokémon qui vous suit (dans les version que je distribue, je ne l'active pas, car il n'est pas fonctionnel)

Originalité du projet

Aucune. Non je rigole ! Je souhaite tout de même que mon projet sois original, et ce grâce à ces points ci (entre autres) :

  • "moddage" facile du jeu,

  • open source,

  • créativité sans limite (j'espère)

  • un bon coté RPG

  • du pokémon like (un compagnon vous suivra pour attaquer les "méchants")
  • … et j'en passe énormément

  • et la communauté peut proposer des concepts !

pour vous donner une idée, 30% des idées du jeu ne viennent pas de moi, alors vous aussi, si vous avez des idées, vous pouvez aider !

Screenschots

Paramètres

En jeu


Interface de debug

Ajout d'un serveur

Le serveur a été ajouté

Le serveur est sélectionné

L'interface d'attente avant d'entrer en jeu (le cube tourne sur lui-même)

En jeu

L'inventaire avec la carte

On peut scroller la hotbar avec la souris (on ne peut pas cliquer dessus pour choisir un bloc)

Il y a 2 cartes : celle sur laquelle on se déplace, et celle de fond, décorative. On peut passer à travers les blocs de fond (ici ils sont plus clairs que les blocs normaux)

La DED, ici tout est off. Attention par contre, les lampes auto-génèrent du courant, mais elles ne le partagent pas. Ce qui veut dire que la lampe peut conduire du conduire du courant, et être allumée sans qu'une source de courant soit active ! Donc on peut éteindre une lampe en allumant un interrupteur ^^

La lampe en haut est allumée, car l'interrupteur est on.

Le premier piston est on, il pousse donc le bloc !

Le deuxième piston est un piston collant, il pousse aussi le bloc

Et là, je vient d'éteindre ce piston (non je n'ai pas truqué la photo, et ce n'est pas la même que l'avant dernière !), il tire donc le bloc :)

Le premier piston qui n'est pas collant, n'attire pas le bloc qu'il a poussé !

Menu pause, avec Echap

L'interface de debug, 62 blocs d'arrière plan, pas de ralentissement, 13 ms de génération de l'affichage de la carte !

(Pour les râleurs, je précise bien que c'est moi qui ai fixé la limite à 60 FPS avec une class faite maison car pygame.clock.tick() marche pas super bien chez moi (je demande 60 et j'ai 20 x) ))

Musiques (de Bat', merci beaucoup à lui :D)

urworld-2

urworld-3

urworld-4

Liens

http://urworld-project.alwaysdata.net/

https://github.com/Loodoor/UrWorld-Alpha-3.x

https://twitter.com/Folaefolc

https://zestedesavoir.com/forums/sujet/2316/urworld-le-retour-du-retour/

https://www.facebook.com/UrWorldAlpha

-
Edité par Anonyme 30 août 2015 à 14:30:13

  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
28 mars 2015 à 19:19:38

+1 mais pas d'avis :( ?

dommage, car je vous dévoile que pour la beta il y a des moteurs ! cela fera spawner soit un semblant de voiture, d'avion ou de bateau,et on pourra faire se déplacer la structure !

par la meme occasion, des bugs ont ete résolu et le nombre limite de fps a ete rehaussé à 75, plus homogene je trouve ;)

  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
28 mars 2015 à 20:52:15

C'est un terratia-like un peu, non ?
  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
28 mars 2015 à 21:27:09

Pas de démo?

-
Edité par Anonyme 28 mars 2015 à 21:27:26

  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
28 mars 2015 à 22:38:50

nop', pas t'encore :(

la compilation est tres differente sous python. avant j'utilisais py 34 et je suis passé à py 33 (retrogradage du a pas mal de raisons) et cxfreeze qui permet de compiler n'agit pas pareil. j'ai fait 12 tests, et tous ont echoué car a chaque fois une partie d'un module n'est pas incorporé a l'archive et je ne peux pas le faire a la main :(

donc il faudra installer python :) mais pas de panique ! tout ce dont vous avez besoin est deja pret dans un dossier "A INSTALLER" qui sera dans l'installateur windows :D

et oui Qames, c'est un peu ca ;)

m'enfin je veux m'en démarquer le plus possible en rajoutant pas mal de features que terraria n'a pas ;)

entre autres les teleporteurs et bientot les moteurs, ainsi que le pokémon like :) de meme que les voyages dans le temps ! oui oui on pourra visionner une version anterieure de la map (et peut etre la modifié, ce qui pourrait influer sur le present !!), un command block sera aussi de la partie ;) et pis evidemment je proposerai beaucoup plus de biomes a termes

-
Edité par Anonyme 28 mars 2015 à 22:48:02

  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
29 mars 2015 à 9:21:06

Terraria-like des temps modernes !
  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
29 mars 2015 à 13:55:24

tout a fait ca !

en plus, la il me reste qu'a faire le bloc du "transpondeur de l'espace temps" (visuel et code), et ca fonctionnera ! car oui, les maps sont deja sauvegardées sous forme d'un dossier 'Olds Maps' + 'map' + numéro de la map commencant à 1 par defaut + extension :)

donc il ne me reste qu a utiliser ces maps :)

edit : si vous voulez un type de biomes precis, faut me le dire !

-
Edité par Anonyme 29 mars 2015 à 13:56:42

  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
29 mars 2015 à 14:02:48

Ca dépend, il y a quoi comme biomes actuellement ?
  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
29 mars 2015 à 14:17:34

foret, desert, tundra, no man's land :D

(je peux modifier le relief par contre, il est créé avant la customisation des blocs des biomes, bref c'est assez complexe)

  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
29 mars 2015 à 14:28:08

Ville ? Marais ? Laboratoire ? Volcan ? Devlopper'sDream :lol: ? Monde sous-marin ? Jungle ? Mine ?

Des screens du no man's land ? :D

  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
29 mars 2015 à 14:39:14

marais je peux essayer ;)

volcan idem :)

dev dreams, c'est quoi ? des teleporteurs, des moteurs, de l'eau et du fer partout ?

monde sous marin pas sur :(

jungle, bah en fait c'est foret ;)

mine, pouvant pas agir sur le relief ca va etre dur :( sauf si tu veux des minerai partout, ca c'est faisable !!

no man's land, tu as de la pierre, un peu de minerais et des champignons partout en fait :D

  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
29 mars 2015 à 15:26:43

Dev's dream tu met genre des pc partout, et sur ces pc, tu peux faire des programmes que tu pourra exécuter après ! (un peu comme le mod Minecraft "Computercraft" si tu connais !)

Et Jungle tu pourrais mettre des platformes pour faire du jumping !

Et pourquoi tu peux pas agir avec les reliefs ?

-
Edité par Anonyme 29 mars 2015 à 15:27:53

  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
29 mars 2015 à 15:45:44

ah ouais ok !

ben vois tu, des command sont au programme pour la beta justement ;) et un langage de script multilignes aussi !

pour le jumping, ben comment dire sans que personne ne s'en aille du thread en gueulant ... ?

ben c'est simple, ca servirait a rien de mettre des plateformes ! tu peux pas sauter, tout simplement :(

en fait, dans la generation du monde, le relief est dessiné avant le choix des blocs. uniquement avec des 0 et des 1. 0 = vide et 1 = plein. une height map en fait.

apres, avec une petite fonction, on decide quel bloc va ou en fonction de la distance avec la surface ;)

petit gros surdimensionné merci à alpha, c'est quand meme de lui que la generation aleatoire provient :) les biomes, la neige en altitude et le spawn de bonhommes, ca c'est moi par contre x)

edit : et aussi, je viens de finir la gui qui permettra de choisir dans quelle map aller avec le bloc du transpondeur spatiotemporel !!

edit 2 : voyage dans le temps fonctionnel ! maintenant suffit jsute que je link tout cela à un bloc !

-
Edité par Anonyme 29 mars 2015 à 16:38:06

  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
29 mars 2015 à 21:28:27

la gui :

-
Edité par Anonyme 29 mars 2015 à 21:33:54

  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
30 mars 2015 à 7:35:36

je suis en train de rechercher un hebergeur gratuit pour le site du jeu, alwaysdata m'a laché au bout de six mois d'essais (gratuit hein, j'ai pas d'sous x) )

j'ai mis aussi à jour ce site, ca faisait belle lurette que toutes les infos dessus etaient fausses xD
  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
31 mars 2015 à 7:32:06

ai trouvé mon bonheur !

http://urworld-project.alwaysdata.net/

edit:

je compilerai aussi une démo si il y en qui la veule :D

et pis des que j'aurais internet sous mon gnome, je vous ferais une version compilée pour linux :D

-
Edité par Anonyme 31 mars 2015 à 7:35:19

  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
Anonyme
31 mars 2015 à 18:38:28

ok :D je viens de compiler, j'ai tout 'remis' a zéro, donc techniquement une nouvelle map va être générée est une nouvelle partie va commencer :D
  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
31 mars 2015 à 18:49:29

https://github.com/Loodoor/UrWorld-Alpha/releases/tag/UrWorldAlpha200

enjoy !

lancez le .bat, en cas d'erreur, un log file se créera juste pour moi :D

  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
31 mars 2015 à 20:27:38

Bon, 2 choses:

  • C'est quoi les controls (anglophone confirmé, t'as vu)
  • De toute façon, je m'en fous, mon pc s'en sort pas (~7 fps)
  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
31 mars 2015 à 20:45:43

up down right left pour se déplacer

p pour aller en créatif / quitter le creatif

i pour activer le son ou non

u pour passer de full screen a fenetre et inversement

y pour voyager dans le temps

rshift et lshift pour l'inventaire

clic droit sur un bloc dans l'inventaire : selection

clic gauche continu dans l'inventaire (sur un bloc) : permet de deplacer le bloc

clic gauche : pose un bloc

clic droit : active l'action liée au bloc s'il y en a une

molette : changer de blocs

et pis c'est bizarre, mon code d'auto regulation est bien foutu pourtant ! chez moi j'ai 75 FPS pile poil :)

quelle est ta config (exacte si possible) ?

  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
31 mars 2015 à 20:57:26

Perso, touche droite quitte le jeu XD

Alors, pour la config, vous allez rire (mais vraiment) (vraiment beaucoup) (c'est un Compaq Presario CQ56):

  • Processeur: intel pentium 2*2.3GHz (ça va encore...)
  • 3go ram 800MHz
  • 64mo de ram vidéo sur le chipset du processeur ( :lol: )

En gros, les perfs c'est ça:

  • Minecraft: 30fps en 2chunks, 20fps en 4 chunks, et après ça tombe en dessous de 10 (en solo)
  • SuperTuxKart (vous trouverez facilement sur internet, verion 0.8.1): ~25fps
  • SuperTux (pareil): fluide, mais gros freezzzzzes quand beaucoup de blocs
  • OpenArena: limite
  • Compilation release de Work (mon soft) : ~18min :lol: :lol: :lol:
  • Temps de boot: ~2min (Win 7 64bit)

Bref, vous riez bien, mais moi je pleure......

-
Edité par Anonyme 31 mars 2015 à 21:50:51

  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
31 mars 2015 à 21:38:45

normal, y a un bug, je l'ai corrigé, mais pas encore push le code :(

je le push normalement demain, tkt :D

pentium ?!

je tourne sous un i3 3 eme generation je crois bien !!

normal que ca ram meme si tu as 2.3 ghz :///

effectivement, 18 min de compi meme pour work qui doit faire maxi 10'000 lignes, c'est signe que tu vas devoir changer de pc :((((

  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
31 mars 2015 à 21:50:55

Ca fais plus que 10'000 lignes ;)
  • Partager sur Facebook
  • Partager sur Twitter
1 avril 2015 à 4:15:12

Bon, moi aussi je ne dépasse pas les 10 fps de moyenne et pourtant, mon ordi, c'est un costaud... Il y as donc un problème coté du jeu... Ensuite, après le chargement du jeu(que j'ai trouvé plutôt long), la map semble s'être affiché/créé seulement en partie. Quelques secondes plus tard, le jeu a juste mystérieusement fermé sans le moindre code d'erreur. Finalement, j'ai exécuté le .bat pour pouvoir te donner le log, mais je n'ai jamais trouvé où le fichier de log a été généré et je n'ai pas vraiment eu le goût de chercher au vus de l'organisation des fichiers plutôt aléatoire...
  • Partager sur Facebook
  • Partager sur Twitter
L'être humain, contrairement aux geeks qui ne sont de toute façon pas des êtres humains, est un animal social taillé pour vivre en "meute".
1 avril 2015 à 5:05:09

Salut..

J'ai environ 10 FPS.. Aussitôt que j'appuie sur la flèche de droite par exemple, le jeu plante.. Le log :

Traceback (most recent call last):
  File "C:\Python34\lib\site-packages\cx_Freeze\initscripts\Console.py", line 27, in <module>
  File "f:/urworld/urworld _code/main.py", line 341, in <module>
  File "f:/urworld/urworld _code\jeu.py", line 1536, in jeu_boubouilles
    perso_retour = deplacer('droite', x_perso, y_perso, structure_niveau, fov)
  File "f:/urworld/urworld _code\niveau.py", line 406, in deplacer
    if case_x <= (nombre_sprite_cote - 1) and case_x + 1 <= (nombre_sprite_cote - 1):
NameError: name 'nombre_sprite_cote' is not defined
Création des miniatures ...
Lancement du programme . . .
Début de la génération ...
>>  0 minutes  0 secondes.
Fin de la génération !

Je n'ai pas de disque F:/ sur mon PC

Voici une capture d'écran :


Tu as 75 FPS.. Par curiosité.. C'est quoi ta config?

à+

-
Edité par 1vrai0 1 avril 2015 à 5:05:27

  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
1 avril 2015 à 7:17:05

ah quel con je suis !

milles excuses, les 10 FPS viennent des ombres :(((((((((

j'ai merdé en voulant les refaire

je vous les desactive (ou sinon faites 'e')

et je corrige le bugg immédiatement (enfin je push le code compilé)

edit : nan tkt pour le disque f:/, c'est cxfreeze qui en 'crée' un juste pour lui mais dans un répertoire, enfin c'est un truc assez bizarre et sale niveau code, mais tant que ca marche, je suis content

edit 2 : le lien peut etre :-° ? https://github.com/Loodoor/UrWorld-Alpha/releases/tag/UrWorldAlpha201

bon par contre j'ai fait un bon débile et j'ai pas supprimé la map en cours ni tout les fichiers de jeu dans Parties/ mais c'est pas tres grave, c'est que pour tester.

d'ailleurs, je suis en train de faire un menu pour le jeu (permanent, pas que si on n'a pas de partie)

-
Edité par Anonyme 1 avril 2015 à 7:32:55

  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
1 avril 2015 à 8:10:52

change l'écran d'accueil, j'avais mal aux yeux ><

-
Edité par Anonyme 1 avril 2015 à 13:32:21

  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
1 avril 2015 à 13:03:18

faut pas que ca bouge donc ?

je trouvais que c'etait fun x)

donc je passe tout ca en fixe ;)

et en plus clair

  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
1 avril 2015 à 13:33:00

Ou alors, tu fais un arrière-plan comme l'écran d'accueil de Minecraft ! (un paysage qui défile)
  • Partager sur Facebook
  • Partager sur Twitter