Register a SA Forums Account here!
JOINING THE SA FORUMS WILL REMOVE THIS BIG AD, THE ANNOYING UNDERLINED ADS, AND STUPID INTERSTITIAL ADS!!!

You can: log in, read the tech support FAQ, or request your lost password. This dumb message (and those ads) will appear on every screen until you register! Get rid of this crap by registering your own SA Forums Account and joining roughly 150,000 Goons, for the one-time price of $9.95! We charge money because it costs us money per month for bills, and since we don't believe in showing ads to our users, we try to make the money back through forum registrations.
 
  • Post
  • Reply
darkhand
Jan 18, 2010

This beard just won't do!

dogmaan posted:

I was planning on doing something similar with Bullet, implement Bullet as a general physics engine, then re-implement parts of it as I learn more applied maths.

So are you saying to make things easier, I should target Q3 and roll my own editor, then once I have a functional editor, re-implement Q3, and/or roll my own renderer?

You could play around with Ogre3d and build an editor around it's rendering capabilities. It's supoosedly pretty portable. That should give you plenty of work, with having at least 1 part of instant feedback (the render) to keep you motivated. After that, you can modify or build-from-scratch your own renderer.

Adbot
ADBOT LOVES YOU

TheMarsVoltaire
Jun 16, 2008
I am trying to create sort of a clone of the old network game Bolo in AS3 and right now I store maps as a two dimensional array that could be described visually like this:



Green tiles represent elements in the array marked as grass and black tiles represent elements marked as road.

However, the tilemap doesn't just have "road" tiles. It has horizontal road, vertical road, left turns, right turns, parking lot corners, left parking lot edges, etc. When drawing the array as a bitmap from the tilemap, I need to determine what type of road each road tile needs to be drawn as.

Nested if statements would be unruly, so I was thinking there must be some way to iterate through each array element and mathematically "check" the adjacent elements, returning a unique integer that could be used to look up the type of road tile from the tile map (0-whatever).

roomforthetuna
Mar 22, 2005

I don't need to know anything about virii! My CUSTOM PROGRAM keeps me protected! It's not like they'll try to come in through the Internet or something!
code:
TileIndex[x][y]=
   ((Tile[x][y-1]==Road)?128:0)   //up
 | ((Tile[x+1][y-1]==Road)?64:0)  //upright
 | ((Tile[x+1][y]==Road)?32:0)    //right
 | ((Tile[x+1][y+1]==Road)?16:0)  //downright
 | ((Tile[x][y+1]==Road)?8:0)     //down
 | ((Tile[x-1][y+1]==Road)?4:0)   //downleft
 | ((Tile[x-1][y]==Road)?2:0)     //left
 | ((Tile[x-1][y-1]==Road)?1:0)   //upleft
Then you have 256 possible road tiles indexed by the sum of the numbers that represent road-adjacencies.
(Since you're not talking C, I should specify that | is a "bitwise or" and could be replaced with plus in this context if you'd rather.)
You might actually want fewer tiles since, eg. diagonal adjacencies aren't relevant if you don't have both the horizontal and vertical in that direction. But it's easier to just have 256 and make irrelevancies look like duplicates of the closest relevant type.

Also bear in mind you need to make sure there's a buffer around the edges of the map so you don't end up checking coordinates of -1.

OneEightHundred
Feb 28, 2008

Soon, we will be unstoppable!

roomforthetuna posted:

Then you have 256 possible road tiles indexed by the sum of the numbers that represent road-adjacencies.
Bolo's tileset is much more compact than this: the entire tileset is 256 tiles. :)

http://www.wxv.co.nz/pcbolo/tiles.bmp

Basically, there are 16 basic road tiles corresponding to whether each adjacent cardinal direction has a road tile on it.

However, it two adjacent perpendicular tiles contain road AND the diagonal between them has a road tile, it will use one of nine "lot" tiles instead, corresponding to 4 t-junctions, 4 corners, and one "unbordered" tile.

Also WinBolo is open source so if you want to rip anything off here you go: http://code.google.com/p/winbolo/

roomforthetuna
Mar 22, 2005

I don't need to know anything about virii! My CUSTOM PROGRAM keeps me protected! It's not like they'll try to come in through the Internet or something!
And if you're rendering with DirectX or OpenGL or anything like that, you need even fewer actual graphical tiles since you can just have 10 actual tiles (corner, straight, T, dead end, lot, lot corner entrance right, lot corner entrance left, lot side entrance, lot corner, lot side), and rotate the texture coordinates for the different directions.

Edit: or even 9, because the lot corner entrance could be flipped as well as rotated.

FlyingDodo
Jan 22, 2005
Not Extinct
dogmaan if you want to make your own editor based around the quake3 .map format I suggest you read this: http://mattn.ninex.info/files/MAPFiles.pdf

wlievens
Nov 26, 2006

roomforthetuna posted:

code:
TileIndex[x][y]=
   ((Tile[x][y-1]==Road)?128:0)   //up
 | ((Tile[x+1][y-1]==Road)?64:0)  //upright
 | ((Tile[x+1][y]==Road)?32:0)    //right
 | ((Tile[x+1][y+1]==Road)?16:0)  //downright
 | ((Tile[x][y+1]==Road)?8:0)     //down
 | ((Tile[x-1][y+1]==Road)?4:0)   //downleft
 | ((Tile[x-1][y]==Road)?2:0)     //left
 | ((Tile[x-1][y-1]==Road)?1:0)   //upleft
Then you have 256 possible road tiles indexed by the sum of the numbers that represent road-adjacencies.
(Since you're not talking C, I should specify that | is a "bitwise or" and could be replaced with plus in this context if you'd rather.)
You might actually want fewer tiles since, eg. diagonal adjacencies aren't relevant if you don't have both the horizontal and vertical in that direction. But it's easier to just have 256 and make irrelevancies look like duplicates of the closest relevant type.

Also bear in mind you need to make sure there's a buffer around the edges of the map so you don't end up checking coordinates of -1.


Your code's cool but make sure to add bound checks, or prevent placing road tiles on map edges!

I remember writing this code about 8 years ago in my then (long-abandoned) isometric RPG. I integrated a "fix roads" button in my map editor because I couldn't get it to run "on the fly". Sweet times.

dogmaan
Sep 13, 2007

FlyingDodo posted:

dogmaan if you want to make your own editor based around the quake3 .map format I suggest you read this: http://mattn.ninex.info/files/MAPFiles.pdf

Thanks, I'm sure this will come in handy.

OneEightHundred
Feb 28, 2008

Soon, we will be unstoppable!
Please don't use the Quake .map format unless you really need to interface with something else that uses it. It's like the perfect example of how to not store convex solid data.

Proper way would be to store the texture axis directions (pre-scaled) and offsets, and store planes as normal/distance. It of course does neither of these, the texture application system is extremely arcane (leading to buggy texture lock, among other things) and the way it stores planes does not make much sense either.

Jick Magger
Dec 27, 2005
Grimey Drawer
Sorry if I missed something that's already posted (I didn't take the time to read all 60 pages), but I'm looking for a series of tutorials or something that would walk me through the basics of game design. Sort of like if you were to take an actual course on it.

On most of the wikis posted in the first few pages, I felt like most of the material was "basics of programming" and then just a lot of general ideas about how to structure a game engine. I'm pretty comfortable with OO programming, but I have trouble learning new concepts on my own. Basically, I need someone to SHOW me how it's done, and then it'll click. Perhaps a tutorial that explains the basics by walking me through a simple game?

OneEightHundred
Feb 28, 2008

Soon, we will be unstoppable!

Jick Magger posted:

Sorry if I missed something that's already posted (I didn't take the time to read all 60 pages), but I'm looking for a series of tutorials or something that would walk me through the basics of game design. Sort of like if you were to take an actual course on it.

On most of the wikis posted in the first few pages, I felt like most of the material was "basics of programming" and then just a lot of general ideas about how to structure a game engine. I'm pretty comfortable with OO programming, but I have trouble learning new concepts on my own. Basically, I need someone to SHOW me how it's done, and then it'll click. Perhaps a tutorial that explains the basics by walking me through a simple game?
I'd love to give an answer to this, but there's a problem in that how to make "a game" depends entirely on what kind of game you want to make. Deus Ex, Just Cause 2, Brain Age, and some breakout clone written in Flash for instance all have nearly nothing in common with one another.

Jick Magger
Dec 27, 2005
Grimey Drawer
Yeah, that's a good point, I get that. Let me try to think of a better way to articulate my question.

[edit] Eh okay I think I've got it. I've got all the parts, I just need to figure out how to apply what I know. I guess that's what it really boils down to.

Jick Magger fucked around with this message at 19:40 on Aug 1, 2010

MasterSlowPoke
Oct 9, 2005

Our courage will pull us through
Just try and make tetris or whatever.

iopred
Aug 14, 2005

Heli Attack!

MasterSlowPoke posted:

Just try and make tetris or whatever.

Or Pong, I find Pong is always a really good example... Hell you only really need 3 classes: Paddle, Ball and your main Pong class.

Blue Footed Booby
Oct 4, 2006

got those happy feet

Jick Magger posted:

Yeah, that's a good point, I get that. Let me try to think of a better way to articulate my question.

[edit] Eh okay I think I've got it. I've got all the parts, I just need to figure out how to apply what I know. I guess that's what it really boils down to.

Another thing to consider is reading through some of the "best practices" and such on the XNA community, even if you aren't planning to use XNA at any point. No matter what you're developing in, there's likely something useful you can learn from poking around there, in particular stuff involving game state management and other less exciting parts of game design that most random rear end blog posts don't seem to ever discuss.

And Nthing pong. You're going to make mistakes, especially if you're the "gently caress preparation, I'm jumping in" type like I tend to be, so you might as well make a single evening turd rather than a four month one. :v:

Jick Magger
Dec 27, 2005
Grimey Drawer
Yeah I started writing a tetris clone last night. I'm really rusty, but other than that I get it. Thanks for helping me make it click.

handsome only face
Apr 22, 2010

Cockroach went out of the room in anger. And roach's go to empty room...

Cockroache's Anarchist


blammo

handsome only face fucked around with this message at 21:20 on Jan 28, 2011

dizzywhip
Dec 23, 2005

dizzywhip fucked around with this message at 21:55 on Nov 9, 2020

OneEightHundred
Feb 28, 2008

Soon, we will be unstoppable!

mit_senf posted:

So I've been considering implementing destructible 2D terrain a-la Worms for a game, but I'm having trouble coming up with a good way to do so.

I could use a matrix of bitfields representing whether each pixel is destroyed or not, but it seems like there would be a more advanced approach. What are some potential ideas for implementing such a system?
You should probably check how much memory such a bitfield array will actually cost you in terms of memory (a 1600x900 bitfield is only 180k of RAM), but if you're really concerned about that for whatever reason, use a quadtree or a KD-tree, which will allow you to assign large swathes of the map as empty, filled, or containing some varying combination of the two.

I wouldn't recommend that if your only concern is RAM, though this would make shot plotting for computer players a substantially faster process.

Scarboy
Jan 31, 2001

Good Luck!
If you noticed, the weapon blasts in Worms are always circular or a calculable path. If you assume all damage are circles, and you store the center position and radius, you can subtract these zones out of your collision detection algorithm.

Drox
Aug 9, 2007

by Y Kant Ozma Post

Scarboy posted:

If you noticed, the weapon blasts in Worms are always circular or a calculable path. If you assume all damage are circles, and you store the center position and radius, you can subtract these zones out of your collision detection algorithm.

In Worms' specific case, isn't it true that the "paths" are really just strings of circles?

Scarboy
Jan 31, 2001

Good Luck!

Drox posted:

In Worms' specific case, isn't it true that the "paths" are really just strings of circles?

Yeah exactly, although I think they use ellipses sometimes.

OneEightHundred
Feb 28, 2008

Soon, we will be unstoppable!
It doesn't necessarily have to be that way, Scorched Earth's terrain could get pretty hosed up by certain weapon types for instance. Either way, I don't think accumulating CSG subtractions would be a good approach because then you'd just have to collide against the terrain AND the subtractions, when you should be able to just collide against the modified terrain.

OneEightHundred fucked around with this message at 23:00 on Aug 10, 2010

roomforthetuna
Mar 22, 2005

I don't need to know anything about virii! My CUSTOM PROGRAM keeps me protected! It's not like they'll try to come in through the Internet or something!
Bitfields are fantastic for collision detection and physics, but horrible for pathfinding. For the purpose of a Worms-style game, bitfields are fine because you really don't need the AI to pathfind - you could probably just test-fire 50-odd randomly aimed imaginary shots and go with the best one. (More or less depending on the AI skill level, but testing 50-odd parabola on a modern computer would be near enough instant, and would already make a tough opponent.) The only concern then would be having the AI walk/swing/whatever competently. If I was doing this, I'd surely do it with bitfields.

(Also you could speed things up similar to OneEightHundred's quadtree but more simply [and correspondingly less effectively], by doing a mipmapping of your bitfields - but I really don't think it would be worth the extra effort unless your maps are so big that bitfields wouldn't be a good method anyway, which would be pretty big.)

Another way you could do it (which I've used for a different purpose), which might be better for very large maps, is with boundary-lines (run lines clockwise so a west-to-east line is 'floor' and an east-to-west line is 'ceiling') and some sort of sorted links to the lines so you're not constantly checking against everything (I used a loose grid where each square of the grid links to the lines that pass through that square). The coding involved in doing it that way is loving horrible compared to the simplicity of bitfields, though, and in most cases it's worse for pathfinding and worse for, well, pretty much everything except space.

Also of note - if your displayed maps are made of an image then you may not even need (or want) separate bitfields for collision detection, you can just check against the displayed map pixels - I believe it's faster to compare "is DWORD (y*width+x) of the image my transparent color" than to compare "is bit (x&31) of DWORD ((y*width+x)/32) of the bitfield set". (If the display map is solely in video RAM this is a bad idea - but if you're wanting to arbitrarily remove pixels whenever there's an explosion then you'd be wanting a copy in system RAM for that editing anyway, so you might as well be keeping a copy in system RAM the whole time so that a change only has to copy it one way.)

haveblue
Aug 15, 2005



Toilet Rascal
You could probably do bitfield pathfinding with marching squares, which is fairly simple.

onecircles
May 6, 2009
I've always wanted to make videogames. For a while I got into game maker and made some cool little prototypes, then for a while there was no room in my life for working on videogames so I put it on the back burner.

Now I've decided to work at it again, but this time by approaching it from the programming side, by becoming a competent programmer, rather than from the games and ideas side.

When I used to work with game maker I never learned any GML. It seemed a bit of a waste to learn a whole computer programming language that is only functional in this one very small space (game maker). I need to be able to program to do the cool stuff I want to do though. So I decided I would learn python. There is a module extension for python called "Pygame" that is designed for making games.

I'm planning on becoming competent in Python before I even begin with Pygame.

Now I'm looking around on the Pygame website at the projects that have been made with it, and I am not impressed. They really look awful, especially when compared to some of the game maker projects I've seen and played before.

I also watched a video by "thenewboston" on youtube detailing some of the stuff you can do in Pygame and how to do it, and it just seems really inefficient and impractical.

Sometimes it is best to create something using a Gui rather than by code. You could theoretically program line by line, the computer graphics in final fantasy - the movie, but this is an unspeakably inefficient way of going about it. Best just use Maya instead.

Mind you, I am not an experienced programmer, or an experienced maker of games really. I also don't really know what's going on in pygame, as I'm mainly focusing on python right now.

But what I'm worried about is that I might not be taking the correct path. My far off goal is to be one of those cool guys that makes their own awesome games from scratch. Folks like cactus, darth lupi, tapeworm etc. All these guys use game maker!

I don't know what to do. I want to be a competent programmer if I'm going to make games, but I don't want to get so wrapped up in the minutiae of one particular aspect of game development and never make any games as a result. For instance, I don't want to learn C++ to make games. I am only one man. I don't want to bite off more than I can chew. To make videogames on your own you have to know how to do a lot of things pretty well. Art, math, music, programming.

Many people, including myself, have been dismissive of game maker because it operates through a GUI. If you rely upon that GUI too heavily, you won't be able to make anything very complex or interesting, but I've come to realize that a GUI is a tool. And creative people need tools to make their work more efficient.

To take an example from python: I read on some website that even developers that work primarily in other languages like knowing python because they can use it to go through the conceptual development phase of building the software many times faster than in the lower level languages.

Do any of you guys use Game Maker? Do you program in Python or Pygame? What are your impressions of these.

I want to make my own videogames. I have retro sensibilities. Maybe I should just learn Game Maker and GML. Is there any way to make python or any other (real) programming language work with game maker?

I am honestly prejudiced against GML. Why would I learn it when I could spend the energy learning a real language that has uses outside of games?

Thanks in advance to anyone who takes the time to comment on the things I've said or give me advice or answer my questions.

Pfhreak
Jan 30, 2004

Frog Blast The Vent Core!
This is a really strange post. You seem to have your mind made up and are looking for us to rationalize for you or something.

Python is a great programming language. Pygame, though I've never used it, is a great entry into the game dev world from what I hear. You really aren't going to get too far without an understanding of object oriented design, however.

Games are generally magnitudes more complex than software. There are all sorts of constraints, design decisions, algorithms, and other issues that generally require a decent understanding of some computer science fundamentals.

It's not always the case, and there are exceptions, but you probably aren't one of them (statistically.) So I'd say you should sit down with Pygame or XNA and mess with it. Just don't expect to have a game within a year.

Shavnir
Apr 5, 2005

A MAN'S DREAM CAN NEVER DIE

Pfhreak posted:

Games are generally magnitudes more complex than software.

Sorry to pull this out of context but did you mean "just the software" or all software in general.

onecircles
May 6, 2009
"This is a really strange post. You seem to have your mind made up and are looking for us to rationalize for you or something."

Sorry it sounds that way. I have already developed some opinions, but I have not made up my mind. I guess what I'm asking for is really basic: What is the best way to get into game development if I want to eventually achieve a high level of competency? I, however, know there is no best way. So I'm asking for opinions and recommendations.

"Python is a great programming language. Pygame, though I've never used it, is a great entry into the game dev world from what I hear. You really aren't going to get too far without an understanding of object oriented design, however."

Yeah, this is the sort of thing that made me decide to come at it from the programming side this time instead of the making games side.

"Games are generally magnitudes more complex than software. There are all sorts of constraints, design decisions, algorithms, and other issues that generally require a decent understanding of some computer science fundamentals."

I totally understand what you're saying, but you must realize, I'm coming from Game Maker. Where you literally drag guys into a room then they start running around. So in that case, not more complex than software. If I'm going to make it very far you're right, I really do need to understand some computer science fundamentals, which is why I'm learning python and doing the MIT open course ware for it. Moving at things from the software side rather than the game making side.

"It's not always the case, and there are exceptions, but you probably aren't one of them (statistically.) So I'd say you should sit down with Pygame or XNA and mess with it. Just don't expect to have a game within a year."

Yeah, I know. The types of games I want to make will require a big foundation of different skills that I don't currently have.

Thanks for your advice.

Pfhreak
Jan 30, 2004

Frog Blast The Vent Core!

Shavnir posted:

Sorry to pull this out of context but did you mean "just the software" or all software in general.

Heh, a little booze and I forget basic communications. I meant to say more complex than average business software (winforms apps, that sort of thing.)

ambushsabre
Sep 1, 2009

It's...it's not shutting down!

onecircles posted:

"This is a really strange post. You seem to have your mind made up and are looking for us to rationalize for you or something."

Sorry it sounds that way. I have already developed some opinions, but I have not made up my mind. I guess what I'm asking for is really basic: What is the best way to get into game development if I want to eventually achieve a high level of competency? I, however, know there is no best way. So I'm asking for opinions and recommendations.

"Python is a great programming language. Pygame, though I've never used it, is a great entry into the game dev world from what I hear. You really aren't going to get too far without an understanding of object oriented design, however."

Yeah, this is the sort of thing that made me decide to come at it from the programming side this time instead of the making games side.

"Games are generally magnitudes more complex than software. There are all sorts of constraints, design decisions, algorithms, and other issues that generally require a decent understanding of some computer science fundamentals."

I totally understand what you're saying, but you must realize, I'm coming from Game Maker. Where you literally drag guys into a room then they start running around. So in that case, not more complex than software. If I'm going to make it very far you're right, I really do need to understand some computer science fundamentals, which is why I'm learning python and doing the MIT open course ware for it. Moving at things from the software side rather than the game making side.

"It's not always the case, and there are exceptions, but you probably aren't one of them (statistically.) So I'd say you should sit down with Pygame or XNA and mess with it. Just don't expect to have a game within a year."

Yeah, I know. The types of games I want to make will require a big foundation of different skills that I don't currently have.

Thanks for your advice.

I think the thing is that you have to know what you want to do. If you have a bunch of simple ideas that you want to see if they work or not, but don't want to spend a year learning XNA just to test out, then go ahead and open up gm / construct and get a prototype out. If you want to make complex games or are really interested in the inner workings of them, then go the programming route. There are middle paths too, like flixel, but that's a whole other conversation.

OneEightHundred
Feb 28, 2008

Soon, we will be unstoppable!

Shavnir posted:

Sorry to pull this out of context but did you mean "just the software" or all software in general.
Well, it's certainly much more "multi-discipline" than business software.


haveblue posted:

You could probably do bitfield pathfinding with marching squares, which is fairly simple.
The nice thing about using a tree structure is that you can commit modifications to it without rebuilding the entire thing, for whatever that's worth.

Orzo
Sep 3, 2004

IT! IT is confusing! Say your goddamn pronouns!

Pfhreak posted:

Heh, a little booze and I forget basic communications. I meant to say more complex than average business software (winforms apps, that sort of thing.)
I think this really depends. Sure, it's more complicated than small applications and your average Winforms/WPF utilities, but you'd be surprised how terrible the OO is in game programming compared to some of the stuff you see in enterprise software development.

OneEightHundred
Feb 28, 2008

Soon, we will be unstoppable!

Orzo posted:

I think this really depends. Sure, it's more complicated than small applications and your average Winforms/WPF utilities, but you'd be surprised how terrible the OO is in game programming compared to some of the stuff you see in enterprise software development.
Well, there's structural complexity and there's discipline diversity. I think the latter is what makes games really "complicated": The theory behind light behavior is pretty math-heavy, physics behavior even more so, rendering is one massive set of performance tradeoffs and engineering challenges, concurrency has been thrust into the foreground on top of all this recently, and then there are genres like sandbox games which pose design questions of their own, and MMOs which require the same sort of high-performance infrastructure development as enterprise software does.

It's probably safe to say that the Unreal Engine and its associated tools, for instance, are around the same level of complexity as numerous enterprise tools.

dizzywhip
Dec 23, 2005

dizzywhip fucked around with this message at 21:55 on Nov 9, 2020

Larz2021
Feb 2, 2001

OneEightHundred posted:

Well, there's structural complexity and there's discipline diversity. I think the latter is what makes games really "complicated": The theory behind light behavior is pretty math-heavy, physics behavior even more so, rendering is one massive set of performance tradeoffs and engineering challenges, concurrency has been thrust into the foreground on top of all this recently, and then there are genres like sandbox games which pose design questions of their own, and MMOs which require the same sort of high-performance infrastructure development as enterprise software does.

It's probably safe to say that the Unreal Engine and its associated tools, for instance, are around the same level of complexity as numerous enterprise tools.

As someone working to make the Unreal Engine do something besides "Make a Gears of War Game", I can say its way too complex.

roomforthetuna
Mar 22, 2005

I don't need to know anything about virii! My CUSTOM PROGRAM keeps me protected! It's not like they'll try to come in through the Internet or something!

roomforthetuna posted:

Another way you could do it (which I've used for a different purpose), which might be better for very large maps, is with boundary-lines [...]
I forgot to say that the other advantage of this is that it more closely resembles what you'll need to do if you want to transition your stuff to 3D, because bitfields really won't work out in 3D. Minecraft-style notwithstanding.

But seriously, if you can do what you want with your bitfields or pixel-checks, do do it that way, because it is at least one and a half metric fuckloads easier.

Drox
Aug 9, 2007

by Y Kant Ozma Post

roomforthetuna posted:

I forgot to say that the other advantage of this is that it more closely resembles what you'll need to do if you want to transition your stuff to 3D, because bitfields really won't work out in 3D. Minecraft-style notwithstanding.

But seriously, if you can do what you want with your bitfields or pixel-checks, do do it that way, because it is at least one and a half metric fuckloads easier.

Oh my god someone use the minecraft style to make a worms-like game!!!

Vietnom nom nom
Oct 24, 2000
Forum Veteran

onecircles posted:

Do any of you guys use Game Maker? Do you program in Python or Pygame? What are your impressions of these.

I've created games in C++/Java/Python via PyGame/Lua and Game Maker (using a mixture of the GM gui and GML).

Game Maker is fine for creating games, and I've seen examples of people doing impressive things with GM using GML. That said, I can assure you that during development you will run into situations where you spend more time trying to overcome GML's limitations than dealing with the programming problems at hand. Ultimately the time you spend struggling with GML can be more productively spent learning something like Python (assuming you have the motivation to do so).

I tried GM because I wanted to see how rapidly I could prototype something using it. I started with the GUI just to see how powerful it was, and how much I could get done with it, but quickly ran into enough limitations/problems that I knew I had to switch to mostly GML. After figuring out GML, I was able get further, but found myself fighting the language at times. There are certain game archetypes GM is particularly suited for, once you start breaking out of those molds, you quickly see the limitations you are under.

quote:

Now I'm looking around on the Pygame website at the projects that have been made with it, and I am not impressed. They really look awful, especially when compared to some of the game maker projects I've seen and played before.

This is purely a matter of art. Technically speaking Pygame is perfectly capable of producing great looking 2D, it's really just a matter time and energy spent on aesthetics and the skill of the artist.

I think since GM is much more accessible it tends to draw a lot of people in who are good artists but not necessarily good programmers.

quote:

Yeah, I know. The types of games I want to make will require a big foundation of different skills that I don't currently have.

I would encourage you to make something dead simple in PyGame after learning the bare basics of Python. At the very least it will give you an idea of what you are getting yourself into.

Even though Python is generally thought of as a friendlier language, it has land mines of its own. Balancing the frustration of learning to program against the frustration with the limitations of GM is ultimately what should give you your answer. Neither is worth learning if it saps your motivation to the point where you give up.

Adbot
ADBOT LOVES YOU

Vinterstum
Jul 30, 2003

onecircles posted:

Do any of you guys use Game Maker? Do you program in Python or Pygame? What are your impressions of these.

Game Maker is great for learning game design, if that's the path you want to go, but it's fairly useless for learning actual game programming.

Python is used a fair amount in the industry, but mainly for peripheral things. Tools and support stuff (and a few places as an embedded scripting language). It's definitely a useful language to learn, though. PyGame can get you some nice general game programming experience, but keep in mind that 3D is a big part of the picture these days.

Honestly, I'd just go with C# and XNA. It's the closest you're gonna get to professional game development while still being easy to learn: It teaches you Visual Studio, it's using DirectX, and C# is closer to C++ than Python is.

  • 1
  • 2
  • 3
  • 4
  • 5
  • Post
  • Reply