• Hey Guest. Check out your NeoGAF Wrapped 2025 results here!

Indy Game Development: any GAF'er ever make their own game, or even make money on it?

Chrome Web Store allows you to upload apps up to 10 MB in size last I checked, and when I asked about it they said they'd be expanding that or ditching the limit altogether eventually which may be the case now.

GitHub offers fantastic free hosting. No bandwidth limits, no storage limits, nothing, for free. But you have to use Git (which isn't too hard.) 4kg: Prototype is hosted on GitHub and the Chrome Web Store and I haven't had to pay a cent for hosting.

Well right now I have a prototype that I'm hosting via dropbox. What I'd like to do it to move over to a platform where I could use ads and drop some analytics code into the page. While I haven't seen anything in a TOS about this I assume it's not kosher with Dropbox. I also don't want to lose my precise 9GB of Dropbox if something happens or my app gets hammered.

I don't mind losing a GitHub account but are there any barriers to monetizing? Github is open source friendly so I assume they'd frown at that. One of the goals with my project is $0 startup costs which means I'd like to find a way to make $5 for a Chrome App Store license before I put my app there. I also would rather not beg for money on Kickstarter.
 
Well, some of the speed demos on the left had some neat things. I think the only one that ran less than 60 fps was the night-time scene with the clouds (40-50 fps?) in IE9.

To give you a reference, all of those HTML5 graphics demos run about 5fps for me, meanwhile I'm running a particular XNA/C# Metroidvanias at ~100fps.
 
Productive thing of the night:

I got my input handler registration and search code finished. All the framework is there for keyboard events, so I just need to copy data (and add little bits of code into the existing framework when I start needing mouse/gamepad input as well).

Unproductive thing of the night:

I found that my game paused if I pressed F10. Why? Turns out it's due to default Windows behavior, with Windows trying to activate a (nonexistent) menubar? The same happens for alt, and for whatever reason this made my SFML game freeze until I pressed them again. Fortunately SFML is open-source, so I added a little bit of code (see my response at http://www.sfml-dev.org/forum/viewtopic.php?p=46732) to let me handle those keys normally with SFML. :)

Thing to ponder of the night:

I am at the point where I need to match key presses with game actions, and my temptation is to let the input handler class have a pointer to the game class. Thanks to someone who posted earlier in this thread, however, I find myself wondering about how to make this interface clean and not break the encapsulation too much, so that in theory user input could be simulated in an automated fashion to allow certain game behavior to be tested.

I'm curious about the input handling. I have no real clue on how to make one properly. As of now I just record input and (flame shield up) set some boolean variables in a static class which everyone has access to in a Keyboard::arrowKeys[UP] kind of way. Can you or anyone give some tips?
 
Chrome Web Store allows you to upload apps up to 10 MB in size last I checked, and when I asked about it they said they'd be expanding that or ditching the limit altogether eventually which may be the case now. Note that this is just for the raw asset count, if you get creative there's unlimited storage using localStorage or the File API.

GitHub offers fantastic free hosting. No bandwidth limits, no storage limits, nothing, for free. But you have to use Git (which isn't too hard.) 4kg: Prototype is hosted on GitHub and the Chrome Web Store and I haven't had to pay a cent for hosting.
I tried the 4kg.co link, and it seems to freeze at about 40% loading in IE9, dunno if it's on my end or what.
 
I'm curious about the input handling. I have no real clue on how to make one properly. As of now I just record input and (flame shield up) set some boolean variables in a static class which everyone has access to in a Keyboard::arrowKeys[UP] kind of way. Can you or anyone give some tips?
I don't know if I know what I'm doing either. SFML may already have some way to query current key states, but I'm abstracting that a level further and making my own input events. Hopefully that won't hurt performance much.

My plan is to have my engine provide the input events (translated from SFML or SDL or whatever happened to be underneath my engine) so that when I write a game using my engine, I will write a custom handler that extends my abstract input handler class. That handler will (according to my current plan) handle the translation between keys pressed and actual game commands, which will take care of key mapping. Then my input handler would set some sort of state variables or call methods like HandleJumpCommand() or something.

Ultimately it sounds like you're probably fine for a simple game. But that's just my opinion, and it's not like I know what I'm doing. :P If my approach works out, one nice side benefit is that I can simulate my abstracted input events automatically for testing purposes, or potentially even use them for AI control if needed.
 
Scirra must read GAF, lol.

Well right now I have a prototype that I'm hosting via dropbox. What I'd like to do it to move over to a platform where I could use ads and drop some analytics code into the page. While I haven't seen anything in a TOS about this I assume it's not kosher with Dropbox. I also don't want to lose my precise 9GB of Dropbox if something happens or my app gets hammered.

I don't mind losing a GitHub account but are there any barriers to monetizing? Github is open source friendly so I assume they'd frown at that.

Nah, that wouldn't be a problem.

One of the goals with my project is $0 startup costs which means I'd like to find a way to make $5 for a Chrome App Store license before I put my app there. I also would rather not beg for money on Kickstarter.

Good plan. I'm lucky that I got grandfathered into the Web Store since I opened an extensions account when they were free.

awesome awesome awesome!

you rock you rock you rock!

It's what I do.
zmWXv.png


Just a heads up though, if you use in-app payments you can't make a packaged Chrome app (you'll have to host it), and there are some gaps in those three services' conversion for smartphones. I think one or two may have trouble with audio.

I tried the 4kg.co link, and it seems to freeze at about 40% loading in IE9, dunno if it's on my end or what.

OGG music presumably not being loaded. I initially just targeted Chrome (hence the CWS version) but decided to put it online in the name of the open web (well, really I just didn't want to host it, but then I found GitHub.) I wanted it to be a frictionless "port" so I didn't bother to make MP3 versions of the music. The final version will have both.
 
screenshot_2012-02-22u4yn3.jpg


I got all the old input handling changed to use my engine, now that the engine's more of an actual engine with a main game loop etc. This is a shot I just took of a game project I started like, two years ago, with flapping bat thingies and an inflating balloon ferret who was supposed to eat stars. =P I ported it to the updated engine. Now that I can fly around and see that animations and text are working, I want to implement frames and updates per second tracking and correct the movement speed stuff to work with various frame rates. If at that point everything the behavior still matches my old implementation of this game project, then it's time for me to do an engine performance check, then try to design a generic menu system, then finally start my new game project for this year. :)

Thing I learned today: Visual Studio had been annoying me since I was accidentally dragging file or information tabs, causing them to jump out into popup windows. Apparently ctrl-double-left-click on the title bar of such a popup window makes it jump back to its last docked position. Yay!
 
So I am now making the platformer in an HTML5/Javascript engine, this is too much fun.

Does anyone have any good advice on documentation? I'm going to be doing all the programming and the level design but I'm working with a few artists.
 
Ok, looks like I won't throw myself on the train tracks!
My Metroidvania now run at 30fps in HTML5 thanks to WebGL!

I had to go and axe some stuff though. Not only I am 30fps less than the windows version but gone are my parallaxed backgrounds (just a simple background now). Slopes are gone because of simpler collision detection, and I will add some draconian object deactivation as soon as they are out of the screen.

Oh and for GameMaker people... Might sound evident for certain people but using "collision line" function instead of "collision rectangle" will save you some valuable speed it seems.
 
I didn't get my stat tracking stuff finished tonight, but I did get the main game loop switched over to a calculated interval so that it should work at different framerates. There should only be a little work left to add stat tracking so I can display periodic frames per second updates, and print min/average/max values at the end of execution.

I also did a very quick test with 200+ flappy bats in different locations running animations not in sync with each other. It didn't make the graphics card blink, but it used about 15% CPU on my stock e8400 3.0 GHz. I don't know if that's too much or not, but I'll probably try to do a stress test of maybe 1000 bouncing animated actors and see if the CPU usage stays low.

If anyone minds me describing my minor updates, please let me know. It partly serves to organize my thoughts and makes me feel like I'm making progress, I guess. :P
 
One thing to point out is that there are no real good hosting solutions for HTML 5 apps. These apps are tiny yet you'll probably be paying the minimum of $10 a month to host it on some server with far more features than you actually need.


Google app engine is free up to some point, and I believe Amazon EC2 stuff is as well though I might be wrong there. These are nice in that they scale a lot, although the pricing if you go over is a bear to figure out.

but if i made a reaaaally good game and wanted to monetize it what are the best options?

Chrome app, in-game ads, Kongregate, probably Facebook as well. A lot of gaming portals now accept HTML5 games and will give you some sort of ad cut or let you integrate into their credit system.
 
I didn't get my stat tracking stuff finished tonight, but I did get the main game loop switched over to a calculated interval so that it should work at different framerates. There should only be a little work left to add stat tracking so I can display periodic frames per second updates, and print min/average/max values at the end of execution.

I also did a very quick test with 200+ flappy bats in different locations running animations not in sync with each other. It didn't make the graphics card blink, but it used about 15% CPU on my stock e8400 3.0 GHz. I don't know if that's too much or not, but I'll probably try to do a stress test of maybe 1000 bouncing animated actors and see if the CPU usage stays low.

If anyone minds me describing my minor updates, please let me know. It partly serves to organize my thoughts and makes me feel like I'm making progress, I guess. :P

What are you doing for the broadphase collision? Quadtree?
 
What are you doing for the broadphase collision? Quadtree?
I confess I don't know what "broadphase" means, and if you were the person who mentioned quadtrees earlier in the thread, I had to look it up. :P I don't know either thing, though if I added collision then it sounds like quadtrees would be a cool technique to learn about.

Any tips you have to share, or a description of broadphase collision for those of us who are ignorant?
 
I've been meaning to ask, what are the limitations of using MySQL for online social (almost MMO) games? I've seen this: http://www.slideshare.net/matsunobu/mysql-for-large-scale-social-games but I haven't put much time into testing it out.

Servers running MySQL are cheap and ubiquitous enough that starting up a browser based MMO could be quite doable if MySQL can handle it. Anybody have thoughts?

MySql is pretty standard in the web world. It should handle player records just fine as long as your userbase isn't in the millions.
 
I confess I don't know what "broadphase" means, and if you were the person who mentioned quadtrees earlier in the thread, I had to look it up. :P I don't know either thing, though if I added collision then it sounds like quadtrees would be a cool technique to learn about.

Any tips you have to share, or a description of broadphase collision for those of us who are ignorant?
This might sorta answer my own questions. I found some tutorials about collision, broadphase and narrowphase:

http://www.metanetsoftware.com/technique/tutorialA.html
http://www.metanetsoftware.com/technique/tutorialB.html

I get the impression broadphase just means considering all the objects in the game/level from a high-level perspective and choosing some subset of them so that collision detection is less performance-intensive?
 
MySql is pretty standard in the web world. It should handle player records just fine as long as your userbase isn't in the millions.

Okay for records sure. But the more 'out there' part I'm thinking is using it for sending packets and tracking player location and things like that in real time... for a limited number of users.

I guess the main advantage is being able to create games with MMO-like features while running off of a standard web host server. Or is there already a better solution for this?
 
I confess I don't know what "broadphase" means, and if you were the person who mentioned quadtrees earlier in the thread, I had to look it up. :P I don't know either thing, though if I added collision then it sounds like quadtrees would be a cool technique to learn about.

Any tips you have to share, or a description of broadphase collision for those of us who are ignorant?
Broadphase is when the game world is divided up into some sort of grid and you query through the grid to see if things are in a sector where they can collide with something. It saves resources because you aren't doing collision tests for every object in the game world.

Here is some things to read:

http://http.developer.nvidia.com/GPUGems3/gpugems3_ch32.html

http://www.metanetsoftware.com/technique/tutorialB.html
 
Okay for records sure. But the more 'out there' part I'm thinking is using it for sending packets and tracking player location and things like that in real time... for a limited number of users.

I guess the main advantage is being able to create games with MMO-like features while running off of a standard web host server. Or is there already a better solution for this?

For a small number it probably could. You probably don't want to use it like that though. You'd more likely want to have players tell the server their location and have that broadcast it to nearby players. Database writes should only be for record keeping or information you don't expect to change often.
 
Broadphase is when the game world is divided up into some sort of grid and you query through the grid to see if things are in a sector where they can collide with something. It saves resources because you aren't doing collision tests for every object in the game world.

Here is some things to read:

http://http.developer.nvidia.com/GPUGems3/gpugems3_ch32.html

http://www.metanetsoftware.com/technique/tutorialB.html
Thanks for the links. It sounds like my rough summary in my second post was accurate then?

There are probably a lot of areas I haven't studied at all regarding game engines. For the major game project I want to do once I finish getting the engine ported to SFML and set up, I don't need collision detection at all, and for the previous game with the bats, I never got that far to begin with...so I never got into it. =P
 
For a small number it probably could. You probably don't want to use it like that though. You'd more likely want to have players tell the server their location and have that broadcast it to nearby players. Database writes should only be for record keeping or information you don't expect to change often.

Hmmm does that mean creating a separate application for the server using a different socket? For cheaper hosting plans that wouldn't be an option... (thanks for answering my questions).
 
Hmmm does that mean creating a separate application for the server using a different socket? For cheaper hosting plans that wouldn't be an option... (thanks for answering my questions).

Yeah. Depending on your performance demands you could use HTTP polling too. If you're looking to do this in HTML5 look for some tutorials on Websockets.
 
Thanks for the links. It sounds like my rough summary in my second post was accurate then?

There are probably a lot of areas I haven't studied at all regarding game engines. For the major game project I want to do once I finish getting the engine ported to SFML and set up, I don't need collision detection at all, and for the previous game with the bats, I never got that far to begin with...so I never got into it. =P

You basically got it. I'm new to this too. Still working on my quadtree slowly. Recursion is a bitch for me. If I can't get it going I'll implement something from the web.
 
Okay for records sure. But the more 'out there' part I'm thinking is using it for sending packets and tracking player location and things like that in real time... for a limited number of users.

I guess the main advantage is being able to create games with MMO-like features while running off of a standard web host server. Or is there already a better solution for this?

For that purpose, I would probably pick some sort of in memory database (e.g. Redis, Memcached).
 
I actually found out about this today but for Punchpudding if you are building in .NET you can try RavenDB.

http://ravendb.net/docs/intro

Apparently it supports an HTTP interface by default so that you can read/write into the db without any translation layer. It's schemaless too so it should be perfect for quick reads and writes as long as the data isn't relational.
 
Hmmm does that mean creating a separate application for the server using a different socket? For cheaper hosting plans that wouldn't be an option... (thanks for answering my questions).

You could use CouchDB, Iris Couch and Cloudant are free and CouchDB communicates only over HTTP using JSON. Combo made in heaven (if you don't care strictly about performance...)
 
Not really sure how to formulate this post but I'm looking for some guidance on how to start making a game. (just a personal project, no intention of trying to make it profitable)

I'd want to start out with a 2D platformer, something perhaps akin to Sonic or Mario, which I've looked into briefly before. However, I'd like to make this game from the ground up, instead of it being just basically a rom hack or just a clone with a different palette or something. So that includes coding, making the sprites, etc.

So basically my question is, where do I start? I guess I could make it for PC/Mac and port it to NES/SNES/Genesis or something later, but I'm not sure how to get started. Tools, experiences, etc. are welcome.
 
So basically my question is, where do I start? I guess I could make it for PC/Mac and port it to NES/SNES/Genesis or something later, but I'm not sure how to get started. Tools, experiences, etc. are welcome.

If you don't have code experience it's going to be far easier to using an existing package (gamemaker, etc) than to code from the ground up. Porting to an old console in particular is incredibly difficult unless you have substantial C and assembly knowledge.
 
Not really sure how to formulate this post but I'm looking for some guidance on how to start making a game. (just a personal project, no intention of trying to make it profitable)

I'd want to start out with a 2D platformer, something perhaps akin to Sonic or Mario, which I've looked into briefly before. However, I'd like to make this game from the ground up, instead of it being just basically a rom hack or just a clone with a different palette or something. So that includes coding, making the sprites, etc.

So basically my question is, where do I start? I guess I could make it for PC/Mac and port it to NES/SNES/Genesis or something later, but I'm not sure how to get started. Tools, experiences, etc. are welcome.

What are your current skills in matter of coding and art? Can you do the scripting, graphics and music?
If you go 2D, GameMaker is a great soft to start with.
 
Platforming Prototype

Just a prototype with placeholder art. Implementing wallsliding, double jumping, wall jump, and jump effects. I'm going to try for a dash/attack sequencing to go for a Megaman X/Castlevania platforming adventure. Its a general test area, so just seeing how well it is to get around the stage with the basic movement set.

I'm using Construct 2, no coding, but figuring out what logic to use with the tools given is a bit cumbersome. The plus side is it goes out to HTML5 natively, so there's that plus. Using the animation import tools is a bit cumbersome (open bitmap, add bitmap, rinse repeat).

The good thing about using Construct 2 is that a lot of the logic from Construct Classic works the same, so you can go to the Scirra forums, look up say "wall sliding", have a look at how a particular person implemented it within their game and see if it works in your game. You can't copy paste, just see the Event lists and try to replicate how the logic works.
 
Platforming Prototype

Just a prototype with placeholder art. Implementing wallsliding, double jumping, wall jump, and jump effects. I'm going to try for a dash/attack sequencing to go for a Megaman X/Castlevania platforming adventure. Its a general test area, so just seeing how well it is to get around the stage with the basic movement set.

I'm using Construct 2, no coding, but figuring out what logic to use with the tools given is a bit cumbersome. The plus side is it goes out to HTML5 natively, so there's that plus. Using the animation import tools is a bit cumbersome (open bitmap, add bitmap, rinse repeat).

The good thing about using Construct 2 is that a lot of the logic from Construct Classic works the same, so you can go to the Scirra forums, look up say "wall sliding", have a look at how a particular person implemented it within their game and see if it works in your game. You can't copy paste, just see the Event lists and try to replicate how the logic works.
The animation is really nice.
 
Platforming Prototype

Just a prototype with placeholder art. Implementing wallsliding, double jumping, wall jump, and jump effects. I'm going to try for a dash/attack sequencing to go for a Megaman X/Castlevania platforming adventure. Its a general test area, so just seeing how well it is to get around the stage with the basic movement set.
I guess I didn't realize you could wall slide and jump at first, haha. Gravity takes effect so quickly, and the sideways motion is so quick, that it was sort of frustrating for me to try to land on top of the thin pillars, or try to get to the very top platforms. Having the second jump and wall slide recovery is nice to reduce the frustration a bit. Overall I personally feel that a little bit more floatiness could improve the feel. Nice animation on the main character.
 
Platforming Prototype

Just a prototype with placeholder art. Implementing wallsliding, double jumping, wall jump, and jump effects. I'm going to try for a dash/attack sequencing to go for a Megaman X/Castlevania platforming adventure. Its a general test area, so just seeing how well it is to get around the stage with the basic movement set.

I'm using Construct 2, no coding, but figuring out what logic to use with the tools given is a bit cumbersome. The plus side is it goes out to HTML5 natively, so there's that plus. Using the animation import tools is a bit cumbersome (open bitmap, add bitmap, rinse repeat).

The good thing about using Construct 2 is that a lot of the logic from Construct Classic works the same, so you can go to the Scirra forums, look up say "wall sliding", have a look at how a particular person implemented it within their game and see if it works in your game. You can't copy paste, just see the Event lists and try to replicate how the logic works.



Pretty cool and it runs super smooth! Makes me ashamed of my 30fps game...
About the screen zone, I felt I was going way too fast for what I can see in one screen. Air control is also a tad lose for my taste. Well, continue your good work! I love the sprite between.
 
Platforming Prototype

Just a prototype with placeholder art. Implementing wallsliding, double jumping, wall jump, and jump effects. I'm going to try for a dash/attack sequencing to go for a Megaman X/Castlevania platforming adventure. Its a general test area, so just seeing how well it is to get around the stage with the basic movement set.

Very nice and it runs smoothly as well. Enjoyed the animations as well.
 
Platforming Prototype

Just a prototype with placeholder art. Implementing wallsliding, double jumping, wall jump, and jump effects. I'm going to try for a dash/attack sequencing to go for a Megaman X/Castlevania platforming adventure. Its a general test area, so just seeing how well it is to get around the stage with the basic movement set.

I'm using Construct 2, no coding, but figuring out what logic to use with the tools given is a bit cumbersome. The plus side is it goes out to HTML5 natively, so there's that plus. Using the animation import tools is a bit cumbersome (open bitmap, add bitmap, rinse repeat).

The good thing about using Construct 2 is that a lot of the logic from Construct Classic works the same, so you can go to the Scirra forums, look up say "wall sliding", have a look at how a particular person implemented it within their game and see if it works in your game. You can't copy paste, just see the Event lists and try to replicate how the logic works.

I love the 'drawn with a pen' art style, and the movement is fluid and smooth. Jumping over top of the right hand side of the map was rather fun as well. it was a rather long plummet.
 
I guess I didn't realize you could wall slide and jump at first, haha. Gravity takes effect so quickly, and the sideways motion is so quick, that it was sort of frustrating for me to try to land on top of the thin pillars, or try to get to the very top platforms. Having the second jump and wall slide recovery is nice to reduce the frustration a bit. Overall I personally feel that a little bit more floatiness could improve the feel. Nice animation on the main character.

You make a good point regarding floatiness. Eventually I want there to be long falls with spikes at the bottom/hazards that you can catch yourself from harm with the air jump. I may have to implement a RUN state so that there isn't so much slipping when on the thin pillars, since I think having pillars that are hard to land on is fine, but don't want it to be the physics fault that the player fall off the pillars when landing because of inertia.

Same link, just clear your Browser cache so you see the updates. You'll no for sure when you see a pit in front of the main character.

Prototype with Blizzards suggestions implemented.
 
I love the 'drawn with a pen' art style, and the movement is fluid and smooth. Jumping over top of the right hand side of the map was rather fun as well. it was a rather long plummet.

Its still placeholder, but I'm fond of the Sega Disney platformers/Earthworm Jim, so whatever the final game may look very hand animated. :D
 
You make a good point regarding floatiness. Eventually I want there to be long falls with spikes at the bottom/hazards that you can catch yourself from harm with the air jump. I may have to implement a RUN state so that there isn't so much slipping when on the thin pillars, since I think having pillars that are hard to land on is fine, but don't want it to be the physics fault that the player fall off the pillars when landing because of inertia.

Same link, just clear your Browser cache so you see the updates. You'll no for sure when you see a pit in front of the main character.

Prototype with Blizzards suggestions implemented.
I feel like there's a lot of inertia, though I'm not sure if it was there before. The floor already feels like ice where it's really hard to stop, and changing directions midair seems very difficult without using the double jump. Maybe this is by design. Anyway I'll leave further suggestions to other people since I don't want to just tailor it to myself or something. :P
 
Before, the character would slide a few steps due to the lesser decelaration. now its should be a dead stop if you let go of the arrow keys. Changing directions in mid-air being difficult is by design. It shouldn't be TOO easy to get onto a platform, otherwise there's no tension in getting up to the platform.

There will be tons of tweaks till a final build, and fixing unintended inertia such as from long jumps is pretty easy since its just setting the MAX ACCELERATION vs MAX DECELERATION variables.
 
There's a glitch in both versions where the character gets stuck on the ledge in a falling animation.

Yeh, I'm aware of the animation switching. It happens when you get close to a wall on the ground as well, though I originally had it fixed. Maybe an issue with newer revisions of Contruct 2. That, or I ended up deleting the Event that's suppose to fix that issue in my tweaking last night (was up later than usual).

I'm also thinking its an issue with the collision boxes for the character. Some animations are have larger collisions (idle/walking) while others have skinnier collision boxes (falling/jumping/wallsliding) though I rather keep them that way since it facilitates the easier use of tandem wall jumping.

Also, I totally appreciate the feedback I'm getting. Sometimes designing levels and mechanics, I wonder if things are too difficult for other users since I'm already familiar with the layouts and where to make certain jumps.
 
Top Bottom