Monster LED Pads + Monsters

Alright so the mechanic theme for this contest has been chosen and we’d like to explain what the theme actually means. And some of the cool things you can do with it.

First off what are “Monster LED Pads”. Well in order to answer that let’s talk about LED Pads first. LED Pads are an entity that you often use in conjunction with LED Boxes and LED Doors like in the image below:

screenshot_2020-4-22_9-9-25.png

The idea behind is the door opens when all of the LED Pads are covered with LED Boxes like this:

capture_2020-4-22_9-13-56.gif

The color of the LED Pad/Box/Door matter so that you can make puzzles like the one below:

capture_2020-4-22_9-16-20.gif

That’s all well and good. But what the heck is a “Monster LED Pad”? Well, it’s an LED Pad that lights up when the appropriate color monster is on top of it:

screenshot_2020-4-22_9-21-36.png

One of the options inside the LED Pad is “Required Type”:

screenshot_2020-4-22_9-22-44.png

In this contest the goal is to use any of the Require Types from “Any Monster” down:

screenshot_2020-4-22_9-27-53.png

So with the help of a red skeleton we can make a puzzle where the LED Door opens when the skeleton is on the red skeleton LED Pad:

capture_2020-4-22_9-32-51.gif

You’ll notice I had to add some carpet to get the skeleton to stop moving once he’s on top of the pad. LED Pads do not light up for entities that are moving across them. The entity has to stop on top of the pad in order for it to trigger:

capture_2020-4-22_9-34-25.gif

With most monsters carpet is a good way to solve this. You can also use the new occlusion entities which stop monsters:

capture_2020-4-22_9-36-21.gif

Another clever way is to use a 4 sided Rail with only the inner edge enabled:

screenshot_2020-4-22_9-39-12.png

This rail will also trap the princess if she steps on it:

capture_2020-4-22_9-40-53.gif

To prevent this you could set up a rail that gets triggered by the monster walking into the space. In order to do this first disable the Rail’s inner and outer edges:

screenshot_2020-4-22_9-44-11.png

Then set “Trigger Type” to “Toggle Both”:

screenshot_2020-4-22_9-44-15.png

Set the group number to a group that isn’t currently in use. In this case I’m using group 3:

screenshot_2020-4-22_9-44-24.png

Now once something triggers group 3 the rail will change from being something you can walk over freely to being a square trap for anything inside of it. Place the rail on top of the LED Pad:

screenshot_2020-4-22_9-44-53.png

Now we have to trigger the group when the monster walk on top of the pad. There are lot’s of different trigger options we could use (including the LED Pad itself) but I’m going to use a “Sensor” entity which can detect many different types of entities when they enter or leave a rectangular space:

screenshot_2020-4-22_9-45-2.png

To make this work I set the Sensor to be 1 width and 1 height so it can fit nicely on top of the LED Pad. I set the “Detect” option to “Monsters” and made sure the “On Enter” option was set so that it will trigger only when a monster steps onto the pad. And I set the group number to 3 so it will trigger our Rail trap:

screenshot_2020-4-22_9-45-24.png

And of course place the sensor on top of the LED Pad and Rail:

screenshot_2020-4-22_9-45-32.png

Now we can walk over the Monster’s LED Pad as if the rail wasn’t there but the second a monster walks onto the LED Pad the rail will become solid and trap the monster on the LED Pad:

capture_2020-4-22_9-46-3.gif

That’s it for this tutorial for now. There are whole ton of options that you can play with on LED Pads, LED Doors, and of Course the Monsters themselves. If you run into any specific questions about what each option does don’t hesitate to comment on this post or ask us on Discord

The Level Editor (Wikipedia?, Tutorials?, Etc.)

One of the things that we knew we would get questions about when releasing the demo was how to use all of the options in the level editor. Once you take a look under the hood you can see that Princess Castle Quest is pretty simple in it's design. There's no scripting system or complicated logic trees (yet..) but you can still make some complicated contraptions even with the group system we have and we are always looking for ways to make more things possible.

As it currently stands we have 109 entity types and 319 total variants (excluding decorations) that show up in the pick menu in the editor. That's a lot of entities and many of them have a bunch of options that can be used to make the entity perform a large range of possible interactions. More over, we are often adding and removing options and adding new entities to the game in each update. So somehow we need to help people understand all of these options and entities while also keeping them up to date on the latest changes.

We are going to try a variety of things over the next couple of months to try to help people get familiar with the editor. We'll see how well various things work and try and double down on the stuff that is the most effective.

The main thing I'd like to try and start is a wikipedia page for the game. I think that, given the number of entities and options for each entity type, it is vital to get all of the information about each entity written up and filed in a way that is easily searchable and nicely ordered. This is going to be a large task and it's probably never going to be 100% complete until we stop making changes to the game. Much of the initial content for the wikipedia is probably going to be written by us since we've had the most time in the editor so far and know all of the options. However, as the basics start to get filled in and as people start to experiment with the options and entities we would love it if people could help contribute to organizing, writing, and updating the content. If you have experience with managing a wikipedia database for a game or if you know someone that does and might be interested please email us at PrincessCastleQuest@gmail.com

Along with the wikipedia database being hosted online we would love to make it easier to access by providing ways to get information about each option/entity/variant from within the editor itself.  There's lots of ways we might do this, the simplest and probably the first method we will use is just to have a copy of the wikipedia content shipped in the game files in text formats that can be read and displayed by the game. However, as things get larger and especially as people start contributing to the wikipedia online these files are going to get harder to keep up to date. From that point we will probably be looking into ways that we could either source the text from the wikipedia online or at the very least create some tools that help us generate these files from the current wikipedia content.

Aside from the wikipedia content we would love to spend some time making tutorials of various sorts. Tutorials take a lot of time though and are also subject to going out of date as we change things so when we spend the time and how we format these tutorials is to be determined.

We also plan to make an in-game tutorial for the editor down the road but this will likely come much later in the Early Access lifecycle as we get closer to finishing the way all of the menus look and how all of the systems work.

Alright this post is getting a bit long so I will finish it up there. Needless to say we have a lot of ideas and plans that we are looking forward to and we hope that you can bear with us as we try to make everything happen. Thank you to all those who have downloaded the demo and especially those who have started to play with the editor, despite the lack of tutorial. We are excited to see what people make and we are happy to answer any questions people might have. We hope you are having a good time and we'll talk to you in the next post!

Early Access is Here!

We’ve just released the game in Early Access on Steam. If you are interested in getting involved with the game during it’s early stages of development you can pick up your copy today:

Join the wild ride of Game Development as we add new features, create new levels, and experiment with what’s possible in a 2D box pushing puzzle game over the next year or so of Early Access. The game may not be a perfectly crafted experience yet, but make no mistake, there is no shortage of things to do and create and there’s more being added every day.

If you’re interested in the game but don’t want to spend your money we are also working on a demo version of the game that will be completely free. Stay tuned for information on that.

Or join us today on Discord and see screenshots, changelogs, and talk with the developers along with a wonderful community of people:

2 Years and 13,596 Builds of Princess Castle Quest

Hello everyone! Welcome to the official Princess Castle Quest development blog. My name is Taylor, I am the lead programmer/designer on the game. I would like to use this space to share some of the experiences that we have had building the game over the last 2 years. Being a programmer, I plan on covering a lot of the interesting programming and technical decisions that were made. So if you are an programmer or game designer I hope that I might be able to get into some of the specifics of this game and it’s underlying technology and present a sort of case study that you might be able to compare your own experience with. If you are an aspiring programmer, or new to game development, this might also give you a good idea of what it’s like to make a game. However, I hope that many of these posts are also understandable and interesting to general audience as well so don’t be too discouraged if you are just looking for something nice to read with some screenshots and gameplay videos along the way.

As you might expect, this game hasn’t always been what it looks like today. I’d like to take some time over the next few weeks to recollect and record various points in the game’s history and share some stories about the process and game design choices we made along the way.

The first commit was made on December 4th, 2017 and it contained a single text box (some code that I pulled from another project).

0029_Screenshot1.png

This is our beginning. The backbone of Princess Castle Quest. Actually, until very recently, it has been called Princess Dungeon Smasher. And December 4th was not actually the first version that was created. This game actually started when I was in High School. I was taking a Computer Science class with my brother Colby. I had skipped the intro programming class by testing out of some simple C++ questions which meant that I, a Freshman, was in the same class as my brother who was a Senior. The upper level class was quite simple in design. The only thing we really had to do was make a game by the end of the semester. We got to choose what language/engine to use. We got to choose any game genre to make. Our only goal was to have something to present by the end of the semester to the class. So me and my brother started working on a puzzle game. I’m not entirely sure who’s idea it was but the initial concept was to have a princess be the main character. She would have a pink dress and we gave her a sword just for the heck of it (it would be a long time before she actually started using that sword). So we got to work in C# with Microsoft’s XNA and we built a “game” of sorts with some of the most basic stuff. I will be going over this version of the game more thoroughly in the next post but to give you an idea here’s a screenshot from the beginning of the game:

Original_Screenshot1.png

Anyways, my brother graduated High School that year and I moved on to working on other projects. If you are interested in some of the things I’ve made over the years you can check out my projects page at https://www.siltutorials.com/projects/

At some point later down the road there was actually another, less finished version of Princess Dungeon Smasher that I made in Monogame. This version was much less finished in many ways but it did contain a bit more of an editor. Unfortunately I don’t have a working version of this game and I never created any footage or screenshots from it so I won’t be able to show you what it looked like.

However, a short while later I worked on a version made in Game Maker. I had actually started my programming experience long before high school in Game Maker and though I had moved on to other more involved languages I decided to see what I could do with this old engine. This version didn’t include an editor and the exit button didn’t even work but it is a simple example of some of what I call the “basic” mechanics of the game. It’s actually the version you can find on my projects page that I linked above and you can install and play it if you would like.

Original_Screenshot2.png

After this, the game idea wouldn’t be touched for another five years. However, it always held a place in my heart as that quirky little puzzle game I made with my brother in High School.

So now back to the end of 2017. I had been working on a project called Const Port for use at my day job and decided to start another game project in C with OpenGL+GLFW as a backbone. After some other experiments I finally started working on a new version of Princess Dungeon Smasher. That first build I mentioned above is essentially a stripped version of Const Port. The platform layer I had built for windows and the general code for handling things like vectors, matrices, rectangles, and other general purpose classes had already been built. In fact I had been programming in C for a long while making various other projects before I started working on Princess Dungeon Smasher again. I wouldn’t call this a game “engine” like Godot or SDL, but it does serve as a backbone and starting point for our project. To a reasonable degree everything in this game has been programmed from scratch by me over a process of a little less than 2 years. There are various reasons for doing it this way, but I will cover that in a later post. Also the inspiration and design of this platform layer comes largely from Handmade Hero which I highly recommend checking out if you haven’t heard of it before.

To get an idea about how much work was being done on the game at various points in the past we will use a simple metric that was built into this code from the beginning. Every time the game was built (successfully or not) I had a python script increment a “build” number. The build number acts as a crude estimate of how many different versions the code went through over a period. The first commit I showed above started at build number 29. And today the build number sits at 13,596. It’s hard to articulate how many builds that is but hopefully we will come to understand it as we walk through various versions along that path. Obviously we don’t have time to go over all 13,000 builds, nor do we have all of them saved in separate commits. We also can’t cover all of the 741 commits that have been made to the game. So I have spent some time and compiled a list of 33 different commits to look at. Each one represents a different time in the game’s development and we will be covering 1 or more of them in each post.

Folders_Screenshot1.png

Hopefully this give you a rough idea of where this blog will be going. I’m sure how long it will take to go over all of these commits since I am still actively working on the game and preparing for early access on Steam and I still work full-time as a firmware engineer. However, I am excited to catalogue this journey and share it with all of you along the way.

If you have any questions about a particular topic along the way or would like some more information about something in one of the builds feel free to leave a comment or send me an email at PrincessCastleQuest@gmail.com

If you like the game and are interested in buying it please stay tuned to this blog. We will be revealing our Steam store page soon and announcing an official release date. You can also follow us on Twitter, Instagram, Facebook, or Youtube. Thanks for taking the time to read all of this and I look forward to posting more updates in the near future