It is 12:39 AM here, which officially marks the end of day one for me.
Even though I have competed in the "Week of Awesome' before" I was not sure what to expect going into this years competition. In past years, I had competed as part of "Team Slaughterhouse." During those runs, I had the luxury of not only another skilled programmer and artist, but of the fact that every year, our team had all of the original members. This year, however, everyone from Team Slaughterhouse was busy with real life, so I ended up having to take this one alone. To make matters worse, I realized early on (a few weeks before the start of the competition) that being a one man team, I would need to have fast turnaround time on the code, as I've never done real art (short of your typical programmer art). Furthermore, I knew ahead of time that I wanted to use a language that easily target all of the required competition platforms. For me, this was a critical point, as a few months ago, I changed my daily driver from a Windows box to an OS X box, and there was no way in hell I was going back to Windows. Because of this, I chose Java as my language choice.
While I have many years of experience with Java, all of it is in business applications. Up to this point, I had never attempted to write a game in Java, as I am a long time C and C++ game programmer; generally preferring those languages to others. Moreover, I felt very comfortable with the tools I had at my disposal. Because I am a longtime fanboy of IntelliJ, I had the perk of a slew of various custom plugins, as well as a fully editor integrated Perl-based project management system that not only handled all of my cross-platform compiling, packaging, and debugging, but that also managed my version control repositories, and having countless other other tools and utilities for speeding up development.
Despite all of the aforementioned, I found myself off to an extremely shaky start. I had taken the previous week before the competition to plan and prepare for the epic (lvl 85+) quest I had ahead of me. Because I didn't have the backing of a team, I knew that what ever route I chose would have to A) have the ability to easily incorporate not one, but two themes, as well as, B) be a small enough project to undertaken by myself -- especially given the fact that I had little to no artistic skill or experience. Due to this, I decided on creating a slot machine simulator/game. Knowing I would need as much time on the art assets as I could get, I spent the following six days writing a small boilerplate game framework. I had originally planned to use "LibGDX" as the core of this framework, so I did a little API reading and took special care to ensure that the framework I wrote did not reproduce functionality provided by LibGDX, as well as provided only the bare minimum amount of code I needed to get started. My thought was to merge in LibGDX when I needed it; linking in the jars like any other Java dependency for any other project. However, this kind of stuff always seems to work better in theory than in practice -- especially at crunch time.
Come competition start (12:01 AM), I went to link in LibGDX -- after a long 15 hour coding sesh with no sleep from the night before, only to find myself spending the next four hours fighting the "old-style" builds I had downloaded. I was aware that LibGDX converted their build pipeline to Gradle a while back, but I try to stay clear of Gradle, if given the option (we use it at work, and it makes me want to cry). After a long period of frustration trying to get the old-style builds to properly link and compile, I broke down and decided to download the Gradle builds thinking it was going to be a typical Gradle install job. Instead, I was presented with a project wizard that made me generate a new project. While this would normally would only slightly erk me, I found myself getting pissed off with LibGDX's 'my way or the highway' approach -- especially since it just nullified by entire custom build pipeline (which is something I have come to depend on). After much cursing, I got back into my programming game; scrapping my build pipeline and writing a new one in Perl. I thought all was back on track until I went to start back on the game code and found that my 30 hours worth of framework prep was in the same boat as my build system. However, I was able to spend a good portion of the rest of my day getting stuff back in working order; thankfully finding myself back on track. We will have to see what day two brings.
- Peace out
Bytetroll
Can definitely relate.
On the Week of Awesome II, I decided to go solo and quickly learned a few lessons.
My advice for semi-presentable prog-art is "stick to what works" and only make the assets when you need them.
Though I've actually started WoA IV by making assets, these were assets I knew were going to be required, and which could easily be scaled to fit any container. That being said, I did have to scale them pretty early, reemphasizing that art should come after.
A point can be made that one should start with the unknowns, and art is certainly the major risk for both you and I, but to this point, I have yet to see this work for me and will stick to prog-first.