leejwatson-blog
leejwatson-blog
Lee's Game Dev Blog
1 post
Don't wanna be here? Send us removal request.
leejwatson-blog · 5 years ago
Text
Game Dev Log #1
I’ve decided to start work on a new project after having an idea to do so for some time. I want to make a game heavily influenced by The Legend of Zelda, among other titles. I want to create the game for PC, Mac and Linux initially. I want to log my progress with this blog and hopefully when the project is nearing completion some people will be following and want to play my game. I have never made an entire game and I’m under no illusions about how difficult game development is and how much work I’m going to need to do. You need to write the code, make the art, animate the art, compose the music/sound FX, write the story, design the game worlds, test the game etc... But I’m not a complete beginner. My background in education is computer science and I have a decent bit of experience and knowledge when it comes to programming. My coding experience is mostly limited to web projects using PHP however I have made a lot of scripts for little projects I’ve created in the Unity engine using C#. I’ve played guitar for many years and I have invested in really good audio equipment for recording and creating music electronically. Creating the art is the only area where I believe I will hit brick walls but my strategy to mitigate this weakness is to create all the assets using a 2D pixel art style, which I have been learning for a little over a month now and is actually relatively fun and easy to pick up. Couple all of those barely useful skills with around 17 years of my time mostly spent playing video games, I think I’m finally qualified to start working on a game of my own. Given that there isn’t a massive amount of code required to make a 2D adventure-RPG game, instead of using a fancy engine I have decided to code my own engine from the ground-up. I will do this using C# and XNA. XNA was discontinued by Microsoft in 2014 but still lives on with the MonoGame framework which allows XNA applications to run on newer versions of Windows and also just about every other platform, great! Other indie games made with C# and XNA/MonoGame include Terraria, Bastion, Fez, Owlboy, Stardew Valley and Celeste to name a handful. To create the art for the game I’m using an editor called Aseprite and I’m creating everything in a 2D 16x16 pixel art style. This lets me create my tiles as well as animate them. For anything music or sound related I’m just going to use Garageband on my mac. It’s powerful enough to create game sounds and music and I’ve already created some pieces in it using a midi controller keyboard. I also own a Blue snowball Mic to record sound FX should I ever need to but I believe I will find any FX I need for the game online copyright-free. The very first thing I have created for this project is an animated sprite resembling a character, created purely for the purpose of creating and testing the game in the early stages. I think he looks pretty cool for being created by someone with just a month of experience using pixel art:
Tumblr media
All you start with when you create a new MonoGame project in visual studio is some template code to help you display an application window:
Tumblr media
The first work I’ve done on my game engine is creating a working state manager. A state in an application or game is just a section of your application or game. For example, your main menu would be it’s own state, each level/area/world in your game will have their own states. A state manager sorts between these different states say when you want to pause the game during play.
Tumblr media
You can’t actually tell that it’s working but the font is drawn in a test gamestate which is an object of the parent gamestate class. The next thing I did was create an animation manager to handle animations in my game and an input manager to handle user input.
youtube
He moves! The next thing I’m going to get to work on is displaying tilemaps from a free tile map editor called Tiled and a little bit of extra player functionality. I’ll probably also draw some more basic tiles (dirt, grass, water etc.) to make a nice looking testing area. If anyone out there is actually following this blog right now expect slow but big updates!
2 notes · View notes