John Campbell's Avatar

John Campbell

@daddygame.dev

Technical Director @triangularpixels.com #gamedev #indiedev daddygame.dev

1,609
Followers
238
Following
42
Posts
20.08.2024
Joined
Posts Following

Latest posts by John Campbell @daddygame.dev

The Steam Awards - with Unseen Diplomacy 2 being nominated for each of them

The Steam Awards - with Unseen Diplomacy 2 being nominated for each of them

It'll be lovely if you could ;)
#SteamAwards

28.11.2025 11:33 ๐Ÿ‘ 4 ๐Ÿ” 1 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

Looks interesting! I feel there's definitely space for a "p4-like-for-games" for smaller teams where the P4 license is a bit too pricey.

27.11.2025 12:01 ๐Ÿ‘ 3 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0
Preview
Triangular Pixels highlights accessibility features of Unseen Diplomacy 2 - Can I Play That? Triangular Pixels recently highlighted accessibility features in their VR title Unseen Diplomacy 2, which is currently in early access.

Developer @triangularpixels.com highlighted accessibility features of their VR title Unseen Diplomacy 2, currently in early access.

It includes features to more comfortably play with limited mobility, or with cognitive, audio, and visual accessibility needs.

caniplaythat.com/2025/11/04/t...

04.11.2025 14:47 ๐Ÿ‘ 7 ๐Ÿ” 6 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0
Video thumbnail

๐Ÿ•ต๏ธ Agents, your next update is live.
Patch v0.2 brings smoother movement, smarter training, and more edible objects (yes, really).
Report to HQ - itโ€™s time to move. ๐Ÿ”—https://unseendiplomacy2.com๐Ÿ”— #GamingCommunity #IndieGame #IndieDev #NewGame #WishlistWednesday #gamerlife #vrgaming

22.10.2025 16:53 ๐Ÿ‘ 7 ๐Ÿ” 5 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

And... out now! Super happy to get this into Early Access where people can actually play it after being under wraps for so long.

25.09.2025 20:16 ๐Ÿ‘ 2 ๐Ÿ” 1 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

This has easily been the longest project I've been working on - I am properly excited to actually get it out into the wild and onto player's faces. :)

19.09.2025 13:31 ๐Ÿ‘ 5 ๐Ÿ” 1 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

XR_EXT_render_model was the one that caught my eye earlier! Looking forward to chucking out a bunch of api-specific code next project. :)

06.08.2025 19:50 ๐Ÿ‘ 3 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0

I'm working on texture streaming right now, and the first thing I tried was hardware tile streaming with sampler feedback. And yes, the state of hardware streaming is very sad.
bsky.app/profile/fabr...

20.07.2025 19:46 ๐Ÿ‘ 15 ๐Ÿ” 1 ๐Ÿ’ฌ 2 ๐Ÿ“Œ 0

That's a Jerry Mouse run cycle! Maybe the 'Naruto run' should just be called the 'Reverse Jerry' instead...

15.07.2025 21:21 ๐Ÿ‘ 0 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0
Video thumbnail

I had fun times debugging why a computer terminal unit test was failing, and occasionally going to the wrong screen. Turns out an unrelated button was yeeting itself onto the keyboard mid-test about 50% of the time. And due to unit tests running at x100 speed, it's impossible to spot as it happens.

15.07.2025 10:13 ๐Ÿ‘ 5 ๐Ÿ” 1 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0
Lots of people in a room ready for a talk

Lots of people in a room ready for a talk

Very full room for @daddygame.dev 's talk about procedural level design in #UnseenDiplomacy2! Standing room only!
#developconf

08.07.2025 09:59 ๐Ÿ‘ 6 ๐Ÿ” 3 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

Keyring as uberkey, except for passwords, which are pure knowledge so you can just guess the number if you remember your last playthrough

Related - I love how comprehensive the log is; it captures *every* conversation and info screen read so you can always read back to find that password you forgot

30.06.2025 19:43 ๐Ÿ‘ 1 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0

The Steam Controller works *so* well for mouse-y things but in pad form. I played through the entirety of Stardew Valley with one before the game had pad support and it was great.

24.06.2025 10:05 ๐Ÿ‘ 2 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0
Video thumbnail

๐ŸŽ‰ Weโ€™re delighted to be part of the @womenledgames.com Showcase in partnership with #SummerGameFest! ๐Ÿ˜
We're showing #UnseenDiplomacy2 โ€” a spy VR game made by a woman-led team.
โžก๏ธhttps://unseendiplomacy2.comโฌ…๏ธ
๐Ÿงต(1/5)
#WLGS #IndieGames #MadeWithUnity #WomenInGames #VR

07.06.2025 17:10 ๐Ÿ‘ 10 ๐Ÿ” 7 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0
Video thumbnail

#PitchYaGame !
๐Ÿ•ต๏ธโ€โ™€๏ธThe Immersive Spy Simulator๐ŸŽฎ
#UnseenDiplomacy2 casts YOU at the spy to stop evil-doers ๐Ÿ’€
๐Ÿ’ชLeap into action and keep fit in a real-life #VR obstacle course around your real-world room.
Wishlist our #indiegame now! #MetaQuest #SteamVR
โžก๏ธhttps://unseendiplomacy2.com/ โฌ…๏ธ

06.06.2025 17:32 ๐Ÿ‘ 23 ๐Ÿ” 9 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0
Post image

Love this

05.06.2025 11:45 ๐Ÿ‘ 78 ๐Ÿ” 12 ๐Ÿ’ฌ 2 ๐Ÿ“Œ 0
Video thumbnail

Revealed! #UnseenDiplomacy2 !
The INCREDIBLE real-life #VR obstacle course in your living room
Wishlist and store links โžก๏ธ unseendiplomacy2.com
For #MetaQuest & #SteamVR
Follow us for more! #GameDev #IndieDev

27.05.2025 14:03 ๐Ÿ‘ 83 ๐Ÿ” 27 ๐Ÿ’ฌ 5 ๐Ÿ“Œ 10

I tend to think in terms of depth complexity / overdraw / fillrate, which is not strictly what those three items represent, but useful in terms of what I need to optimise or change.

There's also quad overdraw, but for mobile VR I find we're not pushing enough polys for that to be important.

09.05.2025 16:35 ๐Ÿ‘ 0 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0
An image of John Campbell from Triangular Pixels, highlighting their talk at Develop:Brighton titled "Constraints to Creativity: The Art and Science of Procedural Level Design"

An image of John Campbell from Triangular Pixels, highlighting their talk at Develop:Brighton titled "Constraints to Creativity: The Art and Science of Procedural Level Design"

We'll be joined this year by John Campbell (@daddygame.dev) from @TriangularPixels.com, who will be sharing a data-oriented method for procedural level designs that encourages collaboration, alongside providing insights into dealing with the complexity of a procedural system. #DevelopConf

24.04.2025 10:15 ๐Ÿ‘ 9 ๐Ÿ” 4 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0
Noodle Noise Official Logo

Noodle Noise Official Logo

Triangular Pixels welcomes @noodlenoiseaudio.bsky.social as our new Sound Designers for Unseen Diplomacy 2! Everyone here at the studio is excited to work with you all.

Make sure to give them a follow if you haven't already to see some of the great work they have done.

#Sound #GameDev #VR

03.04.2025 10:46 ๐Ÿ‘ 10 ๐Ÿ” 4 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

You can get cat collars with space for a slip of paper, then write a note explaining it's coming around and ask the owner to contact you and leave your phone number. I've done this previously and had an appreciative owner call me back. Plus you get to find out their real name!

27.03.2025 11:38 ๐Ÿ‘ 1 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

And by 'feature complete' I mean the APIs just have big holes in because either someone didn't think about backwards/forwards compatibility, didn't think anyone would ever want to query that thing, or wrapped everything up in a baby-proof-api and hid important details.

26.03.2025 11:05 ๐Ÿ‘ 3 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

The entire VR stack has been simultaneously overengineered, under-specified, fragmented and pseudo-consolidated that the early days of OpenVR feel like a breath of fresh air.

In our current project I've got an OpenVR, OVR and OpenXR backends, and OpenVR is the only sane, feature complete one.

26.03.2025 11:03 ๐Ÿ‘ 16 ๐Ÿ” 2 ๐Ÿ’ฌ 5 ๐Ÿ“Œ 0

This is one of those cases where I can't tell if the hoop-jumping to avoid branches actually comes out as an overall win, so something to benchmark later. In particular 'ceil' seems like a wildcard that could go either way, although Shader Playground suggests it's quite cheap.

13.02.2025 16:11 ๐Ÿ‘ 1 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0
float3 SelectPrimaryAxis(float3 worldNormal)
{
	worldNormal = abs(worldNormal);
	float largest = max(max(worldNormal.x, worldNormal.y), worldNormal.z);
	float epsilon = 0.00001;
	float3 offsetNormal = worldNormal - (largest-epsilon);
	return ceil(offsetNormal);
}

float3 SelectPrimaryAxis(float3 worldNormal) { worldNormal = abs(worldNormal); float largest = max(max(worldNormal.x, worldNormal.y), worldNormal.z); float epsilon = 0.00001; float3 offsetNormal = worldNormal - (largest-epsilon); return ceil(offsetNormal); }

An attempt at converting an arbitrary normal into a primary axis (for cubemap-alike operations) without branches. Pretty sure there's better ways of doing this but tricky to find online as I'm not sure what the 'proper' name for this op is.

13.02.2025 16:00 ๐Ÿ‘ 0 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0
Katie standing in the middle of a field near the sea while wearing a VR headset.

Katie standing in the middle of a field near the sea while wearing a VR headset.

Creative Director @mrsgame.dev had the exciting opportunity to chat with #BBC radio #Cornwall Katie shared how she broke into the #Games industry, what it was like setting up a new studio โ€˜Triangular Pixelsโ€™ and the origins of the #BAFTA nominated game Unseen Diplomacy
www.bbc.co.uk/sounds/play/...

27.01.2025 12:20 ๐Ÿ‘ 4 ๐Ÿ” 2 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

Come join us and make some noise!

21.01.2025 10:58 ๐Ÿ‘ 3 ๐Ÿ” 3 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0

We all have an emotional support dead famous guy and who he is says a lot about you.

10.01.2025 11:31 ๐Ÿ‘ 1 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 1

I had this a few times, and I blame a good portion of it on Meta's insistance on error messages being "Ooops! Something went wrong! Sowwery!" with zero actionable information. Hell even an opaque error code would be better. As-is, it encorages cargo-cult snake oil fixes to spread on the internet.

16.12.2024 09:49 ๐Ÿ‘ 0 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

I try to do it myself, but it's a really hard trick to pull off. You've got to be really sure your words stand on their own, and confident enough to just stand in silence without worrying about your audience switching off or thinking you've forgotten what you're saying next.

10.12.2024 14:54 ๐Ÿ‘ 0 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0