Thursday, January 31, 2013

Item Comparison! Item Selling!

Were you wondering what that giant gap in the middle of the Inventory screen was for? WONDER NO MORE! I implemented the Item Comparison tool today. It will need a little spicing up, but it's still pretty damn cool in its current state!

At any given time, you can select two different items in your inventory - one with your left mouse button and one with your right mouse button. (Think Portal!) The item comparison tool will tell you the rest! If you don't like what you see, sell your item or switch to another one. This also means that you can now hold onto items for safekeeping if you like them but don't want to use them. Don't worry -- the game's drop algorithm is smart and it will never give you more items than you can hold!

Comparing an Orphan Carver to something that's apparently much more powerful:

You can also compare the item you have equipped with other items. The Neglected Switch I started the game with was pretty terrible, as you can see.

While there is a clear-cut overall winner here, Swing will come in handy for certain fights, making this Average weapon actually outclass the Incredible one in some cases.

If weapons have multiple lines of one stat, the comparison tool automatically does the math for you -- so you don't have to.

Just some miscellaneous comparison to test the tool.

Things are starting to heat up here in Super Virgin Samurai land. This game is shaping up to be pretty well-rounded and we aren't quite at proof-of-concept stage yet!

Wednesday, January 30, 2013

Revealing Things!

On a much lighter (and happier) note, I've fixed quite a few bugs in Super Virgin Samurai tonight. I also completed the first half of the Reveal System.

Each weapon with a rarity better than white (or Common) needs to be Revealed before its stats can be used. Throughout the game, you can find scrolls of various colors which can be used to unlock the stats on your weapons. Traditional in-game enemies will only drop White-quality scrolls. As you know, however, White weapons don't need to be revealed -- making these scrolls, by themselves, useless.

However, coupling two of any scroll creates a scroll of the next rarity up.

White + White = Green
Green Green = Blue
Blue Blue = Purple
Purple Purple = Orange
Orange Orange = Pink

This means White scrolls actually become quite useful, as they can be combined to reveal your most common weapons, or combined en masse to reveal your more rare ones.

When a weapon isn't revealed yet, it stats are not visible. This means they also can't be used. You can still equip a weapon, but you'll only receive its damage bonus: no Standard, Special or Visual stats. So revealing is a big deal!

The reason I said only half the system is implemented is because you can't Reveal gear yet -- but you suffer the effects of it not being revealed. So this build is awful.

 Some pictures of the generically-named non-Revealed weapons:




White scrolls also drop from enemies now:


Stay tuuuuned!

elämä

Presenting the Game Jam game I made along with my friend Ivan Potosky.


Elämä ("Life" in Finnish) is a short twin-stick top-down shooter which explores the miracle of childbirth. What started as a joke quickly evolved something much more fun (and much more serious) than either of us had initially anticipated. Use the mouse to aim & shoot, and WASD to move.

For best results, play with a pair of headphones in and an open mind.

Click here to visit the GGJ page and download the .exe.

Thursday, January 24, 2013

Some Stats About Our Stats

Yo, dawg. We heard you like stats. So here are some stats about our stats.

I jacked a tileset off the internet to make the game look a teeny pinch nicer. We now have 6 levels that are almost like actual levels! You can kill enemies, they drop loot (based on how much space is left in your inventory, + random chance!) and you can then equip the loot and it affects your stats, performance in game, etc. You also are capable of dying. To test this feature I added a new, stronger enemy type.


He doesn't do too much new -- he's a bit slower, stays invincible for longer when he gets hit (but he recovers from being knocked back faster!) and he's much heavier than his tiny buddies. He hits like a truck, though -- he does about 90 damage on average. (You start with 100 health points in code, even though it says 1,000 on the stats page. The little guys hit for about 20). He also has about 1,500 health as opposed to the 150 of the smaller guys.

Whereas the smaller guys just derp along (even if you hit them, they are blissfully unaware of your presence), the bigger ones will turn around to face you after being hit and start to lumber towards you. Otherwise, though, they're still pretty derpy.

Coming up soon are enemies that will be "intelligent" enough to jump up ledges (sometimes) if they know they have to do so to reach you. I would also like to include different speed/intelligence variants of these two enemies.


Tech stuff: The enemy system is super modular. I love it. There is a base "Hostile" class from which I derive all of my other Hostiles, using virtual functions and all that happy jazz. This way I can just plug my arrays and lists full of Hostiles and let the game figure out which types they are and how they should behave. Even better is that all of this is determined from the XML -- enemy spawn types, rates, directions and behavior! Beautiful, if a bit simple.

For those curious, each weapon's "prefix" (the first word of the weapon's name) is pulled from a data file contained with the executable. Each quality of weapon has a decently-sized array of prefixes it can choose from, which can then be altered if the weapon is special enough to deserve it. Some prefixes even change a weapon's abilities or name completely. If you're curious:

- 131 White (Common) prefixes
- 75 Green (Average) prefixes
- 72 Blue (Cool) prefixes
- 66 Purple (Awesome) prefixes
- 43 Orange (Incredible) prefixes
- 26 Pink (Ludicrously Incredible) prefixes

So that means I've so far discovered (with help from others and my thesaurus) 131 ways to say "this sucks", 75 ways to say "this is mediocre", 72 ways to say "this is decent", 66 ways to say "this is pretty good", 43 ways to say "this is great" and 26 ways to say "THIS IS AMAZING!" (one for each letter of the alphabet!) Cool!

A shot of a slightly tweaked level select screen (I just made the images for levels actually match)...

And with that, I'm done with Super Virgin Samurai until Tuesday. Let the Game Jam commence! I may post updates on the Global Game Jam here, so stay tuned (as always!)

Wednesday, January 23, 2013

Special Stats. They're Special.

Big cleanup day again. Actually, TWO big cleanup days. I'm getting the app to a great testable/playable state by Thursday so I can rest easy -- while coding my ass off for 48 hours at the Global Game Jam!

It turned out there was a lot of un-cleaned-up memory -- so I spent about 12 hours with that, and then another 8 touching up the game and bugfixing. In the meantime, I also implemented a few new things, like player health -- that's right, you can die now! So all the Standard Stats are "done" (they work).


So we've been through that whole thing with Health and Luck and all that boring stuff. Well guess what? THERE'S MORE! Special stats give you additional, special powers beyond the normal scope of your equipment!

Double-edged Sword gives you a chance with every swing to swing your sword behind you in addition to in front of you. In theory it sounds a bit odd, but in practice it's been amazing so far.

Life-Steal will occasionally return the damage you do to an enemy as health. This is not a chance on swing, but a chance on hit. So hitting five enemies at once will steal five times the health!

There are quite a few other special stats that are also a little less traditional, but I won't give everything away just yet. Oh, and I added sell prices too. You can't quite sell swords yet, but there is a formula for calculating their worth.


In case you're curious:

Sell Price = (d + st + pe) * (sp + vi) * st

d = Avg of damage range
st = Stat value total of all standard stats
pe = Flat percent chance of all special stats
sp = Number of Special stats (if 1 or 2)
vi = Number of Visual Stats (if 1 or 2)
st = "Star" item (2 if item is "Special")


There are many different "Special" items in the game, generally reserved for items with exceptional stats, interesting combinations of many stats, or even awesome/hilarious names.

As you can see, you are capable of equipping an item now and seeing how it affects your stats. A lot of tuning has gone into the game so far, and it isn't stopping any time soon. But I'm beginning to like how the stats are turning out and it's very fun to farm loot!

Eventually there will also be a "Favorite" spot (as you can see above), where you can put a weapon you really like for safekeeping. It has no bearing on your character or stats -- it just lets you save an item as a memento.

The game should be at "proof of concept" stage by February 9th (although it's VERY tight -- almost scarily so). By then I plan to have one complete level, although it may consist only of the "stupid" mobs I'm using now -- possibly a second type who tries to seek you out and hurt you, doing more damage than the "dumb" ones.

Stay tuned for more!

Sunday, January 20, 2013

SWORDS! SWORDS EVERYWHERE!


Swords are dropping now! The algorithm isn't implemented yet to determine if they should drop or not -- as well as how many -- so they drop on every kill. That starts tomorrow.

But man, is it cool. The game is definitely starting to feel more game-like now, even without an objective. I spent a good solid hour just going back and forth between the game, level select and inventory, just to see what sort of loot I'd get.

And of course, the Revealing system isn't implemented yet (that's coming soon, too!). Once that's in, you'll want to become even more attached to those special pieces of gear you find.

The game is also tracking Kills and Loots now, and the Inventory management has been cleaned up a little bit to go along with the new item drops. Awesome!


Kill some stuff, get some money and swords...

...collect the swords and see a preview of how rare they are...

..Then check them out on the inventory screen and find out that they're AWESOME!

Or not.

Next Post: Special Stats. That's right...Super Virgin Samurai has more than just your traditional Health, Speed and Luck!

Saturday, January 19, 2013

This Must Be My Lucky Day! (and an overview of Stats)

So Luck is done. I also did some other stuff over the past two days, but that's a secret for now. Ha ha.

So that means everything is done now, and it's time to start tuning! Actually, tuning is almost done too! Let's go over the main six stats:

Health: Lets you take more hits from enemies and stuff. You're pretty weak without it.
Speed: Lets you run faster. GOTTA GO FAST! No, really...even a little bit is a nice boost to have.
Jump: Makes you jump higher. Seriously, you can jump ludicrously high with enough of it.
Swing: Lets you swing your sword faster! You can get this down REALLY low too, or leave it at is if you like being a slowpoke.
Reach: Makes your swing's arc reach longer and higher! HIT MORE THINGS AT ONCE! Awesome!

And now...

Luck: Makes MORE COINS DROP! Coins give you MONEY! (Actually, it's Yen, because what good otaku uses American dollars?!) MONEY lets you BUY SCROLLS!

And scrolls...well, without scrolls, you can't use the stats on your equipment. Or even look at them. And that's pretty lame. So as you can tell, money is good. And Luck gets you more of it. What's not to like?

Oh yeah...and you can SELECT LEVELS too now! It's actually a really clean and nicely-done system, so everything is super easy to load in and control. No coding required! (Thank god!)

Look! Coins are dropping! You just walk near them and they get sucked into you. Lazy Virgin Samurais all over the world, rejoice!

You can use your MOUSE! Or your KEYBOARD! This game doesn't even care what control scheme you want to use! Just do it! It'll work! Maybe you can even control it with your mind!!

Stick around until next time. I don't know what I'm going to be talking about again. And you know what that means: COOL STUFF!

Friday, January 18, 2013

I Told You I Didn't Know What I'd Be Talking About

Today was a biiiiiig cleanup day. Lots of nasty bugs fixed! Enemies are all cute and moving around nicely and stuff! The player is all colliding with stuff all nice and stuff! It's so great.

I also started tying the stats into the game. Speed increases your speed, jump increases how strong you jump, Reach increases how far your "sword swing" goes, and Swing increases how fast you can swing.

Seriously, this stuff is pretty cool. I got my swing speed down to .08 seconds and I was like a FREAKIN LAWNMOWER.

Swords can also have bonus "visual" stats -- they can look glowy, or have hearts, or other things (not implemented yet). But I DID implement two of the visual stats -- double size and half size. So you can be GIANT or tiny...whichever suits your fancy. Or just normal size, if you want to be pedestrian. You pedestrian, you.

Oh yeah, and I multiplied everything by ten. Because commas make numbers way more impressive.


I got a sword with one of every stat on it! You can too! Eventually.

This is a special sword. It's awesome and has a cool name.

In Super Virgin Samurai, you can choose to be large and in charge...

...or really tiny. Because seriously, look how cute he is!

In the next post I'll be touching on Luck! That's right, a whole post about Luck! If you aren't on the edge of your seat yet, I don't know what's wrong with you!

Thursday, January 17, 2013

Making Some Levels!

So I'm not really making "real" levels yet, but I thought it might be cool to show how it's done.

I use a program called Tiled Map Editor to create levels. Currently there is no art for the game -- just some stuff I stole from Google -- but you can see the basic premise of the level's design.

I slap down some graphics, tell Tiled which parts should be solid and non-solid, and which places should spawn enemies. The enemy spawners are completely customizable -- I can have enemies spawn in a pulse every few seconds (or milliseconds!), in different directions (or random ones!), at different (or random) speeds, and so on.

Once it's all done, I just call a function, LoadLevel(), which reads in the map's XML data, finds the graphics it needs, and turns it into the level you play in the game.

Right now I've got the basics implemented, and there's a surprising amount of complexity with the few spawn types I have. I'm pretty excited to start adding more!



Editing some stuff...you can see that some platforms have names, and there's a player spawn point in the middle:


Just playing around with some level designs...this one was interesting:


I decided to use this level as a stress test, so I added a 'fountain' spawner and cranked up the volume...a little bit...


In the next post...I don't know what I'll be talking about...but it'll be cool!

Wednesday, January 16, 2013

Items and Stats!

So I'm sure after that long ramble about stats, you're probably pretty excited right? Of course you are! Here are some little snippets of what you might see.

Items come in rarities, just like many traditional role-playing games. Of course, SVS isn't a role-playing game. Weapons can have all kinds of stats as well.

For now I am only working on a proof of concept, so there will only be one type of weapon: swords, with one graphic that I'll just tint different colors. All art is placeholder right now (that's why the sword is the Master Sword!)

Items range from "just OK":


To "Special" (this weapon has a unique name!)...

To "damn, that's pretty good!"...

To "WHOAOHMYGOD!":

Napkin math tells me that Super Virgin Samurai has somewhere around a few million different combinations of weapons (or maybe several billion -- not sure). All of them will provide at least one noticeable boost to your character in-game.

Also, you can get a Crap Tickler. I won't show you what that looks like.

In the next post I'll probably be talking about level building! Because what good are stats without a game, am I right?

Monday, January 14, 2013

It's Super Virgin Samurai!

You are the Super Virgin Samurai, a sad, lonely and big-boned manchild who dreams of one day becoming a true Japanese Samurai. Unfortunately, your bones are a little bigger than you think they are -- but as you step outside of your home for the first time in months, you find a sword imbued with magical powers. These magical powers just so happen to be represented by numbers, and when you grab the sword you realize you are now WAY STRONGER!

Entranced with hope and wonder, you truly are the Super Virgin Samurai! Hack'n'slash your way through hordes of the evil, goo-like Doombies! Collect over SEVERAL MILLION PROCEDURALLY-GENERATED SWORDS! Use special scrolls on the swords to reveal their secret stats and see what powers they hold! Use your awesome stats to kill even more powerful foes and get even more loot with even better stats! Jump higher! Run faster! Throw their attacks right back in their faces! Be the Super Virgin Samurai you've always dreamed of being!



In short; Super Virgin Samurai is a single-screen hack'n'slash action/platformer in the vein of such titles as Super Crate Box. Jam that together with the loot system of Borderlands and there you have it. The loot generation system is mostly implemented -- more on that in a later post.

Stay tuned for some technical updates. Still undecided on the name; I think Supercreep sounds nice, and it's a little more PG than "Super Virgin". But who knows?