I spent much time on optimization and cleanup. We’ve gained a 30% performance increase by optimization! This puts us at a stable 200-250 FPS, if not more, in the editor.
I also made the bullet time pickup less random. Well, it’s still random, but when the pickup spawns, the spawnrate of obstacles is raised to 100%! This means the player really has to get those, or he’ll have a very hard time dodging all those obstacles.
This week I’ve spend my time working on making the aim function a bit more useful. Now, when you aim and hit a target with the aim lasers, you will target that item. There is a max angle of course, but this should give players an incentive to aim at targets before they shoot.
I also setup some of the basic settings like FOV and render distance, which will allow us to add those options in the main menu.
Finally, I added a loading screen between the main menu and the actual level!For the purposes of demonstration, I’ve manually made the loading screen longer.
This week I continued working under the hood. I moved all the track scripts to appropriate managers. Those managers all inherited from a general TrackManager script which has a couple of nice functions, like range checking. With all that done, it seems like most of the managers are now set in place, which means we can start polishing, value tweaking and looking at some more features. As much as I enjoyed being a cleaning lady, I’ll be happy to work on some new stuff in the coming weeks!
This week was another slow week, despite what I said last week about full throttle. Due to the Ludum Dare gamejam, I missed the weekend to focus on this project. When I did have some time, I continued working on files on the hood, shuffling code to managers and changing publics to privates.
Since it was all hoodwork, I don’t have any pictures to showcase, so I decided to visualize our repository with gource.io!
The last 2 weeks have been slow when it comes to game projects, due to a trip to Iceland and other courses, but now we’re back at full speed.
Even though it was a slow 2 weeks, I still managed to get some work done under the hood. Mostly dealing with managers, integrating old code with the new managers, etc.
After the feedback session with our fellow students, I also applied some of that. One of the biggest complaints we got (besides some frame lag) was that people were confused about our shooting mechanic. They didn’t know when they were shooting or when they were aiming. I decided to make a “No ammo” UI element that appears if the player tries to shoot when he has no ammo.
We would also like to add snap aim, to make aiming more useful.
This is what the UI element looks like right now:
This week was another week of working under the hood. I (with the help of Leander) changed the way the pickups spawn, based on Jen’s new view distance render system. Because of this change, we had to revamp the spawn system, and redo it completely. It took us a while, but after a couple of hours, we finally got it working.
I also redid the pickups. They now have a base class Pickups, and the specific items inherit from that class. This way, all the “magnet” behaviour is done in the base class, but the object specific behaviour is done in the inherited class (Adding score, getting shield, etc). This will make new items easier to implement in the future.
Last week we some feedback that we applied as well. Score is no longer the ammo for the lasers, we now have a separate ammo bar that is shown on the UI.
Another piece of feedback we got was that our UI should follow the player, instead of being static in the corners of the screen, since a player is not able to look at those corners when going at high-speed. I implemented this too, together with some new UI assets made by our artist Jakob.
The UI now follows the player and looks like this:
The bar on the left is health, and the bar on the right is ammo.
This week I had some fun cleaning up all the prototype code. I added comments, refactored code and generally simplified some stuff. I also implemented some basic managers which should make our lives a whole lot easier.
For example: I added a player manager which sets all the properties for the player, instead of having to edit values in every individual script. With tooltips added to every value, teammates should have an easier time tweaking values, as they can also check what exactly they are changing.
This is what it looks like in the editor:
I also added a health bar and a shield indicator. This should give the player more feedback. The plan is so use those same indicators for other pickups at a later time.
The health bar can be seen in the bottom right of the screen, and the shield indicator is placed in the top right, and only appears when the player has shield.
The shield indicator is supposed to be fully green, but the gif seems to have messed that up.