Today I spent my time researching how to work on a game with a large team with the new engine we’re using, together with Marin. In the end we found a solution to handle scenes in a way we think could work, but we’re having some issues with lightmaps not working. Continuing with this on monday!
Today I spent most of my time giving two “masterclasses” about the Engine we’re going to use. One masterclass focused on the technical side and lasted for 2 and a half hours, while the second focused on the art workflow side and lasted for an hour.
The rest of my time was spent preparing for these masterclasses and looking at a new build that was provided by the company we’re working with.
Even more time spent on support. Researching possibilities of the engine, creating and improving workflow scripts and improving project layout designs. I set up a basic version of the project in Perforce and did some experiments on working in scenes with multiple people at the same time. Lots of research!
Most of this day was spent on preparations and support. Since we’re going to work with a new engine there’s much to be decided about the project layout and the workflow. I created a few scripts to improve workflow based on user feedback. I’m also going to do more research on how to improve the workflow for big teams especially.
As I will be working on a big new project with a few new programmers, I spent time today on writing a document containing all kinds of information, tips, tricks and common pittfals about the engine and systems we will be working with. On thursday I will present this document to a group of people that are involved with the new project.
After lunch I had a sprint kickoff meeting, where we used score cards to assign time and value to the user stories and discussed what everyone had to do and what problems there could be. Afterwards we all got together in smaller groups to discuss subtasks and create more user stories for the scrumboard.
Based on the scrum tasks available right now I will start some preliminary work on the new game, prepare for the knowledge transfer presentation and help create a design for the new systems.
Besides that, I’ll also do more work on my project initiation document soon!
As before, I focused on making various settings and variables easier to change to make Rene’s life easier. After that I started testing the game on mobile devices to see what needed improving. I improved the user interface quite a bit based on feedback from myself and Rene. I also did more profiling to remove all spikes and make the code even more efficient. To do this I moved more code away from update loops into asynchronous functions and used more events. I also rewrote some in-game systems from using a lot of raycasting and distance checks to use a physics system. All this greatly improved performance and framerate, and it also made the codebase a lot more manageable.
At the end of the day I was left with a game that was quite fun and challenging already, to my surprise! I have only worked on it for two weeks, and not even full-time, and already the game is in such a shape that it could almost be called a vertical slice.
Next week I will spend time on transferring my knowledge to other developers, start on the new big exciting project and perhaps squeeze in some time to do some work on this first project. The small company that worked on the game before has done some more work after the feedback they received a week ago, so some changes will likely need to be merged.
Today I did more work on the UI code, more profiling and optimization and tried to really get the game going. Before I start on the new major project I’ll be working on the coming weeks, I want to leave this game in a state where the code is neat, adheres to the diagram I designed, all features are working well and the GUI is implemented in a neat and reusable way.
While I will be working on the new project, Rene will be using the latest build of the current game to tweak all kinds of variables and test what kind of gameplay works best. To make that possible the game needs to run well and all settings should be easy to edit. I will set up a system to make this possible today and tomorrow.
Today I created a user interface with the GUI middlware I have chosen. I read all tutorials and documentation on the middlware’s website and after that I created a few buttons and a window with some text and a slider. After that I made the GUI resolution independent; a few important feature that needs to work correctly. My opinion so far is that the workflow is pretty good and everything works as it should. The documentation is somewhat scarce beyond the basics, so the creator could improve on that, but most features are self explanatory so it’s not too bad. Generally I’m satisfied with the middleware!
I tested the game with the GUI on a mobile and a tablet and did some profiling: so far the performance is good and the entire GUI is drawn in 1 drawcall.
After this I’m going to look into the best way to control the UI from code. The user interface will be partially static (pre-made) and partially dynamic, so I need to check what the best way is to create the UI from code. Ideally the code in the domain classes should not be aware of the GUI, so I need to set up a smart system with delegates, events and interfaces to make sure they’re loosely coupled. I won’t do too much work on this though, as the gameplay can still change quite a bit and I don’t want to set up this great generic loosely-coupled system that will be thrown away later anyway.
As planned I did some research into various GUI solutions. It was clear to me that building an in-house system would be too big of a project, so I examined various middleware solutions. I assessed the middleware products based on their feature list, professional support, price, demos and by looking at what people had to say (or complain) about the producs on forums. I also looked at some general forums where people had discussions about the best GUI solutions. After doing this research, I compiled a document with the pros and cons of each solution and explained my personal favorite. I sent the document to Rene, David and Mike and we decided to use the solution I had picked.
My task right now is to do some practical tests with the solution to see if the workflow and performance are good enough and if the solution is stable and has no issues.
Besides that, I also worked on the new project some more, further integrating and expanding the two components that are my responsibility right now.