Git Product home page Git Product logo

aimmo-unity's People

Contributors

celineboudier avatar charafau avatar danalex97 avatar j4mesholland avatar mmfernando avatar mossjacob avatar mrniket avatar olafszmidt avatar ramonfmir avatar riajha97 avatar theseusgrey avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

aimmo-unity's Issues

The green bar in the health bar does not appear

The green and the red sprites that form the health bar are in the same layer and this leads to problems. When the avatar is created for the first time, it looks fine because of the order in which the sprites are added. However, when the isometric position is updated, the sorting order of the sprites in the children are also updated accordingly and this makes the red bar overlap the green bar completely sometimes.

Level builder - add point lights

Allow the possibility to add light points to the scene. This means refactoring the MapFeatureManager class to allow adding elements to the scene that are not sprites. Closely related to issue #3.

Level Builder: GUI types consistent

As mentioned in PR #64, not many types are consistent throughout the codebase. One instance is that width and height elements are text fields in the GeneratorMenu.cs file.

WebGL Building: Improve build time

Right now the build time, even for as little assets as we have imported, takes a very long time (10+ minutes). This is due to the fact that the build includes all the editor files which we ( @ramonfmir @danalex97 and I) believe are not needed.

Mentioned in #26.

I know movement of files in and out of the Editor folder can omit them from building... but don't think this is the best option.

This is truly dependent on the fact if we manage (or decide to) split the editor from the rest of the code. Personally I don't think it's possible. This is in issue #27.

Article that may help: here.

Level Builder - Refactor LevelBuilderWindow

  • All the parts of the Level Builder are in separate files in the Editor/GUI/Menus directory. The generic file that renders the window, LevelBuilderWindow.cs is in Editor/GUI and contains some logic that should be moved to the Menus directory too.
  • With PR #62 we introduced GUIUtils.cs which should take some logic out of menu's for re-use.

Build errors and granularity

When trying to build to WebGL the project, the build can't be executed. The issues is the import of UnityEditor namespace inside the main assembly. This can be solved by removing some imports.

Another problem with the build is that all the files are included in the build, whereas the tool for level generation and the tests, as well as the test framework folder, should not be included at all.

Integration tests

In the travis branch we have written quite a few unit tests. However, run time behaviour is just partially tested since in Unity the Editor mode and the Play mode behave very differently. That is why we should write some integration tests before merging #2. The Unity Test Tools package provides support for it.

Unnecessary imports

As @CelineBoudier pointed out in #62 there are many files that have unnecessary imports because they have just been copy and pasted from other files for convenience. Some tidying up might be a good idea.

Level Builder - Generating obstacles not seen as a modification by unity

Generating obstacles makes them appear on the scene we are working on right now, but if you change scenes (note: nothing to save at this point according to Unity) then come back to the original one, the sprite will be gone and neither on screen or in the hierarchy.

If you move the sprite by mouse (not by WSAD from the Level Builder), unity sees a change, you can then save the scene and the object will persist.

Basic level builder

Create a tool for the Unity Editor from which we can easily design levels and export them to the format that the back-end understands (this is implemented in #220).

Split the repository

There are two different projects in this repository:

  • The main one, which listens to the back-end and updates the scene accordingly.
  • The level builder, which is an editor tool for designers to create levels.

It would be nice if we could split them into two different repositories. One of the problems is that we have intentionally made the level builder depend on the main one so that map features are added to the scene using the same code that will be used in the actual game. I was thinking about making it a git submodule but I'm not sure that's a good idea.

README improvements

  • Prerequisite should say people should clone the project :)
  • Add a Contact Us paragraph with the link to code for life contact form

Level Builder - GeneratorNS no longer used in LightSubmenu

On launch of project on the improve_unity_ux branch as of now the namespace GeneratorNS is not found nor' used in the LightSubmenu.cs file.

Assets/Editor/LevelBuilder/GUI/Menus/LightSubmenu.cs(3,7): error CS0246: The type or namespace name GeneratorNScould not be found. Are you missing an assembly reference?

  • Look into other uses of this NS and see if we can remove it.

Level builder - 'Create level' button

Forcing level designers to create the levels using our own button would be a good idea. First of all we wouldn't need to worry about dynamically adding the generators so that map features can be created. Instead this new scene that we control the creation of can have all the scripts (in the for of components) that we will need in the future.

By doing this, the ObjectController won't need to worry about the Level Builder Context and instead just worry about moving game objects in the scenes, as it should be.

Also, it would be nice to have a drop down menu with the levels.

Level builder - sprite texture type by default

Sometimes, not making the PNG's in the 'Resources' folder have a 'Sprite' texture type leads to problems. Let's find a way to automate this so that we don't have to change it for each image in the editor.

Issue and PR templates

To make our issues easier to understand, reproduce and read - I think we should make use of github's ability for templates.

We need to create files named as PULL_REQUEST_TEMPLATE.md and ISSUE_TEMPLATE.md in the root directory for our repo according to this blog post.

There's many open-source ones available to use already, such as this.

Level builder - find a better way to pass around types

We hold a type in the SpriteGeneratorBuilder. The way it's done, it works but it is a bit hacky and is hard to understand. Also, leads to lines of code such as line 144 in SpriteGeneratorBuilder. We should find an alternative way. @danalex97 might have some ideas.

Level Builder - Remove scenes from editor after closing

A small enhancement I don't want to include in the current dropdown_and_refactoring branch because it's getting way too large.

I suggest we remove scenes after generating new levels so we don't get too much cluster in the hierarchy menu.

A simple call to this method with an appropriate flag will suffice.

Obsolete methods used

The likes of files like AssetFetcher.cs use obsolete methods. We should convert them into the newer updated scripting API instead. E.g. EditorApplication.OpenScene() is used.

Level builder - integration with back-end

We need to integrate the current export with the back-end. The exported JSON should also contain the name of the class it generates, so the back-end can differentiate between the objects.

Documentation

Update the README, write a wiki and improve / tidy up the comments.

Level builder - make it clearer when you're moving the light

Nowhere in the level builder it says that you're moving the light so sometimes it looks like the keys are broken. Think about something.

This is not that simple though. It is a problem we have encountered throughout the process of building this editor tool. You can detect keys all the time but you can only modify the interface of the editor inside the OnGUI() method. The way Unity works, it will only be called when the mouse is over it, which might not lead to a great user experience.

Level builder - LightSubmenu instead of conventional LightSubMenu

Some convention errors. All files within Assets/Editor/LevelBuilder/GUI/Menus have capital letters at each new word in the filename. Same goes for classes within them. LightSubMenu.cs file has it's class called as LightSubmenu and this caused some errors to be raised when the class is called elsewhere.

Level builder - basic test suite

Test the exporting functionality and the options in the editor. Most of it should be easy to test, since both the level builder tool runs in Editor mode just like the unity tests tool. The only tricky part will be the 'try' option added in #19.

Level Builder - Save button

Now that the issue with the scenes not saving is fixed (#52), we should consider how to save a level without having to generate a new one (for example when you want to work on a different existing one, or simply want to exit Unity).

A simple save button for the current open scene should do the trick.

Using TravisCI

First, we need to write a full test suite for the current code. This will be run in TravisCI and after doing that we will also build the Unity project to WebGL and upload the generated files to Google Cloud Storage.

Better error handling

Often we try to load resources and assume that they're there, however that might not always be the case. Also, for instance the JSON format might be incorrect and everything will just fail without giving a very clear error message. There might be other cases in which better error handling is needed but these are the main two. Let's add our own assertions and error messages, it will make our lives easier.

Level builder - multiple lights

We can only add one light on each sprite for now. We should perhaps think about a better way of adding lights instead of a simple toggle.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.