About renatopp

Entries

 
Ludum Dare 32
 
Ludum Dare 31
 
Ludum Dare 30
 
Ludum Dare 29
 
Ludum Dare 24

renatopp's Trophies

Terrible Looking Pizza Award
Awarded by Blueberry Soft
on April 27, 2014
Brazilian Developer
Awarded by lowcade
on April 27, 2014

renatopp's Archive

Development of Small Board

Posted by
Monday, April 24th, 2017 10:20 am

When I first read the theme “Small World” at the theme voting, I thought in making a circular world again (just like my last LD game). However, everybody is gonna do that! So, after a 2-hours brainstorming, the 2 first hours of the competition, I came back with the game idea.

I love the aesthetics of Besieged. All levels show a small village or a small campsite merged into a white-ish background, creating a very cool mix of white emptiness and green alive. With this mixture, you have the feeling that the whole world is just that small portion of green you are seeing. I love that, and I would like to try something alike.

IndieDB_Banner1

After deciding the aesthetics, I had the feeling that a board game would fit well in this style, where the tiles kind of merge to the background. With a board game in mind, I decided the base rules, which are based on Zombicide: multiple missions, swarm of enemies, climax during the gameplay, varying missions, etc.

All set. A board game inspired by Zombicide and Besieged.

And as usual, even before the theme voting phase, I decided that this game would have something technical that I haven’t developed before. LD#30 was behavior trees, LD#31 was flocking algorithm, LD#32 was circular world and complex behavior trees, and, finally, for this LD#38 I wanted to give more time to animations – not the animation like in sprite sheets, but the animation effects like moving a piece, spawning an enemy, changing scenes, etc…

What went right?

  1. Although the game is not very good, I could finish it, and that was the biggest achievement this time. Sure, other Ludum Dares I worked as hard as this one, but this time the schedule was very, very tight – 3 hours to end the competition I was considering giving up because it missed so many things – but I could complete the base project scope that I have decided at the beginning.
  2. There were, impressively, very few bugs during the development, even the A star algorithm I could code in minutes without any problem. Most bugs I could fix in the last hour.
  3. I could do some cool animations and developed a nice animation scheduling (see below for more details). The animations are not perfect, but they were fun to implement, in special the enemy spawn and enemy movement are very cool!

What went bad?

  1. Very, very tight schedule so that I could barely finish the base of the game. Everything went as I expected, but who wants to barely finish something?
  2. Unbalanced and not fun, again. This is the problem I find in most of my games. I dedicate so much time on the mechanics (usually a bit complex) and the visual that I don’t the time to make it good. I should probably focus that on the next game.
  3. The game provides a few visual feedbacks only, but the player don’t have much idea of what is happening within the combat, or the player can’t even track the pawn actions properly.
  4. No music or sound, but that has always been my Achilles heel.
  5. I implemented a great customization system in which I can add new pawns, enemies, tiles, maps, or event different goals very easily to the game, but I only had time to create one map. If a jam game have lots of customization and lack of content, the customization was just wast of time.
  6. Developing a board game is really hard. I expected it to be complex and take a lot of time to code the game rules, but it is really hard to change and tweak how the rules work and interact during the development. If I will ever implement a board game for a Ludum Dare again, I will keep the rules very very very very simple.

Technical details

Some details of implementation:

The board game logic is completely independent from the visual and the user interaction, which made things really easy later. When the user select an action, the game (visual) asks the board (logic) for more information and render things. When the user perform an action, the game sends it to the board, the board perform and compute everything internally and returns a list of events that occurred internally. For instance, if the user attacks an enemy, the board returns the events pawn attack, enemy defense, enemy damaged, enemy killed, etc…

This messaging system is really great for board games, in special because I wanted to animate all actions, one by one, sequentially. Each message have a different payload, which is used to update the visual object properly. You may see the messages while playing the game if the developer tools is open.

Animations are trick to do. The problem with animations is that you must wait it to finish in order to continuing the operation of the game, thus, making its operation asynchronous. However, as any asynchronous system, other things are happening while the animations are working, such as the user clicking and moving the mouse everywhere (which causes a bug on buttons, don’t know how to solve that yet). To create this system, I added a job function attached to the scene, which can create multiple jobs and run that in parallel.

The job functions receives the duration of the job, the delay to start it, an update function which will perform the animation, and a complete function which is called when the job finished. Moreover, the programmer may stop every job at any time.

At last, I just want to recommend the Affinity Designer, it is a wonderful software for vector drawing, and it save a lot of time with the automatic exporting. I used it together with the Texture Packer and a small script to make the sprite sheet. It was really efficient: I save the document; the Affinity Designer export everything to a specific folder; then I just click export sprite sheet on Texture Packer (I only have to add new sprites if I create new ones); and run the script (I have a console ready to execute it), and done.

Images

screenshot-01
screenshot-02

teste

Tutorial: creating circular worlds

Posted by
Wednesday, May 6th, 2015 8:57 am

I just published a tutorial on creating circular worlds here. This tutorial is pretty simple and describes the technical details to create a circular world like in my game, democracy.

I hope it may be useful for someone. Enjoy =)

CLICK HERE PLAY AND RATE DEMOCRACY

Democracy – Post Mortem

Posted by
Saturday, April 25th, 2015 12:13 pm

Theme

I have have to say that I hate this theme. Really, there were so many good themes there, why this one could win? Damn you!!!! The theme isn’t an excuse to not do a game, but I spent so much time thinking of what I could do with this… A game not based on fights? Weapon is love? The weapon must be abstract! This is clichê? Oh damn… I finally came up with an idea, after 14 hours (counting sleep time)!

My game entry is about “democracy”, with quotes. The democracy and progress are the weapon of the government in the game, they want you to attack other species in order to “spread democracy and progress through the galaxy”. The player controls the invasions to planets inhabited by bugs with the goal to kill the natives and collect the planet resources.

The game is a very humble tribute to starship troopers (novel by Robert Heinlein and film by Paul Verhoven and Edward Neumeier). I wanted to create, somehow, the sense of order and progress presented by movie.

Development

I always start by the core mechanics because it is the main component of the game – if I can’t find time to make graphics, at least I have a block-based game.

I also always wanted to create a game in a circular world, that was my excuse. I had no idea how to do that, but at is was pretty simple. You have a world centered at (0, 0) with radius (r), than you can set the origin of all objects in the world to (0, r) and only manipulate the rotation to place than in the world.

After the basic world structure, I could drop structures, and these structures could create units. To control the units, I created a behavior tree to control each unit – the first time I really use behavior3js – and a behavior tree to control the bugs strategy. Figure below show these behaviors trees:

Behavior tree for player and enemy units – Click to see in full size.

Behavior tree for player and enemy units – Click to see in full size.

Behavior tree for the nests, its used to create orders to enemy units – Click to see in full size.

Behavior tree for the nests, its used to create orders to enemy units – Click to see in full size.

Then it came to particles and easing! Man, I love these two. The animation below shows the game at this point:

sample2

After 28 hours I started to create the sprites and visual things in the world. I was stupid enough to lost time adding some details to sprites that don’t even will see because the sprites are very small (about 20 pixels). I also spend a good time trying to create a futurist screen aspect, which ended up very cool.

I added some scenes, UI and some other effects to the graphics:

sample3

When the clock marked 5 hours to end the competition I started create sounds effects and music. I was desperate because of the time, I still had to adjust the levels of my game and I didn’t know what to do with sounds. At the end it was pretty simple and I didn’t do much, actually recorded some sounds with Audacity, generated most of them in BFXR and generated the music in SoundHelix.

I finished the game in the packing hour, the extra hour after 48, the time to deploy and write about your game.

Summary:

Good stuff:

  • Game finished is always good!
  • I’m using BTs successfully, even to control hundreds of creatures.
  • A circular world (always wanted to try).
  • Visually smooth and lot of cool PARTICLES!!!!!
  • Generative music and sounds worked well.

Bad stuff:

  • Balancing is hard as hell, I couldn’t do that properly.
  • Some details missing, especially the visual feedback when you win the game and the bug when restarting a level before a tween is complete.
  • Isn’t much fun due to balance, few types of units, and few levels.

I’m very critic about my games, I really fell for to not balance properly and create more content to the game, but well, it was made in 48 hours and this time the good stuff was really good! Moreover, this was the most complex and complete game I ever made for LD, it was really hard to do, thus of course some things would be missing.

.

PLAY HERE

.

logo-full

 

Democracy – Progress Report #3

Posted by
Sunday, April 19th, 2015 10:00 am

Didn’t sleep, can’t write anymore.

What is done:

– Base gameplay, IA, combat, graphics, effects, menus, credits…

What must be done:

– Levels / tutorials, balance gampley, music and effects

From:

sample1

To:

sample3

Democracy – Progress Report #2

Posted by
Saturday, April 18th, 2015 11:15 pm

20 hours to end.

My game uses “Democracy” as the instance of the theme, strongly based on Starship Troopers.

I finished the core gameplay, which contains:

  • All units and structures of the game;
  • Hierarchiral Behavior Trees to control enemy’s units and global strategy;
  • A basic behavior tree to control the player’s units;
  • The basic effects;
  • Constraints to buy and create structures;

What is in my todo list:

  • All other screens, including an introduction based on the movie;
  • All graphics and animations;
  • All musics and SFXs;
  • Balance and polish the gameplay;

Check it out:

sample2

Now, back to work.

Democracy – Progress Report #1

Posted by
Saturday, April 18th, 2015 3:27 pm

So, I finally decided what to do for this ludum dare, which has the theme “unconventional weapon“. My weapon of choice is “Democracy“, a humble tribute to Heinlein’s novel – and, of course, the Verhoeven’s movie – Starship Troopers.

Player controls an invasion operation at a distant planet, inhabited by big insects , in order to spread “democracy” through the galaxy. The player must exterminate the insects and collect the planet resources to win.

This is what looks like for now:

sample1

I’m in, but with a request to do…

Posted by
Wednesday, April 15th, 2015 2:08 pm

This is my 5th LD and I am in again. But this time I have a request for you: please do more games with artificial intelligence! I mean, you don’t have to make an awesome stupendous incredible AI, a simple and functional AI is more than enough. There is a lot of libraries out there, and a lot of easy techniques to use: minimax, finite state machines, subsumption, utility functions, fuzzy, behaviors trees, boiding… (note: you probably will want to take a look at these before the compo if you want to use without prior knowledge).

Try something new, try some new game AI!

My personal goal in LD is to use artificial intelligence algorithms as part of the core mechanics of all my games. I have 3 games out of 4 so far, and I want to increase this score within this compo. I’m planning to use Behavior Trees properly this time (especially if Companion wins!).

My tools:

Past Games:

  • Baa-ram-ewe (#31) my excuse to learn the boiding algorithm, used it to control nice little sheeps – my best entry so far, at 35th (overall classification) out of more than 2600 submissions.
  • Love craft (#30) used this entry to implement behavior trees, unfortunately I spent so much time on BTs that I couldn’t make a fun game (but now I have a BT library =]).
  • Beneath the Sea (#29) nothing special (complete redesign after 24 hours).
  • Hungry Flies (#24) trying to use genetic algorithms to evolute hungry behaviors.

Good luck!

Baa Ram Ewe – The most obscure easter egg in the entire LD

Posted by
Wednesday, December 10th, 2014 6:37 am

Check it out my entry for this Ludum Dare. Found the easter egg? It seems not so popular in the rest of the world as it is in Brazil, which is a shame =((

http://ludumdare.com/compo/ludum-dare-31/?action=preview&uid=15241

 

anim1

Baa-Ram-Ewe! Finished!

Posted by
Sunday, December 7th, 2014 6:41 pm

banner

Finally I finished my entry for this Ludum Dare (LD31, the theme is The Entire Game on One Screen). This time, I am so exhausted that I couldn’t do any progress report during the weekend, but, on the other hand, I could finish the game, including the mechanics, graphics and sounds.

My idea was creating something with artificial intelligence (again) and for some reason, after the theme announcement, I remembered that I never touched at a flocking algorithm and this would be a good opportunity for it. The game idea is to take some sheeps from one point and bring them to another, without letting them to leave the map or to be killed. The player uses the mouse to herd the sheeps, which will behave accordingly to their neighbor mates and some tiles in the environment.

As tradition, I writing here a summary of the competition:

What was good:

  • Could finish the game!
  • Cute sheeps with nice behavior;
  • I could follow the schedule without any change;
  • I could do some music and sound effects;
  • I drawn my first tileset!

What wasn’t good:

  • Lot of problems with collisions ;/
  • Spend a lot of time with rotation math (shame on me);
  • The sound effects are pretty limited and the music is too simple;
  • The graphics are cool but some things I’m hating, such as the windmill;
  • I had to redraw the tileset 2 times!

Which technologies and techniques I used:

  • The sheeps are controlled by a flocking algorithm, (or boid algorithm) as described here and here;
  • The graphics were made in Inkscape;
  • The map were built in Tiled, using a 32×32 tileset;
  • I recorded the audio for the sound effects in Audacity;
  • The music were made in Guitar Pro and converted in audacity;
  • CreateJS and Creatine were used as programming base;

anim1

(VIEW LUDUM DARE ENTRY | PLAY BAA-RAM-EWE)

My Experience Within Ludum Dare 30

Posted by
Wednesday, September 3rd, 2014 8:32 am

I made a post in my blog telling my experience within this ludum dare.

http://guineashots.com/2014/09/03/my-experience-within-ludum-dare-30/

 

TL;DR version:

  • I made a game based on behavior trees, a technique for game AI which I implemented from scratch (spent >20h on it);
  • The game is about connecting people;

GOOD:

  • First Ludum Dare that I didn’t change the plan in the half of the compo!
  • Behavior Tree worked very well and there were no relevant bug at the final version of the game;
  • Despite the time I spent on it, the visual of the game is pretty good;
  • There are very few games on Ludum Dare that uses AI as this one, I’m very proud of it;

BAD:

  • Constant fear of failing to finish it;
  • Very hard to model behavior trees programatically;
  • VERY hard to debug behavior trees without visual helper;
  • Mechanics is incredible boring and repetitive;
  • I couldn’t finish several aspects of the game, but the worse was the sound and not fixing the crap mechanics;

banner800x300

(VIEW LUDUM DARE ENTRY | PLAY LOVE CRAFT)

Finally! Love Craft!

Posted by
Sunday, August 24th, 2014 5:56 pm

Finally done! And now with a name: Love Craft!

I wanted to do something not related to space, since most of the entries will do that. So I thought in connect worlds metaphorically. “Everybody wants a person to share a life, to found a family, to fall in love, to marry, etc; and when this happen, one person connects its own world to the other”.

I’ve lost so much time on Behavior Trees that I couldn’t add the sounds, what is a shame. However, I kept my initial plan (first time) and I enjoyed the resulting game. It is not that fun, but I liked anyway.

ss1-menu

ss5-gameplay

(View Entry | Play Game)

Progress Report

Posted by
Sunday, August 24th, 2014 11:34 am

Finishing the game mechanics… No time to lose.

7ce23ea7a94e9f112a55c65bc9350f58

Morning Report

Posted by
Sunday, August 24th, 2014 1:22 am

I’ve finished the graphics but some essential mechanics are still missing. I chose to take easy this night, so I postponed the important things to the day-development.

82a6326523429f221b12d40a5631ac53

Totally late on my schedule!

Posted by
Saturday, August 23rd, 2014 6:51 pm

So, I’ve learned that is not a good idea to implement from scratch a behavior tree library to the LD. I also have learned that debugging a behavior tree without a visual interface is very, very, very, very, very hard. Anyway, I finished the behavior tree implementation and the behaviors are almost finished (I still have to test and change some parameters). Now I have agents that run alone in the park, find some company and act in a conversation.

860797ff7a74cd6c254297e3ade0c157

Still a lot to do!

My planning for [untitled game]

Posted by
Saturday, August 23rd, 2014 5:49 am

I’ve just finished the planning for my game (still untitled)!

chibi_plan

Well, even before the theme, I was planning to base the game on AI in order to use some behavior trees. Thus, I was hoping to include some autonomous agents to the game. So, when the theme was revealed, I had this idea:

Everybody wants a person to share a life, to found a family, to fall in love, to marry, etc; and when this happen, one person connects its own world to the other.

My game aims to connect worlds metaphorically: chibis walking in the park looking for their unknown loves while you protect them from obstacles (such as bad matching and meddler chibis).

It seems that this is an ambitious game and I hope I can finish it in this weekend.

3rd LD, I’m in

Posted by
Thursday, August 21st, 2014 12:28 pm

This is my 3rd ludum dare and I am going to use the same tools as always:

Independent from the theme, I’m hoping to use behavior trees to control some NPC’s (I wrote a 3-part tutorial on behavior trees on my blog) and I am praying to all gods to elect “You Are Already Dead” as the final theme!

 

[cache: storing page]