Crossfire Archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
CF: Invitation to contribute to random map generator
Hello,
  I'm working on a random map generator for crossfire right now,
and I'm at the stage where I'm working on forming reasonable basic
wall layouts.
  I've written a maze generator already:
####################
#...#.#.#.#.#.#..#.#
#.......#...#....#.#
#...###.##..####.#.#
#####.#..##......#.#
#.....#...#..###...#
#...###.###.##.##..#
##..#...#...#...##.#
#..##.#.#.#.###..#.#
##.#..#.###...#.##.#
#..#.##.....#...#..#
#..#.#.....##..##.##
#.##.#.....#...#...#
#....#.....#...#.###
####.##....#...#...#
#..#..##.###...#.###
##.##..#.#...###.#.#
#.....##.##..#...#.#
#..#..#...#..#.#...#
####################
And I'm working on a layout generator which makes things like:
/*  generates onion (layered) maps */
char **map_gen_onion(int xsize, int ysize, int option, int layers);
like this:
regular			      random
centered, linear onion        bottom/right centered, nonlinear
#########################     #########################
#                       #     #                       #
# ########  ##########  #     #   #####################
# #                  #  #     #   #                   #
# # ######  ######## #  #     #   #                   #
# # #              # #  #     #   #   ######## ########
# # # ####  ###### # #  #     #   #   #               #
# # # #          # # #  #     #   #   #               #
# # # ############ # #  #     #   #   #  ########### ##
# # #              # #  #     #   #   #  #            #
# # ################ #  #     #   #   #  #    #########
# #                  #  #     #       #  #    #       #
# ####################  #     #   #   #  #            #
#                       #     #   #   #  #    #       #
#########################     #########################
options:
0	Pick a random options below
1	linear doors (default is nonlinear)
2	bottom "centered" -- produces bottom centered onion
4	right "centered", can be combined with bottom centering
8	outer wall off:  i.e., no outer wall.
16	irregularly/randomly spaced layers (default: regular)
Someone else is working on maps which look like:
######################
#       #   #        #
#       #   #        #
#                    #
#       #   #        #
#########   ##########
#       #   #        #
#                    #
#       #   #        #
#       #   #        #
#########   ##########
#       #   #        #
#                    #
#       #   #        #
######################
I invite everyone to contribute their own random layout generation function,
if they're not along these lines.
Specs:
allocates and returns a char ** array given xsize and ysize and whatever
options you feel are appropriate, like so:
char **layout_generator(int xsie, int ysize, int option1, int option2);
Passing 0 in for option1 or option2 should make it pick at random from
the options available.
The returned array should have a '#' for a wall block, and a char value
of 0 for an empty cell.
Restrictions:  every point should be accessible from every other point.
You may also use the char value of '*' to indicate a door, if you like.
Please keep me informed about your plans so that I may coordinate.
PeterM
-
[you can put yourself on the announcement list only or unsubscribe altogether
by sending an email stating your wishes to crossfire-request@ifi.uio.no]