This currently unnamed project is my final project for CIS 441 "Intro to Computer Graphics" @ the University of Oregon. My goal was to develop a simple platformer with an experimental 2.5D art style utilizing both 2D sprites and 3D objects in the scene. 


SOURCE CODE: https://github.com/Sephta/cis441-2d-platformer


Current Scope:

  • 2D Character Controller with inspiration from games like Celeste
    • Player has various movement options such as: Double Jump, Dash, Animation Driven Attack Combos.
  • Simple environment driven platforming
  • Simple enemy AI to challenge the player (think simple like Mario's enemy behavior). This needs to be simple due to time constraints
  • Action combat mechanics
  • (VERY) Simple UI and Menu system


Controls:

WASD -> move

SPACEBAR -> jump (can currently double jump)

LEFT MOUSE BUTTON -> Attack

LEFT SHIFT -> Dash in direction you are moving based on WASD input (can currently use 2 dashes while in the air, will change in the future)

P -> open the pause menu


Check out my other Games :)

Patch Notes:

PATCH v1.0.0: Final Build for project submission

  • Please refer to the publicly available GitHub repository README for details

---

PATCH v0.3.0: Implemented new combat system + added more to "The Forest" level

  • Implemented new combo / animation based combat mechanics. Currently they are only hooked up to the player's animator and do not have hitboxes enabled yet. (there Isn't anything to fight yet anyways)
  • Added more platforming and open environment sections to "The Forest" level. Almost done completely blocking it out to polish before my deadline
  • Added some various tweaks and improvements to other aspects of the game as well

---

PATCH v0.2.0: Started construction of Level 1 + Polish Tweaks

  • Started constructing level 1. A Forest environment with a low poly + pixel art style. Uses a culmination of the previous iterations and visual ides
  • Created script to  enable camera shake on Cinemachine Virtual Camera
  • Various Post Processing tweaks
  • overall polish to codebase
  • Although not yet playable, started working on AI Statemachine

---

PATCH v0.1.2: Performance improvements + options menu

  • Implemented unity's built in Occlusion Culling
  • Imported Mesh Combiner to optimize platforming geometry

---

PATCH v0.1.1: Pause Menu changes + FPS counter

  • Added an FPS tracker to monitor performance on published builds.
    • Shows FPS and time between each frame
  • Fixed some bugs and implemented some minor changes to the pause menu

---

PATCH v0.1.0: Boilerplate Main Menu + Under the hood refactors

  • Added rudimentary menu system on game start. Will later be populated with some accessibility options + maybe some graphics options
    • Start loads the playtest environment
    • Options currently does nothing
    • Quit will tell the application to exit
  • Under the hood changes
    • Created new scriptable objects for managing player data for easier tweaking of various player stats (i.e. can edit them at runtime and they stay that way after exiting playmode)
    • Imported required libraries for things like TextMeshPro, etc

---

PATCH v0.0.4: Revamped Dash Mechanics + Animation Test

  • Refactored the way dashing works. Now player can perform multiple dashes which work by very quickly moving the player in a set direction for a set duration.
  • Utilized free 2D assets to test out hooking up the player controller to Unity's animation system
  • Modified the way the camera tracks the player
  • Player is now much smaller in the scene overall
  • Fixed issues where the PostFX and image color settings appeared different in the browser than in Unity.

---

PATCH v0.0.3: Parallax backgrounds + Movement Tweaks

  • Created relatively flexible Parallax scroller + Free assets for testing the effect
  • Made relatively small changes to movement mechanics to improve game feel.
    • Can no longer hold SPACE to jump higher, jump is always the same height
    • Fixed various bugs related to normalizing movement Vector
    • tweaked various movement related data such as move speed, force of dash impulse, etc

---

PATCH v0.0.2: Performance Tweaks

  • Set much of the geometry to STATIC. This dramatically improves performance in the WebGL build

---

PATCH v0.0.1: Character Controller Revisions

  • Replaced sprinting with "dash" dash is on 1 sec cooldown.
  • "Attack" is now on 1 sec cooldown.
  • tweaked "Attack" mechanic. Partially solved geometry clipping issues.

---

StatusReleased
PlatformsHTML5
AuthorSeth Tal
GenrePlatformer, Action
Made withUnity
Tags2D, 3D

Comments

Log in with itch.io to leave a comment.

que ideia genial mano

This is hands down the best game in 2023! all jokes aside this is really really good. I love the art style and as a learning developer I was stunned by your fluid character controller and combat. I've loved the 2.5d genre ever since seeing the new octopath and you just scratched my itch. Definatly keep going dude this has major potential.

(+1)

Came here from the game jam since I wanted to check out your work. This is a really cool project and looks so different with the 2.5D. I know you said this is your first platformer, but I think it's really good.

The only thing that feels a little funky is the movement in the air after jumping. Once I jump then move to the left or right with a tap, the player moves very quickly in that direction without slowing down. Although it's a little unintuitive and unrealistic, most platformers don't keep momentum in the air since it gives the player much more control. I'd suggest adding some "air friction" or the player instantly stopping in the x direction after the button is released.

Hey! Thanks for the feedback! I appreciate you checking out my other projects! Your idea about “air friction” sounds compelling and I’ll have to prototype that the next time I make a 2D character controller. Definitely not something I would have thought of on my own very easily. Seems pretty elegant. I tried hard to give the player the feeling of momentum in the air while maintaining control and I don’t think I did it very well. “air friction” could solve that.

If anyone plays this and feels the need to comment feel free to give me your feedback. I would love your thoughts, both positive and negative.

This was my first time making a platformer of any kind and there were a lot of things I just couldn’t get quite right.