Posted December 22, 2019 by Pandaqi
#website #landing-page #physics #holiday-break
Welcome to the thirtieth devlog!
A few days ago, I published the latest major version of the game (version 0.3, with 13 levels). I’m very proud of it and hope you enjoy it as well :)
I also just uploaded a patch (v0.31), because I found a game-breaking bug and needed to fix that as soon as possible.
Because the holidays are just around the corner, I decided to take a little break from the game and postpone work on version 0.4 until after New Year. (Like everyone, I have family commitments, desperately need some rest, and think it’s always wise to take some time to get fresh ideas.)
Instead, I worked on some “peripherals” this week, which are:
Where is the video devlog? Unfortunately, I'm sick at the moment and can't record my voice :( Well, not in a pleasant sounding way. So the video devlog will have to wait. Hopefully, I can record it later, because I really want to talk about the content of this devlog, as it's really interesting :)
Before I created games, I developed websites. As such, I always want to create my own websites from scratch, instead of using existing systems/providers/libraries.
This also has some other advantages:
(Of course, there is the disadvantage of “you have to do absolutely everything yourself with no help”. But hey, a good challenge is a good challenge.)
After a few days of too much work and too little sleep, the website was done!
You can visit my official game studio website here: http://pandaqi.com
The website’s primary goal is to showcase my games and the general “mood” or “atmosphere” connected with my game studio.
That’s why I chose the following design:
Each game has its own “subdomain” on the website, which functions as the game’s landing page or home base. Because these pages are completely separated, I can style and structure them however I want, which allows me to create a unique design that fits the game.
(Whenever it seemed applicable, I did expose functions from the main website for easy re-use. For example, all landing pages still have the same footer as the whole website. It will save me a lot of time in the long run, connects all the pages (so visitors have somewhere to go once they’re interested), and keeps the website a little more consistent.)
Last but certainly not least, I added a mailing list. I’ve wanted to create one for a long time, as email is still my primary social platform, and I follow many other developers/games using a mailing list. I just never found a good place to put it.
At first, I wanted to code the system myself, but after some research I decided that would be foolish. Too many things to worry about, for too little reward.
I eventually put the free and open source PHPList on my website, which worked like a charm … after spending 5 hours pulling my hairs out because it just wouldn’t work :p
(Turns out my hosting provider uses a weird address for SMTP email. It’s usually something like “smtp.pandaqi.com”, but no, theirs was something completely unexpected.)
I always try to include at least one thing that makes the website unique. Not only to engage visitors, but also to challenge myself and make the design process worthwhile.
And so I thought: “What better way to showcase a game portfolio … than to make the website itself a game!”
I did some research and found only a handful of “gamified” websites. Most of them, however, were completely unusable. You had to play a platformer, grab a key, open a door, before you could even access the page you wanted to access.
I decided to push the game on my website more to the background. Eventually, I landed on a quest system.
For every quest you finish, you get points. Those points don’t actually do anything, but that hasn’t stopped everyone around me from trying to find all those pandas :p It’s about the game, not the reward.
If you don’t want to participate, or need more information, there are also clear buttons for that.
In the end, I hope the website looks and feels like a fun place, and that it shows off my games very well.
At the moment, there are only three games. Which looks kind of sad. But soon enough, I hope to put some more projects on there and further fill the website.
As you wish! My latest playtests went really well, which makes me sure that world 0 (tutorial) and world 1 are as good as finished. (Gameplay-wise, not visually of course. Half of the assets are just default cubes at the moment.)
However, a lot has changed the past few months, which means my original plan for the game is wildly outdated.
For example, I had originally planned to start “multi-component deliveries” in world 2. The first level of world 2 would explain that from now on:
… and then it turned out that players already had difficulties with the easiest parts of the game, so adding this step in world 2 would be waaaay too difficult.
I’ve updated the plan to spread all the fancy mechanics evenly across all the 10 worlds. (Multi-component deliveries will probably appear somewhere around world 5.)
It’s still very much a work in process, though. To be honest: designing levels is hard. Even harder than I expected.
You want a good difficulty curve, but you also want a good challenge curve. Each new level must be fresh and challenging, but not too complex and overwhelming.
That’s why I constantly have doubts about introducing mechanics. Isn’t it too early? Or is it too late? Is this mechanic enough to keep players engaged, or do I need something more “grandiose”?
That’s also the reason why I want to take a short break over the coming month. I need time to generate fresh ideas and to find the absolute best way to structure the rest of the game. Of course, I’ll still be working on things and fixing issues with the current game/levels.
Talking about issues …
Trampolines should be easy, right? They’re the default element present in any game that has the slightest hint of platforming elements.
Well, guess again.
It took me an insane amount of tries to get them working, which is partly my fault, but also turned out to be a great learning experience about implementing physics.
My first implementation was something like this:
But there was a big problem: the force was inconsistent. Sometimes you jumped very high, sometimes you didn’t jump at all. (Why? Because the upward force would just be added to the current velocity of that “something”. Also, if something was falling very quickly, it could just get stuck in the trampoline or bypass the sensors.)
I fixed it with this:
Worked nicely, no more issues, no more getting stuck.
A few levels later … I jumped on a trampoline with packages stuck to the player.
(If you don’t know: at the start of this game, all players are automatically made of glue. This means you can just walk against a package and it will stick to you. This makes it very easy to get into the game and to carry packages without having to learn a button.)
My feet barely left the ground this time. Why? Because those packages made the player heavier.
I tried a bazillion different methods, until I figured out that high school physics formulas were all I needed.
This isn’t even the full story, but it’s the most important/interesting part I think.
(For example: in another level, I wanted angled trampolines. In that case, we don’t have a desired height, but a desired distance. That required a far more difficult formula, but it still worked flawlessly once I had figured it out. If you ever want a tutorial/explanation on that, just send me a message!)
It’s funny how I keep learning new stuff about physics as I develop this game. For example, a few months ago I tried to make a catapult, but just couldn’t make it work. (Even more problematic than trampolines, as you might expect.) A few days ago, I tried again, and got it working smoothly within five minutes.
Physics can be extremely annoying, but once you get the hang of it, you can do really nice things :)
In summary:
Until the next devlog,
Pandaqi