04/07/2016 – Happy America Day!

Although being in Northern Ireland, there’s not really much reason to care.

Not a long post today, mostly just gonna talk about my project. Progress is going well, albeit a bit slowly at the moment. The itch.io page has links to the development long if you’re looking for specifics. That said, I want to talk about feature creep and individual systems taking more time than they should.

The latter first. So a system I’ve been working on a sub-system that picks that an enemy distribution pattern in the game based on the player’s progress. This has taken me a good two weeks to get to the point where I can get something to work, and that mostly comes down to me overthinking its implementation. When I first thought about it, I wanted to build a system that read in from a text file and would generate all the waves of enemies in the game from that. There were two problems with this system:

  1. Each spawner in the game world can take a variety of arguments that defines speed, timing, and what object is spawning. Because of that, if I was to get them, each spawner on screen could require a minimum of 3 arguments. Which considering there could be a dozen or so on screen at anytime, that ends up being a lot of overhead, which Unity is terrible at handling.
  2. In relation to the first issue, I thought a good way to negate it would be to use asynchronous game objects to handle it. However, Unity being Unity, didn’t make that particularly easy. Specially, the more recent versions of .NET allow for Async reading of text files. But Unity, being .NET 3.0, doesn’t have this option. So I had to abandon that idea. The alternative was to use threading, but I’ve never really had much experience with it, and at that point I figured it was more effort than it was worth.

So in the end, I made a hard coded variant that just told the spawners in game what to do. Currently I’m altering that version to take the update cycle into consideration.

Feature creep is something I’ve commented on before, and I’m not gonna say too much on it. But basically, I went from have two notes on my whiteboard to having 5 of them, all filled with additions I want to add to the game. My notebook is also full of them. What’s happened is that I’ve come up better ways with how I want to game to play, but without noting anything technical of how I want to build it.

To be fair, the biggest set of notes is just a list of game modifiers. Regardless, there’s probably stuff I’m either going to cut, or this game is going to take longer than I would like to make. Guess we’ll find out.

Right, that’ll do for now.

-Adam

P.S. Gaming Den post soon.

08/05/2017 – Project Update and Itch.io Dev Log

Hey there folks.

I will probably be using itch.io’s new dev log page for my game to distribute news updates on it. You can view it here. Note that the page is using a secret URL because it isn’t public yet. I’ll probably make it public once I have some useable art assets. You can now view the page publically, but it’ll be generally unlisted if you search for it on the site.

As for the first dev log post, you can view that here freely.

24/04/2017 – Working On A New Project

As I decided to write this, the date changed from the 23rd to the 24th. I am currently starting to write this just past midnight, whether or not I finish writing this tonight is yet to be seen (Somewhat likely, I don’t write much for these).

I can’t remember if I mentioned in my last post that I started a new project. If I did, then my apologies; if not, well guess what? I started a new project.

It’s a game, this time a 3D one that focuses more on traditional control methods (PC/Console friendly), and as such has opened the door to a slew of bullshit wondrous new avenues in Unity’s development tools. Well, sort of. The difference between the 2D and 3D tools from a programming perspective is negligible at best. But, I do feel the development toolset lends itself better to this perspective.

So what is the game? I can’t talk too specifically yet, but it’s a bullet-hell game. Which considering it’s a genre I am terrible at, is pretty surprising that I’m actually doing somewhat well in constructing it.

Now, I’m not quite ready to show any gameplay yet, but I assure you it’s coming along well now. I’m gonna talk about how the progress has been so far, and I am deeply sorry that I cannot go into specific detail about certain scene, scripts, or game objects. It’ll make more sense once I start showing the game I assure you.

When I first started it, I ended up over-thinking a lot of the base principals that would construct the game. Everything was very singular and separated, but still required to communicate with each other. This way of development continued for several weeks, and became harder and harder to work with, and made progress incredibly slow. I didn’t get player movement working on that system until maybe late February or early March.

Sometime after doing the player movement stuff, I got sick and had to take a couple weeks off (I may or may not have also been playing the crap out of Nier Automata by this point, but lets ignore that detail). And after I came back to work on the game, I realised something; Everything I was doing was very convoluted and difficult to manage, especially considering how Unity manages hierarchy of objects in the game scene.

Once I realised this, I broke down all of my previous code and bundled up a lot of the objects that I was generating separately into two slightly different objects (And then made another two based on those), and then generated the game scene based on those. This amendment caused a significant increase in my efficiency and made the other tasks for myself considerably easier.

For example, the player movement code that had taken me several days to make and work properly, now worked within a matter of hours and was much easier to obtain the components I needed from certain game objects.

One of the other issues I had was a little more specific to Unity. I found a need to destroy game objects in a scene, but said objects were being collected in a list. However, Unity’s GameObject.Destroy() function only operates at the end of the frame and not immediately. Which meant that the list I was storing these objects in said there were more of them than there were, which actually broke the player movement system.

Unfortunately, the WaitForEndOfFrame() function didn’t work as I had intended, so I had to resort to rebuilding said lists in the Update() method which is expensive. It’s kind of been nagging me, so I’ll likely end up fixing it at some point in the future. Additionally, the bug can still occur if the player is positioned in a specific way, but that’s also something I’ll fix.

That’s about as specific as I can currently get. Hopefully by the time I write my next blog post I’ll have some images and video to post. Although my next post will likely be a Den post.

That’s kinda all for now.

-Adam

P.S. Persona 5 is hella rad.
P.P.S. Nier Automata is also hella rad.

10/1/2017 – Time To Talk About What’s Going On With My Projects

First off, it’s no longer 2016. Secondly, as always, my apologies for not posting more regularly.

My project, the one I’ve been working on since 2015, is cancelled. You can view what is was here. So, let me discuss exactly what happened with it.

Around July of 2015; I have the idea to make a game, and I figured a platformer would be easy enough. I still had some left over code from Global Game Jam of that year and figured it wouldn’t be too difficult to make something playable relatively quickly. In all fairness, that part went fine. I made something playable in about a day or two. The point after that is where the problems begin.

I figured I wanted to make something with an under-lying story. Told through thing you would find in the environment. Then I thought, maybe put important things like codes and stuff into those pieces of story documents. And then I thought, what if playing the game poorly means you can’t access the real ending of the game.

OK, getting a bit complicated, but I still built the foundations for these systems with relative ease, and they actually worked quite well at tracking how the player was doing in the game. For the record, I got up to 500 deaths while debugging.

But then I decided, I should put enemies in the game.
And make it a stealth game.
And add even more types of enemies.
And then have all the enemies swarm you if you alert one of them.
And so on.

Over about 5 months, working almost everyday, I managed to get one enemy type to actually get in and out of alert states and follow the player. Along with a bunch of other tweaks.

Around January, I decided to work on a side project, and that took about 4 months away from this project.

Once I got back to it, I felt somewhat unmotivated to continue, even though I had learnt some new techniques from that side project that I should of ideally implemented into my main project. I carried on regardless, and implemented a new, stationary enemy type. While doing so, I realised the why I was handling AI was wrong, and that I really should be doing some inheritance-based structure for my code to make things a bit easier. Which never got past the early implementation stage.

Then I just played video games because I was lacking the motivation to work on it entirely, and because I wasn’t enjoying what I was doing. The sheer amount of work I had made for myself become far too daunting.

At some point in December, I decided to say “Screw it”, and play video games until the new year. Once the new year came, I looked at what was done, what needed to be done, and what the game was supposed to be; and considered it to no longer be viable to complete within the time frame I had set myself.

And so, here we are.

Overall, nothing significant was made. Frankly when you look it, it doesn’t seem like much. It was my first real Unity project though. But yeah, it looks like something other people would probably make in a couple weeks. As a learning experience, both from learning Unity and in general, I gained a lot of knowledge that will be invaluable for future projects.

Speaking of which; I have started a new project. This time, I decided to actually design what it is supposed to be from a gameplay standpoint, and will not add to it until the base design is implemented and it is absolutely necessary to expand upon it.

I don’t know how long it’s going to take, but I learnt something. Designing the game is something you should do before you start building. Doing things as you go will probably lead to feature creep, and then it’ll just become a nightmare to work on as you add more and more on. Going forward, I’m going to try and avoid that.

The rant on the Xbox One can wait a little longer.

And because everyone loves top-10 lists, here are my top-10 video games of 2016…

10. Senran Kagura Estival Versus
9. Uncharted 4: A Thief’s End
8. Zero Escape III: Zero Time Dilemma
7. Digimon Cyber Sleuth
6. Odin Sphere Leifthrasir
5. Steins;Gate Zero
4. DOOM
3. Titanfall 2
2. The Last Guardian
1. Final Fantasy XV

Honourable Mentions: Hitman (2016), Trackmania Turbo, Amplitude
Released Games I Wanted To Play or Play More Of: Quadrilateral Cowboy, Redout, Dishonored 2, I Am Setsuna, Dark Souls III, Furi, House Of The Dying Sun

And my top-10 anime of 2016:

10. Lupin III Part IV
9. Keijo
8. Shokugeki No Souma S2
7. Fune wo Amu
6. Bungou Stray Dogs
5. Koyomimonogatari
4. Yuri On Ice
3. Uchuu Patrol Luluco
2. New Game!
1. Shouwa Genroku Rakugo Shinjuu

Special Mentions: Kimi no Na Wa, Sansha Sanyou, Sakamoto desu ga?

Pretty good year for both those things. Now to get back to work.

-Adam

11/10/2016: Things I’m Doing These Days

That’s a good five months between posts? My bad.

First things first, I released that shitty pong clone I was working on, it took me 3 months longer to make than I thought, and 2 months longer to mention the fact I released it. Either way, you can go play it now. I’ll be making a page on this site for it at some point. Here is the site page for the game.

Additionally, I still intend on updating the site with all the stuff I did at Uni at some point.

Now on to what I’ve actually been doing.

I’ve been working on my game, or at least half-working on it. And when I wasn’t working on it, I was going to the Enterprise Centre to sort out my business plan; which is now more or less sorted, I just need to fix it up a bit more. Unfortunately, my game isn’t ready to show yet, probably won’t be until sometime next year once I get the art ready and have something to play. I intend on releasing a demo on itch.io when it’s ready, so people will be able to give me feedback on it.

As for video games, I’ve been playing the new Destiny expansion, Forza Horizon 3, Dark Souls III, and the Japanese version of Persona 5. I’ll probably give my impressions of them when I can be bothered to do so. Although do expect a post where I rant about the Xbox One in the somewhat near future.

But yeah, that’s what I’ve been doing. See you whenever.

-Adam