MageWorks

[Originally had this thread posted in the VR dev section, but since this project has evolved, migrated it over here and deleted old thread]


https://youtube.com/watch?v=YVRHnAW371g

MageWorks is VR game designed for use with Vive and Touch, and as a casual exploration and crafting game. The premise of the game is satirical in nature putting the player in the position of a mage going through magic school, and ultimately the player will need to complete quests and find loot to pay off their magic school debt.

In MageWorks, players have a spellbook in one hand and a staff in the other. The spellbook can be exchanged with other books in their library, and each page has a different spell to cast. There is also a bookmarking system that allows players to bookmark their favorite spells, which then show up in their custom book. This will allow players to customize a book specifically for the type of quest they want to go on.

http://i.imgur.com/Nfqtbso.gif

http://i.imgur.com/NiwiLnv.gif[/img [img]http://i.imgur.com/a2DRhAs.gif

Staves are also customizable. I’m currently in the process of building a crafting system that allows players to manually create their staves. This involves collecting resources like crystals found deep into mining caves, or collected wood and flowers from a forest. Crystals can be shaped and are used on the end of staves. Flowers can be milled to create ink used for drawing designs. Wood is collected and shaped in different ways to create the main part of the staff.

The game is currently available in early access, however is due for full release mid-2017.

More information available at:

http://store.steampowered.com/app/494780
http://www.earthborninteractive.com/mageworks
http://www.indiedb.com/games/mageworks

MageWorks is now available on Oculus Touch!
https://www.oculus.com/experiences/rift/1127921550614118/

Sounds original and looks like lots of fun!

thanks @TechLord

trying to get another update online soon as I juggle some freelance work, but here’s a quick anim of the log prep tool being used as collected lumber is shaped into a staff…

Are you developing this single handedly?

for the most part, yes. Have been developing this project since early June on my own (as soon as I received my Vive), but most of the art is modified from marketplace. Am open to partnering or team building if anyone is interested…

Very impressive what you have achieved with Marketplace assets. I specialize in Blueprints. What is the primary programming interface your using C++ or Blueprints? What tasks / content do you need assistance with?

would be happy to chat offline about this. will send you a DM!

Mind explaining how you achieved that lathe effect in the animated gif above? Wasn’t even aware that UE4 could do an effect that exact unless part of it is smoke and mirrors

what’s up @Ironbelly , sure, but it is smoke and mirrors :stuck_out_tongue:

I’ve been experimenting with a few techniques for the lathe. The options i’ve looked at (and there are probably many more) - a custom mesh that has a profile defined by a spline with lots of spline points, or, a cylinder that is composed of several hundred mini-cylinders. so i went with the latter. here is a screenshot so you can see:


each cylinder is 1cm thick. they are then propagated along a spline with a spacing of 1cm (but some code is set up that scales the cylinders thickness based on spacing so i could test total number of sub-cylinders). the spline will always be linear, so this is an ok way to generate the log. these are also instances (you can see the variable in the screenshot), so this is actually really performant too.

then for the smoke and mirrors…

each instance has collision turned on, however, when the tip of the lathe tool touches the log actor, the log actor passes the index of the instance that was hit. that instance index is then modified with a scale factor. (i’ve been testing anywhere from .95 to .9). collision also triggers fx. the saw dust being kicked away is a particle effect as is the smoke. this effect is toggled based on contact between the tip of the lathe tool and the log.

the next update of mageworks will include this tool to play around with.

in the long run, i will probably end up using a procedural mesh for a variety of reasons. the instanced cylinder has limitation with materials, lighting/smoothing. additionally, like the crystals, players will be able to 3d-print their staff creations. so creating a staff using this method, i would actually have to write another function that builds a custom mesh based on several hundred radii. instead, i’d rather build the custom mesh using rings of verts that are modified at runtime, and simply export the mesh using the same function i use on the crystal export.

anyhow, i hope that explains it, but if not, let me know, and i’ll post more info.

Thats how I figured it worked when I saw the Gif but I assumed you were already using the PMC for it, clever to use the splines for the staves as well.

I like the mechanics you are putting into your project, good work and keep it up. The last thing VR needs right now is less unique ideas.

Hey man! Glad to see a dedicated thread for the project, it’s looking quite awesome :slight_smile: Really love the wood grinding / carving stuff you have going on, it looks very impressive.

thanks @Higuy8000 & @mordentral , I appreciate the feedback!

20161017
build v0.0.13
MageWorks update v0.0.13 is now available!

Here’s a list of what’s new:

> Environments are continuing to be rebuilt so each environment reflects a different school of magic
> New A.I.! The forest now has a first look at some spiders being introduced into the environment.
> Fixed an issue with the Mining Cart making a ride through the tunnels more stable
> Beginning to introduce more of the staff wood shaping equipment. Players can experiment with a lathe and log shaper.
> The drafting board is also functional again, and players can draw different shapes (The CNC machine will build these shapes in the next build!)
> Resources can now be collected and lockboxes opened at any time without the corresponding spell page needed to interact.

Known issues:
> The log shaper is still being worked on, so cutting logs occasionally results in mesh errors. This is being evaluated for next release.
> CNC machine is not functional yet, but aiming to have this online next build
> Spiders are ambient, but will be aggressive in a future build

On The Horizon:

> Continued work on the woodshop. Art will improve, as well as a way to store different creations with the lathe, CNC machine, & Log shaper
> Improved A.I.
> Continuing work on adding more spells to the library which are functional
> Continued work on level design.
> Now that the flower milling / ink creation area has been populated, functionality will be implemented for ink creation.

Update v0014 is now available and more of a mini-update with a focus on new spells and A.I.

> Five different defensive spells are available to use. Because save games will be overwritten, spells will be auto-unlocked at game start until full release.
> A.I. is now more aggressive. elemental skeletons, zombies, and spiders will all attack the player

Managed to make some progress on ink-making today. when players collect flowers, they can summon what they’ve collected at their flower milling station to start the prep sequence.
So far the process is planned as:

Collect flowers -> Cut flowers -> Mill/Grind Flowers -> Add mixture -> Fill ink bottle -> Save ink bottle.

The first test for this logic was originally with proc meshes as well, but decided to head more toward bloom + stem pre-assembly. Proc meshes were great because the cut could occur anywhere on the flower, but was problematic when transferring them from random physics based fall location to the mortar & pestle.

So the stem-cutting game will essentially be for an accurate cut below the bloom, or else some sort of failed cut sequence if the cut is below the desired location.

The concept of modulating ‘bings’ to direct the cut blooms over to the mortar and pestle came from the game ‘Dispersion’ that was built awhile ago for one of the ue4 game jams.

So next steps…programming the logic to grind flowers!

So here’s a first shot at building the milling and admixture sequence:

The flowers are mashed down into individual petals and release some particles. The add mixture was a little more complicated. I haven’t gotten into houdini or nvidia’s liquid stuff yet, but really want to explore their code when i have a free moment. so for the time being, i developed a series of interdependent curve ratios that modify shapes to mimic the shape of liquid being poured out of a flask. the spout itself is just a beam particle effect. refraction of the flask helps build the illusion that liquid is being poured out.

When the mortar bowl is filled, and series of conditions have been met internally, and mixing the flowers around allow the ink volume to change colors to the color requested by the type of flower that was mashed.

next steps are to clean this process up a little to make it a little smoother, and then build the ink saving system.

Holy frik this looks like fun! Loooove the books and crafting especialy.

thanks @lennysunreal !

so bringing all of the pieces of ink crafting together, here is the general sequence of the process:

will be bug-crunching this over the next few days, but the system should be available to play around with at the next build release.

once the player has created some ink, they will be able to draw their designs for staff creation at the wood shop.

Was able to put some time into the map room / observatory, bringing the four quarters of MageWorks to be an ink shop, wood shop, crystal shop, and observatory.

Have sketched out a few ideas for the observatory’s function. The game currently has 6 little globes sitting on a shelf, and someone had asked what they can do with those. These globes are supposed to be future levels to travel to as DLC depending on the next few months of development. So the current designs for the observatory are as such:

Option 1:

Players will be able to collect pieces of the telescope found within treasure chests. The chests are located in vaults, so players will have to explore to find the spell that unlocks vaults.

An example of a vault, and using a Flashlight Drone (or lightning drone…haven’t settled on a name yet) to light the way inside.

|

Once the telescope has been assembled, players can hunt through the night sky looking for additional planets to identify. Once identified, the corresponding globe will unlock for players to teleport to.

Option 2:

Because using the telescope in VR is pretty fun, I may try and integrate this into level teleporting on a regular basis. So for example, the constellations in the sky would be shifting around, and the player would need to line up the telescope with the current position of the constellation to activate a portal to that location.

Another advantage of this is that i can introduce some educational content re: astronomy into the game, and constellation icons can be used on the map board that easily identify which level they represent.

Will playtest both of these concepts and see which works out better…

[EDIT] 2016/11/14
Here’s a look at basic observatory functionality. When the player teleports onto the telescope viewing platform, they can control the rotation of the telescope & roof. A scene capture component is built into the telescope which is then used on a material in the viewscreen where the player is standing.


MageWorks update v0.0.15 is now available!

Here’s a list of what’s new:

> Flower Milling! Players can now work with flowers in the flower shop to create ink.
> New spells! All defensive spells are now available including a Ring of Fire, Bone Wall, Ice Wall, Thorn Wall, and Static Field
> Improved A.I.! Elemental skeletons will now attack the player
> Vaults! Several vaults have been integrated into the environments and contain treasure chests with large amounts of gold to collect. Vaults can be opened when players find/unlock the Vault key spell located at one of the scroll stones.
> Health and Mana Stats! Players can now view their health and mana in the same way they can look at gold and kill count. Pressing the spellbook grip button will display the player’s current stats.
> A new drone! The flashlight drone is now available and helpful in situations without much light like vaults.
> An observatory! Players can control a telescope to look around the night sky. In a future build, players will be required to line up the telescope with certain constellations to teleport to new levels.

Known issues:

> The gamestate save system is constantly evolving, so save games will be overwritten with the update. Until full release, most available spells will be auto-unlocked so players don’t have to re-unlock anything.
> The uncut crystals in the mage quarters are currently collectible for ease-of-use and player testing. These will eventually be removed toward release date requiring players to venture out and explore to collect crystals for shaping.
> The log shaping system is being re-worked to address the mesh break issue.

On The Horizon:

> With the crafting system coming close to a workable state, players will soon be able to start using all of the pieces they create with the ink, wood and crystal workshops
> Additional polish on the environments and A.I.
> A book of maps is being developed to help players navigate in the wild.
> A tutorial system is in the works!

One of the challenges with building procedural content is finding a way to optimize what is created and save that mesh data for future use (either as a static mesh or whatever). so finally was able to achieve a usable solution for the woodworking lathe. When players lathe wood, the game will convert their creation into a single optimized mesh at runtime that is performant. furthermore, this simplifies the data being sent to the 3d printer.