Jump to content

Where to start? Advice appreciated.

- - - - -

  • Please log in to reply
3 replies to this topic

#1
andlookmore

andlookmore

    Newbie

  • Members
  • Pip
  • 1 posts
I have just completed a pure mathematics degree and am now looking to develop what I have learnt there by making a computer program to illustrate some of the theories. I have no programming experience and will in all likelihood be learning this in my spare time. I would really like any advice on which program language and even which programming software, (i.e compliers? etc) people would encourage me to use.

So what am I aim for?

I want to make a 3D enviroment where the user will be able to travel in all three dimensions. The user will see the enviroment as from the first person point of view, that is the screen will be the viewers eye. There will be other objects in the "space". These will be simple objects, cubes, spheres etc. The key to conveying the mathematical idea is that I want to be able to define the paths the light travels along. So that instead of the shortest distance between two points being the Euclidean straight lines, I will be subbing in my own mathematical equations for these geodesics.

So from my niave starting point I need a language/program that will allow me to build a 3D enviroment, with user control interactibility, that allows me to define light paths and objects.

(If I can push it and also ask if you could recommend any books/ online starting place that would be great.)

Thanks

#2
Alexander

Alexander

    It's Science!

  • Moderators
  • 4,118 posts
  • Location:Vancouver, Eh! Cleverness: 200
As my opinion it would be an illogical task to start 3D enviornment development with a full-featured language such as C++. You best start out with a 3D modelling software such as Blender (free) and export objects as .obj/.lwo, and use that with a 3D engine such as Direct X (Win-only) or OpenGL (multiplatform), which you may be required to use C++ anyway in the end for the actual physics.

The basics of the language, I would recommend learning from Stroustrup's own book (the creator of C++):
Stroustrup: The C++ Programming Language (Third Edition) (online version)

For OpenGL, not a clue, but their site has a good book with theory and C++ examples:
OpenGL Programming Guide (Addison-Wesley Publishing Company): Table of Contents

I'm not a game developer, so it is just my two pennies worth.
Be sure to read the updated FAQ! || Health is achieved through the same 10,000 steps.
If a suggested code/method fails, informing us is less important than telling us why or what errors occurred.

#3
WingedPanther

WingedPanther

    A spammer's worst nightmare

  • Moderators
  • 16,831 posts
  • Location:Upstate, South Carolina
  • Programming Language:C, C++, PL/SQL, Delphi/Object Pascal, Pascal, Transact-SQL, Others
  • Learning:Java, C#, PHP, JavaScript, Lisp, Fortran, Haskell, Others
Given the math involved, I would suggest OpenGL + C++. Blender is going to have a hard time dealing with the formulas for light, so I'd start with direct modeling of light in C++, and representing it with OpenGL. I also suggest using Abstract Algebra (groups, fields, etc) as a frame of reference for your understanding of classes and operator overloading. It helped me out a lot.
Programming is a branch of mathematics.
My CodeCall Blog | My Personal Blog

#4
DarkLordofthePenguins

DarkLordofthePenguins

    Programming Expert

  • Members
  • PipPipPipPipPipPip
  • 409 posts
You will need special software for 3D animation. For Windows and Mac there is Autodesk Maya. Blender 3D is a free alternative that works on Linux. As for programming languages, there are many that can do 3D animation, but you need something of sufficient power. Definitely don't use Visual Basic. I would suggest either C or C++. Others may suggest Java and C#, which are somewhat easier to program in, but I don't recommend them as Java is relatively slow and C# is not portable.
Programming is a journey, not a destination.




1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users