Posted January 21, 2023 by BlueFrostGames
This is my first devlog! I'd like to write these more regularly and share how I'm actually making the game.
A quick intro about me: I'm a full time webdev but I actually majored in Game Dev while in school. When I graduated and was looking for jobs in the game industry, I wasn't prepared for the exceptionally low pay and ended up going into tech. After a few years of establishing myself, I decided I want to do indie dev and this is my first time really going all in.
I first started developing this game for a game jam - My First Game Jam back in July 2022 and this was my first game jam in many years. It started off as a puzzle platformer! Portal 2 is one of my favourite games of all time. Solving the logic and physics based puzzles were some of the most fun I had playing Portal 2. I even made a couple of my own levels back then and shared them with friends and family. One of the things I enjoyed most about Portal 2 was the level editor and being able to make my own games. For the game jam, I decided I'd try to recreate a similar game but in 2D (minus the level editor though), and that's when I started work on Teleportal.
I got called away for work during the game jam though and had to travel overseas. Unfortunately this meant I couldn't work on the game in the evenings as I had initially planned. Even though I got cut short, when I came back I decided to continue development. Since then a lot has changed.
The first major change I made was that I removed the platforming elements and simplified the controls. The player character can only be moved by three interactions:
This constraint made the interaction system a lot simpler and constrained the design for puzzles. Part of the motivation of simplifying this was that I couldn't demo the game to friends and family easily since it required a keyboard and mouse. Now the game is playable on PC and touchscreens since it really only needs a single pointer (touch/mouse) input.
On the technical side of things, I spent a lot of time abstracting away the idea of switches and "powered objects" such that I didn't have to reinvent the wheel each time I wanted to add a new type of object that could be powered by a switch. This has allowed me to iterate really fast on level design and add new "powered components" arbitrarily.
I then spent a bit of time creating a few levels as a tech demo, mainly to test how the core mechanics were being received by players. In particular, I wanted to avoid writing a tutorial and so I tried to create a few simple levels that would teach the player mechanics just through interactions. This took a lot of time to get right and I ended up iterating a lot on this alone.
A few observations I made
Based on some of those observations, I added collectible stars. The collectible stars serve two purposes in my game
I also added a stop watch to give some incentive towards collecting the stars and solving the puzzles faster. I spent time refining the visual feedback further and redesigned some of the puzzle components until finally my early play testers (friends and family, but different each time) seemed to start progressing and understanding the mechanics better.
I'm now at the point where I'm mostly confident in the core mechanics and can proceed to create more levels, but first I need to close the loop on the game loop itself!
This week I added an end of level summary screen which shows how many stars you collected from the level and a stopwatch.
I intend to automatically save the leaderboard on the client side first and eventually push to a cloud (steam, google play, etc.). The feedback loop isn't really complete without at least a local leaderboard so you can measure performance against yourself, but the friend/global leaderboard will be what makes the game more engaging.
Next I'd like to do a main menu and level select. Ideally the level select will be dynamic, based on some scriptable objects I already have which store the sequence of levels. I also want the level select to be a bit more interactive and actually reinforce some of the existing mechanics (teleporting, portal doors, switches, etc.). Once I have that level select system in place, I really need to focus on adding actual content. Right now there are only a handful of levels for testing mechanics and it's more like a tech demo than a game.