Video wird geladen...

Video konnte nicht geladen werden

Zur Startseite

I built a simple C++ game engine: - ECS (Sprite, Velocity, Animation, Script) - Frame-based animations via JSON - Lua scripting for entity behavior - ImGui inspector + asset browser - SDL2 rendering w/ flipping - Drag-and-drop support for assets

52,458 Aufrufe • vor 1 Jahr •via X (Twitter)

10 Kommentare

Profilbild von Lennzer
Lennzervor 1 Jahr

Dude, that's so cool! I've been setting up basics down for something like this. BTW I'm not entirely sure but splitting sprite sheets by using pixel dimensions would let you index them out - saw it in another post.

Profilbild von Basketo
Basketovor 1 Jahr

Yeah, that’s actually how i’m handling animations, using fixed pixel dimensions to split the sprite sheet. It works, but honestly, it gets pretty tedious without a proper editor to preview and grab coordinates.

Profilbild von Juveria | Onchain Lens
Juveria | Onchain Lensvor 1 Jahr

cool 🔥

Profilbild von Basketo
Basketovor 1 Jahr

tnx 🫰

Profilbild von Hojiwak
Hojiwakvor 1 Jahr

👏👏👏👏 papa tchlalek berta bro adis neger entebkalen bekrb 💪

Profilbild von Basketo
Basketovor 1 Jahr

@hojiwaq84514 awo gd new. mokralew esti🫡

Profilbild von P4R4NO1D73
P4R4NO1D73vor 1 Jahr

awesome

Profilbild von Basketo
Basketovor 1 Jahr

🫡

Profilbild von Antônio Ivo da Silva Gomes
Antônio Ivo da Silva Gomesvor 1 Jahr

Awesome, man. Do you have some advice to someone who is trying to make something like this with pure C?! 😅

Profilbild von Basketo
Basketovor 1 Jahr

Well 😁 1st thing is to avoid oop like trap, don't try to fake classes and inheritance and you will have fast engine core. and also keep it modular from the start otherwise it's gonna get ugly.

Ähnliche Videos

I built a Three.js rendering study inspired by Tiny Glade’s painterly aesthetic, and got it running at 120fps in the browser. Over the past few weeks, I’ve been studying how stylized games achieve that soft, handcrafted look in real time. Tiny Glade was a huge inspiration, and I wanted to use the browser as a constraint: no compute shaders, no native GPU access, and single-threaded JavaScript. As part of this study, I implemented: - GPU-driven instanced brick walls with procedural noise jitter and elastic build animations - Tree, bush, and flower rendering with billboard card expansion, wind sway, and grow animations - Procedural grass with terrain conformance and interactive push deformation - Animated water with layered noise, interactive ripples, and Fresnel-based reflections - Procedural terrain with slope-aware triplanar materials, dirt paths, and rocks - A 7-pass post-processing stack with TAA, bloom, depth of field, painterly filtering, ACES tonemapping, 3D LUT color grading, and film grain The hardest part wasn’t writing any single shader. It was making all of these systems work together at high frame rates inside WebGL, where every millisecond counts and performance problems compound quickly across animation, materials, post-processing, and scene management. Some techniques in this study were inspired by analyzing Tiny Glade’s rendering approach, while others were original implementations built from scratch from visual reference. That contrast taught me a lot: recreating an effect is one challenge, but designing your own shaders and systems to achieve a similar feel is a very different one. This is a private educational rendering study. Some temporary placeholder content is being used during the research phase, and any public or production version would use original or properly licensed assets. Huge credit to Pounce Light for the incredible art direction and rendering work in Tiny Glade: Three.js #gamedev #webgl #threejs #rendering #graphics #realtimerendering #shaderdev

Ibrahim Boona

58,625 Aufrufe • vor 5 Monaten

I vibe coded and built a sprite animation pipeline 🛠️ (Day 22 of making the engine+game) ⬇️ Watch the video if you don't wanna read the wall of text - it directly shows what I do. Shoutout to Jidé ✨ for showing me a paper on black/white combination to get alpha, it's the cleanest method yet, and to Cursor for enabling this entire journey. If you prefer the wall of text here you go: The hardest part of using general image models for 2D sprites isn’t getting a nice-looking frame, it’s getting consistent motion across a whole sprite sheet. You can fake a sheet, but frames won’t align, timing drifts, and you end up with weird artifacts. Even if you manually cut frames + interpolate, the animation often looks “off” because each frame is basically a new interpretation, not the same character evolving over time. This is especially noticeable with public API models like gpt-image-1.5 and Nano Banana. Some custom LoRAs for open models exist, but this is intended for less techy folks. My workaround: use a video model first, then post-process into a sprite sheet. Render the animation over a solid background (white/black/magenta/green), then chroma-key it out (my engine tool supports this). If the motion stays inside the silhouette, this works surprisingly well. You can do this in almost any video editing software too! The catch: keying almost always leaves an “aura” (edge spill). My best results come from interpolating the keyed animation with a clean base sprite, so you keep crisp edges and only “borrow” motion/detail where needed. If the animation extends outside the silhouette (tree branches, hair wisps, foliage), I usually skip “true sprite animation” and do it with shaders instead. Keying can’t fully remove halos there, no matter how much feathering/tuning you do. Another annoying issue: pixel corruption. AI rarely generates a perfectly flat background (pure #000000 or #FF00FF). That tiny noise breaks clean extraction and creates crawling garbage pixels around the subject. For clean base sprites (and even PBR maps), a useful trick is generating the same asset on white + black backgrounds and deriving alpha from the difference. This is basically a matte workflow: white = opaque, black = transparent. It fixes aura… but you’d need it per-frame to fix animation, which is still hard. For simple pixel art (single-digit frames), you can sometimes generate a sprite sheet, then ask the model to recreate it on black/white while preserving alignment… but it’s still manual-heavy. Honestly, at this point, for some projects it’s easier to go 3D → 2D and render clean sprites/maps directly. But I still love pushing “pure 2D” and seeing how far we can take it. Thanks for reading! Follow/bookmark/repost if interested in this kind of content!

Startracker 🔺

20,181 Aufrufe • vor 7 Monaten

I ditched Unreal for AI. Kaiju Engine is a completely AI written replacement. To prove it was ready for production, I tested it by recreating and porting my old game, Firefall, into Kaiju, purely from the Steam download, no source. And it worked. Real game code is messy, full of difficult details and compromises. If our engine could handle a commercially released game, it proves you can ship a game with it. We're developing 2 orders of magnitude faster (93x) by lines of code and features. We have fewer bugs, and iteration is super fast. Build times have gone from 30 mins (Unreal) to 36 seconds. Feature rate is through the roof, days instead of months. Our original engine for Firefall took 2-3 years and cost over 5M to build (adjusted). Our new engine was written in 5 months for a couple grand. We built only what we needed, with none of the Unreal bloat. And we added some features: - Modern meshlet based rendering with PBR. - Vis Buffer/Forward+ with clustered lighting. - Id Tech 5 style megatexture streaming. - Planetary sized renderer (entire solar systems possible). - Seamless flight from ground to orbit and space. - No loading screens. - Procedural planet generation with plate simulation. - Client/Server at all times. - Ozz for animation. Jolt for Physics. - Companion Blender plug-in for AI directed asset exports. - 140fps currently, 200-300 projected after optimizations. You can see Firefall's assets and levels ported over into our engine in the video. Texture resolution and pop-in are limitations of the original game (high rez CDN based textures were lost when game went offline, fog hid the original's pop-in). Our meshlet renderer will be able to do much better with LOD and already supports high rez textures. I used Grok/Codex/Claude to tag team the code. This is not just a boon for indie games, it's a real game changer for game preservation. The reaction to seeing this 10 year old discontinued game revived is very emotional for Firefall fans. But we're not just preserving Firefall, we're going beyond, creating an original game that is the spiritual successor, Em-8ER. Gliding, jumpjets... it's all coming back. Moving past Unreal let us move much faster, without the bloat, and with better performance. If you want to signup to follow news on the game, sign up is free at

Grummz

355,205 Aufrufe • vor 24 Tagen

*** Mega Parodius Sega Megadrive Update *** Lately I've been having some fun seeing how far we can push the Parodius game engine . This is not arcade accurate - just for testing, decreased bullet timers and upped the bullet count to see what would happen re cpu usage when things are made a lot busier ! Maybe something like this could be insane mode in the options etc. Since last update we are a lot more optimised under the hood . The C based sprite engine, particularly visibility checking was speedup , overall 25 % faster. Then re-wrote the sprite engine completely in 68k assembly , 30% faster again. It took about 3 days and 1500 lines of assembly , thankfully the gains were worth it. All these gains will be back ported to S.O.T.A also as its using the same sprite engine. Usage is around 19% of cpu per frame with a full sprite load - 33 % cpu left in the busiest frame currently . Parodius is using a write the sprite list every frame type engine , so priority and meta-sprite objects can be handled with ease albiet its still a bit slower than static allocation sprite engines such as the one in lufthoheit but this is a bit easier to code for in the long run. All collision checks are been done , we are using a spatial grid system to get the collision checks done faster than a brute force approach . To get to maximum sprite count destruction is disabled in the video. We hit 80 sprites onscreen in this sequence , the sprite counter is one the Left side. We use about 16 sprites in the top hud and water line , about 21 for player attacks / missiles / shots / options . Up to 35 bullets + enemies . No lazer usage here as the Lazers use zero sprites thanks to the raster tricks , this video is all about the sprites ! Improved the water line when the Catboss is active , as he is Sprites + Forground we are doing some tile rotation tricks eg bit scrolling to give the impression of parrallax at that point . Vector Orbitex has updated the stage 1 music again and has made things even higher quality , hes mixed pcm and fm channels together to create higher quality orchestral hits for example . Pyron has started converting assets from stage 2/3 , some amazing work there . Hes well ahead of me at present which is a good thing. Still lots of incomplete animations missing logic etc , its slow going with RL getting in the way haha and 2 other projects !! Still its fun !! #SGDK #SegaMegadrive #SegaGenesis #Parodius

Shannon Birt

16,084 Aufrufe • vor 9 Monaten