Announcement

Collapse
No announcement yet.

What computer language should I learn to write small games?

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • What computer language should I learn to write small games?

    By small I mean like NetHack, the early Avernum games, etc. If I learn how to do this the games I want to write could be pretty elaborate, just not graphically intensive.

    I've come to the decision that some of the games I really want to play don't exist, so, a la Voltaire, I'll have to create them myself.

    The type of game is not based on good graphics, so I don't need to go crazy learning C++ or whatever. I'm thinking Rogue-like games, Infocom-type text games, etc. Simple ASCII or tile graphics with good descriptions of places and events. Maybe an area for portraits of players and NPCs, from my illustrations. But not graphic in a GTA way.

    It's turn-based rpgs I want to make. My first one will be based in a prison. You're unjustly convicted and sentenced to life. You have to either escape, find the information that can prove your innocence, or just make the most of it and spend your life behind bars. Finite-length, with you entering around age 20, and dying of natural causes around 70 (assuming you aren't killed along the way.) Standard stats and skills. Combination of random and scripted quests/events. Factions you can join or be an independent agent. Maybe even a simple economy if I can figure it out. A robust combat system, with targeting of body parts, bleeding, fatigue, dodging, blocking, etc. A good dialogue system too.

    I thought I would start as simply as possible, with basic structure and systems, then get more complex as I figured how to do things.

    The types of games I'm looking at for inspiration are the Rogue-likes (Nethack, Slash 'em, Dwarf Fortress), Liberal Crime Squad (by the makers of Dwarf Fortress), Zork and the other Infocoms. Maybe even games like Car Thief, etc.

    Is Visual Basic sufficient to write the game I want? Or do I have to learn something more difficult. I've written complex Basic programs in the past, and Fortran a looong time ago, but I'm in my late 30s now and my brain isn't as receptive to languages as it once was.

    I'm also looking into various rpg maker resources.

    So, any advice? Not only on languages, but resources on learning how to write games too. This is a casual pursuit, so I'm not willing to go to school or invest lots of money (though I would invest in a VB program, etc., if I couldn't get a free version.)

  • #2
    nethack is not small and it is written in c. I have a little 3d opengl gfx network tank game(lan only) that is small(trivial) compared to nethack.

    You should learn a language and go from there.
    VB could, given time and effort, write a roguelike game, sure.

    Comment


    • #3
      Its a tricky question to answer well. I guess what your really saying is can i make decent games, that dont have to be upto AAA/console mainstream standards, without learning C/C++?

      And the answer would be yes, but how easy it would be will be dependant on how well you get to know your chosen language i.e could you make it work to do what you want.

      As a old school basic programer who dabled a little in machine code(before my brain melted!) in the olden days, i understand the reluctance to get into C/C++.

      But i would say the best thing about C/C++ is that its probably the easiest language to find info on how to use it, and its proven as a platform for developing games, so much of the leg work has already been done - you can just copy what someone else has already made. Sounds terrible and cheating, but thats exactly how i learnt basic+machine code and applied it to my own games+projects.

      Another great thing about asking this question on apolyton is that right here you have a complete strategy game available for you to poke around in.

      The guys in the Call To Power II section did really well in getting permission to get access to that games source code. It is C++(version 6.0 i think) but could be a great place to get to see the bones of a C++ game in action, and pull bits from for your games?

      The internet is another useful source and i'll finish with a list of links you could check out that might be useful.

      So basicaly yes you could probably do what you want in Visual Basic, but it might limit you at some stage which could be frustrating. I think in the longer term it might just be better to bite the bullet and get boning up on C/C++.

      Anyway here are some links that you should find helpful:

      http://gamasutra.com/ - mostly deals with the mainstream, but it does have lots of great articles on most things to do with game creation, and is a good read.

      http://www.datascope.co.uk/gateway.html - a great site which really just collects many links to great sites in one place, although you will find the odd dead one(like GDSE which i've direct linked below)

      More specifically for you http://www.gamedev.net/ on that page is one of my favourite 'indie developer' type sites.

      http://www.gdse.com/ - is also decent. Just go down the list and see what you find.

      http://www.erasmatazz.com/ - site of Chris Crawford, one of the early pioneers of computer games and his essays on game creation are imo required reading even today(its in the 'Library' link at the bottom of his site).

      http://www.borland.com/downloads/download_cbuilder.html - will get you some free C/C++ tools/language etc if you decide to go that way, some are 30 day limited etc but you can find older C++ for free download on the net

      I'll end by saying good luck and i completely understand where your coming from, mainstream offers little for the older/mature gamer these days. Worse it offers less for the kids of today than it did back in the day. Now everyone is scared to experiment and take risks, as it costs too much to develope the great graphics that are demanded.
      So i know that the future of smart(can be intelligent?) gaming lies in the hands of people like yourself and not the massive publishing houses that seem happy to trot out inane title after inane title. Best of luck in your efforts - the more that make this move the better imho
      Last edited by El_Cid; September 5, 2006, 05:25.

      Comment


      • #4
        I used to make small games in BASIC on my Spectrum. I did Yahtzee once - it kicked ass.

        You could try that.

        Comment


        • #5
          Originally posted by El_Cid
          ...
          The guys in the Call To Power II section did really well in getting permission to get access to that games source code. It is C++(version 6.0 i think) but could be a great place to get to see the bones of a C++ game in action, and pull bits from for your games?
          That's wonderful. I been out of the loop on this one. Last I heard, proposals were floating around. I'm glad to see that the proposition went through.

          Now, I need to get fired from my job so I have enough time to work on the game I've been planning for years.

          Comment


          • #6
            If you have any experience with Pascal, then Delphi is the way to go. Could also be a thought for someone used to Basic. Delphi is definitely good enough to develop games in; for instance, Birth of America is a Delphi game.

            The Borland "DevCo" guys have finally seen the light of day, and have released versions of the Delphi compilers (also C#, C++, and Delphi.Net) compilers that are free. Stupid that it took them so long to realize the value of having hobbyist programmers working with their tools, but excellent that they have finally seen the light.

            You can get hold of the Explorer (free) editions of their development tools from Turbo Explorer.

            I use C++ myself, but Delphi is more user-friendly and probably easier on a beginner.
            /Strategy
            Designer/Developer
            Imperium - Rise of Rome

            Comment


            • #7
              Regarding the Turbo Explorer site, the FAQ says that Turbo C++ Explorer can compile Delphi code, so if I start with Delphi and eventually move on to C++, I can still make use of anything written with Delphi? That's a plus, especially if it's easier to cut my teeth with Delphi.

              At this point I think I'll download and play with Delphi Explorer, and start off simply. Make a combat program, add some elements, etc., and see where I run into the limits of the Explorer edition (or the Delphi language.) Then I'll have to decide whether to get the Pro edition or advance to C++.

              Thanks for your help!

              Comment


              • #8
                Originally posted by ajbera
                Is Visual Basic sufficient to write the game I want?
                Well, you can write lots of games in VB, but it's not the recommended language, but good enough for smaller games. I have created three games using VB (yatchee, tetris and snake), which has worked just fine, but for larger games you'll probably be better off with another language
                This space is empty... or is it?

                Comment


                • #9
                  Go crazy and write in Common Lisp. Multiple dispatch for teh win!
                  This is Shireroth, and Giant Squid will brutally murder me if I ever remove this link from my signature | In the end it won't be love that saves us, it will be mathematics | So many people have this concept of God the Avenger. I see God as the ultimate sense of humor -- SlowwHand

                  Comment


                  • #10
                    The funny thing is that I'll be using so little of the power available in these languages - no net code, and very simple early Ultima-style graphics (if I use anything at all.) I sometimes wonder if I'm learning to operate a Howitzer to go varmint-hunting.

                    I'm anticipating tons of mistakes and false starts, but the important thing is that I actually try to do something.

                    Comment


                    • #11
                      Yes, Turbo C++ can compile Delphi code, which is useful if you should wish to latter "upgrade" to working with C++. It does require that you have made code that is reusable though, which requires a lot of forethought.

                      Graphically, you can get pretty nice graphics in Delphi (and, I believe, VB) for very little programming effort (you still need to create - or get - the graphics files though). Which is useful for an indie, as its the gameplay that ultimately counts. As long as you have reasonable ambitions (i.e., steer away from anything graphically intensive), Delphi should be more than adequate for any game development needs you can imagine.

                      As mentioned; Birth of America is written in Delphi, so - btw - is "For Liberty" advertised on these pages as well as the classic "Age of Wonders". A good place to go for resources/links on game dev in Delphi is http://www.delphigamedev.com/ .

                      The best advise starting out, btw: start small. Try to think of something you are confident you can finish in six months, and then cut it back until you are sure you can finish it in two. Then go for that.
                      Last edited by strategy; September 11, 2006, 09:53.
                      /Strategy
                      Designer/Developer
                      Imperium - Rise of Rome

                      Comment


                      • #12
                        This is an absolute no brainer imo, and the answer is C#. It's similar-ish to both C++ and Java but cleaner (compared to c++ anyway).

                        You can download the Microsoft IDE for free too, so no excuse there. (there's a few limitations with the free one compared to the full version but nothing big).
                        Believe me, it's the best one out there, imo, no other one
                        even comes close.

                        Is God willing to prevent evil, but not able? Then he is not omnipotent. Is he able, but not willing? Then he is malevolent. Is he both able and willing? Then whence cometh evil? Is he neither able nor willing?
                        Then why call him God? - Epicurus

                        Comment


                        • #13
                          Should someone with minimal programming experience, who hasn't done any programming in over 10 years, and who isn't a spring chicken anymore, just dive into C#, or start out with something easier, like VB or Delphi? If I was going to do something big I would use one of the C languages, but since I'm starting small I'll use one of the more accessible languages and work my way up.

                          But what does C# have over C++?

                          Comment


                          • #14
                            C# is way simpler than C++ in that it manages memory for you. But I'd personnally rather use java, since the game you'd do would be more likely to run on Macs or linux boxes and not just Windows PCs.
                            Java, C#, and other modern languages (python if you like to, even VB to some extent) have decent libraries that C++ don't have.
                            Compile something using C++, realise the stl classes and templates you're using aren't ok, download stlport, realise you must rebuild everything with stlport just to be able to print something on the screen - yikes. Java, C#, have libraries which do the stuff for you. I don't know C# enough, but java definitely makes things easier to program than C++. You will have very little to worry about memory management to begin with, and collection classes (hash maps for instance) are provided, which is definitely very useful.
                            I'd personnally go for java, but C# is probably feasible too. VB can work but I think you'll not be able to build something very large and soon have problems maintaining your code if you choose that language.
                            Clash of Civilization team member
                            (a civ-like game whose goal is low micromanagement and good AI)
                            web site http://clash.apolyton.net/frame/index.shtml and forum here on apolyton)

                            Comment


                            • #15
                              Whenever I read stuff such as "no-brainer" choice regarding programming languages, my "religious-code-wars" alarm starts going off. Let's try not to go there.

                              In my experience:

                              I don't know when LDiCesare last used C++, but I've been using it for 10+ years (both at work and in my hobby), and have never had a problem with lacking modern libraries. With Turbo C++ (free), it is almost as easy to develop applications in C++ as it is in Delphi/Visual Basic; and Visual C++ Express (also free) which comes with the .Net framework is almost as powerful. I wouldn't recommend C++ to a beginner though - the tools available are top-notch, the libraries are unrivalled, but the language itself is not beginner friendly.

                              Java is definitely the best choice if you want cross-platform compatibility. If you don't have that requirement, though, I don't think it has anything to recommend it for game development above any other language. Last I looked (2-3 years ago), the Java gamedev community was quite a bit smaller than the others and the tools left me distinctly unimpressed in terms of ease of use. A lot has happened since then, though, but I suspect that Java still has a substantial learning threshold to get across before one starts being productive if going to it "fresh".

                              C# tries to take the best from C++, Delphi and Java and merge them in a single language; though essentially, it is C++ with memory management and without the sticky bits. Interfaces really well with .Net (as it was the language originally designed with it), but I remain unconvinced it has much of an advantage there over the other languages supported by the free Visual Studios (VB, C++, J#) anymore. Probably a good choice if you have plans of doing extensive development in Windows and you are familiar with C/C++ syntax; otherwise I wouldn't recommend it over the others.

                              J# is a transition language from Java to .Net; which means it has lost all the benefits of Java (cross-platform) to be compatible with .Net. Definitely not recommended.

                              Delphi = Object Pascal, which makes it a significantly simpler language to get into than all of the above. Exists in both a .Net version and in a Win32 version (which has a lot more components than what .Net supports) -and now that Borland has released Turbo Delphi Explorer for free, it is once again a viable choice for hobby programmers. If you want to use your programming skills professionally, Delphi is probably not the best choice (C++, Java, and C# provide better professional prospects); but for hobby programming, IMO, only Visual Basic comes close for ease of development.

                              Visual Basic is without a doubt the simplest language. It has one advantage over all the others, and that is the BASIC-like language. Delphi/C# has better tools and work faster, but VB wins on plain simplicity. As LDiCesare said - if its small and simple, VB will work for you; if the game will be are more complex, though, some other language would probably be preferable.

                              I would not recommend a "Game Maker" product, unless you are sure it does what you need it to do. If it does, though, and you are willing to spare the money, this would probably be by far the easiest option.

                              But to be honest, I don't think the decision is that hard.

                              With the exception of VB and Gamemaker suites, all of the languages are perfectly fine for the development of complex games. In short, whichever language you choose, you can probably stick with is for as long as you want.

                              The no-brainer decision, though, is to go with the language which you feel most comfortable with, because that is the language which you'll be productive in the soonest. All languages have advantages and disadvantages, but unless you have some specific need (e.g., performance, cross-platform, etc), you should be looking for the language in which you will be most productive.

                              Given your background in BASIC, I'd take a look at either Visual Basic (despite its limitations) or Delphi.
                              /Strategy
                              Designer/Developer
                              Imperium - Rise of Rome

                              Comment

                              Working...
                              X