Toggle menu
Toggle preferences menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

3DCaster 3DS: Difference between revisions

From GameBrew
Created page with "{{Infobox 3DS Homebrews |title=3DCaster |image=3DCaster3DS.png |description=A Ray-Caster for Nintendo 3DS that spiraled into it's own Dungeon Crawler Player/Editor and Engine. |author=Cracko298 |lastupdated=2026/06/21 |type=Game Engine |version=0.8.0 Pre-Release |license=MIT |download=https://dlhb.gamebrew.org/3dshomebrews/3DCaster3DS.7z |website=https://github.com/Cracko298/3DCaster |source=https://github.com/Cracko298/3DCaster }} A "simple" Ray-Caster for Nintendo 3DS..."
 
 
Line 276: Line 276:


'''v0.6.0'''
'''v0.6.0'''
* Input / Editor Fixes
* '''Input / Editor Fixes'''
** '''Y button reload/reset bug fixed'''
** '''Y button reload/reset bug fixed'''
*** Plain <code>Y</code> no longer reloads the level and resets the player position.
*** Plain <code>Y</code> no longer reloads the level and resets the player position.
Line 283: Line 283:
*** <code>START</code> only saves/exits when the player is on the main editor screen.
*** <code>START</code> only saves/exits when the player is on the main editor screen.
*** If the player is inside NPC, enemy, weapon, or sprite editor screens, it now tells them to press <code>B</code> to back out first.
*** If the player is inside NPC, enemy, weapon, or sprite editor screens, it now tells them to press <code>B</code> to back out first.
* NPC Improvements
* '''NPC Improvements'''
** '''NPC text improvements'''
** '''NPC text improvements'''
*** NPC text was moved lower so it does not float too high above the character.
*** NPC text was moved lower so it does not float too high above the character.
*** <code>NEAR</code> NPC text range was increased significantly, around 3x farther.
*** <code>NEAR</code> NPC text range was increased significantly, around 3x farther.
*** NPC interaction/select distance was relaxed so talking to NPCs is easier.
*** NPC interaction/select distance was relaxed so talking to NPCs is easier.
* Sprite / Rendering Fixes
* '''Sprite / Rendering Fixes'''
** '''Sprite visibility/depth fixes'''
** '''Sprite visibility/depth fixes'''
*** Items, NPCs, enemies, and pickups now use better depth handling.
*** Items, NPCs, enemies, and pickups now use better depth handling.
Line 306: Line 306:
** '''Crosshair added'''
** '''Crosshair added'''
*** A center crosshair was added to the top screen.
*** A center crosshair was added to the top screen.
* Combat Feedback
* '''Combat Feedback'''
** '''Enemy hit/death feedback'''
** '''Enemy hit/death feedback'''
*** Enemies wiggle when hit.
*** Enemies wiggle when hit.
Line 318: Line 318:
*** Slash types cycle so the same slash should not be used twice in a row.
*** Slash types cycle so the same slash should not be used twice in a row.
*** Crosshair stays centered and draws cleanly over/after the slash effect.
*** Crosshair stays centered and draws cleanly over/after the slash effect.
* Success / Results System
* '''Success / Results System'''
** '''Success tile changed'''
** '''Success tile changed'''
*** Success tile is now a floor trigger instead of a vertical billboard.
*** Success tile is now a floor trigger instead of a vertical billboard.
Line 328: Line 328:
**** Missions completed
**** Missions completed
**** Overall percentage out of 100%
**** Overall percentage out of 100%
* Performance Improvements
* '''Performance Improvements'''
** '''Render culling / visibility budget'''
** '''Render culling / visibility budget'''
*** Far-away items, NPCs, and enemies can be skipped instead of everything rendering every frame.
*** Far-away items, NPCs, and enemies can be skipped instead of everything rendering every frame.
Line 339: Line 339:
*** Pickups are intended to mark themselves inactive and update state without forcing heavy immediate save/recount behavior.
*** Pickups are intended to mark themselves inactive and update state without forcing heavy immediate save/recount behavior.
*** Saves should generally happen on manual save, leaving the level, returning to menu, or timed autosave rather than every pickup.
*** Saves should generally happen on manual save, leaving the level, returning to menu, or timed autosave rather than every pickup.
* Boss Entities / AI Hierarchy
* '''Boss Entities / AI Hierarchy'''
** '''Boss entities added'''
** '''Boss entities added'''
*** New boss entity support.
*** New boss entity support.
Line 353: Line 353:
*** New <code>ENM4</code> save/load chunk added for expanded enemy data.
*** New <code>ENM4</code> save/load chunk added for expanded enemy data.
*** Older enemy formats still load.
*** Older enemy formats still load.
* Demo Maps
* '''Demo Maps'''
** '''Locked Tower story demo'''
** '''Locked Tower story demo'''
*** Larger integrated story/tutorial level.
*** Larger integrated story/tutorial level.

Latest revision as of 05:06, 21 June 2026

3DCaster
General
AuthorCracko298
TypeGame Engine
Version0.8.0 Pre-Release
LicenseMIT License
Last Updated2026/06/21
Links
Download
Website
Source

A "simple" Ray-Caster for Nintendo 3DS that turned into it's own Dungeon Crawler Player/Editor and Engine.

Make your own Dungeon Crawlers with weapons, treasure, enemies, and missions/story. Or a maze- (which is far less cool, but you do you).

Controls

Level select:

D-Pad Up/Down - Selection

D-Pad Up/Down - Action

A - Select

B - Cancel

Start - Exit app

In game:

R/L or D-Pad or C-Stick or Touchscreen - Camera

Circle Pad - Move

B - Sprint

A - Jump

X - Attack

Y - Change weapon

Select - Talk

Start - Back to level select

Screenshots

3DCaster3DS3.png 3DCaster3DS2.png

3DCaster3DS4.png 3DCaster3DS5.png

3DCaster3DS6.png 3DCaster3DS7.png

Changelog

v0.8.0

  • Editor Workflow:
    • Added a dedicated editor tool mode system:
      • PAINT for normal tile painting.
      • SELECT for tapping/selecting entities.
      • ROOM for painting room-class overlays.
    • Added a Select Tool so NPCs/enemies can be selected directly in the editor.
      • Tap an NPC tile to open its NPC attributes.
      • Tap an enemy tile to open its enemy attributes.
      • This replaces the awkward “A + click with stats” flow.
    • Added room overlay selection to the editor UI.
    • Added room-class painting on top of regular tile data.
    • Added visual room hue/overlay support so rooms can be seen and edited separately from wall/floor tiles.
    • Added direct editing for NPC/enemy attributes after selection.
    • Added weapon editing from the menu and from NPC reward references.
  • Scrollable menus / attributes (fixes)
    • Settings menu now scrolls instead of going off-screen.
    • NPC attribute editor now scrolls.
    • Enemy attribute editor now scrolls.
    • Weapon editor uses the same entity-edit framework.
    • Entity editor remembers an internal scroll row and keeps the selected row visible.
    • Long attribute lists no longer become unreachable on the bottom screen.
  • Room classes / room overlays
    • Added a BWL4 room-class overlay stored separately from tile IDs.
    • Added room classes:
      • NONE
      • TREASURE
      • BOSS
      • TRAP
      • ENEMY
      • CORRIDOR
      • SAFE
      • PUZZLE
      • SECRET
    • Room classes are painted per tile and saved in the BWL4 ROM4 chunk.
    • Room classes are used by AI to decide whether it should continue chasing.
    • Corridors/hallways can now be used as AI boundaries.
    • Safe rooms can prevent AI from continuing to attack/chase through safe areas.
    • Room classes are intentionally independent from tile type:
      • A floor tile can be part of a boss room.
      • A wall tile can still carry a room class.
      • A corridor is no longer just a visual hallway; it can now affect AI containment.
  • AI searching / movement
    • AI now uses room boundaries to avoid chasing forever through hallways.
    • Enemies can be limited to their own room class.
    • Corridor/hallway behavior was added so hallway enemies can behave differently from room enemies.
    • Added per-enemy Sight Range through the ENM7 format.
    • Enemies no longer rely only on the old hardcoded detection range.
    • Default sight ranges:
      • Grunt: 13
      • Captain: 16
      • Boss: 20
    • Sight range is clamped to a maximum of 40.
    • AI still respects line-of-sight checks.
    • AI still respects room boundaries.
    • Captain/boss-style AI has stronger detection behavior than basic grunts.
    • Enemy runtime speed now respects the saved Speed % attribute.
    • Added improved stopping distance/personal-space behavior.
    • Enemies should stop within their attack range instead of walking directly into the player.
    • Ranged enemies try to maintain more distance than melee enemies.
    • Enemy spacing is now affected by size/hitbox radius.
    • Cramming/clipping around the player should be reduced.
  • Enemy and boss customization
    • Enemy metadata was upgraded to ENM7.
    • Added per-enemy:
      • HP
      • Attack
      • Speed %
      • Size %
      • Text speed
      • Color
      • AI rank
      • Ranged attack toggle
      • Melee/attack range
      • Attack cooldown
      • Spawn limit
      • Spawn type
      • Spawn cooldown
      • Sight range
      • Command range
      • Projectile color
      • Projectile style
      • Projectile animation toggle
      • 16x16 enemy sprite
      • 32x32 boss sprite
      • Player max HP from the enemy editor
    • Bosses can now:
      • Use custom 32x32 art.
      • Use custom projectile visuals.
      • Use animated projectiles.
      • Summon enemies or disable summoning entirely.
      • Set summon cooldown.
      • Set summon limit.
      • Use custom speed and size.
      • Use custom sight range.
    • Summoned minions were fixed:
      • They now receive a visible 16x16 sprite mask.
      • They now inherit usable AI defaults.
      • They should no longer spawn invisible.
    • Secret/no-summon bosses are now possible using spawn_kind = AI_SPAWN_NONE.
  • Combat / weapons / slash system
    • Weapons are now stored per save through the WEP3 chunk.
    • Each save can customize up to 8 weapons.
    • Per-weapon fields:
      • Name
      • Damage
      • Range
      • Cooldown
      • Color
      • 8x8 icon/sprite
    • Slash behavior now follows weapon data more closely.
    • Weapon slash color/timing can differ per weapon.
    • NPC rewards can give custom weapons by using REWARD_WEAPON_BASE + weapon_index.
    • Weapon customization is saved with the level instead of being purely hardcoded.
  • Damage feedback / screen shake
    • Added a Screen Shake setting.
    • When enabled, taking damage triggers a short screen shake.
    • Screen shake is saved in the app settings config as SHAKE.
    • Screen shake can be disabled from the settings menu.
    • If disabled, the shake timer is reset to zero.
  • Save format / compatibility
    • New saves write magic BW4.
    • BWL4 keeps the compact tile RLE stream from BW2/BW3.
    • BWL4 adds optional chunks after the tile stream.
    • Current BWL4 chunks:
      • ROM4
      • WLD5
      • NPC5
      • ENM7
      • WEP3
      • END!
    • The BWL4 loader still supports:
      • BWL1
      • BW2
      • BW3
      • BW4
    • Older chunk versions are still parsed where supported:
      • NPCSNPC3NPC4NPC5
      • ENMSENM2ENM3ENM4ENM5ENM6ENM7
      • WEAPWEP2WEP3
    • When older saves lack newer data, defaults are generated.
    • Important: the encoder function is still named encode_bwl2_memory() in the source, but it now writes BW4. That function name is legacy.

v0.7.0

  • Added editable weapon expansion:
    • Weapons can now be named individually.
    • Weapon slots were expanded.
    • Weapon icons are shown on the bottom-screen HUD.
    • Current weapon icon bounces inside its HUD box when attacking.
  • Added player health support:
    • Player max health can be set by the editor.
    • Player health is shown on the bottom screen.
    • Players are no longer instantly killed by enemies.
    • High enemy damage is capped so it does not instantly erase full health.
  • Added death screen behavior:
    • When player health reaches 0, the game shows a death screen.
    • Death screen displays who killed the player.
    • Player no longer instantly respawns after dying.
    • Pressing A retries from the level start.
  • Added boss projectile behavior:
    • Normal enemies no longer use ranged attacks.
    • Bosses can fire visible arrow projectiles.
    • Boss arrows can damage or kill the player.
    • Boss arrow deaths show BOSS ARROW on the death screen.
  • Expanded enemy and NPC art:
    • Normal enemies now use 16×16 artwork.
    • NPCs now use 16×16 artwork.
    • Bosses now use 32×32 artwork.
    • Older NPC art can be upgraded from 8×8 to 16×16.
    • NPC and enemy EDIT ART buttons now open the correct individual sprite editor.
    • New NPCs and enemies get default editable 16×16 art.
  • Added enemy stat customization:
    • Enemies can have editable speed.
    • Enemies can have editable size.
    • Enemies can have editable text speed.
    • Enemy size affects rendering and shadows.
    • Bosses remain larger than normal enemies, but no longer comically huge.
  • Added text typing options:
    • NPC/enemy text can use instant, slow, medium, or fast typing.
    • Text now wraps instead of cutting off early.
    • Longer NPC/enemy text is supported.
    • NPC text no longer disappears on a timer.
    • NPC text stays visible until the player walks away.
  • Added bottom-screen RPG HUD:
    • Shows health.
    • Shows coins.
    • Shows keys/items.
    • Shows score.
    • Shows current weapon name.
    • Shows current weapon damage.
    • Shows current weapon icon.
    • Shows owned weapon icons.
    • Shows acquired quest list.
    • Shows enemy kill count and mission progress.
  • Improved shadows:
    • Shadows were added under coins, keys, weapons, health pickups, NPCs, enemies, and bosses.
    • Shadows now scale with sprite/entity size.
    • Shadows now use visible sprite bounds instead of invisible transparent pixels.
    • Shadows are drawn more like ground decals.
    • Shadows are dithered/transparent-looking instead of solid black.
    • Shadows are slightly larger than the visible sprite width.
    • Shadows no longer follow text labels.
  • Improved sprite rendering:
    • Transparent sprite pixels are ignored for shadow bounds.
    • Invisible side pixels no longer make shadows too wide.
    • Sprite perspective scaling was restored so far entities look smaller and close entities look larger again.
    • The bad “all entities are the same huge size” behavior was reverted.
  • Added enemy range feedback:
    • Enemies get a slight hue/tint when they are inside the player’s current weapon range.
    • This makes it easier to tell when an attack can connect.
  • Added save restriction fix:
    • L + Y save is disabled globally.
    • Players cannot save level/game state during Play or Editor using L + Y.
  • Added new save/load data:
    • Newer chunks support expanded NPC art, enemy art, player health, weapon names, enemy stats, and text-speed settings.
    • Older save chunks still load where possible.

v0.6.0

  • Input / Editor Fixes
    • Y button reload/reset bug fixed
      • Plain Y no longer reloads the level and resets the player position.
      • L + Y can still be used for saving.
    • Editor safety fix
      • START only saves/exits when the player is on the main editor screen.
      • If the player is inside NPC, enemy, weapon, or sprite editor screens, it now tells them to press B to back out first.
  • NPC Improvements
    • NPC text improvements
      • NPC text was moved lower so it does not float too high above the character.
      • NEAR NPC text range was increased significantly, around 3x farther.
      • NPC interaction/select distance was relaxed so talking to NPCs is easier.
  • Sprite / Rendering Fixes
    • Sprite visibility/depth fixes
      • Items, NPCs, enemies, and pickups now use better depth handling.
      • Transparent parts of coins/items no longer block enemies behind them.
      • Sprites no longer render as thin vertical lines.
      • Closer sprites are prioritized so far sprites do not draw over near ones.
      • Items, NPCs, and enemies are more visible when they are actually in front of the player.
    • Jump anchoring fix
      • Enemies, NPCs, coins, and keys no longer follow the camera when the player jumps.
      • They now stay anchored in world space.
    • Floating pickups
      • Coins and keys now float around eye-level like classic pickups.
      • They still stay world-anchored and do not move with the player’s jump.
    • Platform visibility fixes
      • Platforms no longer block sprites behind their invisible/full-column area.
      • Platforms were adjusted so walls behind platforms can render better instead of the platform behaving like a full wall.
    • Crosshair added
      • A center crosshair was added to the top screen.
  • Combat Feedback
    • Enemy hit/death feedback
      • Enemies wiggle when hit.
      • Enemies squish when dying.
      • Dead enemies disappear after the death/squish animation.
      • Enemy health is always visible when enemies are rendered.
    • Slash effect added/improved
      • Attacking now shows a slash effect.
      • The slash effect was changed from a moving streak into a centered slash motion.
      • Added 3 slash variants.
      • Slash types cycle so the same slash should not be used twice in a row.
      • Crosshair stays centered and draws cleanly over/after the slash effect.
  • Success / Results System
    • Success tile changed
      • Success tile is now a floor trigger instead of a vertical billboard.
      • Walking onto it opens a results screen.
      • Results show:
        • Score
        • Enemies killed
        • Coins banked
        • Missions completed
        • Overall percentage out of 100%
  • Performance Improvements
    • Render culling / visibility budget
      • Far-away items, NPCs, and enemies can be skipped instead of everything rendering every frame.
      • Things behind the player can be skipped.
      • A render budget/culling approach was added for busy maps.
    • AI throttling
      • Far-away AI can update less often to reduce stutter.
      • This helps larger maps with lots of enemies, NPCs, and pickups.
    • Pickup stutter reduction direction
      • Pickups are intended to mark themselves inactive and update state without forcing heavy immediate save/recount behavior.
      • Saves should generally happen on manual save, leaving the level, returning to menu, or timed autosave rather than every pickup.
  • Boss Entities / AI Hierarchy
    • Boss entities added
      • New boss entity support.
      • Bosses can use larger 14x14 sprites.
      • Bosses can have ranged attacks.
      • Bosses can command and/or spawn simpler AI/minions.
    • AI hierarchy added
      • AI can now be categorized/customized as:
        • GRUNT
        • CAPTAIN
        • BOSS
      • Enemy editor exposes hierarchy/boss fields.
      • New ENM4 save/load chunk added for expanded enemy data.
      • Older enemy formats still load.
  • Demo Maps
    • Locked Tower story demo
      • Larger integrated story/tutorial level.
      • Includes hub, quests, rewards, enemies, boss path, ending hall, and success/results tile.
    • King Tower hierarchy demo
      • Uses the AI hierarchy and boss systems.
      • Includes grunts, captains, and a detailed Wall King boss.
      • Boss has more detailed dialogue, a larger sprite, minion spawning/command behavior, and ranged attack support.
      • Includes unique NPC/enemy sprites, quests, keys, doors, rewards, story flow, and an ending/results sequence.

v0.5.0

  • Add Missions, NPCs, Sprites (Custom per-world), Weapons, Story/Text System.
  • Customizable Weapons
  • Customizable NPCs
  • Customizable AI/Enemies.
  • Download the DEMO.zip and extract it to the root of the ./3ds/ folder like you would try and install 3DCaster.3dsx

v0.4.0

  • New Tiles: Door, Key, Dots (Coins).
  • Use keys for doors, dots are points.
  • Improved AI Intelligence Slightly.

v0.3.0

  • New "Game-Mode" called 'Random' which generates a random maze-like map with enemies and AI.
  • Debug Mode in Settings for Developers.
  • New Tiles/AI Functions:
1–6 = solid full walls
7 = platform / raised ledge
C = enemy spawn marker
D = exit / success marker
8, 9, A, B, E, F = currently placeholders

v0.2.0

  • Added a "Settings" Tab, you can toggle between the following:
    • Simple Anti-Aliasing
    • "Fast Renderer" should increase performance on O3DS Consoles.
    • Simple 3D-Stereo Support.
    • Viewbobbing.
    • Level Depth Adjusting.
    • FOV Adjusting.
    • Depth of Field (Fade, Distance, Start)
  • C-Stick now Controls the Camera if played on a N3DS Console.
  • Touch-Screen now also controls the Camera (Not available in Editor for obv. reasons).
  • Map-Zooming/Panning while editing levels, for easier creation of "levels".
  • Map zooms in depending on sizing of the created "level".

v0.1.0

  • Selector Screen for Level/Map.
  • Backup(s).
  • Simple Controls (R+L to pan camera, Circle PAD to Move, B to Sprint, A to Jump).
  • Simple World Editing, Resizing, Duplicating, etc).

External links

Advertising: