IronHollow
Founded in 2013 and part of ETAPX since 2021, IronHollow Studios is a game studio based in Concord, CA, building premium playable worlds and the BlackFrost Engine that powers them.
Company Profile
The mission was to make ambitious game creation faster, fairer, and open to every person with a vision but no experience in creating it.
Concord, CA / Bay Area
IronHollow Studios is the professional game studio and team behind the BlackFrost Engine. From a two-person garage start in 2013 to an ETAPX studio in 2021, it exists to turn ambitious world ideas into polished, playable entertainment.
Studio Thesis
IronHollow exists to prove the BlackFrost Engine in production: cinematic worlds, native performance, AI-assisted development, and a real path for creators who have the idea before they have the studio.
The framework we built,
for our engine.
source/gameplay/player_controller.ocs
101use ocsidian.scene2use ocsidian.input3use ocsidian.physics4use ocsidian.net5use game.combat6702component PlayerController extends OcsCharacter8{9 @export var walk_speed: f32 = 6.010 @export var sprint_speed: f32 = 10.511 @export var jump_force: f32 = 8.212 @export var gravity: f32 = 24.013 @export var aim_turn_rate: f32 = 14.0141503 var velocity: Vec3 = Vec3.zero16 var stamina: f32 = 100.017 var camera: NodeRef<SpringArm>18 var inventory: Inventory19 var ability_queue: AbilityQueue2021 fn ready()22 {23 camera = find<SpringArm>("CameraRig")24 inventory = Inventory.load_for(owner_id)25 ability_queue = AbilityQueue.new(owner_id)26 Net.replicate(self, fields: ["velocity", "stamina"])27 }282904 fn tick(delta: f32)30 {31 let move_axis = Input.vector(32 "move_left",33 "move_right",34 "move_forward",35 "move_back"36 )37 let wants_sprint = Input.held("sprint") && stamina > 4.038 let speed = wants_sprint ? sprint_speed : walk_speed3940 var direction = camera.basis.forward_flat() * move_axis.y41 direction += camera.basis.right_flat() * move_axis.x42 direction = direction.normalized_or_zero()4344 velocity.xz = direction.xz * speed4505 velocity.y -= gravity * delta4647 if is_on_floor() && Input.just_pressed("jump") {48 velocity.y = jump_force49 emit_signal("player_jumped", owner_id)50 }5152 if wants_sprint {53 stamina = max(stamina - 18.0 * delta, 0.0)54 } else {55 stamina = min(stamina + 10.0 * delta, 100.0)56 }5758 move_and_slide(velocity)59 update_animation_state(direction, wants_sprint)606106 if Input.just_pressed("cast_primary") {62 ability_queue.cast(63 "flare_burst",64 target_from_reticle()65 )66 }67 }68}
Modules are explicit
Ocside turns intent into engine code.
The demo source is annotated with hover pointers so the framework rules stay visible while the code moves.
Creation Loop
IronHollow uses Ocsidian to take bold concepts to high-quality playable games at 10x the speed of traditional production loops.




Built for the market
We do the hard work.
You ship the vision.
Ocsidian hides the complexity behind a clean Mac-first interface, so founders, artists, and non-developers can develop, play, and ship high-quality game ideas without getting buried in engine work.



