Pusher Update. Unity UI stuff

20 Feb

Been a little over two months since an update. Here’s some of the highlights.

Last time, I wrote about struggling with the new UI system in Unity. I ended up shelving that work work for a little while to focus on other things. It wasn’t until 2 weeks ago that I started messing with it again because someone else wanted to learn about UI stuff. It’s now up to about 90% of where I want it. It looks much nicer even with no special graphics attached, plus it scales well. Overall, I like how UI elements are treated as GameObjects, and I think the UnityEvent system is pretty handy, but it did seem like a steep learning curve to move beyond the basics.

I also managed to finally get our character to animate a la Hotline Miami, with legs that run in the 8 directions of movement and a torso that rotates towards the mouse. Rotation is something I have come to appreciate more than ever, as I had to try out every possible rotation method there is Unity. But it was worth it to make animations much simpler in the Animator Controller.

While working on Line of Sight for our cop NPCs, I ended up learning a lot about how layers work and layer masks and a bunch of other stuff about collision detection. I’m also pretty sure I cracked the problem I was having on my last project. Essentially, when I used raycasts to detect objects, I was mostly finding the same object that was firing the raycasts, as well as trigger colliders (when I only want physical colliders). The solution is to use raycasts for detection on layers other than the one being fired from. In this case I have Cop NPC, on the characters layer, that has an LOS child object sitting on a different layer telling its parent Cop object whether he sees anything. I’m tempted to implement the solution in the old project, just to see where things go…

I will endeavor to get at least some screen shots or something up here.

I’m Your Pusher, Man.

11 Dec

So, I’m now working on a  2D RPG about selling drugs. I see it as what would GTA2 look like as an RPG. I’m using Unity to build it. Like GTA, I plan to use satire heavily in writing Quests and storylines. The idea is to examine the underground culture that develops around illegal drug trafficking. There are also some beautifully capitalistic aspects to buying/selling drugs that can be played with too (So, yes it’s also a bit of classic Drug Wars).

My co-developer and I already spent a lot of time learning Unity, and by extension C#, while working on another game that we decided to shelve*, so we’ve been able to hit the ground running for the most part. That being said, Unity’s new UI tools were officially released a few weeks ago, and I’ve been having a hell of time getting everything re-built in the new system. I already had a very functional UI working under the now legacy GUI; it just happened to also be ugly enough that I decided to work on improving it. And if I’m going to change how it looks, I might as well learn the new GUI and Event system while I’m at it, right? I think I’m about 50% done getting it back to the same functionality that I already had. It’s really the Event system that I had to spend a lot of time getting used to, since it now requires new Components.

On the positive side, I did manage to build a nice inventory system and a quest system. The inventory system is technically based on this tutorial series, but with the transition to 4.6 GUI, most of it has been replaced. But even under the old system, I had added a lot of stuff. In fact, because the original guy has stopped posting videos, I thought about releasing my first ever tutorial showing how to move items between inventories and how to create stacked items. The quest system is cool because it relies on events being fired, so I had to learn how to fire events from code.

I will try to get a demo up here at some point. Preferably after the new UI stuff is done and there’s more of a proper level layout.

*I would also really like to talk about that project at some point, since it was a cool experimental game.

Capstone updates 3-5

4 Apr

So, I didn’t update this devlog as much as I intended to, but better late than never.

Day/Night is now established as a force in the world. Plants, predators, and players are now all affected by whether or not they are in “Day” or “Night”. Plants bloom quicker in daylight, queens and their pawns move slower at night, and predators come out at night.
One of my goals with this system is to force players into action and have them fight for territory that’s getting more sun, and therefore growing food more quickly.

In relation to the day/night cycle and the plant blooming cycle, I added the ability for players to force plants into bloom by clicking on them. When this is done at night, the plant becomes more stressed; when this is done during the day, the plant becomes less stressed. And as the plant becomes more stressed, it takes longer and longer to bloom.
My goal here is for players to learn how to “farm”. Part of the trick is that plants gain stress faster than they lose it when farmed, but if left alone for a while they naturally come back down. I see this as part of learning to dwell within the world. I also see it as a way to increase engagement, by making the game more “clicky”. In particular, I’m reminded of falling suns in Plants Vs Zombies.

I’ve also settled on the visual motif for this game. I’ve decided I want a very geometric look, so the queens are ovals, the pawns are triangles, predators are rotating octagons that live inside deccagons, and plants are squares that fold out when in bloom. I’m not gonna lie, a big incentive to go this route is simply how much easier it is for me to do.

Because this game is based on emergence in mechanics, it seemed natural to work towards random level generation. So far, even with few constraints in place, levels are coming out interesting. I’m gonna keep refining this aspect for probably longer than I need, or until it stops being fun.

I would really like to make the game multiplayer as soon as possible, but due to constraints on my time and the limited amount of time left in the semester, I will most likely wait until May to begin in earnest on that.

Capstone Update 2

5 Feb

Not as much to talk about in terms of decisions this week. I did play around with how “succession” works, whether it should be through direct descendent only or through the broader family. In other words, should a “sister” or “aunt” of the queen be selected as the next queen. I’m strongly leaning towards direct descendent only, on account of how long a game might take if you had to kill every member of every team. I’ve also considered doing some kind of possible team splitting when a queen dies, but that would mean that I’d have to plan for quite a few more different colored sprites (which is probably less work than I’m  making it out to be, but I hate doing sprites).

I had a meeting with my professor this week to review the game. We mostly talked about introducing additional levels of ecology and environment. This is something I was kinda wanting to do as well. I think of SimAnt, its predatory spider and, to a lesser extent, the lawn-mowing humans that were environmental hazards for the player to cope with. I would also like to see an organism on the level below our intrepid colony creatures. Ones that would have an effect on the resources available(a la pollination), or possibly become a resource themselves. I’m supposed to meet with another professor to talk about what they did for their dissertation project (as it relates to ecology) , hopefully that happens and proves to be productive.

He was also really getting into the idea of different environment conditions occurring in the game, and the idea of revealing deeper systems in the game to the player. I’m totally down for trying a sort of Don’t Starve style environment system that slowly changes length-of-day, temperature, snow/rain-fall. I don’t think that’s necessarily what he was talking about, but it’s something I think could work.

Capstone Update

20 Jan

I’m going to try to update roughly every week with progress on my capstone project, Gather. But more importantly, I want to outline design decisions I’ve made and why I made them.

Since I haven’t done so already, I’ll outline the basics. The core of the game is playing with the idea of a colony-type organism that is competing with other members of its species, a la SimAnt; or you know, actual ants. I started out thinking of colony insects that generally build some kind of home enclosure, where they store resources and breed. One of the aspects of these creatures that I really wanted to experiment with, was the idea of all the different workers and soldiers behaving autonomously but still doing really cool things because they all follow patterns. My early prototypes (which might still be up on this site) focused a little too much on having all the drones function without the player, and it resulted in an interesting simulation, but not much of a game. Thus, my new version seeks to give the player more interesting choices and make them a larger participant in the game world.

Some of the main points in the new game are: that the home-base aspect is essentially gone, players can actually direct their drones to move to general areas, and the player can spawn daughter units. The home base has been replaced, so far, with the idea of a home “turf”. This makes the game more about conquering and holding down different regions. And since the base is now the mobile queen, it ultimately makes the gameplay more dynamic as players now have to move their main unit into the frontline. To help hold down regions, players can spawn new queens that produce their own drones. These “princess” units will also take their queen’s position into account when moving, so as the player moves their queen, a slight horde effect happens as the rest of the colony slowly follows. The princesses also serves as the source of re-spawning the player after death. And obviously, players having control of where they send units is a big change. I decided to make the ordering of workers and the movement of the player be the same action, since it reinforces the concept that drones work with the queen and not necessarily for the queen. It also adds a layer of strategy to picking where to eat, because you send yourself into enemy territory when you graze in their area.

I think that’s it for the basics. There are probably some other parts I’m forgetting to explain, but that always happens when I’m really engrossed in a project.

End of the year update

17 Dec

So, it’s been about 6 months since I last did any serious game development outside of school or made any posts here. The week school ended though (last week), I decided to dust off Gather and remake it in Game Maker with all the new ideas I wanted to try out. The result is that I’m much happier with how the game is turning out now. To be clear, this new game is different in a lot of fundamental ways from the older Construct prototypes. But I think they’re close enough in spirit that it’s basically a continuation of the same general idea, just down a slightly different path.

The game revolves around playing as the queen of a hive-based organism, where the queen is the hive. The player controls two different types of drones, gatherers and soldiers, by placing beacons that the drones will move to and work around. In turn, the drones control the queen by directing where she moves to in the world; as gatherers bring back food, they relay where they found it to the queen, and she moves to the midpoint of the most recent finds. The queen can also have daughters that produce their own drones and follow the same movement pattern as mum. The game is mostly about competing against other “colonies” for food and territory;
Anyways, this is the executable file. WASD moves the camera around, Q creates gatherers, E creates Soldiers, R creates daughters. Left-mouse button places the gather flag, right-mouse button places the attack flag. Clicking on the flags removes them.

Gather and Harvest

30 Jul

I sorta became bored with Gather, and broke it in to two parts. My thoughts on it were taking me further into simulating things, which is mildly interesting to see the result of, but not much to play. My decision is to go one step further with ripping off paying homage to SimAnt, and include a player avatar that imitates one of the worker roles. This will allow players to lead some units into direct conflict by rounding up a posse. There might be some other homages to the Maxis classic coming.

So, that’s where Gather might go if I actually do work on it again. Separate from that, I think I want to do another game that’s closer to a traditional RTS that uses some of the concepts that I came up with for Gather This came about because a lot of what I was doing in Gather was based on RTS principles, but at the same time I wanted to have a very simple control scheme (in the end I was aiming for too simple). So, my thought now is to just embrace the traditional mouse and keyboard ‘drag and select’ style RTS controls. Therefore, direct control over all units.

Harvest will be more about developing fields of different resources located around strategic waterholes, these resources can confer different attributes to units which will ultimately help you topple your enemy. The resources are farmed until maturity and vulnerable until then. The game is about controlling as much of the map as possible and using the mixture of attributes to boost troops as necessary.

We’ll see which one gets worked on.