Tulip is an action-adventure platformer made in Unity. It is still a work in progress and currently serves primarily as a portfolio project. My goal is to create a compelling game world with satisfying combat and exploration.
Originally, Tulip was heavily inspired by Terraria and featured a procedurally generated world with mining and building. However, I decided to move away from a sandbox in favor of a hand-crafted world after developing some exciting ideas for worldbuilding. Some of my biggest inspirations include games like Hollow Knight, Ori and the Blind Forest, V Rising, Divinity: Original Sin 2, Core Keeper, Wall World, Laika: Aged Through Blood, SteamWorld Dig, and Fallout.
An old build of the game from when it was still a sandbox prototype is available:
- Melee combat: spear, axe
- Grappling hook mechanic
- Spawn constraints: rules like "only on safe blocks", "needs headroom", etc.
- Item swing motion config with editor tooling
- Invulnerability frames
- Status effects: health regen, bleed
- Enemy AI: walking, flying, attacking
- Loot items for entities
- Tilemap World (background walls, blocks, shelved: curtain tiles)
- Entities: Treant mimic, flying skull, trees, generic walking enemy
- Items: Weapons, tools, materials (ore, wood), tiles
- Portal Shader: Shader for rendering two worlds through a portal (unused)
- Parallax Shader: Parallax background shader with moving cloud
- Sprite outline and dissolve shader
- Rain VFX: Rain in VFX Graph, configurable (not supported on WebGL)
- Menus | [Death overlay](Assets/UI/Death Overlay/DeathOverlay.uxml)
- [Data bindings](Assets/UI/Settings Menu/SettingsMenu.uxml) using the MVP pattern
- Global converters for data bindings
- Custom styling for default Unity UITK controls like
DropdownField,TabViewvia.unity-USS classes
- FMOD project source included
- Footstep sounds for the player and enemies
- Muffled music when player is indoors
- Audio volume options in game
- Positional audio in 2D space
- Async and
Awaitableusage - Input System usage
- Custom WebGL template to fix data persistence bug on web builds
- Event channels for some UI events (
ScriptableObject-based)
These features have been abandoned either because they are out of scope or don't fit the design anymore:
- World Terraforming (breakable & placeable tiles)
- Custom Rule Tiles for the world
- Hotbar with slot locking, HUD, and UI Template for hotbar item slots
- LDtk project: Blocks, walls, curtains
- A hand-crafted world
- Rain system
- More equipments, weapon types
- More enemies, NPCs
- Better enemy AI
I have a lot of notes on different design aspects like narrative, system mechanics, NPCs, quests, enemies/bosses, and more. I might share the plans in more detail once I've made good progress on something.
The art direction/style is not finalized. I'm using placeholder assets that seem to go well enough together for the time being. Same with music and sound effects. I purchased some assets (ATTRIBUTIONS) and made some placeholder art myself, but the paid assets aren't available on the public repo since I can't share the source files. The itch.io builds use the paid assets as expected, though! I also bought a MIDI keyboard to learn music, which may not have been the smartest investment, but surely I'll make some progress one day.
