Author Topic: Isometric Engine  (Read 24946 times)

0 Members and 1 Guest are viewing this topic.

Offline Builderboy

  • Physics Guru
  • CoT Emeritus
  • LV13 Extreme Addict (Next: 9001)
  • *
  • Posts: 5673
  • Rating: +613/-9
  • Would you kindly?
    • View Profile
Isometric Engine
« on: August 30, 2009, 10:27:15 pm »
So I was really sick from Friday to Today, and while i was wallowing in a lake of my own phlegm I dreamed up an idea for an Isometric engine...  After I got better enough to program, I quickly set about doing it, and quickly came up with a basic demo program writen in BASIC with xLib.  A few more hours of tinkering and this is what I got.

A basic example screen built using 4 tiles: Empty - Box - Grass/Sand - Rock


And animation of a beta scrolling algorithm (SE)


The data is read directly from a single matrix, but in a very confusing way :(.  This will make collision detection even more difficult, although this isn't the best engine for RPG's or such, as you would need to do some heavy calculating while displaying objects, so that they stay in back of the objects they need to stay in back of and such.

Each object has an image and a mask to make sure he objects occlude each other correctly.
« Last Edit: August 30, 2009, 10:35:27 pm by Builderboy »

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 #1 on: August 30, 2009, 10:30:53 pm »
Interesting! Is this in TI-BASIC w/ Celtic III or ASM?
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: 55942
  • Rating: +3154/-232
  • CodeWalrus founder & retired Omnimaga founder
    • View Profile
    • Dream of Omnimaga Music
Re: Isometric Engine
« Reply #2 on: August 30, 2009, 10:31:32 pm »
holy shit! that looks awesome, I wonder if it would be possible to gain enough speed from such tilemapper? it would be cool to have something like Kirby's Dream Course (Kirby Bowl) or Mario RPG

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 #3 on: August 30, 2009, 10:33:32 pm »
How 'bout that Final Fantasy Tactics? :)
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 #4 on: August 30, 2009, 10:34:41 pm »
Oh yeah, this is in Basic with xLib

The speed is pretty good with an SE, but displaying objects might pose a problem

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 #5 on: August 30, 2009, 10:55:42 pm »
So, I heard you had a matrix going.
*cough*complex list*cough*
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 #6 on: August 30, 2009, 11:02:45 pm »
Well, the reason I'm using a Matrix is to take advantage of xLibs fast Tilemapper, which is the reason scrolling is possible :P  Lists might work if I converted them to Matrixes every frame, but I'd have to see.  (And I'd have to have a very good reason for switching to lists :))

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 #7 on: August 30, 2009, 11:07:24 pm »
I'm thinking in terms of short-term memory. (RAM). If you have a complex list as the entire map and parse two rows at a time into matrices and have no need to re-display the entire map, this could make a very memory-efficient Tactics clone.

EDIT: That may not work with XLib's tilemap function, though.
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 Eeems

  • Mr. Dictator
  • Administrator
  • LV13 Extreme Addict (Next: 9001)
  • *************
  • Posts: 6265
  • Rating: +318/-36
  • little oof
    • View Profile
    • Eeems
Re: Isometric Engine
« Reply #8 on: August 30, 2009, 11:10:22 pm »
you could use string, like I do (it works with Celtic III)
/e

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 #9 on: August 30, 2009, 11:15:09 pm »
Well, the tilemapper isn't able to display the entire map in an instant anyway.  What you see in each frame of the animation is a single row being drawn and then the screen moved up.  So that could work, but it would be slower, because you would have to put the lists into the Matrix each frame it moves, and the matrix is really weird.

The matrix is really weird.

Let me put it this way.  You see that vertical scrolling action?  That is the tilemapper scrolling vertically through the matrix :|

EDIT: Blarged by Ninja Eeems!  Strings would work weird with the mapper though.

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 #10 on: August 30, 2009, 11:17:12 pm »
lolwut?
EXP < Necessary level for comprehension.

(That's really weird... Why did you it that way?)
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 #11 on: August 30, 2009, 11:21:01 pm »
Because its fast and fast trumps all

Offline simplethinker

  • LV7 Elite (Next: 700)
  • *******
  • Posts: 695
  • Rating: +16/-5
  • snjwffl
    • View Profile
Re: Isometric Engine
« Reply #12 on: August 30, 2009, 11:39:36 pm »
This looks awesome Builderboy :o  Could you post some of the code so we can see how weird the matrix is?

I'm thinking in terms of short-term memory. (RAM). If you have a complex list as the entire map and parse two rows at a time into matrices and have no need to re-display the entire map, this could make a very memory-efficient Tactics clone.
With this kind of program, RAM usage should probably take a back seat to speed issues.

Because its fast and fast trumps all
Not always ;)
"We've all heard that a million monkeys banging on a million typewriters will eventually reproduce the entire works of Shakespeare. Now, thanks to the Internet, we know this is not true." -- Professor Robert Silensky



Chip's Challenge: ħ%

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 #13 on: August 31, 2009, 10:20:35 am »
Because its fast and fast trumps all
Not always ;)
:P

Code: [Select]
real(0,1
real(7,0
DispGraph
Repeat 0
3->A
For(F,0,19
real(4,A,4,3-A
real(4,0,2,0
real(2,0,0,F,12,1,0,12,6,7,2,1,8,0
real(2,0,0,F,12,1,0,12,6,7,1,2,8,0
5-A->A
End
End
although you need the Matrix and the pictures to get it to work.  The Matrix is 12*20.  Pic1 is the image, Pic2 is its Mask.  I'll post them a little later.

Offline Eeems

  • Mr. Dictator
  • Administrator
  • LV13 Extreme Addict (Next: 9001)
  • *************
  • Posts: 6265
  • Rating: +318/-36
  • little oof
    • View Profile
    • Eeems
Re: Isometric Engine
« Reply #14 on: August 31, 2009, 01:45:13 pm »
hmm, I was looking at the Celtic III 3.09s commands and I found BOXSHIFT, which you could possibly use to make this easier...take a look if you want
link to post where you can get v3.09s
« Last Edit: August 31, 2009, 03:48:06 pm by DJ Omnimaga »
/e