Hey guys, I just wanted to give you a short update on the current tasks I am working on!
I am currently working on the main menu and the menu dialog in the game. Until now, the game itself showed up after launching the game, which is nice for development. However, you normally want to have a main menu with the options to create a new game, loading a saved game, creating a multiplayer game, etc. That’s what I am currently working on. I hope to finish this task next Monday or Tuesday.
The biggest task I am currently working is has nothing to do with programming or game design, but it’s also extremely important: Writing a business plan. Since the release of the game’s first version is coming closer every day, it’s time to write a business plan!
Hey guys & girls,
Starting today, I will create short videos on a weekly basis showing different game mechanis and feature or I present updated content. I spent quite some time thinking about the voice-over of the video. I know that my English pronounciation isn’t very good, but I think it works for the development videos. The tutorial videos and trailers will have a professional voice-over by voice actors.
Besides creating the video I spent my time on balancing and testing. I want to eliminate as much flaws as possible before anyone plays my game. There were some non-critical visual bugs when two NPCs fought with their firearms. There were also some minor problems with the UI that have been elimated.
I also spent some time in adding new features that support the game play, like an auto-zoom when pressing the keys F1 to F3 (F1 focuses the player’s ship, F2 sets the focus to the enemy ship and F3 resets the camera). Now, it is also possible to select a crew member by pressing one of the number keys on your keyboard. By pressing the same key again, the camera moves to focus this crew member in its center. I also added a small tool bar at the bottom left corner of the screen to access the different window tabs with a single button click.
I want to present you the Zeus-class battlecruiser made by Dobrin which has been added to the game today.
I was able to solve the problem with the textures I mentioned in my last post. As it turned out there was a problem with reading DDS textures. Because of a small index problem all textures were shifted by a pixels. Here is a snapshot of a space battle between an Aurora-class pirate ship and a merchant Artemis-class frigate.
I am sorry that I haven’t presented any updates this week. I wanted to make a short video showing the space combat. However, there are still some tasks left I need to do first. One of these tasks is an issue with texture coordinates. On some of my models the textures are shifted by a small offset. It looks normal until you zoom in. I am pretty sure I can fix this next week. Another topic I want to do next week is the Artifical Intelligence. A lot of stuff already works perfectly fine, like space pirates boarding your ship, crew members that defend themselves against any threat, navigation through complex environments, etc. However, there are some tweaks to do and to make the decisions of the NPCs look plausible.
While there are open tasks to do, I was able to finish a lot of stuff this week! First of all, I implemented a PBR (Physically Based Rendering) shader. This is a special kind of shader to make surfaces look more real. Since I use many assets that are optimized for this kind of shader, it was time for me to make my own. I am pretty happy with the result. Unfortunately, I don’t want to show an image at the moment, because of the shifted texture problem I mentioned earlier.
I also play-tested a lot. On the one hand, I wanted to identify and solve minor issues and I wanted to make sure the game is well-balanced. Space battles must be neither too short nor too long, the quest rewards must be rewarding but they must not make the game too easy, and so on. I am not finished with balancing. I will test different parts of the game every week to make sure the game is fun!
I am working on several game mechanics at the moment. The first task I completed this week was to implement a shield generator. So far, all shields had the same shield strength that offers a first line of defense in space combat. However, the player should be able to customize his ship as much as possible. The shield strength is now directly related to the number of shield generators you placed in your ship.
The next topic I worked on was the trade system. I wrote last week that I re-worked the entire quest system, because the old one wasn’t much time and very limited in its functions. I used this opportunity to re-program the trading system with merchants you can find anywhere in the outer space. Trading with merchant now works in the same way as it does with space station.
The last thing I worked on this week is the selection of weapon systems. You can find new spaceship weapons by looting other spaceships or by buying one at a space station. I added an easy-to-use menu to the spaceship overview. When you click on any of your weapons, a menu pops up in which you can see all weapons you have in your inventory, including their stats. By clicking on one of them, you can equip them. However, this works only next to space station. Work like this is too dangerous to do it somewhere in deep space!
I wanted to complete the ship-to-ship combat at the end of last week. However, I felt the urge to do some work on the user interface and the quest system first. The reason is, that I test all new features very carefully and if I find something that doesn’t satisfy my expection, I solve this problem first, before finishing the feature.
So far, my quest system was made in the early days of this project which is about two years ago. The system based on several scientific papers about procedural quest generation. This system created a randomized event every time the user enters a star system and he has several options how he reacts to it. However, this system was limited in several ways. For example, it generated a single event and the user had a set of possible reactions. After he chose an option, something happened and that’s it. Also, the variety of quest was not that big.
So I discard this system completed and started something new. I used my UI engine (which is very powerful) to create a new small quest dialog showing events and offering the user several options to react. The big difference between the current system and the old one is, that all quests are hand-written which takes more time, but increases the quality of events dramatically. Second, the new system is able to process hierarchical quests. That means, when you select the same option for an event that occured multiple times during your play, the outcome may be very different!
I also did some research about the latest scientific knowledge about user interface design and color schemes. I used this information to improve the colors of the user interface. The user interface might look pretty simple, but I put a lot of effort in it. My aim is to provide an intuitive, easy-to-use user interface that gives you all information you need at any time.
The screenshot below shows a very very simple event that can occur after you enter a star system. Don’t be afraid, I will hire a translator to check all English texts before the first release! 😀
Last week, I wanted to use the second half of the work for the AI system. However, I changed my plans to work on optimizations of the game engine. I was able to fix all problems I encountered so far. I continue my optimizations this week, but I am also working on space combat. Maybe I can show you a screenshot of it at the end of the week. Today, I want to show you another spaceship: the Aurora-class cruiser.
I am currently working on the combat system and the AI. While making good progress, I spent this Thursday with improvements of the loading process. When a game starts, a lot of stuff has to be done like loading levels information, importing models / textures / sounds / etc., setting up event handlers and many more. I analyzed all modules and checked for possible performance gains. I was able to improve three modules which are initialised during start-up. The biggest performance gain was achieved by improving the algorithms used for creating the navigation graph in the space ships. These graphs are used by all characters (NPCs and PCs) to navigate through the spaceships and any planetary environment. An example image of such a graph is shown at the end of this post. I was able to improve the perfomance of these graph algorithms by over 50%! I also could make some improvements when loading models sharing the same textures or when creating characters with similar or identical clothes. I used the largest spaceship with a crew of 8 men and women for testing and the entire game loads within 20 seconds, which is an improvements of around 33%!
I hope that I can show you images of the combat system at the end of the week!
Hey folks, I wanted to share two images with you showing the current status of one of the spaceships. The first image shows the entire spaceship and the second image shows a close-up of the cockpit with three crew members.
I am currently working on the AI and I hope to complete the work on that topic until the end of the month. I will improve the UI design and the graphics of the game afterwards. Shadows are still missing and I want the objects’ surfaces to be smoother. I will show you more images as soon as possible.