Noel Berry Profile Banner
Noel Berry Profile
Noel Berry

@NoelFB

36,182
Followers
1,060
Following
4
Media
741
Statuses

Sometimes when I'm in the right mood I make video games and art โ˜… Made Celeste & making Earthblade with friends. He/Him

Canada
Joined February 2009
Don't wanna be here? Send us removal request.
Pinned Tweet
@NoelFB
Noel Berry
10 months
I haven't been active here in a while. If you wanna follow me elsewhere check out the links on my website and if you need to reach me feel free to send me an email
0
1
38
@NoelFB
Noel Berry
3 months
We made a thing that was supposed to be a meme but we worked way too hard on it. You can play it on itch, and the source is on github!
@celeste_game
Celeste
3 months
Gear up for the Celeste 6th Anniversary Challenge! ๐Ÿ—ป Celeste 64: Fragments of the Mountain is here and you can play it on @itchio . ๐Ÿ‘‰
473
6K
23K
14
110
1K
@NoelFB
Noel Berry
7 months
few thoughts porting this thing from C++ to C#: - C# is WAY faster to compile. 4s for a clean Release build - C# binaries are larger & vary considerably (AOT? Including runtime? Trimming?) - I feel like on average C++ is faster but when taking screenshots just now C# was
Tweet media one
18
32
715
@NoelFB
Noel Berry
1 year
ban all cars in cities except this one
@rocketengine
rocketengine
1 year
Zagato Zele 1000
Tweet media one
Tweet media two
Tweet media three
Tweet media four
47
742
6K
11
19
339
@NoelFB
Noel Berry
26 days
OK I've been playing too much Balatro...... indie platformer recommendations? preferably ones I haven't definitely played? 2d or 3d, tiny or huge, whatever you liked recently?
164
5
308
@NoelFB
Noel Berry
18 days
every day I think "my day would be greatly improved by a 4 hour long video essay on on why Mario 64 has invisible wall bugs" and today delivered:
10
19
226
@NoelFB
Noel Berry
3 months
Also some people are getting virus/trojan warnings on Windows ... if anyone has experience with .NET 8 applications causing that I'd love some insight. Updated to latest (8.0.101) but some users still getting it.
@celeste_game
Celeste
3 months
Gear up for the Celeste 6th Anniversary Challenge! ๐Ÿ—ป Celeste 64: Fragments of the Mountain is here and you can play it on @itchio . ๐Ÿ‘‰
473
6K
23K
11
15
212
@NoelFB
Noel Berry
7 months
but my main point here is that C# is definitely 100% fast enough for anything I will ever need it to do. The C++ gains aren't a good trade off for me.
2
0
85
@NoelFB
Noel Berry
7 months
C# tooling is about 500x better than C++. "Find all References" just works, no matter what. Hot reloading works great. Renaming symbols works every time. And this is just in VSCode, I'm not even using the big VS.
2
2
75
@NoelFB
Noel Berry
7 months
in both C++ and C# I try very hard not to allocate on an average frame, but C# I take it a bit more seriously since the GC will collect it instead of me. Makes writing code a little more annoying sometimes, but in general C# is way nicer for me to write in on an average day.
5
0
62
@NoelFB
Noel Berry
7 months
framerate should be taken with a big grain of salt - just whatever it happened to be when I took a screenshot back to back. also C++ one is doing slightly more since I haven't ported everything (ex the HUD, plus that ImGui window being open)
2
0
58
@NoelFB
Noel Berry
25 days
@kuwiimii no i heard it's really bad
1
0
48
@NoelFB
Noel Berry
7 months
Libraries are better in C++. For C# I have to write a small native C library to handle various things that C# sucks at (SDL2 bindings, image loading, font loading, etc).
5
1
44
@NoelFB
Noel Berry
7 months
The portability of C# is worse. C++ will run anywhere. Want a web build? sure. want a console build? no prob. Entirely depends on your dependencies. C# runs on win/mac/linux no problem. Consoles ... it's getting better with NativeAOT? Very "cutting edge" still, but you can do it
4
1
42
@NoelFB
Noel Berry
3 months
@TesseractUnfold @celeste_game @itchio definitely not, unfortunately. It'd require quite a port.
1
0
40
@NoelFB
Noel Berry
15 days
Former Vancouver cop, now city councilor's reply to an organization that simply wants to reduce traffic deaths:
@BrianVMontague
Brian Montague
15 days
@VisionZeroYVR Very sad to see loss of life here. Also sad to see once again this group chooses to pick a fight and spread misinformation. This helps do nothing. You are making assumptions that r once again completely incorrect because you donโ€™t have the facts. Zero Credibility.
99
1
9
1
2
38
@NoelFB
Noel Berry
7 months
Anyway I'll try this again in a more intensive scene when I port more over. I feel like the C++ will become more obviously performant the heavier the CPU load is, but we'll see.
2
0
32
@NoelFB
Noel Berry
7 months
@NickGideo It has a small native C library to interop with SDL2, OpenGL, and do stuff like image/font loading:
2
0
29
@NoelFB
Noel Berry
15 days
@BrianVMontague @VisionZeroYVR You should resign as you clearly can't handle criticism or taking accountability for your lack of policy. What part of VisionZero's thread is misinformation?
1
0
27
@NoelFB
Noel Berry
3 months
Curious if it might be some packages we use? as far as I can tell the ones I wrote are on 8.0.101, but the two others we include I'm unsure (, )
1
0
18
@NoelFB
Noel Berry
15 days
To clarify what this city councilor, former cop, is saying: "Picking Fights" means organizing to reduce traffic deaths "Spreading Misinformation" means stating that this city councilor voted against speed cameras & protected bike lanes on a street where a person just died
0
0
15
@NoelFB
Noel Berry
7 months
@nico_m__ .NET 7, Single File, Self Contained, not AOT.
0
0
11
@NoelFB
Noel Berry
1 month
@ndchristie yeah I think most end up having stuff "outside" the ECS, or add extra stuff to make things work (relationships, state machines, etc). but even then I still have a hard time thinking it out (probably just need to try making something and see what happens but... limited time....)
2
0
10
@NoelFB
Noel Berry
2 months
@roo_oliv @MaddyThorson text is parsed and converted into an array where each letter has metadata (what color, if it shakes, etc). then the game goes char-by-char and draws them, advancing position and using whatever color each char is supposed to be. it quickly fades in each char one after the other.
2
0
10
@NoelFB
Noel Berry
3 months
@pinkie_pies_ @celeste_game no that looks right to me
0
0
9
@NoelFB
Noel Berry
2 months
@ThatTomHall @lexaloffle I started messing with this a bit last night, so cool!!!
1
0
7
@NoelFB
Noel Berry
7 months
@Intangible_Dev Fedora 38, but the background is from Fedora 37 I'm pretty sure
1
0
7
@NoelFB
Noel Berry
6 months
1
0
7
@NoelFB
Noel Berry
2 months
@roo_oliv regarding the actual drawing, it's a png and data file generated by bmfont. you can see them in the game assets if you have the game downloaded.
0
0
7
@NoelFB
Noel Berry
1 month
@TylerGlaiel Yeah I want to understand it but I get hung up on making stuff actually feel good (because I often want very unique one-off behavior which breaks systems/rules)
1
0
6
@NoelFB
Noel Berry
18 days
@xotmatrix to be fair I watch every single youtube video at 2x speed which makes it a bit less intimidating haha
1
0
6
@NoelFB
Noel Berry
3 months
@srodrigoDev main reason is just for fun, I like making my own stuff and learning how it works. A smaller reason is I only basically use the rendering part of XNA APIs at this point so it's fun to implement something on SDL that is just exactly the tools/stuff I want.
1
0
5
@NoelFB
Noel Berry
25 days
@Sosowski @Nifflas I have! they were & continue to be very inspiring to me.
1
0
5
@NoelFB
Noel Berry
7 months
@jervineyard I compile a small native C library that wraps SDL () and for ImGui I'm using ImGuiNET, which has C# bindings + precompiled binaries.
1
0
5
@NoelFB
Noel Berry
6 months
@GreyAlien I only get notifications from direct mentions or from work channels, which I find useful. Then I only scroll through non-work ones when I'm taking a break or not working.
0
0
3
@NoelFB
Noel Berry
21 days
@ianjq have a nice visit! Vancouver is also home to a pretty big gamedev scene
0
0
4
@NoelFB
Noel Berry
7 months
@TylerGlaiel yeah, C++ portability + ability to use any C library easily + very easy to make performant are big positive aspects of it imo.
0
0
3
@NoelFB
Noel Berry
7 months
@Nifflas yeah, .NET8 which is coming out soon is considerably faster as well. Using unsafe blocks and stackalloc/spans/not allocating GC, and it might be close.
1
0
3
@NoelFB
Noel Berry
8 days
@jumpquestgame @zizhen96 This looks great, nice work! :)
1
0
3
@NoelFB
Noel Berry
2 months
@Akien yeah that'd be awesome! I'll definitely be by the Godot booth :)
0
0
3
@NoelFB
Noel Berry
7 months
@DanFessler I mean I'm just messing around all over the place and experimenting as I go haha, I think C++ is still a good way to make stuff. I just wanted to try porting this to C#. And re:modding, C# doesn't compile to native code so it's easy to decompile and inject stuff info
0
0
3
@NoelFB
Noel Berry
7 months
@jervineyard Yeah that makes sense! I'm glad I spend a few years learning C++ but I do like coding in C# a lot more on a day-to-day basis.
0
0
3
@NoelFB
Noel Berry
1 month
@TylerGlaiel yeah the way my stuff works right now is any component can send/listen to messages, so if I want unique behavior I can just tell an object to listen to some message (ex. "landed on the ground") and do something unique. but this is more like an "EC" where behavior is in components
1
0
2
@NoelFB
Noel Berry
7 months
@DanFessler I think finishing the game will be a nicer in C#. Also my brother who I'm making it with is a coding more than I thought, and I think his experience will be a lot smoother in C#. Our cutscenes are in Lua but now we can just do them all in C#. I like that C# enables easier modding
1
0
2
@NoelFB
Noel Berry
7 months
@ldsoad No you can compile with our without the runtime. Compiling without the runtime means they'll need .NET installed to run your app though, obviously.
0
0
2
@NoelFB
Noel Berry
2 months
@matthughson haha these are honestly both great choices
0
0
2
@NoelFB
Noel Berry
7 months
@antumbral which ones? and yeah Celeste is still 4.8 and probably always will be ... just incredibly stable + tons of existing mods + etc.
1
0
2
@NoelFB
Noel Berry
3 months
@smashjarchive @antumbral but yeah I think normal Celeste does that too - but normal Celeste is also on .NET Framework (and 32 bit)
1
0
2
@NoelFB
Noel Berry
7 months
@ruben_we @James_M_South Yeah, I totally agree! I've done that a little bit before and it's usually honestly not that bad.
0
0
2
@NoelFB
Noel Berry
14 days
@Pixl_Jean Wow, thank you so much for the kind words! I'm really glad you've found my work inspiring (even though I've shown less of it recently - hopefully will be back to showing more soon, haha!)
1
0
2
@NoelFB
Noel Berry
7 months
@wtfmig the children of the climate apocalypse will want to be able to self compile and run their favorite indie games too, so yeah of course
0
0
2
@NoelFB
Noel Berry
6 months
@transfoxes @DJ_Link been planning to cancel for a while anyway, good excuse.
0
0
2
@NoelFB
Noel Berry
1 month
@gingerbeardman @1bardesign @FayerDev given that love2d is open source and runs on windows/mac/linux already, i suspect writing a custom "platform" layer for whatever specific target you want is probably fairly straight forward.
1
0
2
@NoelFB
Noel Berry
3 months
@NachoAdventurer @celeste_game that's a new one, thanks! will look into it.
0
0
2
@NoelFB
Noel Berry
5 months
@SPNKr thanks for all you've done there over the years & good luck with whatever comes next!!
1
0
2
@NoelFB
Noel Berry
7 months
@antumbral I skimmed through this a week or two ago, all looks fantastic. Very excited for .NET 8! I should compare once that's out too. (I mean, not that this comparison is that great anyway since the game isn't implemented exactly the same way, but it's still fun)
1
0
1
@NoelFB
Noel Berry
25 days
@WarriorSeeker whoa this looks cool!!
0
0
2
@NoelFB
Noel Berry
7 months
@danielsavface I spend a fair amount of time making sure I do not allocate on an average frame, and use Rider (on Linux) or VS (on Windows) to make sure.
1
0
2
@NoelFB
Noel Berry
7 months
@James_M_South Sure, but I'm talking about the ability to just use native libraries. It's not as easy to do that with C#. You need bindings, or write your own, and need prebuilt binaries or otherwise need to compile your own. It's not as straightforward.
1
0
1
@NoelFB
Noel Berry
2 months
@roo_oliv They're just in there, and localizers had to work around it. it looks similar to bbcode. I created a test script to make sure that all other languages had the same amount / order of markup as English.
1
0
1
@NoelFB
Noel Berry
7 months
@TheBuzzSaw Yeah makes sense! I build my own small one to wrap SDL, do rendering, load images, etc. It's here:
0
0
1
@NoelFB
Noel Berry
7 months
@rustym Yeah you can use emscripten to compile C++ to Web Assembly! I actually had the game above running as a web build (as a test, had various solvable issues)
1
0
1
@NoelFB
Noel Berry
7 months
@antumbral ahhh yeah makes sense. I actually started trying out the .NET7 source generator recently and it's worked quite well for my needs (but mostly as just faster runtime reflection)
1
0
1
@NoelFB
Noel Berry
21 days
@NonTrotski you're right! I still haven't played this yet, I really need to
0
0
1
@NoelFB
Noel Berry
7 months
@AxiomVerge I have not personally yet, but there are several released FNA games that use it now on Switch/Xbox so far:
@TheSpydog
Caleb Cornett
11 months
Last week, not one but TWO games launched using our .NET NativeAOT console ports! First up is Steel Assault! The Xbox version debuts our NativeAOT-GDK runtime, our Xbox port of Mesa's OpenGLon12 driver, *and* SDL-GDK! Shoutout to @michaellarouche for trailblazing all this tech!
3
16
42
0
0
1
@NoelFB
Noel Berry
1 month
@TylerGlaiel @cat_puzzled yeah fwiw I'm less interested for performance and more interested for organizational/management long term of lots of interacting game systems.
1
0
1
@NoelFB
Noel Berry
7 months
@david_laskey yeah I have not tried it personally but there are games out there using it on consoles now:
@TheSpydog
Caleb Cornett
11 months
Last week, not one but TWO games launched using our .NET NativeAOT console ports! First up is Steel Assault! The Xbox version debuts our NativeAOT-GDK runtime, our Xbox port of Mesa's OpenGLon12 driver, *and* SDL-GDK! Shoutout to @michaellarouche for trailblazing all this tech!
3
16
42
0
0
1
@NoelFB
Noel Berry
21 days
@zachisagardner whoa cool, thanks for sharing! it looks really fun, good luck wrapping it up!
0
0
1
@NoelFB
Noel Berry
7 months
@rustym yeah maybe take a look! It has SDL2 and WebGL built into it so depending on your dependencies it may not be too bad.
1
0
1
@NoelFB
Noel Berry
7 months
@wtfmig that's a good call, I'd personally also make copies out of a durable material and ship them to storage locations in other cities in case you get flooded or something.
1
0
1
@NoelFB
Noel Berry
1 month
@TylerGlaiel @cat_puzzled yeah sims/rts/strategy games seem sooooo nice for that kind of thing hahah
0
0
1
@NoelFB
Noel Berry
7 months
@Lngly_ - don't do string manipulation in hot paths, or if I really need to, I have a small stack-based string struct I wrote for short strings () - just occasionally run a profiler and see what is allocating on an average frame and see if it can be refactored.
0
0
1
@NoelFB
Noel Berry
2 months
@TianiPixel this looks really cool!!!
0
0
1
@NoelFB
Noel Berry
7 months
@NoelFB
Noel Berry
7 months
@DanFessler I think finishing the game will be a nicer in C#. Also my brother who I'm making it with is a coding more than I thought, and I think his experience will be a lot smoother in C#. Our cutscenes are in Lua but now we can just do them all in C#. I like that C# enables easier modding
1
0
2
0
0
1
@NoelFB
Noel Berry
7 months
@Lngly_ - be wary about what allocates and doesn't, usually due to boxing interfaces and so on. - pool things a lot. I have a simple FramePool that I can request reusable lists from that get recycled for the next frame. I use this for things like sampling collisions.
1
0
1
@NoelFB
Noel Berry
7 months
@joaquiiinm Yup they're great!
0
0
1
@NoelFB
Noel Berry
7 months
@ruben_we @James_M_South This is likely more true in specifically gamedev. Almost everything is geared towards C++, especially when you get to consoles.
0
0
1