[OT] How to programm certain kinds of games

Hi!!!

Sorry for this off topic, but i need info…

I want to make 2 kinds of engines using SDL:

  1. isometric

Well, i want to kinds of isometric engines:

1.1) static rooms, like Knight Lore, Cadaver,…
1.2) scroll, like Nightshade, Diablo, …

So i need info of how to program such engines…

Anybody has the book: “Isometric Game Programming with DirectX 7.0”???
If so, is it easy to “port” the examples/code to SDL???
is the book useful???

  1. Adventure

An engine like Scumm, games like Maniac Mansion, Monkey Island, …

I would like any info about techniques, info, docs, examples, free open
source engines…

Thanks in advance…

Hi!!!

Sorry for this off topic, but i need info…

I want to make 2 kinds of engines using SDL:

  1. isometric

Well, i want to kinds of isometric engines:

1.1) static rooms, like Knight Lore, Cadaver,…
1.2) scroll, like Nightshade, Diablo, …

The only important difference is that the scrolling ones need a
partial update capability. Unless you’re using an old style Z mask
approach, you’ll need this for sprites and stuff anyway, so it
shouldn’t make too much of a difference.

The easy way is arranging all objects in a way that lets you find them
quickly based on screen coordinates, and then use clipping to touch
only the areas that need updating.

To scroll, just move the contents of the iso display window, and then
update the edges where “new” stuff should appear. Just keep in mind
not to do this VRAM->VRAM unless you’re certain that’s a h/w
accelerated operation. CPU blitting from VRAM is painfully slow on
nearly all hardware in excistence. Note that this applies to alpha
blending as well, since that’s a read-modify-write operation.

If you don’t want to mess with the different alternatives, just use a
software work surface at all times, whether or not you’re using h/w
double buffering. (That is, three buffers total if you use h/w
surface + double buffering.) When you’re done updating, just blit
from the s/w surface into the screen and flip.

Of course, these days, you might get away with just rerendering the
whole scene for each frame, but that raises your minimum system
requirements quite a bit, at least if scrolling is done while real
time action is going on.

So i need info of how to program such engines…

Anybody has the book: “Isometric Game Programming with DirectX
7.0”???

If so, is it easy to “port” the examples/code to SDL???On Tuesday 11 March 2003 15.19, I?aki Mart?nez wrote:

is the book useful???

  1. Adventure

An engine like Scumm, games like Maniac Mansion, Monkey Island,

I would like any info about techniques, info, docs, examples, free
open source engines…

Thanks in advance…


SDL mailing list
SDL at libsdl.org
http://www.libsdl.org/mailman/listinfo/sdl


//David Olofson - Programmer, Composer, Open Source Advocate

.- The Return of Audiality! --------------------------------.
| Free/Open Source Audio Engine for use in Games or Studio. |
| RT and off-line synth. Scripting. Sample accurate timing. |
`-----------------------------------> http://audiality.org -’
http://olofson.nethttp://www.reologica.se

tir, 2003-03-11 kl. 15:19 skrev I?aki Mart?nez:

Hi!!!

Sorry for this off topic, but i need info…
Well, to believe there are two kinds of the same people in the world, i
am implementing both types of engines :slight_smile:

I want to make 2 kinds of engines using SDL:

  1. isometric

Well, i want to kinds of isometric engines:

1.1) static rooms, like Knight Lore, Cadaver,…
1.2) scroll, like Nightshade, Diablo, …

So i need info of how to program such engines…
My project started out as a MMORPG, but i’m developing it into a
genretic isometric engine, haven’t worked on it in a couple of months
though. The initial MMORPG homepage is here:
http://halfdans.net/index.py/baal
The isometric library (libiso3d) has not been released yet, but source
is available at http://svn.pohldata.dk/repos/libiso3d/trunk

Anybody has the book: “Isometric Game Programming with DirectX 7.0”???
If so, is it easy to “port” the examples/code to SDL???
is the book useful???
Haven’t read the book.

There is some isometric functionality in the Kyra sprite library (link
on SDL libraries page), great for reference.

  1. Adventure

An engine like Scumm, games like Maniac Mansion, Monkey Island, …
That is what i am working at at the moment, no release here either yet -
and an early state of development, but i’m actively developing it at the
moment using Lua as a scripting language. Source code is available at:
http://svn.pohldata.dk/repos/scenery/trunk

I know the to engines aren’t done yet, but libiso3d is close to a
release, and maybe a user could spawn my lust for finishing what is left
before a release.

Off-topic, i know, but i got excited, okay :-)–
Xml:
One file-format to rule them all
One parser to parse them all
And in code - bind them!

Best Regards/Venlig Hilsen
Rasmus Toftdahl Olesen
System Udvikler, Pohl Data I/S
http://halfdans.net
-------------- next part --------------
A non-text attachment was scrubbed…
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: Dette er en digitalt underskrevet brevdel
URL: http://lists.libsdl.org/pipermail/sdl-libsdl.org/attachments/20030311/8d385330/attachment-0007.pgp

[Oops. Damn hot-keys… Replying to the rest here.]

[…]

Anybody has the book: “Isometric Game Programming with DirectX
7.0”???

I haven’t, but I’ve played around with DirectX in the past…

If so, is it easy to “port” the examples/code to SDL???
is the book useful???

I guess it’s possible, but how hard it is depends on how the code is
written. If it’s traditional “Microsoft example style”, you’re better
off rewriting it in my experience.

Either way, once you’ve learned the methods and know what you want to
do, you’re probably better off designing and implementing your own
engine anyway, or finding a real engine that does what you need.
Example code is rarely written in a way that allows it to turn into a
real application without some redesign.

  1. Adventure

An engine like Scumm, games like Maniac Mansion, Monkey Island,

This isn’t quite isometric rendering, but it’s still sort of 3D. I’d
say it’s just less “strict” than your average iso engine. Free
positioning of objects instead of a 3D grid. It makes it a bit harder
to perform partial screen updates and things like that, since all
objects are essentially sprites; there are no triditional style, grid
aligned tiles.

I would like any info about techniques, info, docs, examples, free
open source engines…

I think you’ll find some in the SDL games and engines databases. I
haven’t messed with isometric games under SDL so far, so I don’t have
any first hand experience with any of these projects.

//David Olofson - Programmer, Composer, Open Source Advocate

.- The Return of Audiality! --------------------------------.
| Free/Open Source Audio Engine for use in Games or Studio. |
| RT and off-line synth. Scripting. Sample accurate timing. |
`-----------------------------------> http://audiality.org -’
http://olofson.nethttp://www.reologica.se —On Tuesday 11 March 2003 15.19, I?aki Mart?nez wrote:

> > I think you'll find some in the SDL games and engines databases. I > haven't messed with isometric games under SDL so far, so I don't have > any first hand experience with any of these projects.

I started working on a simple iso engine for a RPG game I was going to make
a few years ago and never did. It wasn’t great, but it was damned
simple.

It scrolled, but not smoothly. Your ‘character’ (e.g., a flashing spot
in the grid) remained in the center, and the world moved around it.
(Until you got to the edges, at which point, the cursor moved some.)

Depending on how complicated you want your world, drawing ISO should be
simple. In my world, I believe I had 2 levels of ‘height.’

I had the ground level, and then the ‘what’s on the ground’ level.
This let me place objects like trees, bushes and chests, on top of
arbitrary kinds of ground - like dirt, sand, grass and cobblestone.

Drawing the screen was simply a matter of:

/* Go from the ground up: */

for (height = 1; height >= 0; height–)
{
/* Go from the lower position on the map (closer to the viewer),
to a higher position on the map (further from the viewer): */

for (y = cursor_y + 5; y >= cursor_y - 5; y--)
{
  /* Go from the leftmost position to the rightmost: */
  /* (This assumes ISO shapes like this: //  Rather than: \\ ) */

  for (x = cursor_x - 5; x <= cursor_x + 5; x++)
  {
    /* Draw the shape on the screen: */

    ...
  }
}

}

In that “…” part, I was able to use “x”, “y” and “height” to reference
different parts of a map array that looked like this:

char map[2][MAP_HEIGHT][MAP_WIDTH];

Then, with regards to positioning stuff on the screen, it’s pretty much:

/* First, get X and Y according to the screen, not the map: */

centered_x = x - cursor_x;
centered_y = y - cursor_y;

/* Determing screen positions based on X/Y coordinates: */

screen_x = (centered_x + 11 - centered_y) * 32;
screen_y = centered_y * 32;

… for example.

This means the screen will be drawn according to the X/Y coords like so:

             ...  ...  ...  ...  etc.
        0,2  1,2  2,2  3,2  ...
   0,1  1,1  2,1  3,1  ...

0,0 1,0 2,0 3,0 …

I hope that makes sense. This is all kind of off-topic with regards to SDL,
though, so we should probably move the discussion elsewhere if it lasts
much longer.

(Lest we incur the wrath of Sam ;^) )

-bill!On Tue, Mar 11, 2003 at 03:57:31PM +0100, David Olofson wrote:


bill at newbreedsoftware.com Hire me!
http://newbreedsoftware.com/bill/ http://newbreedsoftware.com/bill/resume/

Tue, 11 Mar 2003 10:38:43 -0800, tu as dit :

[…]

I hope that makes sense. This is all kind of off-topic with regards
to SDL, though, so we should probably move the discussion elsewhere
if it lasts much longer.

BTW does that mean it exists mailing list with such subjects ? :)> On Tue, Mar 11, 2003 at 03:57:31PM +0100, David Olofson wrote:


Fabien Penso <@Fabien_Penso> | LinuxFr a toujours besoin de :
http://perso.LinuxFr.org/penso/ | http://linuxFr.org/dons/
A PHP Template Engine ? Take the best ! http://templeet.org/

Tue, 11 Mar 2003 10:38:43 -0800, tu as dit :

[…]

I hope that makes sense. This is all kind of off-topic with regards
to SDL, though, so we should probably move the discussion elsewhere
if it lasts much longer.

BTW does that mean it exists mailing list with such subjects ? :slight_smile:

Yes indeed there are! Try http://gameprogrammer.com/mailinglist.html
where we welcome just about any discussion having to do with game
programming.

	Bob PendletonOn Wed, 2003-03-12 at 16:14, Fabien Penso wrote:

On Tue, Mar 11, 2003 at 03:57:31PM +0100, David Olofson wrote:


±-----------------------------------+

Bonjour Bob !

12 Mar 2003 17:04:46 -0600, tu as dit :> On Wed, 2003-03-12 at 16:14, Fabien Penso wrote:

Tue, 11 Mar 2003 10:38:43 -0800, tu as dit :

On Tue, Mar 11, 2003 at 03:57:31PM +0100, David Olofson wrote:

[…]

I hope that makes sense. This is all kind of off-topic with regards
to SDL, though, so we should probably move the discussion elsewhere
if it lasts much longer.

BTW does that mean it exists mailing list with such subjects ? :slight_smile:

Yes indeed there are! Try http://gameprogrammer.com/mailinglist.html
where we welcome just about any discussion having to do with game
programming.

Thanks.


Fabien Penso <@Fabien_Penso> | LinuxFr a toujours besoin de :
http://perso.LinuxFr.org/penso/ | http://linuxFr.org/dons/
A PHP Template Engine ? Take the best ! http://templeet.org/