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!
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!
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).
There was also a showcase of their new Multiplayer architecture (which is a Unity + Google thing), it was on Unity Royale but it was also on Google’s Booth. Awkward Story. I saw it first on Google Booth and got really interested so I spent like 10 minutes talking with the person there (I think her name was Karen) and at some point I asked with which version this feature would come out and… proceeded to explain the release system Unity does. I have no idea why I started doing that as I’m not the kind of person that explains stuff out of nowhere. While doing that my brain just went like “Dude, you are talking with someone that WORKS at Unity Technologies”, so I just cut the explanation really short and simplified, said sorry and asked if it was correct. Apparently she didn’t care much and explained how the release was going to be.
But when I remember I did that I still feel like facepalming myself to death.
We need to talk about Unreal and Epic Games
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.
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.
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!
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.
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)
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!
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.
As I started to type from an AirBnb room in Sao Paulo, I realized this will be a really, really long update. Lots of things to talk about and some tech details I want to get into. I will try to point what I’m going to talk about on each section of this update, so feel free to read the points you would like.
Where I was last month?
A month seems like a big measure of time, to the point I feel the need to read my last update and remember where I was back then
I took a break from some projects (I didn’t even remember that!)
Made Cult Cultivation for another Weekly Game Jam – Said that I was coding an Idle Framework that I wanted to sell on the Unity Asset Store.
Released an Update for Pizza Clicker (V3.7) and said I was going to get back to it in February.
Said I was working on a new mobile game, temporarily named Mobile Dreamlands.
Announced I started an Internship on a local game dev company
Said I liked to work on Udemy courses
Cult Cultivation, the Idle Game Framework and Pizza Clicker
Yup, I’m grouping all the idle ones in a single topic.
Being very straight to the point here, I’m at that point where someone gets a lot of things to do and can’t handle everything. My original plans was to finish the Idle Framework before the end of February, which I didn’t, so I had to put this on hold.
Also, it’s already February 15th and I haven’t even touched Pizza Clicker V4.
About the Internship
Talking a little more about the Internship, it is on a company called Gilp Studios and I’m working on a game called Upside Down.
The project was originally on Unity 2017.1, we tried to upgrade for the 2018.3 version, everything was broken. Then we tried 2018.2. Everything was broken. Then we settled for 2017.4 LTS and it worked out well. Important Note: The game used to run on 30fps (not locked) and, just by upgrading the version, it runs on ~40fps, which is a good margin and should result in not having frame drops on the live version if we lock on 30fps, which is the default for Android Devices.
Me and the other intern made some things like developing a Colorblindness Mode, which was really well received since the game relies so much on colors. We had to also integrate that into the Localization Module, which was interesting because I had not ever seen how localization worked before. Another thing we made was some Interface Improvement, for example, changing some texts, recompile the Chinese Font to have the Colorblindness Mode in Chinese, adding some juicing on the UI buttons and fixing a transition on the music when you lost the game.
The music on the game was made using FMOD, I had never tried FMOD before, and boy, if you know how regret feels you know how I feel. It is so simple to work with and to integrate with the game to the point you have Dynamic Music very easily. I fell in love with FMOD and want to use it on every project now. In the end the transitions were just some minor transition timing thing, the lesson is that I love FMOD.
After all that I started working on the iOS Port, which is something I always wanted to try and, guess what, every dependency had broken while porting to iOS, I had to upgrade Google Play Games Services from 0.9.39 to 0.9.60, upgrade Firebase Version and Google AdMob version. After doing all that and refactoring some code (thanks #if macros) I finally got it to work on iOS.
After some more refactoring and code writing I managed to integrate Game Services on the game and add a Leaderboard, the remaining tasks would be doing the Achievements and IAP on iOS.
If you plan to release mobiles games, this paragraph is important. I’m currently stuck on the Achievements thing. The thing is that the way achievements works on Google Play and Apple Game Center are different. Google Play Games have three kind of achievements (Locked/Unlocked, Steps, Percentages) whereas Apple Game Center only deals with percentages, and when an achievement reaches 100% it is automatically completed and awarded (which does not happen on Google Play Games). So, how to effectively work with Achievements on Google Play and App Store? The answer is pretty simple! You build your own Achievement System and create interfaces to get percentages for ALL OF THEM, this way you can also display the achievements with your own UI, but that’s not the point. The point is to have your own small achievement system and have interfaces to send their data to Google Play and App Store. It’s really not that complex but needs to be planned ahead.
Anyway, back to what I was doing, Upside Down was originally only for Android, so there’s no underlying achievement system and all the code relies on Google Play. What I’ve done? Nothing. The story reached the present moment. I’m thinking on building an achievement system mirroring the Google Play Achievements and use them for the iOS Version.
These stories are not the most exciting, in fact, as someone who aims to be a Gameplay Programmer, they are pretty boring, but integrating with the stores, having achievements, leaderboards, having analytics with firebase, handling all dependencies and project version are very important tasks, it is that final 5% that gets the attention to your game. These are not really my cup of tea but doing them makes me value the ones who does them (I’m having flashbacks about my last job as a QA right now)
This was not even the longest part of the update.
Announcing Freshman’s Quest
Freshman’s Quest is a pixel platformer take that places on an university/fantasy mixed universe! Follow us on Twitter!
Some months ago I talked about a game development club I was a part of at the University, after a year messing with a lot of different things we started a real project, recently we decided to go public and start to gain some visibility to a project, the next goal is to have 2 polished levels and release a demo.
Here’s and old gameplay footage (the level design and level art are pretty much all different now);
It is a platformer, as simple as it can get. Our team currently consists of 1 Designer, 3 Programmers (which some of them sometimes dabble in art and design), 2 artists (which one of them also do Level Design) and a musician. The inspirations are, obviously, Celeste, Mario, Shovel Knight, Owlboy, Hollow Knight and all the recent games with some kind of platforming action.
The goal is to have a polished finished product and sell it on itch.io or Steam, if possible. The price would no more than $5. As we run to finish and polish the game, now we have to build a website, presskits, trailers, and all those things.
But it is a project that I’m proud of and teached me A LOT on working with groups, something that is really valuable. I’m thinking of setting its own Development Blog and creating a post explaining more about the project, if I don’t do that, I will post on Fourth Dimension Studio Devlog.
Mobile Dreamlands (temporary name) is some sort of mobile turn based roguelike game, the objective is to kill monsters, collect gold and go further down the dungeon. Your “success” is going to be measured by how far on Y axis you go and by how much monsters you kill. The amount of monsters you kill influences the amount of gold your earn.
I wanted to finish this game by the end of February and then work on a PC Roguelike game, which would be Dreamlands, but I ended up liking this project so much that I think I will stick with it until the end of April.
A basic core gameplay loop is done, I still have to polish and add content to it, but the 80% is done there. When I say I want to stick with it for a couple more months I’m saying I want to make it a REAL mobile game. I want to have it on Android and iOS, I want to have leaderboards, achievements, integration with Google Play Games and Apple’s Game Center, I want it to have monetization, but not in an intrusive way (which I hate about mobile games) and I’m even reasoning about searching for publishers, trying something with Gilp would be a good fit as I could make a more friendly contract.
I know that a roguelike mobile game seems a little bit weird but this project could really reflect some of my values on gameplay, how much fun it could give, how it could be a “real game” (i.e. not a casual money grab) on mobile, using ADS and IAP but not in a way that makes your experience worse if you don’t want to watch/spend. On a more personal level, I love turn based games and I’m thinking on having the aesthetics resembling Lord of the Rings, which is also something I love.
Talking about the art, I’m going to have a partnership for the art on Mobile Dreamlands! It is one of the artists from the game above (Freshman’s Quest), her name is Barbara Franco and she has an art studio in my city, called Hovel 102.
About the Monetization, what I’m thinking is pretty straightforward, about watching advertisement, it could give a second chance after watching, giving a temporary buff or maybe doubling the amount of gold in a run. Other than that, the gold is going to be persistent and you can maybe buy temporary buffs (i.e. having 2x gold for a run, 2x damage for a run, 2 turns for a run, more life, etc…), with that, having the option to buy gold with real money is also a thing.
Still on the Monetization topic, I’m thinking on having some sort of “DLCs” – For example, you can pay for $1 a new land with new enemies, new traps, new styles of design, different art, new music, etc…
Another idea is to have an In Game Shop, and my idea with this one (besides the buffs) is to have many different playable characters that can be unlocked with gold. I could make every character have a particular trait (more life, two movements per turn, more damage, etc…), but this is something I’m still thinking about, the real plan with the unlockable characters is to have aesthetically different playable characters, such as elves, dwarves, aliens (??) and maybe I can try the idea of having characters of different color, race and gender to add a little bit of representation on the game.
By working on this game for more time, I could also try to create some music for it, which is something I’ve been studying on the side and really enjoying.
I want to get technical about Mobile Dreamlands. It has basically two big systems: a level generation system and a turn based system. As I stated previously, one of my goals was to have an asset published in 2019, and the Level Generation System is a possible candidate, so I made some extra effort to have something good and reusable.
The Level Generation System
The Level Generation System is composed simply by three scripts: the Room, the RoomInstance and the LevelManager, besides that, there are three ScriptableObjects, the ColorToGameObject, RoomTypeToInstance and RoomGenerationMapping.
Room: It’s the abstract representation of a 9×17 grid, what is important is that it has a type, some examples of types is Start, Easy, Reward, Rest, Medium, Hard, …
RoomInstance: It’s the representation of a room on the Scene, it has a template and a ColorToGameObject – The way it works is that it receives a template, a template is a 9×17 image where each pixel represents a tile (I do them on Photoshop), then the RoomInstance iterates through this image and for each pixel, it gets its color, searches the color on the ColorToGameObject and instantiates the equivalent GameObject for that color, if there’s more than one GameObject, it chooses a random one.
Here’s an example of a template, the way it is configured, every black instantiates a random ground Prefab, the red points instantiates a random enemy and the yellow instantiates a “border”.
LevelManager: The LevelManager is the Big Boss. It has a RoomTypeToInstance and a RoomGenerationMapping – The RoomGenerationMapping is a ScriptableObject that maps a single room into an array of rooms.
When the level is initialized, it just adds a Start Room to the list, after that it searches on the RoomGenerationMapping for the mappings that starts on the Start Room, let’s pretend it adds an Easy Room and a Reward Room, the next step would be searching on the mappings for one that maps a Reward Room on something else.
I do this on the initialization until I have 5 rooms (totally arbitrary number), after that I do the same but on runtime while player progresses.
Having the Rooms List, the Level Manager has to create their Instances, it uses the RoomTypeToInstance to do that – which is a Scriptable Object that matches a room type to a prefab of a room Instance.
I liked the way this system turned out because I can add new rooms, new mappings, add more content simply by creating more ScriptableObjects, without having to hard code the logic. Even someone who doesn’t understand programming could use, although a Level Generation System would totally be aimed for programmers.
Smart pieces of code I couldn’t live without
As you could see, I’ve used a lot of Scriptable Objects lately, it happens that I learned how to use them better recently and I added them everywhere I could on this project. Scriptable Objects are really good for configurations.
Something I’ve been using a lot recently is Linq, a Query/Set Library which helps a lot, all these matches I talked about I’ve made using Linq, but the real smart boy I did this month, the month’s MVP is the RandomOrDefault():
I’ve had this idea when using Linq, the idea is simple, it returns a Random element from an array or a list, the beauty of this code is that it works for both data structures. If the list/array is empty, returns the default for that type.
Anyway, I’ve been writing for more than 2 hours straight. I’ll finish this update here! It was a long long one because I had a lot to report and a lot I wanted to talk about, but hopefully some of the things are useful!
I’ve talked about happily(never)after on the last random update and said I would talk more about it here, but there isn’t anything to say. I don’t know what I was planning to say.
Anyway, it was my fourth platformer in a row, four was a decent number of platformers to code in order to have a certain skill with it. What is more interesting is that the progress can be seen from one to another, I’m even thinking on writing a blog post about it (improvement by iteration, or something like that).
So I decided to do this for the Weekly Game Jam 76, themed ‘Afterlife’. It’s the game I’m most proud of at the moment and I really liked the feel and controls. I liked it so much I was thinking on making a bigger release based on this game. Spoiler alert: It would be a metroidvania roguelike platformer called Midnight Journey.
2019 Game Development Season is open! My first entry is Cult Cultivation, an idle game I made for the Weekly Game jam 78, theme was ‘Grow’.
I’m joining a lot of Game Jams lately, it’s just that I’m enjoying doing small/simple projects and effectively finishing little pieces.
Cult Cultivation is a really simple incremental game with just a few buildings to raise your currency per second.
The real reason for me to build it is that I’m coding an Idle Game Framework on top of Unity. I want to do that so I can easily create those kind of games, a genre I happen to like a lot, and to sell it on the asset store. Selling something on the Asset Store is one of my goals for 2019. To showcase this Idle Framework I’m planning to release two free games under Fourth Dimension Studio that would use it, the first would be a standard idle game (buildings and upgrades) and the second one would be more RPG based, monsters would be exponentially stronger and your “currency” would be your damage.
For our Monthly Pizza News, Pizza Clicker V3.7 is now live on the Play Store – It is a simple update where I added one more upgrade for each building/worker (7 in total); added a new worker that gives you 2 pizzas per second; added some more random upgrades (2 or 3 of those); added 6 more news on the newspaper section and tuned the price of the first upgrades.
I will return to Pizza Clicker only in February (2 weeks from now), my backlog includes adding a better monetization plan, giving more rewards and being less invasive and adding Version 4, which includes 2 new workers, tons of upgrades and news. Hopefully, with V3.7 all code needed for V4 is done, so it is just a matter of designing and adding it into the game.
dreamlands vs mobile dreamlands
I already said I’ve cut the RPG elements from Dreamlands and I would do a mobile game using its Level Generation and Turn Based System. With that in mind, I got me asking myself, what is effectively the difference from Dreamlands and Mobile Dreamlands?
Mobile Dreamlands is, well, some kind of infinite turn based roguelike runner. Dreamlands is an action roguelike with a progression and a hub, aiming to be more of a traditional roguelike (including having random chances of critical/miss on combat) and it would have more content.
To differentiate them even more, I will change the thematic for the Mobile Version (Mobile Dreamlands is just a temporary name by the way) – I’m not sure what it will be but I want it to be more upbeat because I’m tired of doing dark/mysterious/depressing concepts. Dreamlands is Lovecraft inspired so it is going to have plenty of that.
And again, I don’t have nothing to show here yet (I’m VERY late on that), I’ve just adapted the systems to work on mobile.
In some rather unexpected news I’m on an internship now, what is even more unexpected is that it is in a game company, it’s unpaid but it is 4 hours a day and very flexible.
Adding to the positives is that I will be able to learn with more experienced developers (they have this company for 6 years now). Hopefully in no time I will have my name on the credits of a game with more than 100,000 downloads, which is great, another positive point is that this internship gave me the opportunity to go to GDC this year, just speculation, there’s a lot to talk/decide yet, but it would be awesome and I wouldn’t have this opportunity otherwise.
And hey, if I have the opportunity to do an internship, even if it is unpaid, on literally the only game studio in town (Brazil things!), I have to accept, right?
And again I’ve written way more that I should have. It’s just that this month lots of small things happened, for the next I want to have just two things to talk about here: idle framework and mobile dreamlands.
Almost July: Got back to Unity after months into GameMaker Studio 2.
Gamedev Awards of 2018
Games I simply pretended didn’t exist anymore:
The Ace Programmer
Games I started in 2018 and suddenly pretended they didn’t exist anymore:
Match 3 Roguelike
“Not sure if this was the right thing” Awards
Earned my Computer Science Bachelor’s Degree
Quit my Internship to develop games full time and to apply to Masters programs.
Spend a lot of my savings going abroad and buying a Nintendo Switch and actually 2018 was probably the year I played videogames the most since my childhood.
And the award everyone was waiting for!
Newton’s Laws of Roguelike
Zombies on the Basement
Journey to the Light
OBS: ordered by finished date, each one my games are like babies for me, I can’t establish a hierarchy implying one is better than another.
Today was the day I realized I finished 8 game projects this year, being worked on a lot more than that. If someone told me January 1st I would have done this, I wouldn’t believe. It was 5 Game Jams (Newton’s Laws of Roguelike, Zombies on the Basement, Secludere, Journey to the Light and happily(never)AFTER), one learning project (Tetris Clone) that had the purpose of helping me in a job interview but I got rejected before sending it to them! That’s Life! And, finally, two published games on Play Store (Space Journey and Pizza Clicker).
The interesting thing about Game Jams is that they show your progress in your face, my last three were platformers and the improvement from one to another is amazing. Also, game jam entries can be turned into full games, it is something that still goes through my mind for Journey to the Light and now, happily(never)AFTER.
That’s pretty much my 2018 summarized.
I’m opening this session here because happily(never)AFTER is a game I finished today, for the Weekly Game Jam 76 and I never talked about it on this blog before (obviously).
The theme was ‘Afterlife’ and my entry is a 1 bit platformer! !!! CLICK HERE TO PLAY IT !!! Probably it is the game I’m most proud of at the moment.
That’s about it because I will be talking more about it on the next update.
What about 2019?
For 2019 I will set some simple goals and I won’t really get much into detail right now because I will have another whole year to talk about everything that is happening and that I’m doing.
Release 1 Mobile Game
Release 1 Desktop Game
Release 1 Asset on Asset Store
Start my Master’s (I’m optimistic it will work out!)
Quick 2019 Roadmap: If everything works out according to what was planned (it never does) – this is what I plan to release in 2019:
Pizza Clicker New Year’s Upgrade (Update/Android) (January/2019)
Project Mobile Dreams (Mobile Game/Android) (January/2019)
Idle Game Framework (Asset/Unity Asset Store) (January/2019)
Freshman’s Quest (PC Game, Platformer) (March/2019) – This is the game I’m working with a group from University.