QUESTION: Doom and Wing Commander-style games in Corona

Howdy. New to Corona and have a couple of newbie questions.

Background: Was looking at the Chris Roberts kickstarter project for Star Citizen and got to remembering Wing Commander for the PC. The game was pure scaled sprites in a space simulation. Was also remembering Doom, Wolfenstein, etc… I think games like doom used 8 rotational views of monsters and cycled between them depending upon the monster’s facing towards you.

Does anyone have any thoughts on implementing this in CoronaSDK? OIr can anyone point me towards existing code samples (for CoronaSDK) that show sprite scaling, sorting, etc. And ways to manage a player’s position in (and view of) such a game world.

[import]uid: 182425 topic_id: 33509 reply_id: 333509[/import]

do you know much about LUA?

There isnt any sample that i know of, if you have some decent knowledge for LUA, then i’m sure you can figure it out very easily. [import]uid: 119483 topic_id: 33509 reply_id: 133110[/import]

Hello @gamedeveloper, welcome to the Corona community.
The first thing to understand about Corona is that it’s a 2D engine, not a 3D engine like Unity3D. And Doom, while simplistic in many ways, was still in fact a 3D engine… I actually built a few custom Doom levels years ago using some 3rd-party tool.

Corona is not geared toward 3D worlds. The closest somebody has come, I believe, is the following “raycasting engine” which is considerably advanced, but an interesting study in advanced coding.
http://developer.coronalabs.com/code/raycasting-engine

As for the other things you request… sprite usage, scaling, flipping, etc… this is all easily achieved in Corona. The sprite engine is very powerful and supports output from popular 3rd-party tools like TexturePacker.

Anyway, you mention Doom and Wing Commander (both classics!) but I’m not sure exactly what kind of game you have in mind. If you describe your vision in more detail, perhaps the community can guide you as to if/how Corona might help you achieve it.

Best regards,
Brent
[import]uid: 200026 topic_id: 33509 reply_id: 133160[/import]

Some of it is possible (like sprites pre-rendered from different angles) and most of it not (like having Doom-like 3D environment). It all depends on what you want to accomplish.
I myself made a pseudo-3D game in Corona ( www.spin-up-game.com ), and it worked well, but I had very specific requirements where camera position didn’t change, so I could simulate 3D by rescaling the sprites.
Agree with Brent, if you give more specific requirements, someone would surely guide you to solution (or directly tell you to not bother if it’s not possible). [import]uid: 80100 topic_id: 33509 reply_id: 133175[/import]

@Ugobyte - been using Lua for about 4 months to design levels for a Cocos2D game. Before that we were using Objective-C to build levels. I have a high familiarity with several programming languages, but as a ‘script kiddie’ I’m better copy/paste/modifying existing code. Writing from scratch is for the real programmers…

@Brent - thanks for the info. I was aware that Corona is a 2D engine, was just curious about existing code/games that show it being used for 2.5D (or psuedo-3D).

@Nosheet - that’s an awesome game. Just bought it. Gyrus Meets Crazy Climber! If sales have stalled, have you thought about reskinning and re-releasing it, or going with a FREE ad support version. It really is a friggin awesome game the way it is though… And Neo-Retro is a name I use on another forum… Har!

@ALL - I’ve been in the game business as a game and level designer (and pixel artist) for over 10 years first project was for the gameboy color. Been gaming since the 8-bit Atari (Star Raiders!).

I’m designing a 3rd-person game where the player avatar is locked into a fixed X and Y position near the bottom middle of the screen. There is an assumed Z-plane which recedes into the distance with basic convergence characteristics (Y-height and sprite scaling simulate distance into game world). The player can move the view ‘forwards’ and ‘rotate’ the view to the left and right. I’d like to have sprite-based enemies as well as structures which react to this camera movement. I’d also like to be able to use the Box2D physics system and perhaps convert from screen-based XY interactions into my psuedo-3D XZ interactions (think pushing and bumping into things on the XZ plane as well as objects which create a gravity field that can suck you towards them).

So [bad analogy alert] think Space Harrier with the player locked in position near the bottom middle of the screen and the ability to rotate the camera 360 degrees.

http://hardcoregaming101.net/spaceharrier/cryptic.png

(…are the image tags turned off in this forum?)
[import]uid: 182425 topic_id: 33509 reply_id: 133221[/import]

do you know much about LUA?

There isnt any sample that i know of, if you have some decent knowledge for LUA, then i’m sure you can figure it out very easily. [import]uid: 119483 topic_id: 33509 reply_id: 133110[/import]

Hello @gamedeveloper, welcome to the Corona community.
The first thing to understand about Corona is that it’s a 2D engine, not a 3D engine like Unity3D. And Doom, while simplistic in many ways, was still in fact a 3D engine… I actually built a few custom Doom levels years ago using some 3rd-party tool.

Corona is not geared toward 3D worlds. The closest somebody has come, I believe, is the following “raycasting engine” which is considerably advanced, but an interesting study in advanced coding.
http://developer.coronalabs.com/code/raycasting-engine

As for the other things you request… sprite usage, scaling, flipping, etc… this is all easily achieved in Corona. The sprite engine is very powerful and supports output from popular 3rd-party tools like TexturePacker.

Anyway, you mention Doom and Wing Commander (both classics!) but I’m not sure exactly what kind of game you have in mind. If you describe your vision in more detail, perhaps the community can guide you as to if/how Corona might help you achieve it.

Best regards,
Brent
[import]uid: 200026 topic_id: 33509 reply_id: 133160[/import]

Some of it is possible (like sprites pre-rendered from different angles) and most of it not (like having Doom-like 3D environment). It all depends on what you want to accomplish.
I myself made a pseudo-3D game in Corona ( www.spin-up-game.com ), and it worked well, but I had very specific requirements where camera position didn’t change, so I could simulate 3D by rescaling the sprites.
Agree with Brent, if you give more specific requirements, someone would surely guide you to solution (or directly tell you to not bother if it’s not possible). [import]uid: 80100 topic_id: 33509 reply_id: 133175[/import]

@Ugobyte - been using Lua for about 4 months to design levels for a Cocos2D game. Before that we were using Objective-C to build levels. I have a high familiarity with several programming languages, but as a ‘script kiddie’ I’m better copy/paste/modifying existing code. Writing from scratch is for the real programmers…

@Brent - thanks for the info. I was aware that Corona is a 2D engine, was just curious about existing code/games that show it being used for 2.5D (or psuedo-3D).

@Nosheet - that’s an awesome game. Just bought it. Gyrus Meets Crazy Climber! If sales have stalled, have you thought about reskinning and re-releasing it, or going with a FREE ad support version. It really is a friggin awesome game the way it is though… And Neo-Retro is a name I use on another forum… Har!

@ALL - I’ve been in the game business as a game and level designer (and pixel artist) for over 10 years first project was for the gameboy color. Been gaming since the 8-bit Atari (Star Raiders!).

I’m designing a 3rd-person game where the player avatar is locked into a fixed X and Y position near the bottom middle of the screen. There is an assumed Z-plane which recedes into the distance with basic convergence characteristics (Y-height and sprite scaling simulate distance into game world). The player can move the view ‘forwards’ and ‘rotate’ the view to the left and right. I’d like to have sprite-based enemies as well as structures which react to this camera movement. I’d also like to be able to use the Box2D physics system and perhaps convert from screen-based XY interactions into my psuedo-3D XZ interactions (think pushing and bumping into things on the XZ plane as well as objects which create a gravity field that can suck you towards them).

So [bad analogy alert] think Space Harrier with the player locked in position near the bottom middle of the screen and the ability to rotate the camera 360 degrees.

http://hardcoregaming101.net/spaceharrier/cryptic.png

(…are the image tags turned off in this forum?)
[import]uid: 182425 topic_id: 33509 reply_id: 133221[/import]