Welcome, Guest. Please login or register.

Login with username, password and session length

 
Advanced search

1411506 Posts in 69374 Topics- by 58429 Members - Latest Member: Alternalo

April 25, 2024, 10:31:53 PM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsCommunityDevLogsIn Corporeal [atmospheric puzzle platformer] GameDev.tv Game Jam 2022 Submission
Pages: [1]
Print
Author Topic: In Corporeal [atmospheric puzzle platformer] GameDev.tv Game Jam 2022 Submission  (Read 675 times)
yousayrandy
Level 0
**


View Profile
« on: June 04, 2022, 04:14:16 PM »

GAME UPDATED 7/27/2022! STORY ELEMENTS ADDED! SEE RECENT POST BELOW!
GAME COMPLETE! Play it here: https://yousayrandy.itch.io/in-corporeal


In Corporeal
An Atmosphere Puzzle Platformer
Post-Development Reflection

This is the DevLog for the 5th (for the month of May) in a series of game jam submissions for a challenge I gave myself to complete a game jam every month of 2022. You can find the previous DevLogs (with the exception of January) here:

February: Stress CUPacity
March: Rescue Matters
April: Plugging In Simulator

Introduction:

Post Development Reflection?: For the month of May, instead of doing a DevLog simultaneously with the development of my game jam submission, I decided to focus all of my efforts on creating my game. This will be a recap of my experiences while making it, probably with more generalities and ramblings than hard development details. Now, for the basic stuff that I copy and paste for every DevLog:

Who am I?: My name is Randy, a hobbyist game developer. You can find my introductory post at: https://forums.tigsource.com/index.php?topic=45.11660 I am not the most experienced of game developers, but I've dabbled enough to be able to (hopefully) complete this simple game I'm trying to make.

Why are you doing this?: Because I hate myself. Kidding! I love gaming, I've loved making them, and I want to keep doing it and get better at it. I am also fulfilling a promise to myself to complete a game jam every month for the year of 2022, and this game is February's contribution. I am documenting this process to help myself and others with the whole learning game development thing.

A Game Development Reset:

If you read my DevLog for April (which you can find at the link above), you will know things got a little bit dark. I lost my job which spiraled me down an emotional drain and put a stop to any motivation I had to develop that month's game. I was beating myself up, telling myself very black-and-white, doom-and-gloom statements that did nothing but harm my confidence and mental wellbeing. If you read my February DevLog (and play the game that it's about), you will probably get the sense that I am not into that philosophy at all. It was fortunate that I created Stress CUPacity this year, as it forced me to practice what I preached. I visited self despair, but I didn't move in. I decided the best thing to do for me was to upload what I had created for April and move on.

My wife and I had the discussion about whether or not it would be wise to continue the game jam challenge. At the risk of oversharing, life was kind of at a surprisingly low point for us. Our youngest child is entering his Terrible Twos early (at barely over a year old -- that little jerk), I had lost my job and thus medical coverage for the whole family, my wife is currently dealing with medical issues, and we are experiencing a shocking lack of available childcare options. In the grand scheme of things, forcing myself to complete an arbitrary challenge seemed like it should be a low priority. What happened, though, is that during the discussion, I learned that it was less about checking the box that I completed the challenge I set for myself, and more that I just really like developing games, and I would still like it to be my career someday. What better kick in the pants to work toward that goal than realizing your previous career is no longer an option?

As a result, I decided to stick with the challenge, but I needed to take a new approach to it and basically perform a hard reset on it. I needed to change the priorities and the way I was developing the games. I needed to alter my expectations, as the hardest part of the whole thing was falling short of them. I still wanted to do it to learn, but I needed to do it for fun. To top it all off, I wanted to prove to myself that I still could do it in a healthy way.

Coming Up with the Plan:

The only way I would allow myself to continue is if I found a way to do it in a fun way, with failure absolutely being an option, with my priorities in the proper order. The health and wellbeing of my family comes first, and if at any point it is compromised with this process, the process stops. I needed to accept that before I began. When I finally did (which took longer than you might expect), I could instantly feel a huge figurative load off my shoulders. In terms of what the details would look like, I wasn't sure, but I knew I could iron those out once I knew what game I was making.

I chose the GameDev.tv Game Jam 2022 for May, mostly because I've used their tutorials a lot in my time and I think they're the best in the business. I would not be the developer I am today without their courses, so I highly recommend them if you can afford them (they often go on sale for dirt cheap). Granted, perhaps my skill level might make the previous statement insulting to them... Anyway, the theme was revealed to be "Death is Only the Beginning," and immediately I was disappointed. So far, I've liked 0% of the jam themes. I was starting to think I just don't like game jam themes in general, but in the few instances where voting on a theme was an option, a few of the selections I found to be very appealing, so I think I'm just having an unlucky streak. Nevertheless, I sat around for a full 24 hours trying to come up with an idea for the theme before I even entertained development.

I thought through a bunch of ideas. I really wanted to make a game where death is literally the start of your day to make a fun spin on it. I would accomplish that in one of two ways: 1) there would be an afterlife that is essentially a "birth," and your corporeal "life" would just be the reproductive process for the afterlife, 2) you would play as someone whose job is to deal with death, such as a mortician or something. The first idea would be way too hard to make in the time of the jam, and I couldn't find a way to make the second idea any fun. I will say, though, I like the potential of both, especially the first.

I wanted to avoid "your death allows you to do something," as that idea has been done to death, pun very much intended. I've seen so many games where you die and have to jump on your corpse, or you die and you have to use your ghost form to do something, or you play as a ghost and possess things. I wanted to avoid those. I also wanted to make sure this game was just immediately fun to play. Every game I've created for this whole challenge has been WAY out of my comfort zone -- my specialty is action/adventure/puzzle games, at least from a design perspective -- and so I needed to make a game I knew I would be able to knock out of the park. My first game jam I was ever a part of resulted in the game Moon Jump (play it here), which was a 2D puzzle platformer where I acted as designer and artist. Platformers just click with me. I understand them, I get why they work, and they are among my favorite genres, so it was a huge success, especially for our first game. Since I desperately needed a win of that caliber, I decided on a platformer.

With the caveat that I didn't want too cliche of a mechanic, I was really struggling with coming up with an idea. My wife and I talked for hours about it. I kept going back to Moon Jump as an example of what I wanted to do. I watched people play that game, and once they saw the hook, they all got that, "Oh, aha! OH!" feeling. It's the feeling every designer wants to give their players, and I wanted that again. That was the first priority. I kept coming up with this idea of dying, leaving your body behind, and then doing something as a ghost in order for your body to get through, and then going back to your body to actually go. The ghost and the body would have different abilities, and I would design stages around getting your body there. This idea had two major problems: 1) I would not be able to pull that off in the time, 2) ghosts are inherently boring. If you think about ghosts, their defining characteristics are "they float off the ground" and "they can't touch anything." Well, that doesn't make for an interesting mechanic, and the more I kept saying to myself, "Okay, the ghost can do this," it kept getting further and further away from a ghost. Plus, with the exception of hovering/floating/flying and going through objects, ghosts wouldn't be able to do anything that a human could do, so there really wasn't much of a fun incentive to turn into the ghost.

I was also hung up on the theme, especially with coming up with a narrative or logical reason why this mechanic would exist in the first place. I was able to eliminate this by saying, "The heck with it," and just coming up with a mechanic I like and adding a tacked-on narrative at the end if I deem it necessary (spoiler: I didn't). Moon Jump had a fun movement mechanic/ability, so I needed to look for something like that. Something that could force limitations on the player that aren't frustrating, and can be built upon as the game gets more challenging. That's my favorite thing games do, and that's what I began looking for.

For all of you aspiring game developers out there, have you ever been given the advice that you need to play, read, watch, etc. literally everything you can? I'll give you a great example of how that helped me here. What do the Peter Jackson movie The Frighteners, the indie game Limbo, and the SNES game Demon's Crest have in common? They were the three main inspirations for the game I came up with. For whatever reason, the movie The Fighteners has stuck with me despite seeing it literally once on cable back in the day. Specifically, there is a scene where (spoilers for The Frighteners, I guess?) Michael J. Fox's character has to kill himself to become a ghost, so he enters a meat freezer to temporarily stop his heart. He has a lady with him to revive him before he is dead for too long. I liked that concept, so I came up with the idea that you would turn into a ghost and then turn back before you body expires. For design purposes, I cut the idea of a time limit, and just let you stay a ghost as long as you wanted.

The Limbo inspirations need little comment. I used it because it works and requires very little asset generation. I was able to take some sprites from the Unity asset store and turn them black, and everything else was just built-in Unity stuff. Where my ability to be inspired by the most random of things, however, is most apparent with Demon's Crest. That SNES game has, in my opinion, a really cool "flight" mechanic. You can jump as normal, but if you jump again in midair, you are suspended in midair and can move left and right, but you cannot move up and down as you would expect. This led to some cool jumping puzzles where you had to time your second jump correctly in order to move horizontally. It works quite a bit different in my game, but that's where I got the idea.

With the ideas in place, I was off.

Prioritization and Aesthetics/Polish:

There was the obvious priority of staying happy and healthy, but there was also the list of priorities that the game needed to feature. The movement/ghost mechanic was obviously number one, but I actually changed the way I approached it. Once the basic mechanic was in place, I instantly started to work on aesthetics. For longtime readers of my DevLogs, you know this is not normally my approach. However, I really wanted the little things to add to the feeling of the game. The Limbo inspiration only works if it looks fluid and deliberate, and sound would be key to adding to the atmosphere. In addition, I had come up with the idea of using light sources as the main way to turn yourself back into human form, so I figured I could add 2D lighting to make it look even cooler. I spent a lot of time on these details, and the game is much better for it. Unfortunately, this led to me rushing to make levels. While I'm very proud of the levels I was able to make, I really wanted to make more.

As I mentioned, I took some sprites from the asset store and turned them black. Two separate assets were used for the human and ghost forms. They look nothing alike in full color, but they actually have similar shapes (with slight adjustments), so using just their silhouette worked very well. For the sounds, I took a whole bunch from the asset store and free sounds from the web. Ones that didn't immediately fit -- like both transformation sounds, the death sound, and the music -- I was able to adjust in Audacity to make it gel with the mood better. One thing I'm particularly proud of is the footstep and jump sounds. They're Unity assets, but I was able to randomize them very easily, and I used an animation event on the run animation to play a footstep sound whenever the character's foot was on the ground. I think this added a really strong visceral feel to the controls.

I also just straight ripped some particle effects from the asset store as well and used them for transformation and death. The only adjustments I made were to turn them all white, but they got the job done, and once again, they add a lot for being such a small touch. Finally, I added a spotlight that appears when the ghost is floating through walls in order for the player to see him (which, quite frankly, breaks half the time). This is a level of polish I'm not used to, and I definitely didn't expect to enjoy adding it as much as I did. I can't deny the effect it had on the overall quality.

« Last Edit: July 27, 2022, 03:48:25 PM by yousayrandy » Logged
yousayrandy
Level 0
**


View Profile
« Reply #1 on: June 04, 2022, 04:14:33 PM »

Design and Programming:

This was the most successful project I've had in terms of lack of speedbumps I ran into. The way I foresaw the design and code looking ended up being almost exactly what I envisioned. I guess that just comes from the consistent learning and practice that this game jam challenge endeavor has awarded me, as well as just pushing myself to improve.

The biggest issue was the original character controller I used didn't end up working with the code I added to make the main mechanic. I actually don't remember exactly why, but I quickly wrote a new one (with the help of Brackeys!) and got the character moving pretty well. I added some code to make it feel a little better, the specifics of which I also don't remember. I wanted to get a dynamic jump height -- that is, making the player jump higher the longer they hold the button until it reaches max height -- but I always suck at getting that feeling good, so I scrapped it and just settled for what I have. There was obviously collision nonsense, which I feel like every game developer is required by law to run into at some point, but I was able to work around it very easily. Overall, my comfort in developing games and making the pieces in them interact with each other increases day by day, and I honestly felt like a pro when I ran into a problem and I was instantly able to come up with a fix and execute it.

There were several glitches with the lighting, which seemed to be exclusive to my version of Unity. I was able to find one obscure forum post for each of the glitches that led to me finding a solution or workaround. There are two levels that still have lighting glitches, but neither make them unplayable like they were before I fixed them. The lighting adds a lot to the atmosphere, as well, so I'm glad I took the time to learn how it worked.

Finally, with all of the mechanics coded, it was time to design some levels. I forgot to mention I also wanted to prohibit the player from turning back to human form at will (until a powerup introduced later). I played around with each option, but the "figuring out where to turn into a ghost" thing worked better than "become a ghost and turn back whenever I want." At this point, I had literally one day left to make levels, so I thought I was in trouble. Fortunately, game design is my area of strength, and I was able to sit down for what felt like six straight hours to bang out some levels very quickly. It helped that all the mechanics worked, and I'm surprisingly good at envisioning a level in my head and having it mostly work in practice. It also helps that the mechanics are fairly simple.

All in all, I ended up with 13 screens (not counting the end). That includes a couple of basic levels to introduce mechanics. Unlike my previous games, these levels were created in the same order they appeared in the game. I was very lucky that I nailed it on the first try the way I did. It really, really helps to have a strong vision. If I could give another piece of advice, it's that you should almost know exactly what your game is going to look like before you begin development, even if it takes longer to figure than out than you'd like. In my case, I ignored development for a solid day and change or something before I even began, but because the planning stages went so well and I dedicated the time to it, I saved countless hours of figuring it out as I went along.

The level, mechanics, and challenge progression works really well, I feel. I implemented a level restart button in case there's a glitch or a design flaw I didn't see, but I haven't heard of any issues. There is a way to screw yourself later in the game, and if you don't figure it out on your first try, you'll likely have to restart. I'm not thrilled with that design philosophy, but I think the mechanic is so cool that I wanted to keep it.

With all of this in place, I had a couple of friends playtest it, I ironed out some bugs and design issues, and published the game.

Reflection, Reception and Final Thoughts:

Describing the development process, I was getting the sense that I worked myself to the bone. I can promise you that wasn't the case. I limited myself to two hours at night after the children were asleep, and the occasional bug squash or asset generation throughout the day during a calm moment. The only day of genuine "crunch," if you could even call it that, was the last day where I sat for an extended time making levels. I was very invigorated at the time, and I took breaks in between, so I didn't compromise my health or the responsibilities for my family. I was very happy with how I was able to balance development with my personal needs.

The voting for the game jam is not over, but so far, the game has received unanimous praise, with literally only one piece of criticism from someone who didn't like the horizontal ghost floating. Which I can agree to disagree with, since it's kind of the whole point, but to each their own. If more people would play the game, I feel like I would have a shot at ranking pretty high in this one. Several comments talk about it being brilliant or one of the best games of the jam. I got called a talented level designer, and the level design in particular was praised quite a bit, which is something that means a lot to me.

I really, really needed this win, and I do think it's a win. Even without the positive feedback, I am very proud of this game and how smooth the development went. It really made me feel like a competent game developer that kind of knows what he's doing for the first time ever. I wasn't ever stuck on a problem for very long. The overwhelming majority of the time I was coding, designing, or creating for the game, and not just trying to figure something out. I was able to do all of this while fulfilling my duties as a husband, father, and a human being with physical and mental forms that have needs of their own. The positive feedback, and the praise for the care I gave to the little details, is the extremely tasty icing on the cake, and validates this whole thing for me. I feel like I've really bounced back from the extremely low low of last game jam. I'm pretty exhausted after the one-two punch of last month and this, so I will probably take it a little easier in June, but I am super excited to keep this journey going.

Thank you for reading.
Logged
yousayrandy
Level 0
**


View Profile
« Reply #2 on: July 27, 2022, 04:00:31 PM »

UPDATE 7/27/2022 STORY ELEMENTS AND GAME JAM FOR JULY:

This update was created as part of the Improve My Game Jam 22. Literally the only rule is to improve a game you already created, so I decided to add story elements to In Corporeal. This fulfills my year-long challenge of monthly game jams for July. Click the link in the original post to see the updated game.

July has been a weirdly tough month for game development motivation. I killed it in May -- the month with the lowest likelihood of me pulling off anything creative due to circumstances described above -- but I just had nothing for July. In June, I was able to create a very quick game that was okay, but my heart wasn't in it. I don't even think I made a DevLog for it, because it was so basic. It checked the box for June, though.

July was nearing its end and I couldn't come up with any ideas based on any themes from the prospective jams I was looking at. I was nearly ready to give up on July until I decided to just join a jam to work on a game you already made. There's a lot of potential in In Corporeal and I could use it to learn a new skill. I figured I wanted to add a story, because that will be what takes the game into the upper level if I'm to make a commercial release out of it down the road.

Implementing the dialogue system took a lot more work than I thought, and it's far from perfect. I started with the Brackeys tutorial, but quickly realized its functionality was very limited, and did not even feature the bear minimum of what I needed. I had to code that in myself, and then add that into the code that was already there, all without breaking anything. It took some time, but I was able to pull it off. I also didn't want people to get stuck in a cutscene (or not care about it and not be able to skip), so skipping was a must, and that was easy to implement into Brackeys's code. I had to have two characters talk to each other, which was not a part of Brackeys's code, so I added that. I had to make sure all of this didn't affect the game, which it initially did, but a few all-encompassing bools were able to fix that.

Overall, it's a pretty decent foundation to a decent system, but it's limited and sloppy. Still, it gets the job done, and it shows a lot more of the potential of this project. I'm happy with how it turned out.
Logged
Pages: [1]
Print
Jump to:  

Theme orange-lt created by panic