Stefan Profile Banner
Stefan Profile
Stefan

@schteppe

Followers
2,992
Following
1,734
Media
638
Statuses
7,402

Senior software engineer @StarStable . C++, physics, Jelly Mario, p2.js, cannon.js

Boden, Sverige
Joined March 2009
Don't wanna be here? Send us removal request.
Explore trending content on Musk Viewer
@schteppe
Stefan
7 years
Music is now distorted by player movement! Listen! #webgl #gpgpu #gamedev #jellymario
121
2K
7K
@schteppe
Stefan
7 years
Jumping
89
2K
6K
@schteppe
Stefan
7 years
29
1K
2K
@schteppe
Stefan
6 months
Rust: Rustaceans Python: Pythonistas Go: Gophers C: Criminals
22
214
2K
@schteppe
Stefan
5 years
A space exploration game, where you discover that outer space is too far from the origin, and you start getting float32 precision problems
45
245
1K
@schteppe
Stefan
6 years
First part of level 1-2 is now available on ! #jellymario #webgl #gamedev #indiedev #pixelart
23
306
892
@schteppe
Stefan
7 years
Turning off gravity for everything but mario + enemies seems to work well! Just got to anchor those floating boxes :) #gamedev #webgl #jellymario
17
277
843
@schteppe
Stefan
7 years
Touching goombas is bad for you. #gamedev #webgl
8
254
647
@schteppe
Stefan
4 years
Geometry images: vertex positions and normals are stored in textures. Image compression can be used to store them, and they can be sampled at different (mipmap) levels to get different triangle counts
Tweet media one
7
107
568
@schteppe
Stefan
7 years
WebGL 1 doesn't have bitwise operators, required for collision masks... I ended up using a rather primitive but fast collision filter: dot(particleA.filterVec,particleB.filterVec)>0.
8
100
369
@schteppe
Stefan
7 years
You should probably cut down on your mushrooms, Mario... #gamedev #webgl #gpgpu #threejs
2
115
365
@schteppe
Stefan
7 years
Physics makes everything better. #webgl #threejs #gpgpu #pixelart
5
105
342
@schteppe
Stefan
7 years
You can now try an early version of Jelly Mario at ! #jellymario #webgl #gpgpu #gamedev
48
132
316
@schteppe
Stefan
7 years
GPU accelerated rigid body physics in #WebGL / #threejs ! Live demo: Github:
Tweet media one
11
105
292
@schteppe
Stefan
7 years
8
79
240
@schteppe
Stefan
7 years
Something is wrong in Mushroom Kingdom today... #gpgpu #threejs #webgl
4
44
234
@schteppe
Stefan
7 years
5
99
197
@schteppe
Stefan
6 years
Jelly Piranha Plants - scarier than the original... #jellymario #webgl #gamedev #indiedev
4
74
171
@schteppe
Stefan
3 years
@jaroso78_11 Generic cup
Tweet media one
1
35
160
@schteppe
Stefan
7 years
Occlusion culling: "Don't render stuff hidden behind other stuff". #webgl #javascript
3
29
146
@schteppe
Stefan
7 years
Title screen
5
30
132
@schteppe
Stefan
6 years
12
29
114
@schteppe
Stefan
7 years
5
36
106
@schteppe
Stefan
7 years
6
19
104
@schteppe
Stefan
6 years
The castle level is now available on ! #jellymario #webgl
6
20
92
@schteppe
Stefan
6 years
Trying to make Bowser jump 😂 #jellymario #gamedev
2
14
81
@schteppe
Stefan
6 years
A list of NPM / Node.js packages is scrolling in the background as the news reporter is trying to explain what a Twitter bot is.
Tweet media one
3
9
78
@schteppe
Stefan
7 years
Too much gummy money
2
28
78
@schteppe
Stefan
6 years
It's finally possible to make Bowser fall down into the lava. #jellymario #webgl #gamedev
3
10
76
@schteppe
Stefan
9 years
Tweet media one
0
31
74
@schteppe
Stefan
7 years
Cutting
3
9
74
@schteppe
Stefan
7 years
2
34
63
@schteppe
Stefan
6 months
@brain_nullptr brainf*ck: f*ckers Assembly: asses C++: Criminals++
3
5
71
@schteppe
Stefan
4 months
@techsavvytravvy Code that has been battletested in 1000 apps probably has less bugs than code that has been used in 0
2
1
65
@schteppe
Stefan
7 years
Goomba squash fail #gamedev
2
18
62
@schteppe
Stefan
6 years
Oops
2
3
59
@schteppe
Stefan
6 years
Jelly platforms
4
10
57
@schteppe
Stefan
1 year
@olafurw “Pi is an infinite, nonrepeating decimal - meaning that every possible number combination exists somewhere in pi.” Does this mean that photoshop.exe exists in pi? Is pi illegal?
7
3
62
@schteppe
Stefan
6 years
Tweet media one
3
7
55
@schteppe
Stefan
1 year
-fbounds-safety: Runtime & compile time bounds checks for C code in LLVM. Low overhead makes it possible to ship checks to users. This tackles one of the biggest causes of vulnerabilities in software today. This is huge!
3
9
56
@schteppe
Stefan
6 years
Adding a self destruct button. Not only helpful when you get stuck: it's fun just blowing things up :) #webgl #html5 #gpgpu #gamedev #pixelart #jellymario
2
12
50
@schteppe
Stefan
7 years
Keep on rolling
3
10
46
@schteppe
Stefan
7 years
Level start screen
2
10
51
@schteppe
Stefan
6 months
@MyzaRed It's just a spinoff joke on the current "C is illegal" meme
@m1guelpf
Miguel Piedrafita ✨
7 months
C is now illegal
214
1K
9K
1
2
46
@schteppe
Stefan
6 years
Cool thing about predictive contacts: they don't break during violent movement, like discrete collision does. #physics #gamedev
2
3
44
@schteppe
Stefan
3 months
Tweet media one
2
2
46
@schteppe
Stefan
6 years
I think there are too few physics engines in the world, so I'm making a new one with springs and speculative contacts
3
2
43
@schteppe
Stefan
6 years
Jelly Tetris. #gamedev #webgl
3
2
42
@schteppe
Stefan
6 years
Compute shaders are cool
Tweet media one
3
4
38
@schteppe
Stefan
7 years
The C++ Lands, Its Amazing Creatures & Weird Beasts
Tweet media one
3
22
40
@schteppe
Stefan
6 years
Quack Overflow 😂 #AprilFools #Programming
2
4
40
@schteppe
Stefan
12 years
Cannon.js + Three.js first person shooter test http://t.co/dvmBXlkF
8
38
39
@schteppe
Stefan
5 years
To solve the floating point precision problem in open world games: Divide world into cells. When the player changes cell, move the world so the current cell is at (0,0,0). Physics and rendering is performed relative to the current cell origin.
4
2
35
@schteppe
Stefan
6 years
@akfamilyhomeak JELLY MARIO
0
1
32
@schteppe
Stefan
11 years
p2.js is my 2D physics engine. I just released v0.1 with live docs and new demos rendered with Pixi.js http://t.co/H0BaGNiNXl
1
21
35
@schteppe
Stefan
5 months
I wrote that null pointer dereferencing is a problem in C++, on Reddit, and got downvoted to oblivion. Why?
14
0
33
@schteppe
Stefan
9 years
2
22
28
@schteppe
Stefan
7 years
16384 particles @ 60fps
2
5
29
@schteppe
Stefan
5 years
When using double precision, similar things happen at the same distance from the origin. I guess this means HTML5 canvas is using single precision floats under the hood
3
2
28
@schteppe
Stefan
11 years
Cannon.js mouse pick demo http://t.co/SCT1obO5w9 @mrdoob
2
8
27
@schteppe
Stefan
5 years
gmake cmake nmake qmake There can only be 26 different make commands following this pattern! Claim one before we run out of letters
7
4
27
@schteppe
Stefan
7 years
Lazy weekend coding: WebGL ray marching
0
1
24
@schteppe
Stefan
6 years
The jelly square of success
1
0
24
@schteppe
Stefan
6 years
Trying out WebGL in C++ compiled to WebAssembly
0
3
26
@schteppe
Stefan
5 years
@TylerGlaiel It’s even better in VSCode
1
1
26
@schteppe
Stefan
7 years
1
3
26
@schteppe
Stefan
11 years
p2.js v0.2: Friction, more shape types, faster broadphase... See demos (and try mouse picking): http://t.co/H0BaGNiNXl #javascript #physics
2
17
24
@schteppe
Stefan
9 days
-Wall -Wextra -Werror The world would be a better place if the above compiler flags were enabled by default
4
2
35
@schteppe
Stefan
10 months
Rust dev watching C++ devs work
@HumansNoContext
NO CONTEXT HUMANS
10 months
1K
32K
245K
0
0
24
@schteppe
Stefan
5 years
My first Rust reactions (coming from C++): const by default 👌 Implicitly “auto” everywhere 😍 No null pointers 🤯 Can’t have 2 mutable refs to same value 🤔👍 Use after move = compile error 👍 Built in style checker 👍 Modules & package manager 📦❤️
2
5
24
@schteppe
Stefan
5 years
10x engineer in action
2
0
24
@schteppe
Stefan
6 years
0
4
24
@schteppe
Stefan
7 years
I need to do something about those pipes :P #webgl #gpgpu #threejs #gamedev
Tweet media one
2
1
21
@schteppe
Stefan
6 years
Same
Tweet media one
0
1
20
@schteppe
Stefan
7 years
2048 boxes
1
1
22
@schteppe
Stefan
7 years
Shadow direction fail. #AppleEvent #ARKit
Tweet media one
2
4
20
@schteppe
Stefan
4 years
@incomputable Use the standard format: YYYY-MM-DD Using slashes is a bad idea: doesn’t work well for file names
0
0
23
@schteppe
Stefan
5 years
if(value == 42){ ... } - boring - predictable if(42 == value){ ... } - can’t accidentally use assignment - stands out - Yoda approves #programming
3
2
23
@schteppe
Stefan
5 years
Q: What does SSO mean? Average person: Single Sign On C++ programmer: Small String Optimization Me: That’s the game I’m working on, Star Stable Online
1
1
21
@schteppe
Stefan
5 years
This line of code may look innocent: x = lerp(x, target, deltaTime) But this is what happens when the framerate gets low! It overshoots. Switch to a framerate independent version before it's too late! Code:
0
1
22
@schteppe
Stefan
4 months
@ImLunaHey Yep. And they slow down code reviews. They can’t see issues that a linter would highlight, so humans have to point them out while reviewing instead
0
0
22
@schteppe
Stefan
8 years
State of mobile web? (screen %) 20% UI 20% cookie consent 20% related content 20% ads 20% "download app" 0% content
Tweet media one
1
32
22
@schteppe
Stefan
6 years
Fixing bugs and adding some test cases to poly-decomp.js. The library is for decomposing a concave 2D polygon into convex polygons.
1
3
21
@schteppe
Stefan
5 years
Precision problem solved! I went with the cell based solution. Space is divided in NxN cells. Simulation + rendering happens locally in each cell, which is 1x1 km. I can now start exploring the solar system! For reference, the Earth-Sun distance is about 10^11 m.
2
1
21
@schteppe
Stefan
7 years
Using the broadphase grid texture to accelerate SDF metaball rendering. #webgl #threejs
Tweet media one
2
1
20
@schteppe
Stefan
7 months
Programming is a process of discovery. One step reveals the next. This is why it’s very difficult (impossible?) to make time estimates in software dev
2
7
21
@schteppe
Stefan
7 years
Particles within the "broadphase collision box" will collide. On the GPU, it's a texture containing ID's of particles in each cell.
1
1
20
@schteppe
Stefan
3 years
Guard clauses: Return early for the unusual cases. Emphasizes the happy path, removes nesting (and sometimes mutable variables too!). Error cases are placed closer to their corresponding checks. #refactoring #programming
Tweet media one
1
2
20
@schteppe
Stefan
12 years
Streaming physics from server to Three.js http://t.co/2e04auKb #threejs
1
22
20
@schteppe
Stefan
11 years
While investigating the @Spotify music visualizer I find Three.js in there! #threejs #webgl #javscript @mrdoob http://t.co/uu7IXJVQku
Tweet media one
1
10
19
@schteppe
Stefan
7 years
Dynamic update of individual body properties (position, rotation, velocity, mass)
0
2
19
@schteppe
Stefan
8 years
Wingmod: 2.5D browser-based shooter #threejs #p2js #webgl
Tweet media one
0
8
18
@schteppe
Stefan
11 years
p2.js v0.4: PrismaticConstraint, RevoluteConstraint limits, and more. Check out this cool ragdoll demo: http://t.co/1ZdpDuoy3o #javascript
2
10
19
@schteppe
Stefan
10 years
Tweet media one
0
7
17
@schteppe
Stefan
5 months
@AstraKernel I guess my takeaway is to never use Python.
0
0
19