Giter VIP home page Giter VIP logo

newbark-unity's Introduction

Hi there, it's Javi 👋

  • 💻 Senior Full Stack Developer
  • 🌈 Wide range of dev languages including: PHP, JS, TypeScript, Python, Golang & C#
  • 🧩 Frameworks: Symfony, React, NextJS, Remix
  • ⚙️ Comfortable with different JS runtimes and enviroments: Browser, Node, Electron, Vercel Edge, Bun
  • ☁️ Cloud Platforms (Serverless): Vercel, AWS, Cloudflare
  • 🔁 Agile, with a DevOps mindset.
  • 🔀 Familiar configuring CI/CD pipelines, and automation processes.
  • 🧱 DDD & Clean Architecture advocate.
  • 📚 I embrace modern Web standards as much as possible.
  • 🔬 I have a curious mind and I like to keep learning.
  • 🌎 Can speak in Spanish, Catalan, English, Italian and some basic German.
  • 🐱 Hobbies include Cooking, Singing, Hiking, Paddle surf, Sci-Fi, Pokémon games and good Pizza
  • 📝 I occassionaly write about software engineering on my dev blog blog.itsjavi.com

Side Projects

Some of my side projects include:

  • a Next.js Pokémon community called SuperEffective.gg. Currently migrating it to App Router and RSC.
  • StoryLite: a very lightweight alternative to StoryBook for React. Currently paused, but I will get back to it next.
  • a CSS Grid Playground
  • a photo library classifier and organizer called Mediatidy using Python and Tensorflow (but I also wrote a Go version).
  • A (WIP) framework called Pizza
  • ... and many more!

Creating a Full-Stack Framework

I am not very happy about the current state of the frontend in the last years (2021-2024), so I am also interested in creating a full-stack framework that could make Next.js blush, heavily relying on modern web standards (rather than reinventing or ovewritting them), supporting SSG, SSR, Pre-rendering and HTML streaming, and also supporting any cloud platform (CloudFlare, AWS, Vercel, Azure, etc.) so devs don't get vendor-locked/trapped.

I am currently in a research phase, studying the techniques others are using (Next, Astro, Remix, Vike, Lume, Honox), but I will be happy to join efforts with other devs, specially those with experience in meta framework internals and Rust (or similar).

More coming soon in https://github.com/pizzajsdev

Open for Hiring

🚀 Looking for a great dev? Reach out!

While I am not actively looking for a change at the moment, I am always open to hear what the world has to offer to me.

Specially interested in EU-based full remote positions, in a creativity-related business (fintech and e-commerce is not my thing anymore).

newbark-unity's People

Contributors

imgbot[bot] avatar itsjavi avatar metaunicorn avatar route1rodent avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

newbark-unity's Issues

Create a custom collision engine in Unity.

The default one is bumpy/buggy and not pixel perfect. Sometimes the player gets stuck inside collision objects (e.g. doors, corners, ...) or jumps outside making an ugly effect.

ui: add a way to mute sound

Add a button to mute the sound and/or change the volume. It is a bit annoying to have it always playing by default on page load.

bug: FPS cannot be different than 32, moves become imprecise

Right now, for making the grid-tile-snapping movement work with tiles of 32 pixels (to always end up inside a full tile) the FPS needs to be also 32.

Something different than that will cause the player to move and overlap outside the tile it is supposed to fill.

To fix this we may need to play more with fps, pixels per frame, tile size and velocity and find a formula. Ideally the game should run at 60fps with grid-snapping.

[audio] refactor audio management, add channels/layers

Instead of attaching an AudioSource to each collidable element, have a variable to select an SFX sound from a list/enum.

The SFX Audio source should be handled by the main Audio Manager.
The Audio manager will have many sources that will act like audio channels.

[warp] finish warp implementation

  • fix current issues (player stuck walking after warping if move key still pressed)
  • implement door enter/leave animation (flash + color invert and/or fade)

bug: player does not move like original

The player is not moving like the in the original Gold and Silver games where:

  • - Speed is faster (~ 3 tiles per second). FIXED.
  • - Changing the direction is faster. In NewBark you have to wait until the previous move ended.
  • - Quick button press makes the player to turn around in the same tile.
  • - Long button press makes

the player to actually move to another tile (or collide).

refactor: Grid Tile Snapping engine

All about the grid-tile-snapping engine calculations (e.g. move, pixelBuffer, processPixelsToMove, etc.) that are now part of Controllable should be inside the Movement class.

The Movement class and its methods and properties should then stop being a singleton, and have a proper constructor accepting some params like fps. Do not rely on the config file, everything external the class needs should be in the constructor or via getters/setters.

The other entities like the Player should delegate on it to know if and how to update the object (velocity to apply, for example).

This would be a step towards abstracting melonjs and making the NewBark "tile snapping" engine more modular and usable by other projects.

feature: initial warping engine for changing the map

Initial warping engine for loading another level (map).

  • Create 2 new maps for the player's house (1st and 2nd floor)
  • Create a warp class / melon helper to load the map specified in the warp object metadata whenever the user collides against it.
  • Create a warp transition like in the original GB games (fadeout / fadein afair.)
  • Configure the 4 doors of the new maps (entrance outside/inside, 1st floor outside/inside)

Documentation on Tiling Map

Great work on this game, just has a quick question!

Is there anyway we can get more documentation on setting up a map/level? Tiled Map Editor is great but it seems the files only export as .tmx files and are missing the .txs files. Did you hard code the .txs file or was there a different way to generate both the .txs and .tmx files for the map?

Thanks,
Steve

bug: on debug mode the player disappears sometimes

On debug mode, the Player entity renderable becomes a me.Container with 2 child sprites: the original renderable and a new one which is the frame around the player sprite.

The problem is that when the player moves outside the initial visible viewport, the sprites disappear.
They appear again once the player is back to the initial visible viewport area + player width.

[refactoring] use new Unity Input System

It requires a lot of refactoring and it has some tricky parts that need to be addressed manually (like detecting direction button is being pressed and hold), but it's worth to integrate as it is more future-proof and flexible than traditional input.

Quick Start Guide:
https://github.com/Unity-Technologies/InputSystem/blob/develop/Packages/com.unity.inputsystem/Documentation~/QuickStartGuide.md#getting-input-indirectly-through-an-input-action

Video Tutorial (outdated):
https://www.youtube.com/watch?v=Pzd8NhcRzVo

[movement] implement movement director

Idea:

implement MovementDirector.Start([array of : x,y,speed,delay], times = 0), Started, Stop, Pause, Resume

Start: Defines a list of positions to move to/from and the delay between them. Times = times to repeat, 0 = infinite.

[movement] implement MoveTo/MoveTowards

implement MoveTo(x,y,speed) and MoveTowards (may need path finder logic) for grid-based movement

useful for NPCs to move in front of the player

this could be part of the move director #21

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.