Jump to content
  • Advertisement
Sign in to follow this  
KorangarDev

Getting off the ground

This topic is 2576 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Hello everyone! :D
My name is Aaron.

I'm here because about seven years ago I had this /really/ good idea for a video game, and I've been developing my ideas on and off ever since. It's seriously time to get started already, yeah?
I've been reading up on game design books and blogs and discussions and every little thing I can get my hands on. I've also done a ton of research into things that might pertain to the game, but aren't quite typical of a game, right? Things that might be like language, science, religions, philosophy, history, technology, economics, and craft. I know I should hit up math too, obviously, but you know how it is. ;)

I've been exploring programming pretty thoroughly, but it's still pretty confusing since everything has some technical term attached to it, usually described using more technical terms that I don't know yet! I guess I'm trying to say that, to be quite honest, I'm not very good at it yet. I'm really smart and I try to work at learning this programming every single day, in hour long binges, but it's just not going well!

Languages I've dabbled in or explored:
+ ActionScript3 (not really a fan, but do check out "Flixel" because it's totally sweet.)
+ Java (somewhat/extremely confusing. haven't figured out which yet!)
+ VisualBasic (yay, now I can work for the devil!)
+ C++ (the furthest I've ever gotten would go something like... "error 10293 - potential critical exception of: AmbiguousError; possibly somewhere in your code.")
+ C# and XNA (yay, now I can make games for the devil! at least they have xbox, though.)
+ HTML <lolz, this = useless>
+ Lisp ((not (a fan))!)
+ Ruby (I dig the $variable signs.)
+ Python (no IDE? Your kidding, right?)

You get the idea.

So what I'm looking for here is some advice as to how I should get started.


I need a programming language that:
+ Is straightforward in getting started, preferably with minimal bloat (? I'm assuming this means less things to remember, but I honestly have no idea what it means.)
+ Avoids seemingly random function names like cout<< and puts(). I loathe that in a language. I'd rather type integer than int.
+ Is multiplatform, as in supports something other than windows(c)^tm, but lets me design it on a windows(c)^tm computer. ;)
+ Is fast enough to render 3d graphics, though I won't be using triangles. I plan to work with what might be considered point clouds / voxels(?) (yay more jargon!).
+ Doesn't throw errors that a mere mortal cannot reasonably understand. I'm not a level99 compsci wizard. I wish I was, but I'm not.
+ Doesn't require a bachelor degree to create a page-flipper or double buffer-er (jargon!) I head windows(c)^tm isn't friendly about this.
+ I'm a fan of pointers, as long as they are smart pointers!
+ Has an IDE, preferably one that isn't totally weak.
+ Doesn't even require floats.
PS I'm don't mind working with procedural languages, but I don't like dynamic types. I forget what they were supposed to store.


Basically, the messiah of programming languages.

I mean, my god man!, all I want to do is draw a pixel on the screen. It's really just not that easy.
It's like there's this huge barrier to entry, I have trouble even getting things set up, and then they throw weird errors and i'm lost.

Then I can use some fancy algorithms to use raycasting (or my dumb version of it) to see an object that may or may not be made out of voxels.
Then I can add lighting, and post processing filters, and! - you get the idea.


I mean, these choices I have are so terrible, I was doing research on how to write my own programming language.
One that could do everything I needed and wouldn't mess around with stuff I don't.
At least Assembly languages don't try to screw with your perception of reality.

Currently, I'm leaning towards Java, but it's not easy for me.
And I hear garbage collection (.jar gon) is bad for speed and can lead to it's own memory leaks and errors.

So can anyone help me get started? Please?


Here's that list again. Forget any of them if you think it's better for me.
+ Multiplatform.
+ Straightforward. Less Bloat. No weird terms to memorize. I hate fancy/clever languages.
+ Fast. The faster the better.
+ No BS error reports.
+ Easy enough to create my own page flipper.
+ Doesn't need to be ObjectOriented.

And I'm developing on Windows, for other platforms. Consoles would be nice.

Share this post


Link to post
Share on other sites
Advertisement

And I'm developing on Windows, for other platforms. Consoles would be nice.

For console development, you're pretty much stuck with C and C++ (except for C# and the 360, as you know). To be honest, I'd suggest using either Java or C# (there's the Mono Project to help make your C# program cross platform, though I've never used it so I can't comment on how effective it is). There's other languages out there, but for the most part they don't have the same kind of community and 3rd party library support that Java and C# do. Plus, the Visual Studio IDE is AWESOME.

Yes, garbage collection can be bad for games (it won't cause memory leaks, really, but there are times when it'll try and do some garbage collection when there aren't any CPU cycles to spare, causing some jitter/lag occasionally). I don't know how much control you have over garbage collection in Java or C#, but they might give you some kind of way to influence collection times.

Share this post


Link to post
Share on other sites
Mono, huh? I'll have to look into that.
I mean Windows+Mac+Linux+XBox = awesome.

Do you really think C# is good, though? Better than Java? I hear they're basically the same, and C# seems a bit over-hyped.
C# was made by windows©^tm so it's inherently evil, but I'll look into it further.

Thanks for the sound advice, Cornstalks.


Keep 'em coming, boys, I got day!

Share this post


Link to post
Share on other sites

[quote name='Expert Novice' timestamp='1321239122' post='4883617']
And I'm developing on Windows, for other platforms. Consoles would be nice.

For console development, you're pretty much stuck with C and C++ (except for C# and the 360, as you know). To be honest, I'd suggest using either Java or C# (there's the Mono Project to help make your C# program cross platform, though I've never used it so I can't comment on how effective it is). There's other languages out there, but for the most part they don't have the same kind of community and 3rd party library support that Java and C# do. Plus, the Visual Studio IDE is AWESOME.

Yes, garbage collection can be bad for games (it won't cause memory leaks, really, but there are times when it'll try and do some garbage collection when there aren't any CPU cycles to spare, causing some jitter/lag occasionally). I don't know how much control you have over garbage collection in Java or C#, but they might give you some kind of way to influence collection times.
[/quote]

Actually the console thing is changing, apparently the PS vita kit is C# based!

Share this post


Link to post
Share on other sites

Mono, huh? I'll have to look into that.

Do you really think C# is good? Better than Java? I hear they're basically the same, and C# seems a bit over-hyped.

C# was made by windows©^tm so it's inherently evil, but I'll look into it further.


I mean Windows+Mac+Linux+XBox = awesome.

Thanks for the sound advice, Cornstalks.


I really do think C# is good. Personally, I do prefer it over Java, but that doesn't mean Java is bad in any way. Also, with XNA, I think C# has a lot of things going for it in terms of game development. Java has some great libraries, but I haven't found anything as solid as XNA. XNA is a few years old, so you won't have access to cutting edge features of DX11, but there's reasons for that (i.e. in order to support the 360).

I don't think Mono implements the XNA framework though, so that might be an issue. There's Mono.XNA, but I don't know the state of that project. If you really are serious about being cross platform, C/C++ are your strongest options, though they can be a living hell to work with at times. Java will definitely be more cross-platform friendly than C# to be honest.

Whatever you choose, you will have to modify the code in order to get it to work on both the PC and a console. Just be aware of that. The modifications may be as big as porting the game to a different programming language, or may be as small as changing some input handlers.

Voxeltron is written in C with SDL to give you an example of a game successfully using voxels, if you're interested.


Actually the console thing is changing, apparently the PS vita kit is C# based!


Really? That's interesting to hear.

Share this post


Link to post
Share on other sites
So PS (I assume you mean PlayStation?) is using C# now as well, eh? That is interesting, Seraph. Thank you.

You guys are being really helpful. Here's more info.
I've been looking at Voxetron, actually. It's use of voxels as a sort of particles for destructable terrain that looks real is just brilliant. Inspiring. The heavy reliance on cubes is not exactly what I'm going for, though.

I'm probably going to work with a voxel/triangle hybrid. Probably something like marching cubes, but not.
I know what I want to do, I can visualize it, but it's still got some options as to how to go about it exactly. I could use triangles, or I could use voxels. I want the physics, but I want the detail, too, so I'll probably steal some triangle logic as bounding boxes for the physics, but then use voxel style details on the objects themselves. Big voxels, though, so I can render really far landscapes without overwhelming the processor. Then I'll fake extra detail into the giant voxels using some neat form of cell shading or something. Probably use a bit of the ol' Marching Cubes method, though. Or something, lol.


Anyway, I won't be needing to work with models/rigging bones. I'm going to find another way of animating since I won't be relying heavily on triangles.
Honestly, I just want to draw pixels on the screen lol. I'll wing the rest if I have to.
But I wanna slap everything into the graphics card for speed. If I can't see for miles, that's a problem.
I'm wanting to make my own very simple but hopefully efficient engine. No textures, like I said, probably edge detection, but lighting is a must have.
But I don't think I need XNA, DirectX, or OpenGL, will I?

I will need something like OpenAL though, since I don't feel the need to reinvent the audio wheel.

Is this a realistic approach?

Share this post


Link to post
Share on other sites
sfml isn't a bad place to start for "drawing pixels", but it only supports C++, python, D, or Ruby. It sits on top of OpenAL and OpenGL, so support for those are built in.

Share this post


Link to post
Share on other sites
You'll need OpenGL or D3D to access the graphics card (unless you go with CUDA and whatever ATIs implementation is called, but I would not do that for a game; its a nightmare). You don't have to use them to render in the traditional method though. You can use certain features of the graphics API and card to render your scenes in your own, custom manner. Voxatron uses OpenGL AFAIK to process the voxels and render the scene, though its rendering pipeline is more customized.

I'm far from being a graphics guru so that's about where my graphics knowledge ends.

Share this post


Link to post
Share on other sites
First and foremost, don't get ahead of yourself. Not to shoot you down but... all those languages? Really? You find java confusing and all you've gotten out of C++ is an error? Then you say you "like" pointers and claim that assembly languages don't screw with your perception of reality? And you want to write your own language?

I have to say that this all sounds rather airy, and no, there is no "messiah" of programming languages - otherwise, why would there be so many? Different languages are good at doing different things, and few (read: none) of us are able to get away with only knowing one. By the way, there are a few IDEs available for Python.

Unfortunately, I just don't really see much grasp of fundamentals here, and if you want to neglect that then you are going to put yourself through an excruciatingly painful experience. Game programming is hard. Apologies for all the negativity here, but pick a language, sit down, and learn it properly. You are throwing around far too many ungrounded opinions.

Now, think about what you really want to do in this game. People talk about speed a lot, but I think the value of that is hugely exaggerated in most cases - yeah C++ is generally faster, but are you really willing to increase your development time for what is probably a trivial and negligible increase in performance? Regarding Java: Garbage collectors today are excellent tools and no, you will NOT have memory leaks, though there is a performance hit. C# is the same story as that, and is slightly better in terms of design (although the portability is not as good, but forget about it coming from microsoft. Stuff and nonsense from idiotic fanboys - C# is a great language).

You have to decide what language is best for you - nothing is "all round" amazing, so you should prioritize that list of requirements first. Although I would say ditch the "speed" concern, especially if you're not going full 3D - you can't really go wrong with Java, C#, or Python.

Share this post


Link to post
Share on other sites
Didn't know that OpenGL was required for Graphics Card stuff, Cornstalks. This helps me a great deal.

And BeerNuts, I'm checking out that link right now, thank you!

---------------------------------------------------------------

J-Dog, I'm gonna try to not get defensive here, but let me explain what I meant by the things I said.

I don't hate any of those languages, and I've been dabbling in programming for a very long time. I never got very good is all.
I just want something perfect for me. Hence the messiah bit. I know it doesn't exist, that's kind of the joke. I DEMAND the ULTIMATE programming LANGUAGE. lol?
And I never could find an IDE for Python, but I've studied it. Practice is obviously better than theory, but I suck with command prompt. I'm still novice at this stuff, after all.

And yes, I'm an idiotic... anti-fanboy? I hate microsoft because they insist on preventing the competition from having access to OUR products. The things WE made with their langauges/whatever. I'm all into the open source thing. Plus they keep stealing ideas (Java->C#, OpenGL->Direct3D, Flash->Silverlight(?)) and locking those to the windows exclusion club, which I don't think is all that great anyway. The darn computers all but shut down in X number of years. How is my computer completely malfunctional now? I know it doesn't compare to the new stuff, but it worked when I bought it, dang it!

And I am doing a full 3D game. I want to be able to see REALLY far, and see a lot of grass and such. That's why I need the speed.
If you don't think I'll take a terrible performance hit, then that is very helpful information that I did not have. Thank you.

All that said, thank you for the harshness. It's totally reasonable to hit me with realism when I'm trying something so out of my league.
I will do this, however. Like I said, seven years of trying. I am in no way capable of giving up. It's just not really possible. I've tried. I failed.

I really hope you'll take me seriously, because I take /this/ very, very seriously. Everyone's got a dream. This is mine.
Must Make Game. I sincerely hope you know how it is.

---------------------------------------------------------------

PS I've got Java and C# IDEs installed on my computer already. I think I have a C++ IDE, too. So whatever you guys think I should do I'm just gonna do. You guys all know better than me what I should go with given my explanation of what I'm planning to do. After all, I'm the novice. How can I choose with any degree of certainty?

Here is the list of my goals/plans again, prioritized:
+ My own simple graphics engine, which might use Voxel-like or Marching-cubes-like designs, but maybe not.
+ As many platforms as possible.
+ A good community for my sanity's sake.
+ Detailed and far rendering.
+ Cell shading or voxels instead of textures, probably. My own lighting probably, too.
+ My own simple physics engine, or someone else's somewhat more advanced one.
+ Anything that can make noise for the game.
- common wants like support for models, textures, and object oriented are not my concern.

I know this list seems impossible, but I'd like to think I'm the irresistible force running against a hopefully movable object.
Must Make Game, right guys? Seven years strong.

Just send me away with a language to work with and we're golden.
And it sounds like most everyone is vouching for C#? Am I correct?

---------------------------------------------------------------

EDIT
I'm looking into SFML, which works with C# and C++ with all of the tutorials being in C++.
SFML looks extremely appealing. Everything is dumbed down for me, I love it!
There's also this nifty tool called CMake which converts my code automatically into any (computer) platform.
That puts C++ right up next to Java, if not beyond it.

Like I said, it also works with C#. I think I should be able to read the C++ tutorials and throw them over to C# with ease.
Thoughts?

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • 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!