Very cute game! I agree with the other comments, the fail effect was really good!
Recent community posts
Thanks for the feedback! I've updated the latest version with music, sound effects, and a little bit more polish. With more time, I'd potentially clean up the sprites and animations, but for this game jam, I really pleased with what I've put together!
Congrats! Just getting something complete and out there is a huge first step. I can't tell you how many of my projects have wound up in limbo over the years because I just caught up in making things perfect. Now you have a much better idea of the many facets of game making and can use that knowledge when making your next game :D
- Day 11 -
Lost power, so no progress.
- Day 12 -
Possibly my final entry. I've added music and SFX, fixed a bug, and added a little bit more polish to the game. With that, I think I have accomplished all of the goals I set out with:
- I have a finished prototype with all the systems I had planned on
- I made my first soundtrack
- I definitely got a good feel for using PICO-8 and am excited to work on more projects with it
While I would like to work on the sprites, animations, music, and effects more, I am very proud with the product I have right now and given that I'll be very busy this weekend with work, I think this may be the latest version. Feel free to download the source files if you're interested at looking at it (attached on the game page at the bottom). Thanks for reading/playing and good luck on your own jams!
- Day 10 -
Got all the gameplay and cutscenes done, so I'm going to release a test version for people to play with here:
All that's left is to add the sounds/music. Will look into getting this submitted here/through itch.io, but I have a headache atm, so will deal with it later.
Please check out the game and let me know what you think and definitely call out any bugs you may find. Thanks!
Game is now submitted with an itch.io page! This version includes a fix for a bug caught by GlitchThief.
- Day 8 -
- Day 9 -
Got a ton of behind the scenes stuff done to handle the mechanics and puzzles for the game which mostly involved rewriting the way player/object interactions were handled. Decided on the "puzzles" that I want the game to have. I say "puzzles" because they're really just take object A and use on object B type things. Got pickup and drop commands working (shown below) as well as a nice system for automating scene transitions, so really the next big thing to do is to code the rest of the object interactions and some cutscenes.
Hoping to have a version 1.0 up in a couple days for public testing and then refine that until the deadline.
It's definitely possible I messed up somewhere
I don't know about the new GameMaker version, but in the old ones, the elaborate way to do the "flash" on hit was to write a shader for it, but that can be a nightmare in and of itself. The simpler but brute force method is probably to add a damaged animation or create a second object on top to create the flashing effect. Good luck!
Nice! I like the parallaxing background. Regarding the jumping on start, do you have jump attached to "spacebar is currently down" or "spacebar is pressed"? The first will trigger every frame that space is down and the second will only trigger the first frame that it is down. My first guess at seeing this is that you used the first option which may be causing the problem?
The other thing that I can think of is that your dog already exists but hidden when the black screen is up and is interactible when you hit space. Are the black screen and gameplay different rooms or the same room?
Nice! If you have a chance, it may be worthwhile to make a modular set of functions to determine intersecting objects that you can then use inside enemybulltecollide() and other collision checks. I'm currently using a couple functions for different purposes:
function in_range(value, imin, imax)
return value >= min(imin,imax) and value <= max(imin,imax) --min/max calls are unnessary if imin and imax are correctly ordered
function range_intersect(min1, max1, min2, max2)
return in_range(min1,min2,max2) or in_range(max1,min2,max2) or in_range(min2,min1,max1)
function rect_intersect(r1, r2)
return range_intersect(r1.x + r1.off_x, r1.x + r1.off_x + r1.width - 1,r2.x + r2.off_x, r2.x + r2.off_x + r2.width - 1) and range_intersect(r1.y + r1.off_y, r1.y + r1.off_y + r1.height - 1,r2.y + r2.off_y, r2.y + r2.off_y + r2.height - 1)
Where each object has an x/y position (.x,.y), an x/y collision box offset if I don't want it to start at x/y (.off_x/.off_y), and a width/height for the collision box (.width/.height).
Bummer, I usually just look to see if the command turns pink, but i guess both elseif and else if would lol. Just heads up that the foreach(table,function) function is one word and does NOT turn pink.
Yeah definitely a minor issue particularly for a game jam. I suddenly have a feeling that this happened to me when the width and height of my sprites were not multiples of 8, so maybe see if the window you're building is a multiple of 8 pixels?
-Edit- Maybe it was for sprites with odd height/width instead of even. Multiples of 8 may not be the exact problem, but I don't really remember at the moment.
- Day 7 -
Tons of progress! Got map collision detection working where all I have to do is check a box on the sprite to make it solid. Refactored my camera code to stay on a subsection of the map. Also finally got around to building a framework for handling all objects which was actually a lot easier than I expected due to the way tables are handled, which makes inheritance super easy. Lastly, I got animated map tiles working with another simple flag, and I think it's coded pretty efficiently even.
The only problem that's kind of important to figure out is I have a crash if I hit a corner with a pixel-perfect diagonal collision, so I'll be digging though the collision code a bit. Up next is actually coding puzzles and events for the game portion, but I'm pretty pleased with the framework I've built so far :D
-Edit- turns out the crash was likely caused by some rounding errors in the collision check that led to an infinite loop, so I added a timeout to the command that appears to fix the issue while keeping collision working as it should.
List of features to work on in week 2:
sounds/music (effects, plus 1 chill song, 1 action song)
player object interactions
2 rudimentary puzzle options
Splash page/Death screen/Win screen
Scaling could definitely be the issue with that. I had that problem when first using gamemaker with windows of arbitrary size (certain rows/columns of pixels can get rounded out). I guess Ryam could double check that the scaling used is a round number and maybe set a fixed standard window size like 640x480 to see if that fixes the border.
The GIF problem may be due to a discrepancy between the game's display rate and the GIF software acquisition rate. Doesn't explain why the "i" doesn't show up though. That one is confusing. Maybe some weird compression problem if the "i" is too thin.
- Day 6 -
Started working with the music editor and its definitely difficult to get a sound to translate from my head into chiptune form, but I'm getting a bit better at it. Hope to have 2 simple tracks in the game (one slower and one faster) by the deadline.
Refactoring movement and camera code seems to have caused some unexpected problems >.>
For whatever reason, pressing the up button causes it to crash due to a memory error?? I've looked through the code a few times, but I don't see anything different between how I've handled the 4 movement directions.
-Edit- Found the problem. Apparently when I cleaned up the code I missed a call that caused an infinite loop. The reason I missed it was because it was hidden waaaay to the right due to spacing and the small PICO-8 screen size.
- Update -
Got the fundamentals of predictive object/object collision working right now after a little initial jankiness. Used up about 1/10th of my programming memory, so not too bad. Next up is object/map collision!
Does anyone know how to write functions with optional arguments in PICO-8 or if it's possible?
Hey Ryam, what kind of tools are you using for the art assets and animating? I don't know about the new GameMaker version, but previous versions didn't have the best built-in tools for sprite work. For animating, using tools with "onion-skinning" is very useful as this lets you see a ghost of the previous frame. In the past, I've used Graphics Gale which I believe is free for most things and will allow you to export sprite sheets (but not export GIFs), but I've also heard some good things about Pyxel Edit which I haven't touched myself yet.
As J said though, using programmer art for game jams is a good idea at times. Personally I flip back and forth between programming and art. When I get stuck trying to "perfect" art assets, I go back to programming, and when I get bogged down with rewriting optimizations, I switch back to art. The most important thing for this is to keep motivation up, so work on what is most interesting to you.
The dog animation definitely looks very nice so far! A minor suggestion would be to have the tail wag back and forth rather than uncurl in the idle animation.
Nice work and nice GIFs! I'll check it out if I get a chance. If you do find motivation to work on it more, you can always try to refactor code (like for the health bar display). It likely won't make a difference for the final product, but if you make it modular enough, you can always repurpose the code, or at least the knowledge, for future projects.
Now that you've submitted, do you feel that you met all your goals coming into the game jam?
Thanks all, for the support! :D
- Day 3 and 4 -
Played videogames and watched AGDQ. No progress >.>
- Day 5 -
Got rudimentary collision detection functions implemented. It doesn't currently stop objects from colliding (that's next and won't be too bad as I've done it before in other languages). I'll put up the next GIF once I get that working since, there's nothing *exciting* to show otherwise. Currently putting off coding a more efficient method of object inheritance and multiple object collision checks as it will likely require a lot of refactoring and will make me sad.
-Public Service Announcement-
If you are looking for PICO-8 examples of collision code, do NOT use collisions.p8 on GitHub by Cauli. No offense to him/her, but the code is just plain wrong. Multiple instances of functions would not work as intended or at all due to typos or poor implementation. I spent about half an hour looking at it trying to see if it was maybe a more efficient method than what I was doing only to conclude that it would always return false as written.
The goals look really good for a first game, particularlly for PICO-8. I know I'm putting off all the coding of objects that need to act indpendently (such as the bullets or enemies in your game) because I know it's going to make my brain hurt. Good luck!
PICO-8 is definitely pretty fun to play around with and makes an excellent console for game jams. Good to know I'm not the only one making a PICO-8 entry! If anyone sees content in my GIFs that they need help replicating, feel free to ask and I'll do my best to help. This is my first go with PICO-8 though, so I can't guarantee the way I'm doing things is a good way to do them. Looking forward to seeing what other people can do with it.
- Day 2 -
Awesome Games Done Quick is on in the background.
Collision got put on the backburner, so I could get my camera tracking working. Didn't feel like actually thinking all the math out, so I half brute forced the logic of it. As far as I know it works though!
Collision is up next for real this time.
This is my first solo game jam and my first time using PICO-8 (currently in a Humble Bundle for 2 more days), so I'm excited to see what it can do. I expect this will be updated infrequently, but I'll try to stay on top of it. Because PICO-8 has easy .gif export functionality built in, I expect most of my updates will be .gif based. I also have some experience with GameMaker 1.4 if anyone completely new is having problems with that.
Idea - Top-down puzzle/adventure game
Goals - Get a working prototype for a concept I'd like to flesh out more
- Make my first ever soundtrack
- Get a feel for the limitations and features of PICO-8
- Day 1 -
I really like the limitations imposed by PICO-8. I think it will help keep scale in check and make sure that I design efficiently. I also really like that all the necessary tools are built in like sprite and music editing.
Made a handful of basic 8x8 sprites. The color palette limitation of PICO-8 is making things more difficult than I previously expected. I could really use another green shade.
Having to code most functions from scratch is very useful although somewhat confusing/time consuming. Looked at a few code examples, but trying to write everything from scratch without help for the full experience.
Wrote an animation function (and it works even), so I'm pretty excited by that.
Played around with the music tools for a few minutes. Haven't made anything that sounds good, but I know how it works now.
Got a demo map up and running. Collision is probably next on my list of things to do.