Game development and engine decision

Discussion in 'General Discussion' started by thedigit, Jul 1, 2013.

  1. thedigit

    thedigit Space Spelunker

    Hey,

    I'm a software developer who has wanted to experiment with game development for YEARS. I have been looking for a game like stardew valley and nothing has ever been available. Needless to say, I am super excited for this game and eagerly awaiting a pre order option so I can show my support!

    That being said, the developer inside of me is very curious... And I still eventually want to dabble in game development as a hobby. If you don't mind me asking a few questions I would love some answers...

    1. What program do you write games like this in?
    2. Is the a particular engine you are using or do you code from the ground up?
    3. Is there any advice you could give a senior software developer who wants to dabble in game development? (I use OOP everyday and normally code in c, c# or vb.net)

    Thank you in advance!
     
    • thedigit

      thedigit Space Spelunker

      Sorry, typo on phone for question #1. Should be, What language do you develop games like this in.
       
      • Active Link

        Active Link Master Astronaut

        You can edit your posts.

        Also, as for the question. C++ is a common standard among AAA studios, and allows a great amount of code portability (If you know what you're doing). Many indie devs use C# for various reasons, iirc it can be more beginner-friendly. You can also use java, though it's much less common (ex: Minecraft).

        I'm pretty sure ConcernedApe is using C#.

        A good way to get into game development (Especially if you already know how to code stuff) is to start with modding games and work your way up.
         
        • oath2order

          oath2order Parsec Taste Tester

          Yeah, CA is definitely using C#.
           
          • thedigit

            thedigit Space Spelunker

            Thank you for the advice. Active Link. I have already done some mods for WoW and a couple other games, but they dont really touch on sprite animations or the core logic (like saving and loading). Also, And clue what engine he would use?
             
            • Active Link

              Active Link Master Astronaut

              CA hasn't mentioned what engine he's using. It could be his own custom engine for all we know.
              If you already have that experience you might consider something like GameMaker (Which is greatly underrated, Wanderlust: Rebirth and Risk of Rain both use this) or Unreal Development Kit (Very popular with Indies, probably a lot of information to be found on the net). It's like learning your first programming language, start small and build up. I'm not much of an art guy, but you can look up tutorials on the internet. I've heard Pant.net is a good free alternative to an expensive graphic design program. You can probably take a look around the Starbound forum art sections for tutorials and other info.
               
              • thedigit

                thedigit Space Spelunker

                Thank you sooo much! I'm going to look into those engines now.
                 
                • claudekennilol

                  claudekennilol Space Kumquat

                  He has, it's XNA. If you're going to use c#, I suggest using MonoGame instead of XNA as it's not abandoned like XNA is and portable between systems. If you prefer Java, I suggest looking into the PlayN framework.

                  Also, I suggest not using GameMaker. It's severely limiting. Yes, Risk of Rain uses it, yes they did an awesome job. I would have loved to have seen what they could have accomplished, though, if they had not used GameMaker to build it. Don't get me wrong, it's a good tool--for prototyping. Even Unity is too limited in what it says it can do. You're better off not using a "program" to make your games in.
                   
                  • ConcernedApe

                    ConcernedApe Stardew Valley Dev Developer

                    Hi thedigit!

                    I am using C# as the language (using XNA) and Visual Studio 2010 as the IDE. I draw most of the graphics in Paint.NET, and create all the music and most of the sound effects using Propellerhead Reason 4.0.


                    I've been coding Stardew Valley mostly from the ground up, using my own custom engine. There are certain features of the game that I've started to use 3rd party code for, however... for example, the low-level network functions for multiplayer. Also, XNA is kind of like a mini-engine, as it does take care of a lot of low-level stuff that would be a pain to do yourself (like taking an image you drew, importing it and turning it into an object you can work with in your code)... although it is all extremely general and could form the groundwork for any kind of game you'd imagine.


                    Unless your game cannot be made otherwise, definitely use something like GameMaker. I know there might be an urge to prove oneself as a "real programmer" by making everything from scratch, but in the end it's not really worth it and it will drain months of your life for no good reason. Of course, some projects are just too grand or unconventional and could not be made using gamemaker. I'm still not quite sure if I could've made Stardew using something like that, but it's too late now anyway... and true, now that I spent all the effort to do it myself the extra control and flexibility is nice. But if you are just starting out in game development you should probably be making small, simple games anyway.


                    Also, if you plan on doing your own graphics... practice like crazy, study other games closely and think hard about what makes you like/hate their graphics. After dabbling for a while so that you have a mental framework to start from, read some pixel art tutorials. (here is a good one, although a little brief: http://www.pixeljoint.com/forum/forum_posts.asp?TID=11299).

                    Another thing... analyze games closely to figure out what's fun and not fun about them... you want your game to be fun!

                    Good luck, and let me know if you have any other questions!
                     
                      Byakuren, ChocoCoco, Typhoon and 4 others like this.
                    • thedigit

                      thedigit Space Spelunker

                      ConcernedApe, I posted here and never expected to get a reply from you! Thank you for taking the time to set me straight. Since this morning I have started a game using MonoGame and XNA and developing it with vs2010 and c#. So far I have a couple screen managers and a title screen. I'm not looking to make anything quick, and am thoroughly enjoying this learning curve!

                      This week I plan to get something together that allows me to draw a sprite and move it around. Though the "camera" idea still confuses me.

                      I can't wait for stardew valley to release :) I refresh your home page every day looking for updates!
                       
                      • claudekennilol

                        claudekennilol Space Kumquat

                        Like CA suggested. Paint.NET is an excellent tool if you need to get sprites together. I suggest getting http://www.ludumdare.com/compo/2011/04/27/my-paint-net-plugin-sprite-sheet-animation-helper/ the pdn (pdn = paint.net) plugin there for animation help. I've used a few different ones and that one was by far the most intuitive/easy to use.

                        One thing about your post that makes me think twice, you really shouldn't be using both XNA and MonoGame, as MonoGame is just a replacement for XNA ('just' used lightly, as it does other stuff, too, obviously).
                         
                          ConcernedApe likes this.
                        • thedigit

                          thedigit Space Spelunker

                          I'm coding in xna now, planning to converting to monogame later on. Thanks for the link to the pain.net template.
                           
                          • ConcernedApe

                            ConcernedApe Stardew Valley Dev Developer

                          • Xeno Aura

                            Xeno Aura Void-Bound Voyager

                            I use GM Studio for my games, and Paint.Net for my graphics, I can highly recommend both programs for use.

                            With the recent improvements in GM Studio, such as a new compiler, GL shader support and in-built multiplayer functions, it's a lot better than GM's in past years, the engine doesn't crash if you try and create a moderately large area to play in, like it used to.

                            It costs a bit, I believe $100 for the version of Studio with the possibility of exporting to multiple platforms, but if you have some cash, and not a great deal of time to learn something like C, it's probably the best alternative. GM is also available on Steam, so if you wait a bit, when Steam have their summer sale, Studio will most likely be 33-50% off, and YoYoGames did a sale last year to coincide with the Steam Summer Sale, so keep an eye out.

                            Only thing GM probably can't handle, is a large open world game, as it uses "rooms" for the world, which tend to have performance issues if they're over 16000x16000 pixels large, although some clever design could make the player seamlessly travel between these rooms, without their knowledge. Or alternatively, a space game with "sectors" restricting movement, would also be possible.
                             
                            • Fricken Hamster

                              Fricken Hamster Aquatic Astronaut

                              I started out programming in Gamemaker version 6, before the Yoyogames acquisition.

                              Its a neat program to start out in, but looking back now, there's no way I would ever return.

                              In terms of functionality, for a lot of games, gamemaker would probably work alright. Even if you're trying to create a very large world and trying to fit it all within a room, you'll find problems handling a lot of very large bitmaps with most game frameworks. The workaround you come up with will end up being decided by your own ingenuity. For this problem specifically, you can look at what specifically needs to be shown on the screen to make the illusion that the player is in a massive world. Is it tile based? In that case you can have one bitmap a little bit bigger than the screen and update the bitmap, drawing in blank spaces as needed.
                              If you look in the advanced topics in the gamemaker forums, at least back when I went on there, a lot of the topics end up dealing with logical challenges like that.

                              All the builtin functions of gamemaker are tailored very specifically towards certain types of games, and a lot of the basic functionality can be made in a few lines of code.
                              For example, every object has a x value and a xspeed variable.
                              the x value is incremented by the xspeed value every step,
                              you can easily program this in yourself by putting x += xspeed
                              But what if there were certain times you didn't want the character to move even if the character is in a moving state (such as a pause screen)?
                              If you were using your own variables you could just do
                              if (move) x += xspeed, however if you were using gamemaker's built in functionality, you'd probably have to set move speeds to 0 when you pause, and reset it back to whatever it was.
                              This approach ends up being a lot harder to work with. In fact, a lot of questions asked on the forums used to require gameplay functionality created directly for that type of game, else you'd be making workarounds.

                              Gamemaker's script editor is also pretty barebones compared to a lot of tool you could be using. Using something like Intellij Idea allows you the benefit of a lot of features such as code completion and refactoring that greatly increases productivity and decreases the likelyhood of making errors. Working in something like Java, Typescript, or AS3 allows you to use static typing, declaring variables as certain types such as ints or strings, allowing you to catch errors if you try to set an int to a string for example. Learning something more widely used also allows you to transition easier since languages Java and Javascript are used in a lot of different applications.

                              The language and framework I choose usually is determined by the platform I'm targeting. I'd have to use AS3 and flex/flash if I wanted to make a swf for viral deployment on flash portals. Typescript and Phaser is nice if I wanted HTML5 for easy multiplatform deloyment. I'd prefer Java or C# if the game was big enough to warrant making avaliable by download. I'd use C++ if I wanted to have a bad time. Furthermore, if I used something like Java for a server, I can easily have it runnable in terminal without the need for a GUI.

                              Also some of Gamemaker's pricing options are ridiculous. Back then gamemaker pro was only 20 dollars. Now it costs 100 for the pro version and 800 dollars for the full edition that allows export to different platforms. Theres no way I can justify this cost when there are so many free alternatives available.
                               
                              • jinjin12

                                jinjin12 Space Hobo

                                I just read an Article about your game and your success on pcgamer. Congrats on everything.
                                I know this thread is old and is from several years ago and things have changed alot for you and you're very busy, but hopefully you can just answer my 1 simple question:

                                What books you recommend for game development with C#/XNA specifically or game development in general? what books did you read when you got started, or did you just read the manuals online?
                                 
                                • DukeOfRiven

                                  DukeOfRiven Giant Laser Beams

                                  Zombie Thread! Zombie Thread! AAAAAAH! AAAAAAH! GET THE SHOTGUN AND RUN!
                                   
                                  • Corraidhín

                                    Corraidhín Supernova

                                    (yes super old thread blah blah blah)

                                    if I might... Undertale was made on gamemaker, with no multiplatform support and by someone who has no knowledge in coding (he admitted so over in Twitter a couple months back) given the success of that game, one can safely say that the best games are not made by the best programmers, but by the best intentions and ideas, dont try your hardest to code well, try to enjoy what you do and make it as fun and original as possible!
                                     
                                    • jinjin12

                                      jinjin12 Space Hobo

                                      Well i'm trying to make a good game yes, but honestly, i'm just trying to up my programming skills by making games. So my main focus, like Eric Barone when he first made this game, is simply to enchance my programmer skills.
                                       
                                        Corraidhín likes this.
                                      • Trifoilum

                                        Trifoilum Cosmic Narwhal

                                        No. This is Stardew Valley.

                                        We prepare bombs and our swords. Clearly these are mummies.
                                         
                                          WonkoTSane42, Thorin and Corraidhín like this.

                                        Share This Page