If you believe this content violates Code of conduct please provide details below. All reports are strictly confidential.
Play our new sample project and investigate the code and systems behind it for yourself with our new twin-stick sample project, GalaxSys.
Our new sample project, GalaxSys, is available now on CRYENGINE Marketplace. GalaxSys is a vibrant all-action twin-stick shooter and was developed in a short amount of time by just a few people at CRYENGINE. Give the game a whirl and check out the code for yourself to discover how it was put together, expand on it, or re-imagine it as you wish.
Credits for GalaxSys:
We sat down with Alex and Jeremy, two of the four-person dev team who created GalaxSys, to find out more.
Hey, guys! What was your aim with this project?
Alex: I wanted to create something new and fresh, a game that demonstrates how versatile CRYENGINE is and shows how easy it is to create simple games with just a few code files. Furthermore, we wanted to create something easy to pick up and will allow users to understand how the fundamental systems of the engine, such as the physics or entity systems, can be used to create a game. GalaxSys really shows how you can create something simple but fun with relative ease.
Jeremy: Generally, we wanted to showcase the versatility of the engine for creating games in a short dev cycle. The project was passed to me from Alex and Viktor, who did an amazing job. The game was playable, as much as a prototype can be, and looked great. There were a few things that needed to be addressed, which came down mostly to modularity and polish. Over time the game was modularized to the point that we added several new components that would allow even greater flexibility in expanding upon or re-imagining the sample. We want to provide devs with the toolset to create their games in CRYENGINE, and this project will help them do that.
Where the idea for GalaxSys come from?
Alex: In the beginning, I was just thinking about what we could create that would use most of the systems in the engine in a short dev cycle. Since we already had a TwinStickShooter template for the engine I thought that would be a great start for this project, and I am a big fan of Geometry Wars. After showing Viktor some gameplay, there was little convincing left to be done! Geometry Wars uses particles in its visual style intensively, and that gave us an excellent opportunity to show off PFX2 and some more abstract effects compared to the more realistic ones we have in the GameSDK or Hunt Showdown.
Roughly how long did it take to create GalaxSys?
Alex: In total, I don't think it was more than four work hours on my side. Obviously, the project wasn't complete after that, but the game itself was working, and it had a fully playable game loop. Since I am very familiar with the systems and the engine in general, I was able to create this game very quickly. I would say that a standard user of CRYENGINE would be able to achieve the same thing in a short time frame, maybe one or two days.
Jeremy: The initial prototype by Viktor and Alex only took a handful of hours. Then we decided to polish it up and remove as much hard-coded logic as possible for developers and designers, including those who may not be programmers themselves. Then we began to polish and expand upon the sample game, implementing several new generic components and enabling much greater flexibility to allow developers to customize and expand upon the sample as much as they want.
Which core CRYENGINE systems did you use in this project?
Alex: I used a lot of the default components provided by the engine, like the constraint, mesh, and particle components. Components are a real time-saver, and they also provide a lot of functionality. Another feature worth highlighting is the particle system. Inspired by Geometry Wars, we created a lot of different stylish particles and combined them with the physics system to create the distortion effect in the background particle gird.
What tips do you have for anyone who wants to investigate this project?
Alex: I think the best way to learn from the sample is to start at a high level and then work down to the details of it. First, begin with the level itself have a look at the entities in the scene so you can get an idea of how the game is composed, and then dig deeper into the implementation of the components and entities. In the future, we will provide some general documentation for the project, which will give a good overview as well. You could also use this project as a base and customize it to your needs, and use the principles and systems that you can see in the project to create something similar.
Jeremy: For users who want to investigate the code itself, you will see when opening the project in Visual Studio that most of the code is housed inside more generic components. There are many comments in the code to help provide a quick understanding of the logic behind it so that you can pick up the concepts faster. I would take a look at the components first and get an idea of how each component functions. Most of the more specific logic will be housed inside the Schematyc Graphs so it can be changed without modifying code. The code has excellent variety, tying into several different systems with differing complexity with each component, so there is a lot you can learn here, even in such a small and straightforward project. For non-coders we advise checking out the entities and seeing which components they use and how the graphs are laid out. Start tinkering with values and then create your own logic, expanding and changing the sample how you wish.
Cheers, guys!
We hope you find GalaxSys fun and useful, and we look forward to your feedback on the forum, or via Facebook and Twitter. You can ask questions, pick up tips and tricks, and more by joining our community and the CRYENGINE development team over on our official CRYENGINE Discord channel. If you find a bug in the engine, please report it directly on GitHub, which helps us to process the issue quickly and efficiently.
Are you looking for your next career move? At Crytek, we value diversity and actively encourage people from all kinds of backgrounds and experience levels to apply to our open positions, so join us over at LinkedIn and check out our careers page.