Quick Links: Download Gideros Studio | Gideros Documentation | Gideros Development Center | Gideros community chat | DONATE
Pros and Cons of 3D vs 2D — Gideros Forum

Pros and Cons of 3D vs 2D

Some recent threads about 3D features have diverged into discussions of whether Gideros should support 3D at all, or just focus on being the best 2D game engine it can be. I'm posting this to give that specific debate its own thread.

Anyone who's seen my recent posts will know I'm on the side of supporting 3D, though not necessarily trying to become a full-featured 3D game engine. The recent developments in 3D support are powerful enough that I've decided my next release will be a 3D game built with Gideros, and while there are 3D features I'd be happy to have and would use, I don't expect or even want Gideros to ever try to offer the kind of 3D support that an engine like Unity provides. I'd much rather have a thin layer over a common 3D engine like OpenGL, than a highly proprietary 3D system with its own steep learning curve like Unity.

I recently mentioned in a post that I anticipate spending between 1,000 and 2,000 hours on my current game project, a 3D fishing game. I know some Gideros users like to produce a new game in a week or two of work, so I can imagine someone seeing my post thinking "Hold up - if a 3D game takes that long to develop, I'm officially on team 2D." So I'm going to offer a rebuttal that that argument just in case anyone is thinking that:

The game I'm currently working on would take at least 1,000 hours even if I stuck to a 2D format. It's true that supporting 3D will take more time, but not by a huge amount, and I think the value of the resulting game will justify the extra time. The design of this game is something I've had in mind for years, and I've written up a lot of the details, but suffice to say it involves infinite content, a simple experience for the new user, a gradual ramp up to very sophisticated play for the most serious users, and my goal is to create a game that retains players for the long term as they rise in levels and compete for the top spots on the leader boards. While I love the idea of taking a new game from concept to publication in a week or so, the games that make the money that pay my bills have been long-term projects, things I developed with the goal of making something that's better than the best games in their niche markets.

I think someone could create a fully playable 3D game in Gideros very quickly, almost as quickly as someone could crank out a simple but fun 2D game. Yes, that assumes you have 3D modeling skills, just like developing a 2D game requires you to have 2D graphic design skills. But I think it can be done, and I'm tempted to do so to prove the point. So the next time I have a good block of unbroken development time in front of me, I'm going to try to do that. I'll see how quickly I can create a playable 3D game with Gideros, and share the code when I'm done. I'm thinking it might be a 3D vehicle swerving to dodge boulders, or a 3D spaceship dodging asteroids... In any case I won't use any existing 3D models. If I can whip something up in 20 hours or less, I'll make a tutorial out of the process. That just sounds like so much fun to me right now...

Of course I'm not going to try to convince anybody that their game should be 3D and not 2D. That depends on the nature of the game in question, and the skill set of the developer. There's plenty of market for 2D games, and Gideros is an outstanding platform for creating those. But I believe it can be a very viable 3D platform while remaining an excellent 2D platform.

Paul





+1 -1 (+3 / -0 )Share on Facebook

Comments

  • MoKaLuxMoKaLux Member
    edited December 2019
    a gideros 3D tutorial <3 :)
    my growING GIDEROS github repositories: https://github.com/mokalux?tab=repositories
  • Awesome! o:)

    Although I don't share 100% of Paul's views on 3d workflow (I share maybe 90%), I'm very curious how 3d stuff works on low level.
    > Newcomers roadmap: from where to start learning Gideros
    "What one programmer can do in one month, two programmers can do in two months." - Fred Brooks
    “The more you do coding stuff, the better you get at it.” - Aristotle (322 BC)
  • hgy29hgy29 Maintainer
    I am completely in favor of some basic 3D support into Gideros. In fact I added it back in 2014, been using it for 3D views over 2D games and for fully 3D games. I am slowly trying to improve 3D support for Gideros by adding more advanced techniques in it: depth mapping/shadows in 2019.10, instancing will be in (2019.12), and all those are just very light changes to gideros, just the bit of code needed to make those features of OpenGL (and DirectX/Metal) available to the developer.
    I want to keep Gideros philosophy: a code-first sdk with a clean an easy to use api, but Gideros has never been for me a 2D game engine only, actually not even just a game engine either.
    +1 -1 (+2 / -0 )Share on Facebook
  • @PaulH Nice article! I think there is room for 3D in Gideros, even though I feel its primary focus should remain on 2D games. Using a combination of 2D and 3D is going to be interesting try :)

    I'm hoping that the 3D stuff is going to be easy to use, and I mean easy like in the same way a Bitmap becomes a 2D object.

    How will collision work? My thoughts are initially that some variant of cbump could be created to work with 3D. I am thinking that just using non rotated bounding cubes for collision would be very fast and for a lot of small projects, would be more than adequate.

    Anyway, I'm excited to watch how 3D is implemented, however now that this is all happening and it might be exciting and new... there are still some basic features missing from Gideros such as native path finding. Some of these things are really things that any 2D engine should supply :)
  • @PaulH You misunderstood me, I said that a big team is needed not to create a game, but to support modern 3d functions of gideros.

    I will also say a few words about longevity: the games I create are an experiment, I tried to create both quality long-term and fast games. - and the price of the game does not depend on how high-quality or how long it was made, the game I wrote in 15 minutes brought me 8000$, and the games I made for a long time brought nothing.

    Creating games is a lottery.

    Likes: MoKaLux, plicatibu

    my games:
    https://play.google.com/store/apps/developer?id=razorback456
    мій блог по гідерос https://simartinfo.blogspot.com
    Слава Україні!
    +1 -1 (+2 / -0 )Share on Facebook
  • PaulHPaulH Member
    edited December 2019
    @oleg, I don't mean to suggest only games that take a long time to develop can be successful. I'm really impressed by anyone who can turn out a profitable game quickly, and I'd love to check out your 15 minute game. That's outstanding!

    A 3D or 2D game could be created in a few hours, or in thousands, depending on how much detail one wants to provide. And I don't think there's a right answer to how much time one should invest. All of my successful apps have taken 1,000+ hours, but there are many successful apps out there that have been created in far less time. Flappy Bird is a prime example - going viral with a game that could be cranked out in an hour or two.

    I agree that to build and maintain a fully featured 3D engine is more work than any small team can handle. But as @hgy29 pointed out, OpenGL is the 3D engine doing the heavy lifting under the hood. With that in mind, if Gideros can be a thin layer over OpenGL, and if it's not a huge amount of work to make a lot of the power of OpelGL accessible through Gideros, I'm all for it.

    I've now spent just under 8 hours creating a 3D game with Gideros as a proof of concept.
    I created some quick and dirty 3D models with Blender, demonstrated making one mesh a child of another, made the camera position dynamic, and demonstrated some limited 3D collision detection. Here's what it looks like so far, as an HTML5 export:

    http://www.pishtech.com/space_3d/

    Swipe around the screen to steer the spaceship, and tap on the screen when a missile is ready to fire it. I'm going to make just a few minor tweaks, then clean up the code, add some comments, and share it.


    +1 -1 (+3 / -0 )Share on Facebook
  • SinisterSoftSinisterSoft Maintainer
    edited December 2019
    @PaulH Here is something similar I made in the early days of the Gideros 3D extensions - so I could check out of the 3D worked. In the end, I made it a mix of 2D and 3D. The new features being added in Gideros 2019.12 should allow me to make some nice improvements.

    https://deluxepixel.com/players/retrostar/

    Likes: MoKaLux

    Coder, video game industry veteran (since the '80s, ❤'s assembler), arrested - never convicted hacker (in the '90s), dad of five, he/him (if that even matters!).
    https://deluxepixel.com
    +1 -1 (+1 / -0 )Share on Facebook
  • Yes, games can be made very quickly but not until you have made a library of classes that can be mashed together quickly. I've now got such a collection of classes but run out of inspiration currently, mostly due to lack of an easy to use multiplayer system :D
  • olegoleg Member
    edited December 2019
    antix said:

    Yes, games can be made very quickly but not until you have made a library of classes that can be mashed together quickly. I've now got such a collection of classes but run out of inspiration currently, mostly due to lack of an easy to use multiplayer system :D

    It is possible to create your own multiplayer system based on the gaming plugin

    Player search and connection function works - you just have to create your own game room function

    Or maybe someone is able to fix the gaming plugin - to get all the multiplayer features out there
    my games:
    https://play.google.com/store/apps/developer?id=razorback456
    мій блог по гідерос https://simartinfo.blogspot.com
    Слава Україні!
  • The problem is the google one isn't multi-platform.

    Why do you think so? You can use Google services from any platform
    my games:
    https://play.google.com/store/apps/developer?id=razorback456
    мій блог по гідерос https://simartinfo.blogspot.com
    Слава Україні!


  • @antix - you can use Xtralife, I made a Lua include file for it a while back - they now support multiuser cross-platform games. You just need to add the new stuff to the xtralife.lua file.


    Xtralife is free too for the first 1 million users, or always free is you host yourself.

    https://xtralife.cloud/

    How to use it? Where to find xtralife.lua file?
    my games:
    https://play.google.com/store/apps/developer?id=razorback456
    мій блог по гідерос https://simartinfo.blogspot.com
    Слава Україні!
  • SinisterSoftSinisterSoft Maintainer
    edited December 2019
    I read somewhere that google had discontinued the iOS google play interface.

    xtralife was known as clan of the cloud, here is a link:
    http://forum.giderosmobile.com/discussion/comment/52964/#Comment_52964

    From what I can find only google sign in is supported on iOS.

    Multiplayer is depreciated:
    "Warning: Real-time and turn-based multiplayer services are deprecated as of September 16th, 2019. These services are unavailable for new games. For more information, see Ending support for multiplayer APIs in Play Games Services."

    Coder, video game industry veteran (since the '80s, ❤'s assembler), arrested - never convicted hacker (in the '90s), dad of five, he/him (if that even matters!).
    https://deluxepixel.com
  • Yes, sorry. I've merged my comments that were off-topic into one post and deleted the originals.
    Coder, video game industry veteran (since the '80s, ❤'s assembler), arrested - never convicted hacker (in the '90s), dad of five, he/him (if that even matters!).
    https://deluxepixel.com
Sign In or Register to comment.