Skip to main content

Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines

What You Learned this Jam

A topic by Pat Tompkins created Jun 01, 2020 Views: 541 Replies: 17
Viewing posts 1 to 11
Submitted (2 edits) (+5)

Hey Everyone, I just want to hear about what you learned over the course of this jam. I think it's easy to get burned out, especially after long jams like this one and maybe not feel awesome about our games after seeing some of the amazing things that other people have built. It's been helpful for me to remember everything I learned and all the hard work I put in, especially with the little time I have working a full time job and having an 11 month old at home .

I decided to finally make one of my all-time favorite genres, a Platformer. I'm really happy with how it came out even though it pales in comparison to any real platformer out there, but it was a blast to design the game and the story. The animations aren't as clean as I would like, especially during combat and for the final boss fight but this is the first "full" game I've built that has an intro story, game and ending. My code is still pretty sloppy and any real engineer would likely be horrified looking at it but I was able to work out some creative solutions to problems that came up.

As for what I learned... A LOT.  I'm starting to feel much better about 2D animations and getting my player controller to feel more smooth and responsive. Melee combat, Scene transitions, Saving info with PlayerPrefs (I know not the best way, but what I had time for), Boss fight, Fine-tuning tilemaps, 2D lighting, Enemy AI, Platformer level design and maybe most importantly, how to use source control with Git and Github so I never have to worry about losing progress ever again!

So leave a little blurb about your game,  the new things you learned doing this jam and of course link your game so I can give it a shot. I'm especially looking for browser games since I can't download anything on my work laptop ;)

Here is Of The Essence, enjoy!

https://itch.io/jam/gamedevtv-community-jam/rate/641223


HostSubmitted(+3)

I love the idea behind this topic! For me, this jam was an opportunity to improve my Python skills, and I believe my submission is the only one written in Python (and without an engine). However, much of the source code is hacked together, as I learned the pygame library has some limitations:

  • Outdated collision detection based on creating rects based on images. This method is fine until you want to rotate your colliders (hitboxes), at which point you cannot achieve pixel-perfection anymore. The best solution I can see is to not use the built-in rect system and instead use the Pymunk library for collision handling. Unfortunately, rewriting my game to use a physics library would have caused me to miss the deadline.
  • Modern engines can take multiple inputs within a single frame. Pygame cannot. Let that sink in a moment - you can't detect if two keyboard keys are pressed at the same time. My only workaround was to check for keyup events and use boolean flags to control movement, this way you can press multiple keys around the same time, though it still isn't perfect input detection.
  • Pygame can only play 16-bit audio. This is a problem since most free SFX on the Internet (not to mention background music) is 32-bit or higher. I had to manually re-export all audio using Audacity so they would be downsampled to 16-bit. I believe most published Python games use OpenAL or an actual audio library, so this is something I will be looking to integrate moving forward.

I'll continue to develop my submission (closed source, of course) as a side project learning exercise, but I am not sure if I will ever take it to published completion.

Submitted

Well you have officially impressed me and also scared me off from learning Python any time soon haha. I'm really impressed with what you were able to pull off given those limitations and I think you should definitely continue to work on it. Bullet hells are all the rage these days and you've definitely made a fun one. Thanks for your thoughts and great work!

HostSubmitted(+1)

Nothing wrong with Python, pygame is just behind the times.

Submitted

Ah I see what you鈥檙e saying now! Thanks for the clarification 馃榿

Submitted (1 edit) (+3)

I learnt to be consistent or motivated enough to work through a project, instead of losing interest in it and starting another one(which becomes an Dr. Strange Time loop).

Also, this is my first time making a game in a game engine(I used to make Minecraft plugins with java and uploaded them to spigot), but I learnt that there's easier ways to make games, that is using a game engine instead of coding it in Java(not recommended, use a game engine, otherwise you'll pull out your hair with a hydraulic press). And I learnt a lot about the game engine I chose(Godot), and gotten comfortable with it.

Submitted(+1)

I started my code learning with javascript and simple browser games but picking up Unity was a gamechanger for me. It opened up a whole new world and also introduced me to C# which I'm enjoying a lot. Java sounds super intimidating but all the more to you for trying some things out and it sounds like you learned a lot on the way!

Your game is a lot of fun, I'm a huge fan of humor in games (if you couldn't tell by my own submission) and the mechanics feel really good. Great job and thanks for the thoughts!

Submitted

:) No Problem.

Submitted(+3)

Hey, great topic! I am going to make a more thorough Dev Log or two about this, but in summary:

- Plan for the unexpected - Our team went down a member (50%) early on so it significantly changed what was reasonable for scope

- Have alternatives planned and features ready that would be nice to have but not critical

- Strive to produce your MVP in advance of the deadline (the sooner the better) so you can test, tweak and iterate.

This is my second completed game Jam and the first one had some great lessons in it about collaboration and time management (3-man Team with the short Ludum Dare Timeline). This one ended up being mostly solo so really built on planning and time management more than anything :) Trello has been invaluable to me in all my recent projects, especially this one to help with most of these challenges :)

On the technical side, I learned a LOT this jam too since I decided to go with Unity HDRP (First time using SRP/HDRP).

- Lighting is completely different in HDRP, and i went with the most different option (physically based lighting). Based on some early feedback I'm guessing this was a mixed success (evidently my dark nights are too dark!). This said, you can achieve some absolutely beautiful and fantastic things using the new options and I can't wait to see it evolve further (and continue giving UE5 a run for it's money!). I likely spent about a week, studying and evaluating different options and working through some problems.

- I am not an artist. I have a bunch of purchased Assets I like to use to fill that gap until I can spend more time developing those skills. But on a project like this, I often can't find exactly what I need for free so I ended up making quite a bit with mixed success. I certainly gained some confidence and ability in creating and modeling 3d objects (although I really need to spend time getting to learn at least one of Maya or Blender!).

- Shaders. They're cool and fun to play with but there's a lot to learn there, especially when it comes to the advanced features of Shader Graph or Amplify Shader. I learned a lot here and got to apply some of what I learned :)

Ah and here is breaking time if you want to check it out!

https://picusb.itch.io/breaking-time


Submitted

Thanks for the thoughts! I completely agree that focusing on the MVP and building out from there is the way to go. I actually had all the core design and gameplay dont maybe halfway through this jam then focused on fine tuning things like audio, animations and the story. I also dove into lighting for the first time this jam and had a blast doing so. It was a little complicated at first but once I figured it out it was hard for me to not put lights on everything in the game haha. 

For some reason your game is super laggy on my machine and isn鈥檛 really playable. I鈥檓 assuming the problem is on my end but can鈥檛 figure out how to get it to play smoothly. It looks great though!!!

Submitted (1 edit) (+1)

Hey Rompkins!

I'm sorry for that the game isn't playable :(  I think it likely has to do with the real time lighting going on everywhere and the draw distances. Clearly my models aren't very high poly! (lol).  HDRP seems to have steep system requirements : https://docs.unity3d.com/Packages/com.unity.render-pipelines.high-definition@8.1/manual/index.html. Let me know if for some reason you think that's not the problem and I'll delve into it a bit (or make an option to adjust the camera draw distance :)).

Submitted(+1)

I learnt how much fun the game-jam discord channel is .... and about 1000 other things.

Submitted(+2)

This was only my second jam, and I learned a ton. For my first jam (which was only a week), we BARELY finished on time and our game was super buggy.  So going into this jam I decided to plan to have the game done a full WEEK before the deadline because I expected to fall behind. Sure enough I did, but because I set such a hard deadline I still had my MVP finished and reasonably clean 3 days in advance and had a decent amount of time to clean up and polish.  I'm happy with how our game turned out, but there were still quite a few features we had to cut, so next time I'm gonna plan for even more polish time.

Also, I had a team member that was super new to Unity, and I assigned him a pretty decent sized chunk of the project. Because he was new he needed a lot of help and I had to spend more time than I expected helping him with his part. So I also learned not to expect too much from others (or even yourself) if they're too new to Game Dev.


I made Dog Days btw, please check it out and tell me what you think :)

(+2)

I learned how to work in a team, and provide valuable feedback to my team members.

Also, I learned how to make the difficult decision to cut features if they're going to take too long or be too complicated.

Submitted(+2)

Great question!

As a team, I think we learnt how to find a middle ground for all our ideas, speeding up the decision-making process. This was very important and led to unexpected results of our creativity mixed together!

Also, how not to get too attached to your own idea of how something in the game should be -- sometimes it's just better to let go!

I believe the biggest one was that a limited time span for developing a game is a parameter and not a limit. This totally put us in a productive mindset and cut off all the frustrating "if only". We just started writing down all the ideas we had as extras and now that the jam is over we have plenty to work on!

We somehow found a compromise with that also by placing hints in the game suggesting that there's more to it. So far it looks you kind people who tried it found many of them, and that's awesome!

Submitted(+1)

Great topic!

I learned a lot of new UI and mouse related stuff. Display text when mouse over, link a button to a skill and to a slot, mouse events etc

I learned new stuffs, I had fun and I added a new entry to my portfolio, so it's a win!

Submitted (2 edits) (+2)

This was actually the first ever game jam I participated in! I learned about how game jams work in the first place, sources, themes, and timing. I also learned more about C#. This was very fun!

Submitted(+1)

I'm not sure where to begin about what I learned.  

I'm not new to programming, or trying to keep to a deadline, but I am a right old noob as a game dev.  I only had two finished games to my name when I entered the jam and one of those was from the Discovering Godot course.  I had to finish up the course and pick some lectures out of the next Godot course before I could even begin. 

I learned about grid maps, navmesh, how to export blend files to GLTF and import that into Godot. I learned how to have my character be able to shoot or punch her enemies, while the enemies could only chase the character and beat her up, and only then if they could get close enough. I reaquainted myself with the MoSCoW rules and applied them ruthlessly to all my big ideas for my game and applied them again ever more ruthlessly as time ebbed away.

But my favourite learning experience of the month was when I finally figured out why my zombies repeatedly fell on their faces and laid stuck upon the ground when they were supposed to turn toward, and race off after the player character.  For ages I was certain that it was because I had the models set too low and their feet were in the floor. I was convinced that they were sort of tripping themselves up. This theory was supported by the fact that if I adjusted the physics for the model they no longer fell over. Little did I realise that the reason they didn't fall over was because I approached them from a different direction after modifying them. 

When I finally tumbled that the problem was not about their feet being stuck in the floor, I found a message in the console that said

"Up vector and direction between node origin and target are  aligned, look_at() failed"

When I debugged what the zombies were doing, their transformations and so on, they were never trying to turn to the UP vector.  They were often close to it, but it was never the same. But, if I took the absolute value of the vector and rounded it, I could see where it then became the same as the UP vector. The solution was then simple, write a method to compare the absed and rounded lookat vector to UP and only turn if they didn't match.  I guess I'm a bit of a nerd. I get a kick out of chasing down and beating problems like that. 


Anyway,, what I think I am finally getting round to saying, is I also learned what FUN it is to take part in a game jam. I might not enjoy the pressure of a short jam, I'm not yet good enough to get much done in a week, much less three days or something. But having a month and working on my plan every day, I had a ball :c)

Thank you @Rompkins for this topic. I hope I didn't go banging on too long.  Thanks also @Yang Pulse for hosting the jam!