Jump to content
  • Advertisement

Geraint Corneu

Member
  • Content Count

    7
  • Joined

  • Last visited

Community Reputation

181 Neutral

About Geraint Corneu

  • Rank
    Newbie
  1. Geraint Corneu

    C++ babysteps

      You realise that "according to some internet guy anyway" is a redundent statement because we are on the internet and the very same argument applies to your statements correct? As someone who is finishing an undergraduate computer science degree they do teach programming: In Java/C/C++/C#. They did not start the first year with Assembly programming, and there is only one compulsory module that requires assembly (in the entire degree). I'm not saying that learning Assembly is not useful, I'm saying that it's not something you start learning with.         "According to some internet guy". Assembly is conceptually complex, especially from a beginners perspective. Referencing registers, branching, managing the execution stack, etc., is objectively unintuitive. Using conditional statements and utilising variables on the other hand mimics some aspects of natural language; If-Then-Else is part of the rational decisions we make everyday.   I never suggested using C to learn OOP, I suggested using Java to learn OOP. I also highly disagree that C++ merely has OOP tacked on. Java forces OOP since functions are not first-class citizens, that does not mean that anything that doesn't do the same thing has OOP "tacked on".       From your perspective? Sure RISC has a reduced set of instructions but that doesn't make managing the stack, registers, branches, etc., any easier.         This is wrong because loops in high-level languages resemble natural language which is more intuitive, this is an objective fact. Implementing a loop in Assembly is not more intuitive than the high-level equivalent, otherwise Assembly would be a high-level language. High-level languages were designed to abstract, and abstraction is intuitive.   Compare the following:   MIPS L1: bge $r1, $r2, EXIT addi $r3, $r3, 1 add $r1, $r1, $r1 j L1 EXIT: Java i = 1 k = 10 while(i < k) { k++ i = i * 2 } There is no way you're telling me that the MIPS assembly code is easier to understand than the equivalent Java code.         Computational Complexity Knowledge =/= Assembly Knowledge You can learn computational complexity without learning assembly, in fact instead of learning assembly it would be better to learn discrete mathematics. All programmers should know at least basic discrete mathematics, but all programmers do not need to know assembly.         Neither of this correlate to an absolute measurement in skill since: "Years of experience" is meaningless without the context behind where the experience was gained. "Holding computer science degrees" is meaningless since as with nearly all university courses, the actual materials and difficulty vary (unfortunately) greatly from university to university.       Key: "Basic Stuff". Why force yourself to learn another language the moment you want to do more than "basic stuff". Also I might add that the basic stuff you can do in assembly is far easier to do on higher-level languages and far less time consuming, especially for someone who has never done programming before.   EDIT: Clarification.
  2. Geraint Corneu

    C++ babysteps

      Bottom-Up complexity learning is not something that should be recommended for novice programmers without a computer science/theory background. Assembly is conceptually complex, while C++ is complex due to the multitude of available built-in functionality. Unless a first-time programmer is interested in the low-level mechanisms of Assembly, starting with that language is a good way of putting them off.   The crucial concepts that should be learnt from a first-time langauge should be translatable concepts such as: Syntax Conditionals Loops Variables These are concepts that implemented and syntactically many modern high-level langauges share many similarities, thus subsequent languages are far easier to learn. The problem with Assembly is that it is conceptually and syntatically foreign to nearly all modern langauges. Registers, branching, etc., are useful theoratical pieces of knowledge but not as practical as being able to code in high-level languages.   C is not a bad shout out, and I would almost recommend starting at C over C++ and using a more OOP langauge to learn OOP like Java. However I cannot see how any beginner should ever start out with Assembly in this day and age.
  3. Geraint Corneu

    C++ babysteps

    Good luck, always good to see people learning programming.   If you have more technical questions I recommend looking for solutions at Stack Overflow (a.k.a the holy grail for programmers) if you haven't already heard of that site.
  4. Geraint Corneu

    Which language & gaming engine?

      Then go with a Java engine. If your aim is to create a game then you don't want to faff about with learning a new language, you'll want to focus on learning how to actually implement a functioning game. The popular choice is libGDX and my personal favorite. Alternatives include jMonkeyEngine and LWJGL.   The best game engine is the engine that supports the language you're most familiar with. The you can either extend or in the incredibaly unlikely scenario, you can switch. It's better to spend the time you would use pondering between the buketloads of engines on actually developing your game :P
  5. Geraint Corneu

    C++ babysteps

    Hahaha...nah. Disregard that, they were joking (or ignorant, it's impossible to tell).     I never heard about Diablo being written in COBOL (that's the sort of statement I'd take with a large pinch of salt without a primary source). Fun fact though the original roller coaster tycoon was written in assembly and C (src).       I remember having trouble with MinGW when I initially started learning programming (C++ as well funnily enough), I recommend Cygwin instead. Better yet just go with an IDE (out of curiosity is there any reason you're not using one now?), it'll make your life infinitely easier. It's good to learn the GNU toolchain but I highly recommend doing that on a Linux OS though (not that it's impossible on Windows, it's just needlessly more difficult).
  6. Geraint Corneu

    C++ babysteps

    There are two main options on Windows: Proprietary: Visual Studio Express is microsoft's free edition of their IDE which supports a variety of languages including, most importantly for you, C++. The compiler is bundled together so there is no need to install a separate standalone compiler. Open Source: There are a variety of choices but the most popular (at least when I started C++) is Code::Blocks. Make sure you download the binary package which includes MinGW which is the windows port of various GNU tools including the GNU C++ compiler (open source). I realise you asked for a compiler, I supplied you with links to IDEs as they are one-click installs, however if you want standalone compilers then I recommend Cygwin which replicates linux console tools and includes the GNU C++ compiler, so you can compile files without using an IDE. Since you're starting out I highly recommend you just go with an IDE though.   My advice: If you're not too set on C++ choose a different starting language. C++ contains a lot of unecessary functionality and quirks that can be very confusing especially for novices. If you're prepared to spend a lot of time learning the theory behind various C++ concepts then by all means proceed, but if you'd like to learn by creation (which is also a good motivating factor) then I recommend starting with languages such as Java or Python which will result in functioning programs faster during the learning process. The most important thing though is not your choice of language but the amount of time and effort you're willing to put into your learning.   Regardless of your choice I wish you good luck on your learning journey.
  7. Geraint Corneu

    Where to start for Life Simulation Game

    Greetings!   As the above posters have said you really should ensure you have a firm understanding of java programming before you undertake a fairly large project.   Personally you should at the very least be comfortable of the concepts from the tutorials listed as "Trails Covering The Basics" which you can find at http://docs.oracle.com/javase/tutorial/   If you already are or after you feel that you are competent at the language then you should decide what game engine you'll be planning on using (unless you're planning on programming your own game engine, which I strongly caution against if you aren't doing it for learning/portfolio purposes).   For a 2D game in Java my personal recommendation would be libgdx: http://libgdx.badlogicgames.com/index.html   The wiki should have a ton of information, specifically I'd look at the "A Simple Game" page to get started: https://github.com/libgdx/libgdx/wiki/A-simple-game   Good luck!
  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!