Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics


Dogurai is a 2D platformer packed with fast-paced action, dogs, robots and pure retro goodness. · By HungryBear

Devolog #1

A topic by HungryBear created Jun 14, 2018 Views: 241
Viewing posts 1 to 1

Well, this might be the first but not the last devlog.
I am Matheus Almeida, also know as Mock the bear, the programmer of Dogurai.
Since ive seen so many devlogs out there, i think its time to start one as well

That way, anyone who likes the game will be able to followup the development.
Im planning to write this weekly until the release.
Also talk about the current stage of the game, about solution we had, minor features
major bugs we encountered and so on.

On this very first devlog, i was thinking in bring to you something about the core of the game.
I said before, the game WAS beeing made entirely on c++ from an framework i made on college. 
That might made some think: wow, that is going to take ages! Sincerly not, it took me ages to build up my
framework to the point its usable. Might went a little faster if i was using unreal, unity or just another language?
Yeah, pretty sure. 

Yeah i know, i took the long way. But if i had the oportunity to go back in time, i would done the same thing. All the things i learn
from doing this (and the framework), is something that no book or teacher could teach.

The thing is, all of us are overloaded with work at some point, but not on a consistent rate. Some of the time
someone is idle while other have 1000 things to do. The most busy is the guy making all the sprites (<3), 
he is putting his heart and soul on this, and as you seen, came out very nice!
He is the one who have most things to do, so most of the time, i have litarally nothing to do unless wait for
the sprite sheet of some game thing. See, i can program a boss or some enemy without its sprites, but at some time
i will have to remake like 60% of it, because finicky thing like: the player should rise at the frame 4 and wait like
0.3833843 seconds until change for its frame (12,3) then go back and loop animation 7 times increasing the speed [...]

Most of the hard work to me is sync all the actions with the animations and some pixel/timing perfect alignment.

As i have some spare time, i keep rewriting some features to make it better or faster. One of the features i added during
a long idle time while the artist, Thiago, was doing a HUGE work on the tiles and enemys, i decided to add some Lua integration, 
mostly for modding. 


My motivation was at first create an easy way to make monsters, bosses and game mechanics without adding a new class/object every time,
that was getting really messy. My code style is more like lets make everything reusable or easy to change. Adding an final object
not mutable to the core game made me a little unconfortable. I mean, its the right thing to do, you add an object called Door, and its
juts a door. No need to pass some crazy data to it behave like a piston or something... That bothers me somehow.
If i did something like that, at some point, one object hour inherit from that and be just a door... sooo, yeah.

So, during long 2 months (some times i had to stall it to focus on the main game), i was working with some dark c++11 features
and dark magic (templates) to make a easy way to bind game objects and any other instance i want with two lines and it works on lua.
Worked so well, now most of the game mechanics are written on Lua and take me like, 3 mins to write something that
would take 30. I have less control of the game on Lua also i can make something simple as a door within a fraction of the time.
Now the interface seems stable (its been more than 2 months i found a bug), and here how looks like some code that
create a object that can be a door. When the player collide with it, set a flag, once the player leaves it become solid.

I know, the player can collide and go back, then block the way... Was just simple example.

So yeah, See you next week.