Concept:
The core idea of my game reimagines the classic mechanics of the retro game Snake, introducing a playful twist where the protagonist is a dog on a mission to eat as much homework as possible. In this game, players navigate a dog around the screen, aiming to collect and consume homework pieces scattered across the play area. Each piece of homework the dog eats not only adds points to the player’s score but also visually enlarges the dog’s face, making the game increasingly challenging and humorous as the dog’s appearance grows comically large.
To add a layer of strategy and urgency, the game is set against a ticking clock. Players must race against time, strategizing to eat as much homework as they can before the timer expires. The score is a combination of two elements: the physical size of the dog’s face, which grows with each piece of homework eaten, and a numerical value that increases with the homework consumed. This dual scoring system provides immediate visual feedback and a quantifiable measure of success, engaging players in a quest to beat their own high scores or compete with others.
A highlight of some code that you’re particularly proud of:
function drawDog(x, y) { push(); // Start a new drawing state translate(x - width / 2, y - height / 2); // Center the drawing on the dog's position scale(0.25) var colorW = color(255,255,255); var colorBL = color(0,0,0); var colorBR = color(160,82,45); var colorP = color(255,182,193); // Ears push(); noStroke(); fill(colorBR); // Right ear rotate(-PI/2.2); translate(-400,30); ellipse(width/2, height/4, 150, 50); // Left ear rotate(PI/-12); translate(-56,245); ellipse(width/2, height/4, 150, 50); pop(); // Base push(); noStroke(); fill(colorW); ellipse(width/2, height/2, 200, 200) pop(); // Mouth push(); noStroke(); fill(colorBL); translate(150,210); arc(50, 50, 80, 80, 0, HALF_PI + HALF_PI); pop(); // Tongue push(); noStroke(); fill(colorP); translate(-25,65); rect(width/2, height/2, 50, 35, 20) pop(); // Tongue detail push(); fill(219,112,147); ellipse(width/2, 277.5, 5, 25); stroke(125); pop(); // Nose push(); noStroke(); fill(colorBL); translate(142,150); triangle(30, 75, 58, 100, 86, 75); pop(); // Nose shine push(); noFill(); stroke(colorW); strokeWeight(2); noFill(); strokeJoin(MITER); beginShape(); scale(0.5, 0.5); translate(380,437); vertex(10, 20); vertex(35, 20); endShape(); pop(); // Eyes push(); noStroke(); fill(colorBR); rect(220, 160, 60, 60, 20, 30, 20, 40); fill(colorBL); ellipse(250, 190, 35, 35); ellipse(150, 190, 35, 35); fill(colorW); ellipse(150,180,10,10); ellipse(250,180,10,10); pop(); }
Embedded sketch:
Reflection and ideas for future work or improvements:
Progress on the game development is quite encouraging at this point. I’ve successfully tackled the challenge of scaling the dog’s head in a way that ensures all facial features remain proportionate, regardless of its size. This was a crucial step to maintain the visual consistency and appeal of the game, ensuring that as the dog “eats” more homework and its face grows, it still looks natural and retains the humorous charm intended for the game’s design.
The next significant hurdle I’m facing involves developing a robust logic system for the game. Specifically, I need to implement a mechanism where the growth of the dog’s head is directly tied to the action of consuming homework pieces (HW) within the game. This means creating a set of rules and conditions in the game’s code that accurately tracks each piece of homework the dog eats and translates that into proportional increases in the size of the dog’s head.