Christmas Stacker
Posted by: TomFriday, December 25, 2009
|
|
Hey, just updating to let everyone know what's been going on, and there really hasn't been much. OTHER THAN:
- I made a new game, Christmas Stacker
- Got a new website back in July, Gamers Earth
- Finished another game, and am looking for a sponsor
First, about the new game. Christmas Stacker was a quick project to see how good I get a game in about week, and how much revenue I'd be able to get from it. Lately, I've noticed that Physics game for a lot of money in the flash game market. So, what I did was think of a popular style of flash physics games, and that style/theme is stacking. Basically, what you do is get a list of shapes, and you try to stack them all and keep them on the screen. So I grabbed Box2D and QuickBox2D and made this game real quick, 9 days, and then got some Mochi Ads and stuck those in there. I then put the game on Kongregate, and Newgrounds. Following that I set like 1,700 emails trying to get it spread around. I also added it to Mindjolt.com on December 23rd, and then the game went live on the 24th! That's the fastest I'm sure anyone has gotten their game on Mindjolt! Did I forget to mention that I did some self-sponsorship with my Gamers Earth website?
Looking at that, you'll notice that I have 2 sources of revenue now. I am getting revenue from Mochi Ads, and I am getting revenue from my site, Gamers Earth. I had some great results from the in-game ads, and the traffic to my site. You'll see the stats and a more in depth post on New Years.
Now, about GamersEarth. Gamers Earth is a website I bought from a guy who lives in New York. He was floating around the MochiMedia forums, and spamming a lot, then he decided that arcades are not his niche. So, he ended up selling the Domain to me for $310. He bought a custom template for it from TheHiveDesigns.com, and the site uses the ArcadeTradeScript Arcade Script. The site has great SEO, and a good amount of games. The Alexa was pretty good as well, too. It was 209,000 or something like that. It's gotten a bit bigger, but that's because I haven't been updating daily, and creating my own descriptions for games that I add to my site.
When I first got the site, I didn't know anything about marketing, and running a business, but I've had about 6 months worth of learning, and now I'm starting to understand how things in this market, and business. And, I partly have Talk Arcades to thank for that. Talk Arcades is a website for arcade owners to talk about business and ask questions and such. From there I've learned a fair amount about arcades. I also understand the phrase, "It takes money to make money."
Through MochiMedia, I signed up for their 'Self-Serve Advertising' deal. What I get to do is make a 300x250 pixel image that people will want to click to go to my website, and set a budget, areas of the world to target, and specific genres of games I want my ad to show up through. And for the most part it was pretty successful, But I'm pretty sure I lost money. Nice enough though, I released Christmas Stacker and it was pretty well taken by other arcade owners and I made more than I spent on advertising. I'll talk about this more in-depth in my New Years Post.
The new game I made is a platformer, and I was just letting you know that I have a new game coming out, so be ready!
-Tom
|
How to make a platform engine in QuickBox2D - Part 2
Posted by: TomSaturday, October 03, 2009
|
|
Read Part One of the article, it covers some of the basics, and explains a few things.
With the release of QuickBox2D 1.0 I figure I should update my game engine articles. I won't actually update the first one, but instead I will provide updated versions here, with links to download the files (source).
One of the best things about the new QuickBox2D is the addition of QuickContacts.
var contacts:QuickContacts = sim.addContactListener();
contacts.addEventListener(QuickContacts.ADD, onAdd);
contacts.addEventListener(QuickContacts.PERSIST, onPersist);
contacts.addEventListener(QuickContacts.REMOVE, onRemove);
function onAdd(evt:Event):void{
if(contacts.currentPoint.shape1 == main.shape || contacts.currentPoint.shape2 == main.shape){
if(contacts.currentPoint.normal.y >= -1 && contacts.currentPoint.normal.y < 0){
grounded = true;
}
}
}
function onPersist(evt:Event):void{
if(contacts.currentPoint.shape1 == main.shape || contacts.currentPoint.shape2 == main.shape){
if(contacts.currentPoint.normal.y >= -1 && contacts.currentPoint.normal.y < 0){
grounded = true;
}
}
}
function onRemove(evt:Event):void{
grounded = false;
}
QuickContacts is a class that uses the b2ContactListener class that comes stock with Box2D. If you remember, we actually modified that class so we could detect if we were touching things (this way our character could jump). With this addition, we won't actually need to modify that, AND we won't have to make that global class. We can just do all the code on the timeline.
On the first part of the series, someone commented saying that if you add an object that does NOT have a zero density, that game would get pretty messed up. Well, he was right. That was because in the b2ContactListener, when we checked to see if we were grounded, the class was actually checking every single object against each other. Meaning that any object with zero density was being checked, and since it was sitting on the boxes right, it would set our grounded variable to true.
One more addition to the platform engine is the ability to make platforms that you can jump through the bottom, this isn't really new feature, but it's pretty nice. To be honest, the code that actually makes it so you can jump through the bottom of platforms was originally taken from a snippet on Actionsnippet.com, the creator of QB2D. So, thanks Zevan.
I also made numerous fixes to the code from the last version. One of these fixes include changing direct modification of gravity, to setting the main character object to sleep. I would change the gravity to 0 when the main character was standing on a platform, specifically on a slope, so that the character wouldn't slide down. However, it turns out to be a better plan to set the object to sleep. Why? Well, if you push one of those non-zero density spheres off a platform, it won't actually fall with the old system, whereas the new system fixes that.
Test the QB2D Engine
Download the source
What should I add to the new version? Suggestions?
Tom
|
Two New Games Released!
Posted by: TomSaturday, September 26, 2009
|
|
Hey there, it's been awhile since I updated last time, and it's no better of a time to update than now. Why it's such a good time to update is because I recently released TWO new games!
The first game is called Puzazzle. Puzazzle is a game I made for Mochi Media's 'Word Play' competition. The Word Play competition is an event that focuses on making a game based around the use of words. With that said, my game is inspired by scrabble and jigsaw puzzles. You have the moderate complexity of math, and mind bending combination of jigsaw puzzles to work with.
The second game is called Captain Crash. Captain Crash is a launcher/toss game that was made by three people. I did all the programming, Chaz did all the art, and Morgan King created the great music including the Captain Crash Theme Song. The game is pretty easy to grasp and easy to become addicted to. The goal is to get Captain Crash as far as possible.
In other news, I plan on continuing my QuickBox2D platformer game tutorial. Maybe I will make a series out of it.
-Thomas
|
5 Ways to Improve Your Flash Game
Posted by: TomFriday, July 24, 2009
|
|
So you just made the best game ever, huh? Is that so? Before releasing your game into the wild, make sure you do these following this:
Add a Highscore Table
Highscores are a great way to get people to play your game more, and enjoy it. A highscore table in this day and age is becoming more of a standard for flash games than ever before. The player practically lives to be 'the best', so why not help them the best by letting them show it.
Add Achievements
This practically goes hand in hand with having a highscore a table. Users lately have been expecting a rewards for actions they perform in games. Major consoles have them, and if they have them, there's no doubt that Flash game players will be expecting them as well.
Have Good Audio
Some people totally skip this part. This is a vital part of creating a great game. Games that totally skimp out on taking the time to get audio that fits the game are only hurting themselves. I'm not saying throw a sound effect on every little thing in the game, I'm just saying don't be too intrusive on how it's played out. Menu's should have their own music, different locations in the game should have different music. Every viral and popular game has great audio that adds to feeling of the game. Imagine you're doing the final level of Halo to vivaldi, not very epic is it? Vivaldi would definetly ruin the mood.
Use less text!
One mistake that most developers make is that they use too much text. People going online looking to play some free flash games after a hard day aren't looking to read, they want to relax and have some fun. So, try to avoid lengthy instruction screens. Players are looking for simple intuitive controls. If you absolutely need to have directions in the game, so be it. But, add a skip button so they don't have to sit through it. Then, show a graphics, or something real quick to tell the controls. Just so they know.
Spend a day or two tweaking
I don't know how many developers skip this step and are just so eager to get they're game out there that they forget to bug check, and as a result lose fans. Let's say a developer gave the boss on level 12 too much health, resulting in half the people playing getting frustrated. Five minutes of adjustment could have made the game that much more enjoyable. Other things could be added to keep the players hooked are save games, cutscenes, special effects, and etc.
Making a great viral flash game can be a daunting task, but I hope this guide/outline will help make that task a little easier.
Please, don't hesitate to comment. Your opinions are always welcome.
-Tom
|
Convert Unsigned Integers to Hexadecimal Strings
Posted by: TomTuesday, July 21, 2009
|
|
So, you wanna convert a uint to hex in AS3, huh? Well, this is how you do it:
function uintToHex(val:uint):String {
var pref:String = "000000";
var str:String = String(pref + val.toString(16));
return "#" + str.substr(-6).toUpperCase();
}
What I think this is really useful for is converting randomly generated colors to hexadecimals so that you can access them later. I mean, it's not that the uint equivalents are bad or anything, but the hex codes are generally easier to work with.
Also, awhile back I was browsing the web seeing how other people managed to do this, and I found this post: Tylerbeck.com
Feel free to check it out. It's really great for understanding hexadecimals a bit more. It's a longer function, but does the exact same thing as this one.
Good Luck,
Thomas
|
<<
1,2,3, >>
|
|