Welcome, Guest. Please login or register.

Login with username, password and session length

 
Advanced search

1411674 Posts in 69399 Topics- by 58452 Members - Latest Member: homina

May 17, 2024, 06:29:52 AM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsDeveloperTechnical (Moderator: ThemsAllTook)Need a versitile way to program a 2D game..
Pages: [1] 2 3
Print
Author Topic: Need a versitile way to program a 2D game..  (Read 8719 times)
Juhkystar
Level 0
**



View Profile
« on: March 25, 2010, 01:22:10 PM »

Alright, so I guess I'll introduce myself. I'm a 17 year old "kid" who has been programming little experiments and games in Gamemaker since I was 12. I believe I understand the logical thinking processes of prgramming fairly well, and I know C++ and some basic Java. I'm working with a fellow off the interwebs called Burr. He has been programming about as much as I have, although he leans towards Java rather than C++. He is also becoming fairly proficient with drawing in PS.

Anyways, we are trying to make a game called Distoban that is basically a somewhat simpler RPG meshed with a SHMUP. We were originally using Gamemaker 8.0 to program the game, but it seems like we keep running into limitations to what GM can do. We are trying to use procedural clouds and backgrounds being generated in real time as the player flies across one unending/looping air world. Also, we are generating many objects such as plants, debris, and enemies based on pixel maps and also in real-time. In addition, everything has some sort of physics so that we have plants that actually sway when bumped into, bullets and explosions can actually alter your ship's path, etc.

It seems that the graphic and processor limitations of GM are the source of our distress. So our question to all you fine folk is What would you use to program a game of this scale?.

Currently, I've been looking into XNA, DirectX, and a Lua or Ruby based game engine. It's just that there is so much stuff out there on each of these I'm having a rough time weeding out what exactly would be best for our needs. So any tips on what you all would use? I should mention that all bias is welcome as you are usually biased for a reason. Also, this game is planned to be completely Freeware so we'd prefer to not spend big wads of cash (if any at all) on resources.

Thanks in advance.

Edit: Pic of current work in progress. =/
http://img269.imageshack.us/img269/2558/gui2a.png
We have physics interactions between the plants and ship but you can't tell from the shot...
« Last Edit: March 25, 2010, 01:34:02 PM by Juhkystar » Logged
oahda
Level 10
*****



View Profile
« Reply #1 on: March 25, 2010, 02:02:33 PM »

Quote
Alright, so I guess I'll introduce myself. I'm a 17 year old "kid" who has been programming little experiments and games in Gamemaker since I was 12. I believe I understand the logical thinking processes of prgramming fairly well, and I know C++ and some basic Java.
You just scared the shit out of me! That text might as well have been about me! The numbers and the languages all match.
Logged

Mikademus
Level 10
*****


The Magical Owl


View Profile
« Reply #2 on: March 25, 2010, 03:08:43 PM »

Quote
Alright, so I guess I'll introduce myself. I'm a 17 year old "kid" who has been programming little experiments and games in Gamemaker since I was 12. I believe I understand the logical thinking processes of prgramming fairly well, and I know C++ and some basic Java.
You just scared the shit out of me! That text might as well have been about me! The numbers and the languages all match.
Well, that and that neither of you knows C++. Yet. Tongue

Anyway, my instinctive reaction is to point you toward a C++/Box2D solution, probably employing a library using a relatively strict structure and with much boilerplate work already done for you such as SDL. Then again, there are peeps in here that does some pretty amazing stuff with GM, so do not rule out that platform yet.
Logged

\\\"There\\\'s a tendency among the press to attribute the creation of a game to a single person,\\\" says Warren Spector, creator of Thief and Deus Ex. --IGN<br />My compilation of game engines for indies
Dacke
Level 10
*****



View Profile
« Reply #3 on: March 25, 2010, 03:30:43 PM »

Wah, not C++. There are plenty of languages that are powerful enough, but not as chaotic as C++. Like Java.

Personally, I like to be platform independent and I like using Java. And there are powerful game libraries in Java. But none that I have used or can recommend (yet).
Logged

programming • free software
animal liberation • veganism
anarcho-communism • intersectionality • feminism
Falmil
Level 6
*


View Profile
« Reply #4 on: March 25, 2010, 05:12:51 PM »

While the platform is good, the Java language still seems too verbose for being a higher level language than C or C++.
Logged
moi
Level 10
*****


DILF SANTA


View Profile WWW
« Reply #5 on: March 25, 2010, 06:00:30 PM »


Anyways, we are trying to make a game called Distoban that is basically a somewhat simpler RPG meshed with a SHMUP. We were originally using Gamemaker 8.0 to program the game, but it seems like we keep running into limitations to what GM can do. We are trying to use procedural clouds and backgrounds being generated in real time as the player flies across one unending/looping air world. Also, we are generating many objects such as plants, debris, and enemies based on pixel maps and also in real-time. In addition, everything has some sort of physics so that we have plants that actually sway when bumped into, bullets and explosions can actually alter your ship's path, etc.

I think th eproblem is not in the game engine or the language but rather in your project idea that looks totally nebulous and unrealistically large.
Basically your first game concept appears to be The Matrix 2.0.
It's okay it's happened to all of us.
You need to perfectly define the contours of your game by REMOVING content .

As for the language, C++ or Java or any other language seems fine to me. Hell, even gamemaker woud be fine provided you know what you want to do exactly.
Logged

subsystems   subsystems   subsystems
Ina Vegt
Level 1
*


Girl Game Developer


View Profile
« Reply #6 on: March 25, 2010, 07:52:09 PM »

I'd recommend using Java + Slick2d, Slick2d is intuitive, cross platform, and runs the graphics where they belong, on the GPU.
Logged
Desert Dog
Level 4
****



View Profile
« Reply #7 on: March 25, 2010, 07:57:02 PM »

Quote
. We were originally using Gamemaker 8.0 to program the game, but it seems like we keep running into limitations to what GM can do.

What exactly do you mean by limitations? Is the frame rate hit hard, or what?

I'm a GM user myself, and I think GM should be fine making that, although I certainly won't discourage you from trying other options. [I'd probably look for a game library for C++ )
Logged

gimymblert
Level 10
*****


The archivest master, leader of all documents


View Profile
« Reply #8 on: March 25, 2010, 08:03:47 PM »


Anyways, we are trying to make a game called Distoban that is basically a somewhat simpler RPG meshed with a SHMUP. We were originally using Gamemaker 8.0 to program the game, but it seems like we keep running into limitations to what GM can do. We are trying to use procedural clouds and backgrounds being generated in real time as the player flies across one unending/looping air world. Also, we are generating many objects such as plants, debris, and enemies based on pixel maps and also in real-time. In addition, everything has some sort of physics so that we have plants that actually sway when bumped into, bullets and explosions can actually alter your ship's path, etc.

NOT A GAME, it's a tech demo, wrong forum  Big Laff

/joke
Logged

tomka
Guest
« Reply #9 on: March 25, 2010, 08:08:41 PM »

id vote either gamemaker or flash. lots of awesome games are made in flash and its a pinch to learn
Logged
lpmaurice
Level 0
**


View Profile
« Reply #10 on: March 25, 2010, 09:01:17 PM »

id vote either gamemaker or flash. lots of awesome games are made in flash and its a pinch to learn
I'd second that. And if you truly need to be flexible because your design is changing frequently, I's suggest looking into component-based architecture (here's the classic link http://cowboyprogramming.com/2007/01/05/evolve-your-heirachy/).
Logged

Burr
Level 0
**



View Profile
« Reply #11 on: March 25, 2010, 10:30:26 PM »

Hello TIG. I am Burr. Had a post typed up. Browser crashed. Rage.  Angry
More concise the second time around.

Quote
I think th eproblem is not in the game engine or the language but rather in your project idea that looks totally nebulous and unrealistically large.
Basically your first game concept appears to be The Matrix 2.0.
It's okay it's happened to all of us.
You need to perfectly define the contours of your game by REMOVING content .

Less wisdom, more programming advice. Do not mistake Juhky's humble demeanor for ineptitude. We know what we are in for. Technical "contours" of our game are well defined. There is no need to detail them in this topic.

Game Maker is insufficient. Graphics far too slow. Lighting, weather, particles, trails. The list goes on. Game Maker does not. Flash will likely have the same problem. Sad

Some of you are suggesting Java. Forgive me, but we cannot follow your advice. I have a fervent dislike of Java. Do not ask why.

According to various sources, at least 85% of the Internet uses Windows. The other 15% can run our game through Wine. Or not at all.

We have not considered porting to console.

Here is a rough list of the major components we need:
1. Fast 2D graphics
2. 2D physics engine
3. Win API
4. Basic multithreading
5. Advanced sound engine

We are looking to impliment a scripting language.
Build a construction set.

Currently, Ruby seems to fit the situation well.
However, Ruby is said to be rather slow.
Opinions?

Lua vs. Python vs. Ruby
Which do you prefer and why?

XNA. What of it? Fit for a 2D game? Opinions?
What about Allegro?

Quote
Anyway, my instinctive reaction is to point you toward a C++/Box2D solution, probably employing a library using a relatively strict structure and with much boilerplate work already done for you such as SDL. Then again, there are peeps in here that does some pretty amazing stuff with GM, so do not rule out that platform yet.

Good, precise advice. Thank you, I know of these tools. Now, I will look deeper into them. Smiley


...if you truly need to be flexible because your design is changing frequently, I's suggest looking into component-based architecture (here's the classic link http://cowboyprogramming.com/2007/01/05/evolve-your-heirachy/).

Very interesting! Thank you for the link.
« Last Edit: March 25, 2010, 10:52:03 PM by Burunduk » Logged

oahda
Level 10
*****



View Profile
« Reply #12 on: March 26, 2010, 12:29:11 AM »

Quote
Alright, so I guess I'll introduce myself. I'm a 17 year old "kid" who has been programming little experiments and games in Gamemaker since I was 12. I believe I understand the logical thinking processes of prgramming fairly well, and I know C++ and some basic Java.
You just scared the shit out of me! That text might as well have been about me! The numbers and the languages all match.
Well, that and that neither of you knows C++. Yet. Tongue
Nobody ever will.
I do know enough to make the stuff I wish to make, though.
Except for the OpenGL 3.1+ and GLSL stuff, but I'm buying two bricks to help with that.
I'm cheating with SFML in the meantime.

Wah, not C++. There are plenty of languages that are powerful enough, but not as chaotic as C++. Like Java.

Personally, I like to be platform independent and I like using Java. And there are powerful game libraries in Java. But none that I have used or can recommend (yet).
Since when can you not program portable stuff in C++?
I always program stuff to work for Linux, Mac and and Windows. In that order.
« Last Edit: March 26, 2010, 02:45:34 AM by Skomakar'n » Logged

Alistair Aitcheson
Level 5
*****


"Ali" for short


View Profile WWW
« Reply #13 on: March 26, 2010, 02:57:13 AM »

I think you'll be fine with Game Maker. I have experience with XNA and a little C++, and know that XNA is really really easy when it comes to 2D sprites. In C++ you can do the same stuff with OpenGL but just with a little more work. The back-end work in C++ is what makes it hard imho - making sure it runs, linking this and that and the other. You'll probably learn a lot by doing it in C++, but if you just want to make the game I would say wither XNA or Game Maker (from my own experience that is!)

Personally, I don't know how Game Maker would be a problem I've not really used myself, but I'm assuming it's good at sprite scaling and rotation and stuff? That can make 2D games look very nice, so if it doesn't I'd recommend something else. Otherwise the logic behind what your doing would work in any language. That includes the physics, if you're clever enough about it.

I've not got much experience with physics engines, so I don't know, but there's plenty of physics libraries for XNA now, and of course plenty for C++. But I think most of the physics could be done with Game Maker, and with things like swaying plants it might be more efficient to work out your own way of doing that rather than adapting a physics system to give you the effect you want.

Just my two cents, I hope it's helpful! In short, I think Game Maker will be fine Wink
Logged

skyy
Level 2
**


[ SkyWhy ]


View Profile
« Reply #14 on: March 26, 2010, 03:35:35 AM »

So in short, I guess what people are trying to say is:

  • Are you sure you know you know how to efficiently use GM?
  • Have you exhausted all of it's resources/power with your game?
  • Do you REALLY know what you are doing with GM?
« Last Edit: March 26, 2010, 03:41:31 AM by skyy » Logged

Dacke
Level 10
*****



View Profile
« Reply #15 on: March 26, 2010, 05:05:11 AM »

I only mentioned Java because Juhkystar said he had such a preference. But any established high-level language will do. I think Python (for example) could be a good choice. Just use a library that can use hardware accelerated graphics, if you want fancy graphics. But again, GML will probably work too if used correctly.

One thing that is worth mentioning:
The most important factor for the speed is probably the program's time-complexity. An efficient language can only do so much for you. It's far more important to make sure that each frame doesn't take exponentially more time for each object you add.

Since when can you not program portable stuff in C++?
Since you got lazy, that's when Wink
Having to do specific code for each system can be a chore, especially if you are just starting out. I just like things that automatically are OS/hardware agnostic.
Logged

programming • free software
animal liberation • veganism
anarcho-communism • intersectionality • feminism
nikki
Level 10
*****


View Profile
« Reply #16 on: March 26, 2010, 06:25:51 AM »

Quote
Here is a rough list of the major components we need:
1. Fast 2D graphics (OGL, dx 7, dx 9)
2. 2D physics engine (box2d & chipmunk bindings available)
3. Win API (yes)
4. Basic multithreading (yes)
5. Advanced sound engine (yes native binding OpenAL)

and the scripting could be done in LUA (Also binding implemented natively)

I'd say go blitzmax , it's not free though (80$) but you can try it for free...



About speed and GML; isn't the speed in GML capped, and the language interpreted ? (Instead of compiled and f$%#ing fast ?)
Logged
st33d
Guest
« Reply #17 on: March 26, 2010, 09:08:19 AM »

We are trying to use procedural clouds and backgrounds being generated in real time as the player flies across one unending/looping air world. Also, we are generating many objects such as plants, debris, and enemies based on pixel maps and also in real-time. In addition, everything has some sort of physics so that we have plants that actually sway when bumped into, bullets and explosions can actually alter your ship's path, etc.

Heh, I could manage all that myself in Flash. But I've been developing Flash games for 3 years now and I know how to optimise.

Java wouldn't be any faster than Flash unless you were using Processing, which can use JOGL (opengl libraries) and uses optimised datatypes.

I would say as a warning though - are you a hundred percent sure that the problem is the language and not the code? A process by process speed check could unearth something that is slowing down your game for no good reason.
Logged
Aik
Level 6
*


View Profile
« Reply #18 on: March 26, 2010, 10:23:57 PM »

I would probably go with Python with Panda3D. When I looked into it, it looked rather nice and is certainly able to do whatever crazy graphics stuff you want. Simplicity of Python, speed of C++ and all that. Not sure if physics comes in the package - it's been a while, but I'm sure you can find something there.
Logged
Skofo
Level 10
*****



View Profile
« Reply #19 on: March 26, 2010, 10:51:15 PM »

isn't the speed in GML capped

Whaaat? That's the first time I heard of this. Epileptic

Are you thinking of frame rate, not processing speed?
Logged

If you wish to make a video game from scratch, you must first invent the universe.
Pages: [1] 2 3
Print
Jump to:  

Theme orange-lt created by panic