Creature Corp is the name of a game that I’m working on with a good friend of mine. We have been trying out ideas briefly and working on finding something that we think we are capable of completing as a team and something that we would enjoy playing. This is what we came up with:
You are the owner of a new intergalactic corporation which has begun collecting exotic animals on distant planets in order to sell them as pets to people back on Earth.
You will receive news from home about what traits among the pets are trending and what people are paying money for. Your goal is to find what people want and sell it to them.
As the CEO of this corporation, your job is to hire trap teams which you will deploy to particular regions on the planets that you visit in order to find what will hopefully make you rich: exocit pets.
Capture the best creatures you can and sell them to the anxious patrons on Earth to become rich beyond belief. You are an entrepreneur after all.
Your main view will consist of a map of regions on the planet you have visited as well as a few windows on screen to display important information about the area as well as progress reports from your hired trap teams.
One of the main goals of the game is to build emotional attatchments to your trap teams as they go about their business and grow as a team catching more rare and dangerous creatures that you will eventually sell.
Be careful though, because at any moment you could lose your prized trap team and be set back thousande of interstellar credits in your quest for riches.
I have decided to alternate between Creature Corp and Blind/Hide weekly so that I can get some varied dev time as well as make progress on two games at once. The last week has been all about Creature Corp.
Unfortunately, I don’t have any exciting gameplay to show because much of what I have done has been all about the GUI. The game will be played from a “zoomed out” perspective and controlling trap teams via windows and progress data will be the core of the experience. GUI is important and without it, there is no gameplay.
Here’s a snapshot of what the engine looks like so far. In a couple weeks, I should have some neat little trap teams running around and catching some exotic pets:
There isn’t much going on behind the scenes that is interesting or new to me, so I don’ thave much to say about the code. Tweaking interface components isn’t the most exciting job in the world, but it needs to be done.
I’ve springboarded off the last week into a much more productive five days. My only goal was to get some basic echolocation working, but I got that done and decided to add a splash of pathfinding in afterward.
One of my favorite Roguelike Radio episodes was the interview with Brian Walker, the creator of Brogue, and I remember him talking about the Dijkstra maps he uses for all kinds of stuff including pathfinding and AI. So, I did a quick search, read a bit about how he did it, and got to work.
Originally, I planned to show the sound from the echolocation device as a circle that radiates outward from the player. After some thought, it felt a little cliche to me. It’s also mostly a graphical decision because I have no good mechanical reason to do it that way.
So, for now the echolocation mechanic is displayed by lighting up tiles in a box around the player. It’s not natural, it doesn’t look flashy, and it needs a lot of tuning, but it is also nice to get something that I can actually play around with. This is a core mechanic to the game, so it will see a lot of iteration going forward.
The very basic implementation I used for the pathfinding is exactly what Brian explains in the article that I linked above. The player’s location has an initial value of 0 and all the other tiles are given a big number as their value. Looping through the pathfinding map and incrementing adjacent tiles creates a very handy array that tells enemies which direction gets them closer to the player.
I’m pretty excited about playing around with more of this “Dijkstra maps” in order to experiment with AI, particularly while also trying out “utility based AI” (this gem needs an entire article all to itself) for the first time. Exciting times!
I’m happy with what I got done this week, but there is much more to do. Next weekend I will be going to a game developer meetup that I haven’t been to in a very long time and I’d like to bring something interesting to show off. That means it’s time to get back to work!
This last week has seen slow and steady progress with my roguelike side project that I’m currently calling Blind/Hide. Unfortunately I missed Sharing Saturday on /r/roguelikedev but next week I’ll have more interesting things to talk about anyway. Here’s an overview of my plans:
You play as a blind inventor in a steampunk world and your two main inventions are your camouflage, which makes you near-invisible, and your echolocator goggles. For some reason, you’re on the run and any law enforcment will stop at nothing to see you captured or dead.
Many roguelikes, and RPGs in general, like to toss stealth in the mix for a bit of varied gameplay. My goal is to make it your primary goal and I will be removing traditional combat completely. You will probably have more that one hitpoint, but the goal is to get hit as infrequently as possible. More on combat in the Traps section below.
Since you are a blind inventor you will need some other way to survey your surroundings. Your echolocator device will use sound waves to collect data about the environment. You also have an intimate knowledge of most things mechanical which will help you understand what you are “seeing.”
This mechanic is something I’m really excited to play around with, because I believe the visual effects will have a huge impact on gameplay. Plus, I’ve never programmed anything like it before, so it’s gonna be fun.
You won’t be able to fight back when discovered, so you’ll have to use your cleverness instead. As an inventor, you’re great with the metal scraps and items you find lying around so use them to make contraptions that will give your pursuers a hard time.
These mechanics will also be fun to dive into. I have some ideas in my head about how I can make some unique traps that might catapult, push, slow, root, and blind your enemies. It’s going to be a blast figuring out how the hell to make these work in code.
It’s about time I buckle down and make a game that I can be proud to release to the world. The plan is to keep my aspirations in check and stick with a small-to-mid-sized RL to keep things attainable. The source is open and freely available on Github, so anyone who likes it can tinker with it as well.
I have been chiselling away a little bit at a time, every day, trying to get stuff moving on screen and interactive. Since I’m using C with SDL2, things will move along at a relatively slow pace (as compared to using a prebuilt engine or framework) but the learning process is half the fun.
Here is what is in game right now:
Yup… not that exciting, but you have to start somewhere. Here is what I plan for next week:
Let’s hope I can get some cool stuff to show off before next Saturday.
It’s time to christen the new blog with the first post. I’ve written blogs before, but never anything super exciting. Because of some strong recommendations, I have decided to give it a go again.
I will be logging any interesting information as I try to work my ass off and stay sane. Here are some examples of what you may get to read about here:
My friend and I have started working on a game together (a long overdue endeavor) and for now I’ll just say it has to do with capturing and possibly breeding alien creatures.
On the side, I have decided to do something that has been in the back of my mind for years: make a complete mid-size roguelike. The goal is to spend at least three months creating something substantial that at least one other person likes to play. Easy right?
I’m terrible at playing roguelikes, so I have never come close to finishing one other than a couple very small RLs. This is why I have decided to pick one of the good ones and spend a small amount of time every day learning to play, and more importantly beat, it.
Lastly, most of my time will be spent working towards my PhD.
This blog is mostly meant for myself in order to take notes, take breaks from the insanity of code, school, and family, and to have a record of what I will have done here.
If I do happen to pick up a few readers along the way, I’m excited to hear from you. I’m all over the interwebs as CaptainKraft and Twitter is a great place to say hi. Thanks for reading.