This is Bananattack.

Tag: resonance

Temporal Stasis

Posted by Overkill on April 3, 2009 at 6:00 pm under Uncategorized

I’m putting this project on hold temporary, since I have exams. I also want to participate in Thrasher’s 24h compo idea tomorrow, and I want make a twitter app to automate Gamagame.

I will return sooner or later though. Later!

Tags: , , ,

No comments (make one!)


Resonating

Posted by Overkill on March 29, 2009 at 11:09 pm under Uncategorized

So I had earlier abandoned Resonance for another game idea, thinking it was the right thing to do. I figured that Resonance was too complicated, and would require too much work to get anywhere. In a way, I was right, but now I realize that I was also mistaken in these judgements. It was complex, but not to the point of disrepair. It just needs some loving and nurturing.

Upon review I know of several ways that I can make this idea work better. In addition to that, I have a lot of existing code for Resonance, that simply needs moderate updating to work with new ideas I’ve acquired.

I’m thinking of reducing the complexity of Resonance quite a bit, so that it’s more fun, and more structured for use in story and level design. Level design is something I desperately need to improve, but I think I’ve finally formulated some ideas to remedy that. Once I’ve verified that they work for me, I’ll be glad to share them to everyone reading this.

I know how vague this sounds right now, but I intend to turn my development around. Sticking with a project has always been difficult to me, but I think Resonance has many things that I consider good for a full game.

School is consuming my time, and it’s confusing my thoughts. I don’t write things down and plan enough, and this is why I have been all over the place with my development time. I end up adding things to engines which ultimately I don’t even need, or making my life needlesssly challenging by reinventing the wheel. I distract myself with various tiny details rather than working toward a bigger picture.

So Resonance it is. What I need for the game will determine what I spend time on. I have yet to develop a full list of what I need, only ideas.

Thus my immediate task: To jot down what Resonance had before, and what Resonance needs to become a feasible project while not compromising on fun.

Oh and I might also sink some time into making a simple site for this silly Gamagame challenge I’ve imposed upon myself.

Anyway. Until the next incoherent babble post, farewell!
 
 

Summary (as of March 30, 2009)

Productivity Points: 15/21 (-4 for days since post, +5 for deciding on the game idea)
Tasks for the Week (Must sum to 10 points):

  • Describe how to scale back the old game system by reducing complexity. (4)
  • Decide on how much code can be reused. (1)
  • Come up with a rough story outline (2)
  • Come up with actually concrete designs for the first level of the game. (3)

Tags: , ,

No comments (make one!)


Resonance Grows Stale, Shmuptroidvania Born

Posted by Overkill on January 3, 2009 at 10:42 pm under Uncategorized

So for a short time I was working on resurrecting Resonance. And I actually found a quick and talented artist, Souly, from Pixelation!

However, shortly after school came around, and violated me with some rough mathematics final exam, so I was too busy to work on it. When I was done, I had the somewhat bad idea to host a competition. This meant no work would be done on Resonance for some time. I honestly needed a break from the stress, and compos were good at that.

Me and Toen made a game called Monster Magnet Meow (I will rehost here later probably). Our Briton friend, Zip, was also trying to help, but it seems like he must have been too busy because he left us with an unfinished map and a few new bugs in the code right before the compo ending. Sadly we had to pull his work out from the submission, which is a shame, but maybe if he reappears we can get him to finish it!
 
 
 
But I have other both good and bad news: my artist got hired by a game company! Which is great for him, since Souly definitely is a deserving of a professional pixel art job. I wish him luck. I haven’t really been in contact in a while, but I’m guessing that he has gotten much busier.

Between losing an artist and generally having it drag on in this way, that probably means the end of Resonance’s lifespan, but I still learned a fair deal. I just think if an idea grows stale like this, it’s better to abandon it and move on.
 
 
 
Then I had the idea to the make a new game style, which I call shmuptroidvania

Shmuptroidvania = shmup (“shoot-em-up” arcade space shooter) + metroidvania

Ever heard of the game Air Fortress?

It was an old NES game that had 2 phases: shmup elements leading up to each fortress and sidescrolling elements to explore and destroy the fortresses. It wasn’t perfect, but it had a fairly awesome idea. This is at least proof of concept that shmups and sidescrollers can live under the same title and work.
 
 
 
Combine this mixed-genre game with the modern popularity of metroidvania games. You get a game with a fair mix of action and exploration.

When in your ship, you cruise forward, dodge obstacles and fight through bullet hell action.

When on land, you can run, hop, and shoot things, while solving puzzles and exploring the lands you’d typically ignore from a shmup. But this is interesting! That giant planet you’re nuking, you don’t really interact much with it normally, but this game plans to change that.
 
 
 
How would I keep backtracking in shmup world less annoying? Two things come to mind.

First, a bunch of branches and alternate routes which popup as you go. You can also turn and run away from an area your shmup reflexes don’t feel ready to face yet with the flick of a button (which spins your ship in the opposite direction and then reverses the cruise direction). I’d also reward completion of shmup areas with a fresh, possibly-less-hectic routes the player can travel.

Second, for lengthy travels, there would be an ability to teleport between places, which would also relieve a bit of annoyance.
 
 
 
Anyway, this was just an idea that recently stuck with me, and I have a feeling I can make it work in ways Resonance just wouldn’t.

This also makes me get two sorts of game styles I’ve been trying to get out of my head for a while, and creates a fresh take on fairly commonly made genres.

Tags: , , , ,

No comments (make one!)


Resonance Rebirth

Posted by Overkill on November 30, 2008 at 6:20 pm under Uncategorized

So this week, I began working on Resonance for the first time in a long while!

So what did I accomplish? Read on!

Walk Cycles: Boy, I suck at animating

First thing I spent time looking into was trying to make some walk cycles. I struggled with a 4-frame walk cycle, but there’s a bunch of things off with it that still need to be fixed.

Here’s the sprite sheet with a walk frames:

I’m too embarrassed to show it off in motion right now because it looks really… odd. I think I need to up the frame count and stop using ping-pong style frame switching.

I might just start over, since it only took a couple hours.

Abilities: Take Two

I also started to give thoughts to another aspect of Resonance, the ability system.

Currently abilities in Resonance just don’t feel “fun”, and are sort of overcomplicated with the whole level-based-on-position-to-beacon. I decided that this need to be changed. I present my — I hesitate to say “new”, but — fresh ideas on ability management!

Well
 
 
All abilities are on/off, not level scaled. This means that you don’t need to worry about a level 3 jump boost becoming a level 1 jump boost and trying to memorize what the hell the difference is.

It means that I actually KNOW where each ability’s useful range begins and ends. Right now, the level 4 power is given by a like 1/8 of the broadcast range, and level 3 by 1/4 broadcast, and level 2 by 1/2 broadcast, which is just horrendous to deal with level design wise, and also DEFINITELY not clear to the user where something starts and ends.

This also improves how I can present the information on the HUD, since now I can show a show a gauge that indicates your distance from a beacon, instead of an arbitrary “level” indicator. And when an ability is near the “fizzle-out” distance, I can display nifty warning effects.
 
 
Abilities are distributed over “channels”, and are received by “equipment”, where each beacon in the world has an assigned channel it broadcasts on, and each equipment piece has a channel/channels it “listens” to. So you have, say a Weapon, Armor and Shoes, which determine different aspects of your ability listening.

At first this seems like a complicated thing to introduce, but hear me out!
 
 
Abilities on the same channel can be mixed.

So let’s say an “Alpha” Pistol can pick up on all modifiers broadcasted to the Alpha channel.

So there’s a base power: shooting stuff. Overlayed on top of that are the abilities in that channel.

So say you bump into an Alpha beacon which broadcasts “Frenzy”, it will turn your weapon into an automatic. And another Alpha beacon elsewhere broadcasts “Electrify”, which will make your weapon shoot powerful shockwaves. Walk into a region that broadcasts both Frenzy and Electrify, and you get a machine gun with electrical rounds.

Meanwhile, a “Beta” Sword picks up on all modifiers broadcasted to the Beta channel. A beta Frenzy will give you a rapid slashing attack, which is different behaviour from the gun.

Perhaps your final Shoes pick up on every channel, then, you get a Alpha Double Jump, a Beta Sprint, and you can use either at the same time, since the equipment listens to both channels.
 
 
But there’s more! Channels can be jammed and “bad” broadcasts can be made.

So listening to only one channel with equipment has the disadvantage of jamming preventing any abilities on the channel going through.

Bad broadcasts are also possible, so equipment that listens to multiple channels is more vulnerable. So something like reducing visibilty on screen, or gradual damage to the equipment holder could be employed.

These are both mechanics the enemies (who I plan on describing more in a later post) can use.
 
 
New channels are found as you go on, so for starters, there might be two channels, but later you’ll get equipment that listens to far-out there channels.
 
 
Certain enemies can listen to channels for abilities too, so any ability (good or bad) is picked up by the enemy’s equipment that can listen to special “enemy” channels (which you get access to later). And later enemies could be able to listen to every channel, to introduce a challenge further on.

Abilities: The Tough Part

Okay, so I sort of lied, I made the system more “comprehensible” and simpler for level/game design.

This isn’t exactly making the game’s ability any system simpler codewise. It’s more complex in code.

So in summary the new immediate things to do:

  • Make beacons that are on/off by range
  • Channels are introduced — need to give them cooler names than greek letters
  • Beacons have a single assigned channel for their abilities
  • Equipment has a base ability, and a list of channels it can listen to
  • The equipment interprets how to apply each power received to its base skill, and (weapons especially) should smartly mix combinations of powers on a channel.
  • A HUD of some sort needs to be planned out
  • I need to make enemies
  • Those enemies need to use equipment + modifiers and employing jammers smartly somehow, and this means clever AI (eek?) or smart scenario planning.

That’s about it for now. Also a warm hello to Kael and Zaril, who also seem to be making sidescrollery things.

Tags: , , , ,

No comments (make one!)


Gruedorf: New Years Resolution?

Posted by Overkill on October 20, 2008 at 6:00 pm under Uncategorized

So this is the second year into McGrue and Kildorf’s fearsome competition known as Gruedorf.

What did I do in a year? This list summarizes it pretty well:

  • I lost Gruedorf several several times.
  • I added new features to Verge 3, and fixed the new Lua side of the scripting
  • I was one of the first people to use LuaVerge in a project, though Kildorf was the first to post
  • I made a scripting improvement for LuaVerge called vx (which you can read about here). Basically like Verge with OOP and awesome. Ustor uses it in his space game!
  • I made a data language called Mungo, which was basically a human-readable replacement for plain-text file formats. Better than XML in some ways, because it doesn’t have annoying tags, it just has bulleted lists with colons. I use it in my own projects at any rate.
  • I worked on a sidescrolling Metroidvania game idea I had for a while, called Resonance, which you can view the work-in-progress for with an SVN client from: http://www.verge-rpg.com/svn/resonance/
  • I attempted to create my own file formats for maps, tilesets, and sprites. And also thought about a container format known as a “world” that basically joins up a bunch of maps seamlessly. Unfortunately the results of this were…
  • …I got frustrated with existing game engines to an extent, and decided to make my own game engine from scratch which I’ve called Brockoly for the time being. I’ve been developing it under both Windows and Linux. You can view the intermediate C++ source and current crappy demo from: http://www.verge-rpg.com/svn/resonance/branches/Brockoly
  • This website was formed (thanks to Grue and Zeromus for hosting). I updated this website a tad, with a few different layouts. It’s been through varying degrees of eyesore. I think it looks better, but it’s still got a while to go. Plus it looks pretty damn broken in older low res browsers. I need to rehost all my games here :/
  • I drew a bunch of random pixel art. I think I finally am starting to get the hang of spriting in ways I never did before!

Speaking of art, I never posted this here, but I’ve been making changes to Resonance’s protagonist sprite with the help of Pixelation (a site dedicated to learning and critiquing Pixel artwork):

Anyway, most recently, I’ve put in my sprite system. It can do all sorts of funky things so far, like custom frame dimension stuff, hotspot setting, custom animation strands, transparency, and sprite rotation. And it uses Mungo! Really, not especially impressive, but it’s a start.

Anyway, seeing as it’s a new year of Gruedorf, maybe some resolutions are in order. If they’re anything like typical resolutions made on New Year’s, they probably won’t be kept. But like New Years, I can sure try!

My resolution: To lose 450099030984534095 pounds to actually post more on Gruedorf. And to be less lame.

Sadly, with school my attention gets diverted a lot, and I am typically pretty busy. So I’d appreciate nagging and support to keep me posting more!

In fact, it was McGrue who was nagging me to post this week. You should nag me too!

Anyway, maybe year two of Gruedorf will fare a little nicer!

Tags: , , , , , ,

1 comment


Distorting Your Reality; Crotch Shots No Longer; A Plea for Creative Teammates

Posted by Overkill on March 9, 2008 at 2:03 am under Uncategorized

This week’s build adds a neato distortion effect and some small modifications.


Get it here.

This screenshot doesn’t do it justice, run the build to see it in action – much prettier when not captured in a still!

Anyways, this distortion effect allows me to add transitions for the player between different their appearances, and also add useful “in danger range” distortion for losing weapons (which I think will be paperdolled onto the player — in a way that it actually looks like the player’s gripping them though) or when close to death. I’m not sure how expensive this effect will be in game, but it splits each row of the sprite and scales it according to a shrinking distortion range, with a slight lucency fade for extra aesthetic points. If it turns out this effect is too expensive to put directly into my game, I’m sure nobody would mind much if I incorporated the routines into v3′s raw C++ internals.

I need to refactor my image splitting code a tad, since the distortion currently assumes a that the image that’s being split is never updated. So if the player were to ever change frames (when I actually have animations), this should affect the strips too. I’m thinking I might be able to get away with just one buffer 1xheight that’s blit on several times and scaled back to the screen, but that might be SLOWER? Who knows.

Oh! I also did another useful thing. Several people pointed out that my player was firing shots from his crotch. So I moved the firing location higher up on sprite. I still need to draw firing frames, jeez! I’m getting there. Art has just lost priority for a bit, since animation is a weakness of mine currently.

I’m looking for eager artists and musicians still! I have a few positions actually, and with it I’ll outline a few basic responsibilities:

Artists: you should be able to draw in a style matching the existing art so that if you decide you’re too busy I’m not stuck filling in and adjusting clashing artwork.
Musicians: Up to interpretation really. A lot of the music will probably be ambient electronica or post-rock. Boss/heated situation music might be a little more orchestral. Old-school chiptunes might be okay in some areas too, but I don’t exactly want to end up with a game comprised only of chirpy beeping and buzzing.
Level design (and for that matter general design): Having another hand in the level design makes my job easier, and populates the world with fun and creative gameplay. You’ll really have to run by me on this one, because if the maps suck, the game sucks, simply put. But if I have a level designer, I’ll get more drive to put in various game features and abilities as demanded. You’d also have some influence on the story, naturally. Cooperation with the artist and musician is highly required to ensure the game’s resources are adequately utilized.

If you know people who meet these criteria who might be interested, please please please get them in contact with me (or leave me info so I can talk to them). I’m relying on you to help me, because you can really help me pump out an awesome game much faster if I have resources at my disposal! I’ll want samples of their work unless I know them already, but this only sounds fair. Of course, this is entirely unpaid work. I’m a college student, I don’t have disposable income, so this is all a hobbyist’s plea for help. You will receive credit for your work and if in the very unlikely instance this game ever was released for profit, I’d make sure you guys received a profit. You at least get the merit of saying you helped Overkill accomplish something great.

Note that I’m not relinquishing my control from this game, but I think that having other team members could make this go much smoother. It reduces my burden in development, because I’m a busy guy, and makes the weekly updates more impressive and less likely to fail!

Love you guys tons.

Tags: ,

1 comment


Pew pew pew!

Posted by Overkill on March 1, 2008 at 7:59 pm under Uncategorized

This week I refined the minimap system and the game’s weapon/bullet handling system.

The minimap is a lot less crappy. It scrolls with the camera and it uses slightly smaller map regions.


Get it here.

Made a Mungo file to store bullet information, called “bullet.mungo”. It makes specifying the similar bullet types made by a single attack much easier.

Lately, I’ve also been thinking some sort of “data inheritance” to Mungo might be useful if I reused this for other games:
* Fighter - name: ? - hp: ? - strength: ? - defense: ?
* Player < *Fighter
- name: Clyde
- hp: 100
- strength: 324
- defense: 112

(Note that this is an example, not actually implemented and it’s not for this game). Where < is an inheritance operator which takes a list delimiter and list item name to inherit from. It would let you get away without having to repeat specifying data in common with multiple things, and also to ensure that information is “implemented”.

Sorry, I have to write this in a hurry this week. But check it out! Weapon levels have new fancy bullets and the minimap looks cooler! Now I’m out. Laters.

Tags: , , ,

2 comments


My Big Throbbing Love Organ

Posted by Overkill on February 24, 2008 at 2:21 am under Uncategorized

Yeah, that’s right, I drew a cutesy heart icon. Why, what did you think the title was referring to? Sicko.

Using it, I added a animating health meter to Resonance!

Get it here.

I’m not sure if this is this the sort of health gauge I’m going to stay with, just need something for now. I might switch to a percentage-style meter system which Megaman, Cave Story, Kirby Superstar, Castlevania, and a ton of games use. It’s a little more nice than a tick-style system, in that you get in-between health amounts, but slightly less fun to look at, because there’s less artistic representation usually with these sorts of gauges. Then there’s Metroid, which has several energy tanks and an active tank which has a health rating out of 100 (plus reserve tank which effectively doubles the tanks you get).

Oh, and then I need to think! How will underwater breathing work? Lots of games just let you breathe without penalty (NES/SNES age Marios on levels where water isn’t a deathtrap, Metroid, Kirby), or somehow keep you from going in water until you get a proper ability (Link to the Past), or keep you from going underwater but you can still swim until you get an ability (Aria of Sorrow). Then there’s Ocarina of Time, which had it so you’d just float back up after 3 seconds of diving (unless you get stuck underneath something, then I think you got hit with damage until you surface). Then there’s lots of games where you have limited air supply and start taking damage after air supply runs out. Cave Story took this too far, and just had you die instantly after about 15 seconds (100 air) elapsed without surfacing, which I didn’t like. Then I remember Mario 64 (and Sunshine, and maybe Galaxy, too?) had this wacked out health system for breathing underwater that overlayed your current health. Oh, the dilemma of water handling in video games!

Moving on, you can take a deep breath again, I find thinking about water levels a lot affects my breathing slightly!

I recently cleaned up a lot of unused files, and renamed the ‘chr’ folder to ‘sprites’, because none of the sprites use Verge’s CHR system (instead they use Mungo, a simple associative data language!). I might eventually move all my resource files into a folder called ‘resources’ or ‘res’, just to tidy up things and give my data a bit more hierarchy!

Oh, and I renamed my ‘v3′ namespace to ‘vx’ after Kildorf and I decided to rename the ‘LuaVergeRaw’ (internal v3 binding) package to ‘v3′, which was a better name. vx stands for Verge eXtension!

Since I don’t know how much I mentioned it before, vx is a slightly object-oriented approach to wrapping the v3 library, addressing some personal gripes with the classic library and making it nicer to compose with OOP. Kildorf seems to be doing the same thing, but I’ve did it first! I made my library before anyone actually knew LuaVerge existed! Zeromus and I meant it to be the official middleware wrapper to LuaVerge, but unfortunately there were a few things holding it back, and I’ve since decided that the ‘classic’ verge library should still be accessible to those that aren’t comfortable adapting to a new API.

Nonetheless, vx is kickass. Some people might appreciate its slight similarity to ika’s library, but it’s nicer to use in some aspects. For instance, a vx.Image is more powerful than ika.Image and ika.Canvas combined (in terms of how easily it can be manipulated — not so much render speed sadly). I think this could definitely be useful for those ika users who are on the fence but like Lua. Additionally, it can be intermixed nicely with the raw, classic bindings of Verge3 (which are also pretty solid) when this alternative API seems to be too much of a stretch. So if you were interested in LuaVerge, but wanted an alternative library that caters to your Lua script-kiddie OOP-seasoned mind, you might want to use vx! If you have questions about using this library, feel free to post on the regular Verge help forums, since I endorse this, and I want to make a usable game making interface.

I would NOT, however, recommend jumping to a new language midproject. If you’re actually getting somewhere using VergeC, why waste more time to learn a new language, and then rewrite your code? LuaVerge is certainly easier to pick up than VergeC, if you’re starting something NEW though!

Oh yeah, and I have an SVN for Resonance now, for those that are interested: http://www.verge-rpg.com/svn/resonance/ (username: anonymous password: anonymous). The latest version of vx is always included in this SVN (for now, and hopefully forever). And here’s the vx documentation for those who want to see: http://www.verge-rpg.com/svn/resonance/vx/docs/vx_readme.txt (once again, you’ll need that SVN password). (Update: Things changed a bit. Please see http://www.bananattack.com/vx/ for the latest information about vx!)

In other news, Thrasher, the metric unit for failure, has returned. Now I’ll have somebody else to make fun of again!

Now I depart. Look forward to more meaningful progress again on Resonance soon!

Love,

Overkill.

Tags: , , , , ,

2 comments


A Ghastly Green Gruedorf Machine

Posted by Overkill on February 2, 2008 at 9:59 pm under Uncategorized

I lost Gruedorf again. Twice more. But I’m still alive, and want to continue work on Resonance! I’ve just finished a map, with lots of grass in it! Man, it was a pain in the ass to plot all those grass tiles down, but it’s done, it’s behind me! Eventually I’ll update it to look less visually bland by adding decorations to overlay the grass, maybe making a parallax scrolling background, and actually having fun things to do and things to shoot.


Get it here.

In this release, I also added in a small amount of interaction with beacons, so you have to find and turn on/off beacons to use/not use them by pressing Up on the keyboard. Z still shoots things, you just need to activate the fusion pistol beacon first. Sometime I’ll add new beacons besides just the map beacon and the fusion pistol thing and things will be more exciting and enjoyable for everybody!

Anyway, that’s about it for now. Enjoy, and hopefully I won’t fail next week, and I’ll see you by then. Later!

Tags: , , ,

2 comments


Eyecandy is Made from Molasses

Posted by Overkill on January 5, 2008 at 11:10 pm under Uncategorized

Sloooow week.

I’ve been doing very, very tiny changes to the engine. I made an exporter for Mungo, and made it so the game will popup messages when you newly encounter abilities. Also, drew slightly nicer artwork. Updated the hero a bit to have a slightly nicer head, and a scarf, and some color enhancements. It actually mirrors well too, finally. Been drawing some other sprites too, but I’ll leave displaying them until I’m satisfied with how they look.

The grass was also given a tiny makeover for more enjoyable aesthetics. The grainy high contrast dirt was hard on my eyes, so I replaced it with transitioning the grass into darkness. Oh, and I added fancy-pants 60 degree angle hills for more landscape variation!

Here’s the updated tileset as it appears so far!

I’m thinking the water will need a redo, because it doesn’t look very pleasant at the moment and I’m not sure how to animate it without looking totally cheap (right now it just goes back and forth).

Oh, and I want to start on this underground mine cart level I had in mind sooner or later, cause that’ll be cool. That requires completely new landscape, with lots of dirt and wooden frames and railroad tracks! It’ll also need rideable carts and, I’ll need to make moveable beacons that can be loaded into the carts. Maybe drippy ceilings with puddles on the ground or even enemies! Cause that’s right, I have an awesome level idea in mind!

Here’s a game screenshot and stuff:

No build this week, since I’m running out of time and there isn’t really enough for it to be worth bragging about. I move back to school tomorrow morning so I can’t do the usual “get up early Sunday morning and slap together another more awesome Gruedorf” routine. Yeah, so I need your encouragement, folks! I don’t want to drop my progress just cause I’ll have a social life and school work to do again. Well, gotta run. Enjoy.

Tags: , , ,

1 comment