• Advertisement

First steps

Recommended Posts

Hi everyone,

This is my first post, after lurking for some time I finally signed up.

I was looking for some advice and thought that maybe I could ask here for some help, in how to approach game development, 2D in this case.

I'm a programmer, I have been programming for 2/3 years or so, and I'm fairly confident in some of my skills, I've worked with Java mostly, a bit of C#, and a bit of Python, mostly in my spare time or small projects for work.

My experience with game development is fairly short, I had a Unity course in college, it was very short and not too complex, and with my final project, in which I made an endless runner, using LibGDX, but this was mostly following a tutorial.

The thing is, now I want to start again with game development, and I'm not sure what would be the best way to approach it in the long term.

Since I'm a bit experienced with programming, and I want to learn and understand a bit of what I'm doing, I didn't want to go with a full engine, like Unity or Unreal, and in my ignorance, since the project I want to make is something like a Zelda clone(A Link to the past) or a Metroidvania, I kept going back to frameworks.

I know of LibGDX since is the one I worked before (but there's always the stigma against Java), Monogame, which is the one I heard the most for published games (but I'm not sure how it compares to LibGDX in terms of how much low-level things you have to do), Haxeflixel and Love2D, of these two I don't know how low level they are, or what tools they have.

I get that my idea is fairly simple, and most of these frameworks or engines will work, but since I want to learn in the long term, I'm not sure what to pick, I don't want it to be so drag-and-drop like let's say GameMaker, but I don't know how wises it would be to start with something so low-level-ish, since it could be frustrating, and my goal is to actually make games.

So I'd like to hear your opinion guys, and any other idea you may have, I'm not that knowledgeable in the topic so I'm all ears.
I hope I get my idea through, sorry if my English comes a bit rough.

Thanks everyone in advance, 

Share this post


Link to post
Share on other sites
Advertisement

look i know a little about what i have read...i havent done any degree just self taught but i have a problem of learning a little and getting frustrated and moving on,but thats my problem...i got pretty far with python and pygame but hit a brick wall due to my lack of understanding of OOP i then switched to java and learned a lot about oop but didnt really try anything with libgdx though i have read its very good....im now giving html,css and js a go as it fits more in my future plans,but all this aside i know that it comes down to this:

do you want to work in the gaming industry professionally or just as a hobbyist hoping you will make an indi hit?

if you want to work in the industry the two main choices are c++ or c# and unity

the latter is to use anything that works and gets you the result.

nice to meet you...hope we can chat again.

Share this post


Link to post
Share on other sites

With your experience and for 2D game development I would recommend checking out MonoGame. It's a C# framework that does well with 2D games but it's basic enough that you'll learn a lot about the development process when making one. If you start to get comfortable with C# enough to move into a more advanced application I would actually recommend moving to Unity at that point. Although Unity does take care of quite a bit of the work under the hood with C++, it is precisely that which will enable you to focus on the design and production of a game rather than the technical aspects of the engine. If it's the engine programming itself that interests you then I'd recommend learning C++ in depth as it is highly optimized and all the low-level graphical APIs are written in it.

Share this post


Link to post
Share on other sites

In an early mathematics course you likely learned that the shortest path between two points is a straight line.  The hardest thing to do as a self-motivated programmer is to get from point a to point b.  If I was you I would find the tool that you believe gives you the simplest path toward completing your game.  Don't worry about the learning experience.  You will learn plenty along the way no matter which path you take.  It will be enough your first time through to learn your own strengths and weaknesses as a developer.   

To make a long story short forget about the stigma around Java if you already know the language and you are proficient use it.  If you are comfortable with C# and feel it has a better set of tools then use em.  Either path you take you will hit roadblocks and overcome them.  The lessons  you learn about general game development will likely be more valuable than any language or library specific lessons.  The lessons you learn about project management and general problem solving  will likely be even more valuable than those.   So don't sweat the language and library so much.

Have fun and be successful!

Bullet_Proof

Share this post


Link to post
Share on other sites

Thanks everyone for the help!

On 28/11/2017 at 12:26 AM, Warren Brandt said:

look i know a little about what i have read...i havent done any degree just self taught but i have a problem of learning a little and getting frustrated and moving on,but thats my problem...i got pretty far with python and pygame but hit a brick wall due to my lack of understanding of OOP i then switched to java and learned a lot about oop but didnt really try anything with libgdx though i have read its very good....im now giving html,css and js a go as it fits more in my future plans,but all this aside i know that it comes down to this:

do you want to work in the gaming industry professionally or just as a hobbyist hoping you will make an indi hit?

if you want to work in the industry the two main choices are c++ or c# and unity

the latter is to use anything that works and gets you the result.

nice to meet you...hope we can chat again.

I would say that working in the gaming industry is more of a dream haha, for the time being, I'd like to start from something and make a game because I enjoy it.

I don't know C++, I guess I'd have to learn it at some point, I guess for the time being C# sounds good.

Thanks for the help! Nice to meet you too.

 

On 28/11/2017 at 12:48 AM, cjmarsh said:

With your experience and for 2D game development I would recommend checking out MonoGame. It's a C# framework that does well with 2D games but it's basic enough that you'll learn a lot about the development process when making one. If you start to get comfortable with C# enough to move into a more advanced application I would actually recommend moving to Unity at that point. Although Unity does take care of quite a bit of the work under the hood with C++, it is precisely that which will enable you to focus on the design and production of a game rather than the technical aspects of the engine. If it's the engine programming itself that interests you then I'd recommend learning C++ in depth as it is highly optimized and all the low-level graphical APIs are written in it.

 

I've seen Monogame, I was kinda afraid of not knowing how low-levelish it was, and if maybe in my inexperience it would be too much for me, but I guess I am going to give it a try!

I would like to work with Unity or Unreal with some bigger projects, but eventually haha.

Thanks for the suggestions!

 

On 28/11/2017 at 3:21 AM, Lucas_Cage said:

In an early mathematics course you likely learned that the shortest path between two points is a straight line.  The hardest thing to do as a self-motivated programmer is to get from point a to point b.  If I was you I would find the tool that you believe gives you the simplest path toward completing your game.  Don't worry about the learning experience.  You will learn plenty along the way no matter which path you take.  It will be enough your first time through to learn your own strengths and weaknesses as a developer.   

To make a long story short forget about the stigma around Java if you already know the language and you are proficient use it.  If you are comfortable with C# and feel it has a better set of tools then use em.  Either path you take you will hit roadblocks and overcome them.  The lessons  you learn about general game development will likely be more valuable than any language or library specific lessons.  The lessons you learn about project management and general problem solving  will likely be even more valuable than those.   So don't sweat the language and library so much.

Have fun and be successful!

Bullet_Proof

That's a great advice, you are right, I guess is always the fear of doing things wrong, and trying to make everything perfect from the get-go, but it's right, the best thing would be to just start.

Thanks a lot, as a beginner, it's great to hear from others.

 

Share this post


Link to post
Share on other sites

Well as far as I have read in the two books that I have bought (C++ and C#) I made my decision based on this simple question:

Do you want the most people possible to be able to play your game?

If your answer is yes, then you may want to learn C++ and at least understand it.

As far as I have read in the two books I bought I realized something. I fit into a category of gamers who have no money. So we have what ever it is that we do have. Which means we don't have a lot of "memory."

So because I do not have a computer that is able to run all of the latest games like Watch Dogs 1, or PUBG, I wanted to learn how to make games that would allow everyone to play it. Sacrificing in return those awesome graphics for more of a gameplay angle.

Which to me it sounds like you love 2D which is awesome btw!

But my suggestion still stands. learn both languages for when something crashes. I am by no means an expert. if anything you have way more experience than I do in coding, but I do not know how far you are in graphic design, music, and story telling.

That is my perspective on it at least.

Share this post


Link to post
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now


  • Advertisement
  • Advertisement
  • Popular Now

  • Advertisement
  • Similar Content

    • By Snaked
      Im working in this project for 1 year .... mostly i develop a tool and databases for make the different maps and now i'm doing the client for play the game
      Tell me if you like it......
      this is a capture of how is viewing atm

       
       
      https://youtu.be/9251v4wDTQ0
    • By RoKabium Games
      Another one of our new UI for #screenshotsaturday. This is the inventory screen for showing what animal fossils you have collected so far. #gamedev #indiedev #sama
    • By Dave Haylett
      Hi everyone. I need some help with my project. It's a 2D-graphics-heavy WPF front-end app written in C#, which talks to two Access 2000 databases (yes I know, it's all I've got). It will be distributed freely on the internet, and so will be being used by Windows users of various installations/versions of Windows, Office, etc.
      One of the two databases (let's call it A), is intended to be read-only, and will be distributed with the app. It has half a dozen relational tables which I as the developer have populated, and is connected to in the app via OleDB Jet 4 with SQL querying the data now and then as the user uses the front-end. The database will be replaced whenever I release an update to the app.
      Database B is read/write, and contains end-user preferences, for example when they favourite something in my front-end, a Favourites table in here gets appended to. This database is not distributed with my app, and should not be overwritten, as it will lose user prefs, etc. and annoy my users.
      Whenever my app is run by a user, during initialisation database A will suck in the user data from database B (using simple SQL SELECT * INTO...), so that all the tables can be joined together by the SQL in database A (to include user prefs/favourites in SQL queries), and whenever the user favourites something, a record is created both in A (for the short-term session) and B (permanently). Database B isn't just about holding favourites, there is other user data in here as well, so there are 3 or 4 tables in B.
      So far, this is all working fine and I'm happy...
      Unfortunately my app is currently 32-bit, and it now needs to break the 32-bit memory barrier what with the size and volume of the graphics I'm pulling in (using the HDD is not really an option, as different graphics are needed kind of instantly and the hard disc would be being hosed and the app dog-slow otherwise, I suspect even off an SSD).
      I'm using VS2015, and switching to 64-bit will probably fix the memory problem, but it breaks Jet 4.0. I'm sure this is old news to most of you.
      To try to keep with 32-bit (and Jet4) but get the memory I need I've tried the -largeaddressaware toggle, and I've tried the editbin suggestion, but I just can't get these solutions to work in VS2015 no matter how hard I try. Are these definitely 100% solutions to 2gb memory limit in 32-bit applications? Should they always work? Am I dumb in being unable to get this to work?
      So otherwise I'm resigned to migrating to 64-bit, and having to get around the database issue, not the memory issue.
      My users will be using a variety of Windows versions (probably 7 and 10), and I'm sure various versions of Office, and so my solution for querying my two Access databases needs to be pretty open if possible.
      Googling has suggested I switch from JET4 to ACE12, but this is apparently requiring me to uninstall Office 2000 and install a 64-bit version (which I don't have), so I can't use it, and I suspect any users who also have an old version of Office installed won't be able to use it either?
      Googling has also suggested I use MS SQL Server. This sounds fine if there's such a thing as a "lite" local version which can manage database access, but I still need to somehow get the data from the databases (A.mdb and B.mdb) into the SQL Server each time the users fire up my app.
      The only solution I can think of at the minute, is to export all the tables from database A into CSVs every time I update the data in there, and have the app import them in a lame way, and also convert database B into some crappy text file which gets written to whenever the user changes a preference. I'd much rather use SQL to do all this if possible, as when the user browses around the app, queries involving joining several tables in A are regularly created and executed to adjust the user's experience/return search results/etc.
      So to summarise my misery, is there either an easy reliable way for me to keep with 32-bit/Jet4 and be able to address >2gb. Or is there instead an easy reliable way for me to switch to 64-bit and successfully query two Access databases without requiring all my users to have 64-bit Office installed?
      Thanks for reading and I hope someone can help.
    • By Alexander Winter
       
        Jumpaï is a game about creating platformer levels and playing them online with everyone. Will you become the most popular level maker or will you be a speedrunner holding world records on everyone's levels? More into casual play? No problems! You can happily play through the giant level database or chill at people's hub. Meet new people, make new friends, learn to master the game by asking pros or ask for people's favorite tricks on level making.  





      Unlike other games of its genre, Jumpaï is about playing levels with everyone in real time. You have the fun to see how other people are playing and get to realize you are not the only one failing that jump!

      The game is currently into development and still have lots to do. I am looking for people willing to help how they can. Developer? Graphist? Play tester? Sound designer? Game designer? I'm welcoming everyone. The project is so big I have a lot of work to do in all areas. Server backend, UI/UX, Game networking, Gameplay and even the website some day. As you can see from the default buttons, the game has been made with LibGDX. 

      If you plan to take an important role into the development of the game, we will discuss how you will get paid once the game generates money. Note that I'm not working on the game full-time. I'm studying full-time and working on it is a hobby. It's been 14 months since it started.

      So, are you interested? If so join me on my discord https://discord.gg/dwRTNCG and I'll answer all your questions.

      Additionnal screenshots:
       



    • By Gabriel Gonzalez
      Hi everyone, my name is Gabriel and this is my first post here. I graduated from college over three years ago with a degree in Physics and now I want to start a career as a gameplay programmer. Besides a single C++ programming class in college I have not had any prior experience programming. What I have done to learn until now is to use SFML to recreate Arkanoid and Space Invaders. My question is, am I on the right track if I just continue creating games from scratch using libraries such as SFML or would I benefit more if I move on to using an engine such as Unreal or Unity? Also, of how much help (if any) would my degree be when trying to join a team? I live in San Diego, CA if that matters at all.   I do appreciate in advance any guidance anyone could offer me.
  • Advertisement