With the end of 2019 a lot of things changed for me personally. I made the difficult decision to take a step back from an administrative role I'd held at Buffalo Game Space for a very long time. While it sucked that I had to, it was taking a serious toll on my mental well-being. The good news is in doing so I've been feeling better AND I've had some time to collect myself and start working more seriously on making games and such. So I'm happy to say at the start of 2020 I've started focusing on a single game project.
What it be
Deluxe is a (planned) top-down shooter with a Rez-style leveling system and procedurally generated levels full of enemies to blow up and areas to explore. At least, that's the mental picture of it I have at the moment. The actual current iteration doesn't even qualify as a game, but it's a start. The player pilots a little ship with the D-Pad and can fire their weapon/strafe while holding A. One of the explicit design decisions I made early on was to not make a twin-stick shooter, as I'd like it playable on older game pads, or a traditional arcade cabinet setup.
Another early decision was to use Godot for developing it. I've done a little bit of development with it previously, and I really enjoy working with it. For the uninitiated, Godot is an open source game engine with a friendly UI, ample features and build targets, and support for visual programming C# (partial at this time) and it's own Python-esque scripting language called GDScript. If any of those things interest you, I highly recomment taking a look at it. It's free to use, no license restrictions on what you make with it, and it plays great with Linux.
So right now as the top screenshot indicates, there isn't much going on there. The basic player controls are implemented, as well as a small, single room programatically generated using a nice tilemap feature Godot offers (gridmap). There's also a little enemy guy that chases the player around the map, but not much else. The player can shoot bullets at things, and anything that has a base type of "Entity" can take damage and tells you so in the console output. Pretty far from what you'd call a game, but it's a start.
The most pressing tasks involve turning this little test into a minimum viable product, which in my mind means it has to have:
Enemies that can be defeated
Enemies that shoot back
A win condition
A lose condition
Basic UI showing the player's health
Some simple sound effects
Once all that's in, that's basically a game. Not a good one, but it has the core elements. Following that I can start working on proper art assets, more interesting level generation, different enemy types, and more weapons.
The goal is to have something with some of those things in it by late spring/early summer, so I can spend a few months testing with folks at Buffalo Game Space and polishing based on feedback, with a mid-fall release into Early Access on Steam. It's gonna be a lot of work, but I'm doing my best not to think about it quite like that. I still want it to be fun to work on, and so far it has been. Every day I make sure I at least open the project and poke at it for a few minutes. Most days that turns into an hour or two of work. And the more I poke at it the more comfortable I get with the tools and language, which means (in theory) it'll get even easier to work on.
I'll do my best to post at least once a month with updates on this. I'll also be using the BGS monthly game dev meetups as presentation events to show progress/solicit feedback, so if you're in town and want to see where it's at or talk to me about it I'll be there.
Thursday, November 14, 2019
I've wanted to start working with the very cool, open source game engine Godot for some time now, so I finally decided it was time to buckle down and learn the damn thing. I made a little two-player pong clone in it you can play on itch.io or download to play locally. It's got minimal sound effects and a System 6 inspired a e s t h e t i c. It was pretty fun to make, and I definitely plan on making something much bigger/more serious in it next.
In case you're one of the poor souls that was already relying on the static page directory structure of my site, I have bad news for you. Turns out the tm struct used by the date/time functions in C think January = 0. It's correct now, but that means that all the hard links to old posts are busted now. Good news is it should all be correct moving forward.
Tuesday, November 5, 2019
When I first started properly surfing the web as a wee little cld, I found all sorts of awesome stuff hosted on pages just as directory listings. The idea that I could browse and download files from a website just as if it was a regular directory was such a neat idea to me (I didn't know about FTP yet, that would've blown my mind).
Cut to 2019 and I still enjoy the concept. There's something so minimal and transparent about it. So, in an effort to recreate the experience, I bring you The Junk Folder™. It's a directory for me to upload stuff that I want to archive/access online but not necessarily put in the git repo where I keep all my other website things.
Right now it's just got a README, a CHANGELOG, and a viewable copy of The Tracker's Handbook v0.5, which I'm about to get into (again) as a way to start messing around with writting little tunes for my games (again). If there's something you know about that you think would be rad to have in there, shoot me a link! Would love to see what sort of neat archive we can populate..
Another Windows Gripe
Wednesday, October 30, 2019
I've got Python 3.7 installed on my Windows 10 machine. I should be able to, after adding it to my system path, be able to run python3.exe from PowerShell, CMD, whatever, and it should run the executable. Right?
So why is it, when I run python3.exe from the shell, instead of launching Python it opens the Microsoft Store and sends me directly to their Python installer page?
I know why they're doing it, it's just bullshit they do.
Tuesday, October 22, 2019
Just a quick post to let you know that I implemented basic RSS feed generation into my static site builder, cld-ssg. You can click the link in the header to grab it, or just get it here.
I'm a big fan of RSS, and you should be too. It's an easy way to get automatic updates from a site, which is what I feel a lot of people use Twitter for. So it's got all the live update perks of Twitter with the added advantage of not being Twitter.
Circa 2001 or so, I was a middle school student in Holland, NY, big into computers and tech and not a whole lot else. I'd known for a bit I really wanted to get into making games or something similar, but my feeble attempts at trying to do it didn't get me very far (the best I got was a very nice email response from a Nintendo representative regarding my request for an N64 dev kit - they pitched me on DigiPen). One day while bumming around the library I found a pair of small hardcover books with BASIC and PROGRAMMING in the titles. Intrigued, I pulled them out to find they were both introductory texts on how to write programs in BASIC on the Commodore PET, TRS-80, and the Apple ][.
Conveniently we had two Apple ][e machines in the library. For whatever reason, one of the english teachers used some test software that ran on them, so they kept them running just for that. And since the tests were rare, the machines sat mostly unused. So I started using my time in the library working through the books, writing the programs as quickly as I could. I didn't have any 5 1/4" floppies to save my code on, so every time I jumped on I had to start over if I didn't finish what I was doing last time.
I did eventually work through both books. I think the most original thing I wrote was a mad libs thing that I left running when the period was up, foolishly thinking somebody would stumble upon it and be amazed by the wonder of typing in a word and having it substituted into a string.
A little while after this is when I got my first computer, some old garbage-picked 8086 business machine that came with a DOS boot disk and some games. Whatever version of DOS was on that disk also came with a copy of GW-BASIC, which let me continue my coding adventures at home. Plus, I had some blank floppies at this point that I could save my stuff to, which was nice. I really don't remember much of what I wrote on this one, and I highly doubt I still have any of the disks from then.
The majority of my programming in BASIC was in QBasic on my next machine, a Pentium desktop that frequently got reformatted, alternating between MS-DOS and Windows 95 depending on my mood. I spent a lot of time actively participating on some QB forums, trying to pick up tips and get questions answered. Being a kid meant I asked a lot of questions that weren't really the right questions, and most of the answers sounded like work I definitely didn't want to do. I also got lots of advice(?) on how if I ever wanted to make a real game I should learn a real language like C++ or something. I spent a good deal of time (and money) attempting that, but never really stuck with it (I got a good bit into a book I bought on C++ and DirectX, but never really grokked it and gave up pretty early).
I did make some neat stuff eventually with QB. The notable projects I remember are
A pretty solid two-player lightcycles clone
This one used UGL, a game dev library that provided access to fast sprite graphics, sound, and input routines. I want to say if someone was making a QB game and not writing their own ASM routines, they were using this.
A text-based fighting game
This was sort of a weird pokemon-inspired thing, where you could "train" a fighter, pit them against other "fighters", and save their progress to a file. Everything was plaintext, and they only had something like two or three stats and three base moves (punch/kick/block). It wasn't very fun.
Techfalcon Virtual Reality
I was OBSESSED with VR as a kid, but that's a post for another day. This project in particular was going to be a collection of 3D rendering functions. I got 3D projection and wireframe graphics working pretty well, but the math behind rotations and camera movement was beyond me. Also, the one time I tried explaining it to a classmate they cut me off to inform me T.V.R. were the initials of a friend of ours. That stuck with me for some reason
Some of this stuff might still be out there in the ether, as I posted a lot of it to the forums I frequented. If I dug hard enough on the Internet Archive I bet I could find at least one of them.
Some time after this I gave up on programming for a while and got into animation and design. Ended up going to school for it instead of programming, which in retrospect is kinda funny and irritating at the same time. In any case, BASIC was a pretty cool way to get into it, and I suppose you could say I've got a bit of nostalgia for it. Maybe some day I'll get back into QB and make something for a jam with it.
P.S.: I actually still have those two books from the library. I snagged them before they got tossed in the dumpster by the school. One of these days I'll scan 'em and post 'em on the Internet Archive.
To the folks already following along, hello again! This weekend I'm gonna be heading up to RIT for the Rochester Game Festival. The awesome people at ROC Game Dev have put together a showcase of something like 55 games all made in and around Rochester for attendees to come and play. BGS is gonna be there as well (Maxx and I are running the table for the first half of the event), so stop by and say hello if you're so inclined.
This is the third(?) time I've redesigned this page from the ground up, and hopefully it'll be the last for a while, at least architecturally. I've wanted something I can update with relative ease for a while now, and the solution I've come up with is hopefully that.
This static blog is generated automatically by a small C application I wrote called cld-ssg. It allows me to write content in markdown and, on a push to the repo, it will generate the html files for the post(s), index, and archive, and additionally copy any additional files I deem necessary into the appropriate locations. Keeps things nice and simple for me to maintain and update.
I really enjoy writing, but prior setups (Wordpress, Jekyll) felt like they got more in the way than out of my way. By spinning up my own I know all it's little quirks and can either work around them or fix them myself. It's nice.
Now that the blog is back up and running I can start my next project, which happens to be a game idea I'm coming back to after a bit of a hiatus. Expect posts on that, and other stuff too. I'm going to treat this blog as my way of posting to the web ('cause social media sucks). So keep an eye here if you're interested in what I'm up to, game development or otherwise.