Game Jam #4

Battle ended 2020-06-28 12:00:00

14 Entries

Info and Rules
Hear All
14 Entries
Level 30 Mixist
post #122307 :: 2020.06.07 11:45am
  DevEd, argarak, Jakerson, amelia and kleeder liēkd this
i was really hoping the theme would be "potato"
Level 30 Chipist
post #122309 :: 2020.06.07 11:52am
  DevEd, argarak, Jakerson and puke7 liēkd this
Level 30 Chipist
post #122310 :: 2020.06.07 11:53am
jk, this is a cool theme
Level 14 Grafxicist
post #122313 :: 2020.06.07 1:40pm
  null1024, Tilde, Jakerson and puke7 liēkd this
time to learn html i guess
if i dont make it out alive tell my family i love them
Level 19 Pedagogist
post #122315 :: 2020.06.07 1:52pm
  puke7 liēkd this
would someone post a list of js frameworks that could be helpful for people?
Level 26 Chipist
post #122316 :: 2020.06.07 2:07pm :: edit 2020.06.08 10:50am
  mootbooxle, boscutti939 and insertkey liēkd this
Game engines like godot and stencyl and unity and construct and gamemaker have html5 export but because of browser security stuff they either require a server running to be opened locally on web browsers or enabling the --allow-file-access-from-files flag in chrome. (example server run with python: python -m http.server 8080 in the source directory, and then opening http://localhost:8080/),
Level 26 Mixist
post #122320 :: 2020.06.07 7:10pm
  Pale Dim, Lia and kleeder liēkd this
i will play and speedrun these things on twitch (`・ω・´)
Level 28 Hostist
post #122321 :: 2020.06.07 7:57pm
  DevEd hæitd this
  A-zu-ra and kleeder liēkd this
sorry to bust any bubbles
but entries should really be stand alone
as in they contain all their components
and don't require the user to do more than open an .html document in a modern browser
Level 23 Chipist
post #122328 :: 2020.06.08 4:01am
i mean, you can link or embed the phaser library in an html document, right........
Level 31 Chipist
post #122329 :: 2020.06.08 5:11am
  DevEd, argarak, kleeder and Jakerson liēkd this
iz diz summar ships?!!!111 …...
Level 28 Hostist
post #122332 :: 2020.06.08 8:18am
if you hotlink a library who is hosting it?
will it be there indefinitely?
would the disappearance of said library from the internet break your game in the long run?
Level 26 Mixist
post #122336 :: 2020.06.08 9:54am
  puke7 liēkd this
what if you just throw the library in the zip folder with everything else
Level 20 Chipist
post #122337 :: 2020.06.08 10:12am
>sorry to bust any bubbles
>but entries should really be stand alone
>as in they contain all their components
>and don't require the user to do more than open an .html document in a modern browser

This is kind of a huge problem since I'm making my game in GameMaker:Studio, which requires you to run a local webserver in order to play HTML5 games locally. I feel like I don't have time to learn HTML5 properly or learn a different tool. Would it be at all possible to make an exception for this? I really don't want to throw all my hard work away...
Level 28 Hostist
post #122338 :: 2020.06.08 10:14am
  null1024, kleeder, tennisers and DevEd liēkd this
pretty much have decided html5 for gamejam is too much work for me to answer all the questions so we're just gonna do tic80 after this one from now on
Level 14 Grafxicist
post #122339 :: 2020.06.08 10:37am
Okay, big noob here... Spritesheets? How?
Level 26 Chipist
post #122340 :: 2020.06.08 10:41am :: edit 2020.06.08 11:14am
crop out individual sprites from the png file with GIMP or any other image editor you like that handles transparency
Level 30 Chipist
post #122341 :: 2020.06.08 10:48am
  insertkey, DevEd, boscutti939 and tennisers liēkd this

no pls do not use paint for editing images with transparency x.x
Level 14 Grafxicist
post #122342 :: 2020.06.08 11:40am
b u t h o w d o i p u t t h e m i n t h e t h i n g
Level 27 Chipist
post #122348 :: 2020.06.08 1:45pm :: edit 2020.06.08 1:52pm
  argarak, A-zu-ra, amelia and kleeder liēkd this
my game currently just embeds the sprites I'm using directly in the code to ignore all of those pesky "this needs to be loaded from a server because accessing local data is dangerous" issues and I didn't feel like using not-canvas ways to draw the screen

something like

var img=new Image();
img.src= 'data:image/png;base64,[MASSIVE SPEW OF BASE64 DATA LOL]';

and I used the base64 utility to generate that spew of data
something like
$ base64 -w 0 < sprites.png > sprites.txt
(I'm on Windows, but I've got WSL installed -- there's other ways to do it)
then, you copy that text file in, replacing the [MASSIVE SPEW OF BASE64 DATA LOL] bit but leaving the rest

also, you'll need to wait until the image is loaded
my game throws the actual game code in a main() function and has it get called when the data is decoded
img.addEventListener('load', main, false)

like, I cut out the sprites I'm using in GIMP, the whole sheet as base64 would be huge lol

drawing the sprites from a loaded sprite sheet is ezpz, look up ctx.drawImage

in particular,
ctx.drawImage(image, sx, sy, sWidth, sHeight, dx, dy, dWidth, dHeight);

image is that image we loaded, sx/sy are where on the sheet to draw from, swidth/sheight are how wide/tall the sprite on the sheet is, dx/dy are where to put it on the canvas, and dwidth/dheight are optional parameters that say how wide/tall to scale the sprite to (so you can scale sprites)

also, I'm not going to lie, I expected this to be a tic-80 compo lol
oh well
doing it on a JS canvas isn't too hard, just has some weird gotchas
Level 25 Chipist
post #122350 :: 2020.06.08 2:13pm
  amelia and kleeder liēkd this
another way of getting the image data that I'm using is by using a simple <img> tag (this is especially useful if you're loading in the entire spritesheet like I'm doing, if you're using a lot of smaller sprites then base64 may be better)

if you put this in your html body:

<img id="spritesheet" style="display: none;" src="botb-spritesheet.png"/>

you can then use ctx.drawImage like this:

let spritesheet = document.getElementById("spritesheet");
ctx.drawImage(spritesheet, ...)

there aren't any CORS issues with loading a simple image as long as it's in a directory the html file can access. though make sure the image is loaded first before you draw it in canvas

oh and a useful tip: if you want to maintain crisp pixel edges when scaling images in canvas, you can place this code after you get the canvas context:

ctx.imageSmoothingEnabled = false;
Level 27 Chipist
post #122352 :: 2020.06.08 3:17pm :: edit 2020.06.08 3:24pm
  argarak and kleeder liēkd this
"there aren't any CORS issues with loading a simple image as long as it's in a directory the html file can access. though make sure the image is loaded first before you draw it in canvas"

huh, I could have swore I had issues with that a while back, or maybe I'm misremembering
oh well, if it works, it works

"ctx.imageSmoothingEnabled = false;"

neat, thanks
Level 23 Mixist
post #122365 :: 2020.06.09 2:20am
  Jakerson and Yung Gotenks liēkd this
Imagine not embedding chiptune.js to play all your music and sound effects
Level 27 Chipist
post #122502 :: 2020.06.12 4:59pm
  Jakerson, Lincent and kleeder liēkd this
How far is everyone? I'm almost done, just doing some final polish and checking for bugs.
Level 20 Chipist
post #122504 :: 2020.06.12 6:28pm
  Jakerson and Lincent liēkd this
still need to finish the final part + add ingame music (not even written yet)
Level 15 Codist
post #122508 :: 2020.06.12 11:43pm
Please Play My Game
Level 27 Chipist
post #122516 :: 2020.06.13 12:44am
aaaand, I'm done
feels good

(and then it turns out there ends up being an extension and then I have to beef things up lol)
Level 15 Chipist
post #122517 :: 2020.06.13 2:18am
  insertkey liēkd this
Extension wouldb e nice, even a day (Then i would have time to get some cool stuff like detecting custom beatmaps for the rhythm gaem)

I understand if no though. :<
Level 30 Chipist
post #122518 :: 2020.06.13 2:39am
  Lincent, argarak, amelia, DevEd, Lia and insertkey liēkd this
a 1-day-extension would be cool because i have like no time until sunday evening and final polishing is always a good thing. not necessary tho
Level 11 Chipist
post #122536 :: 2020.06.14 12:40am
  null1024 and kleeder liēkd this
hey guys, unfortunately I caught this one too late, had to submit an assignment which was 4 days late, there goes 20% :c

I'll try tic80 maybe next game jam :o
Level 27 Chipist
post #122580 :: 2020.06.14 3:42pm
  kleeder liēkd this
Well, this was fun.
Some seriously cool entries in here.
Level 20 Chipist
post #122745 :: 2020.06.16 11:22am :: edit 2020.06.21 5:01pm
  Jakerson, Pale Dim, null1024, kleeder and Baron Knoxburry liēkd this
azura stream when

EDIT 2020.06.19:
EDIT 2020.06.20:
EDIT 2020.06.21:
Level 26 Chipist
post #122923 :: 2020.06.21 8:41am :: edit 2020.06.21 9:52am
  Pale Dim, DevEd and null1024 liēkd this
i'll stream the entries at 12:30 EST
Level 28 Hostist
post #123138 :: 2020.06.28 10:44am
  kleeder and charlotte liēkd this
sorry botbrs,

i won't be doing a result stream for this today
Level 30 Chipist
post #123171 :: 2020.06.29 3:17am
Average Score: 21.531
Level 27 Chipist
post #123178 :: 2020.06.29 1:12pm
  argarak and kleeder liēkd this
So, what did we learn/get from this compo?
This is a general question for all of the entrants.

I had fun doing my entry. A lot of my time very early on was spent doing stuff that tic-80 does automagicially (spritesheets, getting graphics on screen, proper frame limiting in JS instead of just hoping vsync on your machine was 60hz), which bit into my time hard. One week was enough for me to get an idea out comfortably... but not much more than that.

I wanted to polish a few things up, add alternate modes to give the game some longevity, that sort of thing, but the remaining time I ended up having wasn't really enough to do anything too much without the high likelihood of having to abandon the additions before the deadline.

I dodged this issue because I did everything from scratch, but a few games had to be server hosted to work. A lot of webdev stuff in general assumes some kind of server at all these days. Also, some features just outright break depending on user config (like when I added score saving).
It's not nearly the graceful break I expected either (because I'm a dumdum who didn't read the docs completely and didn't wrap the functions to check since the feature was old enough that every browser that should be able to play the game would also have local storage support), but there's a lot of stuff that can just get pulled out underneath you, and dealing with it is added effort.

Really hoping that next time, next when, we do TIC-80 again.
Level 26 Chipist
post #123182 :: 2020.06.29 6:20pm :: edit 2020.06.29 6:29pm
i learned how to use godot which took a while because i had mostly only used stencyl and puzzlescript for games before, but it was mostly intuitive once i got my head around it.

LOGIN or REGISTER to add your own comments!