• Hey, guest user. Hope you're enjoying NeoGAF! Have you considered registering for an account? Come join us and add your take to the daily discourse.

Indie Game Development Discussion Thread | Of Being Professionally Poor

Status
Not open for further replies.

Sharp

Member
I would add on/respond to this and say that writing code that is hacked together can cause you huuuge problems and wastes of time down the road, if it's a project of any size.

Also, some languages can probably be a lot better than others for beginners -- simplicity of certain Python or C# operations versus C++ templates and operator overloading or (to be silly) LISP. Or Perl (haha).

Also also, I would say first make it work, then make it work right, then make it work fast. Premature optimization can be the root of all evil, unless you're confident that something you're doing is going to be key for performance and needs benchmarked right then to make sure it's feasible.
I would argue that LISP is probably the easiest of those languages to learn, actually. Well, maybe Python, it's close.

Of the four languages you listed, C++ is easily the most performant, but I don't think that's news. My initial instinct would suggest that C# is almost totally useless for game development but I'm probably wrong about that.
 

Kalnos

Banned
My initial instinct would suggest that C# is almost totally useless for game development but I'm probably wrong about that.

Yeah, you're wrong. You won't really be hindered at all and there are a ton of great libraries/tools for you to use (Unity, XNA, SFML, etc). It's also much easier to learn and will allow you to develop a game much faster than coding in C++ (imo).
 

Blizzard

Banned
I don't know that a Lisp would be a bad language for a beginner. Scheme and Racket are used pretty regularly as the language for Intro To CS classes. If anything, I think that it'd be powerful to learn from the start that about first class functions.
Oh my first college ("accelerated") CS class used Scheme, and I liked it, but if you consider looking at a page full of (car (car (car (cdr whatever)))) to be perfectly clear to people who haven't programmed before, I guess I disagree. :p You might as well use a page of arcane Perl or something, unless you've got great an easy-to-read version of LISP (I never used it much for game programming). I think the syntax of other languages can be less confusing, but perhaps that goes in line with the idea of finding a language that makes sense to the individual and going from there.

I also agree about C# and XNA for rapid development. I feel like I'd suggest Unity and C#/ActionScript, or GameMaker and GML, or Java and a Java library (Slick2D?), or Python and a Python library (Pygame?), or ActionScript and potentially an ActionScript Library, before suggesting someone who has never programmed before dive into C++.
 

Kalnos

Banned
Since I literally just posted about C#... I found this in the Runic Games AMA on Reddit:

The game itself is C++, and the editor C#.
-Matt Tanwanteng (Tiamat)

C# WinForms are also very popular for programming tools due to how easy they are to use (once again, rapid development).
 

razu

Member
Indie bros? I like it!

:)

+1 for C# too. As an experienced C++ game coder, I used to worry about what C# actually did. But then it dawned on me that it doesn't really matter all that much, and it just works. Vintage me would hate modern me, but modern me doesn't care! Modern me also never looks for ways of making my code fit into memory, like we used to on PS1. Modern me doesn't miss that one bit...
 

Alts

Member
[...] page full of (car (car (car (cdr whatever)))) [...] I think the syntax of other languages can be less confusing.

There are a couple things at play here. For a true beginner, all syntax is equally alien. That will be a hurdle no matter what. Where languages like Python and Ruby win out is that core operations are carried out using plain English (rather than cryptic identifiers or symbols), and that makes it significantly easier for people to ease into programming.

To return to the original question:
The best language to write a game in is the one you already know.
Failing that, the best language to make a game in (and learn) is that one that provides to you the best community. You will need to learn from/with others. If there are people near you in person who use something, use that so that you can get help. If people in this community tend to offer help with a particular piece of tech, try it. Community is crucial, and I hope this thread can serve as one.
 

eot

Banned
I want to start dabbling with 3D and I'm not sure what the best way to do it is. I've been playing around with OpenGL in both SDL and SFML but the amount of complexity 3D adds to a project when you're building something from the scratch is quite significant. For example in terms of data structures you had to deal with for levels, animations, models etc. and the tools you have to make for yourself. It would be fun to dig into all that stuff but it would probably be a bad way to actually get a game done. I'm probably going dig into UDK a bit but I dunno, maybe Unity is better for just doing small stuff?
 

razu

Member
I want to start dabbling with 3D and I'm not sure what the best way to do it is. I've been playing around with OpenGL in both SDL and SFML but the amount of complexity 3D adds to a project when you're building something from the scratch is quite significant. For example in terms of data structures you had to deal with for levels, animations, models etc. and the tools you have to make for yourself. It would be fun to dig into all that stuff but it would probably be a bad way to actually get a game done. I'm probably going dig into UDK a bit but I dunno, maybe Unity is better for just doing small stuff?


Yes 100%. You can make big stuff too. And the community is wicked. Enjoy!!
 

Kritz

Banned
Don't take my word for it, but I think that Unity is amazing for solo, small projects. I use C#, and it's such a piece of cake to make cool shit happen. Especially when it's loaded with some cool stuff already like physics and collisions. It just allows you to jump in, and assuming you're past the initial learning phase, turn an idea into a prototype in about 2-5 hours.

I wish uni wasn't such a clusterfuck at the moment so I could get back to making my game.

Question:

How many people in this thread have game development as their main source of income, and how many people just treat it like a hobby? How do you hobbyists handle, well, the real world?
 

Tankshell

Member
Don't take my word for it, but I think that Unity is amazing for solo, small projects. I use C#, and it's such a piece of cake to make cool shit happen. Especially when it's loaded with some cool stuff already like physics and collisions. It just allows you to jump in, and assuming you're past the initial learning phase, turn an idea into a prototype in about 2-5 hours.

I wish uni wasn't such a clusterfuck at the moment so I could get back to making my game.

Question:

How many people in this thread have game development as their main source of income, and how many people just treat it like a hobby? How do you hobbyists handle, well, the real world?

Currently half and half here, hoping to go full time if/when I get a hit product :0)

Currently I just freelance doing short term dev contracts and then in between take a month or 2 off to work on games/other software which one day will make me millions... or at least that's the plan!
 

razu

Member
Currently half and half here, hoping to go full time if/when I get a hit product :0)

Currently I just freelance doing short term dev contracts and then in between take a month or 2 off to work on games/other software which one day will make me millions... or at least that's the plan!

Same here.
 

bumpkin

Member
Currently half and half here, hoping to go full time if/when I get a hit product :0)

Currently I just freelance doing short term dev contracts and then in between take a month or 2 off to work on games/other software which one day will make me millions... or at least that's the plan!
I remember initially getting into game development with the hopes of landing a gig with an established developer, but the more horror stories I hear about working conditions, the more I feel that dream dying. May just keep doing what I'm doing for a living (software engineer for a leading BPM Solutions company), and do my game dev stuff purely as a solo side thing. If I make a few bucks off something, cool. If I don't, at least I can still say I did what I aspired to do (make a game).
 

clashfan

Member
Of the four languages you listed, C++ is easily the most performant, but I don't think that's news. My initial instinct would suggest that C# is almost totally useless for game development but I'm probably wrong about that.

Plenty of commercial games (fez, dust an elysian tail, bastion, skulls of the shogun...) written using xna/monogames and c#.
 

Blizzard

Banned
There are a couple things at play here. For a true beginner, all syntax is equally alien. That will be a hurdle no matter what. Where languages like Python and Ruby win out is that core operations are carried out using plain English (rather than cryptic identifiers or symbols), and that makes it significantly easier for people to ease into programming.

To return to the original question:
The best language to write a game in is the one you already know.
Failing that, the best language to make a game in (and learn) is that one that provides to you the best community. You will need to learn from/with others. If there are people near you in person who use something, use that so that you can get help. If people in this community tend to offer help with a particular piece of tech, try it. Community is crucial, and I hope this thread can serve as one.
Your first paragraph basically sounds like you're contradicting yourself. :p You say that all syntax is equally alien, but then suggest that some languages are more like English than others...which by its very nature will make things look less alien, right?

I think it's a silly argument to make, since you could say "all syntax is equally alien", include an assembly code segment to use BIOS calls to write characters to the screen (no comments), and then have a BASIC code segment that says PRINT "Hello, world!" (again no comments). I suggest that the BASIC syntax is less alien to someone who speaks English than the assembly syntax.

I agree with the second paragraph though. Community/expert support can be something that is important in game jams, for instance. If you decide to use a new tool, no matter how good the tool/engine/language actually IS, you might still run out of time...because too much time was spent learning it and solving problems that an experienced person could have avoided/answered in mere minutes.
 

neoneogaffer

Neo Member
I highly recommend Adobe AIR. I know there are people here that don't like Flash, but Adobe has put together an excellent graphics API for AS3. AS3 is similar to Java, so you shouldn't have a problem learning it. AS3 is missing some of the niceties of C++ and Java, but it's OOP, so you're not wasting time learning it. The best thing I like about it is vector drawing API and use of the hierarchies (parent-child relationships). If you want better performance, you can save whatever you've drawn into a bitmap so it behaves as if it were a bitmap loaded from a file. Vector graphics can be integrated with bitmap graphics easily, so there's no need to use vector graphics if you don't want to.

Adobe AIR is getting better and better and it's incredible how a Flash game you've made for a browser runs exactly the same on either PC or IOS. I had made a game in Flash, and when I compiled it for iOS in ad-hoc mode, it performed just as well as it did on PC. Adobe is adding more and more content for AIR. Using Alchemy, you convert your C++ code into AVM2 format, and get very good performance. Adobe claims it's almost on par with native, and the demos I've seen using Alchemy are very good.

Best of all, it's all free. You don't have to pay a penny to Adobe. Adobe distributes the Flash/AIR compiler for PC, Android, and iOS for free. You can download FlashDevelop as your IDE. You code as if you were coding in any other programming language; it's just you and the compiler. If you make an AIR app, you can use Alchemy and their 3D acceleration API without paying a license.

I had bought and Mac Mini to develop an iOS game, but I barfed when I realized how difficult it would be to code for both iOS and Android. AIR's performance on iOS wasn't that great last year, and that's why I bought a Mini, but now it's very good. It saved my ass. From what I understand, AIR apps run faster on iOS than they do on Android, probably because AIR apps are compiled natively for iOS.

I know I probably sound like an Adobe employee, but I'm very impressed by development tools Adobe has released. I highly recommend trying out Flash development.
 

-COOLIO-

The Everyman
I highly recommend Adobe AIR. I know there are people here that don't like Flash, but Adobe has put together an excellent graphics API for AS3. AS3 is similar to Java, so you shouldn't have a problem learning it. AS3 is missing some of the niceties of C++ and Java, but it's OOP, so you're not wasting time learning it. The best thing I like about it is vector drawing API and use of the hierarchies (parent-child relationships). If you want better performance, you can save whatever you've drawn into a bitmap so it behaves as if it were a bitmap loaded from a file. Vector graphics can be integrated with bitmap graphics easily, so there's no need to use vector graphics if you don't want to.

Adobe AIR is getting better and better and it's incredible how a Flash game you've made for a browser runs exactly the same on either PC or IOS. I had made a game in Flash, and when I compiled it for iOS in ad-hoc mode, it performed just as well as it did on PC. Adobe is adding more and more content for AIR. Using Alchemy, you convert your C++ code into AVM2 format, and get very good performance. Adobe claims it's almost on par with native, and the demos I've seen using Alchemy are very good.

Best of all, it's all free. You don't have to pay a penny to Adobe. Adobe distributes the Flash/AIR compiler for PC, Android, and iOS for free. You can download FlashDevelop as your IDE. You code as if you were coding in any other programming language; it's just you and the compiler. If you make an AIR app, you can use Alchemy and their 3D acceleration API without paying a license.

I had bought and Mac Mini to develop an iOS game, but I barfed when I realized how difficult it would be to code for both iOS and Android. AIR's performance on iOS wasn't that great last year, and that's why I bought a Mini, but now it's very good. It saved my ass. From what I understand, AIR apps run faster on iOS than they do on Android, probably because AIR apps are compiled natively for iOS.

I know I probably sound like an Adobe employee, but I'm very impressed by development tools Adobe has released. I highly recommend trying out Flash development.

preach!

on new phones AIR is absolutely faaaaantaaaasstic.

the only problem is taking lower end phones into account. thats why i had to starling it up. but im half thinking about just targeting new phones only and calling it a day.
 
YoYo Games announces Game Maker Studio for Windows 8/Windows 8 Phone:

http://gamasutra.com/view/news/1779...f_2D_games_with_new_releases.php#.UFtK6UTXHZs

Linux support coming soon, and a tease for something big around the corner. Playstation Mobile support? XNA? Can't think of anything else...


My god, GM has grown so much. Has GML improved to include at least classes and objects? That's my only grip with it. It's hard to be DRY with it.

Here's a video of a game a made on it a long time ago (2006)
http://www.youtube.com/watch?v=0Ucfzr1oi98

Maybe I should pick it up again.
 

Ranger X

Member
How many people in this thread have game development as their main source of income, and how many people just treat it like a hobby? How do you hobbyists handle, well, the real world?

Since I learned some scripting languages last year and started my first project just this year, it's an hobby for me right now. I have no brakes though, it could take over anything that is going on in my life. Speaking of which, the real world is pretty much handled by my wife right now because I'm out of a job since a couple of weeks. lol


My god, GM has grown so much. Has GML improved to include at least classes and objects? That's my only grip with it. It's hard to be DRY with it.

Here's a video of a game a made on it a long time ago (2006)
http://www.youtube.com/watch?v=0Ucfzr1oi98

Maybe I should pick it up again.


Maybe I didn't get what you meant but the "classes" in GameMaker are basically your folders' tree on the left and what you create in them are basically objects...
 

Miutsu

Member
I also agree about C# and XNA for rapid development. I feel like I'd suggest Unity and C#/ActionScript, or GameMaker and GML, or Java and a Java library (Slick2D?), or Python and a Python library (Pygame?), or ActionScript and potentially an ActionScript Library, before suggesting someone who has never programmed before dive into C++.

LibGDX! LibGDX!
 
LibGDX! LibGDX!

My thought as well. GDX is pretty awesome. It has good documentation, active forums, constant updates, and good speed. It works on Android without changing your code (it's speedy there, too), and doesn't cost anything.

Slick2D is more beginner friendly since it's not concerned about being speedy (and therefore hides or doesn't include things like sprite caches and batches), but libGDX is definitely better overall.


I'm currently making a game in it, a simple game made mostly with Android touchscreens in mind, but man, if Android had buttons as standard, I'd totally enjoy making sidescrollers and stuff. (I hate on-screen controls.)
 

Gilby

Member
Just got accepted into VFS a few days ago, now I'm trying to figure out if I can actually afford to go. Did anyone here take their game design program? Thoughts?
 

charsace

Member
If you want to get started in games programming XNA is the best choice by far. Easiest to get going, best documentation, biggest community, easiest to find tutorials in and does 2d and 3d.
 

Miutsu

Member
My thought as well. GDX is pretty awesome. It has good documentation, active forums, constant updates, and good speed. It works on Android without changing your code (it's speedy there, too), and doesn't cost anything.

Slick2D is more beginner friendly since it's not concerned about being speedy (and therefore hides or doesn't include things like sprite caches and batches), but libGDX is definitely better overall.

Yeah, I honestly cannot give opinions on Slick2D since by the time I used it (2010) I still didn't know how to program very well (let alone video games) and my experience with it was very short, but using libGDX very recently I can say my experience with it was pretty good and I'm planning to use it again soon for one or two new proyects, here's hoping that iOS support pans out :)
 

Lombax

Banned
I am looking for some advice on what SDK to use. In terms of programming skill I am at best at an entry level programmer level.
I decided to change career paths about 1 and 1/2 years ago and started writing Functional API tests in C#. I would like to stay in the C world if at all possible but it would be best if I could leverage my C# experience.

Any thoughts GAF?
 

razu

Member
preach!

on new phones AIR is absolutely faaaaantaaaasstic.

the only problem is taking lower end phones into account. thats why i had to starling it up. but im half thinking about just targeting new phones only and calling it a day.


Yeah man. iPhone 4 and Galaxy S2 are my base. I'm only getting started, so in time they will be the old phones :D

60 frames a second for VAMflax!! :D
 

Monroeski

Unconfirmed Member
I am looking for some advice on what SDK to use. In terms of programming skill I am at best at an entry level programmer level.
I decided to change career paths about 1 and 1/2 years ago and started writing Functional API tests in C#. I would like to stay in the C world if at all possible but it would be best if I could leverage my C# experience.

Any thoughts GAF?

Note that I'm a beginner at best but it seems like XNA would be right up your alley; it's done in C# which you're already familiar with and as charsace says above it's great for beginners for multiple other reasons.
 

neoneogaffer

Neo Member
preach!

on new phones AIR is absolutely faaaaantaaaasstic.

the only problem is taking lower end phones into account. thats why i had to starling it up. but im half thinking about just targeting new phones only and calling it a day.

I'm sticking to iPhone 4 and iPad as my base. If my game does well, I'll move it to Android. With the many Android phones and stores out there, the Android scene looks like a mess. It's tough enough making sure the app works right in iPhone and iPad. Yes, Adobe AIR should alleviate all of this, but the testing effort is the biggest risk.

Again, AIR is a huge relief.
 

Blizzard

Banned
ActionScript can be cool, but I have a bad attitude about Flash and Adobe AIR for two reasons:

1. Actually making vector graphics, staged animation stuff, and so forth seems really expensive because of the full Adobe software (and I am not a student). I think the UDK Scaleform UI stuff supports a more inexpensive option, but I'm not sure if the other option works with all the fancy widgets. One option might be Inkscape exports loaded into ActionScript, if you don't need animation stage stuff.

2. Perhaps more importantly, Adobe AIR seems rather reknowned for having some hated applications written with it. The one I am most familiar with is the Riot League of Legends client, which tends to have all sorts of random glitches, crashes, bugs, or whatever. Yes this happens with any software, but it just seems worse and more bloated with the AIR one...even if that's purely perception. :p
 

Acrylic7

Member
Does anyone know a good rpg engine for Gamemaker?
Searching for an hours but only found dead links and bad engines.
 

Bentles

Member
I would add on/respond to this and say that writing code that is hacked together can cause you huuuge problems and wastes of time down the road, if it's a project of any size.

Also, some languages can probably be a lot better than others for beginners -- simplicity of certain Python or C# operations versus C++ templates and operator overloading or (to be silly) LISP. Or Perl (haha).

Also also, I would say first make it work, then make it work right, then make it work fast. Premature optimization can be the root of all evil, unless you're confident that something you're doing is going to be key for performance and needs benchmarked right then to make sure it's feasible.

I learned about this the hard way. I was learning about XNA and just chucking things into my game one after the next as I learned them to see how things worked. I thought it'd turn out fine in the end. Ended up srapping the entire thing and starting from scratch.

Now I'm a lot neater and I have comments all over the place so I can leave my project and come back to it and still have a feel for what's going on. I also think quite a lot before writing anything about how I can make things as reusable as possible to make my life easier in future.

Fun times!
 

Tashi

343i Lead Esports Producer
Make a shapes class and then have sub-classes for the differences. If you keep a clear object hierarchy you will make things easier for yourself at different stages.

As for indie development, the art side has always been the problem for me. Any chance of tips in the OP? The games I have made in the past have been technically sound but look rubbish.

That's exactly why I want to do it.

My thought is that if Mike Acton was reading this thread he would strangle half of the posters in it.

(Mike Acton is the Engine Director of Insomniac and basically hates OOP, or at least how people tend to use it)

Does Mike have an article or something he's written where I can see his opinion and what other advice he has? Sounds interesting.
 

Ranger X

Member
Does anyone know a good rpg engine for Gamemaker?
Searching for an hours but only found dead links and bad engines.

You won't find much stuff on this. Making an RPG isn't easy and too contextual, you probably won't find one that's done for you. Either you should start with a kind of game that is easier to make or maybe you could use RPGmaker. You could also go the hard way and learn what you have to learn, step by step, in order to pull off your own RPG in GameMaker.
 

razu

Member
I remember initially getting into game development with the hopes of landing a gig with an established developer, but the more horror stories I hear about working conditions, the more I feel that dream dying. May just keep doing what I'm doing for a living (software engineer for a leading BPM Solutions company), and do my game dev stuff purely as a solo side thing. If I make a few bucks off something, cool. If I don't, at least I can still say I did what I aspired to do (make a game).

Working conditions only apply when you're an employee. I work for my company that supplies a development service to game development companies. 9-5, and I'm gone. Redesigned the game because you played something new over the weekend? As an employee that would mean unpaid overtime. As a contractor that means more work and money!


I learned about this the hard way. I was learning about XNA and just chucking things into my game one after the next as I learned them to see how things worked. I thought it'd turn out fine in the end. Ended up srapping the entire thing and starting from scratch.

Now I'm a lot neater and I have comments all over the place so I can leave my project and come back to it and still have a feel for what's going on. I also think quite a lot before writing anything about how I can make things as reusable as possible to make my life easier in future.

Fun times!


You're supposed to throw prototype code away. If you plan and think everything through it'll take forever. Knock something together, then write it properly!

The more code you write, the better your hacked together stuff becomes, the less you need to rewrite!
 

Anuxinamoon

Shaper Divine
Does anyone know a good rpg engine for Gamemaker?
Searching for an hours but only found dead links and bad engines.

I would highly recommend RPG maker if you are making your first RPG. Use that to get used to making an RPG from start to finish. Only when you do that do you really realise how much work you would have to do to make one from scratch or in another engine that does not come with all the tools catered for an RPG.

Or what you could do is build the whole game as a prototype in PRG maker, then if you wanted to make it in 3D or whatever with all your epic feature creeps, at least your story and levels are solid enough for you to not have to worry about those things.
 

eot

Banned
You're supposed to throw prototype code away. If you plan and think everything through it'll take forever. Knock something together, then write it properly!

The more code you write, the better your hacked together stuff becomes, the less you need to rewrite!

I'm honestly not sure if you're being ironic or not.
 
I'm honestly not sure if you're being ironic or not.

image.php


Of course he's not. Make it fail, make it work, make it better.

A hack that works is always better than just something in your head. You just have to be careful with your technical debt.
 

razu

Member
It works for me!

And honestly, I've worked with a lot of excellent programmers. After a while you realise... they're all hacking it together, every last one. It's only the proud, defensive, young lions who shout about "how you should do things". In my experience.
 

Bollocks

Member
I am looking for some advice on what SDK to use. In terms of programming skill I am at best at an entry level programmer level.
I decided to change career paths about 1 and 1/2 years ago and started writing Functional API tests in C#. I would like to stay in the C world if at all possible but it would be best if I could leverage my C# experience.

Any thoughts GAF?

Unity3D, C#, easy as hell, enjoy
 
1. Actually making vector graphics, staged animation stuff, and so forth seems really expensive because of the full Adobe software (and I am not a student). I think the UDK Scaleform UI stuff supports a more inexpensive option, but I'm not sure if the other option works with all the fancy widgets. One option might be Inkscape exports loaded into ActionScript, if you don't need animation stage stuff.

you should try Flash Builder (or flash develop) + starling http://gamua.com/starling/
 

survivor

Banned
Are there any blogs you guys follow that are related to game development? They don't necessarily have to be ones for tutorials, but anything that posts interesting/helpful articles about programming/game design in general.

The only one I'm following so far is c0de517e which is by a render engineer that used to work for EA and Relic. A lot of the stuff he posts about are out of my depth but they are pretty interesting reads.
 
Status
Not open for further replies.
Top Bottom