[DEVLOG][Cute&Demake] Récréation

Initial Devlog - 2021-07-30

Hey everyone!

So this is a devlog thread about my Cute&Demake 2021 Jam entry, Récréation !

What is Récréation?

Things are blurry at this point, but I’ve set for the following constraints:

  • A FemtoIDE project using C++ + FemtoLib.
  • A collection of very mini or small games, each with a few minutes of gameplays.
  • The focus is more on the Cute than the Demake.
  • These games all involve pets such as dogs, bunnies and cats.
  • A few of these games will be playable by 2 persons on the same Pokitto.
  • A single 16-color palette will be used for drawing sprites / backgrounds / etc.
    • A modified Pico-8 might be an excellent candidate.
  • Sources will be released at some point after the jam.

Screenshots / GIFs

Not much of anything to show, but here are a few sprites I’ve been sketching:

c&d-jam

Stay tuned!

11 Likes

Oops, 17 days later :laughing:

DevLog #2 - 2021-08-16

So I worked on the Volley part of the game, inspired by Blobby Volley mostly.
I spent some time on the (totally accurate) Physics Engine!

Seeing all the amazing games all around here, it looks like I’m aiming for the last place again :laughing: you guys are too good for my poor skills in everything

Gameplay

  • Currently it’s barely a physics sandbox without sandbox tools :laughing:
  • 2-players controls were smoothed out for the second player (A then B will jump AND keep moving to the right, B then A will do the same for the right direction).

UI

  • Added a simple menu ( Escarmouche just to have a main menu.

Engine

  • Draft of a 2D Physics Engine.
    • Handles collisions so it doesn’t feel too “unnatural” but doesn’t aim for the perfect accuracy.
    • Relies on Fixed Point Numbers.
    • Not intended for too many objects.
    • Currently supports the Box shape.
    • Missing the notion of material to deduce the bounciness (e.g. the bunnies and the ball shouldn’t bounce that much on the sand)
    • Rough debug mode where the hitbox of some objects is shown on the screen.

Aesthetics

  • Reworked a bit the Bunny and the Volleyball’s sprite.
  • Added a quick’n’dirty background for the Volley game, with moving decorations such as Clouds and Boats.

Screenshots / GIFs


The main menu. (Not a gif)

2021-08-16 - Recreation - Bring on the net
Originally a bug, but I think it’d make a great intro to the volley game since that’s probably how you install a net :laughing:

2021-08-16 - Recreation - Bouncing2021-08-16 - Recreation - Ball Bounce
Bouncing tests aka “Ball pit Simulator 2021”. The bunnies are bouncing themselves too much on the sand, so it’s too hard to control them.

Upcoming

  • Gameplay - Volley
    • Adjusting the Volley’s Physics after the Engine is ready for this, in order to have the right feel.
    • Have some basic AI trying to intercept the ball the best it can (will ease my own tests).
    • Have the basic Game Phases (Launching the Ball, Playing, Point Taken, Victory/Defeat) with the necessary transitions between them (like detecting the ball touching the ground, resetting the player/ball positions after a while, declaring a victor, etc).
  • UI - Volley
    • Simple counters for the number of points for each Players.
  • Engine
    • Disk/Disk and Disk/Box collisions so you can actually angle using your bunny.
    • Collider’s Material to deduce the right bounciness.
      • Sand and Bunny or Rubber (Ball) - Low bounciness.
      • Bunny and Rubber (ball) - High bounciness.
    • Proper velocity reflections based on the Collision’ Normal.
    • Showing all the colliders’ hitboxes on the screen.
  • Aesthetics - Volley
    • Probably a bit of “dust” (sand actually) particles when the Sand gets touched with “high” velocity objects.
    • Maybe some crabs traversing the sands and others decorations.

Side notes:

  • @FManga thought it was a cannon to bombard the faraway ship, and it’s a pretty cool idea. If I still got some time after the Jump’n’Bump gameplay, I’ll try making a coop game!

Stay tuned!

7 Likes

Try my demo, feel better :wink:

This is really looking fun anyway as it is :smiley: I love the scenery with the ship and clouds.

From my experiments with the pinball engine you only need a dampening factor to get good looking results. Basically you calculate the resulting trajectories from the velocities, collisions, and mass then multiply the resulting velocities by the dampening factors of the other object. A dampening factor less than 1 will more quickly decay the bounce and greater than 1 will increase the bounce (like a bumper in pinball).

Let’s say the balls have a factor of 0.9, the bunnies a 1.25 (they hit the ball causing it to bounce further), and the sand could have something like 0.25. So when two balls collide they bounce off each other loosing only 10% of their velocity, if a ball hits a bunny then they get hit and bounce further, but if they hit the sand then they very quickly loose their velocity due to the dampening of the sand.

2 Likes

DevLog #3 - 2021-08-17

More Volley! Still barely more than a sandbox, but the things are coming together and it started playing like a volley game.

Gameplay

  • Volley
  • Tuned some physics stuff.
  • Balls and Bunnies now use a Disk Shape, physics wise.
    • I might try using Capsule Shape later for Bunnies, if I got the time. It might improve the control!
  • Added some damping (aka static air friction) for the Ball to avoid extreme speeds.
  • Hit box for the Bunnies is slightly bigger, and controlling them in the air was made easier.
  • I considered forbidding the players invading the other player’s area, but it’s kind of a tricky move and it adds to the chaos :laughing:.
  • On the simulator only, A and B are reversed to reflect their position on a PC keyboard.

UI

  • Volley - Added an indicator to tell where the Ball is.
    • It’s useful when the Ball is flying very high -which is bound to happen
    • @HomineLudens suggested to use Shadows to reflect that. That’s a good idea, I’ll have a look at it later!

Engine

  • Collisions are now handled using a Normal vector.
    • Allows non-axes aligned collisions!
  • Added Disk shape
    • Disk/Disk collisions are fully supported.
    • Disk/Box collisions are supported as if Disk were Box, which isn’t correct for corners. Not that useful to support right now, but would be nicer for the collisions involving the Net.
  • Added Materials
    • @tuxinator2009 suggested above to use some calculation for this, but I opted for a more “brute force” approach instead (sorry I know you meant well).
    • This is a simple MaterialID-based system, with a matrix telling “how much bounciness do you get when you hit an object of material X against an object of material Y”.

Screenshots / GIFs

2021-08-17 - Recreation - indicator
The indicator is helpful when shooting the ball very high.

2021-08-17 - Recreation - exchanges 2
Some exchanges between both players. It’s hard to play both players at the same time :laughing:

Upcoming

  • Gameplay - Volley
    • The Rules!
      • You serve when you land the Ball on the Opponent’s ground.
      • The Opponent serves if they land the Ball on your ground.
      • Only the Player who serves can score Points.
        • So if you lose the Serve, the Opponent doesn’t get immediately some Points!
    • Some more tuning.
  • Aesthetics
    • Have a different appearance for both players.
      • Ideally, I’d like for the players to choose their appearance and to stick with that for every game launched after that.
      • I made some sprites for alternate Bunny colors, and also a Dog and a Cat set of sprites. I’ll stick to the bunny for now, since I need a bit more of sprites for the Dog and the Cat, but that’d be very nice to have them as well!

Stay tuned!

5 Likes

DevLog #4 0 2021-08-18

Less than 6 days remaining already :scream_cat:

I’ve been working mostly on the rules, including scores, inputs, and a quick and dirty for the Volley game!

Gameplay

  • Volley
    • The game is following simples rules for counting the points:
      • A player will serve.
      • If the ball lands on the opponent’s side, they score 1 point.
      • If the ball lands on the serving player’s side, their opponent will get to serve.
    • Added an AI, as suggested by @tuxinator2009.
      • It’s enabled when choosing 1 player.
      • It got a lot of quirks, but is good enough to return most balls, and … I actually struggle to beat it!
      • It’s actually mostly a “chaser”-type AI, with a bit of anticipation.
      • If I update the physics, the AI will have to be adjusted for sure.
      • Importantly, this AI doesn’t have any kind of gameplay advantage. It’s actually controlling the Bunny with its own LEFT/RIGHT/JUMP controls, decided depending on the position of both the ball and the bunny. No improved movement/jump or anything.
      • Trying to go on the other side is risky with this AI, as it’s fighting back curiously well and might often end up sending the ball at your undefended side!

UI

  • Volley
    • Added 2 counters for the points of each players.
  • Players Controls Page
    • Allows choosing between the Input Mode - 1 Player on a Pokitto, and 2 Players on the same Pokitto.
    • Also allows testing the controls.

Engine

  • Fixed a bug involving pure-x or pure-y normals when reflecting velocities

Screenshots / GIFs

2021-08-18 - Recreation - holding the ball
The Ball now is immobile until a Player touches it. It’s also possible to keep it on your head in this state. Doesn’t serve much however!

2021-08-18 - Recreation - points
Points counting. You need to be serving in order to score!

2021-08-18 - Recreation - inputs
The players screen. Ideally it’ll persist the preferred way of controlling in a cookie or in a file. The Test screen is for later, when I’ll allow PEX buttons for easier controls. Also, choosing 1 Player will enable the AI in Volley!

2021-08-18 - Recreation - ai
Said AI. It’s plenty of quirks but good enough to not let too many balls pass through. Does a few (involuntary) trick shots!

Upcoming

  • I’ll let this game rest for a while as it is right now. The core is working, and the AI is challenging enough.
    • There are some things to do of course - adding an ending rule, some SFX, some particles, maybe a victory dance. That’ll be for the polishing part for the last days.
  • Supporting different kind of animals would be nice, but it’ll be for the polish part as well.
  • I want to start implementing the other game - a demake of Jump’n’Bump (with less gore)!
6 Likes

DevLog #5 - 2021-08-21

AI improvement for volley, AI vs AI (take your bets!), and the beginning of Arena (aka Jump’n’Bump demake)!
Also, I’ve been spending a lot of my time playing against the AI because it’s just the right amount of challenge for me :laughing:

Gameplay

  • Volley
    • Improved AI!
      • Introduced some randomization
        • Since the AI is actually having a “controller”, this was done by, on a chance of 1/256, switching the left or right state (from pressed to released or from released to pressed).
        • This is essentially input dithering.
        • But it does allow some variations in its behavior, including really weird trick shots or just some errors.
        • Since it doesn’t happen too often, most of the behavior is still the same!
        • Things could be spiced up by influencing the rate of mutation depending on the circumstances:
          • If the AI is winning too many points (aka the “Overconfident Debuff”) (this is some sort of “rubberband” mechanism);
          • If the current round has been taking too long, or if the AI did a lot of actions (aka the “Fatigue Debuff”).
      • Fixed some stuck issues:
        • The AI could land on the other side (which is allowed for fun reasons :stuck_out_tongue:), but then wouldn’t jump to get back to its side.
        • The AI could have the ball on its bunny’s head, at the extreme of its side, but would stop acting.
        • The AI would wait for the player to smash the ball if this ball was bouncing perfectly on the net.
      • Now supporting the 0-players mode, by having two AIs fight each others!
        • @lucentbeam suggested that could be a demo mode. Later as I joked about making it a betting game, he also added something like “clap[ping] to cheer up the one you’ve bet on” or “shoot[ing] tranquilizers at the opponent” :laughing:
  • Arena
    • Added “Lake” map:
      • I struggled a lot on this one, not sure on what direction to go.
      • I took the bruteforce way, by drawing a fullscreen image hosted in the Flash (38720 bytes, could be reduced to half less since I’m using Pico-8, but that’s unnecessary for now).
      • The map itself, named “Lake”, is a one-screen map and features trees, a boat, some platforms and water.
      • I’d love to make it more lively, but that’s not the priority right now - I need to make it fun before!
    • Here, bunnies have different physics from Volley! They jump less, are smaller in their hitbox and so on.
    • It’s pretty much a sandbox of “let’s walk through the level for 20s and do nothing” at this stage.

UI

  • (nothing!)

Engine

  • Added a zero-players input mode.
    • This is mostly for Volley’s AI vs AI mode!

Screenshots / GIFs

2021-08-21 - Recreation - Volley AI match
Volley - AI vs AI!

2021-08-21 - Recreation - Arena Lake
Arena - Lake Map. A very WIP.


The initial attempt by using a tilemap. Somewhat reminiscent of Zelda 2!

Upcoming

  • Arena
    • Adding the “Bump” part - landing on bunnies to splash them.
    • Adding a “Portal” so bunnies can climb the tree!
    • Adding a Bonus of some sort to spice up the game.
    • Attempting to implement an AI if I got the time.
      • Could end up being an environment enemy if I cannot get it right!

Stay tuned!

7 Likes

DevLog #6 - 2021-08-23

Not much happened, mostly for Arena (making the right structure for the core game).

Gameplay

  • Volley
    • Fixed a bug where A+B controls would be used to accelerate the time even when there are actual players.
  • Arena
    • Implemented the “Jump Attack” - A Bunny landing on another will make the other one explode into hearts particles.

Screenshots / GIFs

2021-08-23 - Recreation - Arena Bunny Explode
Everything looks better with particles.

Upcoming

  • Arena
    • Spawn points
    • Respawn + Counters
    • Door / Portal
9 Likes

Absolutely!

Great looking game - I cannot wait to play it.

2 Likes

DevLog #7 - 2021-08-24

Finished the core gameplay of Arena, and worked on using the PEX (and sim) to play up to 3 players at the same time!

Gameplay

  • Arena
    • Bunnies are spawned at a random locations out of a list of hard-coded ones.
    • Jumping on a Bunny will make it respawn at another location.
      • One that isn’t too close from another player, that is!

Aesthetics

  • Arena
    • Added particles of dust when walking and landing.

Engine

  • Implemented the “Three Full Players with PEX” input mode:
    • Player 1 uses the pokitto’s PAD, A for Action and B for Alternate.
    • Player 2 uses the PEX’s EXT1-6 and Player 3 the PEX’s EXT7-12 in the following fashion:
      • EXT1/7 - Alternate
      • EXT3/9 - Up
      • EXT5/11 - Act
      • EXT0/6 - Left
      • EXT2/8 - Down
      • EXT4/10 - Right
      • Connecting the corresponding EXT to the GND will make it as “pressed”, and “released” if left disconnected.

UI

  • Now able to choose the “Three Full Players” input mode.

Screenshots / GIFs

HW demo of the PEX-based controllers. Sorry for the quality!


The smartphone was in a precarious balance on the ruler + tape. No comic books were harmed while filming this.

Upcoming

Well the core is finished for both minigames. Things are still unpolished, it’s missing audio, and the input/players system could be using something more user-friendly! However I’m quite happy of the current result.
Originally I was to stop at this point, but there is still a few days!
I don’t think I got enough time to implement a third mini-game unfortunately, even with the extended time, so instead I’ll polish these two games - Volley and Arena.

Hopefully, most of these should be finished by sunday:

  • All games
    • Add an outline to the various Characters (bunnies, cats and dogs later).
      • So they can be easier to spot.
    • Before starting a game:
      • Let the Player(s) choose their avatar (basically variation of bunnies, cats and dogs)
      • Configure (when applicable) if a Player should be controlled by an AI or not.
  • Arena:
    • Doors to access the upper part.
    • Kill Hug counter + end after a given score was reached.
    • Spawn a few Water particles when inside the water part.
    • Add some Audio:
      • Jumping (shared with Volley)
      • Bumping (shared with Volley)
      • Splashing a bunny.
      • Water splash maybe?
  • Volley:
    • Add some Dust particles when anything touches the sand.
    • Add Winning Conditions - 7 at least and at least 2 points of difference.
      • e.g. 9-10 isn’t the end, 10-12 is.
    • Freeze the players for a second before serving.
      • So the first player doesn’t end up jumping at the ball because they pressed A :laughing:
    • Add some Audio:
      • Jumping (shared with Arena)
      • Bumping ball (shared with Arena)
      • Whistle when the ball hits the ground
      • Maybe the sea’s noise?
  • Menu
    • Add some Audio:
      • Move cursor
      • Select an option
      • Going back
    • Add some cool graphics!

Most likely won’t be done until after the jam, but not exactly:

  • Arena - Some power-ups/debuffs (temporary invincibilty, shield, double-jump, speed up/down, unrelenting force, these kind of things).
  • Arena - Environments toys.
    • Like a ball, springs, etc
  • Arena - Another Map?
  • Add some Music?

Stay tuned!

8 Likes

I think you should get a PEX bonus.

5 Likes

Totally agree

3 Likes

My brain keeps reading that as “EXP bonus” and is happy for that reason :laughing:

I don’t know if it’s worth for that bonus -it’s merely using IN pins.
Seeing people actually play this game with other people would be much more rewarding -and hopefully bring back the PEX-style multiplayer back to the Pokitto. I know seeing the pics with kids playing together at a snake game was one of the incentive that made me get a pokitto, but I didn’t saw many games relying on this afterward!

2 Likes

Maybe also electrical parts should be sold in the Pokitto Shop so people who do not usually buy them can be sure they get the correct parts which work for the use case.

4 Likes

DevLog #8 - 2021-08-25

Quick update, mostly about Doors (for all the lovers of such intricate objects here) and Bunnies!

Gameplay

  • Arena
    • Added Warp Doors.
      • Basically, you get in front of them, and they warp your to another Door.
      • You cannot be warped to a Door that is already “occupied”.
      • When the Door is open, it’ll drag your Bunny inside it to make sure it’s properly positioned.
        • The drag isn’t enough to be impossible to move away from the Door before the warp!
      • When the Door is closing on your Bunny, this one will be protected against any kind of attack until it gets out from another Door.
      • If no other Door are available, your Bunny will simply come out from the Door they’ve entered.
      • The animation gives a delay before the drag and the warp starts, so you cannot really warp by accident.

Aesthetics

  • Added an outline to bunnies so they’d stand out more against backgrounds.
  • Bunnies now come with different colors:
    • White, Brown, Pink, Grey, Dark.
    • Currently, a color is chosen randomly.
    • Not special care is taken to make sure every player has a different color.
    • Also, in Volley, this introduced a bug where both bunnies would change colors after each round. Oops!
    • This will be fixed later when I’ll have an intermediate screen allowing to choose a color.

Screenshots / GIFs


4 of the 5 available colors for Bunnies; also pictured, the new outlines for every one of them.

Screenshot 2021-08-25 at 20.41.48
The fifth color.

2021-08-25 - Recreation - Warp Doors
A demo of the Doors.

2021-08-25 - Recreation - Won't Warp Doors
If someone is occupying the other Door, you’ll be left out at your current position. Not pictured here, but the system supports multiple doors!

Upcoming

  • Arena
    • Kill counter
    • Volley
      • Intermediate screen to configure the AI + Color of bunnies.
      • Fixing the weird bounce-on-top-of-the-net bug.
      • Dust particles for sand interactions.
      • Freezing the game for a second to avoid an unexpected jump.
      • Some sounds.
    • Arena
      • Intermediate screen to configure the number of bunnies + their colors.

Stay tuned!

8 Likes

Satan bunny wants your soul. :P

5 Likes

DevLog #9 - 2021-08-27

Mostly about UI and killing hugging!

Gameplay

  • Arena
    • The kills “hugs” are now counted.
    • Players will spawn slightly at different times.
    • Players that just got killed will respawn after a slight duration.

Engine

  • Refactored the player system, to allow for separate “avatars”.
    • (For a later use mostly, but also fixes the Arena’s bug of having a different color every time a round finishes.)

Aesthetics

  • Adjusted some colors for some bunnies, and added the Blue Bunny.

UI

  • Arena
    • Added a Counter with a small head representing the associated player.
      • The Counter currently shows the kill count.
      • For a while, It’ll blink Green after killing, and Red after being killed. In such case, the head will also shake a bit.

Screenshots / GIFs

2021-08-27 - Recreation - UI, Spawning
Spawning is slightly delayed for each players.

2021-08-27 - Recreation - Kill Counts
Your bumping is now counted!

2021-08-27 - Recreation - Kill Counts Close Up2021-08-27 - Recreation - Kill Counts Close Up 2
Some close ups.

Upcoming

  • Arena
    • SFX for Jumping, Bumping and Splashing.
  • Volley
    • Fixing an issue with the net.
    • Freezing the game for a split second just before Serving a ball.
    • Using the same UI.
    • SFX for Jumping, Bumping, and Winning a Point.
8 Likes

Jam has ended!

A version has been released here - [Game]Recreation

An additional DevLog will follow soon to explain what I added in the meanwhile!

2 Likes