Since the last time we chatted about research plans, I covered matchmaking systems. Make no mistake, I’m still interested in game development. That’s why my latest idea is to develop a procedural spell generation engine.
Table of Contents
In games that feature magic, often times spells are rather static. In other words, they have a fixed appearance that scales rather simply. For instance, a fireball might grow as you progress in the skill.
I am interested in developing a procedural generation engine for spells. With this engine, users could customize the parameters for a particular spell and watch it generate in real time. The following list contains a set of potential parameters that would be available in the engine:
- Type (Projectile, AoE, etc.)
Keep in mind that I don’t care much for the effects of a spell. In other words, I don’t care about the damage of the spell or any ailments it may inflict. I care only about the visual appearance of the spell and how easily it can be modified within the constraints of the engine.
With an engine like this, teams could rapidly prototype spell ideas. Then during main production, animators could add their personal touch.
When I was younger, I played quite a few video games. Here’s just a short list of some of my favorites:
- Phantasy Star
- World of Warcraft
- Elder Scrolls
- Call of Duty
- Heroes of the Storm
- Super Smash Bros
- Final Fantasy
- Gears of War
As you can see, I had a clear preference for shooters and role-playing games. With shooters came my interest for developing a better matchmaking system. As for role-playing games, I’m more interested in injecting some creativity and excitement.
In fact, my interest in procedural spell generation came from Phantasy Star Universe (PSU). In PSU, spells had levels which changed their power and cost as well as their visual appearance. Take a look:
Despite how bad the graphics look now, I loved this game as a kid. Who wouldn’t love to watch their character visually grow stronger over time?
Of course, you really don’t see games like this anymore. I suspect that’s because animating spell ranks is incredibly time consuming. As a solution, I’d like to develop a procedural spell generation engine.
Unfortunately, existing research in procedural spell generation is rather limited. However, procedural generation in games is not a new concept:
- Towards Procedural Quest Generation: A Structural Analysis of RPG Quests
- Procedural Content Generation via Machine Learning
- ILM’s framework for procedural geometry generation, simulation authoring, crowds, and more
- Methods and apparatus for a video game magic system
- Real-Time Interactive Tree Animation
Perhaps there is more research in the are, but I was unable to dig it up. Honestly, I’m probably just searching in the wrong places, so let me know if you find anything more helpful.
That said, I did manage to dig up a project from Carleton University in 2010 that seemed to be trying to tackle this exact subject called Procedurally Generated Spell Effects.
In addition, I managed to find a pretty solid Reddit thread on the subject from a year ago:
Whoever kicked off this thread seems to be interested in a similar project.
At any rate, let’s dig into the final risk assessment for this project.
When I think about this project currently, it’s a bit amorphous. Like, I have a general idea of what I’d like the engine to be able to do, but I don’t have a concrete set of objectives at this stage in the process.
To be honest, measurable should probably be a 0. After all, I’m not sure what data we could possibly collect with a project like this. Would we measure user satisfaction with the engine? Would we measure spell likeness to expectations? I’m not sure.
That said, I picked 5 because I know that we would be able to determine when the project is finished. At least that is measurable.
Again, I don’t see why we couldn’t tackle this sort of project. At this time, I’m not sure where I would begin, but I know real time rendering of spells is already possible. Making a rendering tool to procedurally generate spells is the hard part.
For someone who plays a lot of role-playing games, I imagine game developers would love this engine. Who knows though.
Since this would largely just be a piece of software, I am comfortable with the timeline. That said, I couldn’t give this project a 10 without knowing exactly what I would be measuring.
Overall Assessment (7.6)
Much like our matchmaking systems assessment, we’ve ended up with a 7.6 overall score. Personally, I think this project would be harder than matchmaking systems simply because I don’t have enough background in graphics. But, numbers never lie! Perhaps I was a bit too generous in some of my assessments.
Kicking off a new series of reverse engineering content inspired by VirtualFlatCAD. Today, we're trying to roll our own uppercase function.
When it comes to capitalizing strings in Python, you have a few options. Use the tools Python provides or roll your own.