• 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?

And yet I feel that's harder to read, as well as providing more room for potential error! *holy programming language war*

After 15 minutes of messing with SFML (I already had a test project set up so I cheated), it's apparently easy to modify the pixels of an image while things are running.

UNFORTUNATELY, unlike Slick2D, SFML apparently has no tile/sprite sheet/sprite animation support, so in a game jam I would have to write that up myself.

It looks like options are drawing down to Game Maker or XNA, and word on the street (this thread) is that XNA takes a while to learn. :P

XNA doesn't take long to pick up actually. In a day you can be drawing things and manipulating sprite sheets.
 
XNA doesn't take long to pick up actually. In a day you can be drawing things and manipulating sprite sheets.
Cool beans, I might try it tonight. I have almost a full-fledged game idea I'd like to make tonight, probably with Slick2D or SFML. How big and difficult is the XNA redistributable to package with stuff? What I want to make is so simple it would be ideal as a Flash game or a Java applet, but since it would probably be a download, I want it to stay like 5MB max.

*edit* Partly answering my own question, it's about 7MB, and oddly enough the 4.0 redist is smaller than the 3.1 redist. Are there any common issues for end users installing it and getting it to run, or is that MSI likely to just work for everyone? If someone already has the 3.1 redist installed will the 4.0 redist cause issues? Feep, any XNA redist/setup advice?

Off-topic question, who's in your avatar?
 
How big and difficult is the XNA redistributable to package with stuff? What I want to make is so simple it would be ideal as a Flash game or a Java applet, but since it would probably be a download, I want it to stay like 5MB max.

The xna redist is 7ish megs (not counting .net framework)
 
Cool beans, I might try it tonight. I have almost a full-fledged game idea I'd like to make tonight, probably with Slick2D or SFML. How big and difficult is the XNA redistributable to package with stuff? What I want to make is so simple it would be ideal as a Flash game or a Java applet, but since it would probably be a download, I want it to stay like 5MB max.

Off-topic question, who's in your avatar?

I haven't tried to package anything in xna yet, but I've seen packages that were less than 10MB.

The funniest woman in the world is in my avatar. Its comedian/photographer Felicia Michaels.
 
The xna redist is 7ish megs (not counting .net framework)
The main thing I'm worried about is if I try to get people to try something, and then they have to download both XNA and .NET redistributables and try to install them, ESPECIALLY if there's any conflict between different .NET versions or whatever. How about the .NET size? *edit* Eww, it looks like about a 50MB download for the standalone installer, and Google has hits of people with problems running Terraria etc. because of .NET (but not XNA?) problems.
 
The main thing I'm worried about is if I try to get people to try something, and then they have to download both XNA and .NET redistributables and try to install them, ESPECIALLY if there's any conflict between different .NET versions or whatever. How about the .NET size? *edit* Eww, it looks like about a 50MB download for the standalone installer, and Google has hits of people with problems running Terraria etc. because of .NET (but not XNA?) problems.

Pretty sure .NET 4 is one of the recommended windows updates these days.
 
I'am not sure if to put score and times I've never been one to care about them myself, and I find them the most pointless thing in a game but I know some don't.

Do you replay games to get the best score? Its hard to care about something you think is pointless
 
I'am not sure if to put score and times I've never been one to care about them myself, and I find them the most pointless thing in a game but I know some don't.

Do you play play games to get the best score? Its hard to care about something you think is pointless

Well it largely depends on the experience you're providing. An artsy game like ICO doesn't need points, as do things that tend to be played once or just for the immersive experience. Something that gets repetitive plays can benefit from it. But the final call is yours; if it truly doesn't add anything to the experience then don't put them in if you don't want to.
 
I'am not sure if to put score and times I've never been one to care about them myself, and I find them the most pointless thing in a game but I know some don't.

Do you replay games to get the best score? Its hard to care about something you think is pointless
I would say that if it's a game where it makes sense (action platformer, or something where you can potentially complete levels as quickly as possible), scores and times are easy ways to add replay value. From a cynical perspective, they could be used as a tagline to give a point to an otherwise pointless game. =P "Try to beat your friends' high scores!"
 
Ugh, I have no idea if my current systems are horrible programming messes that real programmers would glare at me for. I have like six different classes of game "objects" (intangible foreground object, immobile object, menu object, etc) that I create and store in these vectors (so that drawing everything is as simple as writing a few loops). Does that sound horrible to anyone?
 
Ugh, I have no idea if my current systems are horrible programming messes that real programmers would glare at me for. I have like six different classes of game "objects" (intangible foreground object, immobile object, menu object, etc) that I create and store in these vectors (so that drawing everything is as simple as writing a few loops). Does that sound horrible to anyone?
I would imagine most ingame objects would be subclasses of a fairly generic "GameObject" superclass, but if it is easier to manage drawing by keeping track of various sets of objects separately, sounds fine to me. It would work either way since the objects could all be GameObjects and still stored in separate vectors.

If you start dynamically adding and deleting objects in the middle of those vectors it might become more obnoxious, but even then your performance would probably be fine unless you had tons of objects.
 
So I have a new job and I'm planning on putting some money away every month so in a few years I can put together a team. Anyone have any idea just how much money I should be saving?

Assume it'll be me, an artist, and a lead programmer working on a simplistic-3D Unity game for iOS and Android.
 
I would imagine most ingame objects would be subclasses of a fairly generic "GameObject" superclass, but if it is easier to manage drawing by keeping track of various sets of objects separately, sounds fine to me. It would work either way since the objects could all be GameObjects and still stored in separate vectors.

If you start dynamically adding and deleting objects in the middle of those vectors it might become more obnoxious, but even then your performance would probably be fine unless you had tons of objects.

Oh yeah, all of the classes do inherit from a generic GameObject class, but I store them in separate vectors anyway in case I need to iterate over only one type. One of the biggest breakthroughs in this project for me was learning how to work with this:
Code:
for(std::vector<std::shared_ptr<ImmobileObject>>::iterator it = Immobile.begin(); it !=Immobile.end(); it++){
//stuff
}

My current problem is tackling how to handle different game "states" such as "paused", "main menu", "loading", and "playing". My current rough implementation just has a switch case in the game loop that changes behavior based on the value of the static variable _gameState, but I know that SFML also has multithreading support for these kind of situations...any generic tips?
 
Oh yeah, all of the classes do inherit from a generic GameObject class, but I store them in separate vectors anyway in case I need to iterate over only one type.
I imagine that it will be cleanest and easiest to use data structures that reflect how you need to draw and manage the objects. If there are like 10,000 of some specific object type and they need to get created and deleted on the fly, you might need a special data structure and code to manage that. If most things get created and then stay in the structures to be drawn, vectors should be fine. If you are managing and drawing objects that are very distinct types (gameplay objects versus pure background objects versus menu objects), the separate structures seem to match that distinction to me.

I would just move ahead as long as the code is clean enough and simple enough to help you avoid making obvious mistakes. Spending TOO long trying to find the perfect design or optimize ahead of time might kill a project. :)
 
"Premature optimization is the root of all evil."
- Don Knuth
This was PRECISELY what I was thinking.

However, I kinda do embedded systems stuff for a living, and that's one place where paying attention to performance early is actually important since you need to know whether the hardware can actually DO it. =( It might be the same in a game if you know you are trying to do something performance-intensive, like display 10,000 soldiers in one screen. In that case, it should probably be considered a "requirement" or "factor" or whatever in your design, so you take it into consideration and test it as early as possible.

Regarding multithreading, I don't think you should need any sort of multithreading for handling different game states. If you need to handle transitions you might use state variables to indicate some specific transition type is happening, and maybe some method(s) that handle changing to a new mode in addition to your code that draws stuff in the current mode. I'm not sure what is typically done in large games for in-progress state transitions.

But its haaaaaaard not to... :(
It can be a huge waste of time. One of my biggest problems is wasting time trying to solve things or figure out how to do things that aren't necessarily important. It's probably best to move on. I would put the biggest focus on making the design clean, and the code easy to understand, so it's unlikely you make mistakes. It's good to have code that can be optimized later (you can put comments in certain sections or whatever), but if the code is confusing to begin with then it's going to be that much worse if you chase bugs or try to optimize in that part.
 
Hmmmm....just did some tests. It seems like Box2D runs into slowdown when it has to account for 500 objects at once. That's not too problematic, I plan to use graphics...I dunno, "masking" to minimize the number of physical objects that need to be tracked.

However SFML (or at least my draw iterator) runs into major slowdown when it has to draw even 50 objects. That's far more worrisome...
 
Ugh, I have no idea if my current systems are horrible programming messes that real programmers would glare at me for. I have like six different classes of game "objects" (intangible foreground object, immobile object, menu object, etc) that I create and store in these vectors (so that drawing everything is as simple as writing a few loops). Does that sound horrible to anyone?

Another way to think about game engines is the idea of a "component based" system as opposed to only using inheritance.

Say everything in the game is an "Entity".
Entity needs AI? Add an AI component.
Entity needs drawing? Add a drawing component.
Entity needs collision? Add a component for bodies.

So say you had just a prop that draws but has no collision or AI or anything. Just make an entity than be like entity.AddComponent(new DrawingComponent(whatever)); This also allows you to "assembly-line" it more, you can push off a lot of the objects into outside of code into txt files or what not. You can easily make an graphical editor for entities relatively easy as well (have like checkboxes - "has collision?" etc).

I found that nothing but inheritance leads to having "super classes" a lot of the time with tons of functions that don't get used or needed. You of course will maybe want to make some derived classes of "Entity" for some specific things.

edit: As for menus, I had a system entirely seperate from the game for that. My next game I had penciled out so basically it was a stack of "States", and there would be "MenuState" and GameState, etc. Options in the MenuState would push new MenuStates (or maybe an AnimationState as an inbetween) or the GameState. Pausing in the Gamestate would add a MenuState and going "Back" in any of these states would push it off the stack. Atleast that was the general idea, gonna work on that soon after the game engine is done.

However SFML (or at least my draw iterator) runs into major slowdown when it has to draw even 50 objects. That's far more worrisome...
SFML (last time I used it) ran super slow in debug mode, put it to release and it runs like 600% faster.

Hmmmm....just did some tests. It seems like Box2D runs into slowdown when it has to account for 500 objects at once. That's not too problematic, I plan to use graphics...I dunno, "masking" to minimize the number of physical objects that need to be tracked.
Are your collision tiles all seperate objects? Maybe make routines to merge the boxes horizontally or something before they are created.
 
So I have a new job and I'm planning on putting some money away every month so in a few years I can put together a team. Anyone have any idea just how much money I should be saving?

Assume it'll be me, an artist, and a lead programmer working on a simplistic-3D Unity game for iOS and Android.

...anyone?

I'm thinking of storing up $20k before taking the plunge. It seems overboard now but I want to be absolutely ready. Maybe even get outside investors? The artist and programmer would probably be contracted and not actual employees, at least at first.
 
Cool beans, I might try it tonight. I have almost a full-fledged game idea I'd like to make tonight, probably with Slick2D or SFML. How big and difficult is the XNA redistributable to package with stuff? What I want to make is so simple it would be ideal as a Flash game or a Java applet, but since it would probably be a download, I want it to stay like 5MB max.

*edit* Partly answering my own question, it's about 7MB, and oddly enough the 4.0 redist is smaller than the 3.1 redist. Are there any common issues for end users installing it and getting it to run, or is that MSI likely to just work for everyone? If someone already has the 3.1 redist installed will the 4.0 redist cause issues? Feep, any XNA redist/setup advice?

Off-topic question, who's in your avatar?
Wayyyyy too late, but yeah, you need .NET and XNA 4.0 redistributables to RUN XNA games, though I believe you need to download the full XNA Game Studio 4.0 to develop.

Both .NET 4.0 and XNA 4.0 are installed automatically by Steam when Sequence is run...if you've played my game, you should be able to play any other XNA 4.0 game. = D

I don't know if you need to delete 3.1 manually before installing 4.0, but I doubt it, personally.

...anyone?

I'm thinking of storing up $20k before taking the plunge. It seems overboard now but I want to be absolutely ready. Maybe even get outside investors? The artist and programmer would probably be contracted and not actual employees, at least at first.
For reference, Sequence cost me 5k, though I was the programmer. 20k seems good.

Consider Kickstarter, though you generally need to have a video showing some kind of alpha version or conceptual footage of the game. People don't like donating to hypothetical concepts, they want to feel that a project is in fact going to get done and be cool.
 
Another way to think about game engines is the idea of a "component based" system as opposed to only using inheritance.

Say everything in the game is an "Entity".
Entity needs AI? Add an AI component.
Entity needs drawing? Add a drawing component.
Entity needs collision? Add a component for bodies.

So say you had just a prop that draws but has no collision or AI or anything. Just make an entity than be like entity.AddComponent(new DrawingComponent(whatever)); This also allows you to "assembly-line" it more, you can push off a lot of the objects into outside of code into txt files or what not. You can easily make an graphical editor for entities relatively easy as well (have like checkboxes - "has collision?" etc).

I found that nothing but inheritance leads to having "super classes" a lot of the time with tons of functions that don't get used or needed. You of course will maybe want to make some derived classes of "Entity" for some specific things.

This is how Unity does things, it seems to be accepted as good practice although it's a bit less natural for a lot of programmers to pick up than using inheritance. I'll say it's easier to get a project off the ground with inheritance, but the benefits of component-driven development manifest themselves once you've gotten a little ways into your project.

I'm thinking of storing up $20k before taking the plunge. It seems overboard now but I want to be absolutely ready. Maybe even get outside investors? The artist and programmer would probably be contracted and not actual employees, at least at first.

Although Feep only paid 5k for Sequence, consider two things:
1. He programmed the game. Even fresh out of college programmers generally make at least 50 or 60k a year, though some might work for a discount to be working on a game. How long do you think development will take? If it's a 2 month development cycle, then 10k (half of your 20k budget) sounds reasonable and if you find someone willing to work for cheap it could cost less or give you a slightly longer dev cycle.

2. Sequence didn't require a large amount of art assets. I haven't played the game, but Feep mentioned that the artist was essentially just paid to make one-screen backgrounds for fourteen levels and then a few other assorted things. You say your project is a simple 3d unity project? So you need a modeler and texture artist (could be the same person), not just a 2d artist, and depending on the type of game, a lot more art assets than Sequence did. Games that have entire levels consist of one static background (tower defense, music/rhythm, puzzle) are certainly doable for less than 10k, but games in which you're roaming around a 3d world generally require tons of things modeled.

Based on those two things, 20k seems reasonable if the type of game you're designing falls under certain constraints, but could be undershooting it otherwise. My advice would be to, as you're designing the game over the next x months, try to make a rough asset list, even if just for one level, to help give you an idea how much work an artist will have to do to make your game.
 
Any tips on designing gameplay and coming up with ideas?

I'm managing many options for MANY different points in the game, but I don't want it to feel cluttered, and I want those options to be congruent with each other, I don't know if I'm expressing myself correctly. What the hell do I keep and what the hell do I discard?
 
Are your collision tiles all seperate objects? Maybe make routines to merge the boxes horizontally or something before they are created.

Eventually no. Currently I just use big white boxes. When I move to actual graphical tiles, rather then create a solid box for each tile which could get very large very fast, I'm just going to break the level layout into as many large convex chunks as possible and then draw the tiles over them. Reduces the load on the physics engine.
 
Eventually no. Currently I just use big white boxes. When I move to actual graphical tiles, rather then create a solid box for each tile which could get very large very fast, I'm just going to break the level layout into as many large convex chunks as possible and then draw the tiles over them. Reduces the load on the physics engine.

Yeah that is ideal. For that game I made I just used large convex chunks as well (that I drew with "sectors" in that editor). Really though, objects that set to "static" in box2d should have pretty minimal performance impact IIRC. I had tons of statics, basically every entity in an extremely large map in that competition game and it did not get slowdown.

I made Defy Gravity Extended(on Steam now) in XNA almost by myself. I did a lot of the art, all the game/level-design and programming.

http://store.steampowered.com/app/96100/?snr=1_7_7_151_150_1

Here is a video review by Total Biscuit.

http://www.youtube.com/watch?v=H28lW5WE6dk

Great game.
 
This thread has entirely passed under my radar, whats up indies!

I started out doing level design, but now I'm more interested in programming, so now im just gonna do both, (I may die from this fusion) I've got a couple of artists from my old school, were gonna make a platformer, wish us luck!
 
Any tips on designing gameplay and coming up with ideas?

I'm managing many options for MANY different points in the game, but I don't want it to feel cluttered, and I want those options to be congruent with each other, I don't know if I'm expressing myself correctly. What the hell do I keep and what the hell do I discard?
Something something playtesting
 
Although Feep only paid 5k for Sequence, consider two things:
1. He programmed the game. Even fresh out of college programmers generally make at least 50 or 60k a year, though some might work for a discount to be working on a game. How long do you think development will take? If it's a 2 month development cycle, then 10k (half of your 20k budget) sounds reasonable and if you find someone willing to work for cheap it could cost less or give you a slightly longer dev cycle.

2. Sequence didn't require a large amount of art assets. I haven't played the game, but Feep mentioned that the artist was essentially just paid to make one-screen backgrounds for fourteen levels and then a few other assorted things. You say your project is a simple 3d unity project? So you need a modeler and texture artist (could be the same person), not just a 2d artist, and depending on the type of game, a lot more art assets than Sequence did. Games that have entire levels consist of one static background (tower defense, music/rhythm, puzzle) are certainly doable for less than 10k, but games in which you're roaming around a 3d world generally require tons of things modeled.

Based on those two things, 20k seems reasonable if the type of game you're designing falls under certain constraints, but could be undershooting it otherwise. My advice would be to, as you're designing the game over the next x months, try to make a rough asset list, even if just for one level, to help give you an idea how much work an artist will have to do to make your game.

Thanks for the insight. Like I said, I'll be saving it over the next few years, so during that time I'll be doing exactly as you said. I plan to hit the ground running, but yeah, it's going to be daunting and complex. Keeping my spirits up though!
 
BUT OMG SO MANY OPTIONS I DONT WANNA MAKE THE WRONG CHOICE AND I HAVE NOT GOT ENOUGH TIME

Testing is great because it'll tell you which ideas work and which don't, and how well people pick up on the some of the more advanced mechanics you've designed. Not to mention a million other things. Test early, test often.
 
Thanks for the insight. Like I said, I'll be saving it over the next few years, so during that time I'll be doing exactly as you said. I plan to hit the ground running, but yeah, it's going to be daunting and complex. Keeping my spirits up though!

If you're not a programmer but really want to use outside help to make a game, the best tip I can offer is that you need to have really damn good documentation. Like, the Assassin's Creed standard, which basically means built a series of spreadsheets that literally just go point by point with stuff like "Dudebro moves x meters per second (4.2)" and "Dudebro moves up/down/left/right" and so on.

If you want it done quick (AKA not so expensive) and you want it done right, this is basically essential. A traditional design doc or even just an idea can theoretically work, but often ends up in a ton of wasted time (or in this case, money). The spreadsheet standard is really efficient and programmers will love you for it because it's basically a checklist they can use to get paid.
 
Speaking of XNA on Steam, apparently there are at least a few SFML games on Steam, like Air Forte. Actually Air Forte apparently used a C# binding of SFML, oddly enough.
 
"Premature optimization is the root of all evil."
- Don Knuth

That's one of my problems. I can't stop optimizing till my app runs at/above a constant 25 - 30 FPS, so I go back trying to fix old stuff when I need to add new stuff. ;_; It currently hovers around 23-30 GPS with slight drops when things get heavy. Tomorrow I won't be doing that though, I'm adding a new enemy, one new item and finishing up a level (until I find something that needs more optimization :-/ )
 
If you're not a programmer but really want to use outside help to make a game, the best tip I can offer is that you need to have really damn good documentation.

I'm a programmer, but I wouldn't be doing most of the programming. Just contributing what I can in between running the business side, designing, and marketing.

Like, the Assassin's Creed standard, which basically means built a series of spreadsheets that literally just go point by point with stuff like "Dudebro moves x meters per second (4.2)" and "Dudebro moves up/down/left/right" and so on.

Hrm, do you have a link where I could learn more of this method?

If you want it done quick (AKA not so expensive) and you want it done right, this is basically essential. A traditional design doc or even just an idea can theoretically work, but often ends up in a ton of wasted time (or in this case, money). The spreadsheet standard is really efficient and programmers will love you for it because it's basically a checklist they can use to get paid.

My design docs usually do include that kind of info, though. I always try to be as specific about a game system as possible. I actually separate things into a Design Doc and Content Doc, so that there's a clear distinction between how game mechanics should be implemented and the actual content in the game. It's sort of like the distinction between HTML and CSS.
 
Just when I get the time and confidence to start on my game, my tablet wants to flip out when I trying character concepts >:(

Why? WHY?!
been tinkering with this thing all day. A whole day kinda wasted.
 


Stupid thread and the stupid desire to boot up Game Maker again. Putting together a quick and basic adventure game to get some engine shit worked out. This is the result of my evening so far.

Making games > playing games. I intended to play FFXII tonight. Nope.

E: I like having a widescreen monitor finally...except that I forget to close that "Your first game!" side bar since screen real-estate isn't an issue anymore. I finally unchecked that box...Haha
 
That's one of my problems. I can't stop optimizing till my app runs at/above a constant 25 - 30 FPS, so I go back trying to fix old stuff when I need to add new stuff. ;_; It currently hovers around 23-30 GPS with slight drops when things get heavy. Tomorrow I won't be doing that though, I'm adding a new enemy, one new item and finishing up a level (until I find something that needs more optimization :-/ )
What library and platform are you dealing with that 25-30 FPS happens regularly? Mobile devices?

*edit* Wow, Microsoft's site is slow. The XNA Game Studio thing is taking like 20 minutes to download.
 
A possible area to explore would be to use the $20k to develop the game as far as possible, then use something like Kickstarter is further funds become required... easier than going to investors, but far more risky. Hrm...
 
A possible area to explore would be to use the $20k to develop the game as far as possible, then use something like Kickstarter is further funds become required... easier than going to investors, but far more risky. Hrm...

My current strategy is to exploit my artistically talented brother for art and music
 
Has anyone heard/ read this book called "The Game Maker's Apprentice: Game Development for Beginners"

Is this any good?

I've read this and the sequel. Both are very good, but they do not introduce you to very much scripting in GML. A lot of people bitch about drag and drap operations, but I've used a few here and there. I'm to the point now, though, that I code everything. There's a PDF available that gives the code equivalent of every drag and drop operation you learn in those books, too.
 
What library and platform are you dealing with that 25-30 FPS happens regularly? Mobile devices?

*edit* Wow, Microsoft's site is slow. The XNA Game Studio thing is taking like 20 minutes to download.

iOS...

I'm realizing that I can't have flashy (too much) graphics and a steady frame rate, something's gotta give :-/

EDIT: Hmm, kickstarter, I should look that up. I have more than enough to show that I am dedicated to my project, but just need more funds...
 
I've read this and the sequel. Both are very good, but they do not introduce you to very much scripting in GML. A lot of people bitch about drag and drap operations, but I've used a few here and there. I'm to the point now, though, that I code everything. There's a PDF available that gives the code equivalent of every drag and drop operation you learn in those books, too.

Did they help you a lot? would you recommend it to someone new to GMaker?

I was biased to purchase it at Barnes and Nobles because the price and I hadn't done my research.
 
Did they help you a lot? would you recommend it to someone new to GMaker?

I was biased to purchase it at Barnes and Nobles because the price and I hadn't done my research.

If you're brand new to GM (and possibly new to creating as well), it is very helpful, yeah. It goes through and teaches you the way that you should approach design and interactions of objects in a game(particularly in GM). It also helps explain the way that GM's GUI works and how to organize your process.

If GM is something you'd like to explore, it's a really great starting point.
 
Top Bottom