Asset - Project 3D Top Down/Platformer Engine + OBJ Importer

kamiyasi

Member
https://marketplace.yoyogames.com/assets/4335/platform-or-top-down-3d-engine




Project last edited on 9/11/16 with the following changes:
added new editable examples for platforming and top down style games

Add this package to your top down or platforming game project and start making a 3D game! This project is not for beginners in Game Maker Studio, and it is recommended that you have 3D modeling experience if you use this package. With this package, you can use your own OBJ files from the 3D modeling software of your choice in Game Maker Studio.

Watch the video in the link on this page for a brief tutorial on how to get started.

Features:

3D mesh importing

Support for traditional 2D sprites and Spine sprites

Camera movement and zoom

Pause menu

Resolution settings

Shader support

Platforming and top down game engine examples

https://marketplace.yoyogames.com/assets/4335/platform-or-top-down-3d-engine



Please watch the video on this page for information on how to use this package. If you have any comments or questions, post them in this thread. If you have any problems or questions on how to use the package, you can also email me at [email protected][/MEDIA]
 
Last edited:
I'd be interested in seing an actualy gameplay sequence made out of this engine :) Because right now the characters seem stuck or something :eek:
Maybe show what your engine can do as animations?
 

kamiyasi

Member
I'd be interested in seing an actualy gameplay sequence made out of this engine :) Because right now the characters seem stuck or something :eek:
Maybe show what your engine can do as animations?
Thanks for the input. GM Studio doesn't support traditional 3D animations and for the sake of keeping this engine as easy to get started with as possible, complex animations is something that would have to be implemented on a project to project basis. However, simple transformation based animations are doable and in the next update I will add some editable 3D animations such as a floating, rotating object, an object that rotates to face a point, etc. If you are more interested in using 2D characters in a 3D environment, then there are a lot more options available. I have already tested both Spine animations and standard 2D animations and they look great; there's no z fighting with 2D or 3D objects. I will be updating the video for this project with the next update so I can show off some additional animation features when that rolls out.

All that being said, there will be a lot more in the next update including a tight controlling platformer character with heavily commented code, and a top down Box2D physics tank game character. Both of these new examples should be a good way to get started with whatever kind of game you're trying to make. This update should be out in less than 2 weeks.
 
Last edited:

kamiyasi

Member
Hey there; it's me again! There's been an update today so check out the updated video that's now in the first post on this thread. If you have any comments or suggestions, as always feel free to leave them in this forum, on that video, or wherever!
 
D

Deleted User

Guest
This looks nice. I have experience w/ Maya and Blender. However, can I I import textured/ UV mapped Blender models even when saved as obj? And does this engine support 2D parallax backgrounds along with being able to place 3D objects/platforms in the foreground? Do you have more videos that showcase the features? Also, if using platformer demo how hard would it be to input A.I with enemies and adding new moves to character? Do I need to know "special" 3D programming gimmicks? Novice programmer here. Only have art skills.

This engine looks good for games like Tomba, Klonoa, and NiGHTS, which all mixed 3D and 2D. Very cool engine. Might consider for my project.

KLONOA


TOMBA

NiGHTS
 
Last edited by a moderator:

kamiyasi

Member
This looks nice. I have experience w/ Maya and Blender. However, can I I import textured/ UV mapped Blender models? And does this engine support 2D parallax backgrounds along with being able to place 3D objects/platforms in the foreground? This engine looks good for games like Tomba, Klonoa, and NiGHTS, which all mixed 3D and 2D. Very cool engine. Might consider for my project. Do you have more videos that showcase the features?
Yes! The UV map data is included in the OBJ file export whether it's out of Maya or Blender. However, Game Maker can't read anything outside the UV space, so you have to keep all of your UVs inside the square. (So if you want something to tile you need to overlap UVs.) You can make a parallax background and a non-parallax background. In the tank example, you can see a non-parallax background and in the Fallout Shelter style example, you can see a parallax space background. If you have any other specific features you want to see in more detail, let me know.

As for "special 3D programming" skills, I'd say no but you should have at least a basic understanding of how 3D rendering and transformations work in Game Maker. Beyond that it's pretty self explanatory unless you want to get more complex like making your own shaders.

A game like Nights is a bit unique however in that the path curves around a bit in the 3rd dimension, which would be possible to recreate but would require quite a bit of work and some technical knowhow. For the sake of simplicity and easy set-up, the examples I'm providing play on a straight line.
 
Last edited:
D

Deleted User

Guest
A game like Nights is a bit unique however in that the path curves around a bit in the 3rd dimension, which would be possible to recreate but would require quite a bit of work and some technical knowhow. For the sake of simplicity and easy set-up, the examples I'm providing play on a straight line.
The standard 2D planimetric frame is still cool, but would be really neat to get path curves aka 2.5D implemented. Though it seems like a challenge I wouldn't have a clue how to go about it! Would be amazing though.
 

kamiyasi

Member
The standard 2D planimetric frame is still cool, but would be really neat to get path curves aka 2.5D implemented. Though it seems like a challenge I wouldn't have a clue how to go about it! Would be amazing though.
I agree, it would be neat. One challenge however is that if you're using sprites, they can only be drawn at a Z depth of zero. You can use textured walls that face the camera instead to fix this problem, and that doesn't take too much work to figure out. The biggest problem is with the program knowing where objects are in relation to one another if you were to use a 3D path, as collision detection is handled in 2D space. I'm sure it's doable but that's actually a bit beyond me.
 
D

Deleted User

Guest
I agree, it would be neat. One challenge however is that if you're using sprites, they can only be drawn at a Z depth of zero. You can use textured walls that face the camera instead to fix this problem, and that doesn't take too much work to figure out. The biggest problem is with the program knowing where objects are in relation to one another if you were to use a 3D path, as collision detection is handled in 2D space. I'm sure it's doable but that's actually a bit beyond me.
I'll have to purchase and check out the demo to see what you mean. I'll play around with it. Also, I'm guessing 3D objects can be used for actual characters/enemies? I read your statements stating that 3D animations aka rigged models don't go well with gamemaker. Understandable given this is a 2D engine. And I don't own Spine (though it looks really neat!) and was wondering if this engine supports traditional frame by frame 2D sprites. I'm assuming so. I guess I'll just have to play around with the demo.
 

kamiyasi

Member
I'll have to purchase and check out the demo to see what you mean. I'll play around with it. Also, I'm guessing 3D objects can be used for actual characters/enemies? I read your statements stating that 3D animations aka rigged models don't go well with gamemaker. Understandable given this is a 2D engine. And I don't own Spine (though it looks really neat!) and was wondering if this engine supports traditional frame by frame 2D sprites. I'm assuming so. I guess I'll just have to play around with the demo.
You can use 3D objects as characters as you can see in my tank game example, but they might not always look the best. you can perform basic transformations like making a 3D car's wheel or a windmill blade spin, but animating something like a person is a bit beyond GM without an extension or some clever coding tricks.
 
D

Deleted User

Guest
You can use 3D objects as characters as you can see in my tank game example, but they might not always look the best. you can perform basic transformations like making a 3D car's wheel or a windmill blade spin, but animating something like a person is a bit beyond GM without an extension or some clever coding tricks.
Is your character in demo using Spine? Or just traditional frame by frame animation?
 

rIKmAN

Member
The character in the platforming demo uses Spine but both Spine and frame animations work.
Could you show a video or gif of the Spine character from the demo animating on top of the 3D background?
How do you handle collision between the 2D Spine character and the solid 3D walls of the Fallout Shelter style demo?

Also I noticed in the tank demo on the video the tank drives through the rock when it should collide?
 

kamiyasi

Member
Could you show a video or gif of the Spine character from the demo animating on top of the 3D background?
How do you handle collision between the 2D Spine character and the solid 3D walls of the Fallout Shelter style demo?

Also I noticed in the tank demo on the video the tank drives through the rock when it should collide?
You can see a Spine character animating in 3D space in the platforming example. Collisions are handled just like a normal 2D platforming game, with 3D objects being drawn by the wall/floor objects. The rocks in the tank game have a simple box 2D circle collider, but collision could be made more accurate instead.
 

rIKmAN

Member
You can see a Spine character animating in 3D space in the platforming example. Collisions are handled just like a normal 2D platforming game, with 3D objects being drawn by the wall/floor objects. The rocks in the tank game have a simple box 2D circle collider, but collision could be made more accurate instead.
Ah I didn't realise the platformer was a Spine character, I was referencing the static sprites from the first example in the video.
That makes sense with the circle collider, although tidying it up might lead to less questions and more sales.

Could you elaborate on the 2D/3D collision a little, I'm still not sure how it works?
ie The Fallout Shelter demo, and colliding with the walls/floors of each individual "room".

Good work though, looks good!
 

kamiyasi

Member
Ah I didn't realise the platformer was a Spine character, I was referencing the static sprites from the first example in the video.
That makes sense with the circle collider, although tidying it up might lead to less questions and more sales.

Could you elaborate on the 2D/3D collision a little, I'm still not sure how it works?
ie The Fallout Shelter demo, and colliding with the walls/floors of each individual "room".

Good work though, looks good!
Sure. That example actually doesn't have collision right now, but if you wanted to add collision, you would just need the mask of the sprite to only cover the area where the model has floor (or walls).
upload_2016-9-14_20-15-16.png <<<< so something like this where black is solid and white is transparent
 

rIKmAN

Member
Sure. That example actually doesn't have collision right now, but if you wanted to add collision, you would just need the mask of the sprite to only cover the area where the model has floor (or walls).
View attachment 2792 <<<< so something like this where black is solid and white is transparent
OK I understand the principle of it, but when you scroll across the level the perspective changes on the 3D "rooms" so you see either side of the walls etc.

Wouldn't this mean that your mask would then not fit the room from the new perspective?

I'm probably misunderstanding something as I'm not up to speed with GM terminology yet - when you say "sprite" with reference to the mask covering the area that has walls/floor, are you talking about the texture of the 3D model, or using the mask as a invisible collision texture of sorts? Or something else?

Sorry for any misunderstanding, just trying to get my head around it?
 

kamiyasi

Member
OK I understand the principle of it, but when you scroll across the level the perspective changes on the 3D "rooms" so you see either side of the walls etc.

Wouldn't this mean that your mask would then not fit the room from the new perspective?

I'm probably misunderstanding something as I'm not up to speed with GM terminology yet - when you say "sprite" with reference to the mask covering the area that has walls/floor, are you talking about the texture of the 3D model, or using the mask as a invisible collision texture of sorts? Or something else?

Sorry for any misunderstanding, just trying to get my head around it?
Sorry if it's hard to explain. Collisions happen in a 2d space. In 3D, that space would be at a Z depth of 0. The perspective is irrelevant to the collision as that is all handled on a 2D plane at the same depth that the player is on. In your room, you would see a 2d representation of the 3D space with sprites representing collision walls, floors, etc. when the game is started, it goes into 3D mode and you see the models in place of the 2d graphics, but the physics stay the same.
 
P

Poshu

Guest
I can't read anything about platform support. Is it windows only or does it support osx and linux as well?
 

kamiyasi

Member
I can't read anything about platform support. Is it windows only or does it support osx and linux as well?
I am a Windows user so I haven't tested any other platforms but it should work across the board with any system that supports shaders, surfaces, and 3D functions. As far as I know Android is the only target that would not fully support it.
 
L

Lahssoo

Guest
Hey, any hope for this (or a new version) getting ported on GMS2?
 

kamiyasi

Member
Hey, any hope for this (or a new version) getting ported on GMS2?
The answer to that questions is... maybe? I haven't gotten in on the beta for GMS2 and I wasn't planning on buying it until it has all the target platform exports and features that GM1 has plus enough additions to be worth upgrading. I don't even know if GMS2 will have a marketplace, but if it does and I end up using it, I probably will.
 
L

Lahssoo

Guest
It has access to the marketplace. For everything else, it's your call. (I'll buy it as soon as it's compatible though).
 
Top