Devlog #3 – Retrospective 2017

Happy 2020 martians,

Today I’m showing off where I ended up with Martian Medical in late 2017 before switching from SDL to SFML. This final build had a lot of the core elements I was keen on nailing down, such as an interface, a* pathing, interactions for construction and object queries, staff hiring, and a basic Mars environment. The art style also started to take shape, I commissioned all of the environmental art and my doctor character to get a feel for it all. UI design and artwork I have found to be far more difficult than the programming side!

I also experimented with a day-night cycle that looked pretty sweet, but ultimately this was placed on the backburner when I began to prioritise tasks on switching to SFML. It was one of those things that sounded great at the time, and it was hecka fun to program, but in retrospect it didn’t bring me any closer to bringing the game to a playable alpha state!

One of the reasons why I pursued a day night cycle early in is because I hadn’t considered the distinction between programming as a hobby, and developing an indie game with the intent to publish. I believe I kept myself engaged with this project by focusing on the elements of the game that produced the most tangible or visible outcomes! Like parallax backgrounds, daynight cycles, artwork and animations. When it came to working on my classes to improve efficiency or manage resources, and scripting of patients and staff, I definitely noticed a slump in my interest because the rewards weren’t always visual.

Devlog #2 – Retrospective 2015

I’ve decided to kick off this devlog with some retrospective posts about when I first picked up game dev and to create Martian Medical. Cast your mind back to 2015…

I had decided to learn C++ and games programming from moderately low level, so with a little searching around I decided to do my early learning and Martian Medical prototypes with SDL2. It was around the same time that a friend of mine was learning Unity, and we often argued about which was better. In reflection my interests skewed towards programming and his toward game design, so I think we were both on the right track with our choices. Unity is a fantastic tool and he now has a bunch of games under his belt, but I was keen on how things worked under the hood first.

Between studying full time, working part time, and expecting my first kid, I would spend an hour or 2 most evenings learning and writing terrible code. The first goal I achieved was to create an isometric world that I could interact with by building some floors and walls, as well as an interface to support it.

I was super proud of this when it finally worked! Compiling some code and seeing it work remains an extremely rewarding experience. It’s as simple as it looks: an isometric grid with tile-picking, and sprite swap on the picked tile based on the active button. This version also had some zooming and panning of the world.

Creating this with SDL while learning C++ was fantastic because it taught me some of the key basics of games programming including:

  • Game loops and frames per second
  • Input processing from mouse and keyboard
  • Texture loading and the graphics pipeline

At the time, armed with this knowledge I felt like I could create anything! But I quickly hit new hurdles and discovered how naive I had been.

  • The project was not built to be scalable. My classes were written to achieve the above goal, and they did, but they couldn’t do any more than that. It’s not feasible to update your whole engine each time you need a new feature, I would have to plan ahead.
  • My UI was very basic – a simple button class with 1 texture, no free text or font rendering, scrolling boxes or overlays hard coded to a set resolution.
  • There was no sprite batching – each tile was a draw call to the gpu, not something to see until you add more textures on a huge maps and your game grinds to a halt.
  • I’m not actually building walls! Videogames are great at creating these illusions and I really fooled myself on this one. All I am doing here is changing the tile graphic, not actually building a wall object. This build had no real game objects at all, so real meat of the game was still grazing in the paddock.

I definitely had some naïvety about game development when I first started, and wasn’t truly expecting just how much time and effort it takes to create some of the amazing games we see today. This is part of the reason why I eventually shifted from SDL to SFML, where I could create my own engine using their base classes that saved me a lot of time that I could then spend on game design.

Devlog #1

Hello and welcome to the first Martian Medical devlog! Thanks for taking the time to have a read on what’s happening with this project. There will be a lot of firsts today after finally getting a blog off the ground so get I’m going to break it down into a few sections.

Who am I and what am I doing?

I’m an Australian with a background in php and web development, a love for videogames, currently working full time in healthcare. When I changed careers I missed programming, so I decided to challenge myself by shifting my perspective from playing games to making them. This project is my first foray into proper game development, programming languages like C++, and engine design. It is primarily a labor of love, but has already evolved into something that I want to see completed and shared with the world.

What can I expect from this devlog?

This is a blog about all aspects of my journey to develop Martian Medical from an idea to a finished product. I’ll be sharing and discussing game features and progress, how I made design decisions, my struggles and solutions etc. As an amateur game dev expect posts on some really basic stuff as well. I will also share any exceptional game development resources I find. This is my first blog so looking forward to all that it brings!

What is Martian Medical?

One of my fondest gaming memories was the classic game that is Theme Hospital. This project is my take on the hospital simulator genre where I carry on the inevitable need for medical services to the planet Mars! For more information check the game page.
Martian Medical is being developed in C++ with the SFML2 library, and nothing else. I use the CodeBlocks IDE and MinGW to compile.
Artwork is primarily of my own hand, but eventually will all be sourced to actual talented artists.

How can I contact you?

If you want to reach out to me you can drop a comment here, on social media, or via the discord channel. Feel free to email me at avon@martianmedical.com