Author Topic: Isometric Engine  (Read 28000 times)

0 Members and 1 Guest are viewing this topic.

Offline DJ Omnimaga

  • Clacualters are teh gr33t
  • CoT Emeritus
  • LV15 Omnimagician (Next: --)
  • *
  • Posts: 55943
  • Rating: +3154/-232
  • CodeWalrus founder & retired Omnimaga founder
    • View Profile
    • Dream of Omnimaga Music
Re: Isometric Engine
« Reply #45 on: September 02, 2009, 08:22:04 pm »
That looks nice builderboy :D

Offline Seren

  • LV2 Member (Next: 40)
  • **
  • Posts: 20
  • Rating: +4/-1
    • View Profile
Re: Isometric Engine
« Reply #46 on: September 02, 2009, 08:28:15 pm »
Looking at your longer object-drawing method, and addressing the issue of interacting objects...

Code: [Select]
save screen
clear screen
draw object
mask object with above 3 land masks
save pic
clear screen
draw object mask
mask mask with above 3 land masks
save pic
recall landscape
AND mask pic
OR object pic

I'm wondering if you could do all the objects simultaneously - Draw all the objects, and put the "above" land masks of all the objects in the form of a list, and go through them one by one.

The only problem that would occur would be when an object is in front of a tile in front of another object. Then the top of the lower object would be cut off by the "overlapping" tile. The solution I see to that is to split tiles into two parts: the "normal square" of the tile, and the "overlapping" section. I don't know how this will affect your drawing engine, or if you simply add the "overlapping section" as a completely new parameter of your tile (and not modifying the current tile-drawing engine), I don't know how much extra space it would take. However, this eliminates the problem I just mentioned (this idea working with the "height" idea mentioned earlier - except I now see it more as a simple flag (either 0 or 1) which indicates whether the current object has the "overlapping" section or not).

Now, the problem remains when an object is in front of another object. A way to do it would be to draw all the objects from furthest away to closest, but you'd have to use their masks to erase objects behind the closer ones (and as a random optimization, the first object you draw won't need to use its mask - maybe you could also detect objects in proximity? (don't know if it would be faster to check if there are nearby objects or to simply apply the mask for all the objects)). However, once you have done that step, you can treat the whole collection of objects on your screen as one single giant object (I think) and apply the land masks as one on all your objects.

How does that sound? Will it work?

Offline Builderboy

  • Physics Guru
  • CoT Emeritus
  • LV13 Extreme Addict (Next: 9001)
  • *
  • Posts: 5673
  • Rating: +613/-9
  • Would you kindly?
    • View Profile
Re: Isometric Engine
« Reply #47 on: September 02, 2009, 11:51:46 pm »
The only problem that would occur would be when an object is in front of a tile in front of another object. Then the top of the lower object would be cut off by the "overlapping" tile. The solution I see to that is to split tiles into two parts: the "normal square" of the tile, and the "overlapping" section. I don't know how this will affect your drawing engine, or if you simply add the "overlapping section" as a completely new parameter of your tile (and not modifying the current tile-drawing engine), I don't know how much extra space it would take. However, this eliminates the problem I just mentioned (this idea working with the "height" idea mentioned earlier - except I now see it more as a simple flag (either 0 or 1) which indicates whether the current object has the "overlapping" section or not)

Well, the way the masks are designed lets them be applied  all at one.  So what you described would work without any modification.  Also, I said in the previous post that I was going to make all objects applied with OR logic (no white) so this eliminates the problem with drawing the objects in a specific order.  All I need to do is draw each object onto the screen, mask each object with the landscape, and recall the landscape picture with OR logic.  The mask design of the sprites will take care of all the problems :) I'm working on the object system now.

Offline Geekboy1011

  • The Oneironaut
  • Donator
  • LV11 Super Veteran (Next: 3000)
  • ***********
  • Posts: 2031
  • Rating: +119/-2
  • Dream that Awakening dream
    • View Profile
Re: Isometric Engine
« Reply #48 on: September 03, 2009, 04:12:11 pm »
hmm awsome for one and 2 will you make the engine available at the end cause i would love to "mod"/use this to make a rpg or somthing or is that asking to much :)


edit: yay im not alone  (see next post :P)
« Last Edit: September 03, 2009, 04:36:49 pm by Geekboy1011 »

Offline Raylin

  • Godslayer
  • LV10 31337 u53r (Next: 2000)
  • **********
  • Posts: 1392
  • Rating: +83/-25
  • I am a certifiable squirrel ninja.
    • View Profile
    • Ray M. Perry
Re: Isometric Engine
« Reply #49 on: September 03, 2009, 04:35:40 pm »
Indeed. I, too, want to mess with this engine.
Bug me about my book.

Sarah: TI-83 Plus Silver Edition [OS 1.19]
Cassie: TI-86 [OS 1.XX]
Elizabeth: TI-81 [OS 1.XX]
Jehuty: TI-83 Plus Silver Edition [OS 1.19]
Tesla: CASIO Prizm







Offline Builderboy

  • Physics Guru
  • CoT Emeritus
  • LV13 Extreme Addict (Next: 9001)
  • *
  • Posts: 5673
  • Rating: +613/-9
  • Would you kindly?
    • View Profile
Re: Isometric Engine
« Reply #50 on: September 03, 2009, 07:08:07 pm »
Indeed, most likely all I will release the code for a completed engine, as I already have a project going on, and i don't want to start working on something else :P

Offline Geekboy1011

  • The Oneironaut
  • Donator
  • LV11 Super Veteran (Next: 3000)
  • ***********
  • Posts: 2031
  • Rating: +119/-2
  • Dream that Awakening dream
    • View Profile
Re: Isometric Engine
« Reply #51 on: September 03, 2009, 08:54:21 pm »
awsome that great   cant wait for serenity or this engine now :)

Offline Builderboy

  • Physics Guru
  • CoT Emeritus
  • LV13 Extreme Addict (Next: 9001)
  • *
  • Posts: 5673
  • Rating: +613/-9
  • Would you kindly?
    • View Profile
Re: Isometric Engine
« Reply #52 on: September 03, 2009, 10:27:14 pm »
Alright, here we are, a map editor featuring the newly completed object display techniques.  It is also now dependent on CelticIII, as it uses real(9,2... to store pictures without updating the screen.  In the editor, it uses code for both regular Or-ed objects (fast) and more complex masked objects (more than twice as slow).  The cursor is an OR object, when you add tiles, you are writing Masked objects to the terrain.



I can't erase Masked objects yet because I am actualy adding them to the Terrain pic, and so they overwrite data beneath them.  With the OR cursor, I am never storing it to the pic, so although I must update the screen ever time i want to use it, I can move it without destroying the background terrain.  
« Last Edit: September 04, 2009, 08:48:33 pm by Builderboy »

Offline Geekboy1011

  • The Oneironaut
  • Donator
  • LV11 Super Veteran (Next: 3000)
  • ***********
  • Posts: 2031
  • Rating: +119/-2
  • Dream that Awakening dream
    • View Profile
Re: Isometric Engine
« Reply #53 on: September 03, 2009, 10:33:00 pm »
wow this look even better now cant wait to recreate a ff tactics style game with this



edit : lol to following post     i dont like posting for lol every time to much like spam :P
« Last Edit: September 03, 2009, 10:39:46 pm by Geekboy1011 »

Offline Raylin

  • Godslayer
  • LV10 31337 u53r (Next: 2000)
  • **********
  • Posts: 1392
  • Rating: +83/-25
  • I am a certifiable squirrel ninja.
    • View Profile
    • Ray M. Perry
Re: Isometric Engine
« Reply #54 on: September 03, 2009, 10:33:47 pm »
Builderboy! What have I told you about raping TI-BASIC?
Stop the epicness!
Bug me about my book.

Sarah: TI-83 Plus Silver Edition [OS 1.19]
Cassie: TI-86 [OS 1.XX]
Elizabeth: TI-81 [OS 1.XX]
Jehuty: TI-83 Plus Silver Edition [OS 1.19]
Tesla: CASIO Prizm







Offline Builderboy

  • Physics Guru
  • CoT Emeritus
  • LV13 Extreme Addict (Next: 9001)
  • *
  • Posts: 5673
  • Rating: +613/-9
  • Would you kindly?
    • View Profile
Re: Isometric Engine
« Reply #55 on: September 03, 2009, 10:56:38 pm »
Heehe, this engine is turning out better than I expected!  i think this engine could be used for any number of games, ranging from Strategy and Tactics, to Simulation like Civilization.

Offline Raylin

  • Godslayer
  • LV10 31337 u53r (Next: 2000)
  • **********
  • Posts: 1392
  • Rating: +83/-25
  • I am a certifiable squirrel ninja.
    • View Profile
    • Ray M. Perry
Re: Isometric Engine
« Reply #56 on: September 03, 2009, 10:59:18 pm »
Teach me your secret ninja-like ways, O wise One.
Bug me about my book.

Sarah: TI-83 Plus Silver Edition [OS 1.19]
Cassie: TI-86 [OS 1.XX]
Elizabeth: TI-81 [OS 1.XX]
Jehuty: TI-83 Plus Silver Edition [OS 1.19]
Tesla: CASIO Prizm







Offline DJ Omnimaga

  • Clacualters are teh gr33t
  • CoT Emeritus
  • LV15 Omnimagician (Next: --)
  • *
  • Posts: 55943
  • Rating: +3154/-232
  • CodeWalrus founder & retired Omnimaga founder
    • View Profile
    • Dream of Omnimaga Music
Re: Isometric Engine
« Reply #57 on: September 03, 2009, 10:59:30 pm »
for strategy, though, usually you don't need much isometric stuff, though. In Starcraft, maps are isometric, but buildings aren't and there are even some maps that won't look isometric at all.

Offline Builderboy

  • Physics Guru
  • CoT Emeritus
  • LV13 Extreme Addict (Next: 9001)
  • *
  • Posts: 5673
  • Rating: +613/-9
  • Would you kindly?
    • View Profile
Re: Isometric Engine
« Reply #58 on: September 03, 2009, 11:10:42 pm »
well, I don't think you ever need Isometric, you could just as easily do top down, but it looks nice :)

Offline necro

  • LV9 Veteran (Next: 1337)
  • *********
  • Posts: 1295
  • Rating: +17/-2
  • +3 vaporal mustache
    • View Profile
Re: Isometric Engine
« Reply #59 on: September 04, 2009, 04:14:24 am »
looks great...hope some great games come of this
I'm like a woot burger with awesome fries


VB.Net, C#, C++, Java, Game Maker