2D games with TGE
by GAMEHACK3R · in General Discussion · 09/25/2008 (7:45 pm) · 12 replies
So ive been quite busy this fortnight, i have been working like mad to get a demo complete for my main project (hacking simulator) when i decided to make some 2d games from scratch to better my knowledge of collision detection, object handling, level management and AI. But since im a starving programmer i cant afford to get my hands on TGB.
So i set out to make some 2d games on TGE. AND so 2 weeks later here we are.
*pong
*space invaders
*sidescroller (screeny not shown , side scrollers i found are glorified space invaders)
*platformer
*fighting game
----------------------------->>>>>>>>>>>>>>> scroll
----------------------------->>>>>>>>>>>>>>> scroll
Sorry about the crappy/stolen art , i was more concerned with how it worked rather than how it looked, tho everything is animated and moves/acts as you would expect.
The games arent bug free but they all work like the real thing, which is what counts.
Im about to get started on making an isometric/topdown RPG game, in 2d. I plan on making it multiplayer so i can get a better understanding of the server/client arc . I guess before i get started on it , does this already exist for TGE ( TGB adventure kit exists ino but as far as i can tell its not multiplayer either).
If it doesnt already exist and there is enough interest, leave a message in this thread , and ill put together a package.
So i set out to make some 2d games on TGE. AND so 2 weeks later here we are.
*pong
*space invaders
*sidescroller (screeny not shown , side scrollers i found are glorified space invaders)
*platformer
*fighting game
----------------------------->>>>>>>>>>>>>>> scroll
----------------------------->>>>>>>>>>>>>>> scroll Sorry about the crappy/stolen art , i was more concerned with how it worked rather than how it looked, tho everything is animated and moves/acts as you would expect.
The games arent bug free but they all work like the real thing, which is what counts.
Im about to get started on making an isometric/topdown RPG game, in 2d. I plan on making it multiplayer so i can get a better understanding of the server/client arc . I guess before i get started on it , does this already exist for TGE ( TGB adventure kit exists ino but as far as i can tell its not multiplayer either).
If it doesnt already exist and there is enough interest, leave a message in this thread , and ill put together a package.
#2
Cool screenies.
Can you elaborate any more on your TGE/2D experience? Still learning.
Thanks,
SC
09/27/2008 (10:13 am)
Hi GAMEHACK3R,Cool screenies.
Can you elaborate any more on your TGE/2D experience? Still learning.
Thanks,
SC
#3
Behavior system
Particle effects (built in)
Parallax scrollers
Tile-map system.
The only REAL reason you would want to make TGE/TGEA into a 2d game engine is for the lighting and the shading, but you might as well use TX, even if it does have a different coding/scripting language.
09/27/2008 (11:11 am)
Why should you make TGE into TGB? Buying TGB may be $100 more, but it has many things that TGE doesn't have:Behavior system
Particle effects (built in)
Parallax scrollers
Tile-map system.
The only REAL reason you would want to make TGE/TGEA into a 2d game engine is for the lighting and the shading, but you might as well use TX, even if it does have a different coding/scripting language.
#4
I'll like to see your 2d examples.
Please put together that package.
Thanks.
09/27/2008 (1:32 pm)
Hi GAMEHACK3R.I'll like to see your 2d examples.
Please put together that package.
Thanks.
#5
By attempting to make the same brush strokes, color creation and going through the same process of making the artwork as the master did you improve your skills and learn the "correct" way for that particular style and (depending who you copy) you gane the fundamental basics for creating your own artwork in the future. The same can be applied for game design and programming.
The reason why i made a 2d game "engine" ontop of TGE was to learn the fundamentals of how a game is made , not just making(modding) a game itself.
And why do that , well to improve my overall skills as a game programmer and designer.
Anyone that has completed a playable game will tell you that the entire process was a great learning experience. The next time you attmept to do it, it is easier.
Tyler you make a good point TGE does not have any of those features obviously i had to create those 2D systems from scratch for TGE.
pong was a great start point for that, even tho it is an incredibly simple game to play ,
the game requires most of the basic 2d elements.
*player input ( keyboard and gamepad )
*collision detection (how else are you going to hit the ball)
*behavior system (your AI opponent and the ball itself)
*tile maping (everything you see on screen)
So as you can see , from making Pong you learn a great deal about game creation and engines.
i was surprised when i started making space invaders.You have to have all of the elements that were in Pong tho alot had to be added
*behavior system ( which handles 51 AI moving and firing individually on screen )
*projectile system/particle effects ( for when you or the AI fires their weapon )
*dynamic object handling ( creation and removal of visual elements onscreen ie if you destroy a ship )
*inventory ( player lives , high score , current score etc )
*level loading ( placement of all objects at a starting location , if the player dies game resets )
*basic animation ( in this case only for the invaders themselves )
*damage application ( when the player is hit he loses a life )
the next step was to make a sidescroller , it was basically the same as space invaders with a few changes
here the biggest challenge was to make a parallax scroller system otherwise you have a static background.
*parallax scroller ( once i had created one layer(in code not just physically) i duplicated it so i could modify each speed individually )
*object spawning ( spawning of AI and powerups )
*animation ( slightly more complex animation )
the next logical step for me was to make a 2d fighting game. It contained all of the above elements but a few more had to be added
*animation system ( complex animation system handling many differnet animation sequences )
*playerinput capture ( without this you cant have a combo system )
*combo system ( which determines if the player wants to perform a combo or simply move foward )
*event based AI system ( if the player keeps blocking , the AI will grab them and throw them )
*scrolling environment ( moving entire environment not just the background and having the players move in that environment)
*damage application ( when player or AI is hit their health is reduced , when it is 0 they lose that round and the fight resets )
Finally I created a Platformer. i was surprised just how difficult it was . My goal was to have the player fall out of the sky at first, then land on a plaform , run to the other end of the platform and jump to another where a "pickup" item was. When the player jumped touching the "pickup" item it would disappear and spawn an AI "undead ninja" on the platform below which would then start patrolling , if the player gets to close to the "undead ninja" he will attack the player. To do this i had to add the following.
*environmental collision detection
*gravity ( for player and AI/objects(if selected) )
*item pickups
*AI spawning
*Improved Dynamic AI ( which has its own environmental collision detection as well as player "awareness" and can now handle an "unlimited" number )
So now by the time i had made the platformer i had made the following elements/systems for my game.
*player input
*playerinput capture
*combo system
*collision detection
*behavior system
*tile maping ( not as user friendly as TGB, actually not userfriendly at all )
*projectile system/particle effects
*dynamic object handling
*inventory
*level loading/reloading
*animation system
*parallax scroller
*damage application
*scrolling environment
*environmental collision detection
*gravity
*Dynamic AI
And i can say i have learnt more about the entire game making process and programming by starting from scratch in two weeks
than i have in a few years.
The next step is going to be multiplayer isometric RPG (diablo).
Which is going to require far more work and i already know it will be harder than making a normal game with TGE.
This is as close to making a 3D game engine as you can get since all the pricipals apply , without going 3D.
*Enchanced AI ( greater interaction with the player ie. quests , vendor , pets )
*free playermovement via mouseclick
*level transitions ( aiming for seamless transition )
*expanded inventory manager
once those have been added i will aim for full multiplayer management , player positions , chat , server connections etc, and add "roguelike"( en.wikipedia.org/wiki/Roguelike) level creation and "monster" spawning which has been used in the diablo series.
Ill leave it at that for today , hopefully someone will have learned something from my experience.
So feel free to post comments , i would love to hear some input or ideas as to what elements/features i should add or have missed. Ill put it all in a package once i am finished.
09/27/2008 (9:22 pm)
I have a fine arts background and the best/fastest way to develop your skill is to create a "Pasticcio" of a masters artwork (a Pasticcio is basically a copy of an artwork).By attempting to make the same brush strokes, color creation and going through the same process of making the artwork as the master did you improve your skills and learn the "correct" way for that particular style and (depending who you copy) you gane the fundamental basics for creating your own artwork in the future. The same can be applied for game design and programming.
The reason why i made a 2d game "engine" ontop of TGE was to learn the fundamentals of how a game is made , not just making(modding) a game itself.
And why do that , well to improve my overall skills as a game programmer and designer.
Anyone that has completed a playable game will tell you that the entire process was a great learning experience. The next time you attmept to do it, it is easier.
Tyler you make a good point TGE does not have any of those features obviously i had to create those 2D systems from scratch for TGE.
pong was a great start point for that, even tho it is an incredibly simple game to play ,
the game requires most of the basic 2d elements.
*player input ( keyboard and gamepad )
*collision detection (how else are you going to hit the ball)
*behavior system (your AI opponent and the ball itself)
*tile maping (everything you see on screen)
So as you can see , from making Pong you learn a great deal about game creation and engines.
i was surprised when i started making space invaders.You have to have all of the elements that were in Pong tho alot had to be added
*behavior system ( which handles 51 AI moving and firing individually on screen )
*projectile system/particle effects ( for when you or the AI fires their weapon )
*dynamic object handling ( creation and removal of visual elements onscreen ie if you destroy a ship )
*inventory ( player lives , high score , current score etc )
*level loading ( placement of all objects at a starting location , if the player dies game resets )
*basic animation ( in this case only for the invaders themselves )
*damage application ( when the player is hit he loses a life )
the next step was to make a sidescroller , it was basically the same as space invaders with a few changes
here the biggest challenge was to make a parallax scroller system otherwise you have a static background.
*parallax scroller ( once i had created one layer(in code not just physically) i duplicated it so i could modify each speed individually )
*object spawning ( spawning of AI and powerups )
*animation ( slightly more complex animation )
the next logical step for me was to make a 2d fighting game. It contained all of the above elements but a few more had to be added
*animation system ( complex animation system handling many differnet animation sequences )
*playerinput capture ( without this you cant have a combo system )
*combo system ( which determines if the player wants to perform a combo or simply move foward )
*event based AI system ( if the player keeps blocking , the AI will grab them and throw them )
*scrolling environment ( moving entire environment not just the background and having the players move in that environment)
*damage application ( when player or AI is hit their health is reduced , when it is 0 they lose that round and the fight resets )
Finally I created a Platformer. i was surprised just how difficult it was . My goal was to have the player fall out of the sky at first, then land on a plaform , run to the other end of the platform and jump to another where a "pickup" item was. When the player jumped touching the "pickup" item it would disappear and spawn an AI "undead ninja" on the platform below which would then start patrolling , if the player gets to close to the "undead ninja" he will attack the player. To do this i had to add the following.
*environmental collision detection
*gravity ( for player and AI/objects(if selected) )
*item pickups
*AI spawning
*Improved Dynamic AI ( which has its own environmental collision detection as well as player "awareness" and can now handle an "unlimited" number )
So now by the time i had made the platformer i had made the following elements/systems for my game.
*player input
*playerinput capture
*combo system
*collision detection
*behavior system
*tile maping ( not as user friendly as TGB, actually not userfriendly at all )
*projectile system/particle effects
*dynamic object handling
*inventory
*level loading/reloading
*animation system
*parallax scroller
*damage application
*scrolling environment
*environmental collision detection
*gravity
*Dynamic AI
And i can say i have learnt more about the entire game making process and programming by starting from scratch in two weeks
than i have in a few years.
The next step is going to be multiplayer isometric RPG (diablo).
Which is going to require far more work and i already know it will be harder than making a normal game with TGE.
This is as close to making a 3D game engine as you can get since all the pricipals apply , without going 3D.
*Enchanced AI ( greater interaction with the player ie. quests , vendor , pets )
*free playermovement via mouseclick
*level transitions ( aiming for seamless transition )
*expanded inventory manager
once those have been added i will aim for full multiplayer management , player positions , chat , server connections etc, and add "roguelike"( en.wikipedia.org/wiki/Roguelike) level creation and "monster" spawning which has been used in the diablo series.
Ill leave it at that for today , hopefully someone will have learned something from my experience.
So feel free to post comments , i would love to hear some input or ideas as to what elements/features i should add or have missed. Ill put it all in a package once i am finished.
#6
The incremental process is a great way to learn and it seems that it has benefited you a lot.
Thanks again for the post and keep us posted with the package.
I'll read this post offline and might have some suggestions.
SC
09/28/2008 (9:26 am)
Excellent Post, GAMEHACK3R!The incremental process is a great way to learn and it seems that it has benefited you a lot.
Thanks again for the post and keep us posted with the package.
I'll read this post offline and might have some suggestions.
SC
#7
10/19/2008 (11:02 pm)
Ah, this is super cool. I had been intending to get around to this subject with TGE. I'll try to get in contact with you to discuss further, I want to assist you with this.
#8
I study programing in my college's lab where could only provide me with TGE.
actually i like 2d more.(i am a freshman :D)
sir ,could you please give me some example ?
10/23/2008 (12:15 am)
Cool !!.I study programing in my college's lab where could only provide me with TGE.
actually i like 2d more.(i am a freshman :D)
sir ,could you please give me some example ?
#10
12/30/2008 (7:30 am)
Big update coming soon
#11
last few months working on my main project and developing this one.
Sadly this project nor my main are at the point where they are ready to be "packaged"
as such. If anything both projects have "blown" into much larger undertakings
than i originally planned (tho i expected this).
im not even sure what to call this anymore .. its started off as a learning
experience but has turned into a 2d "engine" that sits ontop of TGE
capable of the following genres "out of the box" so to speak.
classic arcade
side scroller (R-type)
fighting game
platformer
beat'em'up
realtime strategy
isometric RPG
I have been thinking about writing some tutorials , making some editors up and
putting the whole thing together as a "2D for TGE" package. BUT honestly im unsure
as to wether this conflicts with GG. Id love to hear from the GG staff before
I begin doing this, honestly i have no idea.
But getting back to the update. Since my last post ALOT has been added into the project.
i did have to do a little back tracking . After my last post i jumped straight into
making the isometric RPG and quickly realised that i had to go back and work on a few fundamental
features which i missed . The most important feature i missed was object cascading . Which makes
the genre of beat'em'up and Isometric RPG possible ( ie the ability to walk around 2d object).

This completely changed the way that I was handling objects ingame, an "object" was nolonger
attached to a GUIobject they are now dynmaic , which enabled screen clipping and a much higher
number of objects to to be placed into a level( previously restricted to 300) now well into the
thousands. Now back to the RPG.
Over the weeks following I added alot of features and rewrote most of the old ones to be compatable with the new datablock/draw methods. Ill try to list as many as I can ,its hard to remember everything I have done over the past 2 months on this project.
game runtime loop
collision detection manager
datablock manager
GUIobject handler
Mouse event manager
AI State manager
Player animation and movement manager
new object class manager
projectile manager
inventory management
character sheet/talent/item
lvling system
faction system
quest manager
spell and ability system
combat system
level transitions
event triggers
-set game runtime loop
player/AI/environment animation
player/ai/projectile movement/response/collisions
-collision detection manager
for players collision with environment
AI collision with environment and detection of player
"collision" of mouse pointer with interactive objects
projectiles collision with enviroment or NPCs/player
environmental collision detection based on Object class
ie Lava , water , slippery surfaces , sticky surfaces.
-datablock manager
handles the creation and destruction of object datablocks
-GUIobject handler
cascade ( this allows for example the player to walk around a 2d object )
object "drawing"
level transitions
screen clipping
-Mouse event manager
capture mouse left click for player movement relative to the environment
capture mouse right click for
casting spells
interaction with NPCs
interaction/loot of corpses
-AI State manager
search for hostile entities
respond to interaction
talking
handin and accepting of quests
use of vendor
health/mana
AI state
-player animation and movement manager
based on player orientation
-new object classes
ability to create new object classes
-projectile manager
creation of new projectile
tragetory
life time management
desctruction of projectile
damage application (AOE or Single target)
-inventory management
equiping items
adding new items to inventory
destroying items
item tooltip window on scroll over
-character sheet/talents/items
effected by character level / equiped items
-lvling system
exp based from quests/kills scaled by your lvl and NPC lvl
-faction system
NPCs respond depending on faction type and level
-Quest manager
saves progression of quest chains( completion/failed)
adding and removing quests
-Spell and ability system
projectiles
buffs /debuffs
-combat system
both ranged and melee magic/physical
- level transitioning
- event triggers
OK so that should cover most of the new features added to the project. If i have missed
anything let me know.
@Byron Johnson
ATM im keeping this a solo project tho this will most likely change especially as i start to work more on the
multiplayer.
Tho i am continuing on working on the network/internet multiplayer and what i am
learning is invaluable and in a way, the multiplayer is turning into another project.
The multiplayer will have to be an update for another day, after all its 5.30am here.
edit: damn formating :@
regarding the "2D for TGE" package, I would like to hear from GG staff :D
12/30/2008 (10:27 am)
Its been a while since I last posted an update but ive been queit busy over thelast few months working on my main project and developing this one.
Sadly this project nor my main are at the point where they are ready to be "packaged"
as such. If anything both projects have "blown" into much larger undertakings
than i originally planned (tho i expected this).
im not even sure what to call this anymore .. its started off as a learning
experience but has turned into a 2d "engine" that sits ontop of TGE
capable of the following genres "out of the box" so to speak.
classic arcade
side scroller (R-type)
fighting game
platformer
beat'em'up
realtime strategy
isometric RPG
I have been thinking about writing some tutorials , making some editors up and
putting the whole thing together as a "2D for TGE" package. BUT honestly im unsure
as to wether this conflicts with GG. Id love to hear from the GG staff before
I begin doing this, honestly i have no idea.
But getting back to the update. Since my last post ALOT has been added into the project.
i did have to do a little back tracking . After my last post i jumped straight into
making the isometric RPG and quickly realised that i had to go back and work on a few fundamental
features which i missed . The most important feature i missed was object cascading . Which makes
the genre of beat'em'up and Isometric RPG possible ( ie the ability to walk around 2d object).

This completely changed the way that I was handling objects ingame, an "object" was nolonger
attached to a GUIobject they are now dynmaic , which enabled screen clipping and a much higher
number of objects to to be placed into a level( previously restricted to 300) now well into the
thousands. Now back to the RPG.
Over the weeks following I added alot of features and rewrote most of the old ones to be compatable with the new datablock/draw methods. Ill try to list as many as I can ,its hard to remember everything I have done over the past 2 months on this project.
game runtime loop
collision detection manager
datablock manager
GUIobject handler
Mouse event manager
AI State manager
Player animation and movement manager
new object class manager
projectile manager
inventory management
character sheet/talent/item
lvling system
faction system
quest manager
spell and ability system
combat system
level transitions
event triggers
-set game runtime loop
player/AI/environment animation
player/ai/projectile movement/response/collisions
-collision detection manager
for players collision with environment
AI collision with environment and detection of player
"collision" of mouse pointer with interactive objects
projectiles collision with enviroment or NPCs/player
environmental collision detection based on Object class
ie Lava , water , slippery surfaces , sticky surfaces.
-datablock manager
handles the creation and destruction of object datablocks
-GUIobject handler
cascade ( this allows for example the player to walk around a 2d object )
object "drawing"
level transitions
screen clipping
-Mouse event manager
capture mouse left click for player movement relative to the environment
capture mouse right click for
casting spells
interaction with NPCs
interaction/loot of corpses
-AI State manager
search for hostile entities
respond to interaction
talking
handin and accepting of quests
use of vendor
health/mana
AI state
-player animation and movement manager
based on player orientation
-new object classes
ability to create new object classes
-projectile manager
creation of new projectile
tragetory
life time management
desctruction of projectile
damage application (AOE or Single target)
-inventory management
equiping items
adding new items to inventory
destroying items
item tooltip window on scroll over
-character sheet/talents/items
effected by character level / equiped items
-lvling system
exp based from quests/kills scaled by your lvl and NPC lvl
-faction system
NPCs respond depending on faction type and level
-Quest manager
saves progression of quest chains( completion/failed)
adding and removing quests
-Spell and ability system
projectiles
buffs /debuffs
-combat system
both ranged and melee magic/physical
- level transitioning
- event triggers
OK so that should cover most of the new features added to the project. If i have missed
anything let me know.
@Byron Johnson
ATM im keeping this a solo project tho this will most likely change especially as i start to work more on the
multiplayer.
Tho i am continuing on working on the network/internet multiplayer and what i am
learning is invaluable and in a way, the multiplayer is turning into another project.
The multiplayer will have to be an update for another day, after all its 5.30am here.
edit: damn formating :@
regarding the "2D for TGE" package, I would like to hear from GG staff :D
Torque Owner GAMEHACK3R
Quick progress report
Completed
-player movement via mouse (player moves to mousepointers position ie. Diablo)
-collision detection with static and dynamic objects
-map/area transition
-item pickup (triggers)
-NPC spawn points
working on "roguelike" map spawning