Showing posts with label Davey Grotendorst. Show all posts
Showing posts with label Davey Grotendorst. Show all posts

Sunday, 22 May 2016

How do they do it? - Programming

Hello!

Here is another dev blog in the How It's Made series! Today we are going to talk a little about Project Management as well as a little bit more in depth about programming the game AI Vendetta. We will also give you some useful tips that are not just applicable for programmers but for designers and project managers as well! This part may feel a little bit like a lecture but bear with us and you might get some useful tips out of it for your own projects! But don’t worry, we won’t go into too much detail when it comes down to the programming part!

Before we start however, I’d like to announce that a new and improved version of the AI Vendetta demo went live recently. It contains many fixes, tweaks and visual changes which we think you’ll like! And of course, we’d also love to hear what you think about it!
Remember that the game is playable in the following browsers: Internet Explorer, Firefox, Safari and Opera. The web demo will not run using Google Chrome unfortunately.


So what is this dev blog all about!?


You might just be wondering that! Well since programming is a very large subject we are going to talk a little bit about what we learned in past projects and how we are applying that to AI Vendetta. As we mentioned in previous posts, Iteration is key to development and iteration is also what drives us and me as a programmer to develop smart and flexible solutions for AI Vendetta. This allows the game to grow without increasing the complexity of the code. In the long run that allows me to better change existing features as well as add new ones. Which saves me time, a lot of bugs and other worries as well!

On the other hand, this also costs you more time to set up and stands in the way of prototyping an idea right away when you just start a project. So why do this? Well that brings me back to several valuable lessons I once learned from my teacher, mr. Dino Dini, as he explained the dynamics of a project. This is something that is really relevant to development and not just for programmers but everyone involved.

Basically, whenever you are working on a project, you are dealing with Unknowns in one way or the other. And Unknowns cause Risks for your project that can be pretty harmful, and unfortunately, you are almost guaranteed to run into them! So how can you mitigate these so that when they occur, you can at the very least minimize the damage? The key to this is to maintain Flexibility.

I know Flexibility is a very abstract term and you can apply it in many forms, some more desirable than the other. The way to maintain Flexibility in programming is through architecture, structure and abstractions (and staying away from programming (anti-)patterns, for which I can advise a few good books).

But how can you maintain Flexibility as a project manager? Well the truth to that is… it is very hard! Especially if you have limited experience. But there are some tips we can give you and likely scenarios you’ll encounter in game development.

1.    The first rule is, stay on top of your project! In game development all sorts of things will happen, so staying connected with your team and the current state is really important. We often try to do a weekly meeting so we can discuss what we did that week, how well it went and what our plans are for the next week (and the near future). This really helps so you can monitor issues before they arise and support each other with any difficulties you encounter.

2.    The second thing is to document your work. Usually when starting a project or a component of your project you’ll start off with developing a high level concept (Abstract idea). Next you process this concept into the actual design or steps that you are going to take in order to achieve that concept (Concrete). At that moment you are already breaking down your project into manageable steps, so that is a great start! As you do this, you can start identifying issues and unknowns in the concept. As a designer you are usually already doing this by creating Concept- and Design documents for your projects, so hats off to you!

As a programmer, you may want to consider writing technical documents; these are essentially the design documents for your code. And I know this is probably not the most fun thing you can think off, and to be completely honest, I don’t do this every time either! But this has certainly helped us in validating an idea or approach. Besides it also helps convey what you are trying to do to your colleagues.

A good example of this was when we decided to completely redesign how the Playable character in our game works on a technical level. As we were working longer on the game, the functionality of the player started to increase and with that the complexity of the internal workings as well! At one point we really wanted to refactor the way this system worked so we could compartmentalize all the mechanics of the player whilst also increasing the flexibility of the system. Because this was such a large procedure we decided to work it out on paper first. …A few drafts and changes later we were able to implement it smoothly into the game.


    


3.    As a third piece of advice, keep in mind the Scope of your project. The scope is directly related to unknowns in your project. As you work on your project, the scope always tends to increase as you may want to push features that are deemed necessary for your project to work that were not thought of initially, but projects also tend to “feature creep”.

Of course you still want to deliver the best product you possibly can, but sometimes you have to be a little bit hard on your team for the sake of the project. Projects going out of scope and out of budget are a few of the main reasons why a project may fail. Finding a good balance will keep your team happy and your project healthy!

4.    And the fourth and final piece of advice. As a project manager, especially with small teams, try to stay on the same level as your team. People often look at each other for advice and responsibility. So always maintain a problem solving state of mind and work together to avoid issues and solve problems as they occur.

5.    Bonus advice: make lists, I love making lists so you get an idea of where you are and what is still left to do. What we tend to do is make use of bug reporting tools to create a list of not only bugs but also features that we want to implement, for example when preparing a new demo. Because of the list everyone can stay up to date with the current status and personally, I love it when everything gets crossed off from the list :D

    


So where is that programming talk I was waiting for!?


Well, as I mentioned, programming is a BIG subject, but I hope that some of the things discussed above in some way help you with your project. It is probably all very straightforward but creating games is a big and complex process and I really admire everyone who sits through that process!

But before we start rounding off this blog, here are some technical specs about the game!
As you may know, AI Vendetta is being built in Unity3D. To do this we make use of C# as both Rens and I have a C++ background, so C# was the closest thing to our comfort zone. And as you may come to discover as well, C# is a really great programming (and scripting) language!

What I personally really like about Unity is that it is a very great and easy tool to learn, whilst still providing lots of support and possibilities for advanced users. Another great thing about Unity (and many other modern game engines) is that they are also really accessible for designers and artists. In the past I was used to creating tools and editors myself, but Unity has made it really easy to expose data to an interface. So while the programming team creates the game, they can expose the tweakable data to designers and artists so that they can set up and tweak the game and its components.

But here is a short list of what we especially like in C# in particular:
1.    Memory Management. In C++ this is a really hard thing to get right, you probably need to write a memory pool and you have to keep track of everything that you “new”, you also “delete”. In C#, at least short term, this becomes a bit easier with the Garbage Collector; however, you still want to keep an eye on your memory footprint of course ;)

2.    Reflection. This is an amazing feature of both C# and JavaScript, it allows you to instantiate an object, just knowing the its type, you can even convert a string name into a type and then instantiate it (useful for example in serialization).

3.    Pointers, or rather the lack of them. When working in a language such as C++ you really need to keep track of the scope in which your objects are declared. And then there is a difference in memory (it can static-, stack- and heap memory), but in C# you really don’t have to keep track of that. And the really nice thing is, every object or variable is maintained as a reference, so you can freely share and pass them along in your code.

4.    The final thing I personally like about C# is that inheritance and virtual functions are a bit easier to declare and manage. In C++ I would usually create Macros to make things a little bit easier, actually approximating how C# exposes base objects and functions.

So yeah, C# is definitely easier than C++ and there are some very cool features in C# which don’t exist in C++. So why do people still use C++?
Well, there are very good reasons to do so. C++ gives you a lot more control over your application, but it also allows you to make very in-depth optimizations. You could even go as far as partially writing your application in Assembly if you like. But not only do you have more control, C++ is simply faster because C# in Unity is a scripting language and it is being interpreted. Whereas C++ is directly compiled into instructions that your computer can execute, making it inherently faster. However, with the speed that current computers run at, C# with Unity is still an excellent choice for creating games! And not to forget the multiplatform support Unity offers.

But I can go on about this for a long while...

    


What can you expect from us in the next Blog?


Well, for our next blog we would really like to discuss some of the results from the play tests and perhaps introduce some new features as well that are currently in development.
There is also a new “How it’s made” video coming up in the next few weeks, so stay tuned!

We would also love to hear what you think about the project so far and if you haven’t yet, give the demo a go let us know what you think! If there are any questions or comments that you have, or maybe a subject you would like to hear more in-depth about, please let us know in the comment section below! Of course you can also contact us through various other media (Check out the Contact tab on the top of this page).

And perhaps you are working on a game of yourself as well? We’d always love to share experiences and help others if we can, so stay in touch!

That’s all folks! Be sure to try out the demo and let us know what you think.
Thank you very much for reading and we hope to see you all again next time!

~Thom de Moor, CatByte Games


If you are interested in following our progress, follow us on Blogger, Facebook, Twitter, YouTube and Google+ as well as our individual members on Google+, Twitter and Indie Gamer.

Sunday, 3 April 2016

Demo Time - Part II

Hello!

Welcome to another AI Vendetta blog! It has been a while since our last post, but today we have exciting news! We have been working very hard since our last post to not only polish the current state of the game, but to also put together a completely new demo! The new demo features three levels showing you much more of the features and mechanics that AI Vendetta has in store for you! And not to mention, a much more smooth and polished experience!

So... here it is! The new demo, play it using the link below or the link in the menu bar above. Just as last time, this is a web demo which will only work using Internet Explorer, Firefox, Safari or Opera. The web demo will not run using Google Chrome unfortunately.

(Supports Internet Explorer, Firefox, Safari and Opera using the Unity WebPlayer.
If you need help with the plugin feel free to contact us!)


So what happened since last time?


Many things actually, so many things that we can’t even show them all in the above demo! We have been focussing on getting a lot of the new content out of alpha stage and ready for play. While at the same time fixing many issues, including some physics issues. However, as you may have noticed, the demo has been expanded to 3 levels now featuring a lot of new content! Besides that we’ve also been working hard on tweaking and polishing in order to make sure that the overall experience is better and smoother!

Next to that, we also changed the appearance of several elements in the game, including a complete overhaul of the playable characters. And while we do not currently have an artist, we think that these new visuals at least give a little more insight into what direction we are going. At the same time, the visuals also show a major improvement over the former “whiteboxed” character models.

To put that all in a list, these are the new things you’ll encounter in the demo:
  • Playable character visuals changed
  • Playable character tweaked and made physics smoother.
  • Introducing mobile enemies
  • Introducing conveyors
  • Introducing terminals
  • Introducing new types of triggers and other switches

Some screenshots of those changes:


    


    

Where do we go from here?


While we are already a long way into development, there is still much to do before we can reach a beta stage product. Right now we have roughly 15 playable levels for the actual game, out of the initial 30 we intend on making. Most of the features that we want to roll out have already been implemented as well, so that’s all very good news!
However, to create a fun and polished game, we need to put in many, many hours of testing and tuning to make every bit of the game feel right. And besides that, we need a lot of art in order to visualize and decorate the currently very stale and empty levels. Next to this, we are also working on bringing the story element of the game more to light by adding dialogs and cutscenes, which are now on their way.

To summarize, we are doing quite well for ourselves and even though we are purely working in our spare time, we have found a good pace to work in. Right now we are almost midway from an alpha stage product towards the beta product. We hope to reach beta stage in roughly half a year, up to one year from now. (Creating games takes a long time!)

In that time however, we could really use your help! Most things we can do ourselves, but at the end of the day we are very biased towards the game. Therefore we need your opinion to help guide the game towards something that is enjoyable and tailored to a wide variety of gamers!

What can you expect from us in the next Blog?


Our next blog will arrive in about a month or two from now so we have chance to make more improvements to the game. In the meantime, we greatly appreciate any comments, suggestions and tips you may have (and all general criticism for that matter) so we can put that towards making the game even better! We’ll also do our best to answer any questions that come up and if you want more in depth information let us know! We would love to feature some community picked questions and topics in our next blog, so be sure to let us know in the comment section below (or any other media).

If nothing else, then for our next blog we want to show you a little bit more about how we are creating AI Vendetta. Next to that we’ll also discuss how the different aspects and professions come together in the process of creating games in general.
Are you working on your own games? We’d love to share tips and experiences, so be sure to stay in touch!

And with that, we end this blog. Please feel free to play our game and as always, any comments are greatly appreciated! Thank you very much for reading and we hope to see you all again next time!

~Thom de Moor, CatByte Games

If you are interested in following our progress, follow us on Blogger, Facebook, Twitter, YouTube and Google+ as well as our individual members on Google+, Twitter and Indie Gamer.

Tuesday, 22 December 2015

How it's made


Hello and welcome back to the third blog post about AI Vendetta!


It has been a couple of weeks since our last post, but today we are excited to let you know that a playable, alpha stage, build from our game AI Vendetta is available for anyone to play.
We felt that it is time for us to involve other people more into the process of developing this game and that is why you can now play the game in your browser using this link or the huge button below.


(Supports Internet Explorer and Firefox using the Unity WebPlayer.
If you need help with the plugin feel free to contact us!)



We have also been shaping up our social media presence a little bit and made some changes and additions to the blog. (Of course, the blog will still remain our main media outlet. :) )
From now on you can follow us on Blogger, Facebook, Youtube and Google+ as well as our individual members on Google+, Twitter and Indie Gamer. Additionally, we have added a small forum here on Blogger and you can also email us at CatbyteGames@gmail.com


The next part is going to be less focused on AI Vendetta and perhaps a bit dry, but we hope it is also very informative and useful for people that are developing (small) games or are interested in doing so.
So... before we move on, have some more screenshots! And don’t forget to play the game! From now on, we will also be placing screenshots and videos from the game on the “Media” page (accessible from menu bar above). If you have any feedback, comments or questions, feel free to comment on this post, on the forum, or send us an email.


Sneak preview from an upcoming level.

From design to finished level.


How it’s made!


And now to the main topic of this post. Last time we promised that we would share a little bit more in depth about how AI Vendetta came to be and the pipeline we use for developing it.
Personally, we believe that the process of developing a game is both very interesting and rewarding as we get to combine technology with art and creativity. However, it is also hard work that requires a lot of time and dedication.


To give you a better idea of where we currently stand with AI Vendetta, we made a small image [Image 1] that represents the several stages that make up the creation of a game. As you can see in the below image, every game goes through a Design phase, followed by a Production phase that, if everything goes well, results in a Testing and Polishing phase. The end result would be a full-fledged game that is entertaining, looks and feels consistent, and works well.
Of course, there are exceptions to this rule.


[Image 1] Typical phases a game will go through during its production.


As you can see, during the Design phase, the game idea is born and in most occurrences takes form as a Game Design Document (GDD). This is a document that describes most, if not all, player interactions and mechanics of the game, the game flow, and a little bit about the game story. However, the document is usually not conclusive about the game and a lot of things described in there will need to be validated, which can sometimes only be done by actually building them into a prototype. Additionally, level designs and story elements are most of the time left out of the GDD as they are too specific to be predetermined at that time. And of course, most of the time during the production of the game, changes and additions to the GDD will be made. A keyword to remember in game development is therefore: iteration.


The Production phase consists of two sub phases: the Alpha and Beta product.
During the first development cycle, you will typically be building a prototype or Minimum Viable Product (MVP) for the game. This is the stage where we are at with AI Vendetta right now; we created a first playable version of the game, containing all the core mechanics, a level demonstrating all of these, and some early stage art-work.


Usually when in the Alpha stage of the process, you don’t immediately move on to building a Beta product, instead, we want to see if the product is actually fun and if people would be willing to play it. That is why letting people play your game at this point is crucial, not only is this a great opportunity to get valuable feedback on what is fun/works well or not, but you also gain insight on what people like and if there is a target audience for your game. This can be compared to the LEAN method in software development [Image 2] and is exactly what we are doing right now.


[Image 2] The LEAN method cycle


Only after validating the product (which may take several prototyping cycles!) will we start on the Beta phase and ultimately on polishing the game for its release. During the Beta stage of the game, also known as full production, all the missing features, artwork, and music will be implemented and the complete game will be built. During this time more playtests, both internal, external, open and closed, will be held to gather more feedback and help refine the game. During the last phase, the game will be fine tuned and sanded down to its final version and be released: the Gold Master.


As mentioned before, the key thing to note is that game development benefits heavily from iteration. However, it may also make development feel slow and disencourage many. Apart from that, it is also very hard to plan for iteration. It is also important to note that each phase will take longer than the previous, which is why some games take years to develop, even with large teams of experienced and professional developers.


What can you expect from us in the next Blog?


We hope you found this post interesting and of course also hope that you will play our game.
Any feedback, comments, suggestions or questions you may have are always appreciated and we will do our best to answer them. And who knows, your ideas might end up in the game!


Our next blog will arrive around new year and will include the results of the open playtest. We will also be showing you the progress we made so far and what we plan to do with the game.


That’s all for now, thank you for reading! And of course, we wish everybody a merry christmas and happy holidays!

~CatByte Games

Monday, 23 November 2015

Gameplay Insight

Hello and welcome back!


As promised, today we will be sharing some footage of AI-Vendetta. This includes a short gameplay session that will give you a good indication of what the game is and where we are at this point. Further on in this post we will talk a little bit about the game and also answer some questions we received as a response to the last post. However, we will not keep you waiting for the video any longer, so please sit back and enjoy!



Gameplay Demonstration


About AI-Vendetta



To all people who have been following us since our last post, as well as people who just saw the game for the first time; AI-Vendetta is a 3D Puzzle Platformer which focuses on tactical gameplay in which the puzzle element is combined with both stealth and action.


As you saw in the video, the game features 3 core gameplay modes, all of which have to be combined in order for the player to complete certain puzzles. This also offers the player other tactical choices, for example you may choose to sneak your way past enemies, or if you like you can also try and blast your way through the area. Two different options in the same scenario, one leading to safety while the other might lead to added rewards. This offers the opportunity for some interesting scenarios!


Proto



AI-Vendetta, Why, How and for Who?



We are currently developing AI-Vendetta in our spare time, but in that time we managed to create what we would define as the Alpha state of the game. This means that all the core mechanics are there and they have been implemented in a good working order. We already have several level designs, multiple enemies, a story/script written for the game and, as you have seen, we have some (placeholder) art assets in place which help visualize the game. We think that this is a good start, especially considering the size of the team, and because of that want to share some more about the game and its future with you!


So where do we go from here? We hope that we can take the project to the next step; this means that we want to further invest our time into the project so we can create a worthy game experience. However, before we take it onto the next level, we are writing these blogs so we can get a feel for the general interest people would have in playing this game. Unfortunately we can’t create a game tailored to everyone’s wishes, but we certainly do hope to get some of those in! That is why we really want to know what YOU think of the game so far!


Utility Mode; Push and Pull large containers


Questions - Answers



So in our first blog we wanted to introduce you to the world of AI-Vendetta, but in a very general way. We received some questions and have also been looking at other projects that are in some ways similar to what we are creating. Here are a few questions that came up:


Will the game feature a story and how can we relate to the main character?


We personally agree with that and unfortunately we can’t show you all of what we have planned for the game in only three minutes. But we can tell you that we intend on having both dialogs as well as monologs visible during the gameplay. This may or may not be narrated depending on our budget.
We also want to make the character more visible to the player because that tiny little speck on the screen is not going to make the character bonding flow on itself!
We really hope to give the game some personality, which will be done through music, environmental storytelling and dialog.


Dialog Mockup Image


Is the game going to be difficult and are all of the gameplay modes going to be equally useful?


It is hard to tell at this point but it is our mission to make both a fun and interesting game. We intend to make it a game that is easy to get into at the start but we will be making it gradually harder throughout the game. And if that is not enough, we are also throwing some boss fights into the mix!


During the design and creation of the game we will strive to make all game modes useful in one way or the other. We benefit from the fact that each game mode features its own unique abilities and behaviour. We will try to put these to good use as best as we can!


What can you expect from us in the next Blog?



As this post is already getting a little bit oversized, let's move on to what you can expect from us in the next blog! Next time we want to share a little bit more about the development process of the game – a sort of “how it’s made” if you will. This includes the production pipeline but also a roadmap of what is still ahead of us.
We will also be shaping up our social media attendance, meaning that you will be able to email us and follow us on Facebook. And of course, we may have some new screenshots in store for you as well!


Thank you for reading! And please, feel free to leave your thoughts or questions about the game in the comments section below! Any and all feedback is always appreciated.

~CatByte Games


Sunday, 8 November 2015

Hello World!

Hey there,

We are Catbyte; a small team of passionate, Dutch, game developers that simply want to create fun and inspiring game experiences. Our most recent project, AI Vendetta, has reached a point in which we can now openly discuss its design and progress with all of you! So without further ado, let us take you into the world of AI Vendetta!





AI Vendetta is a fun and challenging 3D action-puzzle game and is inspired by games we love to play ourselves, such as the Legend of Zelda and Portal series. In AI Vendetta you, the player, will take control of a small robot that uses its ability of transforming for sneaking, puzzling and blasting your way through a range of beautiful and action packed levels and boss fights!


Before we move on, here are some more details about the game:
In AI Vendetta the player takes on the role of Proto, a discarded robot with the unique ability to transform into different modes, each with their own tactical usage and gameplay feeling. The game offers the player a range of fun and challenging levels, puzzles and boss-fights while telling you the story of Proto.





Proto has three different modes for the player to use and experience:
  • Combat: Blast your way past obstacles and enemies while making your way to the next elevator!
  • Stealth: Fast and agile, perfect for sneaking past enemies and reaching places others can’t!
  • Utility: No container is too big for your magnetic arms and with tougher armour you power through areas and move blocks around as you desire.

Change into any mode freely at any time! You will need to switch to a certain mode to solve specific puzzles. Sometimes you will even need to use multiple modes in one puzzle!

Can you solve the puzzles and unravel the mystery behind this little robot’s existence?
This is a game you simply can’t resistor!





So let’s meet the team!


The first member to introduce is Thom! He is our main programmer and directing force behind the game. Thom focuses on the technical aspects ranging from tools development to gameplay programming. His focus in programming is to create flexible code architectures for iterative development. Besides managing the game’s development process he is also working to turn the game design into reality. You can check out his portfolio here.






Then we have Davey, a starting game designer that specializes in quick iteration and prototyping designs. He is the designer of the team, so he focuses on thinking of mechanics and level designs for the game. After coming up with the designs, he documents them and communicates them to the team. Additionally, he uses the available tools to iterate on his designs. Currently, he is working hard on the game’s many puzzles and levels. Check out his portfolio here.




And finally we have Rens. Besides helping out in the programming sector, he is also a passionate sound designer and is currently busy developing the soundtrack for the game. Rens is a hard worker and when he is not creating music, he is likely working on his audio engine. Therefore it was only natural that he is now also doing the audio integration for the game as well as some AI programming. Check out his portfolio here.




Now, as you may have noticed, there is no active artist working on this project! Yep, that’s right, currently we are working in a zero-budget setup, which means that it’s hard to find people that will dedicate their spare time to your project. However, we do have a very good head start and art style, both of which were gifted to us by a former colleague and good friend of us. You can check out his portfolio here.




So what can YOU expect from us!?


Well, for our next post we have planned something cool! Until now we have never really shared any content about the game, but there is some video footage on its way to your monitor!
We plan to give you monthly updates about the game’s progress. In the meantime we would also like to share our development experiences with you, including some technical-mumbo-jumbo and design tips and tricks! And of course many progress screenshots!

If there is anything you would like to see or know more about,
please feel free to let us know in the comment section below!

Thanks for reading!
Stay tuned for more soon!