Blog

Currently Google Sites does not allow public commenting, if you'd like to discuss any particular post you may do so by going to the forums and making a post about it.

The Mushroom 2D Game Generator

posted Aug 6, 2013, 8:05 PM by Skyler Kistler   [ updated Aug 7, 2013, 1:05 PM ]

Wahoo! It's finally ready!
I've been working on a tool meant to generate 2D games. Right now it chooses a random art set and generates a set amount of levels and packs it all into a single convenient jar. My goal for this project is to have a tool that allows quick engine building of 2D side scrollers. The generator itself only generates basic levels, boss fights, and platforming worlds but you can go from there and modify the output to make it anything you want. 
Practical applications of this tool are prototyping a game story, making something quick for Ludum Dare-type competitions, or just giving you something fun to play with.
Right now it doesn't output stories and characters and the like, but it's in the works.

To possibly raise some hype for the tool, and bring in some money to justify it's creation, I'm running a gig on Fiverr that allows people to order a personalized game that has been generated with Mushroom.
In the long run, I hope to release the tool as open source and free, and host art sets made by friends under a sort of DLC-type model.

This is may go absolutely nowhere, but hopefully people get excited. We'll see :)
-Hack

Very very special thanks to
CNIAngel for helping get the project rolling with art
GMShivers for contributing more art
Michael Cook for being epic and supportive and inspiring

Procedural Stories

posted Jul 29, 2013, 10:06 PM by Skyler Kistler   [ updated Jul 30, 2013, 8:28 AM ]

I haven't posted here in a while so this post may seem a bit out of context. I've kept my most current project a bit on the down low. To save yourself the suspense I'll come right out and say it: game generator. Woo! :D More info later. 
For now, I would like to write about the procedural story generator I've just designed.

As a note of warning, I haven't really looked into this field. I really don't know how much has been done in this area, and I haven't read anything about it. So if some of my ideas are similar to things that have been done, I'm sorry for not crediting whoever's come to these ideas before me.
That being said, please do use any ideas you may get after reading this. Please do send me your implementation, I'd love to see your work ^_^

Firstly, I've always thought of game narratives as trees. In a traditional novel, you're led down a certain path, the details are handed to you as you go along. You may deviate from the set plot a little bit, maybe go on tangent stories, but you're always progressing. I visualize them like this:
straight story
These are fairly easy to generate. User input is never a problem, all you'd have to do is generate an 'outline' then fill it in with pre-written text or something. Bleh. Who cares, novels are a dying medium anyway.

But with games, particularly large RPG's like The Elder Scrolls, plot points are given as you go. There are side quests everywhere that branch off this tree, having brief conversations with NPC's adds little leaves to the branches that fill in even more details. Those stories look something more like this.
big ass tree

These present much more of a challenge to generate, let alone as the player progresses. I'm sure people would be more dazzled by a program that knows the current trends in society and the English language, and can write completely unique stories start to finish, but quite honestly that's not practical. It's not practical on modern hardware, and it's not practical until we can emulate the human mind and how it evolves as it conforms to society. That's a different post.

What we can do though, is write the leaves, and generate the branches.

The system I've designed generates branches off of human-provided leaves.
To start, I had to break up what defines a general story. There are multiple ways to do this, this is just the way I think will work for me. 
On the upper tier you have four categories. Beginning action, rising action, climax, and the falling action. Most people who've taken a basic literature course are familiar with this. You start with a beginning seed, a kick starting scenario. You move on up the tree, providing details that add to the story. This is done by taking from pre-written tidbits with variable blanks. What I mean by that is there are universal variables used throughout the story that are generated with run of the mill name generators. For example:
%PROTAGONIST% then went from %SETTING_1% to %SETTING_2%
PROTAGONIST would be the name of the protagonist, SETTING_1 and SETTING_2 would be generated.
Tidbits would be organized primarily into which part of the story they fit into. If it's part of the beginning of the story, it would be organized as such. 

The old computational creativity problem still stands though. How do you keep random from being just noise? How do you keep everything in context? Johnny can't be in a story about dragons one moment and suddenly be trying to get a girlfriend in his 1950's high school. 

My solution to this is quite straight forward and not a great solution by any means, but it will work and that's all that counts for now. My solution is to have context tags with each tidbit. When choosing tidbits, context 'clouds' will be referenced. These could be learned by some sort of AI, but my implementation is just going to be static. 
The romance cloud will contain things like "heart, love, passion" etc.
Similar to the YouTube search looking at the tags of a video and relating them to the search term, the generator will look for tidbits with matching contexts. 
I could go into deep detail how I plan on doing this but the only people who would care are coders, and they can either guess or read my future implementations.

From there, branches are created as the player progresses. If a player spends more time interacting with NPC's about "heroic" contexts, then "romances" contexts will fall out of favor when generating. The generator will favor tidbits that reference variables in use. For example, if a tidbit has %SETTING_3% but setting 3 hasn't been defined yet, that tidbit is much less likely to be chosen.

TL;DR: Game stories are trees, the player is climbing this tree as it grows, leaves are chosen to populate the branches according to past choices made by the player.

My first implementation of this general idea will be very straight forward, a linear approach built into the basic mini-game generator I'm working on right now. Maybe one day I'll make a full fledged RPG generator though that will use this idea in full.


Sorry for the long read, I hope you find it as interesting as I do :)
Most of my inspiration comes from Michael Cook (@mtrc) and his work on Angelina.

More info on the game generator soon!
-hack

Update:
To be more literal, the only human written parts would be dialogue, and keeping the game contextual would come with much perfected human code. The backbone as to what characters are going to say is generated by the code, taking into account what the player has been interested in so far. 
I think it would be interesting to have an RPG start with one static scenario for all players (like losing a loved one or being whisked off to jail) and then depending on how the player reacts is how the game evolves. I think this will be my next project.

Thanks so much to Christer Kaitila (@McFunkypants) for sharing this, you're awesome ^_^

Alan Wake Thoughts

posted Jun 5, 2013, 6:40 PM by Skyler Kistler   [ updated Jun 5, 2013, 6:48 PM ]

Those of you who have me on Facebook or Twitter know I've been talking about Alan Wake way too much. Just to put the cherry on top, I'll post about it to the blog too :D
For those of you who don't know, Alan Wake is a psychological thriller game about a writer who's vacationing with his wife when she is mysteriously kidnapped by dark forces. The game's unique combat involves shining a flashlight on enemies and wearing their shadowy shield down before you can harm them with bullets.

First off, the game's presentation is spot on. The game is in an episodic format, with the cliche "Previously: on Alan Wake" narrative at the start of each episode. The more subtle parts of the story, such as what's going on outside of Alan's immediate vicinity and the thoughts of other characters, are told through writing. The writings are found on pages scattered throughout the levels, sometimes inserted just before a major event happens to conjure suspense. Moreover, some pieces are expressed through hidden radio shows, TV shows, and songs. With all of this wrapped within game play, it combines literally every entertainment medium (except for theater, interestingly) in order to tell the story. This in itself makes the plot very enjoyable, and I wish more games could do this so masterfully.

Second, the atmosphere of the game is one of, if not the single most remarkable experiences I have ever encountered, in any form of entertainment, EVER!! Whether it's the peaceful view of the camera flying through mountains with the sun setting, or being out in the middle of the forest with the screen being distorted and bent by darkness to make you think you see something rustling nearby, the world never ceases to invoke the intended emotional reaction of the state of events. What I found really interesting is that when you're being attacked you don't get excited to see enemies. You quiver in fear and fight for your life, you feel Alan's desperation and anxiety rather than just continuing to eat popcorn in front of your TV. You know that if you fail your wife will be gone forever. It's not like when you're watching a TV show you can take comfort and excitement in an action sequence because you know that the main character can't die this early on.

Third, by far the part of the game that will have the most lasting impression on those who play, is the plot itself. Sam Lake (@SamLakeRMD) and the co-authors of Alan Wake have crafted a masterpiece of symbolism and delusion. The meaning behind it, at least from what I've gathered, is directed at artists, or anyone who likes to create things. At the same time, however, I feel that anyone can get something out the story and experience a truly enjoyable adventure. The way it can touch your mind so gently and then a second later make you feel as if you've been hit by a tsunami of fear of confusion is truly remarkable. Horror fans will love it quickly, but even people like me who are too afraid of their own shadow to watch horror films can defeat the symbols psychologically in a way that make it playable and enjoyable. Wanting more story but being afraid of the next bend in the path is a lovely masochistic relationship that never got old for me.

It's not using horror in the plot for the sake of scare, it's using horror to express meaning in the story in a way that can only be done with fear. 
That alone is enough to get you through, knowing that it isn't trying to just get you to jump but to tell you something meaningful and lasting.

If I have to name cons, the facial animations are kind of humorous and the ending may leave too many questions for the casual player to enjoy.

So that's my overly long essay on why I think Alan Wake is absolutely awesome. Hopefully you're one of the many who got it on sale this past week through the Humble Bundle or Steam, but if not then it's definitely worth the full price. 

Back to game design,
-Hack

P.S. I bought a flashlight because of this game

Enough shadows, let's shed some light on our plans

posted May 24, 2013, 7:18 PM by Skyler Kistler   [ updated May 24, 2013, 7:21 PM ]

It's time we shared our projects with you all, and the plans we have for them at this moment in time :) These are all subject to change.

The Forest Sword Trilogy:
Asunder-
Zombie survival, pick up and play arcade game. Already released, when we have some down time we will update this to make it feel more complete.

Aequor-
Open world RPG, with themes from the Elder Scrolls and Legend of Zelda, but of course with our own ideas on these formulas. Short excerpts of the story will be released slowly on this website. I don't want to commit publicly to a release date but we do have one in mind ;) 

TBN (to be named)-
Sequel to Aequor, we've had this game in mind for a while but as it turns out it's strikingly similar to the new Bioshock. Which is no fun. So this entire part needs to be rethought most likely to preserve originality.

Others:
TBN (to be named)-
2d puzzle platformer, we have quite a few concepts in place but nothing solid worth announcing publicly.

Ignite (to be renamed to match the game theme and prevent confusion with EA's new sports engine)-
A multiplayer team-based randomly generated castle infiltration game. The game mechanics for this are laid out, alphas for the modified forest sword engine are in place. If this sounds too good to be true, or out of our scope of capability, then prepare to be amazed because all of the  coding-difficult bits are already done or prototyped in a manner that will lead to usable systems. We are particularly excited about this game because we hope to have it out by the end of summer :)

-Hack
P.S. were experimenting with different terrain art directions
bordered blocks

Screenshots ^_^

posted May 22, 2013, 3:16 AM by Skyler Kistler   [ updated May 22, 2013, 3:18 AM ]

smooth terrain
Better terrain smoothing

smooth minimap view
Top down view of the new smoother terrain

third person over the shoulder smooth terrain
Third person view, new clouds

These are without any of the new lighting so they're kind of flat. But none the less epic!
-Hack

New stuff, enhanced workflow

posted May 17, 2013, 5:20 AM by Skyler Kistler   [ updated May 17, 2013, 10:03 AM ]

I fetch changes in egit from eclipse by having my laptop connecting wirelessly to my high schools network via a wireless AP which connects to the school routers in the library via fiber which idk through what connects to the school district for the state county which connects to an ISP that then connects to Jon's ISP up in Mass somewhere which then connects to his house and then his local router routes to his old laptop, using the ssh protocol with a very long password, all to fetch changes in git and then git does it's magic and I have all of his code changes. Just kind of bewildering to think about.

But yeah, Jon and I set up git so now our co-op is much easier to administrate and our workflow, well, flows, so much better now.

We also opened up two new games officially that we've been planning a while. I won't say too much but one is a co-op attack/defend with procedural bases and the other is a 2D puzzle platformer. Both are going to be made with variations of the Forest Sword engine and will be open sauced.
As school comes to an end we're getting more time to work on stuff again and I'm extremely excited to show all this stuff to you. 

d(^_^)b
-panda

If you haven't already, check out @anamanaguchi's new album, it rocks socks and bleeps bloops and what not.
You also need to go get pumped for Fabled Vale by Happy UFO Studios owned by the lovely @GMShivers.

Creative breaks

posted May 4, 2013, 11:05 AM by Skyler Kistler   [ updated May 4, 2013, 11:05 AM ]

Highly necessary :D
I get out of school in the beginning of June, I'll be able to work more then. Lately I've been busy with SAT and AP studying so any high school juniors out there will know dat feel right about this time of year.

-Hack

Since when was the internet private?

posted Apr 18, 2013, 6:34 PM by Skyler Kistler   [ updated Apr 18, 2013, 6:42 PM ]

With things like CISPA driving internet activists crazy, I can't help but think internet privacy is a bit of an oxymoron. The internet and computers in general on the surface seem like a way to shut yourself out from the world, a way to hide in your room and escape from your immediate reality. However, anyone who's spent more than a couple hours interacting with new people online knows that this is far from the truth. The internet has never been about privacy, networked computing has never been about privacy. It's about opening ourselves up to each other. The internet and computing was designed to be open, and provide a means of communication unparalleled to anything the human race has ever seen. Tearing down the barriers of 'privacy' (if there ever was such a thing) only further bridges the gap between what sociologists refer to as ideal and real society. We will all soon find that we are more alike than we ever could be different.

Just my two cents.
In other news, I've assembled a long list of things I want in the FS graphics update, but I don't want to spill all of it because some of it might change and I don't want people to be disappointed :) I will say that a new texture pack is in the works, and that I really hope both smoothed blocks (ambient occlusion) and dynamic lighting will be a thing.

-Hack

edit- Just as a side note, Google should really get their act together and allow public commenting. 

Big Update Planned

posted Apr 14, 2013, 7:37 AM by Skyler Kistler   [ updated Apr 14, 2013, 7:37 AM ]

I'm pretty much doing a graphical overhaul, instead of rushing it and releasing early on Tuesday I'm just going to not worry about deadlines and try to make it as pretty as possible, then release a big update. I promise you, the wait will be worth it :)

-Hack

I'm going to hold this week's update

posted Apr 9, 2013, 4:55 PM by Skyler Kistler   [ updated Apr 9, 2013, 4:55 PM ]

I've been rushing to get this done today but I don't think it's quite worth it, the only major thing that's new isn't really done yet so no point in releasing. Next week, hopefully :)
Preview of what I'm working on:
Hopefully by next week I'll have a usable lighting system in place for torches, maybe even sun shadows.

Sorry for the delay, things have been busy and I'm diving into new territory for me :)
-Hack

1-10 of 41