• Hey Guest! Ever feel like entering a Game Jam, but the time limit is always too much pressure? We get it... You lead a hectic life and dedicating 3 whole days to make a game just doesn't work for you! So, why not enter the GMC SLOW JAM? Take your time! Kick back and make your game over 4 months! Interested? Then just click here!

Not Sure if I should Stick With GM or not :(

B

Beep

Guest
I'm facing a bit of a crisis of confidence at the moment, and I'm not sure what the best option for me is.

For the past several months I've been working on a 'retro', pixel art, RPG, using a staggered isometric projection in GMS 1.4. This has been my first serious attempt at coding a game and my goal is to target mobile platforms, as well as Windows and Mac.

I'm really proud of what I've achieved so far, given that I'm a novice programmer... I've worked out the maths to implement the staggered isometric viewpoint and movement, I came up with my own tile based collision system, because I'm using Tiled to create the level data for the game I've created my own converter to take the enormous JSON exports from Tiled and turn them into my own heavily optimised binary files (that include all the object and collision data at sometimes less than 1% of the JSON filesize!), aiming to make the game more download friendly on mobile devices, I've got doors you can walk through, stairs you can go up and down, floors and roofs that hide and reveal themselves as and when, and all in all I think it's a pretty decent start for a noob.

The recent announcement that 1.4 was going to be 'sunsetted' next year has come as a pretty awful wake up call... I knew when I started the project that it wouldn't be around forever, but I'm ashamed to admit I hadn't considered that changes to the target platforms themselves might affect its functioning... My nightmare scenario now is that by the time I've finished the project, Apple or Google will change something that breaks GM and there'll be nothing I can do about it.

GMS 2 was announced a couple of months after I began... I signed up for the beta, but quickly realised that despite all the improvements, and it's billing as "the next generation of 2D development" it was not suitable for my project, due to some (In my humble opinion) glaring oversights... the inability to have overlapping tiles, and the abandonment of Y axis depth sorting.

I know the old depth system still exists in GMS 2, but testing it out resulted in frame rates of less than 25% of what I can achieve in 1.4, and the best alternative as far as I can tell that someone has come up with (all credit to them) is an awkward and expensive bodge using priority lists (and then that was only for use with a handfull of instances, not tiles). When asked about future plans for better support for isometric projection the most confidence inspiring reply has been "one day, but it probably won't be how you're expecting" :|

So I'm faced with a difficult choice... do I carry on developing in 1.4? (which I love, and has enabled a mathmatically challenged moron such as myself to code a better system than I thought I'd be able to... so far anyway), gambling that YoYo make changes to their new engine in the not too distant future (which I can't see happening... they spent years developing GMS 2 and I can't see them breaking it and making changes to accomodate a small percentage of users), which might pan out, or might leave me with a game that only runs on limited number of devices... do I switch to GMS 2 and hope that someone smarter than me can figure out a performance friendly way of dealing with isometric projection? Or do I take the nuclear option and throw away the months worth of work I've put in and switch to another engine? (I've been looking at Godot, but I'm struggling to understand the language... and the thought of having to start from scratch makes me feel nauseous!)

Or am I just being stoopid... am I unaware of some other way of dealing with the problem? I know I could draw everything as sprites in an asset layer, but that doesn't solve the depth problem... Someone suggested drawing tiles on two layers, and offsetting one of them... but frankly, what a ball-ache that would be, and I have enough layers to wrangle as it is.

Sorry for the epic post... thanks for making it this far... can anyone offer any advice? :)
 
G

Guy_Typing

Guest
I've been programming with GMS for about five years and one thing I've learned, the more skillfull/experienced you become the more you can problem solve your issues and overcome them. By the time GMS1.4 is "sunsetted" you will have a lot more experience under your belt and GMS2 should be more seasoned itself. Hopefully it should be more affordable by then and GMS2 is definitely similar enough to GMS1.4 so that when you approach it with your more advanced skills from what you have learned you should be able to conquer your challenges with it.

Don't get me wrong, I definitely have my gripes with YoYo Games and GMS2. I own both GMS1.4 and GMS2 and actually still use GMS1.4 instead of GMS2 because of issues I have with it. I'm not trying to sell you on GMS2 or keep you around for the yoyo heads or anything like that. I'm just looking at it from the point of view of what will work for you.

Edit: Removed question asking if you have an alternative. Re-read your post and saw your mention of a software engine you are looking at.

Double Edit: One thing you can do is try and tackle your issues with GMS2 now and if you decide that it's absolutely impossible to do it, then you can blow it up nuclear style if you can find another engine and/or language that suits your needs.
 
Last edited:
R

Rukiri

Guest
Y axis depth was dropped because of the improved tile editor which honestly is pretty awesome, honestly say it rivals TileD but that might just be giving it too much credit. Prior to 2.0 most people were using objects and barely using tiles as well... tiles pre 2.0 were just handled horribly yet somehow a step up from what Godot provides "what were they thinking?..."

The ability to have full access to the camera alone is enough for me to stick to 2.0 I was even planning on jumping ship to unity, while C# > GML GMS2 also uses Box2D so I mean physics wise they should be equal plus you can use liquid fun if you want.

For a retro 2D RPG GMS2 is really all you need, if you really doing HD stuff than yea go with Unity but GMS2 is good enough and there's a community around it. Godot while a Good 2D has basically...it's very luke warm to say the least, discord is semi active, the forums are barely active if that says anything about the community or it's adoption rate.
 

Perseus

Not Medusa
Forum Staff
Moderator
To be honest, chances of export modules breaking down right after the sunset are slim enough to warrant the success of your efforts with GMS 1.4 to a large extent. Although it's possible to replicate obsolete features in a way or the other, I can understand how painful the process sometimes is. In fact, at times, it's easier to start from scratch rather than trying to fix compatibility issues.

If you're optimistic that you can finish the project before the maintenance cease, stick with GMS 1.4 for this project. If not, wait for YYG to implement proper isometric support in GMS 2 before porting it over. If you can't wait, port it over right away and write/search for a system that meets your requirements. Evidently depends on how long you take (and how long you want to take) to finish this project of yours.
 

FrostyCat

Redemption Seeker
To be honest, chances of export modules breaking down right after the sunset are slim enough to warrant the success of your efforts with GMS 1.4 to a large extent.
Let's not kid ourselves. The chances of the GMS 1.4 export modules breaking after the sunset is NOT slim for iOS and Android. You were around to see how frequently these exports became store-unworthy during their lifetimes.
 
F

Freedom2Fight

Guest
I have a similar problem. I got my copy of GMS during a steam summer sale. And then sometime later there was a humble bundle one... much cheaper... it still stings.

Right, anyways. A few months working on my project, GMS2 was announced. That was really disconcerting. I kept working on my project but I felt like I was treading on thin ice.

I thought that was it for my project, it was all for nothing. Then I talked about it with Rusty, he said it was fine I could still develop things using GMS 1.4 and I could still publish it. Still, I feel this uncertainty, can I still publish projects using GMS 1.4 after the sunset? Or should I get GMS2?
 
K

Kenjiro

Guest
Hibba dibba da dibba do.
 
Last edited by a moderator:

Juju

Member
inability to have overlapping tiles
You can sort of use a sprite layer if you want tiles that break the grid. I hope @Mike follows through on a layer-wide offset that works for tile layers specifically (or maybe that made it into the last update? I'm not up to speed on the tile business).
 

Bingdom

Googledom
Yep, very risking with mobile development at this point. I've had many 1-star reviews of people saying "App does not launch". Even with fairly new devices.
 

Mike

nobody important
GMC Elder
You can sort of use a sprite layer if you want tiles that break the grid. I hope @Mike follows through on a layer-wide offset that works for tile layers specifically (or maybe that made it into the last update? I'm not up to speed on the tile business).
You can do this in the IDE and in code already: layer_x(), layer_y() will cause the rendering of the tilemap to be offset using these values.
There is also a tilemap offset which is then added to the layer one. So not sure what other kind of offsets you'd need.

Also, as to no having overlapping tiles. Lets be clear, in 1.x these weren't tiles, they were graphical blobs placed in the room. As such, they were incredibly slow. if you want to keep doing this, then use asset layers. these let you place sprites anywhere in the room without you having to manage them, on top of this, as they are sprites, they will also animate. These are more powerful than 1.x tiles, but will have the same performance issues.

What you really want to do, is block in the world with tile layers - lots of them if you need to, they are very quick, then use asset layers to add "detail" where you need it. This is much faster and gives you access to the powerful new tile tools, while still letting you place "detail" (like vines, clutter etc) pixely where ever you want.

As to the old depth system. This is still there, and it still works. You can even set the depth of layers manually if you want so that runtime depth values are as you expect.

What kind of game are you trying to reproduce? I assume it's a 3/4 perspective one or something?
 
B

Beep

Guest
What kind of game are you trying to reproduce? I assume it's a 3/4 perspective one or something?
No, isometric, a la Baldur's Gate (tiles that have a 2:1 ratio). I'm using a staggered method for placement, so instead of a diamond shaped map, it remains roughly square.

I'm not helping myself, I know... I'm already using many "layers" of tiles (or blobs, if you want to call them that) which I store in ds_lists, so that on entering or exiting a building, or climbing stairs I just loop through the list of id's and hide or show the tiles to reveal building interiors, upper floors or roofs etc. The rooms are generated at runtime, from binary files of data I've derived from Tiled JSON exports, so it all gets set up and all I have to do is alter the depth of the player as they move around the room. It took a while get the system I have working, but it works really well.
 

Juju

Member
layer_x(), layer_y() will cause the rendering of the tilemap to be offset using these values.
Cool cool, I seem to remember something about this from a few months ago... not important now, eh? Cheers Mike.
 
Top