[WGEN/RPG/MECH] ApocalypseCraft [Instances, Radiation, Realism, Perks, Factions, and more]

Discussion in 'WIP and Development Status' started by loganwm, Jun 26, 2011.

Thread Status:
Not open for further replies.
  1. Offline

    loganwm

    I've been debating whether or not to post the details of this project I'm working on, and I've decided that I stand to gain some potentially valuable insight and input on this project.

    Basically, ApocalypseCraft is my project to make a very hostile, very difficult, and very rewarding unique Minecraft experience.

    [Functional Features (Updated 7/3)]
    • Radiation
    • Hunger
    • Thirst
    • Custom terrain generation
    • Instancing (dungeons, loot, and group raiding)
    • Radio Towers
    • Proximity chat
    • Perks
    • Factions
    • Groups
    [In-Progress Features (Updated 7/4)]
    • Procedural building population
    • NPCs
    • Subterra Dimension
    • Level progression
    • Faction-based protections
    • Contextual feature usage (removes the incessant annoyance of having to memorize another set of commands)
    • Statistics/Achievements
    [Revision 2 Terrain Generator Screenshots (Updated 7/1]

    [​IMG]
    [​IMG]
    [​IMG]
    [​IMG]
    [​IMG]
    [​IMG]

    [Perk Engine Demonstration (Updated July 8)]


    [Details (Updated 6/28)]
    I'll go point to point on the major aspects:
    • Hunger and Thirst will be implemented (toggle-able)
    • Water is scarce, and Ice can be harvested in blocks using a pickaxe and melted with a furnace. (I'm looking to disable the infinite water well trick)
    • Radiation/Toxic Atmosphere: there will be a detrimental effect that arises from either being in an area of unpurified air, direct sunlight, or proximity to radioactive material (glowstone will likely be used for this.)
    • Currency will be toggle-able between iConomy and a system of using gold (Pending my ability/decision to add NPC roaming traders)
    • A variety of ruins will populate the world as sources for scavenging supplies and valuable items.
    • Plant life is almost entirely non-existent. Samples of grass, seeds, saplings, and other flora will be available in Underground Repositories (Still quite rare.)
    • Dirt is rare, and grass can be harvest using a shovel.
    • Rare, small oases (plural of oasis, it's a bit of an awkward word, I know) lush with plant life will be randomly generated in the world.
    I've spent three days on this project so far after finally sitting down to learn the Bukkit API, and I'm making steady progress so far. I'm a professional software developer currently between jobs, and I figured that I could have a bit of fun and keep my skills sharp working on a project like this.

    If anyone has questions or suggestions, I would be very happy to receive input. Once I have a release closer to being fully functional and stable I'll be glad to provide builds for testing.


    [Pictures posted below are from the Revision 1 terrain engine. Now outdated.]
    The Ashlands are regions with gravel foundations populated by the trunks of dead trees.
    [​IMG]
    Deserts are the formerly urban areas of the map that have been reclaimed by nature.
    [​IMG]
    Glaciers are frozen large bodies of water (No large bodies of water exist barring rare glacial regions.)
    [​IMG]
    [​IMG]

    In addition to the barren terrain, I've hacked together a system for populating the world with ruins of the previous civilization that I've designed. (I might switch these structure patterns to a format like XML so that users can customize/add structures that appear in their world.)
    The first structure that I've added is similar to the dungeons found in Vanilla Minecraft. I'm calling it an Underground Repository for now, and the purpose of the repositories is to act as a small concealed cache of supplies. Repositories will either contain food, plant life samples, or gold/commodities.
    [​IMG]
    [​IMG]

    The first major UI element that I've started working on is the Wasteland Guide which can be used to provide players with information about the adjusted mechanics.

    [​IMG]
     
  2. Offline

    jeffadkins51

    Looks pretty good.
     
  3. Offline

    Olof Larsson

    This is awesome! :)
    I really like the idea. May I suggest you use JSON instead of XML.
    I have used googles "gson" library in many of my projects:
    http://code.google.com/p/google-gson/

    I must also say this seems to be a very large project.
    One thing you could do is to breaking it into separate plugin projects.
    For example: one plugin that occationaly creates buildings during chunch generation, one that makes glowstone and rain "radioactive", one that adds new custom environment types etc.
     
  4. Offline

    MrRump

    That's really, really awesome :O
     
  5. Offline

    loganwm

    Right now the map generation process breaks down a lot of the major tasks. I have separate populators that handle setting the base biome material, creating foliage, and creating the structures. As far the other features go, I've begun implementing a lot of the small ones.

    And I'll look into json. That might be exactly what I'm looking for. My goals for today are to set up the configurable aspects, look into changing to structure engine (right now, structures are generated from an ArrayList of relative component locations), and possible get some of the new structures to populate the world. I'll post more information later if I manage to make a visibly significant bit of headway.
     
  6. Offline

    loganwm

    Here's the latest large feature that I've added. It's a super-crater which will be a relatively rare geographic feature with a variable depth and size. I'm toying with the concept of pools of water and radioactive material in the craters.

    [Note: Smaller craters will be significantly more common throughout the wastes]

    (The picture below is actually 3 mega craters that generated on top of each other while I had the occurrence weighting set a bit high.)
    [​IMG]
    (This picture is a test image with a chunk of radioactive waste at the bottom of the crater. I'm planning to play with the waste clump size until I find a decent one.)
    [​IMG]
    Here's the newly generated pools of water:
    [​IMG]
     
  7. This looks really fun, would so use this as a seperate world for fun!
     
  8. Offline

    loganwm

    As of last night's build, all plugin mechanics changes have been localized to the defined ApocalypseCraft world, so I don't see any/many conflicts that would arise from having this plugin running a parallel world.

    Also, as of last night's build I've introduced the Perks Mechanic, Consumption Mechanic, and Radiation Mechanic.
    Each Mechanic is a set of tweaks to the Minecraft experience which can be toggled either on or off for the Wasteland.

    The Radiation Mechanic handles each player's accumulated radiation which will cause detrimental effects to health.
    The below image displays the radiation warnings for approaching a large chunk of glowstone.
    [​IMG]
    The Consumption Mechanic deals with need/consumption of food and water.
    [​IMG]

    The Perk Mechanic doesn't have any screenshots yet, but perks are essentially mutators that can be selected upon leveling up to either add new abilities, change stats, and change the effected player in many other ways.

    Two perks which have already been written are "Eden Walker" and "Man of Lead" (Note that these two perks won't necessarily be in the release.)

    Eden Walker is an ability that can be triggered to cause the ground that a player walks upon for a short time to be changed to grass with flowers and tall grass. [This is a test perk that even if included in the game, wouldn't be available until later level progression]

    Man of Lead is a stat modifying perk that currently cuts the amount of radiation absorbed by 25%.

    If anyone has perk suggestions (ideally within the realm of feasible reason), I welcome suggestions.
     

  9. "Fasting Pro" -- Requires Less Food/Water to Live

    "Strong Back" -- Inventory is size of Double Chest

    "Man's Best Friend" -- Owned wolves do 25% more damage

    "Swift Scholar" -- 10% more EXP (Guessing that you have some EX system with the whole leveling up deal)

    "Lay of the Land" -- Tells you when you are getting close or closer to an oasis
     
  10. Offline

    Avous

    yay fallcraft LOL dont forget my favorite perk better crits/bloody mess and rad resistance/rad regeneration
     
  11. Offline

    loganwm

    [EDIT: I'm setting up a test server for the plugin within the next 24-72 hours. It will be whitelist only for the time being, so if you're interested in testing, then either post in this thread with your Minecraft username and any relevant reason why you might be useful or PM me, and I'll make a decision about your candidacy when the time comes.]

    Tonight's update is a fun feature that I'm considering releasing as a standalone plugin if there's any significant interest in it.

    I've just completed the groundwork on the Communications Mechanic. The communications mechanic includes pretty standard area-wide chat as well as the ability to build Radio Transmitters and Receivers to communicate over long distances.
    Radio receivers can be created by placing jukebox blocks, and receivers will play messages for all players in close proximity.
    Radio transmitters work slightly differently, however. A transmitter is constructed by placing a wall-sign on an iron block with the radio frequency on line 1 [in ###.# form], the station name on line 2, and an optional parameter on line 3 that sets whether or not the station can be tracked as a compass location. [Radio transmitters can play a significant part in player navigation.]

    The broadcast range of a radio transmitter is determined by a base constant radius + a factor multiplied by the height of the antenna. To broadcast using an antenna, a player simply needs to stand near the base block of the antenna and chat.

    [Note: almost every value for range is configurable, and these features can be toggled.]

    [​IMG]
     
  12. Offline

    fullwall

    Nice work :).
     
  13. Offline

    loganwm

    I don't have a screenshot of tonight's build because I haven't rewritten the populators yet. [I've done an entire retooling of the terrain generation engine]
    Plus, I don't want to spoil all of the surprises.

    In related news: I'm working on the procedural building engine right now. If I can get it written correctly, then it will be possible to have the ruins of full towns and other complex buildings included.
     
    Specops343 likes this.
  14. Offline

    loganwm

    The terrain generator overhaul is almost complete, so I'll show the pictures first then explain in greater detail.
    [​IMG]
    [​IMG]
    [​IMG]
    [​IMG]
    [​IMG]
    [​IMG]

    The new terrain generator that I've written works to create a set of "superchunks." A superchunk is a 20chunk by 20chunk square area with a defined chunktype (which specifies any relevant information for what should populate this chunk/other programmatic tasks.) The new terrain engine is still a few final stages from completion, and after the terrain generator is completely stable and does precisely what I'd like it to do, then I'm moving on to procedural buildings and population of the world with structures, loot, and a bit of life.
     
  15. Offline

    fullwall

    I've been waiting for a good chunk generator ever since blockpopulators were released. Nice job.
     
  16. Offline

    loganwm

    I'll forward the server info to you so that you can take a look in person.
     
    skeletonofchaos likes this.
  17. Offline

    skeletonofchaos

    First off this looks amazing! Would it be possible to generate entire ruined cities at a time allowing for more of an adventure type feel? Secondly could you use git hub to allow edits to the source code so programmers like me could help with the development of the mod? Lastly could you make the radiation be ambient? For instance having air be radioactive? With say sleeping or something of the sort removing radiation? Anyways looks great!

    Oh please do not add roaming traders let the Citizens npc mod take care of that.

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: May 17, 2016
  18. Offline

    loganwm

    I'm working on a procedural building mechanic right now which should be able to take atomic components (buildings, pieces of buildings, et cetera), assemble them into roughly logical towns/settlements, then apply a randomized variable damage based on supplied parameters.

    The radiation is currently proximity based with respect to blocks of glowstone in the environment, but I've toyed with the idea of having a player/item give off radiation. There's even a perk that I've contemplated which would cause the player to glow in proportion to their degree of irradiation. As far as environmental hazards go, I'm very much in favor of making staying outside hazardous, but I'm looking for a clean way of doing so that wouldn't destroy the fun.

    As far as NPC traders go, the only reason that I would consider adding them as a feature would be to be able to provide a standardized, complete adventure/survival experience out of the box that can be tweaked by server admins if necessary, but that would be fully functional and fun running standard vanilla setup.

    I very much appreciate your interest in this project though! I'm working very hard to keep adding new things to this mod and get a release candidate available as soon as I'm confident that it's fantastic.

    Edit: I'll likely upload this to my github repository once I make a bit more progress (Release Candidate territory)
     
  19. Offline

    skeletonofchaos

    Now here's an idea for the radioactive outside... I'm not sure how you do this at the moment but... On player move you
    could check whether the player is above/below the highest block in that location if they are they would be exposed to radiation else they would not. This could then work in addition to the glowstone radiation. Also did you consider adding teleporters then? I'm currently working on a unique teleporter mod myself maybe a partnership of sorts?

    my teleporter mods works by using the block north east south and west of the target block and using them as a combo to link to another teleporter with a matching. Each combo when made is considered owned by the player who made it and he and the ops are the only ones who have the ability to change the locations of the teleporters. Seeing that they are a simple block structure it could easily be added in and allow the users to create links between the abandoned cities, also the teleporters would not work into both of the teleporters are turned online... Just an idea tell me if you think it would be worthwhile I'll continue working on it by myself though. Do you have a twitter? It would be slightly easier than these huge paragraphs :).

    Also ambient radiation would/could take place only during daytime we have more than enough trouble as is at night.

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: May 17, 2016
  20. Offline

    codename_B

    Hey
    [​IMG]

    I love those hills, how are you generating them so nice and smoothly?
     
  21. Offline

    skeletonofchaos

    Wow high profile people following this fullwall AND codename_B
     
  22. Offline

    The Angry kat

    This is awesome as i reminds me of fallout and i love fallout <3

    Have some [cake] for that
     
  23. Offline

    loganwm

    I don't think that it would be terribly hard to check above the player for a block to see if they're outside. Right now for the sake of not eating every bit of processing power, radiation is evaluated in an asynchronous scheduled function rather than hooking the player_move event (which would be invoked a sickening number of times.)
    As far as teleporters go, I've been looking into having teleporters as a piece of either scavenged technology within the mod or an item that a proper-leveled character can construct. I've still yet to make the final call on whether or not I want portals/teleporters at all, but the option will likely exist. I'll keep in contact though just in case.

    I have a twitter that I mostly use for personal/arbitrary things (when even at all,) but you're free to message me on it: http://twitter.com/loganisademigod

    Zombies won't despawn during the day, and I'm contemplating spider hives and creepers that explode causing massive doses of radiation. Believe me when I say that daytime isn't the safest.

    I'm using a Perlin noise function with variable scaling, then filling in the dips with gravel. Right now they're perfectly smooth, but I'm likely going to add a random bit of noise to the height map to make the mountains a bit sharper and more natural looking. I'll send you the server info so that if you'd like to take a look at the terrain in person, you'd be able to. There's a small blending issue that you'll see when transitioning between superchunks, but I'm working on a relatively clever fix for that right now.
     
  24. Offline

    codename_B

    If you get blending sorted, I may pilfer your blending code for my own purposes :p
     
  25. Offline

    loganwm

    I've tossed out blending for now (after hours of frustrated annoyance and a couple terrain generation bugs reminiscent of Inception.), and I have just opted to tweak the generator parameters until things meet relatively smoothly.

    As far as my nightly update goes, here's progress:
    • An instancing engine has been added. It's based on TehBeard's BootToInstance with some efficiency tweaks and other modifications to make it mesh smoothly with the way ApocalypseCraft handles things.
    • A Party system is being implemented. [In order to guarantee that instancing works properly with groups, since other Party plugins can't be counted on to play nicely with instancing.]
    • A Factions system is being implemented. Default protections will be covered under the Factions system as well as potentially a door locking system that functions based on rank within a faction.
    • Data persistence will be handled by SQLITE for speed and simplicity.
     
    Specops343 likes this.
  26. Offline

    codename_B

    Haha - I know, tiling is a bitch :(

    I ended up just making my tiles 4096 by 4096 blocks :p sure there's edge problems but they're on such an epic scale that noone would care ;)
     
  27. Offline

    loganwm

    What are you trying to accomplish with your terrain generation engine out of curiosity?
    I'm actually quite curious since the one pictured here in this thread is the first that I've written, and I know I've only scratched the surface of what can be done with them.

    Also, I'll keep you posted on the procedural structure engine. I think you'll find it neat.
     
  28. Offline

    codename_B

    I'm generating terrain based on ANY input image (or generating my own input image)
    http://forums.bukkit.org/threads/misc-bananaimagetomap-v2-turn-any-image-into-a-world-928.22623/

    I love the idea of a procedular structure engine ^^ if you get that working I will be stealing it :p

    The latest dev version is here, if you just let it generate its own image, the terrain will be fairly realistic.
    http://uf6.info/bcode/BananaImageToMap.jar

    Source in the jar - my cavegen is awesome, you may want to look into using it ^^ I'm really proud of the epic dangerous caves it produces.
     
  29. Offline

    loganwm

    Is your Cave Generator code within the Flat Map Populator? If so, I'll try to implement that into my terrain engine if you wouldn't mind. In exchange, I'd be more than willing to help you with the procedural structure generator once I get it working.
     
Thread Status:
Not open for further replies.

Share This Page