💦 CREATE AND FUCK YOUR OWN AI CUMSLUT 🔥 TRY NOW ♥
Create AI Cumsluts 💦
screenshot_gif_1.gif
1.gif
May 31, 2019

ANTSTRONAUTS

Hey everyone! 

Me and KEITH BURGUN just released the first Beta version of our game ANTSTRONAUTS!!!! It’s a small strategy game about ANTS in SPACE and you can download it over here for FREE!!!! 

For those that don’t know it’s mine and Keith & Snake’s second little project we have put out, the other being ADVANCE PLANTS which is also free to download. 

ANTSTRONAUTS is about building up planets and resources to spread out your ants across the map and make new ant colonies on planets. You have to protect the queen ant from all the hazards in space while trying to get those sweet sweet upgrades working for the resources to win. 


Despite it being an early version, we have gone through multiple iterations and you can tell Keith’s awesome game design skills from a mile away. Keith is also weirdly good at designing and thinking about UI!

Now the beta is out, I thought I’d write about some of the things I’ve learnt from programming this project. 

In the past I have collaborated on games, but never have I not also (at least partly) worked on the game design. With ANTS however, Keith was in full control of the game design, and our original pitch to each other was that we could work separately on the separate parts of the game.

This was a tasty proposition for us both, as designing and programming something at the same time kind of takes a toll on your creativity. It at the very least affects the decisions you make as a designer as you think in terms of what you know/limitations. Something like deciding what to have for dinner if you are making it at home/ going to a restaurant. Your decision is effected by the work involved.

So I was just programming this bad boy. Keith wrote a game design document, I made a prototype and we kept iterating like this through Trello task lists and some fun catch-up conversations.

I learnt that programming a system to be flexible to additions (i.e. when Keith would make big design changes) is very, very different to being flexible to your own additions (i.e. if I had been making a game on my own). I wrote the first version of the game in a way that I thought was pretty flexible to any potential changes. It’s the way I write other games that are set on a board and basically involves the tiles of the board owning all the entities that are in the game. It works well because collisions or checking for certain objects on parallel tiles can all be handled by asking the board itself what is there and what isn’t. It also means that creating and destroying objects are handled correctly as you must be removed from the tile you are on itself (Game Maker and me have bad history with not deleting things properly, more on this later). With this method, the tiles themselves are not allowed to be destroyed.

After several iterations on the way ants themselves worked in the game, and specifically their interactions with planets and buildings the game was in a bit of a mess on my end. I had separated the functionality a lot which was good, as I could often switch things in and out, but this wasn’t enough to keep in check the slow loss of order from switching rules and concepts around. Buildings and ants started crashing the game a lot.

I think the big takeaway from this is to properly re-write the system at every game design change, and although it takes longer, stick with it because it will save time overall. Moving forward, this is exactly what I’m going to do. Before the next big update to ANTS (Beta 0.2?) I’ll rewrite all the bad egg engine stuff :)

Since making this, I have also learned to not worry so much about having loads of data to control objects. For example, having a unique id, a reference to my parent, creator and current tile isn’t that much data. If you have a nice script that wraps it all up and makes sure you cannot neglect one of those important references, then you don’t need to worry - this approach is tons better than only having like, maybe, say… a reference to just the tile that I’m currently on.

I also learnt about ‘ds maps’ recently (not sure what the equivalent is outside of Game Maker) but essentially you can store variables with a string key to retrieve later. This is pretty damn helpful, especially for keeping code readable. On top of this I didn’t know you could assign things as ‘noone’ in Game Maker which is basically a shorthand for ‘no instances at all’.

Yesterday, when we were doing final testing on the 0.1 version, Keith and I kept getting crashes after crashes. This would also happen late game which is particularly destructive as it makes it very hard for a player to motivate themselves to boot the game again after their victory is stolen by a game crash. 

As a solution to this I implemented Snake Bad Coding Protocol #1. Basically all the crashes are from the system I talked about above where the tiles own the data, except tiles kept asking for data that no longer existed. The solution is to loop through all the tiles and check if their instances still exist. If they do great! If they don’t then update the reference to null. I’m pretty sure this is bad practice as it is very careless use of resources but it seems to have fixed like all the crashes.

The game hasn’t crashed since so I’m really sorry if you do get a crash when you play.

I don’t think I’ve ever written something like this before, so as usual am curious on how you enjoyed the programming related parts? If you have questions about any of my other crazy in-efficient ways of doing things in GameMaker ask away :D

I hope you all enjoy ANTSTRONAUTS too, I’ve actually only won a couple of times so let us know if you beat the game!

-

The other huge project I’m working on is also coming along really nicely and I’ll have SO much to share really soon.

I’ll probably talk about it after the announcement, but it’s actually pretty hard to decide on a release date because of all the different parts. I think it will be in the next 2 weeks though so its soon!!!

Everything is awesome right now and damn do I love releasing games!

  • Happiest Snake in the Galaxy

Comments (1)

K
Keith Burgun · May 31, 2019

This is a really great post :D