Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Game submission: Larceny #26

Open
wants to merge 48 commits into
base: main
Choose a base branch
from

Conversation

RiPpErTheGreyFox
Copy link

@RiPpErTheGreyFox RiPpErTheGreyFox commented Dec 13, 2024

My first libdragon project, sure was a different experience from all the Gameboy stuff I've been doing!

A 2v2 game pitting Thieves against Guards and their treasures, thieves have the ability to dash through walls, while guards are able to stun and capture the thieves, game ends when timer ends, the thieves steal both treasures or both thieves are caught.

I'd never made a skinned 3d model from scratch before so I hope y'all enjoy the jank animations, it's been a while since 3D graphics 101 as well so lots of relearning was sure needed, also I made a lot of the sound effects with 4am foley work, I'm sure my room-mate loved that.

Thanks for the amazing jam everyone!

…xport tested, asset import added, debug font rendering added
Converted actor to skinned mesh system (animations still not exporting from blender properly)

Added disable_aa_fix to textparms

Converted actor movement code to more advanced version based on example
Moved the camera further out

New test asset for the map and update to TestActor
… later, individual start positions and team sorting during player_init

objective_data structs and objective entities added, with init/cleanup/draw functions

Updated font drawing functions with disable_aa_fix, added Player 1 position readout to debug text

added detection of real players vs AI

reordered rendering to ensure transparencies work as intended
…urposes, collision channels, and some new typedefs relating to it

Updated text rendering to expect hi-res mode

fixed a bug where all players would be on thief team

updated player movement to use new collision system

removed joypad rumble code as it was causing performance issues

Updated display_init to use high-res

updated map/actor/objective models
…inflicted stun by pressing A)

Added debug joystick output for player 1

Added upper and lower deadzones for analog sticks on controllers

Thieves touching objectives marks them as inactive, inactive objectives no longer draw
Trying out changing to 640x240 to keep framerate high (added aspect ratio detection)

Changed camera position to look more directly top down
…t yet), stunned thieves can be caught by guards, taking them out of the game

Players now have an active flag in their struct, to avoid being rendered or interacted with

Countdown now plays the correct sound every time the number gets decreased, countdown also ends at the right time now

AI are now inhibited from moving when stunned
Made abilities trigger a cooldown

Added a HUD for each player, including an ability cooldown bar

Added player number billboards above player models

Moved debug text to the side (out of the way of the real game HUD)

Changed ability button to the A button

Changed screen filter from resample to dedither (allowed to with 640 wide framebuffer)
…eed to update these to allow animations later)

removed a few RDP syncs as an experiment
Added game ending logic, now pauses for a few seconds while displaying the winning team, correctly returns winners and quits the game (debug binds are still present)

Added pop-up stun status timer above players
…ded in some defines to help keep text in the correct place if I ever switch back, HUD needs updating because of new resolution scale

removed some debug text to lower amount of font rendering

basic version of thief ability added, thieves can now jump through walls that are thin enough

Added a separate objective_update function to keep draw functions leaner
…machine, need to improve the interfaces between scopes in the future

moved a lot of typedefs and includes up into the rippergame header file

added a bunch of rdpq_sync*'s in order to try and squash the font rendering crash bug
Made the AI call get passed in arguments that are sane so they can be assumed to be zero

Moved player abilities into their own functions so they can be called easily

Moved objectives to easier positions for the AI to handle for now

Disabled antialiasing during display init as intending to go for a more pixelated look

Moved camera upwards and backwards a little
… shaders, textures still to come, animations implemented into code including smooth blending based on speed

Added a stop animation function for when the game is over

temporary AI thief usage ability (spams the button every frame)

Made abilities work with either A or B button presses

Changed thief caught sound effect to avoid conflict with music channels

Changed effect and its model for the wall hop ability, added Y-axis rotation as a part of the struct, included a dynamic allocation setup for effect placement

Player scale now in a define

Changed prototype map layout

Added basic music test using snake3d's music for now

Attempt at a line intersection algorithm, but appears buggy

Adjusted debug info

collisionObjects now have displaylists for faster queueing

AI now outputs reasonable speed numbers from it's functions

AI has invalid target guards that switch states out if the targets are invalid
removed some garbage WSL files
Added a pause function, including debouncing and animation state pausing

Updated in menu description and instructions

Added way more rdpq_sync's to all text rendering

Rescaled the button icon in the HUD

Fixed a memory leak regarding collisionobject display lists
New objective models added, two models per objective for more visual variety now, objectives now rotate to look more interesting

Dog guard model updated with lower hat, fox thief textured eyes added

Ability ranges, strides and objective touch distances added as defines

Added Hi-res toggle by holding R when starting the game, UI elements updated to be aware of resolution now
Updating the minigame template to the latest version in order to use the sound file features
…fects, added an onHit sound for guard abilities

Swapped over player collision checks to use the new format that checks intersections
disable debug rendering for now

optimised HUD rendering by reducing text draw calls, nudged the player billboards a bit

moved light setup to the init

moved the sync point to the start and ends of the frames
Adjusted volume when playing sound effects
HUD shifted around

Objectives moved and recoloured
…he last objective to be touched

Added an xm music file, public domain file by drozerix, "poppy flower girls"
… one issue with one model, foxThief updated

removed a few garbage files
fixed light vector crash by hard setting it each frame

fixed bug where thieves could use abilities while stunned
made the naming of deltaTime more consistent
new set of camera animation keyframes for the intro

Game start slowed down by factor of 2.5 to allow intro cutscene to play
remove HUD during game start/end/pause

Thief effect now properly flipped
…f grey outline, pops more against the bright level
@buu342
Copy link
Collaborator

buu342 commented Dec 14, 2024

Thank you for your submission!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants