Wyrm
At the outset, I built a Snake game using DRGTK because I wanted to get the game logic straight in my head. You see, I am teaching my niece, Jessica, programming using Scratch via Zoom, and I wanted to build Snake with her. At the same time I am learning hobbyist game programming using DragonRuby. And so the journey to Wyrm began.
That initial code took a little less than 30 minutes to write and Jessica did end up building a Snake game in Scratch as a result too. I made a couple of improvements over the next two weeks. At the time I imagined I might build an introductory DragonRuby tutorial using this code base, and so I tagged commits. But over the next few months I lost interest and was instead building overly ambitious things involving path finding, tiled maps and other things that might be found in a top-down RPG.
Truth be told, I had never built an entire game end-to-end before. I really didn’t know what was involved in building something that people would enjoy. While the experimentation I was doing was fun, it was also getting increasingly frustrating realizing the amount of work that would need to be done to bring my vision to life. When my December vacation started I took a step back. The Finally Finish Something Jam had been announced and I decided to finish this little Snake clone and submit it. I wanted to end up with a polished game that was fun to play, with original music and sound effects, a unique graphical style, and a twist on the classic game.
And to be honest with you, I’m actually pretty proud of the result …less so of the code, which is a bit of a mess :wink:
Lessons learnt
First of all, the amateur/hobbyist game development community is incredibly supportive. I hang in the DragonRuby Discord, and it’s a phenomenal, diverse and interesting group of people doing all sorts of different things. During the FFS Jam, I also joined their Discord, and it’s similarly supportive. There’s always people willing to give advice, talk through ideas and provide feedback. If you’re going to start you journey into game making, join the community.
I don’t consider myself an artist or a musician. Creating the artwork, sound and music for Wyrm took far longer than the programming did. Using the resources below and tons of experimentation and time, I’ve managed to create assets that I am happy with. Even then, they didn’t all get done in one go. Often I would make something that was good enough at the time, and then went on to improve it when inspiration struck. Don’t get disheartened if it isn’t perfect first time. I got better at things through practice, and many of the assets went through multiple iterations before their current version.
Start small. You probably won’t be able to build an open world adventure RPG for your first game. Be realistic. Cloning classic games and putting your own spin on them is a great first project, and is in fact something I plan to continue doing.
Work a little every day. I like to sit down for 30 or 45 minutes in the evening and do a little something, be it an experiment with pixel art, some new code trick I want to try out, or releasing a new update to my current project.
Joining a game jam is a great way to hold yourself accountable and set a time limit on building something. It might also serve as inspiration, as many jams have themes. There are regular game jams run on itch.io.
Release your game early, at least to a small group of testers. Then listen to feedback, but don’t do everything that is suggested. While most feedback is given with good intentions, it’s ultimately your vision that matters. Do let people know that their feedback is valuable.
If at all possible, actually watch people playing your game in person. Watch how they use the controls, what their reactions are and how they respond to the game.
Resources
YouTube is full of excellent game making content. I’ve devoured probably hundreds of hours of content from GMTK, AdamCYounis, GDC, CouchFerret, Kiwii, PixelOverload, Madbook and more.
Similarly, there’s tons of websites and blogs dedicated to game development, techniques, tips and algorithms, like Red Blob Games, Game Programming Patterns and the astroids, dungeon and invaders categories on the blog by Ron Jefferies.
itch.io is just chock full of digital assets, both free and paid, for game development. If you want to make your own, as I did, get the right tools for the job. Aseprite is great for pixel art. I used a combination of ChordChord, OneMotion Chord Player, ChipTone and GarageBand for music and sound effect, though I plan to explore using SonicPi next time.