Posts

Showing posts with the label brainstorming

JS13K 2020 Game Jam Day 23

Image
 *Sigh*  It happened again!  Oh, well.  Let's just see how much I can get done before the deadline.  If I don't finish this one, I'll add it to the pile of games to finish:  right next to Shield Bearer. I've been brainstorming a bit on how I could do a menu.  I feel like I should treat a menu like Levels themselves:  the graphics will be drawn on the world, Ratio-Vision will capture that one section and render it, and all the inputs will be driven by a menu controller object.  In fact, I've been brainstorming of a way to handle controls as well:  I feel like there needs to be some sort of abstraction layer so I'm not checking the Unicode for each key, I just have to make sure that a player or controllable object implements certain actions from this controller object.  I'll call this Master Controller!  Yeah, it's not as original as Ratio-Vision, but I wanted a simple name that perfectly describes its functions. I want Master Co...

JS13K 2020 Game Jam Day 14

Image
Oh no! Did I really spend fourteen days not coding! No need to really panic, I've been designing most of the game in my spare time. Though I lost so much valuable time not coding! If I didn't tell you already, the theme for 2020's JS13K Game Jam is 404.  One of their example interpretations  was "something missing".  So, I came up with this idea of a Memory-Puzzle-Platformer game where you play as a character that needs to go through this big door.  The issue:  parts of the door are missing and you need to collect the part(s) on the other side of the map to get them.  You will have to avoid enemies and jump on platforms to get to the other side of the map while trying to remember the part of the door that you might be missing.  Once you get to the other side of the map, there will be multiple pieces that could be part of the door or bogus pieces that will waste your time.  I decided to call this game Whole Door.  It's both the objective o...

Are you coding, son?

 Sadly, I've just been coding stuff for my job: very boring websites and no games.  I'm sorry that I lied about coding on the 7th of March 2020.  Things got pretty hectic during the pandemic!  Now, I want to get ready for JS13K games 2020 !  So, let's work some more on Daemon to re-familiarize us with how to make games in HTML5! I haven't been actually coding, but I've been brainstorming on what to do about how many pixels I should try to make each cell on my grid.  I eventually had the thought that it was the wrong question to ask.  What I eventually came up with was a way to force a certain aspect ratio for a canvas that would be used to draw the sections of the map/world as my "camera".  I call it Ratio-Vision! Ratio-Vision is an object with functions to normalize the display between different screen sizes.  One of the problems I found out with my games was that they would play differently depending on the size of my screen.  Shield B...

Metroidvania Month 7 Day 9

Yeah, I missed a day.  Hopefully, I can still get Daemon in a working state on time. I was looking into possible control schemes for the game and managed to find some documentation on Gamepads for HTML5 .  It seems like it is just like adding the Gamepad's "keyup" Events to the window, but you have its connect/disconnect Events as well.  I think it would be nice to have a Gamepad and have the game play like Super Metroid.  However, I don't think all the controllers are the same: a button on an Xbox controller plugged into the PC might use a different Event than the same button on a PS4.  They might confirm to the standard Gamepad setup , but I don't want to add any extra complications at this time.  So, I'm just going to focus on WASD and Arrow Keys on the Keyboard for now.  Maybe add a touchscreen control pad for smartphones later.  I'm just trying to get stuff to a working state first, then I'll add those extra features in the future. My fir...

Metroidvania Month 7 Day 6

Hey, I know it might say "Published 2/21/2020" so it should be Day 7 instead, but I was thinking about an idea I had for the save files just now and I wanted to type them up before going to bed. The question rattling around in my head was this:  how do I save the exact power-up that I've collected?  Simple: we store an ID in an Array.  The save file will be a JSON object and within that we could have arrays for each max ammo and max health power-up type.  Say in the game we have Tanks that store extra health.  In our SaveFile JSON object, we would have an Array called "tanks" that just stores IDs of collected Tanks.  When we enter a room that has a Tank, we search SaveFile.tanks array for the ID of that Tank.  If the ID is found, don't spawn that Tank, otherwise, we spawn it if it hasn't been collected.  What is the maximum collected Tanks that we should fill?  SaveFile.tanks.length should give us the maximum Tanks to fill. After answerin...

Metroidvania Month 7 Day 4

Image
One of the things I feel is necessary in a game that isn't a small Arcade Title is the ability to save and load my game.  If you have a story in your game, you need to be able to save your progress and return to it later to experience the whole thing.  So, I went searching.  I found a question on Stackoverflow and an answer that explained the difference between internet cookies and localStorage .  After some more research, I chose to go with this localStorage.  It's new to HTML5 and is available on nearly every browser .  Plus, I found some really great examples on w3schools for Web Storage .  The Metroid games have three save "slots"; so I think I can create a JSON for the save "slot", turn it into a string, and then set the localStorage "slot" for it.  Then, when I need to load the game, I just get that localStorage "slot", transform it back into a JSON, and then use it to set the game back to a state before the player left.  We'll ...

Metroidvania Month 7 Day 3

Image
Don't worry, there's no Metroidvania Month 7 Day 1 or 2.  It would have just been me telling you that I'm still working on a title.  I wish I could just start creating something, but GitHub wants me to name my repositories first before starting on my project.  I guess I could have created the files on my computer, but I hate the idea that my work could be lost without backups or commits that I can roll back in case I mess something up.  I could have also given this game a "Project Name", but I feel like I might accidentally create one that is better than the end product (see Project Scorpio and Project Revolution for example). Anyway, I came up with thirteen names for the game and ended up settling on Daemon . The game is about a robot that has gained sentience in a lab and now has to collect power-ups to help it escape.  Daemon, in computing , means a computer program that runs as a background process.  I felt the name could be fitting as the robot ...

Coder's Log 1/28/2020

Hey, you know the drill by now. I've been trying to find motivation to work on a project that I could use to learn Spriter Pro , but my job has kept me pretty busy.  There was some projects that needed to be completed at my workplace, short deadlines, pushy customers, and our Project Manager has left.  Now I'm the Project Manager, but only temporarily, as my employer finds someone else for the job; though, I think I got the experience and skills to handle the job. Anyway, you didn't come here to read about my professional life.  I'm hoping you're here to see what fun stuff I'm creating.  So, to help get me motivated, I decided to find another Game Jam to join to give me an incentive to work on something.  I think I found the perfect jam:  Metroidvania Month 7 !  It's another Game Jam hosted on itch.io and I'm liking that it's not going to force me to do a theme.  Well, besides the fact that it forces me to make a game of a certain genre. ...

Game Off 2019 Day 5

Today, I told my friends at work that I was creating Un-bee Leap-able for the Game Off 2019 competition.  Jedulz said he would love to help me with the game.  He told me about how he was trying out the GDScript that is used by the Godot Engine .  It's very similar to Python, which sounds like it won't be a terribly difficult language to pick up.  Plus, I also checked out the features of Godot and it states that it can build games that can run on the web using HTML5 and WebAssembly.  Which would make it nice for testing:  we could run it from a GitHub.io page instead of rebuilding or reinstalling an executable game.  I also found this article on how to export Blender files for Godot .  When I used to play a lot of Garry's Mod, I wanted to learn how to use Blender to create 3D models that worked on Valve's Source Engine.  I think that settles it:  I'm choosing the Godot Engine for my game! Jedulz sent me a link to this site called op...

Game Off 2019 Day 4

After a few days of trying to find a good idea for Game Off 2019 , I think I managed to come up with either the dumbest idea...or the best idea:  Un-bee leap-able! You play as a ninja that starts the level by leaping straight up into the air, and then you pull out a giant kite that you use to glide through the air.  Your objective is to land in a designated zone on the map.  While gliding through the air, you have to avoid giant bees.  If you touch a bee or land in an area that isn't the designated zone, you restart back at the starting point but with cash to spend on upgrades to help you glide around better. It's a really crazy idea!  I know!  I just came up with it while listening to  Jack Stauber's Micropop , and I think the idea has enough quirky charm to go really far in the competition. Now, the question is: what engine or whatever should I use to create the game?  I would love to make the game 3D and have it feel like gliding around a...

Game Off 2019 Day 1

Sorry that I haven't kept this blog up to date.  My job has done its best to keep me too busy and exhausted to do much outside of work or sleep.  Here's just a few things that have happened between now and the last time I've updated this blog: After I finished the fourth Pull Request, I received an email congratulating me from dev.to on 10/21/2019.  It told me they would put a "badge" profile on its site, so I created my profile on dev.to . I got a confirmation email from Hacktoberfest 2019 that I've completed my Pull Requests on 10/29/2019; it came with a link to get my free shirt.  I'll show it off once I get it! I tried to learn Ruby on Codecademy , but I was super busy and only completed the first lesson.  I want to use it to enhance  my GitHub.io page with Jekyll . I bought another Game Dev book bundle from Humble Bundle: Developing Your Own Games Jedulz introduced me to the Godot Engine ; it looks promising, but I haven't had the ti...

JS13K Games 2019 Day 31

Image
Oh, boy!  It's 4:53pm right now and I have only about 14 hours to finish my game.  Hopefully, I can get something playable by then. My first goal was to finish the collisions with the Backscatter Buster shots.  I have them moving, but they're only affected by the walls.  It's been a while since I did collision checking, so I had to think about it.  I decided to create a separate function called collisionCheck to check for collisions between two objects.  It would be cleaner, and smaller, to have this check be in a function that I can reuse.  So, what is the algorithm that I should use? What does it mean when two objects collide?  I drew it out, and I think checking the corners on one object to see if they are within the bounds of the object.  I think that will work for a majority of cases, but probably not all of them. As I was eating dinner, I was thinking about objects that overlap each other but their corners don't touch.  Th...

JS13K Games 2019 Day 29

First of all, I need to give a shout out to my friend jedulz for helping me get Shield Bearer to be drawn on the HTML5 Canvas!  I was having trouble getting the height and width to be correct until he sent me this pull request to fix drawing to the Canvas .  Now that I can see what is going on, I can start solving some of the issues I'm currently having with my game.  I changed the Bearer from being drawn by strokes, to just a filled rectangle so I could see it better.  I'm hoping I can get some sprites going before the deadline. The first issue I sent out to tackle was that the Bearer would get stuck traveling to the left of the screen.  Jedulz suggested to me that it might be caused by moveLeft, moveRight, stopLeft, and stopRight functions.  I didn't like using them in the first place, because they kept messing with the dx.  So, I stepped back and ask myself this question: what are the keyup and keydown events trying to tell my game?  The orig...

JS13K Games 2019 Day 26

Wow!  My brain is coming up with a lot of ideas for Shield Bearer tonight (12:27am on 9/7/2019)!  I just came up with a good idea: variable jumping height!  How do I implement that in my game?  In Jedulz's entry , he uses a variable called dy for change in the y direction.  He then has a gravity variable that will increase the dy, because it is negative to send the player upwards, and then the player falls to the ground when dy is positive.  I'm thinking, on a "keyup" event for the Up Arrow or W key, we set dy to zero if dy is less than zero.  That way the "downward force" of the gravity starts working immediately after releasing Up Arrow or W key.  Also, I came up with having that if condition because I don't want the player to be able to release the Up Arrow or W key at any time to restart accelerating to the ground. I wanted to get my "game over" state set up for later.  I'm thinking I'll have a health counter or something.  When...

JS13K Games 2019 Day 25

Ah!  I got it!  The name for the Bearer's laser cannon will be the "Backscatter Buster"!  It's freaking PERFECT!  Backscatter is another word for reflection, which will be how the cannon works: it fires a projectile that can hit a wall and reflect back at you.  It also contains the word "back", which was the theme of the competition !  I was a little worried about calling it a Buster, though.  It is also what they call Mega Man's, X's, and Zero's arm cannons.  However, Buster is an actual term in the dictionary that means a person or thing that can break/destory/overpower something.  That's probably why their cannons are named "Mega Buster", "X-Buster", and "Z-Buster" respectively: they can't just copyright or whatever the word Buster, since you can't really copyright a single word.  At least, that's what Quora is telling me . So, I've never really used the HTML5 Canvas before, if it wasn't ...

JS13K Games 2019 Day 10

Don't worry!  You're not missing anything!  I just didn't do any work on this for about a week.  I hope no one who manages Developers sees this and goes "There!  That's why we have crunches!", "Developers are lazy!",  or something.  My real job has been really hectic lately.  Plus, if I have to choose between losing this competition and keeping my paying job: I'm keeping my paying job.  This was just something to do for fun and to break up the monotony of stuff I have to do for my job.  Anyway, I did do some work on Shield Bearer! I completed setting up my repository for Shield Bearer !  I haven't wrote any actual code yet for the thing, but I did start planning out what all needs to be done.  I brainstormed what needs to be done in order to "ship" the game.  Those are things needs to be done in order for me to have a game that I could zip up and submit to be judged by the competition experts.  Without them, I got nothin...

JS13K Games 2019 Day 1

Image
Finally, the competition has started!  This year's theme: Back .  Wait...what?!?  Back?!?  I was hoping for something a little more...specific.  Something like Cyberpunk, Medieval Fantasy, Space, or something besides a random word from the dictionary. So I sat down and thought about the word "back" and what it could mean.  Back could mean to physically move backwards, a throwback to a different era, to go back in time, to undo a step taken, the body part or the spine, to backup or reinforce, or to return where you began.  Then I looked at the definition of back that was posted, and it said pretty much what I thought of and more.  That was a pretty good waste of my time! Now that I had this big list of what "back" could mean, what should my game be about?  How should what is the game play?  In the words of Yahtzee Croshaw, what is my game's primary loop ? Well, I don't want to make my game about time traveling.  I have this we...