Demo Game: Evolution Island [Initial prototype + Dev Planning]

evolution-island
(Karll) #1

As @erlend_sh mentioned on Discord, I have been working on a prototype for the Evolution Island project, and it’s now on a good point to make this post!

I mostly worked on it with the mindset of getting something done as a starting point for a team project, in which becomes much easier to raise a task list that people can pick and do, and to see the shortcomings of this iteration to improve on it.

Current status

“Wow, look at these charismatic faces, can I take one of them in a date?” - Maybe you, impressed by the beautiful magenta lines and the brutal charisma of a carnivorous entity.

This prototype has some very basic steering-like behaviour, it has a Wander behavior, a system to enforce bounds EnforceBoundsSystem and a weakly opinionated structure for the project.

By weakly opinionated I just mean it has a structure but the opinion is restricted to “What felt good at the moment to have a rather modular structure”, so it isn’t anything well planned, actually I think the structure of the project can benefit a lot more from a discussion as a team, the current structure is useful exactly to have a common reference point to tear apart and improve.

The wander behavior is implemented as a WanderSystem, which uses mainly the components Movement, Wander, WanderBehaviorTag.

Movement is intuitive, but why both WanderBehaviorTag and Wander components? That’s where I felt most unsure how to continue, while a Wander component is enough, if removed the entity loses it’s Wander data, so this raised the question, what data will be contained in Wander? Should it contain persistent wander attributes like turn_rate, wander_speed or should these be found in a Attributes component?

These are a couple of questions I had while developing this and work as good starting points for a discussion.

Task List

During said development I also felt lack of a few things, which helped inspire this task list. The task list is mostly a series of suggestions on what to do next, any comment, suggestion or criticism on the is encouraged.

(A) Gameplay

  1. [ ] Plant entity instancing
  2. [ ] Carnivorous entity instancing
  3. [ ] Herbivorous entity instancing
  4. [x] Wander behavior
  5. [ ] Seek behavior
  6. [ ] Evade behavior
  7. [ ] Feeding/hunger system
  8. [ ] Health system
  9. [ ] Combat system
  10. [ ] Spawner entity
  11. [ ] Wall avoidance

(B) Quality of life

  1. [ ] Accelerate simulation
  2. [ ] Debug stats UI (delta time, fps, simulation speed)
  3. [ ] Loading sim and creature parameters from file

If anyone wants more information or justification for an item, or to change something in the list, just ping me.

E.g. “Hey @khskarl, what’s up with item A9? I don’t like violence! Can we change it? Or add a task for developing a peaceful mode, where all creatures just solve all their conflicts through mature, friendly conversations and poking each other on facebook?”.

Repository

If I forgot anything, please let me know!

5 Likes

(Kel) #2

Hey! I’d like to try and make some assets for this since I got a new drawing tablet (pixel or otherwise). Any idea of what items are needed and at what size?

0 Likes

(Erlend Sogge Heggen) #3

Seeing the prototype above (the simple square map shape is ideal for now) and keeping th MVP design doc in mind, might you be able to mock up what you imagine this game looking like? I.e, some basic concept art of what the game would look like in play.

I could try give more specific instructions, but it’d just be another way of getting to the first of a handful of iterations anyhow.

0 Likes

(Karll) #4

Erlend’s suggestion is a good one, concept art is really useful to better visualize multiple art directions for the game so we can pick one and work on consistent assets.

Working on art assets now, besides placeholders, may not be the best thing as there aren’t many things in the game needing assets right now.

0 Likes

(Nolan) #5

Hey, I was pinged on Discord about lending my perspective to this.

For those who don’t know, I’m blind, and am interested in using Amethyst for developing audio games. This requires both having a rich audio subsystem that is easy to work with and conveys spatial sound well, and having spoken feedback for the underlying UI so menus and other interface elements can be navigated.

I’ve been actively working on refactoring the audio subsystem to achieve the first goal. I’m building my own sample game based on that effort, and will strive to submit PRs so the upstream system can benefit.

I haven’t started work on the second goal, but it’s high on my list when the audio subsystem becomes a bit easier to work with. Essentially, what would help me there is adding a rich set of events for just about anything that happens in the UI subsystem. So when a UI element gains/loses focus by any means (mouse, keyboard, etc.) I’d need an event. If a widget changes its value (checked/unchecked, text in a field changes, etc.) I’d need an event. If the cursor moves around in a text field, I’d need an event letting me know where it is. With those events, I can create an accessibility subsystem that provides speech feedback. I’ve been building a TTS crate for just that purpose, and it currently supports Linux and possible WebAssembly. Support for other platforms would be easy to add.

Anyhow, I was pinged about participating in this effort, so I’m just noting my interest in doing so. :slight_smile:

On a related note, a recent US law called the 21st Century Communications and Video Accessibility Act initially exempted video game menus from being accessible. That exemption has recently lapsed, though, and some mainstream games are gaining menus that provide spoken feedback. There’s an opportunity to be the first game engine with this support baked right in. Unity has a third party accessibility plugin that publishers can independently add, but I don’t think it leverages the engine directly. I’d like to help make this happen if possible, and it’d be neat if the concept game could either enable this subsystem behind a feature flag, with a certain key combination, etc.

6 Likes

(Erlend Sogge Heggen) #6

A long time friend of mine also living in Oslo has offered to do ambient/background music for the game. Here are some of his samples:



The plan is to come up with some gentle loops that players won’t easily get tired of.

2 Likes

(Erlend Sogge Heggen) #7

Put out a call for collaborators on Users and /r/rust:

0 Likes