It seems that you're using an outdated browser. Some things may not work as they should (or don't work at all).
We suggest you upgrade newer and better browser like: Chrome, Firefox, Internet Explorer or Opera

×
avatar
mcburress: dtgreene,

are you gonna make us a game inspired by wizardry 4? I missed it back in the day (had already migrated to windows by the time I found out about it). Its been decades since I did any programming, but I know enough that the type of game is not that difficult to program. You could even upgrade the walls of the dungeon to color gradient walls (getting darker in the distance) without great feats of programming.
avatar
dtgreene: Not at this time (though never say never), but I might eventually look into that. If I make a game, it will probably be a SaGa-like game (possibly even a SaGa-like DRPG, so like Wizardry 1-3 and 5, except that growth is done SaGa-style instead of with XP).
If you need to test a proof of concept or experiment: A 7 day blobber contest is about to start at beginning of april (use google).

Remember folks the dungeon is created by one line of code - a variable array of size 15, storing integers. each cell in the array represents a square/coordinate in the dungeon. You then put the following values in each cell to make the maze:
0=no walls
1=north side wall only
2=south side wall only
3=west side wall only
4=east side wall only
5=north and east side walls
6=north and west side walls
7=south and west side walls
8=south and east side walls
9=parallel north/south side walls
10=parallel east/west side walls
11=west side wall/east side door
12=west side door/east side wall
13=north side wall/south side door
14=north side door/south side wall
15=all four walls
This does not support corner doors. you can fix this by keeping a list of coordinates of the corner door locations that your display routine compares against
This does not support locked doors. you can fix this by keeping a list of coordinates OUTSIDE of the program of the locked door locations. when a door is unlocked you can then delete that coordinate from the list.

Your display routine takes the coordinates of the player character/party and their facing as well as the "in-play" monsters and only displays 3 squares in front

The reason for keeping everything limited to 15 is the computer sees everything in hex. 15 is hex "F" and is the largest number that can fit in to one byte. Having everything one byte allows for some neat programming tricks. For instance characters on the keyboard are also one byte. You can store a part of the dungeon as a character string and use that to reuse a part of the dungeon (see Western Crevasse, SSI's Secret of the Silver Blades).

thats about all i remember about programming

micah out
avatar
dtgreene: Not at this time (though never say never), but I might eventually look into that. If I make a game, it will probably be a SaGa-like game (possibly even a SaGa-like DRPG, so like Wizardry 1-3 and 5, except that growth is done SaGa-style instead of with XP).
avatar
mcburress: If you need to test a proof of concept or experiment: A 7 day blobber contest is about to start at beginning of april (use google).

Remember folks the dungeon is created by one line of code - a variable array of size 15, storing integers. each cell in the array represents a square/coordinate in the dungeon. You then put the following values in each cell to make the maze:
0=no walls
1=north side wall only
2=south side wall only
3=west side wall only
4=east side wall only
5=north and east side walls
6=north and west side walls
7=south and west side walls
8=south and east side walls
9=parallel north/south side walls
10=parallel east/west side walls
11=west side wall/east side door
12=west side door/east side wall
13=north side wall/south side door
14=north side door/south side wall
15=all four walls
This does not support corner doors. you can fix this by keeping a list of coordinates of the corner door locations that your display routine compares against
This does not support locked doors. you can fix this by keeping a list of coordinates OUTSIDE of the program of the locked door locations. when a door is unlocked you can then delete that coordinate from the list.

Your display routine takes the coordinates of the player character/party and their facing as well as the "in-play" monsters and only displays 3 squares in front

The reason for keeping everything limited to 15 is the computer sees everything in hex. 15 is hex "F" and is the largest number that can fit in to one byte. Having everything one byte allows for some neat programming tricks. For instance characters on the keyboard are also one byte. You can store a part of the dungeon as a character string and use that to reuse a part of the dungeon (see Western Crevasse, SSI's Secret of the Silver Blades).

thats about all i remember about programming

micah out
Why not use a bitfield, where each bit represents whether there's a wall in that direction? (That is, assuming that 1 and 2 are as you say, 3 should be north and south walls, since 3 = 1 + 2.) Then, instead of having to hardcode every number corresponding to a direction, all I would have to do to check if there's a wall in a given direction is a bitwise AND operation, with only 4 constants needed.

The part I would have the most difficulty with is the display routine.
Not sure if it has been brought up before, but what about Shin Megami Tensei? Mechanically not quite the same, but it has a lot of the spirit of Wiz 4.

Oops, nevermind. I didn't read that up above.
Post edited August 04, 2021 by advancedhero