Skip to main content

On Sale: GamesAssetsToolsTabletopComics
Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines
A jam submission

Sneaky SnakeView game page

Gamecodeur Game Jam 24 - SnakeLike
Submitted by Kyou31 — 11 days, 6 hours before the deadline
Add to collection

Play game

Sneaky Snake's itch.io page

Results

CriteriaRankScore*Raw Score
Note générale#243.5843.778
Overall#253.9264.139
Respect du thème#274.2694.500

Ranked from 18 ratings. Score is adjusted from raw score by the median number of ratings per game in the jam.

Pseudo adhérent Premium sur Gamecodeur
kyou31

Elève Gamecodeur depuis...
29/09/2019

Langage / Moteur utilisé
LUA LOVE2D

Temps passé (environ)
Aucune idée... on va dire 60H environ

Décrivez votre expérience (déroulement, difficultés, progrès réalisés, bilan personnel)
Ceci est ma 1ère jam et aussi mon 1er jeu. Je suis parti sur un snake car je suis nostalgique de ce jeu sur nokia3310! Je n'ai pas révolutionné le concept. Je prends cette jam pour un exercice plutôt qu'une compétition. Je propose 2 niveaux de jeu (cool ou hard) jouables avec un style classic ou retro.

J'ai eu du mal à gérer l'enregistrement des scores (je n'avais pas du tout abordé ce sujet dans la formation).

Au début le snake était composé de plusieurs carrés verts (mode retro), je ne différenciais pas la tête et la queue du reste du corps et je n'avais pas besoin de gérer la rotations des sprites.

Puis j'ai voulu pimper mon jeu en rajoutant des sprites... et là tout s'est compliqué! Le plus dur à gérer a été les "virages", les "coudes" du snake!!! Je suis vraiment fier du résultat car je ne pensais pas aller aussi loin pour une 1ère jam (merci le confinement).

Pour les sprites et les sons, j'ai fouillé sur internet. Mon frère m'a beaucoup aidé sur les backgrounds (il avait du temps lui aussi!). J'ai retouché les sprites sur PyxelEdit .

Voilà tout! Bon code à tous!

Leave a comment

Log in with itch.io to leave a comment.

Comments

Submitted(+1)

Très sympa ton snake ! J'ai du mal avec les directions car j'aurais préféré avoir les directions du point de vue du serpent. En fait, on m'a fait la remarque inverse sur mon jeu ;-D

Si tu es amateur de jeu de réflexion tu pourras essayer le mien et me dire ce que tu en penses. Merci.

Bon code !

Submitted(+1)

Très bon travail.

J'ai eu quelques "flash" lorsque l'écran se dessinait entièrement en blanc lors du retour vers le menu mais j'ai pas trouvé d'où cela pouvait provenir.

Developer

??? Aucune idée... merci de ton retour en tout cas.

Submitted(+1)

Excellent premier jeu!! Sympa le fait d'avoir le choix entre un mode classique et retro. 

Bonne continuation!

Submitted(+1)

simple et efficace, j'aurai apprécié un mode plein écran.
Merci   

Developer

Je sais pas comment on fait... ahahah! Je suppose qu'il doit y avoir une fonction qui récupère la résolution de l'écran.  ?

Submitted (2 edits) (+1)

t'as un exemple dans le code de mon PuckLlady  ;)   ou ..

je te donne le squelette main.lua que j’avais écrit:

il suffit de recopier dans ton main.lua  les lignes  entre les  ----- Base Gestion Affichage      et    ------------------

dans les fonctions correspondantes :   début de code ,  love.load(), love.draw() et love.keypressed(key) 
comme dans le code . 

-- EXEMPLE GESTION ECRAN AFFICHAGE LOVE2D 

-- F10: BUREAU REDIMENTIONNABLE -- Fenêtre redimentionnable. Taille fenêtre mini 1/2 au ration original 
-- F11: PLEIN ECRAN SANS CADRE  -- Taille et ratio défini par l'écran 
-- F12: PLEIN ECRAN EXCLUSIF    -- Taille de l'écran, ratio et configurations définis dans les paramètres de la carte graphique 

-- marcus.zone@free.fr 04.04.2020 

io.stdout:setvbuf('no') ---------------------------------------- Console
if arg[#arg] == "-debug" then require("mobdebug").start() end -- Debug 
love.graphics.setDefaultFilter("nearest") ---------------------- Pixel_Art 

----- Base Gestion Affichage  debut de code 
local xx; local yy; local taille_ecran_x; local taille_ecran_y 
-----------------------------------

function love.load()
  ----------------- Base Gestion Affichage   dans  love.load()
  taille_ecran_x = 960; taille_ecran_y = 540    -- 960*540  1080*768 exemples Ratio 16/9 , 800*600 exemple Love2D 3/4 par defauld                                        
  love.window.setMode(taille_ecran_x, taille_ecran_y, {resizable=true, borderless=false, vsync=1, minwidth=taille_ecran_x/2, minheight=taille_ecran_y/2, usedpiscale=true }) -- 
  xx = taille_ecran_x; yy = taille_ecran_y                                                                                                                                  
 -----------------------------------------------
 

 
end

function love.update(dt)  
  
 
  
end

function love.draw()
  --------------- Base Gestion Affichage  dans love.draw()
  xx, yy, flags = love.window.getMode( ); love.graphics.scale(xx/taille_ecran_x,yy/taille_ecran_y)  --
  --------------------------------------------
  

  
end

function love.keypressed(key) 
  ---------------- Base Gestion Affichage dans  love.keypressed(key) 
  if key =='escape'then love.event.quit() end                                                                                                                                                 
  if key =='f12'and love.window.isMaximized( )==false then love.window.setFullscreen(true,"exclusive") end                                                                                    
  if key =='f11'and love.window.getFullscreen( )== false and love.window.isMaximized( )==false then love.window.updateMode(taille_ecran_x, taille_ecran_y, {resizable=true, borderless=true}) 
    love.window.maximize()                                                                                                                                                                    
  end                                                                                                                                                                                            
  if key == 'f10'and love.window.isMaximized( )==true then love.window.updateMode(taille_ecran_x, taille_ecran_y, {resizable=true, borderless=false}); love.window.restore() end              
  ----------------------------------------------- 
    
end 

Submitted(+1)

Jeu toujours aussi efficace pour passer un bon moment.

Bonne idée de proposer deux modes 

Submitted(+1)

Je me suis bien amusé ! Super sympa !

Submitted

Très beau jeu, bien polish, graphs léchés etc... seul petit soucis chez moi ça tourne un peu trop vite je me suis permis de jeter un œil au source code : oubli du dt sur les déplacement , hors tu les as bien mis pour la gestion des animations. mis a part ce petit soucis tout le reste vraiment est pas mal =)

hâte de voir tes futurs créations =)

Submitted

Ce qui pourrait expliquer que certains le trouve très dur ;) si leur écran est sup à celle de ton écran chez toi, le jeu va plus vite et inversement si tu règle ton écran en 30 hertz le jeu est super facile ;) je te laisse tester si tu veux =) ps chez moi mon écran est en 240hz... d'ou le un peu "trop vite" xD

Submitted (1 edit) (+1)

j'ai rajouté le dt dans : (ligne 200+)
function updateSnakeClassic(dt)
--

    -- gestion des frames
    if n == 1 or n == #liste_snakes then
      if s.maxFrame > 1 then
        s.frame = s.frame + 0.25 * dt


et ajusté un peu la vitesse en partant du principe que t'avais un 60 ou 75 hz

tout de suite c'est beaucoup mieux, tout en gardant du challenge sur les rebords, faut être plutôt réactif mais ça va c'est faisable comparé a tout a l'heure,  ps ce jeu le matin après le réveil il doit être coriace xD

Developer

Merci pour tes coms très constructifs!!! Je me doutai bien qu'il y avait un soucis de dt quelque part en lisant certains coms disant que le jeu était trop dur. Encore merci je vais corriger çà!

Submitted(+1)

Très sympa le fait d'avoir mis de façon aléatoire une musique à l'écran titre, par contre ça fait bizarre l'accélération de la musique en jeu lorsque l'on agrandit le serpent. les sprites rendent super bien, bravo pour ton travail.

Developer

Merci c'est cool. J'ai bien galéré sur les déplacements des sprites, un vrai casse-tête! J'avoue l'accélération de la musique est un peu exagérée quand on avance dans le jeu. C'était surtout pour tester, plus le serpent va vite, plus la musique va vite aussi pour mettre un peu de stress au joueur. çà manque un peu de subtilité ^^

Submitted(+1)

Je commente à nouveau pour mettre encore une couche : la musique 2 de l'intro est trop bonne !!!

Le jeu est toujours sympa !! Nickel !

Developer

Re-merci!!!

Submitted(+1)

Super jeux! Continue comme ça Kyou!

Developer

Merci!!!

(+2)

+1 pour la musique d'intro!
Le designe est sobre et suffisant.
Par contre, soit le jeu est dur, soit je suis nul. XD

Developer

Merci pour ton retour. En fait il y a 2 musiques d'intro, si tu redémarres le jeu tu peux tomber sur la 2ème musique (j'ai trippé). En effet le jeu est peut être un peu dur. Tu galères même en mode cool? 

(1 edit) (+1)

Han, super easter egg pour la musique. Wild wide west, hein?

J'ai pas le temps d'appuyer sur la touche pour me rediriger avant l'impact vers le mur. Le timing est short.

Submitted

Oui, je pense aussi que c'est Wild Wide West (https://www.youtube.com/watch?v=_zXKtfKnfT8) Ca y ressemble trop. J'adore les sons 8 bits qui refont des musiques connues ;)

Developer

C'est "I wish" de Steevie Wonder pour être précis et le sample a été repris sur Wild Wild West. Bien vu (bien entendu plutôt ;))!

Submitted(+1)

héhé, sympa, la musique "cool" est relaxante ! Mais le niveau hard et vraiment hard, pas le temps de comprendre grand chose ^^

Developer

Salut. Merci pour le com! En effet le mode hard est tendu mais c'était le but. J'adore les jeux difficiles, c'est pour çà que j'ai rajouté un mode cool pour que çà soit accessible à tout le monde. Bonne Jam!