Rawns Posted June 24, 2013 Posted June 24, 2013 It always fascinates me how you hear of indie games can built by a single person with skills in coding because they could do it, or because they they wanted to learn how to code. I believe the creator of Terraria built it purely to learn how to code in C#? I've never done anything like it but I'd really like to give it a go learning C# and maybe try my hand at developing something. Whatever it is, it would be ground breaking or awesome, but if I learn from it, that's a plus in its own. If anyone has any suggestions on where to start, useful resources, books, tutorials etc, please feel free to share then.
X-13 Posted June 24, 2013 Posted June 24, 2013 Here's a load of information. Everything from engines and art to marketing and merch. [some free, some paid.] 1
Sunnyknight Posted June 24, 2013 Posted June 24, 2013 C. C#. C++. Start from the basics. There are thousands of tutorials, books, resources, examples on the WWW. To source out the best, would be damn well hard. Your best bet is to talk to a experienced programmer (8+ years in the business) and ask them how to go about it. I did c++ in University, and it hurt my head for an entire year. It's usually 'C for dummies' book and then tutorials online, then expanding on what you've done. You then move onto C# which expands upon OO and various other paths. Then C++ which is games programming, software engineering and a ton of other stuff. Bloody 'el i'm having nightmares again! C has unlimited possibilities. You'll end up turning into a hobo. Best of luck! Yer gonna need it! 1
LosOjos Posted June 24, 2013 Posted June 24, 2013 Do you have any coding knowledge going in to this or are you going in as a complete n00b? If you haven't programmed at all before, then start off with some basic coding tutorials for your chosen language. It'll give you at least a basic understanding of generic coding principles as well as some specifics in the syntax of the language you choose, both of which will make the relatively complex process of game programming easier in the long run. C# is a good choice IMO as it's what XNA is based on, the framework used to make indie Xbox games and Windows Phone games (both will also run in Windows and the framework ports them automatically for you). Downside to XNA is it's Windows only. Windows Phone Dev Center Java is a good choice for multi platform development and, in my opinion, a nice language to learn. It's very wordy compared to some others, but that's not necessarily a bad thing when you're starting out - it certainly makes code more readable! If you decide on java, then this forum will be a good starting point: Java-Gaming.org - home of the largest java game developer community 1
X-13 Posted June 24, 2013 Posted June 24, 2013 TBH, before you crack on with coding, you need to decide what you want to make. [i'd suggest a platformer.] Then work on it piece by piece. Create a basic "character". Work on movement. Collision detection. Design a basic [useable] level.* Make movement animations. Once you've done that... You've made a game! [Of sorts.] Are you planning to use custom resources [art, music, props and stuff] or pre-made? *This is a lot of work. You need all the assets made and the ability to call and render them WHERE YOU WANT THEM as they're needed. I would NOT suggest rendering the entire level at once, the load times will be long and the memory useage could be high.
Geoff Posted June 24, 2013 Posted June 24, 2013 If you just want to play about with the mechanics of games without worrying about the assets, build the game using ASCII graphics.
LosOjos Posted June 24, 2013 Posted June 24, 2013 (edited) TBH, before you crack on with coding, you need to decide what you want to make. [i'd suggest a platformer.] *SNIP* Personally, I think this approach lines too many people up for disappointment. I'd jump straight in to coding from tutorials, then make something simple like a Space Invaders or Pac Man clone off your own back (obviously by researching the necessary code and techniques, but without following a tutorial). This will give you a good working knowledge of the language and of the concepts of the game loop, of collision detection, of drawing sprites, animating them, playing music, menu routing - everything you'll need to know before you make your dream game. It'll take all the pressure of designing something from scratch off you - you'll actually be able to see the end result you're working towards, then you just need to work out how to get there. Far too many people set out to make the game of their dreams straight away and quickly become disenchanted and give up. Start simple, build up a solid grounding, then try to make your dream game! Edited June 24, 2013 by LosOjos
CAM Posted June 24, 2013 Posted June 24, 2013 I think the assets are the hardest part as it is very easy to look at what you have in beta stages and not get depressed as it looks awful. One reason Dust: Elysian Tail (about one of the biggest indie hits of late!) was so successful was because the developer went from artist to coder instead of the typical other way round. He made the assets as well as code where as you would probably have to get someone to make the assets for you.
X-13 Posted June 24, 2013 Posted June 24, 2013 Far too many people set out to make the game of their dreams straight away and quickly become disenchanted and give up. Start simple, build up a solid grounding, then try to make your dream game! I'm talking about tutorial builds. IMO, a Mario-esque platformer would be good for learning a lot of the necessary game creation principles. Especially if you add enemies and powerups.
Sunnyknight Posted June 24, 2013 Posted June 24, 2013 (edited) Personally, I think this approach lines too many people up for disappointment. I'd jump straight in to coding from tutorials, then make something simple like a Space Invaders or Pac Man clone off your own back (obviously by researching the necessary code and techniques, but without following a tutorial). This will give you a good working knowledge of the language and of the concepts of the game loop, of collision detection, of drawing sprites, animating them, playing music, menu routing - everything you'll need to know before you make your dream game. It'll take all the pressure of designing something from scratch off you - you'll actually be able to see the end result you're working towards, then you just need to work out how to get there. Far too many people set out to make the game of their dreams straight away and quickly become disenchanted and give up. Start simple, build up a solid grounding, then try to make your dream game! Sprites, collusion, music detection is a piece of cake to learn. Under 3 hours and most people can understand it. The difficult thing is to incorporate graphics, EDIT COURTESY OF X-13: PREVENT security holes, and futuristicly clever AI. Edited June 24, 2013 by Sunnyknight
X-13 Posted June 24, 2013 Posted June 24, 2013 The difficult thing is to incorporate graphics, security holes, and futuristicly clever AI. Why would you incorporate security holes?
Sunnyknight Posted June 24, 2013 Posted June 24, 2013 Why would you incorporate security holes? Fail typo. Missed the word PREVENT.
LosOjos Posted June 24, 2013 Posted June 24, 2013 Sprites, collusion, music detection is a piece of cake to learn. Under 3 hours and most people can understand it. The difficult thing is to incorporate graphics, EDIT COURTESY OF X-13: PREVENT security holes, and futuristicly clever AI. Well I'm sure @Rawns won't mind me saying that as he's a n00b to this, "futuristic AI" is a long way off. And BTW, sprites are graphics
Sunnyknight Posted June 24, 2013 Posted June 24, 2013 Christ, i miss out one word and i get slandered for it. Sprities are basic graphics. A dot can be interpreted as a sprite. A line can be interpreted as a sprite. You try calling 3d rendered models a sprite. Yes it's a long long way out, but it's what he should be striving for. To do get as far as that, and not stay 2d, you need a team of at least 5 (as me and my group did in uni and got a A16 (highest grade possible)). Otherwise, 2d is as far as he'll go. Using Engines such as Unreal or Crysis can also help along the way for his game.
X-13 Posted June 24, 2013 Posted June 24, 2013 (edited) Using Engines such as Unreal or Crysis can also help along the way for his game. Not at this point thought. High end, 3D rendered games aren't good for when you're learning coding. Start basic, then work your way up to CryEngine. Edited June 24, 2013 by X-13
Sunnyknight Posted June 24, 2013 Posted June 24, 2013 Not at this point thought. High end, 3D rendered games aren't good for when you're learning coding. Start basic, then work your way up to CryEngine. I know! I know!!! *Bangs head against wall* I I I I I KNOW! lol
LosOjos Posted June 24, 2013 Posted June 24, 2013 Christ, i miss out one word and i get slandered for it. Sprities are basic graphics. A dot can be interpreted as a sprite. A line can be interpreted as a sprite. You can't get p'd off at other people because you weren't clear... it's up to you as the speaker to get your point across, not me the listener to fill in the blanks for you! You try calling 3d rendered models a sprite. I wouldn't, I'd call them 3D models because that's what they are. To do get as far as that, and not stay 2d, you need a team of at least 5 (as me and my group did in uni and got a A16 (highest grade possible)). Otherwise, 2d is as far as he'll go. Well that's just plain false... of course, it'd be easier as a team but it's by no means impossible to make a 3D game on your own. Using Engines such as Unreal or Crysis can also help along the way for his game. I don't think it's in the best interests of anybody who wants to learn to program to start off using a huge game engine. Yeah, you will pick up on some core fundamentals of the language they're based on, but you'll mostly be making calls to routines that are specific to that game engine and useless anywhere else. Game engines are fantastic don't get me wrong, but I wouldn't say they're great for learning to program. It comes down to this: do you want to make a game as quickly as possible, or do you want to learn games programming? The answer will completely change your approach.
Rawns Posted June 24, 2013 Author Posted June 24, 2013 Thanks for all the feedback, indeed @LosOjos, "noob" is a most adequate term here for my level! I completely understand there is no hope of jumping straight into making a game of my dreams here, but half the reason of starting out like this is to learn some new skills. My aim is to learn the basics, grapple with recreating something basic like pong, pacman or pinball, and then continue to try and learn and build on it. When I fell more confident, I will then give making my own game a shot. Like @X-13 suggested, I'll likely go for a platform game of some sort first and then take it from there.
Sunnyknight Posted June 24, 2013 Posted June 24, 2013 Thanks for all the feedback, indeed @LosOjos, "noob" is a most adequate term here for my level! I completely understand there is no hope of jumping straight into making a game of my dreams here, but half the reason of starting out like this is to learn some new skills. My aim is to learn the basics, grapple with recreating something basic like pong, pacman or pinball, and then continue to try and learn and build on it. When I fell more confident, I will then give making my own game a shot. Like @X-13 suggested, I'll likely go for a platform game of some sort first and then take it from there. That will take you, with a correct mindset, a week to get pingpong or pacman. To learn C#, you can't. It's endless.
Rawns Posted June 24, 2013 Author Posted June 24, 2013 To do get as far as that, and not stay 2d, you need a team of at least 5 (as me and my group did in uni and got a A16 (highest grade possible)). Otherwise, 2d is as far as he'll go. While I'm years away from the same level, the guy who made Dead Cyborg all by himself managed 3D alright. Not Unreal engine quality, but still none too shabby.
LosOjos Posted June 24, 2013 Posted June 24, 2013 That will take you, with a correct mindset, a week to get pingpong or pacman. To learn C#, you can't. It's endless. A week to make a game start to finish with no background knowledge of the language? Sounds legit.
Sunnyknight Posted June 24, 2013 Posted June 24, 2013 Well that's just plain false... of course, it'd be easier as a team but it's by no means impossible to make a 3D game on your own. Yes, and the quality of the 3D game would be reflected against that of a teams.
X-13 Posted June 24, 2013 Posted June 24, 2013 (edited) recreating something basic like pong, pacman or pinball Do all 3. In that order. Pong > getting everything on screen, movement, collision and basic +1 scoring Pacman > enemy ai, damage/health and resetting the level Pinball > more advanced physics and it should help you learn how to structure layouts. [if the pinball map is laid out badly, it won't be playable.] A week to make a game start to finish with no background knowledge of the language? Sounds legit. You ninja'd me while I was typing, good sir. Edited June 24, 2013 by X-13 "resetting the level" not "respawning"... you don't want to respawn into a ghost.
Sunnyknight Posted June 24, 2013 Posted June 24, 2013 A week to make a game start to finish with no background knowledge of the language? Sounds legit. I did. Not rocket science. You get a book, you turn on the pc, download whatever program you're comfortable using, and you follow the steps. Ta.....da.....
X-13 Posted June 24, 2013 Posted June 24, 2013 I did. Not rocket science. You get a book, you turn on the pc, download whatever program you're comfortable using, and you follow the steps. Ta.....da..... Copying code != learning how to write code
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now