This month is probably full of uninteresting things, unsatisfactory progress, me being burned out, going on game development tangents and giving up more projects. Let’s do it boyz!
On the more upbeat side of things, the first game I worked on my capstone, Bopping Blobs, is finally out on the Google Play Store! It was a quick six-week project to get people all warmed up on game development, the game is all about giving you a short and easy entertainment for no more than 2 minutes!
I was feeling burned out in general with Capstone (around 8hrs/day) and classes and all the things I still would have to do, so I didn’t really feel like being strict on myself to work on side projects. I know that I need to be working on more projects in order to achieve my goal of working in AAA, but being honest, the game I’m doing in capstone and performing well in school is a bigger priority. And knowledge and released games on Unity is not really what AAA cares about the most.
So this brings us to the freshly made decision of: I will not work on Aglarond anymore. I’ve been studying roguelikes a lot recently, because I wanted to do my own, and I got a few conclusions:
A roguelike is all about experimentation and exploration;
The fun in a roguelike emerges from all the interactions of all systems and from the feeling of mastering each one of them;
Ultimately, a roguelike is a game about telling stories, it is all about what the player will tell their friends, they will talk about that time where they pressed a switch and set the entire room on fire, they will talk about that time where they went 20 floors deep and were killed by poisonous gas because they accidentally used the poison potion on the previous floor.
Doing a “roguelike” is easy, making a very good roguelike is hard, and way out of scope for the time frame I want and the resources I have.
I’ve been messing with Unreal Engine 4 recently, following tutorials, reading about things and seeing how to do things, I have a very simple moving character and some collectible items, I’ve been enjoying using Unreal and I might keep working on this prototype. The goal for it is to be a simple Action RPG (i.e. Dark Souls) style gameplay demo.
But I cannot make an entire game in Unreal! I simply don’t have the time and resources for that either, that’s why I will be working on gameplay demos, which is what will help towards my goal of being a Gameplay Programmer in the game industry.
I want to be working on entire games as side projects, but I’ve managed to fail 3 or 4 projects this year already, and I have to improve and be good at two things: 1) programming gameplay and 2) C++ – And Unity does not help with the C++ side of the equation.
Maybe I can try to come up with things with even smaller scope (like 1-month games) and see how that goes. If I do that, I want to work on experimental or interesting game ideas, not on established formulas that everyone already knows.
But for now, I will just enjoy not having to force myself to work on a side project that I’m unsure if I can finish and release it.
I feel like this month I had a lot to do and did some interesting stuff on my capstone for my Master’s Degree, I wanted to have them in this post but due to virtual paperwork, I’m not ready for that yet!
Aglarond
Getting straight into meaty content, I didn’t work on Aglarond for about 2 weeks, the project didn’t have any progress between September 26th and October 7th. And also I am rewriting the Dungeon Generation System, which I estimate one week of work time, with all that, Aglarond should probably be delayed for 3 weeks! With all that being said, Aglarond is still a 2~3 month scoped game and I want something that small because I knew delays probably would happen, because of school and whatnot, but still the game should be released before the end of the year, that is the ultimate goal.
Right below you can see how the dungeon was before rewriting it, I have the turn-based system in place, the dungeon generation and the field of view, these are the 3 pillars of a roguelike! So I’m into something already.
The problem with the previous Dungeon System is that it used a maze algorithm for the connections between rooms, I honestly don’t know why I thought that would be a good idea, it led to uninteresting and excessively long maze-like paths in the dungeon, which were just boring.
I’m switching to the approach used by Brogue, which is basically (i) create a room with positions that can be doors (I call them door candidates) (ii) add a room to it (iii) repeat ii until the dungeon is complete. A room can be a square room, a circular room, and they can have a hallway. You can see a screenshot of it below, currently, it just create rooms and connect them based on the door candidates for it, but it is way better already.
The next step for Aglarond is making the rooms created more interesting, which means adding variety to how they are and adding hallways. After that, I have the three core features of a roguelike in place: Combat System, Dungeon Generation and the Field of View. After that I should start working on a simple item system and have it in place so you can find scrolls and potions in the dungeon, that would make the game more interesting.
AND AN IMPORTANT ANNOUNCEMENT: I was going through Brogue’s source code and have been playing it a lot lately, that’s when I realized how complex the systems and all the interactions can be in a roguelike. I wanted to have all the complexity on Aglarond but I also didn’t want to blow scope, everything I have planned is not even 20% of what a complex roguelike has, and I would like to have all that. Roguelike development is very iterative in its nature and every tutorial or talk focuses on having the basic core gameplay and then adding whatever form of complexity you want on that.
That’s when I decided that I want to try making Aglarond some sort of life long project, that’s what a lot of roguelikes are after all, so the basic core gameplay would be released and I would keep working on updates as time goes by. Everyone that buys the game will have access to all future updates!
Card Game!
The reason Aglarond didn’t see much work done for some time was because I was making a Card Game prototype! I made it based on this online course and first I made exactly as the course said and did, and then I rewrote the entire code to my syntax, my standards, etc…
There are still many things that I have to approach and fix, a lot of the systems in the game are strongly tied together, and I can see a thousand ways how that could be a problem in the future, I want to fix a lot of animation, elements positioning and refactoring code, making the systems more loose, I don’t exactly when I will do that, but that’s what I want.
There are many reasons why I suddenly made this Card Game prototype, first, I always wanted to try doing it, second, I love Hearthstone (the prototype is basically a Hearthstone clone), third, I pitched a card game for the studio I’m working on for my capstone in my Masters Degree, so I wanted to have a prototype to show I could actually do it and convince artists and designers to want to make the game, the idea was well-received, but when we talk about really making a card game in a studio, there are some considerations that needs to be done, such as, “How can I guarantee this will be within scope?”, “How will I address AI?”, “What are the cards going to be and how can we adapt the card art style for the artists we have?”, and, most important of all: “How this is not just a bad Hearthstone clone”
These are things I still have to answer, but hey, a little of polish and fixes and it can be at least a portfolio piece! Or I can end up making a card game in the future, who knows.
That’s it for this month’s update! I will try to keep focused only on Aglarond, but there are plenty of other side projects coming up that I might tackle, especially considering I need to improve my C++ skills, Gameplay Demos on Unreal might be appearing here next month!
Last month I talked about Midnight Journey and me sucking at Level Design, I also said working on it wasn’t very interesting to me anymore because Level Design is not something I’m particularly interested into and I don’t really want to spend my time on it, so the best decision here was to give up Midnight Journey. Hooray! I canceled one more game project!
It was good while it lasted my friend
I felt I needed to reevaluate what games I wanted to work on because I’ve blown scope or started working on something I couldn’t really accomplish on my last 3 or 4 games. This worries me a lot because I thought I was over these mistakes already after releasing two (simple, but released!) mobile games. So I went a bit hardcore, did some research and wrote a list of limitations I will work with.
List of Limitations to not blow your scope:
No Level Design.
No Narrative (or dialogue, or cutscenes).
No Puzzles.
No multiplayer or networking.
2 to 3 month projects.
Design around a theme.
Progression means ramping difficulty of core game loop.
So that’s when I decided to work on my new game, Aglarond. Aglarond is a simple roguelike but with enhanced game feel and pretty graphics. This should be in scope because there is literally tutorials for people to create roguelikes in 1 or 2 weeks, so I do believe it’s feasible.
In fact, I wrote a quick first post about Aglarond on my “studio” devlog (https://fourthdimension.studio/devlog/2019-09-15-What-is-Aglarond/) – In this post I talk a bit more about the dungeon generation and turn-based system, I want to write more frequent updates about Aglarond.
If you wanna know, these are all the game ideas I came up with when working around those limitations. There’s a big chance actually I get to work on more of them if I don’t procrastinate and don’t blow my scope again.
Aglarond
Turn-Based Combat: Something that would have a combat-system like Pokémon and the game would be about facing enemies one after the other until you die (It’s a Pokemon Roguelike!)
Card Game: Something like a deck-building roguelike (it would be very simple and I would search art packs or open art to see if it was feasible art-wise), you would start with a deck, defeat an enemy, after every enemy defeated you choose some cards to add to your deck, do that until you lose (It’s a Hearthstone Roguelike!)
Tetris Attack Style: One type of game I tried working a long time ago was a “puzzle” similar to Tetris Attack and Pokémon Puzzle Challenge, it is similar to a match-3 game but I think they are more interesting. So I thought of making a game using this mechanic where you could face enemy after enemy and difficulty go up for every enemy (It’s a Tetris Attack Roguelike!)
Incremental Game: I worked on Pizza Clicker a while ago and writing an Incremental system is something I still want to do again and make it better, but I would need a theme for that.
Veteran Bros: A Couch Co-Op shooter where one player moves and the other shoots, the thing is that it would be two characters, one in a wheelchair using the gun and another character pushing the wheelchair.
Insanely Juiced Rock Paper Scissors: That’s the Joke. It would be like battles, but the battles are rock paper scissors, and every time you win or lose you takes damage until someone loses the match. Imagine that but extremely juiced.
Anyway, that’s it for this month! See you in the next one and you can follow me on Twitter if you want!
The transition from July to August wasn’t the most productive time I’ve had, but I still managed to get something going on. Having assignments, capstones and a bunch of things during my Master’s is taking me some time, but next month my schedules are more stable, so I think I can put more work on my own projects.
That being said, here are the things I worked on during this time, followed by a brief reflection on what I might work on in the future.
Pokémon: Fake Version
One of the things I had in my last update was creating a top-down adventure game and that I was going for what basically is Pokémon Roguelike. I ended up working on it for 3 weeks and I got something that I actually like, but I don’t think it was very fun or compelling, so I chose to not work on it anymore.
Dungeon
The way the dungeon works is a simple dungeon and lock “puzzle”, the generation is based on The Legend of Zelda rooms, which there are plenty of tutorials and algorithms to generate rooms on this logic. The dungeon is generated, then the algorithm detects rooms that can be boss rooms and reward rooms, it then places the boss, the reward room and locks them (the rocks in the screenshot) – a key for the boss room is randomly placed on the dungeon and the boss drops the key for the reward room.
Aside from the dungeon generation, everything else is basically Pokémon reverse engineering, which could also lead to an interesting technical post, but the code was written in a hurry and doesn’t really follow good standards.
Getting into Unreal
One of my goals is to get into Unreal and do at least 1 or 2 small projects on it, using blueprints, C++, having animations and AI. This last month I could dedicate 1 or 2 days for getting at least a glimpse of how Unreal Engine works. But nothing very significant was achieved.
Here’s some Blueprints!
Midnight Journey
One of the things I am working on is Midnight Journey, a simple platformer game, when I first started working on it I was aiming to finish by August 21 (also known as today!) – I had no idea of what was coming for me at the time and I didn’t really anticipate how much out of time I would be to work on that.
Needless to say, Midnight Journey is not even close to completion, in fact, I didn’t even touch it last month.
Next Month
The biggest thing for next month is that I was accepted into my capstone of choice on my Master’s, that means from now on I will basically be on a 9 to 5, which hopefully will give me more time to work on side projects and learn new stuff. I will be working on game development on those hours, but for NDA reasons those things won’t make into the updates probably, unless in occasions where the game is released and I make some kind of tech post about it (which I definitely plan to do)
About Midnight Journey, I like the game and I think I’m up to something good, but Level Design is something I am struggling with during the development and I came to realize it is something I’m not particularly skilled at and I don’t have a lot of interest either, so building a platformer (which requires a ton of Level Design) is kind of slowly leaving my interest, next month will tell if I keep it or not.
If I don’t keep working on it, I’m also at a loss of what I should try, I like roguelikes, which solves the Level Design aspect of the equation with a coded system, and roguelike players don’t really expect much variety or well crafted Level Design. I would have to research and think things that play to my strengths and could be fully finished games, considering I want to go for a Gameplay Programmer job in the industry.
Anyway, I won’t keep a list of what I want or don’t want to do for the next month, I will try working on what I have and see where it takes me!
Oh my god, it’s already that time of the month again, the month was fulfilled with unfocused work, many different projects, many different experimentations and my attention divided into classes, capstones and personal projects.
and dove pictures at Downtown Orlando
This month I will have to narrow down what I’m working on at school and start focusing more to get more interesting projects going on, but at the time I’m just enjoying the experience of being able to work on games all day every day and being able to explore different things.
Setting these aside, here is a brief overview of what I worked on this month!
We Broke O.R.B.Y
I briefly talked about this project last month, this little game had 6 people working on and we did a two-level 3D platformer prototype for the Research and Team Dynamics class. In the video, you can see the second level being played by me!
My main contributions to this project were the character controller and the camera, I know the camera looks bad, I’m sorry.
Jumpy Jump
And this is the result of the “Make a Jump” assignment, I tried copying the exact same feel as Super Mario Bros 3 and added a few of my own touches! So it has a similar feel but not quite the exact same.
I learned a lot by reverse engineering a game, I made many improvements on my previous platformer engine and these changes actually were incorporated in Midnight Journey.
Top Down Adventure
After the jump assignment, my next task is creating a top-down adventure, I talked to some people who went through this task and read the documentation and realized I could make something very based on Pokémon, which is something that is on my backlog for a long time already.
So I had this idea of dungeon exploring roguelike where the combat is based on Pokemon and I have to do it in 1 month. Sounds like a very sane plan!
D.S.L.R.
One of the nice things of this month is that I had a Summer Break (that lasted a glorious whole week) and I wanted to make a prototype this week. So I got into my backlog of mechanics and found D.S.L.R.
D.S.L.R. is a game where you are a Forensic Photographer and have to investigate murders, the trick is, the pictures you take of the crime scene shows the crime scene at the moment of the crime.
The prototype is just about taking pictures and seeing them on the camera, but hey, it’s something.
Midnight Journey
So finally we arrive at Midnight Journey, the game I’m really working on as a project, my goal with this one is to be a full platformer game and I’m aiming at about 1 hour of gameplay, just something so I can release. At this point, I really feel like I need to release a platformer commercially.
I will write more in-depth Devlog posts about this one, these are going to be done on Fourth Dimension devlog! But I will link everything here.
I decided to make Midnight Journey very heavy on Wall Jump, you are going to explore a tower and it makes sense to have a lot of verticality.
wall jumps
Here is a quick list of some things I’ve done this month for this project, I won’t be getting into much detail because this post is damn long already!
I’ve created the Pause Menu, which will feature a map of the tower, the menu changes where it appears based on where the character is on the screen, I thought this would be a nice touch. I’m planning to have an animation on the character where they would be looking at a map or something like this.
map will be there
Created the Main Menu finally! I want the “created by Guilherme de Oliveira” thing on the main menu to make me seem more important lol
main menu
Made some Level Design for the initial segment of the game! This would work as a tutorial and aims to teach you how to use the jump effectively.
tutorial section of the game
I’ve added InControl and reworked the Input system for the game;
Reworked the platformer engine, incorporating improvements from Jumpy Jump;
Reworked Wall Jump so now it feels better;
Added a Dialogue System;
Added an Environmental Notes System;
Started writing the notes the player will find on the environment.
Summarizing it all, a lot of things were done this month, there are still some other things that are under NDA and I can’t really be talking about it here, but I feel like I didn’t focus on anything, I’m fine with that at the moment because I’m working on 3 capstones, classes and personal projects, but in 1 month I will have to decide on just 1 capstone and then I believe I will be able to have more quality and not so many quantities.
Next Month
This month I realized I should start working on a portfolio, I should have a decent portfolio and keep it constantly updated, I also want to do more tech posts on my other blog where I get into code specific stuff and the line of thought of how I developed some features.
This is why I have gifs or videos for everything, I am making some kind of library of media to use on my portfolio.
So next month I want to have:
1 Portfolio Piece: I want to write about the development of platformers games, I’ve worked on 6 platformers mechanics to this day: Secludere, Journey to the Light, happily(never)after, which were game jam games, JumpyJump, which was an assignment and Midnight Journey and Freshman’s Quest, which are games that are under development – I want to write about how I first did it, how iterating on it was important and how the code looks like after all the iteration, it will also have some handful tips on how to make a platformer feel good.
1 Tech Blog Post: For one of the capstones I got to work on a Billiards prototype, and getting the stick rotation around the ball was something that involved some interesting math and code stuff, I want to write a tech post about that.
As I said on my last update, now I’m studying Game Design Master’s at Full Sail and a lot of things are going on here, also last month I said I was going to work on a new platformer game, Midnight Journey.
But before getting into all game related stuff, a paragraph about school.
So at Full Sail, you have what is called a “Capstone Project” which involves you working somewhere in University for the last 8 months of the program, there are 5 capstones in total. 2 works just like a real studio, one focuses on bigger projects and one focuses on smaller and faster projects, one is a research lab for user experience and two are focused on Producer activities.
Before Capstone, you do what is called “shadowing”, where you are not officially working there but you go there and work there, the thing is that I’m shadowing 4 of the studios and almost all of my time is going to them!! I would show things here if it wasn’t NDA related, in fact, 1 doesn’t have an NDA and resulted in a cool portfolio piece for me, I’m going to talk about that.
Now, games.
Yes, I have to make games as homework.
Month 2 class is “Research on Team Dynamics” and, as the name implies, is about working in teams, so, what happens in a team dynamics class on game design masters? you get into a team and make games!
That’s when the first 3D platformer I’ve ever worked on was born.
My team consists of 2 designers, which are designing different levels and doing producer work, 1 3D artist and 2 programmers (I’m one of them!) – I programmed the player controller, it was interesting how much of the 2D Platformers knowledge translated to 3D, I could achieve something I’m happy with on my first try. There are lots to improve, but it is a 3D platformer that at least feels ok.
I will be working on that until the end of the month to get a better feel on the player controller and figure out the camera.
Make a Jump.
One of the capstones gave me a task in order to understand my problem-solving skills and see a little bit of my code. The task? “Make a Jump – Pick a game, and make a jump”.
ME? MAKING A JUMP? I’VE MADE 4 2D PLATFORMERS BACK TO BACK, I WILL MAKE THE BEST JUMP THIS GUY WILL EVER SEE.
That’s what I thought on that day.
But seriously, there were still plenty of things for me to learn on the land of 2D platformers, this time I tried something new: describing the player jump in function of:
height of the peak of the jump;
distance on x-axis to the peak of the jump;
character’s movement speed.
And oh boy, I think I’ve reached the perfect formula for programming 2D platformers. I’ve decided to pick Super Mario Bros 3 and try to get its feel.
It started like this
The first thing I wanted to do right is the damping, how Mario takes its time to change directions and stop moving, after that, I decided I could use some beautiful 2D art.
And it turned into this!
At this point, the task of “making a jump” was pretty much complete, but I decided to play some more, I liked the feel and the code so much that maybe I could use it as a Gameplay Programming portfolio piece, maybe I can use the code in the future for a 48h game jam.
So the end result is this:
That’s the final result.
I’m really proud of this platforming code, to be honest, and it’s Open Source!
Midnight Journey is a platformer with exploration elements.
Rooms that changes.
Explore a tower collecting pieces of a story to know what happened there.
The first thing I wanted to do to get this game up and running was (a) basic platforming, which is already outdated since I’ve started this before the Super Mario Bros 3 reverse engineering, I will rewrite that, and (b) THAT camera transition (you know which one I’m talking about)
THE camera transition
After that, the next step I wanted was to get the “Rooms that changes” part of the equation done, I did that based on my level generation for the Mobile Roguelike, which maps individual colors of an image into specific objects to instantiate. But I made a very welcome and important change, it doesn’t instantiate objects anymore, it has a tilemap to work on and it maps color to a tile and fills the tilemap according to the template. And also, I’ve incorporated rule tiles into it.
Changing Rooms with Rule Tile
The last thing I’ve worked on this game was an aesthetic element, I want the player to have a cape, and I want its behavior to be interesting, it should follow the player and really act as a cloth, think something similar to Madeline’s hair in Celeste.
Madeline’s hair in Celeste
I wanted the cape to have the same effect, but it should be bigger and more visible, so I believe it would be something very interesting to have on this game. I started prototyping possible solutions and this is what I have.
My cape Prototype
Right now it is just some round sprites that follow the player with an offset and some frames of delay, but I want to use the glorious power of Trigonometry to add an interesting behavior to them and after that, I would make it look like a cape and not just a bunch of balls.
So that was it for this monthly update! Now I have a Windows PC and I can record gifs very easily, which is something I always liked to do. It’s way better than trying to describe things, so expect lots of gifs on every update from now on!
Last update I said I was moving, and yeah, it happened, I thought it was going to take 2 weeks for me to get everything done and make a post about it, but it actually took me (more than) the whole month!
Guess where I’m at
Now I’m living in Winter Park, Florida, about 10 miles from Orlando. The thing is that I am here to take a Masters in Game Design at Full Sail.
My classes had already started actually and I’m really liking the classes and how the school itself works, I believe the students get plenty of opportunities to really work on projects and get a ton of experience!
Anyway, I don’t want this post to be boring talking about all the moving process, buying things, assembling things, getting used to the new place (FLORIDA IS SO HOT!!!), buying a bike and all that juicy stuff. The important is thing that I’m here. I’m back at updates, I’m studying Game Design formally and I’m having plenty of opportunities to improve on it, I’m confident that in a year I will finally be able to join a company in the game industry.
What about the games?!
I was working on a Roguelike for Mobile and I talked about it a lot on the last update, but, honestly I got bored with it and I’m not motivated to keep working on it, so I’m taking a break.
I will start working on a platformer project that I want to finish in around 3 months (hopefully).
This new game is going to be called Midnight Journey – and it is a platformer with explorarion elements (kinda think of it as a Metroidvania without combat), there are going to have rooms that changes and you will have to explore a tower collecting pieces of information/story to find out why are you there and what happened.
I know it may sound a little bit weird but I want to try something very experimental. Hopefully I will have a good amount of it on the next month!
Midnight Journey should be release by 21st August.
Thanks for reading this quick update that was also typed very quickly!
Hey there fellow game developers! Time for another monthly update! I think this month wasn’t productive as others were (considering I’m doing game development full time), because of constantly changing focus between projects and also ’cause I’m taking care of some personal things. I’m moving next Tuesday, so lots of banking stuff, health check up, going out with everyone, those sort of things.
I will talk more about the moving thing on a random update, which should be in about 1 or 2 weeks.
So I will quickly write about my projects and focus on the Mobile Roguelike, as it was the only one I had significant progress on.
Freshman’s Quest – Management Talk
Freshman’s Quest is a platformer pixel art game I’m currently working mainly as a programmer with a local small team, we are currently 9 people.
It’s been around 6 months since we started this project and the focus hugely changed since we first started it. So we really needed to stop development a little bit and get to talk.
When it al started, the goal was mainly for it to be a portfolio project for everyone as it is everyone’s first game, without worrying about finances and competitive advantages on other games, but it changed as we generally got a very good response on twitter about it and there are people on the team able and willing to work 30 to 40 hours each week on the project.
And this is a problem because everyone on the team is on a different context right now, some are only able to work 10hrs/week on it, others can put 40hrs/week and everyone had different expectations and emotional investment on the project. So we have to stop and get everyone on the same page, willing to do the same effort and expecting the same from the project.
And also, changing the focus from a portfolio project to a fully comercial game, we have to answer the question everyone is afraid to answer: “What makes your platformer special? Does the world really need another platformer?” – Which is something not always so easy to do.
This is some boring management/team building talk, but it’s part of game development!
I’ve been doing an Internship on GILP Studio since the beginning of January and it is something that made me learn a lot and have some cool opportunities, such as attending GDC!
After doing some work on one of their games, Upside Down , we started another project that was really interesting for me, even though I complained a bit about these kind of work some months ago on an update.
We started building a more generic library with game services, some kind of service that would make really easy to integrate Achievements, Leaderboards, Analytics, ADS, etc… into any game, the idea was to make it open source or publish it on the Asset Store.
This is interesting because I want to develop more mobile games in the future, and having an easy way to add all of those services will come in handy. But I don’t know if I will keep working on it as last Thursday was my last day there (due to the moving thing). At least I have access to the source code and can keep improving it!
Mobile Roguelike – Adding Content!
Oh boy, this game suffered the last months from identity crisis, but after dropping it on the psychiatrist, it finally founds itself.
By dropping it on the psychiatrist I mean I had to write a 25 page Game Design Document and create a Trello board to effectively keep me organized and find out what this game wants to be.
And what it wants to be is really a Mobile Roguelike with a fair complexity, so I came up with these three core foundations for it:
The Emergence experience: A game being emergent means the game have many verbs and many objects that can interact with different verbs. This means that objects can be interacted in a number of ways and maybe you can act on them with 2 or more verbs, leading to multiple ways for achieving a given objective.
The Lord of the Rings experience: The game will be heavily inspired by Lord of the Rings and aesthetic, that means theme, colors, characters and the overall vibe is very the lord of the rings. It is like a Lord of the Rings Roguelike game, there will also be a lot of aesthetic inspiration from The Crypt of the Necrodancer and, of course, Zelda.
The Interesting/Surprise experience: A very important pillar is that on this mobile roguelike the player should always be taking interesting decisions and they should be frequently surprised by the outcomes of their action. A way to achieve this is by the emergent gameplay and more random components on the game.
This ultimately led me to see the game as a complex interaction between systems and a huge part of it is the turn based system, which has Dynamic Actors, Static Actors, Moving Hazards, Tiles, Hazards, etc… The Turn Based System is something I will be focusing a lot on this game because the game is just a consequence of the complexity the system can handle.
And by having a well programmed system that handles a complex environment I can work on future roguelike games, which is something I would really like to do, specially considering I will have to cut a lot of content and functionalities for the mobile roguelike. Maybe I can even target PC and Console for a future game using this system!
I’m really proud of my mobile roguelike game, it dreams so big! I created 6 enemies and 7 hazards on total and I have 5 more enemies and 1 more hazard on my to do list, which I plan to have finished by the next month.
If you want to see all the enemies and hazards I added, you can see on the Fourth Dimension Devlog (this is a direct link to the post) – With a clear vision, a clear plan on what to do and a time constraint I will probably start having more progress on this game to show on the next updates, and probably the updates are going to be focused solely on this game too!
Prototyping
Last quick update I talked about a new platformer controller I was trying, I just want to post a GIF here on it, I’m really excited that I’ve written my own platformer controller from scratch and I can see a possibility of building my own paltformer engine on Unity.
This is something that I will rarely work on, but it is a side side project I’m really having fun with.
That was it for this Monthly Update! Thanks for reading it, you can reach me on twitter or even on Fourth Dimension’s twitter.
Going to GDC is a hell of experience, but due to the amount of work GILP Studio put on their game for GDC, they took a break for the whole week, so I also had to. Not that this is a bad thing, going to a conference and being exposed to so much new stuff makes your brain produce a lot of dopamine for that time so you kinda feel “down” the days after. The point here is I took a break for a week and I’m writing this post to assimilate everything that happened these two weeks.
Game Developer’s Conference 2019
I arrived in San Francisco on Tuesday, 11am after two long and tiresome São Paulo – Toronto, Toronto – San Francisco flights. GDC was happening already, but my pass didn’t allow me to do much on Tuesday, so I went there just to see how it was, take my badge, get to know the surroundings, etc… I got early to the AirBnb and crashed on bed.
Indie Games at GDC
It’s always interesting to see the Indie Games on these kind of events, I didn’t know a lot of them, but I could spot Return of the Obra Dinn and Minit (picture), but also Wandersong (aaand Drawdog), but there were plenty of other interesting games that I, unfortunately, didn’t have enough time to go through.
I had the opportunity to exchange a few words with Lucas Pope (Papers, Please and Return of the Obra Dinn) and Noel Berry (Celeste) – I like chatting with people so I can see what kind of mindset led them to their work. Lucas Pope, for example, has an approach of using limitations, on Paper, Please you can only interact with the ambient through a Booth and only by analyzing, accepting or denying people entrance to your country. On Return of the Obra Dinn, the only way to get information on story events is by a dead character, and also the huge visual limitation, as the whole game is 1 bit.
With Noel Berry I had more of a technical conversation about different technologies, all in all, I could see he liked rolling his own stuff using XNA(or FNA or MonoGame), which is interesting and totally different from what people are doing nowadays. But it is interesting as it gives more control to the developer and the game overall is lighter, as there isn’t too much engine stuff there.
Unity at GDC
When I arrived into the Unity Booth at GDC, I felt extremely… comfortable?
I’ve been using Unity back-and-forth (having pauses to try using C++ and GameMaker) for about 4 years now and watching almost all of their public presentations, keynotes I happened to like the engine as well as the company behind it.
At the Unity Booth I got a free shirt (yay!) and took a deep look on their Adaptive Performance demo (which runs with Megacity), their new High Definition Render Pipeline demo and a demo with lots of the new 2D tools they are working on or improving.
There was also a Mobile section with a game really similar to Clash Royale (I think the name was Unity Roylale) that used pretty much all of the new Unity stuff into a mobile game, it was said the project will be going public in a few months (you heard here first).
We need to talk about Unreal and Epic Games
Free Beer
Unreal Engine won, hands down, my award for “Best Booth” and everyone’s else too probably. Before GDC even begin people were like: “Epic Games won billions with Fortnite, they are going to throw money away at GDC”. And, oh boy, they were correct: Free beer, cookies, soda, t-shirts, bottles, socks, huuuuge booth and they also gave money to some of their games have their own t-shirts.
I’ve never extensively used Unreal Engine before but being there made me want to (unfortunately, I probably won’t) and I could play a little bit of two amazing games: Morphies Law and Kine.
But besides these indie games, not much attracted me on Unreal’s Booth because I’m not an user, which was just expected. Free bear, soda and cookies were great though, thanks Epic Games, keep it going!
On the last day of GDC, rumor were that they were giving extra t-shirts (it was said that it was one per person, so I got one on the first day) so I went there and was like “Hey… I would like a M or L please” and the woman working there came back with 4 t-shirts, and I was like… “Okay…. Thanks!”
At the end I ended up with the image on the right where I got 8 t-shirts from Fortnite, Unreal Engine and games made on Unreal.
Areia
Of course I can’t forget to talk about Areia.
Areia is the game GILP Studio (the studio I’m working on) is currently developing, although I’m not actively working on it, it was a huge GDC for them!
From what I could see, Areia’s got a lot of attention on the GDC Play section, which features games from smaller studios, studios that usually don’t even have enough budget to attend GDC by themselves. Which is great since they are working for Publishers and funding to keep working on the game.
And also it is because of Areia and GILP Studio I could be at GDC and meet a lot of awesome people from Guildhall and RIT! At one point I was playing Mowin’ & Throwin’, a 4 player party game, with Marcelo (the Designer on GILP) against two of the developers of the game, which also studied at Guildhall with Marcelo.
San Francisco is great I want to live there. That’s the takeaway from the city. I could go to Chipotle (something I love from the bottom of my heart, please come to Brazil!) and try different Korean restaurants. At one night we went to an Indian Restaurant with some people from RIT (where the programmer from GILP Studio did his Master’s), and damn it was great.
On the other day we went to a Korean Restaurant, on Chinatown, for a lunch with people from Guildhall (where the Designer from GILP Studio did his Master’s) and there I was, when I realized two of them worked on Ark and we discussed a lot of points around the development of Ark and somehow the conversation ended up in Politics.
The takeaway.
Although not much happened, it had an impact on me and I took one week to think about life in general, and here are my conclusions.
I decided to focus on using Unity engine. Recently, I’ve been looking into Godot, GameMaker, C++ engines and MonoGame thinking on a path I could go in the future in case something happened with Unity. But I decided to focus on Unity and take the risk of it going into a bad path, worst case scenario, I just have to learn a new tool, which wouldn’t take that much time.
I gave some thought on the limitation’s approach I talked about and I will try to use it more on my design approach.
I realized, for once and for all, that Brazil is not a good place to be in case you want to be a game developer. I already knew that and I’m on my away of getting something to go abroad, but, there’s always the thought of “Maybe things could go well here”, but this time, I really think things can’t go well here.
The Next Week
When I take a “break” I like coming up with prototypes and programming things just out of curiosity. So I programmed my own platformer controller in Unity from scratch, which was nice because I could get the base class (which handles movement) working with 284 lines, way less than I expected.
The Player Controller currently has 199 lines and I have a character moving around, jumping and wall jumping satisfactorily.
Here is the story of how I started my Fifth Platformer back to back! This is actually a prototype for something I might work later this year.
And the reason I created this prototype is I wanted to test a new way to set gravity and control better the jumping.
Here’s my variables.
This is the best platformer controller I’ve programmed and, as you can see, the key is defining gravity as a function of jump height and time! (Don’t tell Isaac Newton).
Anyway, this was just a random mid month update post talking about GDC, so I wouldn’t have to approach these topics on the Monthly Update.
Another month went by and let’s start talking about what happened and what is happening… I’m kind of in a hurry (It’s 2:17am right now and I have to be on the airport 8am, so…) and I will try to be faster and funnier, but I always say that!
Upside Down
Last update I talked more about my Internship and what I was doing, after a lot of tools and systems programming, I finally was able to port the game to iOS, yay! Right? Well, no. Setting the game on iTunes Connect was kind of a pain but I eventually managed to do it and launch to Beta, I was able to test it on an iPhone and on an iPad, yay! Right?
Well, no. For some reason the In App Purchase prices wasn’t showing and I just couldn’t figure out why. After researching I found out the answer was on my face all along. On iTunes Connect there was a big message like “YOU NEED TO UPDATE YOUR CONTRACT! OR ELSE YOU CAN’T SELL GAMES OR HAVE IN APP PURCHASES” – this made me feel dumb.
So, after updating all the dependencies, creating an achievements system and going through all the trouble of resizing screenshots, I have to… wait… until bureaucracy happen. Oh well.
So we had a talk there basically about what we (the interns) would like to focus on and do, we decided to focus on our project related to University (Freshman’s Quest) and think something else after GDC. And after a little bit of thought, I realized what I would like to focus on and I’ll try work on at least one of them on the internship. I would like to focus on (i) Learning Entity Component System (ECS), (ii) Definitively get into music composition for games (I just bought a MIDI Controller that comes with Ableton Live, yay! Right? Well, yes!) and (iii) just make games.
Freshman’s Quest
So last month I announced (finally!) this project I’ve been working on for some time, this month development just kept going, what I have to do right now is mainly assist designers and artists on getting their work done, as a big part of the programming is done (I did the character controller, menus and dialogue system).
(Spoiler Alert) As I’m going to GDC, we talked with our partners at GILP and they recommended us to at least have a build or something to talk about our game, so we put up a weird build for Android devices, put it on a tablet they had and connected an Xbox One controller to the tablet. That’s how are going to showcase our game at GDC.
But showcasing this game is not my main purpose there, I will just ask someone to play if the opportunity come as I’m talking with them. My purpose there is mainly getting my feet wet and maybe meeting people that I can contact for a job after my Masters (this might be another spoiler)
weird build in a tabletWe also made some business cards, that’s mine!
I will just leave up with a gif from this game on Twitter!
I actually managed to put a lot of work on this game, but I don’t know if it’s enough for me to talk more about it here because I mainly have to work on the progression and room design here. You can play an early build here.
Here’s a quick bullet list of some things that I added:
Refactored the Level Generation System into its own thing.
A lot of code reorganization and optimization
Create a Hazard, which is a tile that deals damage when active.
Divided all my Actors into DynamicActors and StaticActors (more code reorganization, but this time on the Turn Based System).
Create a nice Camera Shake effect (I should create a post on my tech blog about this one)
Added music and SFX (that I got from Crypt of the Necrodancer)
Added User Interface and the options to Start and Pause the Game.
Added Particle instantiation on the dynamic actors and items.
The Level Generation System now, when generating prefabs, can have chances or each possible prefab to generate on a tile, having tiles that will spawn more often on the same color.
Added Falling Ground (disappears after activated) and Ice Ground (force the actor the repeat the last turn’s movement).
Finally created the Mobile Input (and it feels good!)
Added feedback texts (text pops up for damage and rewards).
Woof. That’s a lot of stuff, but none of it really matters without a good progression and room design, so I’m planning to work on that for this next month and put on a Beta release on Play Store.
Next month I will also have to worry with art, aesthetics and music.
The Customizable Dungeon Generator
I said that one of my goals was to create an asset this year and I said that I made the level generation system on Mobile Roguelike its own thing, right? So, yeah, ‘its own thing’ means that it works like an asset on my project.
I published the Customizable Dungeon Generator about a week ago and I had astonishing 0 sells! The worst thing is that I have no idea on how to promote it and whether the approach to assets is just publishing and waiting for the store to do its job.
I linked the asset store page with google analytics, I had a total of 60 active users (29 from Japan) and an average Session Duration of … (dramatic pause) 3 seconds!
I know that this asset solves a very specific problem but I think it’s a valuable and well done solution, I have to research on how to go about promoting and improving it!
GDC
So… I’m going to GDC this year, and that’s nice. The studio where I’m an intern consists of 4 people and they have a partnership with the Brazilian Government where they get 8 tickets, I asked and they accepted to give one to me and the other intern!
“The one who asks, eventually gets to Rome.” – Badly translated Portuguese proverb saying that people who “has mouth” (i.e. is not afraid of asking/speaking) gets to Rome, I have no idea why this proverb exists around Rome. But the idea suits here.
Not having to pay those $350 makes it easier as sharing rooms makes the trip more accessible.
I want to be there mainly to talk to people, see how it’s like, maybe talk to developers that I enjoyed their games?! I heart the creators of Celeste are going to be there, that would cool. Vlambeer, Thomas Brush, Butterscotch Shenanigans, all of those I’m interested in exchanging words. And also all the industry people, like people from Blizzard and Naughty Dog maybe where I can ask for a job as a joke that is not really a joke. People from Unity, Nintendo, etc…
I just realized I’m paying to go to another country to talk to people. That’s… weird? and interesting. Anyway, there it is!
I typed a lot again and won’t have time to proofread and correct everything, so sorry if anything is rushed or with some mistakes! Se y’all next month where I will talk about how GDC was and about the Masters thing, which should change how this blog goes.