I started to learn to program in middle school. I taught myself programming through web development (HTML, CSS, Javascript), then took a visual basic course, then with success went on to learn GameMaker. I entered team game programming competitions every year throughout high school. I didn't actually have a team for most of them (kinda just got people to volunteer their name for the paperwork...) until the last year, where I was able to get a programmer to join me in high school. It was great to be able to work with someone.
In my freshman year of high school (2006) I created a drawing fighting game and convinced my teacher to accept it as an art project, this gave me a starting point for my drawing software down the road. (It was kinda a faked drawing fighting game as I made the pencil tool work as a collider to make it easier to detect when I was drawing and I made invisible hit boxes on enemies so you drew on them to attack them. I couldn't figure out an easy way to detect what I was drawing (like a circle, square, etc), but my class was excited to see my work anyway.) This was before I was able to play games like Drawn to Life or Okami so I didn't think of using their methods.
Around 2010-2012 (high school and early college) I worked on creating my own drawing software because I thought I could build a quick sketch tool. At that time I mainly used Paint and Gimp for my tools but wanted something focused on pixel perfect art. I worked off and on it during the summertime but eventually stopped working on it as the engine started to strip out important functions I needed to make it more cross compatible. Yes, sure I could have opened up C++ and tried to build them myself but that was a bit over my head at the time. I started to focus more on Unity then and now it would be very hard to go back to GameMaker to finish this tool, as working with GML and a very outdated engine is hard to go back to after the luxury of learning C#.
My art tool started out as a simple concept. But I kept getting more and more ideas.
The 3 black boxes are left, middle, and right click color options. The pencil was my brush tool in the beginning. You can download it here.
I thought of new tool options, how to load in images, different brush options and kept making it more complicated. Feature creep became a major issue with finishing this tool.
I ran into a lot of bugs I was not quite sure how to fix such as loading images that resulting in skewed or color shifted images. The circles on the images below are nodes used to create the image, they can pull and stretch the image when dragged but I was not able to fix the polygon to load them correctly without a slight skew. Part of this was based on the image size and resolution, images that were not close to something divisible by the power of 2 (64x64, 128x128, 1024x1024, etc) would come in slightly skewed. I didn't know the word for what is this, but I would have to reformat images not at the correct size to get my transform tool to work and that was a complicated feat for me. Also sometimes color would be a issue depending on how I loaded the image into either a drawn sprite or a different image loading option.
*After speaking to a more experienced programmer I was corrected to say I had an image loading issue with NPOT images types many years later if you want to understand the more technical side.
I had a magnifying glass tool but ended up scraping it down the road when I changed how my view scaled.
Above is an early concept, I cringe now looking at my names for objects and UI.
I had idea this at one point about swapping out backgrounds, I kept adding and removing that feature and decided it was too minor to keep. I focused more on color options in the end, I wanted to make it very easy to get color, I had a color inspiration bar (you could toggle it off if you wanted), a collection of color picks, color history, and a color shade option, alongside a get color/eyedropper tool and a color option where you could just grab a particular color.
I was able to create a layer system by converting my screen surface back and forth into a sprite with an alpha background, I had memory issues with too many surfaces so to work around it I would flip back and forth to the sprites and tried to limit surfaces to under 15. This helped me realize I could create an undo button by just flipping to earlier versions of a sprite, by doing this though it became harder to manage my background image layer and so I ended up scrapping it for a white background. I never quite figured out how to export it as an animation but I really wanted to turn this into an animation tool as I created a layered sprite.
At some point I thought I should upload a video of my work. So I posted a video in 2017.
I don't really know what happened to this version anymore as I suffered from quite a lot of data loss during that time.
I don't really know what happened to this version anymore as I suffered from quite a lot of data loss during that time.