Sorry your browser is not supported!

You are using an outdated browser that does not support modern web technologies, in order to use this site please update to a new browser.

Browsers supported include Chrome, FireFox, Safari, Opera, Internet Explorer 10+ or Microsoft Edge.

Geek Culture / Where to start programming?!

Author
Message
Neuro Fuzzy
17
Years of Service
User Offline
Joined: 11th Jun 2007
Location:
Posted: 10th Nov 2009 05:04
I've learned a lot from programming using DBPro. I've written a bit in c++, and now i'm taking a Java class at school. I'm finally feeling like i have the know-how to start coding like a pro. The thing is... I don't know where to start.

DBPro is really awesome for programming concepts, but I want to start making stuff from the ground up (errm, built around a 3d engine and stuff, but still lower-level).

So... I was thinking of trying to make a basic game engine built around a 3d engine. The problem is... i don't know what 3d engine or programming language to use.

It would be easiest for me in java or c++, but I've heard good things about .net.

For the 3d engine, i browsed around for a bit, and i think that programming from the ground up using DirectX or OpenGL would be worth a shot, or using irrlicht.

Can someone set me straight on what is what? I'm leaning towards .net+OpenGL
xplosys
19
Years of Service
User Offline
Joined: 5th Jan 2006
Playing: FPSC Multiplayer Games
Posted: 10th Nov 2009 05:13 Edited at: 10th Nov 2009 05:27
That's a big project you're considering, but I say go for it. One of the first things I wrote was a GUI for DOS6 using QBasic. It wasn't Windows 3, but I got pretty far with it and learned a lot along the way. I called it "Visual DOS". Ahhh, the good ole' days.

I wish I could give you some guidance, but I can't.

Good luck.

EDIT: Wow! I just found the floppy disk. It's dated Jun 1998, and it still reads.

crispex
17
Years of Service
User Offline
Joined: 22nd Jun 2007
Location:
Posted: 10th Nov 2009 05:20
QBasic is still pretty awesome. I often find myself booting up a Windows 3.1 virtual disk so I can see how far I expand it.

Temporarly away from the Phoenix Sentry.
Phaelax
DBPro Master
22
Years of Service
User Offline
Joined: 16th Apr 2003
Location: Metropia
Posted: 10th Nov 2009 05:31
I'd say stick with C++. I use Java a fair bit, and while you can make games with it using OGL packages, it's not nearly as supported or robust as the engines you'll find in C++.

crispex
17
Years of Service
User Offline
Joined: 22nd Jun 2007
Location:
Posted: 10th Nov 2009 06:26
If you're looking to program desktop applications, use regular C or Pascal. I wouldn't recommend using C++ for desktop apps because I myself found it more of a hassle due to the fact that I personally find C++ better for games myself.

Temporarly away from the Phoenix Sentry.
Jeku
Moderator
21
Years of Service
User Offline
Joined: 4th Jul 2003
Location: Vancouver, British Columbia, Canada
Posted: 10th Nov 2009 08:17
Quote: "If you're looking to program desktop applications, use regular C or Pascal. I wouldn't recommend using C++ for desktop apps because I myself found it more of a hassle due to the fact that I personally find C++ better for games myself."


Care to explain this with technical examples? It doesn't make sense to me.


Senior Web Developer - Nokia
Sid Sinister
19
Years of Service
User Offline
Joined: 10th Jul 2005
Location:
Posted: 10th Nov 2009 08:27
C++ is a very versatile and very powerful language. Just because you find it more of a hassle doesn't mean it's not the best language for the task. I DO get what you mean though. I just don't think that's a reason to turn down the language that's probably the best option. Sure, the editor part might be a pain, but once he gets into the engine part, my guess is that's where it will shine.

"If I have seen a little further it is by standing on the shoulders of Giants" - Isaac Newton
Current Project: http://strewnfield.wordpress.com/ (Last updated 06/11/09)
Zotoaster
20
Years of Service
User Offline
Joined: 20th Dec 2004
Location: Scotland
Posted: 10th Nov 2009 13:33
Quote: "Care to explain this with technical examples? It doesn't make sense to me."


For desktop apps I would recommend Java or .NET, because they're safer, and more deployable. What's more is that plain old C++ doesn't have any standard GUI system. Also, I think that for most desktop apps, you don't really need to mess around with pointers, etc, though I haven't written many myself, I could be missing the target completely in this case


As for what to use for 3D games: C++ for sure. Java and any .NET languages don't guarantee speed, for two reasons. Firstly, they run on bytecode, which means you have a layer of abstraction which will slow your game down (though some highly optimised VMs can harness a lot of speed. After all, XNA runs on an optimised version of .NET). The second reason is because of their garbage collection routines. They are unpredictable, and add extra overhead to your program.

C++ is about as fast as you'll get for something suited to game development. Plus, once you get to know the ins and outs of C++, it will actually help you understand how other programming languages work, including Java and any .NET languages, so it will indirectly make you more fluent in them.

My two cents.

"everyone forgets a semi-colon sometimes." - Phaelax
David R
21
Years of Service
User Offline
Joined: 9th Sep 2003
Location: 3.14
Posted: 10th Nov 2009 13:43 Edited at: 10th Nov 2009 13:44
Quote: " Java and any .NET languages don't guarantee speed, for two reasons. Firstly, they run on bytecode, which means you have a layer of abstraction which will slow your game down"


I don't know how .NET handles 3D (with DX) but Java is now very usable for 3D since the rise of JNI (Java native interface, where it effectively offloads intensive tasks to native libraries behind the scenes)

I've been messing with Java and display output, and it manages a few thousand FPS displaying a few 3D objects at 1920x1200, so I think it's pretty much ready for game use

09-f9-11-02-9d-74-e3-5b-d8-41-56-c5-63-56-88-c0
Benjamin
22
Years of Service
User Offline
Joined: 24th Nov 2002
Location: France
Posted: 10th Nov 2009 13:58
Quote: "I've been messing with Java and display output, and it manages a few thousand FPS displaying a few 3D objects at 1920x1200, so I think it's pretty much ready for game use"


Doesn't sound very CPU-intensive to me.
Sid Sinister
19
Years of Service
User Offline
Joined: 10th Jul 2005
Location:
Posted: 10th Nov 2009 17:59
C++.Net for sure. Guess I should have said that in my post

"If I have seen a little further it is by standing on the shoulders of Giants" - Isaac Newton
Current Project: http://strewnfield.wordpress.com/ (Last updated 06/11/09)
crispex
17
Years of Service
User Offline
Joined: 22nd Jun 2007
Location:
Posted: 10th Nov 2009 18:47
Quote: "For desktop apps I would recommend Java or .NET, because they're safer, and more deployable. What's more is that plain old C++ doesn't have any standard GUI system. Also, I think that for most desktop apps, you don't really need to mess around with pointers, etc, though I haven't written many myself, I could be missing the target completely in this case


As for what to use for 3D games: C++ for sure. Java and any .NET languages don't guarantee speed, for two reasons. Firstly, they run on bytecode, which means you have a layer of abstraction which will slow your game down (though some highly optimised VMs can harness a lot of speed. After all, XNA runs on an optimised version of .NET). The second reason is because of their garbage collection routines. They are unpredictable, and add extra overhead to your program.

C++ is about as fast as you'll get for something suited to game development. Plus, once you get to know the ins and outs of C++, it will actually help you understand how other programming languages work, including Java and any .NET languages, so it will indirectly make you more fluent in them.

My two cents."


You just summed up what I was about to type (went to bed after I left my response, thus didn't get time to defend it from the always-combative people).

Mainly I wouldn't use C++ over the fact you need to code EVERYTHING from scratch. The GUI, the functions, etc.

Though .NET is a bit slow at times, and is very hard to make cross-platform, it's still the route taken by most nowadays. .NET also needs to be obfuscated otherwise it's easily decompiled. You can get a free version of "Dotfuscator" online.

Anyway, C++ is great for making games, but I can't really see using it from scratch to make desktop apps that can easily be made in Pascal (Delphi in specific), or .NET. For games, C++ is great.

Temporarly away from the Phoenix Sentry.
dark coder
22
Years of Service
User Offline
Joined: 6th Oct 2002
Location: Japan
Posted: 10th Nov 2009 18:56 Edited at: 10th Nov 2009 19:01
Quote: "Mainly I wouldn't use C++ over the fact you need to code EVERYTHING from scratch. The GUI, the functions, etc."


You shouldn't bash something you clearly know nothing about.

Phaelax
DBPro Master
22
Years of Service
User Offline
Joined: 16th Apr 2003
Location: Metropia
Posted: 10th Nov 2009 19:56
I'm pretty used to Java getting bashed on as a development platform, but C++ is under attack? Woh!

Wonder what Jeku has to say about portability of Java and 3D, whether it's an issue or not. (i think he was the java game guy on here)

crispex
17
Years of Service
User Offline
Joined: 22nd Jun 2007
Location:
Posted: 10th Nov 2009 20:04
C++ is not "under attack", it's just that people who have actual experience programming in it know that it's a hassle whenever pre-existing framework exists to make it easier. Why must someone take the hard route all the time? FPS Creator is an engine, as is many of the engines recently posted, yet nobody goes off saying those are for amateurs.

Temporarly away from the Phoenix Sentry.
Neuro Fuzzy
17
Years of Service
User Offline
Joined: 11th Jun 2007
Location:
Posted: 11th Nov 2009 04:29
I think i'll stick with c++ for the moment. I might go to .net after I've written a couple c++ games. I'll also keep making small stuff in java (i'm in a java class for the rest of the year), and keep on using DBPro for random stuff

So now... What to use as a 3d engine? I really want to focus on the basics of 3d programming, and design my own system for handling objects. Most of the things i make in DBPro have to do with lots of small, insignificant objects (which is sometimes annoying because having lots of objects is slow in DBPro). I can't decide whether to use OpenGL because it's low level, DirectX because it seems to be the standard, or Irrlicht because it's open source.
crispex
17
Years of Service
User Offline
Joined: 22nd Jun 2007
Location:
Posted: 11th Nov 2009 05:45
I've always found the Irricht engine to be pretty nice in C++, though I have no idea if it's worked on or even available anymore.

Temporarly away from the Phoenix Sentry.
puppyofkosh
18
Years of Service
User Offline
Joined: 9th Jan 2007
Location:
Posted: 11th Nov 2009 14:55
I used OpenGL for a while. Not enough to say that I can write a decent game but I went back to DarkGDK because loading models and stuff was a pain in the ass.
BearCDP
15
Years of Service
User Offline
Joined: 7th Sep 2009
Location: NYC
Posted: 11th Nov 2009 15:48
Irrlicht is still alive and well, I've barely used it, but I check their site periodically. Latest update was September 30th.

Neuro Fuzzy, when you say object handling, do you mean you want to manage data structures containing the object data on a low level like OpenGL or DirectX? Or, more like a more advanced version of what DBPro/DGDK offers, like pointers to instantiations of object classes?

If you are enjoying working with Java, I recommend jMonkeyEngine. It uses scene graphs not unlike Irrlicht and Ogre, but is in Java. It has some nice Base Game classes to inherit from, so all you have to do is implement the main parts of game code in the predefined methods--initSystem, initGame, reInit, update, render, and a few others that can be optionally implemented.

Neuro Fuzzy
17
Years of Service
User Offline
Joined: 11th Jun 2007
Location:
Posted: 11th Nov 2009 19:38
Quote: "Neuro Fuzzy, when you say object handling, do you mean you want to manage data structures containing the object data on a low level like OpenGL or DirectX? Or, more like a more advanced version of what DBPro/DGDK offers, like pointers to instantiations of object classes?"


definitely the data structures containing the object data. I want to really focus on objects just being the visual output of my program. Handling the data structures at the base level would make it easier to implement stuff like LOD, switching stuff on the fly, and creating and deleting stuff with little loss in speed.
TheComet
17
Years of Service
User Offline
Joined: 18th Oct 2007
Location: I`m under ur bridge eating ur goatz.
Posted: 11th Nov 2009 20:03
Heres a good tip for you. It's translated from the German language, and it's a really good method for creating almost anything:

IPERKA

1) Inform yourself on what you are doing, details, how long, what do I need, and so on

2) Plan your game

3) Entscheiden (German for decide). Decide on what to do.

4) Realize your project.

5) Kontrollieren (German for control) - Debug, test and finalize your project. If something is wrong, go back to step 2.

6) Auswerten (German for Finish.) Finish, build and publish your project.

TheComet


Make the paths of your enemies easier with WaypointPro!
Jeku
Moderator
21
Years of Service
User Offline
Joined: 4th Jul 2003
Location: Vancouver, British Columbia, Canada
Posted: 12th Nov 2009 03:29
Quote: "went to bed after I left my response, thus didn't get time to defend it from the always-combative people"


Well when you advise to use C or Pascal for desktop apps, because C++ is better for games, expect people to ask you to explain. It was not "combative" in any way

Your logic still doesn't make sense. How is C any better for writing apps from "scratch" than C++? Maybe I'm slow, but I've never heard anyone come from that angle before.

Quote: "Though .NET is a bit slow at times, and is very hard to make cross-platform, it's still the route taken by most nowadays."


I have yet to see .NET rise to a state that could be considered taken "by most", at least in gaming it's still not very common.

Quote: "Wonder what Jeku has to say about portability of Java and 3D, whether it's an issue or not. (i think he was the java game guy on here)"


I don't really have an opinion on Java as I haven't used it since 2002. I didn't really care for it then Nowadays C# is my favourite language, which is comparable to Java in many ways, but it just seems "friendlier" in a way I can't explain.

Quote: "Why must someone take the hard route all the time?"


In one post you're saying C is better for desktop apps than C++, and in another you're defending people who take the so-called "easy way out"? C can be trickier to use than C++ in many ways.

@Neuro Fuzzy - If I were you I would use Direct3D for an engine as opposed to OpenGL, since you are going the .NET route. DirectX has audio, networking, input, and graphics support available at hand, and it is not difficult getting something together in C++ or C# .NET. OpenGL, while cross-platform, isn't really useful to use with .NET as you'll be tied to Windows as it is. As long as you're tied to Windows, you might as well use the (arguably) easier-to-use and understand Direct3D. I've written a game in OpenGL and a game in Direct3D in my travels, and I've appreciated Direct3D more.


Senior Web Developer - Nokia
hyrichter
21
Years of Service
User Offline
Joined: 15th Feb 2004
Location: Arizona
Posted: 12th Nov 2009 04:41
Quote: "I have yet to see .NET rise to a state that could be considered taken "by most", at least in gaming it's still not very common."


I personally think that .net is one of Microsoft's biggest mistakes, at least for anything outside of website apps. It seems like if you use it, end users will never have the correct version of the .net framework installed. Maybe I'm wrong on this, but I just don't see that apps written in .net have the same "snappiness" that a native windows app has.

My personal favorite for Windows apps is definitely Delphi. There's nothing I can't get it to do for Windows, it's very backward compatible with older versions, and things written in it just plain work on about any type of PC configuration. Oh, and it's compiler is absolutely wicked fast.

For games, it's either DBP or C++ with DarkGDK for me. I think it's nonsense that people keep saying you have to code everything from scratch with C++. Choose the engine/SDK you want to use and go from there. Reinvent those parts of the wheel you feel like you must, but you don't have to reinvent the whole thing.

CodeSurge
Version 1.0 finally released! Code your DBP projects in style. (And save the kittens!)
crispex
17
Years of Service
User Offline
Joined: 22nd Jun 2007
Location:
Posted: 12th Nov 2009 04:49
.NET is good, but being that it's made by Microsoft means that it's slow, doesn't always work right, and is messy.

I agree that Delphi is great for making Windows applications. Basically Delphi is simply visual Pascal.

For game making, go with DPB or C++.

And Jeku, C is actually more of a developed language (here comes the "C++ has been around for ages, blah blah blah). C++ is an offspring of C, which has been developed since 1972. C is well known and understood, with little known major issues. However, C++ has quite some noticeable differences. I'm not even going to attempt to explain.

Basically I myself think that C is much easier than C++, though the two are identical. It's a matter of personal opinion, really. In no way am I insisting that it is a fact that C is easier, because some find C++ easier.

Temporarly away from the Phoenix Sentry.
hyrichter
21
Years of Service
User Offline
Joined: 15th Feb 2004
Location: Arizona
Posted: 12th Nov 2009 04:52
I'm not going to argue about the C vs. C++, but I will state that I'm starting to learn how to program micro controllers, and the ones I'm working with are programmed in either straight C or assembler.

CodeSurge
Version 1.0 finally released! Code your DBP projects in style. (And save the kittens!)
Benjamin
22
Years of Service
User Offline
Joined: 24th Nov 2002
Location: France
Posted: 12th Nov 2009 07:19 Edited at: 12th Nov 2009 07:20
Quote: "I'm not even going to attempt to explain."


Well you're still being as clear as mud here. As far as I can remember, just about any C code will work fine in a C++ compiler, plus you have the ability to use any features C++ offers. You're not forced to go full-OOP and use polymorphism all over the place.

Quote: "but I will state that I'm starting to learn how to program micro controllers, and the ones I'm working with are programmed in either straight C or assembler"


I'd guess they choose C over C++ because writing a compiler for the latter is more complex (and perhaps because of the small amount of overhead typically associated with OOP).
Jeku
Moderator
21
Years of Service
User Offline
Joined: 4th Jul 2003
Location: Vancouver, British Columbia, Canada
Posted: 12th Nov 2009 07:27 Edited at: 12th Nov 2009 07:29
Quote: "C is well known and understood, with little known major issues. However, C++ has quite some noticeable differences. I'm not even going to attempt to explain."


I'm afraid you'll have to explain, because it really does sound like you're repeating something you've read, and you don't fully understand the difference between C++ and C, and the pros and cons of either. With modern machines, the OO overhead of using C++ (for example memory used by virtual function tables) is negligable enough that most people will not have to concern themselves with it. I've been asked about those differences for job interviews, but have never worked anywhere that didn't fully utilize C++ and enjoy its advantages over plain C.

I can't defend or speak out against Pascal or Delphi, but with C, C++, and C#, I feel I have enough experience to understand when to use and when to avoid which. For the past 5 years or so I haven't run into a solid case to use C over C++ for even the smallest of console terminal apps.

Now, if you choose C because you don't have experience or care to learn C++, then I can understand. But that doesn't seem the case with you (or does it?)


Senior Web Developer - Nokia
Neuro Fuzzy
17
Years of Service
User Offline
Joined: 11th Jun 2007
Location:
Posted: 12th Nov 2009 07:48
@ Jeku - Wait, I said I'm going the c++ route. I was talked out of starting .net mainly by my dad, who doesn't seem to have a high opinion of it. I also think that i should focus on the 3d engine ATM and hold off on learning (and preparing my workspace for) a new language.

I've installed everything to be able to program both using DirectX and OpenGL. I'm just going to try both of them and see which one I like more.
Quote: "DirectX has audio, networking, input, and graphics support available at hand,"


Hmm... i didn't think about having to handle Input as well using OpenGL, but i guess it makes sense... :s

Quote: "Reinvent those parts of the wheel you feel like you must, but you don't have to reinvent the whole thing."

I just want to learn how the wheel works (like, uh... how round it is). I'm really interested in involving math in to my program, like 3 dimensional graphs (even over time) and other stuff (like dr.tank's hyperspherical universe in the DBPro code snippets) that requires a lot of individual vertex manipulation in real time.

@ Hyrichter - Cool! What chip are you using? I have a couple ATMega328's that are awesome, and (relatively) easy to program. I've found that SparkFun.com and Make Magazine are both extremely helpful places to look for info.

BiggAdd
Retired Moderator
20
Years of Service
User Offline
Joined: 6th Aug 2004
Location: != null
Posted: 12th Nov 2009 15:59
I would be one who recommends JAVA as a good starting point for programming.

Jeku
Moderator
21
Years of Service
User Offline
Joined: 4th Jul 2003
Location: Vancouver, British Columbia, Canada
Posted: 12th Nov 2009 16:53 Edited at: 12th Nov 2009 16:53
Quote: "Wait, I said I'm going the c++ route. I was talked out of starting .net mainly by my dad"


Well there's C++ and there's C++ .NET. Learning either is pretty smart if you want to get into the business, but vanilla C++ is important


Senior Web Developer - Nokia
crispex
17
Years of Service
User Offline
Joined: 22nd Jun 2007
Location:
Posted: 12th Nov 2009 19:00
If you want to learn C++, but you want a GUI to be easy, go for Microsoft Visual C++, very useful. Mind you, it does use .NET Framework though.

Temporarly away from the Phoenix Sentry.
dark coder
22
Years of Service
User Offline
Joined: 6th Oct 2002
Location: Japan
Posted: 12th Nov 2009 19:28
Quote: "go for Microsoft Visual C++, very useful. Mind you, it does use .NET Framework though."


wat

Jeku
Moderator
21
Years of Service
User Offline
Joined: 4th Jul 2003
Location: Vancouver, British Columbia, Canada
Posted: 12th Nov 2009 23:51
Quote: "If you want to learn C++, but you want a GUI to be easy, go for Microsoft Visual C++, very useful. Mind you, it does use .NET Framework though."


No, it is an option, not a requirement. You can use plain vanilla C++ with Visual Studio--- you are not forced to use .NET managed code.


Senior Web Developer - Nokia
heyufool1
16
Years of Service
User Offline
Joined: 14th Feb 2009
Location: My quiet place
Posted: 13th Nov 2009 00:27
If I were you I would skip the engine and start using Unity Indie, because it's free now and will make results that are better then DBPro (in my opinion) very quickly. There is also scripting involved that can use JavaScript, and maybe C++ (Checking on that now) and it's not too tough. So... unless you plan on using your game engine I suggest using Unity.

Your bedtime story is scaring everyone
If found my very own Fail!: http://cheezburger.com/View.aspx?aid=2712171776
Phaelax
DBPro Master
22
Years of Service
User Offline
Joined: 16th Apr 2003
Location: Metropia
Posted: 16th Nov 2009 06:38
Quote: "I don't really have an opinion on Java as I haven't used it since 2002. I didn't really care for it the"


I thought it was you who used to write java games for phones? Maybe it was BigAdd then.

Quik
16
Years of Service
User Offline
Joined: 3rd Jul 2008
Location: Equestria!
Posted: 16th Nov 2009 07:09
i really recommend making a 2d engine before even concidering 3d, as 3d is a heck of a lot harder.i also believe u should learn python

elseway i dont have much of an opinion here, other than that i prefer c++ for most things^^


[Q]uik, Quiker than most
Jeku
Moderator
21
Years of Service
User Offline
Joined: 4th Jul 2003
Location: Vancouver, British Columbia, Canada
Posted: 16th Nov 2009 08:17
Quote: "I thought it was you who used to write java games for phones? Maybe it was BigAdd then."


Well, I did make a playable WordTrix game in J2ME around 2007, and completely forgot about it until now Java is one of those languages that isn't *that* difficult to jump back into if you're familiar with other C-scripted languages.


Senior Web Developer - Nokia

Login to post a reply

Server time is: 2025-05-25 18:22:14
Your offset time is: 2025-05-25 18:22:14