Toggle menu
Toggle preferences menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.
The main server is currently down. We are running on a backup server, so editing and search functionality are temporarily disabled. Please check back in a few hours.
Revision as of 03:27, 26 June 2026 by HydeWing (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
3DCaster
General
AuthorCracko298
TypeGame Engine
Version0.9.0 Pre-Release
LicenseMIT License
Last Updated2026/06/23
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 - Quest interaction, Open/Close door

Start - Back to level select

Screenshots

3DCaster3DS3.png 3DCaster3DS2.png

3DCaster3DS4.png 3DCaster3DS5.png

3DCaster3DS6.png 3DCaster3DS7.png

Changelog

v0.9.0

  • Wall / Floor / Door Texture System
    • Added per-wall texture IDs.
    • Added per-floor texture IDs.
    • Added per-door texture IDs.
    • Added support for assigning a unique texture/style to different door types.
    • Added wall/floor/door texture data to showcase maps.
    • Floor texture data can exist in the map without forcing the floor to visually change every time the player enters a new room.
  • Door System
    • Added expanded door metadata through DTX1.
    • Added grouped doors.
      • Up to 3 door tiles can act as one door.
      • Useful for wider gates while keeping doors as true 1x1 tiles.
    • Added door movement directions:
      • up
      • down
      • left
      • right
    • Added door speeds:
      • slow
      • medium
      • fast
    • Added automatic proximity doors.
      • Open when the player gets close.
    • Added key doors.
      • Require a key before opening.
    • Added toggle doors.
      • Open or close when the player presses SELECT near the door.
    • Added switch/pressure doors.
      • Open only while the switch/pressure condition is active.
    • Added showcase support for:
      • automatic 3-door gate
      • key 3-door gate
      • toggle 3-door gate
      • switch/pressure 3-door gate
  • NPC Animation System
    • Added per-NPC animation support.
    • Added NPC animation states:
      • idle
      • talking
      • quest complete
    • Each NPC animation state can contain up to 3 frames.
    • NPC animations can be enabled or disabled per NPC.
    • NPC animation speeds:
      • off
      • slow
      • medium
      • fast
    • NPC animations are off by default unless enabled.
    • Added animation preview/editing support for NPC animation frames.
    • Added support for showing the selected NPC animation state/frame in the bottom-screen editor.
  • Enemy Animation System
    • Added per-enemy animation support.
    • Added enemy animation states:
      • idle
      • moving
      • attacking
      • shooting
    • Each enemy animation state can contain up to 3 frames.
    • Enemy animations can be enabled or disabled per enemy.
    • Enemy animation speeds:
      • off
      • slow
      • medium
      • fast
    • Enemy animations are off by default unless enabled.
    • Added animation preview/editing support for enemy animation frames.
    • Added support for showing the selected enemy animation state/frame in the bottom-screen editor.
  • NPC Interaction Changes
    • NPC dialogue now appears automatically when the player is close.
    • NPC dialogue continues typing until complete.
    • NPC dialogue stays visible while the player remains near.
    • NPC dialogue disappears only when the player walks away.
    • Pressing SELECT near an NPC is now reserved for quest interaction.
    • Pressing SELECT no longer restarts normal nearby dialogue.
    • Added quest interaction feedback:
      • QUEST COMPLETE - REWARD DROPPED
      • QUEST ALREADY COMPLETE
      • requirement/status text when the quest is not ready
    • NPC talking animations are based on being near/talking instead of repeated SELECT presses.
  • Boss / Minion Changes
    • Boss-spawned minions are smaller than normal enemies.
    • Boss minions can randomly borrow art/color from enemies already placed in the level.
    • Boss minions do not inherit the original enemy's stats.
    • Boss minions keep their own simpler behavior while visually matching the level's enemy set.
  • Projectile Visuals
    • Added projectile shadows.
    • Boss projectiles now visually match the grounded sprite/shadow style better.
  • Editor Refactor
    • Added new source file: source/editor.c
    • Moved bottom-screen editor rendering into editor.c.
    • Moved sprite/art/animation editor rendering into editor.c.
    • Kept main raycast/3D rendering in renderer.c.
    • Reduced bottom-screen editor clutter inside renderer.c.
    • Added editor rendering support for animation frames:
      • NPC animation frame preview
      • enemy animation frame preview
      • animation state display
      • animation frame display
  • Frozen Editor Preview
    • Added frozen 3D editor preview objects.
    • NPCs can be seen in the 3D view while editing.
    • Enemies can be seen in the 3D view while editing.
    • Coins/keys/pickups can be seen in the 3D view while editing.
    • Doors can be seen in the 3D view while editing.
    • Success markers can be seen in the 3D view while editing.
    • Preview objects are not interactable in editor mode.
    • Enemy AI does not run in editor mode.
    • Enemies do not chase or attack in editor mode.
    • Pickups are not collected in editor mode.
    • Doors do not auto-open from proximity in editor mode.
    • NPC/enemy dialogue does not pop up in editor mode.
    • Animation preview frames stay frozen while editing.
  • BWL Format Additions
    • Added WTX1 wall texture chunk.
      • Stores wall texture IDs per tile.
      • Allows wall texture styling on a per-wall/per-tile basis.
    • Added FTX1 floor texture chunk.
      • Stores floor texture IDs per tile.
      • Allows floor texture metadata to exist in the BWL file.
    • Added DTX1 door metadata chunk.
      • Stores extra door behavior separate from the base tile map.
      • Supports per-door texture IDs.
      • Supports door grouping.
      • Supports door type.
      • Supports door speed.
      • Supports door movement direction.
    • Added NANM version 1 NPC animation chunk.
      • Stored as the 4-byte tag NANM plus version byte 1.
      • Stores per-NPC animation data.
    • Added EANM version 1 enemy animation chunk.
      • Stored as the 4-byte tag EANM plus version byte 1.
      • Stores per-enemy animation data.

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: