Showing posts with label graphics. Show all posts
Showing posts with label graphics. Show all posts

Sunday, August 11, 2013

ROM Game Jam Day 3 Report - "Rise & Fall"

The ROM Game Jam is over and my team, Robots Mashing Keyboards, actually managed to create a fully-functioning game prototype by the deadline.  The fruits of our labour is Rise & Fall, a 2-player dueling action game based on two ancient cultures (which was the topic of the jam).


In Rise & Fall, one player takes the role of  Roman soldier while the other takes the role of an Egyptian soldier...


...who fight by launching projectiles at each other.  They each have four broken artifacts on their side of the arena.


If either player gets hit three times, they "die" and the opposing player gets a point. Each point half-fixes one of the player's artifacts.  In the picture below, the pottery on the Roman (left) side is half-fixed.


When an artifact is fully repaired, it can interact with foreground objects, i.e. players are impeded by and can stand on it and it can block projectiles.


When an artifact is fully repaired for the first time, it's name pops up on screen so you'll know what it's called and you can recognize it when you see it at the Royal Ontario Museum (that was their idea, by the way).


To win, a player must attain nine points: eight points for a full set of repaired artifacts...


...and the ninth point from the "coup de grâce".


To the victor, goes his/her soldier running across the screen.


Here is a breakdown of who did what for Rise & Fall:

Idea guys (Game concept):  All of us
Pencil-, paper- & pixel-related tasks (Concept art, pixel art):  Shmuggly, Goombaguy
Computer keyboard masher (Programmer):  M.S.T.O.P.
Electronic keyboard masher (Music and sound effects):  M.S.T.O.P.
With us in spirit:  Saffy

We received lots of positive feedback from other jammers and, to my delight, the archaeologists that were helping us with the historical details of the ancient cultures we were making games about.  They all got really into it.  Also, due to all the hubbub in the room and the crappiness of my laptop speakers, the game's music wasn't heard very well. Here it is for you listening pleasure:



So what's next for the game?  Well, the Royal Ontario Museum said they would like to demo all the games made at the game jam to museum patrons in October, giving us two months to work on and polish our games further.  Given the positive feedback we received, we are interested in pursuing this further. During the playtesting, we found a few bugs and gameplay balance issues that need to be ironed out, so it looks like we already have an idea on how to move forward with the project.  :)

ROM Game Jam Day 2 - So Very Tired

Oh man, today was a tiring day, I didn't even have the extra energy to use Twitter to document my team's process. Not to mention the confusion and delay when I was taking the subway to the ROM.  Oh well.

I was going to create another demo video of what we have so far, but then some new sprites arrived in my email and I just had to put them into the game and test them out.  It's late and I don't feel like re-recording and editing the video right now, so here's a screenshot:

Roman guy vs. Egyptian guy

It's too bad I'm not able to show you a video; the sprite animations and foreground objects are coming along nicely.  As you can see, we have a Roman guy and Egyptian guy dueling each other.  The Roman throws spears pilums (the archaeological experts at the ROM said the latter was more historically accurate) while the Egyptian shoots arrows. They fight each other to restore their own ancient culture's artifacts for some unexplained reason and in some unexplained manner.  This has baffled and intrigued archaeologists for many minutes.  Tomorrow, we'll finish off the rest of foreground objects, the backgrounds and whatever is left over (well, we have to since it's the final day).

Saturday, August 10, 2013

ROM Game Jam Day 1 - The internet wouldn't allow it.

Normally, I wouldn't update my blog in the wee hours of the night, but the lack of a good internet connection at the ROM Game Jam has forced me to.

So now I share with you some screenshots of the work that has been done today by me and the rest of Team "Robots Mashing Keyboards" at the jam:

First, a screenshot of an very early version of the game:

FUS ARROW DAH?

I won't go into details right now, but let's just say our game will be a 2-player competitive platformer.

Next is a screenshot of a later build of the game, featuring graphics for one of the two characters in the game: some Roman guy, done by team member Shmuggly.

Minimalist architecture

And finally, the highlight of the day came near the end of the day: the inclusion of the Roman guy's running animation, also done by Shmuggly, into the game.  The initial results were hilarious:


The video doesn't do the run cycle justice; it looks much better (and funnier) at 60 frames per second.  The background music was composed by me, hastily over the course of only a few days and still needs a bit of work.  Still, I'm actually impressed with how it turned out.  When was the last time I even did anything in 3/4 time with the harmonic minor scale?


And now I'm tired, and have to get up early tomorrow to continue jamming.  Good night everybody.

Wednesday, July 31, 2013

140 character limit exceeded

This post was too big for Twitter, so I'm posting it here.

The first step towards creating a CRT display shader is complete.  Gonna Catcha can (optionally) draw the game window with barrel distortion:

Babby's first shader

I know there are already CRT display shaders out there on the internet, but I do want to learn how to do it myself.

In other news, it hasn't been a week yet and already amusing bugs have been making a comeback.


The video also revealed the new time bonus tally at the end of each round.

Monday, July 29, 2013

You have encountered Abstract Art.

Has it been two weeks already?  Tracking the Steam Summer Sale and playing around with shaders in GameMaker: Studio can really make you lose track of time.

Sometimes I tweet stuff on Twitter if the aforementioned stuff isn't substantial enough to be turned in a full blog post.  If you haven't done so already, you can keep track of those tweets on the sidebar on the right side of this blog or follow me on Twitter.

If you have been following on Twitter, then you'll probably already know that I signed-up for and got into the ROM Game Jam, the first ever game jam to be hosted by the Royal Ontario Museum (ROM) in Toronto on August 9-11.  I am part of the same team that was making That Which Binds Us.  I say "was" because we're focusing our efforts on the ROM Game Jam now, so That Which Binds Us has been put on hiatus for now.

Another tweet I made was about shaders.  Wait, I already mentioned that above. Anyway, I downloaded some shader scripts from this forum post on the Game Maker Community forums and, just for fun and curiosity, applied them to Gonna Catcha's drawing code. Although it wasn't its main purpose, but the graphics code modifications I had previously done also allows me to apply a shader to the entire screen, but I wanted to do that anyway.  Two birds with one stone I guess.  

Here are the results of my shader experiment:


Once you've regained your composure from watching the trippy and completely unnecessary graphical effects, you may notice something new in the video.  The game randomly places rocks in the maze that act as destructible walls. (Rocks?! I thought they were just blobs!) This is to slow the player down and allow the spirits to better disperse throughout the maze.  However, the rock impede the spirits as well, making the whole thing kind of pointless.  Of course, they're spirits; so my plan B would just have them, you know, pass through the rocks unimpeded. Preta can stay impeded by rocks, being corporal beings like the players.

One other big change I made to the game that might not be obvious in the video is the player movement code/rules.  Previously, the players had free movement; now their movement is restricted to the grid much like the spirits and preta are.  I did this to make turning around corners easier for the players. My previous solution had the players snap to a corridor if they were "close enough" to turn into one; it looked a bit weird and was a bit finicky.

Re-writing and messing around with the movement code did produce some amusing bugs in the process, something that hasn't happened in a while.


(Wow, this post was longer than I thought. And I was worried that I wouldn't have anything to write about! Harumph!)

Sunday, July 14, 2013

Well isn't this a motley crew of small updates.

In the past two weeks I've been mainly doing a little work here, some more over there and a tiny bit all the way over there.  The updates are a bit difficult to stitch together into a coherent theme for a post, so I'm just going to list and itemize everything.

Item #1

Implemented the Hungry Ghost enemy into Gonna Catcha:




It's current behaviour has it wander aimlessly in the maze like the Wandering and Straying Spirits.  However, if there is an item in the maze, it will move towards, consume it and then resume wandering and feeling remorse.  Also, you might kick yourself for not grabbing the item first. The Hungry Ghosts are harmful to touch at all times; they can be stunned or knocked out for a short period of time, but they cannot be captured, so they remain a permanent fixture in some rounds.

Item #2

Modified some of the rules for Pohena rounds:  if Pohena comes into contact with a good spirit, her movement speed will be reduced until she is no longer touching one.  They will slow her down enough for evil spirits or preta to catch up with and kill her.  Hopefully (or disappointingly for Pohena) this will make good spirits more of an obstacle as evil spirits are for Donum.

Item #3

New music for Gonna Catcha: Bonus Round!


Item #4

Rewrote some of the graphical and garbage-collecting backend code. The new graphics code fixes some minor graphical glitches that occur when upscaling the game window.

Item #5

Updated various parts of the blog:
  • The rules section on the Gonna Catcha info page has been updated with the info in Item #2.
  • The descriptions of the non-player characters from this post are now on their own page, with the addition of the two new spirit types and slightly updated artwork for the spirits.
  • Rearranged some stuff on the sidebar on the right.


THE END

Saturday, June 15, 2013

So much to talk about, so little time to write about it.

I seem to be falling behind on my plans to update this blog once a week.  Every time I implement an idea and am in the middle of writing about it, another idea comes to mind.  I end up holding off writing my post to execute the new idea so that I can put that into the post too.  I need to a way to synchronize my blog cycle and ideas cycle together...

Yeah, I  don't think that would work very well with only one person.

For the same reasons, this update is just another text + screenshots update instead of the video update I had planned earlier, which would have shown the game as it is now in action and demonstrated the audio as well (mostly the newly added sound effects).  I guess that will have to wait for another time.

Anyways, there are four things I would like to talk about today:  New HUD, Title Screen, Vector Stuff and Shaders.


New HUD


First up, I've made some changes to the gameplay and HUD (the two are related).  Below is a screenshot of the current in-game display:

HUD 3.0

You will see that the HUD now takes up both the topmost and bottommost portions of the display, making the levels themselves slightly shorter.  First, let's have a closer look at the top HUD:

New top HUD

And for comparison, let's throw up the old HUD here as well:

Old HUD is old.

Aside from the different colours and the fact the second player isn't active, there two main changes to the new HUD, which also reflect changes to the gameplay:
  1. A score counter is now where the life counter used to be in the top-left.  Previously I wanted the score to be tallied at the end of each level (in the style of games such as Battle City and Ice Climber).  However, I'm making some changes to the scoring system that would make that tally system impractical, such as rewarding more points per spirit returned to the shelter/jail in a single trip (think along the lines of Pac-Man's scoring system when you eat multiple ghosts in a row).  I may still have an end-of-level score tally for bonus levels.

  2. Remaing spirit counters are now where the round counter used to be in the top-center (not to be confused with the in-hand spirit counter just below the score).  In the original round flow, all the "target" spirits you needed to capture for a particular round appeared at the beginning of that round.  There was a maximum of 5 spirits you needed to capture per round; I felt that this number was too low and made each round too short.  Increasing the maximum number made the level too crowded when you also take the "nuisance" spirits (i.e. the ones that you don't need to capture) and hungry/vagrant ghosts into account. Also, it was also balanced out by the spirits clumping together, making it easier to capture more in a single "trip". My solution for this is to have a 4-5 on-screen spirit limit and then spawn more when the number on-screen falls below the limit (much like Pengo and Battle City, again).  The remaining spirit counters show how many spirits have yet to be spawned.  

Now let's look at the bottom HUD:

New bottom HUD

This is the new home of both the lives and round counters.  Also, the lives counter uses character icons now rather than hearts.


Title Screen


Next up, I'll briefly show and describe the title screen, which is still under development:

What? It didn't say "Coin chute required" in the system requirements!
I want my quarters back!

There are still a few things I need to add to it:
  1. A graphical title to put up top rather than just having "G O N N A   C A T C H A"
  2. in plain text.



  3. a score table (so player will know what is worth what in the game).

Vector Stuff


Next, have a few vectorized spirits:

Two down, four more to go.


Shaders


Finally, if you haven't figured it out already,

Shaders are coming coming to GameMaker: Studio 1.2, which is just around the corner.  I can wait to see what kind of 2D graphical hijinks I'll get into when it does, such as better CRT monitor simulation. (Maybe?)

Well, so long. See ya next time.

Sunday, June 2, 2013

Come gather 'round people, and listen to two tales of programming lore...



The time between the last post and this one was longer than I expected.  I wanted to make a post earlier, but then I started on something neat and decided to hold off posting until I gathered my thoughts about it.  The result is a very long post about two topics: old display simulation and an audio engine update, complete with anecdotes of projects I did in the days of yore.  Brace yourself.  At least there are lots of pictures to look at.


Old Display Simulation


I've experimented with a few graphical overlays that will make the game window of Gonna Catcha look like an old CRT display.  As with the audio capabilities of Gonna Catcha, this is something new to me, so it will require some research.  I've already found some blog posts that talk about it, but the methods shown used pixel shaders, which GameMaker: Studio doesn't support (well, at least not yet).

To get technical, you could code up your own pixel shader functionality into a GameMaker application using the draw and get pixel functions, but it will be very, very computationally expensive (i.e. it will make the game run very slowly).  I've done something similar with GameMaker before...

*flashback*

I've created a raytracer that renders several spheres on the screen in real-time without using GameMaker's 3D functions, just the 2D functions and mighty 3D geometry and trigonometry powers.  It could render at low resolutions fine (like less than 50x50), but once it goes beyond that point, it slows to a crawl:


This 50x50 scene runs at 8 frames per second...

...and this full-resolution frame takes about 18 seconds to render.
Yeeeah, I think I'll stick with the built-in 3D functions for now.

Thursday, May 9, 2013

He jests at time that never felt good use. But, software! What game doth yonder team projects?

It's been another slow week or so.

Yes, I know things are moving a bit slow for Gonna Catcha, but fret not as I did make some improvements to the spirit sprites. (Hmm, I'm getting déjà vu here.)  I added some animation to them to make them more lively. *BA-DUM TSSH*

(hold for groans and boos)


No one suspects the spirits with the shifty eyes!

If I get the scoring system done and add a a title screen, I can release a demo version of the game.  And that would be just super.  :)




In other news, it turned out I did make it into the Toronto Game Jam 2013, about 15 hours before the event started.  Some people had cancelled their confirmations, so there were spots open for my team.  Unfortunately, my team members had already made other plans for the weekend since when the initial rejection email was sent out, so we had to decline as well.  Hopefully things will turn out better next year.

Despite all that, we're still have our game idea; might as well not let it go to waste.  We decided to go ahead and make the game anyway in the near future.  I'll write about our experiences here.  Also, it shouldn't take too much time away from Gonna Catcha, so I'll still be working on that concurrently.

Sunday, April 21, 2013

We have some Items on the agenda that we must discuss. [Updated: 9/3/2013]

UPDATE 9/3/2013 - The content of this post has been promoted to a full-fledged page here.

As promised in the previous post, I will be talking about the items and power-ups that will be in Gonna Catcha.

Double Shot




Allows the player to have two shots on-screen at a time.

Long Shot




Extends the range of the player's shots.

Sunday, April 14, 2013

That's it, you're going on my Enemies List! [Updated 7/13/2013]

UPDATE 7/13/2013 - The content of this post has been promoted to a full-fledged page here.

Original post:

It's Pohena's birthday today!  To celebrate, I've made a list of the enemies and whatnot that will be in Gonna Catcha along with some descriptions.



I have settled on six different NPC types for the game, which I decided to sketch up in GraphicsGale (vectors coming soon).  There is a small chance that I will add a few more in the future, but for now, six spirits seems sufficient.

Six spirits seems sufficient.
Six spirits seems sufficient.
Six spirits seems sufficient.
That's makes a good tongue twister.

Monday, March 11, 2013

I've been trying to work for the past week and all I got was this lousy post title.

It's been a slow week.

I've been doing other things in the scary, mystical world known as "outside" that has left me feeling a bit exhausted.  In addition, coding on the Gonna Catcha has temporarily been halted due to the reports I've read on Game Maker: Studio-related forums. The latest update broke a lot of people's projects, namely their games have stopped running after being compiled, similar to the symptoms my projects had last week.  My project only broke once for a different reason, but it was fixed easily.  YoYoGames has suggested rolling back on the software to the previous version for now until they roll out another update.  Since I don't want my project to break again like last time, I'm still on the fence regarding whether to try the rollback solution or just wait until this whole thing blows over.

Well in the meantime, maybe I can dredge up something to show.

Hmm...

Tuesday, March 5, 2013

Fighting file corruption and tightening up graphics

One of the biggest annoyances I face when coding something is when your program suddenly stops working for no apparent reason.  It happened this weekend when I was working on Gonna Catcha.

I was just going abut my usual business when all of a sudden the game would no longer run after compiling.  My guess was that the project got corrupted somehow, so I decided to make it anew.  GameMaker: Studio's ability to easily transfer resources between projects and the fact that the projects themselves are just large collections of image, audio and XML files made this relatively painless.

In the graphical department, I made some major changes.  Not being much of an animator, I had a lot of trouble doing the side walk cycles for each character.  As of my last post, I had something that looked like walking, but it still looked awkward.  After reading this tutorial (which I had previously encountered during my undergraduate studies in game development in the days of yore), I realized that I was missing a "Passing" frame in the walk cycle, and that I made it overly complicated.  So after much tweak, this is the end result:


I haven't even finished Level 3 and I've already tightened up those graphics a little bit.

Monday, February 25, 2013

Gonna Catcha - An arcade-style maze game [Updated 4/3/2013]

UPDATE 4/3/2013:  This page is deprecated.  Here's the more up-to-date page:


UPDATE 3/17/2013:  Woo!  Coloured portraits!

The time has finally come; allow me to introduce my new game project.

Game Info



The game is called Gonna Catcha, an arcade-style maze game where the player(s) assume the role of one of two psychopomps in their duty to get spirits to where they belong.  What's a psychopomp?  You know, those guys that guide spirits of the dead into the afterlife.  You knowthese guys.