sutratman

Post Reply
kaen
New member
Posts: 9
Joined: Sun Aug 14, 2016 18:07

sutratman

by kaen » Post

Last edited by kaen on Sat Aug 20, 2016 15:39, edited 2 times in total.

User avatar
Desour
Member
Posts: 1472
Joined: Thu Jun 19, 2014 19:49
GitHub: Desour
IRC: Desour
In-game: DS
Location: I'm scared that if this is too exact, I will be unable to use my keyboard.

Re: AdventureTest

by Desour » Post

looks interesting, are these real players or mobs? i assume they are mobs because they replaced the dirt with grass without digging it and were so perfectly
he/him; Codeberg; GitHub; ContentDB; public personal TODO list; "DS" is preferred (but often too short)

User avatar
azekill_DIABLO
Member
Posts: 7507
Joined: Wed Oct 29, 2014 20:05
GitHub: azekillDIABLO
In-game: azekill_DIABLO
Location: OMICRON
Contact:

Re: AdventureTest

by azekill_DIABLO » Post

looks avesome!
Gone, but not dead. Contact me on discord: azekill_DIABLO#6565
DMs are always open if you want to get in touch!

User avatar
BrandonReese
Member
Posts: 839
Joined: Wed Sep 12, 2012 00:44
GitHub: bremaweb
IRC: BrandonReese
In-game: BrandonReese
Location: USA

Re: AdventureTest

by BrandonReese » Post

kaen wrote:Week 1: http://imgur.com/a/79rKy

More info to come :)
Looks very cool. Do they build the structures from a schematic file or is it just a pre-programmed structure?

If AdventureTest is the name of the mod or game to be release you may want to consider renaming so as to not get confused with viewtopic.php?f=15&t=9184

kaen
New member
Posts: 9
Joined: Sun Aug 14, 2016 18:07

Re: AdventureTest

by kaen » Post

Ah, I knew that name was too obvious to not be taken. I'll think of a better working title by the next update. Thanks for pointing that out. EDIT: In fact looking into that sub game more, there's actually a ton of overlap between with features and goals of the projects, beyond just the name. I'll have to look at what's been done so far and see if it's better to just pick up from the real adventuretest lol.

These are mobs, and they are using a generalized schematic building system. The houses could be replaced by any structure, but as first pass I made them all identical and bad-looking :)

In fact, these mobs are not "pre programmed" in any sense. They simply run tasks from a queue, and the tasks are written to enqueue "subtasks". These NPCs were not told to build any particular block, but rather were told to "find a place to live".The "find a place to live" task is composed of several subtasks: Eventually one of them finds a good place to start a town, and proclaims himself the ruler of the new town. Then others see there is a new town nearby and join it, then divide the labor of leveling a suitable area to build the new town (you can tell which one is the ruler because he's just watching everyone else work lol). Once that's complete go about finding and claiming an area to build a home, and then individually performing the actual build tasks for their residence (and then wandering around aimlessly and glitching out a bit).

User avatar
Desour
Member
Posts: 1472
Joined: Thu Jun 19, 2014 19:49
GitHub: Desour
IRC: Desour
In-game: DS
Location: I'm scared that if this is too exact, I will be unable to use my keyboard.

Re: AdventureTest

by Desour » Post

nice
i assume they are in creative mode, could you please make them more like players who are in survival mode?
he/him; Codeberg; GitHub; ContentDB; public personal TODO list; "DS" is preferred (but often too short)

Sokomine
Member
Posts: 4282
Joined: Sun Sep 09, 2012 17:31
GitHub: Sokomine
IRC: Sokomine
In-game: Sokomine

Re: AdventureTest

by Sokomine » Post

kaen wrote: In fact, these mobs are not "pre programmed" in any sense. They simply run tasks from a queue, and the tasks are written to enqueue "subtasks". These NPCs were not told to build any particular block, but rather were told to "find a place to live".The "find a place to live" task is composed of several subtasks: Eventually one of them finds a good place to start a town, and proclaims himself the ruler of the new town. Then others see there is a new town nearby and join it, then divide the labor of leveling a suitable area to build the new town (you can tell which one is the ruler because he's just watching everyone else work lol). Once that's complete go about finding and claiming an area to build a home, and then individually performing the actual build tasks for their residence (and then wandering around aimlessly and glitching out a bit).
That sounds extremly intresting. How well does it work? One of the major problems with mobs roaming around on their own is that they might get "out of sight" (that is, cross into unloaded territory and despawn). Is there any way to take a look as to how it works so far? The link in your first post doesn't show me anything (no picture, no video; probably JavaScript required?).

The existing AdventureTest game works pretty nice already but can of course use more work. And my mg_villages mod just places the villages - there are no mobs in it that build anything, although some mods (the good old towntest, npcf, maybe others) provide mobs that can construct houses from schematics.
A list of my mods can be found here.

kaen
New member
Posts: 9
Joined: Sun Aug 14, 2016 18:07

Re: voxlegends

by kaen » Post

Yeah I think imgur might require javascript, now I feel lame for gif'ing it in the first place.

I've edited my OP with a github repo, but keep in mind that at this point it's just scribbles on a napkin.

The task processing itself works well, and is flexible, and in fact very trivial to implement and use. The trick with writing the tasks, as with all programming, is telling the computer exactly what you mean for it to do.

Regarding despawning/general simulation problems: the code currently contains a wonky little async wait method to attempt to force emerge a certain playable area, and will block history generation until the entire area expected is sent to on_generated. We then constrain at least NPCs to the predefined playable area. Once that's done, read_from_map is used as a fallback to get_node calls that return "ignore". With these guarantees in place we can depend on having map data available for calculation (or that's my theory, I haven't thoroughly tested that part lol).

When it comes to the physics/collision detection, that's actually all been disabled in the engine and reimplemented in Lua. Which is definitely bonkers, and I'm not sold on it, but it does afford some advantages. Namely testability without a minetest process, and the ability to simulate at arbitrary speeds (or indeed under arbitrary conditions). This allows us to use a single code path for start-of-world history generation as well as realtime simulation. Minetest's "entities" are used only as dummy rendering tools, reading from an internal Character class to get pos/vel/accel/yaw. Setting physical = false in the entity definition even allows us to use minetest's built in client-side prediction (except for collisions, so we move slowly). In the test environment entities are completely disabled (no rendering is done).

Again because we have guaranteed that map data will be available, and we have 100% control over the physics and collision detection system, as well as the class that represents characters in the world, we can simulate with arbitrary parameters any amount of the simulation, even if minetest is not running (let alone when a map block is not in memory).

Man I hope that made sense. I just barely understand all of this myself, and I apologize if that comes through in my description.

User avatar
rubenwardy
Moderator
Posts: 6977
Joined: Tue Jun 12, 2012 18:11
GitHub: rubenwardy
IRC: rubenwardy
In-game: rubenwardy
Location: Bristol, United Kingdom
Contact:

Re: voxlegends

by rubenwardy » Post

Your game has a rather close name to VoxelLegends, my rpg subgame http://rubenwardy.com/VoxelLegends/
Renewed Tab (my browser add-on) | Donate | Mods | Minetest Modding Book

Hello profile reader

kaen
New member
Posts: 9
Joined: Sun Aug 14, 2016 18:07

Re: voxlegends

by kaen » Post

Well, damn. I might change it to a random string of characters to avoid yet another collision.

Post Reply

Who is online

Users browsing this forum: No registered users and 16 guests