I must be doing wrong but good god sublime text is terrible for editing html. It keeps doing autocomplete after a ">" which is a disaster. (Today)
2014 - 12 - 29 / 10:35 am / general
Let's continue the recap of a pretty strange feeling year for me!
Hot of the heels of Game Developers Conference I jumped back into work on Otter and Stratoforce. I got some more basic art stuff done, and finally tackled the topic of 2d path finding. Path finding is something that always felt like it was too complicated for me to figure out, but thanks to some tutorials around the internet and help from some great friends I was able to get something basic working.
I still don't totally understand how it works, and if I had to come up with a path finding solution that isn't detailed in an internet tutorial then I'm pretty sure I'd be screwed. I still haven't really figured out how to make it more efficient, and I'm pretty sure I have to figure out a better way to implement it in my game... argh.
I spent a lot of time doodling this month, and probably spent too much time overall doodling during the year. Oops.
Mainly just working on Stratoforce some more this month and got some of the menus up and running.
This month I also spent some time doing some pretty hardcore experiments with rendering in Otter. I was obsessed with the idea of trying to get sprite batching working with everything that is renderable in Otter. A lot of engines or frameworks support batched rendering out of the gate, but unfortunately SFML does not meaning that I have to come up with my own solution.
I ended up hitting a wall that I didn't understand how to pass. I got some basic sprite batching working, but ultimately it seemed like a waste of time because building the batches takes the same amount of time as just rendering everything with a crapload of draw calls.
Without sprite batching a lot of sprites are sent to the GPU when they're ready to go which results in a lot of draw calls. I assumed that this was bad because a lot of engines use sprite batching to reduce the number of draw calls. However when I got a system up and running in Otter to handle automatic sprite batching what I found is that instead of the rendering being slow from a lot of draw calls, the rendering ends up being slow because it has to construct the batch of sprites on the CPU to send to the GPU.
So I felt like I wasted a lot of time here and that was crappy, but it was still fun to try and set up the sprite batching system.
June was the month of shaders and web design. A lot of time was spent finally buckling down and learning a thing or two about GLSL.
A lot of what I'm focusing on is post processing shaders for 2d games. Shaders seem to have a near infinite amount of applications which actually makes it pretty difficult to learn them since a lot of tutorials out there on the internet cover stuff that I'm not even going to come close to using. Whenever I got anything up and running I tried to share the source code with the hopes that maybe someday a google search to my blog will help someone with similar goals out.
After some experimentation I ended up getting a cool shockwave effect set up in Stratoforce.
On the web design side of things this month I also started on a project that would ultimately end up being Dan Adelman's site. I had a lot of fun diving back into the web design world and seeing that pretty much everything is completely different. Responsive design is the big game changer, and making everything on the site mobile friendly. Pretty intimidating stuff, but luckily I was able to find a lot of helpful guides and frameworks to move me along.
I also spent way too much time doodling probably.
Hmmm... yeah it seems like although progress was being made, it wasn't being made fast enough! Path finding and shaders were two big things that have eluded me for a long time, so getting those somewhat under control in my brain was a huge accomplishment, but I'm still not really satisfied. Getting back into web design for a quick project was fun, but I think I also used that as a distraction because I didn't want to work on my game all that much.
Part III is coming up!
2014 - 12 - 3 / 1:10 pm / general
I may have figured out a Photoshop animation workflow that actually makes sense after all these years. I've been trying to use the frame based animation timeline, but it turns out the video timeline makes way more sense.
Using "Video Groups" is almost how I wished Photoshop animations would work. To create a video group you can click on the little film strip icon with a down arrow on it that's next to "Layer 1" in the video timeline. I have no idea why this option is only located here and nowhere else that I can see.
Each layer in a video group is another frame of the animation (if you make each layer's duration only 1 frame long.) The video timeline then only shows each group and not every individual layer. Also you can totally use onion skinning with a video group which is already a billion times better than using the frame based animation timeline.
I'll have a more detailed post going over this workflow once I get a little bit more used to it, but for the initial tests seem really promising.
2014 - 4 - 29 / 3:51 pm / general
Lately I've been getting a lot done on this game! Actually I'm not totally sure if that's true, but it feels like I've been getting a lot done. I've started to do more organized work blocks which have been working out nicely so far. (I might've mentioned this before.)
While I work away at menus and UI I took a break to work on some good ole fashioned particle effects. Right now the game has boulders that can be harvested for materials to build islands out of. No idea if this is going to be in the final game, but it's fun to blow them up!
2014 - 2 - 27 / 5:55 pm / general
Been having a lot of fun with my workflow of animating in Flash, exporting to a SWF, and then using ShoeBox to convert to a sprite sheet. There are some hiccups in the pipeline still, but hopefully I can get them ironed out before I get any deeper in the art department.
I should really be working on the actual game part of this game, and probably all the systems that are going to be needed to be intertwined, but at this point I'm having way too much fun with particles. I've been bound by the word of Flash and ActionScript 3 for so long. Having 30 particles on the screen in Offspring Fling was a nightmare for performance, but now in the land of SFML, C#, and Otter, I can spawn hundreds of particles and the game doesn't hitch at all -- not even in debug mode!
2014 - 2 - 24 / 2:19 pm / general
Been working on getting some particle effects going lately. At first I was trying out a workflow of animating in Graphics Gale since it's so easy to use for animating pixel art. The entire process was animating in Graphics Gale, upscaling in Image Resizer using an HQ 4x filter, then downscaling it and cleaning it up in Photoshop. Although this yielded some pretty decent results, the actual pipeline of getting it into the game from Graphics Gale was becoming a huge pain. Here's a sprite from this process:
I did give Flash a try before this, and all I could find was this tutorial on how to export to a sprite sheet. I had a lot of issues with this process. First the entire SWF document couldn't be exported, only a symbol. Second is the fact that you pretty much have no control over the pixel size of a symbol, and therefore the size of the export. Thirdly the export to sprite sheet just didn't have enough options for my needs. This is why I passed on Flash initially.
Then I discovered that you can just export an entire swf has a .png sequence. Hooray! I can export a bunch of images of an animation, and since I can define the size of the swf, I can define the size of the png exports. Now all I need to do is somehow turn it into a sprite sheet.
That's where Shoebox comes in. This program is an Adobe AIR application that is sort of a swiss army knife for 2d game development. One of the features that I'm using in my current process is the frame sheet builder.
At first I was using the frame sheet builder with a sequence of png files, but then I discovered you can just use an exported swf file instead. So after all of that, my current pipeline for animating frame by frame stuff is Flash, export to SWF, use Shoebox to convert it into a sprite sheet, and then import it into the game. It's not a terrible workflow at all, but sometimes using Flash is a little infuriating.
2013 - 9 - 17 / 9:51 am / general
For my upcoming 2d framework built with C# and SFML I'm building an example game that at first was going to be a super quick project, but when it comes to art I'm still a little stumped on what the best workflow is going to be.
The game is going to be a little simple platformer, and if this were pixel art then I would have no problem just jamming out a bunch of pixel art for it... but with high res comes all kinds of problems.
I usually have used GraphicsGale for pixel art and animation, but now with high res Gale is no longer a very viable option. There's animating in Photoshop but it's horrible for animating. I really wish the animation options in Photoshop were better. There's tools like Spine and Spriter, but they're more for 2d bone animation and don't really help at all when it comes to frame by frame hand drawn animations.
There's also the problem of tile sets. With pixel art comes a very limited canvas site and color set per tile so making tiles line up with each other is a relatively simple task. When the resolution of color and canvas size increase then it becomes more and more of a pain to make each tile line up. I tried this with Snapshot but eventually I gave up and just faked using a tile set by making a bunch of independent images about the size of a tile and just stamped them on top of each other. Unfortunately right now that isn't an option for this game since I'm using Ogmo Editor as my level editor and strict tiles is probably my only option.
Here's a quick sketch of what I want the game to sort of resemble and I can already tell the tile set is going to be a nightmare because of the bleed of certain tiles (like grass, even stones have bleed, argh!)
So that's where I'm at right now. I'm continuing to chip away at code somewhat as I think about how to possibly solve these art pipeline issues, and I expect to be done with the example game sometime next month along with the first public release of the framework.
Hi there, my name is Kyle, and I'm a kid disguised as a grown up. I'm making video games and living the indie game developer life in Tempe, Arizona. Here you will find my thoughts, games, websites, doodles, and other stuff like that. I worked on Snapshot, Offspring Fling, and a whole bunch of other games. I also created and maintain Otter, a 2d game making framework. If you want to get a hold of me use the form on the bottom of the page, leave a comment, or just tweet at me. I try to post three times a week. Thanks for stoppin' by! You're the coolest.
- alec holowka
- bill pullman
- dev log
- game jam
- good times
- kings men
- ninja slash
- offspring fling
- screen sat
- space sushi
- january 2015 (14)
- december 2014 (14)
- november 2014 (13)
- october 2014 (14)
- september 2014 (14)
- august 2014 (11)
- july 2014 (10)
- june 2014 (13)
- may 2014 (13)
- april 2014 (13)
- march 2014 (14)
- february 2014 (15)
- january 2014 (15)
- december 2013 (14)
- november 2013 (15)
- october 2013 (13)
- september 2013 (14)
- august 2013 (15)
- july 2013 (10)
- june 2013 (14)
- may 2013 (14)
- april 2013 (15)
- march 2013 (13)
- february 2013 (15)
- january 2013 (3)
- december 2012 (1)
- november 2012 (2)
- october 2012 (1)
- september 2012 (4)
- august 2012 (1)
- july 2012 (1)
- may 2012 (1)
- april 2012 (1)
- march 2012 (1)
- february 2012 (1)
- january 2012 (1)
- november 2011 (2)
- september 2011 (1)
- july 2011 (1)
- june 2011 (1)
- may 2011 (1)
- april 2011 (2)
- march 2011 (4)
- february 2011 (4)
Do you want to make a Let's Play of one of my games, or a just a video featuring footage of my games? You have my full permission to do so! Even if you are monetizing your videos, you still have my full permission to use any footage from any of my games. Go for it!