Undertale for 3DS
Hello GBATemp! So, this is a project that I've been recently working on and I am really excited to share this with you all!
Thing is, I've seen a few people trying to port Undertale to the 3DS, but to no avail... All those projects eventually got abandoned and with seemingly no explanation, at least from what I can gather haha. That inspired me to do it myself!
Please keep in mind this is in it's very early stages!! And it's also being made from scratch in the Unity engine (since game maker is not compatible with the 3ds)
I've started working on this around early September-ish and hopefully I can actually finish this in a reasonable amount of time haha
I want to be as transparent as possible while making this, so everyone knows what's going on and not leave you all hanging saying "... So what happened to it?"
With that out of the way
What's been added
Current Priorities
I am open to any feedback, suggestions and ideas! If you have anything in mind please let me know!
P.S. I'm a solo developer, so don't set your expectations too high for this project
Changelog
Preview
If you want to see more stuff, and more tests from this join my discord!
https://discord.com/invite/KURTswPngP
Initial v0.1.0 release
https://github.com/CooingMaxito/Undertale-3DS/releases/tag/pre-alpha-v.0.1.0
v0.2.2
https://github.com/CooingMaxito/Undertale-3DS/releases/tag/Alpha-v0.2.2
v.0.3.0
https://github.com/CooingMaxito/Undertale-3DS/releases/tag/Alpha-v0.3.0
Unreleased screenshots and images
(These will be removed as they get added into public releases)
Hello GBATemp! So, this is a project that I've been recently working on and I am really excited to share this with you all!
Thing is, I've seen a few people trying to port Undertale to the 3DS, but to no avail... All those projects eventually got abandoned and with seemingly no explanation, at least from what I can gather haha. That inspired me to do it myself!
Please keep in mind this is in it's very early stages!! And it's also being made from scratch in the Unity engine (since game maker is not compatible with the 3ds)
I've started working on this around early September-ish and hopefully I can actually finish this in a reasonable amount of time haha
I want to be as transparent as possible while making this, so everyone knows what's going on and not leave you all hanging saying "... So what happened to it?"
With that out of the way
What's been added
- Intro cutscene (100% Done)
- Name Select (No transition from name select to main game yet)
- All the original Name responses (plus a few extras)
- Player animations and movement
- The first five rooms of the game (Without events and no toriel yet)
- A fast, and very performant tilemap system to create maps and collisions
- Easy-to-modify dialogue system and npcs
- An awesome Pixel Perfect Camera to fit the 3ds resolution and stay faithful to the original game
- Flowey Encounter fully complete, only need to merge all the vents together
Current Priorities
- Optimize Text (It runs really well on n3ds, lags a tiny bit on old models)
- Merge all parts of the Flowey encounter to have the first part of the game done
- Add Toriel interactions
- SAVING SYSTEM (VERY IMPORTANT)
- Player and SOUL movement is slower on New systems if they have Overclock turned on. (To fix simply turn off overclock and l2 cache)
- Moving with circlepad doesn't update the current direction the player is facing, leading to not being able to properly interact with NPCs. Use the dpad instead (for now)
I am open to any feedback, suggestions and ideas! If you have anything in mind please let me know!
P.S. I'm a solo developer, so don't set your expectations too high for this project
Changelog
### Content Additions:
1. **Flowey Encounter**:
- Finished Flowey battle encounter.
- Added and tweaked Flowey hurt sprites and animations.
- Implemented new mechanics in Flowey sequences (e.g., dodge sequence, hit sequence, toriel flame animations, sound effects).
---
### Notable Internal Changes:
1. **Pixel Perfect Camera Implementation**
- **Key Features**:
- Implemented a new **Pixel Perfect Camera** script across multiple levels for improved visual consistency and accuracy, ensuring that
the camera is faithful to the original game (This also fixes tilemaps having spaces between tiles while the camera moves, and general
pixel warping issues).
- Adjusted camera offsets, and resolutions to align with a grid.
- Snapped cameras to a pixel grid to eliminate distortion during movement and improve overall visual clarity.
- **Optimization**:
- Removed outdated and problematic camera scripts that caused performance issues.
- Replaced outdated implementations with a better-functioning pixel-perfect system.
- Added pixel-perfect adjustments for various assets, including player prefabs and face sprites.
- **Impact**:
- These changes ensure the game maintains a crisp aesthetic across all scenes while enhancing performance on old hardware.
2. **Tilemap and NPC Adjustments**
- **Key Features**:
- Made significant tilemap performance improvements for smoother gameplay, especially in scenes with complex environments.
(Previusly, tilemap rendering used to consume about 70% of cpu usage. After HEAVY changes to their rendering, it has been
reduced to only a maximum 3%)
- **Optimization**:
- Reduced tilemap loading times and optimized rendering by consolidating static elements.
- Greatly improved runtime with tilemaps by heavily reducing draw calls for tiles
- **Impact**:
- Reduced tilemap loading times and optimized rendering, freeing up resources for more complex maps and scenes.
- Improved garbage collection processes for smoother gameplay.
3. **Dialogue System Overhaul**
- **Key Features**:
- Separated entry dialogue from object dialogue, allowing more flexible handling of dialogue events in the game.
- Added support for dynamic dialogue loading via InteractZone, which sends the data to the DialogueManager for more seamless
interaction with NPCs.
- Integrated a canSkip boolean flag (still under development), which allows players to skip dialogue under specific conditions.
- **Optimization**:
- Separated dialogue from generic interactions and character interactions.
- Optimized dialogue loading and interaction sequences for better responsiveness.
- **Impact**:
- These changes enhance the flexibility of the dialogue system, allowing for dynamic and interactive dialogue sequences based
on player actions, while also enabling the player to skip or continue based on game state.
4. **Dialogue File Management**
- **Key Features**:
- Enabled the ability to change dialogue files dynamically, making it easier to adjust dialogue content during development or
through external configuration.
- Introduced a system for managing multiple dialogue paths, allowing different dialogue to be displayed depending on player
actions or choices.
- **Optimization**:
- Added JSON-based dialogue configurations for flexibility.
- Removed hardcoded dialogue paths and introduced more flexible methods for dynamically selecting the appropriate dialogue files.
- **Impact**:
- This update provides greater control over the flow of dialogue and ensures that content can be easily updated or adjusted
without major code changes.
5. **Collision and Player Movement Improvements**
- **Key Features**:
- Improved Player Movement: Adjusted player speed and implemented capsule colliders to improve collision detection.
- Tweaked camera behavior, including camera offset adjustments, and follow the player smoothly across levels.
- **Optimization**:
- Replaced frame-by-frame movement with FixedUpdate for more stable player motion.
- **Impact**:
- Results in smoother player control, reducing janky movement and improving interaction with the environment.
6. **Performance and Bug Fixes**
- **Key Features**:
- Resolved various bugs, including null script references (woops), and performance bottlenecks.
- Implemented collision optimizations and removed unused scripts to streamline game execution.
- **Optimization**:
- Reduced unnecessary resource usage by cleaning up unused assets and code.
- **Impact**:
- Leads to a more stable and optimized game experience, again, particularly important for running the game on old hardware.
---
### Less Significant Changes:
1. **Environment and Visual Adjustments**:
- Minor tweaks to tilesets (e.g., vines, walls, floors).
- Adjustments to warp positions in various scenes.
- Added or removed test NPCs in multiple areas.
2. **Test Implementations**:
- Added placeholders for mechanics (e.g., test NPCs, placeholder tiles).
### TODO
- Optimize text
- Merge all the parts of the full Flowey encounter
- Fix Player and SOUL movement being slower when an N3DS system is overclocked
- Add Toriel interactions
1. **Flowey Encounter**:
- Finished Flowey battle encounter.
- Added and tweaked Flowey hurt sprites and animations.
- Implemented new mechanics in Flowey sequences (e.g., dodge sequence, hit sequence, toriel flame animations, sound effects).
---
### Notable Internal Changes:
1. **Pixel Perfect Camera Implementation**
- **Key Features**:
- Implemented a new **Pixel Perfect Camera** script across multiple levels for improved visual consistency and accuracy, ensuring that
the camera is faithful to the original game (This also fixes tilemaps having spaces between tiles while the camera moves, and general
pixel warping issues).
- Adjusted camera offsets, and resolutions to align with a grid.
- Snapped cameras to a pixel grid to eliminate distortion during movement and improve overall visual clarity.
- **Optimization**:
- Removed outdated and problematic camera scripts that caused performance issues.
- Replaced outdated implementations with a better-functioning pixel-perfect system.
- Added pixel-perfect adjustments for various assets, including player prefabs and face sprites.
- **Impact**:
- These changes ensure the game maintains a crisp aesthetic across all scenes while enhancing performance on old hardware.
2. **Tilemap and NPC Adjustments**
- **Key Features**:
- Made significant tilemap performance improvements for smoother gameplay, especially in scenes with complex environments.
(Previusly, tilemap rendering used to consume about 70% of cpu usage. After HEAVY changes to their rendering, it has been
reduced to only a maximum 3%)
- **Optimization**:
- Reduced tilemap loading times and optimized rendering by consolidating static elements.
- Greatly improved runtime with tilemaps by heavily reducing draw calls for tiles
- **Impact**:
- Reduced tilemap loading times and optimized rendering, freeing up resources for more complex maps and scenes.
- Improved garbage collection processes for smoother gameplay.
3. **Dialogue System Overhaul**
- **Key Features**:
- Separated entry dialogue from object dialogue, allowing more flexible handling of dialogue events in the game.
- Added support for dynamic dialogue loading via InteractZone, which sends the data to the DialogueManager for more seamless
interaction with NPCs.
- Integrated a canSkip boolean flag (still under development), which allows players to skip dialogue under specific conditions.
- **Optimization**:
- Separated dialogue from generic interactions and character interactions.
- Optimized dialogue loading and interaction sequences for better responsiveness.
- **Impact**:
- These changes enhance the flexibility of the dialogue system, allowing for dynamic and interactive dialogue sequences based
on player actions, while also enabling the player to skip or continue based on game state.
4. **Dialogue File Management**
- **Key Features**:
- Enabled the ability to change dialogue files dynamically, making it easier to adjust dialogue content during development or
through external configuration.
- Introduced a system for managing multiple dialogue paths, allowing different dialogue to be displayed depending on player
actions or choices.
- **Optimization**:
- Added JSON-based dialogue configurations for flexibility.
- Removed hardcoded dialogue paths and introduced more flexible methods for dynamically selecting the appropriate dialogue files.
- **Impact**:
- This update provides greater control over the flow of dialogue and ensures that content can be easily updated or adjusted
without major code changes.
5. **Collision and Player Movement Improvements**
- **Key Features**:
- Improved Player Movement: Adjusted player speed and implemented capsule colliders to improve collision detection.
- Tweaked camera behavior, including camera offset adjustments, and follow the player smoothly across levels.
- **Optimization**:
- Replaced frame-by-frame movement with FixedUpdate for more stable player motion.
- **Impact**:
- Results in smoother player control, reducing janky movement and improving interaction with the environment.
6. **Performance and Bug Fixes**
- **Key Features**:
- Resolved various bugs, including null script references (woops), and performance bottlenecks.
- Implemented collision optimizations and removed unused scripts to streamline game execution.
- **Optimization**:
- Reduced unnecessary resource usage by cleaning up unused assets and code.
- **Impact**:
- Leads to a more stable and optimized game experience, again, particularly important for running the game on old hardware.
---
### Less Significant Changes:
1. **Environment and Visual Adjustments**:
- Minor tweaks to tilesets (e.g., vines, walls, floors).
- Adjustments to warp positions in various scenes.
- Added or removed test NPCs in multiple areas.
2. **Test Implementations**:
- Added placeholders for mechanics (e.g., test NPCs, placeholder tiles).
### TODO
- Optimize text
- Merge all the parts of the full Flowey encounter
- Fix Player and SOUL movement being slower when an N3DS system is overclocked
- Add Toriel interactions
Preview
Intro Cutscene
3D Banner in the home menu
Video showcasing borders and the second room that contains Flowey
(borders have been temporarily disabled)
3D Banner in the home menu
Video showcasing borders and the second room that contains Flowey
(borders have been temporarily disabled)
If you want to see more stuff, and more tests from this join my discord!
https://discord.com/invite/KURTswPngP
Initial v0.1.0 release
https://github.com/CooingMaxito/Undertale-3DS/releases/tag/pre-alpha-v.0.1.0
v0.2.2
https://github.com/CooingMaxito/Undertale-3DS/releases/tag/Alpha-v0.2.2
v.0.3.0
https://github.com/CooingMaxito/Undertale-3DS/releases/tag/Alpha-v0.3.0
Unreleased screenshots and images
(These will be removed as they get added into public releases)
New text rendering system
Testing battles, only FIGHT works (still need to add enemy health and damage, lots to do lol), ACT, ITEM and MERCY still need functionality
Concept for borders on bottom screen
Glimpse of a battle with some debug options, not a lot to show huh...
Video showcasing early battles
Testing battles, only FIGHT works (still need to add enemy health and damage, lots to do lol), ACT, ITEM and MERCY still need functionality
Concept for borders on bottom screen
Glimpse of a battle with some debug options, not a lot to show huh...
Video showcasing early battles
Last edited by CooingMaxito,