Uploaded September 2019 | Updated September 2026, 2 hours ago
I'm currently working on a larger project to build a Sprite Editor from scratch, in C++. Every line of the program has been hand-coded "handmade hero" style, which has been an informative and interesting process!
The main reasons for doing this project are:
- Open up your favourite image editor. Time how long it takes to load. 10 seconds? 20 seconds? Crazy! Especially if all I want to do is edit a few pixels and make some minor tweaks. Also, why do those programs crush my laptop's GPU even if I'm not doing anything on them apart from simply displaying an image?
- I like using the keyboard, and I haven't found an image utility that is primarily / soley keyboard-based. So view this as an experiment to see if using the keyboard as an image editing controller can make sense!
Given that I'm programming everything from scratch, I can also control the way the program uses alpha blending (e.g. premultiplied alpha), light-space, and I also plan on having additional features that are aimed at speeding up animation and lighting for sprite users.
Hope you enjoy! Please let me know if there are any features that you'd like to see in the program!
Other Social Media stuffs:
twitch.tv/s0llygaming
twitter.com/s0lly
instagram.com/s0lly.gaming
github.com/s0lly
Acknowledgements:
Music by Eric Skiff, song "All of Us" for the intro and "Chibi Ninja" for the main sequence. (Available at EricSkiff.com/music)
I'm currently working on a larger project to build a Sprite Editor from scratch, in C++. Every line of the program has been hand-coded "handmade hero" style, which has been an informative and interesting process!
The main reasons for doing this project are:
- Open up your favourite image editor. Time how long it takes to load. 10 seconds? 20 seconds? Crazy! Especially if all I want to do is edit a few pixels and make some minor tweaks. Also, why do those programs crush my laptop's GPU even if I'm not doing anything on them apart from simply displaying an image?
- I like using the keyboard, and I haven't found an image utility that is primarily / soley keyboard-based. So view this as an experiment to see if using the keyboard as an image editing controller can make sense!
Given that I'm programming everything from scratch, I can also control the way the program uses alpha blending (e.g. premultiplied alpha), light-space, and I also plan on having additional features that are aimed at speeding up animation and lighting for sprite users.
Hope you enjoy! Please let me know if there are any features that you'd like to see in the program!
Other Social Media stuffs:
twitch.tv/s0llygaming
twitter.com/s0lly
instagram.com/s0lly.gaming
github.com/s0lly
Acknowledgements:
Music by Eric Skiff, song "All of Us" for the intro and "Chibi Ninja" for the main sequence. (Available at EricSkiff.com/music)

![2D Game Engine in C++: [2] Adding a Camera / Moving Camera and Sprites
This video shows object movement, corrected relative to rotation, alongside camera movement.
Camera rotation and zooming is still lacking - this will be the next task to complete.
I already see a top down racing game from this! Itll need some collision detection sooner rather than later, Id imagine.
I will release all code on GitHub once Ive finalised the engine - and have nice looking code to boot!
Using the Chili Framework: http://wiki.planetchili.net/index.php... - thanks Chili! 2D Game Engine in C++: [2] Adding a Camera / Moving Camera and Sprites](https://i.ytimg.com/vi/I5Xv2AzYeXY/mqdefault.jpg)





![2D Game Engine in C++: [6] Perspective
This video expands the planes concept, allowing for corrected translation and scaling of sprites depending on which plane they exist on, creating a pretty cool sense of depth.
An example of this effect would be for clouds flying on top of the game world for a top-down game. As they would be closer to the camera, they would naturally move faster and be of different scales depending on how high up / close to the camera they are.
The Draw routine allows for all of an objects information in determining where it should be drawn, so the graphics calls are relatively simple to use in coding. Hopefully this will allow me to easily add in whatever graphics I need for my next game ideas, which will allow me to spend a lot more time on other game development concepts, e.g. AI.
I will release all code on GitHub once Ive finalised the engine - and have nice looking code to boot!
Using the Chili Framework: http://wiki.planetchili.net/index.php... - thanks Chili! 2D Game Engine in C++: [6] Perspective](https://i.ytimg.com/vi/IvUYPMLZ76Q/mqdefault.jpg)


