Changing formats this week, because hours wise, it was primarily client work.
The two major things I did on the game this week were tooling things. The first one was a clone of the pico-8 sprite editor. I don’t know if I will end up using any thing created with this, but the graphics need to go, and having a tool to make the new graphics felt like a good start. Then I didn’t end up using this tool for any game related stuff, I just jumped to the next thing.
I built a opl style synth, and then decided to make a quick tracker for it. This whole process took about 9 hours.
And then I thought to myself, I should revisit the iOS tracker that I have been working on for about 3 years. And then I discovered that not only is the whole thing buggy as hell, but the basic underlying interface concept is terrible. That was the part that I was most excited about. Frustrating, but not the end of the world, I just need to rethink everything.
I notice that when I have one major project going, the other projects become fragmented and difficult to focus on moving the core bits forward. This is something to deal with in the coming week I think.
Another 50 hour week in the can. These are totally exhausting, and I need to stop doing them.
I start and stop my timer whenever I stand up from my desk, so 50 hours translates to something much higher. Probably 70 or so?
The fun pak poked along this week. I got builds out to testers early in the week, and got some great feedback. I also made a new game and started integrating my synth a bit better. Not sure if I am actually going to go with my synth in the end, it all really depends on what the arc of the project is. I did discover that my synth is kinda a processor hog, but hopefully I can work out some solutions to that.
It seems like new games in the current style take about 4-8 hours of development time, but this might change with a newer better art style if I ever get around to that.
I also started in on the overworld for the game. I am pretty happy with this art, and hope that I am able to figure out a way to build out a whole world that looks like this, populated with these little frumpy characters.
Then the bulk of the week was global game jam. I am really happy with what we produced for it. Give it a download and a play if you have 10-15 minutes to spare. It was so nice to work with an artist and have something that looks amazing at the end of the jam. Also working with a writer and voice over person was excellent, and she did a great job with our super vague input.
I was really happy with the new unity tools for audio, if people haven’t checked them out, they really should. It makes it easy to do complicated sets of ducked audio and soundtracks and such. I am sure I didn’t do a perfect job on the mixing, but hopefully good enough.
The inscriber ritual is the one bit of the game that I am sure I am going to revisit, and maybe release as a little iOS separate toy. We will see if I have time or not.
- global game jam 25:23:00
- fun pak 19:50:19
- checking build on iPhone 4 0:38:34
- content - arcade games 4:12:11
- dynamic sound library 4:09:25
- getting the web server running 1:13:00
- overworld 6:10:48
- setting up testflight 3:07:36
- texture packer 0:18:45
- dev log + project management 0:24:24
- contract work 2:09:40
I have put my custom engine on the back burner, and switched over to love2d.
Around Wednesday of this week, I realized that my c solution wasn’t good, I was poking in the dark, and I should just grab an off the shelf thing. I picked out entity-x which seemed like a pretty well maintained solution. I hooked it up with all my nice to haves (i.e. a web server that could hot reload lua scripts sent to it), and got down to work. By Friday, I had a new game, and the menu working, and I started trying to get everything ready to send off to testers.
And that is when I discovered some issues with entity-x that I just couldn’t figure out. See entity-x is “modern cpp” which means it is fucking impenetrable. I couldn’t use the debugger to trace code flow, everything went into these strange systems libraries that were unreadable. I spent 5 hours trying to debug some strange menu issues, then I just said fuck it, I am moving on.
In the early days of Lucky Frame, I needed an engine that ran on iOS, and one of my favorite things for developing on desktop was love2d. But love2d didn’t have an iOS target that was supported by the core. So I ended up writing my own version of love2d that worked good enough. We used it for 3 projects until the annoyance of debugging lua code and the lack of easy cross platform compatibility got to me. We switched to Unity. Now, 5 or so years later, love2d has an iOS target that is officially supported. I had initially written it off for this project because I couldn’t figure out how to get my audio engine integrated with it. But on Saturday night I was so frustrated with my thing that I spent the 20 minutes required to actually get my audio engine integrated. Then I spent 5 hours porting over all the work that I have already done to love2d.
So thats where I am at. On the 3rd game engine in as many weeks, hopefully with forward momentum to stop fixing engine bugs and actually work on making the games better. Lets hope this week has more forward progress on the games themselves.
- fun pak 48:20:02
- content - arcade games 4:37:02
- dynamic sound library 1:11:16
- fixing bugs before sending to testers 2:59:06
- getting fonts working in love2d 1:19:04
- getting the lua game runner working again 9:52:42
- getting the web server running 1:39:37
- making the first pass on the main menu 6:03:24
- setting up testflight 2:23:33
- switching over to love2d. I hate myself. 5:22:38
- switching to off the shelf ECS and c++ 5:25:49
- working on ecs 7:25:51
- dev log + project management 0:32:13
- learning gl / imgui 4:00:00
- contract work 0:12:51
This week has been spent largely working on the game engine.
I am not sure that was a good idea.
The week started off really great, with some playtesting. The existing games are small enough that I can make really fast changes based on direct feedback, so sitting down with someone and testing the game with them is just a matter of them saying “hey can you try this thing”, and 15 seconds later, I have a new build that implements that feature. It is great. I even put in a web server so when I have both my device and my dev box on the same network I don’t need to recompile.
Then I had a vision. A grand meta game, where you are walking around this shitty arcade and playing all these different games, and chatting with the owner. There would be a story line to drive you through the different games. And maybe you could go outside the arcade and to the shop down the street, and buy different outfits for your character.
So I started building a new game engine. I don’t really want to do this in unity, I want to keep my games in fast iteration land in lua. Early on at lucky frame, I had my own engine, and it was great, but everything was deeply nested classes, and hard to debug because everything lived in lua land without typechecks. So this week I started building a Entity Component System based engine. And I am doing it in C because I am stubborn and want to learn c better. As far as I can tell, most people don’t make that mistake.
So after a weeks work, I have an image on screen. You can’t see, but it is color cycling thanks to the shader. Great. You can’t play the two games anymore, so technically, I have taken a step back. I hope I can accelerate with this framework and get it out of the way this week so I can start working on the game again. But really, who knows.
- action edit 33:10:11
- dev log + project management 0:17:22
- accounting 1:40:52
Starting to feel really focused here, to the point where I will probably just have just two or three line items listed on future dev logs. I started the week with a project management meeting where I decided it is time to release something and charge for it. Of all the different projects I have been working on, the one that seems most likely to be completed in a reasonable timeframe is the action editor.
So the plan is to make a bunch of micro games, things the scale of flappy bird, wrap them all up in a frame story and sell the whole thing on iOS. I got two games done enough for user testing last week. I also started porting the whole thing to iOS and replacing the sfxr based sound system with something that I enjoy.
Unsurprisingly enough, porting to iOS means that I have to rethink all the controls. I think from here on out, everything is going to be iOS first to make sure the controls are fine. I am going to try to work in such a way that porting back to emscripten is easy enough when the time comes. Hopefully will have something posted for people with iOS to play on their devices by the end of the week.
- action edit 17:25:59
- dev log + project management 1:38:34
- accounting 0:13:21
- terrain gen 1:30:00
- contract work 3:06:01