First Game

Started by
12 comments, last by Brain 9 years, 5 months ago

Hey everyone! I want to first of all say thanks to everyone, I've read a lot of threads on this site and posted a question or two and so far I've learned a lot.

I am a new programmer, I've only been programming for about a year, but a lot of that was developing with T-SQL and C# was kind of on the back burner as I was doing a lot of SQL stuff for work. Now that I have more time to focus on C#, I've given myself the challenge of a long term gaming project. I plan on creating a 2D, SNES-style RPG from the ground up. Not only do I hope to gain more knowledge and experience in C# coding but I also hope to have fun and really enjoy creating this.

Every day I come here and search the internet for anything that can help me, and I guess I'm to the point where I need to decide what tools I'm going to use to create this, and start learning how to use them. Is it beneficial for me to use something like Unity, or one of the other game engines, or will that take too much of the "hands on" experience that I may need to help further my programming knowledge. If I should stick to just programming a game in Visual Studio, what are some good resources on "how to's" with working with the gaming side of C#? I do have a copy of the book Learn Unity for 2D Game Development, as well as Game Coding Complete, but if there are any better resources out there for a beginner in the game dev world I'd appreciate a heads up.

I figure Unity will give me tools to make the job easier, but still require me to work heavily with classes and methods and a lot of the behind the scenes stuff. I'm not too worried about learning everything there is to know about game development/engines as I plan on sticking with Business-side programming and keeping game development as a fun hobby. Any suggestions or advice is much appreciated!

Advertisement

Well, I am a business Programmer that started the (kinda) same route some years ago.

I went with an engine early, and amassed 3 years of expierence with Unity now in total. I did do some "from scratch" programming during University though when I wrote a game with other students (that in the end kinda failed because of severe performance problems... which was kind of enlighting anyway. Many mistakes to learn from smile.png )

Having said that, I aimed for a 3D game from the start, and wanted to really get my fet wet with developing a game and not get bogged down with Engine development or 3D Graphics programming. That is why I choose to go with a 3D Engine from the start. I still think this was a fine idea, as up to this point there is nothing I really miss from Unity as long as you are ready to either shell out some bucks for 3rd party assets or wait for the next Unity version to (maybe) bring the missing functionality.

Your case might be different though. Be aware that altough Unity is quite fine for 2D development, it will be quite overkill for simple 2D games, and you get lots of stuff with the engine that is specific to 3D development.

There are other, simpler, more 2D specific engines out there that will do just as fine for your use case. If you don't know where to look for them, head over to devmaster.net and have a look at their engine DB.

Or follow the herd and have alook at Gamemaker. No expierience myself with it but it gets highly recommend most of the time for 2D RPGs.

Of course, giving your rather modest goals (2D SNES Style -> low Resolution, simple animations, thus most probably not taxing for either CPU or GPU), you might be able to achieve quick wins when writing it from scratch. And at the same time learn something about Graphics Programming and other valuable lessons (that I skipped, and might regret missing one day ;) )

Thanks for the advice. I have read more of Game Coding Complete and I feel it is more geared towards someone who wants to be an actual game developer by trade, or someone who has more experience in developing. I will put that book to the side for now. After reading the introduction to Unity for 2D Game Development I found out that book is geared towards someone who knows how to use Unity, so I may start with another Unity book and then transition into 2D development.

I will also check out some other engines. I do feel that making my own engine is a little to advance for me at the moment and I should focus on other things at the moment.

I have not used any C# engines except Unity, but I did a quick search and didn't see any that I have heard of. I don't think using Unity from the start is really a good idea. There are lots of things it does for you, but unless you understand what it is doing behind the scenes, you will not be able to fix the problem when you finally have one.

Using an engine is not about have all the code mysteriously hiding behind the curtain so you don't have to know how it works, it's about having it already coded, debugged, tested, and ready to go. You trade some flexibility for not writing all that bootstrap code yourself. It handles deployment to many devices, manages resources, gives you an editor, debugger, and all kinds of great tools. But you really need to know how everything works before using an engine.

I will suggest the same thing I tell everyone starting out. Do it from scratch.

http://web.archive.org/web/20051104034215/http://www.lupinegames.com/articles/path_to_dev.html


I plan on creating a 2D, SNES-style RPG from the ground up.

If you have never made a game before, this is way too much to try for a first time. What happens is you will get frustrated because you are trying to do too much, and possibly just quit trying to make games. (Can't have that, because you may the person to make the next greatest game ever.)

Pick a simple 2D engine and try to make Tetris.

You can use unity, but some other choices are:

SFML - http://www.sfml-dev.org/

cocos2d-x - http://cocos2d-x.org/products#cocos2dx

libGDX - http://libgdx.badlogicgames.com/

I think, therefore I am. I think? - "George Carlin"
My Website: Indie Game Programming

My Twitter: https://twitter.com/indieprogram

My Book: http://amzn.com/1305076532

Of course, giving your rather modest goals (2D SNES Style -> low Resolution, simple animations, thus most probably not taxing for either CPU or GPU), you might be able to achieve quick wins when writing it from scratch. And at the same time learn something about Graphics Programming and other valuable lessons (that I skipped, and might regret missing one day ;) )

Okay, reading Glass_Knifes post and then re-reading my own I feel compelled to post a little "additional disclaimer" to my statement above.

When I say "quick wins" its not meant as "some minutes of coding and your up and running".... even something simpler will take you quite a while to write and test, and SNES Style graphics, while not taxing on the hardware, are still more complex as 1st and 2nd console gen Games like Pong or Breakout.

Quick wins in this context means "You will not spend 2 years writing the engine alone"... which is basically already quite quick, if we are talking about a full 3D engine written by a single guy :)

And then comes the justified point of your expierience level... yes, for a complete game dev noob writing even a simple isometric 2D game will most probably be a gargantuan task! You will be able to fail quicker (and thus learn from mistakes faster) with even smaller games. And maybe you get some successes along the way for the much needed morale boost.

Another point you have to be aware of is, while the graphics and sounds of SNES era RPGs are simple (compared to todays AAA games), the scope of some of these games was quite EPIC, spanning maybe 80 hours of gameplay in total. If you are not able to write clever procedural generation scripts, you will have to either compromise (write a much shorter adventure), or you will have to design all the dungeons, world maps and towns for this epic adventure yourself... which again will cost you lots of time. Level design itself can be quite time consuming.

And the procedural systems I talked about are a topic for an advanced programmer again, don't even try until you reached that level, as it can be quite complex to come up with a good system.


And then comes the justified point of your expierience level... yes, for a complete game dev noob writing even a simple isometric 2D game will most probably be a gargantuan task! You will be able to fail quicker (and thus learn from mistakes faster) with even smaller games. And maybe you get some successes along the way for the much needed morale boost.

I just made Tetris using Unity to see what it would be like. I spend about two weeks watching the tutorials and videos after work, and then made Tetris in a weekend. But the whole time I was thinking that a beginner is not going to understand how to use this thing or why the drag and drop script integration with the IDE is so cool. If I had tried to pick this up without understand games it would have been difficult.

I'm not saying not to use it, but it could do more harm than good depending on the experience level of the user.

I think, therefore I am. I think? - "George Carlin"
My Website: Indie Game Programming

My Twitter: https://twitter.com/indieprogram

My Book: http://amzn.com/1305076532


If you have never made a game before, this is way too much to try for a first time. What happens is you will get frustrated because you are trying to do too much, and possibly just quit trying to make games. (Can't have that, because you may the person to make the next greatest game ever.)

Thanks for the advice. I mentioned that this is a long term project and I expect to do a lot of playing around and testing with smaller "games" as I get use to game development. A fully playable RPG is the end goal in mind but I never planned on waking up tomorrow to start working on it. I planned on getting use to unity (or whatever environment I decide to use) with a few small/simple games, and then work my way up to a single screen RPG, with no point but to test a few things (like random battles and being able to walk around/talk to people/interact with objects like switches and treasure chests). Once I feel comfortable with it all, I would then turn my focus onto the full game. In the mean time, I will work on the non-programming stuff like pixel art and writing the story/flow of the game.


or you will have to design all the dungeons, world maps and towns for this epic adventure yourself... which again will cost you lots of time. Level design itself can be quite time consuming.

This is what I plan on doing. I've enjoyed writing and drawing growing up having written a few short stories and half of a novel recently. I am currently teaching my self to draw pixel art and plan on creating everything from this game from the ground up. Story telling is something I really enjoy. I know that it is a huge task to take on, but again for me that's the fun in it.

Again, I'm not trying to jump into it full force and complex without any experience, I do want to work on some smaller projects, work through a few gaming books and get comfortable and then work my way up to a more complex game. As I've mentioned, I've learned a lot in the past few days already, been working on sample code to accomplish certain ideas and researching a lot. Thanks everyone for your advice!

This is what I plan on doing. I've enjoyed writing and drawing growing up having written a few short stories and half of a novel recently. I am currently teaching my self to draw pixel art and plan on creating everything from this game from the ground up. Story telling is something I really enjoy. I know that it is a huge task to take on, but again for me that's the fun in it.

Again, I'm not trying to jump into it full force and complex without any experience, I do want to work on some smaller projects, work through a few gaming books and get comfortable and then work my way up to a more complex game. As I've mentioned, I've learned a lot in the past few days already, been working on sample code to accomplish certain ideas and researching a lot. Thanks everyone for your advice!

If this really will be a longterm project for you, you might want, after you learned the basics, and feel comfortable with unity (given you invest the time to learn its features, it really is a powerful tool), invest some additional time thinking over you options before embarking on "your quest".

There are certain pros and cons to different ways to approach your task, and you should really think through what you can compromise on, what will support your vision better before you commit to something. Maybe even start a small mini project to test your ideas (Vertical slice) to see if your decision is a good one.

Examples for topics to really think through:

1) 2D vs. 3D: I know, the general word is 2D is easier than 3D.... though this is only one part of the story. Truth is, 3D always has some overhead, because there are more minimal steps involved to get something working. Thus for SIMPLE graphics, 2D will be clearly far easier to get your graphics for.

This all falls down somewhat when you start using isometric views, and want good looking animations for your characters. AAA Quality 2D Graphics is just as expensive and time consuming as AAA Quality 3D Graphics, if not more.

You should really think about what you want to achieve here. If you want to stay as true to retro graphics as possible (for example SNES Era)... go with 2D, maybe even with pixelgraphics.

If you just do that because you think it will save you time and money, or you are trying to go for the best 2D Graphics you can achieve, really think hard about why you wouldn't want to give 3D graphics a try.

Lets be honest: AAA graphics are out of the reach of any Indie. Creating beatiful HD 3D models is a huge timehog, and needs and aweful amount of skill, or money if you buy stock art.

Simpler 3D graphics are not THAT hard to achieve though. And there are a lot of people that are decent at 3D Modelling, but can't draw at all. It might be that your target art style can be achieved easier in 3D than trying to do it the 2D way.

The good news is: if you learned to use Unity, you have both options. You can try out what will fit your project better.

2) manually build vs. procedural content: this can REALLY cut your work in half (or even more), while giving you the ability for additional gameply options (procedural dungeons come to mind).

True, you will have less control over the final outcome, but there are many ways to utilize procedural content. The extreme, having dungeons and levels be procedurally generated during the game, is only one option. You will already gain a lot of productivity by letting a procedural generator generate your level in the Unity editor, giving you still the possibility to give your generated level a manual finish after.

For some things, procedural generation can even achieve results that are near impossible by hand. I for example run all of my roughed out level terrains through a World Machine network that will create beatiful heightmaps with realistic erosion out of a rather naff and rough input heightmap.

Good news here is: there are a lot of free or not-too-expensive tools for procedural content generation for various tasks on the market, as well as Unity plugins for ingame procedural creation. You do not have to write everything on your own.

These are just examples. There are other things you will have to think through... but of course, you will have some basics to learn before these questions really matter.

Just be aware you are talking about a project here that will take you years to complete. It might be a fun journey, but it will be a long one. All left to say is: Good luck on your journey, and enjoy the ride! :)


go with 2D, maybe even with pixelgraphics.

That's my plan. I love the pixel graphics of the "retro" games. I don't think it will save me time, in fact I think it may be a little harder than anything else but again, the end result will be worth it.

I will say that because this is a long term project my plans and end result could change/adapt in time. I'm watching a few video series on Microsoft Virtual Academy that talk about game development for beginners and I'm also reading a Unity book that talks about 3D development, as this book is a prerequisite for my 2D unity book. Its going to take me months to even get to where I can "Begin" this project and I hope to have a few small games under my belt by then. Who knows where this will take my and my idea my change into something else. Time will tell.

As always, Thanks again!

That's my plan. I love the pixel graphics of the "retro" games. I don't think it will save me time, in fact I think it may be a little harder than anything else but again, the end result will be worth it.

I will say that because this is a long term project my plans and end result could change/adapt in time. I'm watching a few video series on Microsoft Virtual Academy that talk about game development for beginners and I'm also reading a Unity book that talks about 3D development, as this book is a prerequisite for my 2D unity book. Its going to take me months to even get to where I can "Begin" this project and I hope to have a few small games under my belt by then. Who knows where this will take my and my idea my change into something else. Time will tell.

As always, Thanks again!

Well, never forget that you have options today:

- creating that Pixel graphics looks by creating a 3D Scene and use a pixel filter postprocess effect on it. Advantage: buttersmooth animations without lots of frames to draw, a fully 3D environment. Cons: Hard to get the whole thing to REALLY look like a 199X Pixel Graphic RPG, finding / writing a good pixel filter effect is paramount to its sucess.

- using 2D bone animation: A good way to get around having to paint multiple frames for your characters. Cons: While it can look decent for a sidescroller, almost impossible to pull off for an isometric title

- Mixed 2D / 3D world: this is more what happened later in the PS / PS2 era, but mixing a 3D environment with 2D sprite characters can give your game an interesting character. You will need to carefully tweak textures here to match them to your sprites.

So learning the basics of 3D graphics and animations might help you later on, when you want to take your original 2D Idea in a direction that pure 2D cannot support anymore.

Anyway, I don't want to persuade you away from 2D anyway. I love to play my old SNES games still, so I can understand the urge to put out something just as pixely smile.png

This topic is closed to new replies.

Advertisement