Currents of War 2025
Engine - Unity
Languages - C#, some Python for tools
A 'NPC Simulator' game made in Unity for the April 2025 itch.io gamejam 'Indie Game Clinic COLLAB JAM '25'
   Since then, we've expanded it quite a bit!
You can play the older game jam submission for free in your browser,
   Check out the Game Jam Release

If you'd like to support us,
   You can find the further developed version released for sale on itch.io
     With future plans if we find time/funds to keep working on it!
   Buy & Download Currents of War on itch.io


The game jam was a collab jam, primarily consisting of 3 of us doing art and programming for Currents of War.
   _ ellipsis9 - Programming; Background-Battle Logic using character/enemy stats like a RPG, end more
   _ F2ptach - Programming & some Art assets; Events Handling, Player Input, and more
   _ ProcStack(me) - Art & Visual Programming; character state machine shader, shop & item art, ui, and more

I set up the shop, drew the items & most of the shop with help on a couple assets, the adjustable ui, animated cursor, and characters.
   I also wrote the code + shaders to handle animation & dynamically coloring the character's faces, hair, & armor.

For the art inspiration, I looked to -
   Gameboy Advance games like Zelda Minish Cap,
     Everything should be outlined with similar color hues blended!
   Super Nintendo games like Secret of Mana & Final Fantasy 3/6,
     Fantasy character designs with some reason for details
   And Original Nintendo games like River City Ransom.
     Character proportions and vibes.

I wanted to create a semi 'tacky' weapons shop for the style.
   To give some room for gags & chicanery!
I drew up most of the shop assets & many items done in a single night,
   Just had some chiptune fusion blasting and my huion screen-table going in photoshop.
     Yes... I realize my age, but old habbits!
   Felt good getting into pixel art, I've never done much of it before.
     Was like my highschool photoshop exploration years all over again,
       But a new musician this time.

   yeah photoshop for pixel art, pencil & mask layers
     use what you know best!

Then I isolated all the limbs & body parts of the characters on different layers in photoshop,
   And used the Puppet Tool in After Effects to animate the idle breathe, walking, & talking cycles.
     Exporting in Draft mode to keep the pixel aliasing on the art.
   Letting me animate & adjust quickly without having to draw out each frame.

One of the challenges was making sure the character's displayed with custom colors for their hair, face, armor, gloves/boots, and leggings.
   I wrote a shader to handle the colorization of the character's face, hair, and armor.
   Along with the sprite animation system to handle the character's idle, walk, and talk animations.
     Running individual animation cycles/clips at their own FPS rates.
   Neeing to write a custom editor script to allow the character's colors to be changed in Unity's Editor/Viewport,
     And have it update in real-time for easier character creation.

Among other fun things like adding an animated cursor, outlines around items on hover, ui borders that auto size to the text and stay pixel perfect, among other things
Give the game a try, it's a little game with some neat mechanics!
   Try to make as much money as you can off these heroes coming to your shop!

Play the Game Jam Release in your browser!
Or support us with a purchase, Currents of War!

Dwitter 2018+
My account on a JavaScript code golfing website
Language - JavaScript
'Code Golfing' is the art of annoying your coworkers,
   By writing the most obtuse code as possible,
     In as few characters as you can.

This is the 'dwitter' for the top video,
   Falling Circles [139/140 chars.]

I'm running a recursive function to draw circles over & over,
   That are getting smaller as they go up.
   After a short amount of time,
     using Tan() to have them fall off the screen.

Since you want to use as few chars as possible,
   You'll see variable assignment in the arguments of functions.
This might make things tricky to follow-
d=(j,r)=>{x.beginPath(),x.arc(j*4+S(t*3+r)*r,T(t)*r+r*5,S(t+=j&6)*r/5+r,0,7),x.fill(),r>2&&(r/=2,d(j-r,r),d(j,r))}
d(w=(c.width=999)/2,600)

Hmmm, see how messy that looks?
   Let me clean it up a bit for ya!
Built-in Variables & Functions -
   function u(t) { [...] } - Call the code below
   t - time in seconds.
   c - A 1920x1080 canvas.
   x - A 2D context for that canvas.
   S()- Math.sin; C()- Math.cos; T()- Math.tan.
d=(j,r)=>{ // Define 'd()' to call later vvv
   x.beginPath(), // Start a 'path' to draw
   x.arc( // Define a circle path to draw
     j*4 + S(t*3+r) * r, // Horizontal movement
     T(t)*r + r*5, // Vertical 'random' animation + perspective
     S( t+=j&6 ) * r/5 + r, // Make 'time' unique per + radius
     0,7), // Circle arc, draw a full circle
   x.fill(), // Draw the circle
   r>2 && ( // Stop making circles when r gets low enough
     r/=2, // Divide r by 2
     d( j-r, r ), // Run 1st child Recursion
     d( j, r ) // Run 2nd child Recursion
   )
}
d( // Start Recursion
   w=(c.width=999)/2, // Sets resolution & X placement
   600 // Circle generation count + seed
)
... doin a wee bit in there, haha

When all you get is 140 characters,
   Better make each one count!