Winter Jam Submitted by theBailey — 4 minutes, 33 seconds before the deadline
Sonderful
Creator of
Recent community posts
I really liked the style of this game. It loaded so fast I assumed I was looking at a splash screen or something at first. I was only trying to move with WASD controls, which didn’t seem to work, and it took me a while to try the arrow keys. :)
I was surprised by how big the level was. I didn’t find it all before I got a bit stuck, and lost, and decided to stop for a while. I picked up a bunch of items, but I wasn’t quite sure what I was doing with them.
Anyway, I think with a bit of guidance, and some minor control tweaks, this would be a really nice game. The artwork itself is enough to fill more than 2 weeks of my time!
Nice, I enjoyed this a lot. I was slightly disappointed that I seemingly couldn’t win (I destroyed all the snow, but it respawns forever, I think).
I’ll definitely come back and play this a little bit more, I want to try some of the different world generation options to see what happens.
Really impressive work, thank you, and well done!
Day 12 - My Last Day
I’ve been struggling to stay interested in the game since I had to skip a day. The deadline was great at the beginning, it really got me moving, but now I think I’m just avoiding starting big items on my Trello board because I don’t want to waste time on something I can’t finish and submit.
I think I’ll possibly come back to the game idea at some point in the future, but I’d really rather it was Journey-like than some tedious mobile infinite runner. I just don’t have those sort of skills yet.
Anyway, today I added in some rocks with various rotations. I made them in Blender, and they’re so bad, but whatever.
I also added in some music by a guy named James Hammond. I bought a couple of his albums on Bandcamp a few weeks ago after seeing his post in r/gamedev and I picked something I liked the sound of. It’s too short, but I don’t want to find another track, so it just loops, with an obvious gap.
I added a credits screen so I could properly attribute the tree assets and the music.
I built the game for Windows, Mac, and Linux, although I haven’t tested anything besides Windows yet. Then I submitted the game!
I look forward to following the remaining progress of the rest of the entrants, and am sure there will be some great games to play.
Thanks for helping to make my first game jam so much fun. :)
Day 10
I achieved nothing. I had a free evening, but then my son wouldn’t sleep, and so I had to look after him instead.
Day 11
I’ve had half an evening to work on the game. I wanted to get a really trimmed down version of the ending in place, in case I don’t have time to do more work in the remaining days. The ending is really abrupt, I hope in a sort of comical way. I didn’t remember to record any videos, but I don’t want to spoil the ending, anyway.
If I get time I’ll try to add in sound effects, some more objects on the terrain (rocks, grass, etc.), and a million other things from my Trello backlog, but this might actually be my final day of development for the game jam.
Hey, nice work!
I noticed a couple of little things when I was playing that seemed a little unexpected.
- When you move down, the dog turns upside down. It made me laugh at first, but still seemed a little odd.
- When you’re facing to the right and press F the breath comes out of the dog’s mouth, when you’re facing left it appears to come out of a different orifice…
I think the enemy AI is fine. They found me, they attacked me, and I destroyed them with my mighty breath. I took some damage, but I wasn’t too close to death after a 3 on 1 encounter.
It might be nice to have some way to regain health.
It seems to be coming along quite nicely, I look forward to seeing the end result.
Hey, just played it. It took 12 seconds to go from pressing Launch in the itch.io app to the main menu appearing. Pressing play took me to the game instantly. My computer is not particularly high-spec or anything, so it doesn’t seem too bad. Curious to know what it’s loading, though. :)
I enjoyed slaughtering the evil penguins, but I do wish I could shoot and move, or shoot and rotate. That would have made it a bit easier.
Your world is pretty large, which is cool, but I didn’t have a good idea of where anything might be. I happened upon a couple of buildings, but purely by chance. When you get to the point of adding a helicopter, you might want to give some sort of point to where it is.
Looking forward to coming back to this. Great work so far! :)
Hey, I just gave it a try, and I think it’s pretty good.
I did have some issues with jumping, mostly when already moving sideways. Total guess, but perhaps the keypresses are clashing.
I noticed that jumping when moving down a slope is not really possible, and I think that’s because the snowman is not directly on the ground.
I might be wrong, but that’s how it seemed to me, hopefully it lines up with what you experienced.
Great work!
Game Title/URL: The Last Glacier
Pitch/Information: Currently an infinite runner with the beginnings of a story, I have an ending in mind, but I haven’t finished it yet
I’d like feedback on:
- The visual style of the main game (grass, trees, edge of the world, ice cube, feeling of emptiness, etc.)
- Control feeling of the character
- Would music be annoying? Some games like Ski Safari do repetitive music well, but I’m not sure I would :)
- Should I bother with polishing the menus and dialogue boxes if I get chance, or just focus on making the game look better?
Day 9
This is actually a post about today and a couple of hours yesterday. I came back to the game after my devlog update, and I fixed the terrain and tree generation.
Today I made some really solid progress, and it actually feels a bit like a game for the first time.
Progress
I added box colliders to all trees, and made them triggers. Hitting a tree reduces your health by 25 points (you begin with 100), and it slows you down by a fairly large amount, too.
Your health is now visible as a green bar at the bottom-right of the screen.
There’s a fairly basic calculation that results in your score being displayed just above your health bar.
If your health reaches 0 then you get a Game Over message with Play Again
and Quit
options that both work. If you fall off the side of the map (still very easy to do), you get the same popup.
If you hit a tree in the first few seconds of the game, you get a popup telling you how to control the player. Might be a bit pointless since you can’t really get past MeltyGuy (still haven’t named him) without pressing one of the direction buttons.
I added a title screen, and a bit of intro text. Neither one looks great, but they’re placeholders.
Problems
When you hit a tree it pops out of existence. I’d rather have some sort of animation. I’ve been considering a puff of snow and leaves and logs, but I’m not sure how easy that will be to implement.
There are fairly large patches in the game where the random number generator doesn’t want to put trees. I could add more trees, but then there might be areas that are too thickly populated. Perhaps adding some non-interactive scenery would help.
There’s nothing to do but avoid trees.
There’s no way to regain health, which might not be a bad thing.
There’s no end to the story yet.
Day 8
I wish I had more time today, but I had a million things I needed to sort out before I could work on my game.
Progress
I improved the tree generation quite a bit. They’re now spread across the width of the level, and a little bit on the length, although not very much.
The camera has been positioned to track behind Coldy, so you can see the upcoming trees for longer, and avoid them.
I simplified the code for generating terrain pieces by just cloning the initial one, same as I did for trees.
Problems
I think I’m missing some multiplication by transform.position.localScale.z
or something, because the trees spawn close together on the Z axis, and the terrain overlaps instead of being properly positioned end to end.
Now that you can see further ahead, you can see the trees popping into existence, partially because of the problem above.
Old trees still don’t get destroyed, and there are more of them now.
I’m hoping to make some improvements tonight, but I wanted to get my update done now, in case I don’t.
It’s coming along nicely! I agree about the delay, because in your gif it sort of looks like you’re just bouncing off the enemy. Perhaps something like this:
- Die
- Fall to the ground like before
- Corpse fades out
- Character fades back in in respawn position
- Player regains control when fading ends
Up to you, of course. :)
In the game Islanders (really enjoyable if you haven’t given it a go), buildings replace trees.
The trees are really important in your game though, right? The main resource for battling the cold, if I remember correctly. Might be worth blocking buildings, since there seems to be plenty of space to put the buildings in without destroying other things.
I think the old bodies lying around is pretty cool, as long as they can’t break anything (block entrances, etc.)
I work as a software developer, but take my advice with a pinch of salt, because I’m not much of a game developer.
HP is a property of the player, and so it belongs with all the other player properties (position, scale, rotation, etc.).
Respawn is a bit more difficult. If you have it as a method on the player, then you can easily update the HP and position. You’d probably lose the dead bodies by doing that, unless you Instantiate()
a new player object. That might cause weirdness when it comes to controls and things like that.
Just try to keep things in the place they logically belong. If the player has health points, then HP belongs to the player. If something else needs to know the HP (your health bar) then it will need to be able to reference the player to get it.
Coupling those GameObject
s together seems to be a pretty common thing to do in Unity, so that’s probably fine for now, even though I’d usually say to avoid tightly coupling independent objects. Most typical solutions are going to be huge overkill for your game in the next week or so. :)
For tutorials, I’d say to find one that is producing something just like what you’re working on, and stick with that for examples/inspiration. Trying to follow more than one will probably just jumble things up, like you said. See if you can find one with the source code available for close inspection.
I think you’re doing great, and the best thing you can do is practice!
Day 7
Continuing yesterday’s theme of generating things, I spent some of this evening generating trees on the tiles so it’s not so plain.
I had a few false starts and interruptions, as usual, but I also made some progress. At first I was trying to construct entire new GameObject
s, which was a bit messy.
I switched to cloning existing trees, and it worked pretty well.
Trees are being cloned, but never destroyed, and obviously the positioning is all wrong, too. I’ll have to look at those tomorrow. I’m really hoping to make some good progress.
I still have a lot of things to do before I have something that feels like a game.
Day 6
I focused on terrain generation today. My game is rendered in 3D, but the ground itself is completely flat. So all I need to do is generate some flat planes. Simple, right?
I started out following Sebastian Lague’s Procedural Terrain Generation playlist (starting at video #7, because I like to be in over my head, apparently). It took me a while to realize that I was wasting my time on generating perlin noise when I had no height to worry about, and no change in color based on the height. I looked at a couple of other videos, and then gave up and decided to write it myself.
I’ve already used the “One Eternity Later” image, so I don’t want to use it again, but trust me when I say this took me a long time, and caused a lot of frustration, as well as some laughter at how bad it was.
Anyway, after all that, terrain gets generated in an infinite line as you move forwards. You can’t throw yourself off the edge of the world any more (unless you jump off the side).
At some point soon, I need to prevent jumping off the side, either by adding invisible walls, generating planes beside you, or something like that. I also need to generate some trees and other decorations on all of this terrain.
I don’t want my game to run forever, so I also need to figure out how I’m going to stop the generation, and switch back to “tailored” areas.
Day 5
I don’t feel like I got much done today. I started an hour or so later than usual, which didn’t help.
I moved a few things around in my scene in order to modify the controls. The game is now a runner. It’s not intended to be infinite, because I have a definite ending in mind, but you can’t stop moving forwards.
I spent some time working on adding dialogue between Coldy (main character), and the melting ice cube I imaginatively named Melty Guy yesterday. This is intended to provide a little bit of exposition, and then get out of the way.
I tried using something I found on the asset store, but it seemed like overkill. I decided to just add in a canvas, a panel, and some text. It took a while to get the logic correct for pausing gameplay, displaying the box, then dismissing it on input, but I got it working a few minutes ago.
I’m calling it a day at that, because it’s midnight, and I’m tired.
Oh, I did something I wouldn’t normally do when I have such a short amount of time… I upgraded Unity to the 2019.3 release. Thankfully nothing broke.
Day 4
On my way home from work today, I was thinking about how I would need to replace my main character with something that looks like a person. Then, I thought, what if I just don’t?
A few seconds later I had completely rethought my game.
I’m now calling it The Last Glacier. You play as Coldy the ice cube, all that is left of the penultimate glacier. You’re aiming to reach the last glacier before you melt away completely. Sources of heat are hazards, snowdrifts, icy winds, and frozen lakes help keep you cool.
Ok, so, I’m getting a bit ahead of myself there.
I didn’t want to remove the campfire I spent so long working on the other day, but I couldn’t use it for the same thing if the main character is an ice cube, so I replaced it with an igloo, that only took me 26 agonizing minutes to make in Blender. It’s not perfect, but, well, look at the rest of the game. :)
I moved on to creating a secondary character, currently named Melty Guy in the scripts and asset titles, but I need a better name. This one only took me 19 minutes!
Melty Guy is the only other remaining part of the glacier you were once part of, and at the beginning of the game he is melting by a campfire. He urges you to go on without him and unite with the last glacier. I haven’t implemented dialogue yet, so there are just Debug.Log()
messages that you can see in the console for now.
As you can probably see, I have switched the ground color to green, to represent grass instead of the grey used for snow before. Coldy is semi-transparent. I’ve added a wall between Melty Guy and the campfire to prevent you from moving down any further.
I want to give some more indicators that you should move up the screen, but I can figure those out later. I need to determine if I still need an inventory, and get rid of it if not. I need to implement some on-screen way of having conversations with at least Melty Guy.
After that, I need to look at generating terrain. It would be pretty cool to do something like Race The Sun does with its level generation, but I don’t want to eat up all my time on just that, if I could replace it with a small tailored experience.
I honestly had a moment of thinking about quitting yesterday, which is a ridiculous overreaction to one bad day, but it just seemed like nothing was going my way.
I am going to add this AutoSave asset to Unity when I get back from work today. I’ve learned from my mistake! :)
Day 3
Today has not been a great day.
I have only had about 3 hours to work on the game. I decided I wanted to add in some sort of fuel for the campfire, via a tree asset. Rather than spend a thousand years learning Blender, I went to the asset store, where I found a nice free tree asset to use for now.
I started working on a basic inventory system. I got a bit carried away, and also started refactoring some inefficient code, and tried to get my game objects to be more loosely coupled.
Unfortunately, during my refactoring, I did something that Unity was not expecting, and got this lovely little popup.
My first ever Unity crash, hooray! I lost all of the assets I’d pulled in, I lost the tags I’d created, along with the assignments of those tags to the relevant objects.
I decided to just add in one tree, instead of trying to make things look nice.
Then I spent about 30 minutes trying to figure out why I couldn’t find the script I’d attached to an object, only to realize–after another 20 minutes–that I had accidentally tagged the ground with “Campfire” as well as the actual campfire. Since I was only asking for one object (FindGameObjectWithTag()
instead of FindGameObjectsWithTag()
), I was getting the first one, which was the ground. Removing the tag from the ground worked, and now I feel ridiculous for having spent so long on such a silly problem.
Thankfully, I persevered, and managed to get the tree to be interactive. It adds an item to the inventory, which is not currently a visible component of the game. In the gif below, you can sort of see that the count of items in the inventory increases until it reached the size.
A small win on an otherwise frustrating day.