[LudumDare] #33 – You are the Monster

Empowered Darkness

Empowered Darkness

 

And another LD entry added to the other one! My fourth. I took quite a bit of time to write this post but because I am currently involved in my second year of Master’s Degree, I was quite busy. I would like to say too busy due to the extra challenge I was involved: JLPT. I wanted to push my learning of Japanese a bit further than I was usually learning it just to keep me working on my Japanese skills. Because of that, and a lot of stuff at ENSICAEN (projects) as well as searching an internship that really interest me, I was currently totally busy. Now, the JLPT3 has been taken during the last weekend. I am now a bit freer. That is why I am writing this beautiful summary, just some days before LD34!

Trello – Organization of the tasks

The goal this time was to create a good mood as well as always trying to innovate. The graphics was also a part I wanted to be a bit better than the other participation. Because of that, I strongly thought about my game before writing any code.  The first problem was the theme “You are the Monster”. Not really inspired, just some classic ideas that I didn’t really like. One thing was sure: I wanted to use my new system of parallax. And then, I came up with an idea of Dungeon, but where you are the MonsterS. Yes, the MonsterS. Not really happy with it but it was the best idea I got.

The player will control 3 different monsters. One will explode when touched or activated. One will push the player with a strong breath, doing no damage. And the last one will spill out a flame line just ahead of him. The goal will be to manage to kill the really powerful Hero who is coming to destroy your dungeon and get the golds you stole. Each time you kill the hero, you will get his own money and build new floors deeper and deeper. The limit was seven floor due to the limitation time. Each floor has its particularity. One is perfect to push the hero in the lava. One is perfect to attract the player in a tight way and explode. And obviously, a special LD floor was created. The cool feature I had was the name of the Hero. The name pool is quite interesting and if you are lucky, you can get a Moon Moon hero. Of course, your monsters have only a few HP and will not survive eternally. So, you have to cooperate rightly to kill Hero after Hero. The end is when you failed, a day, due to the grinding of the Hero power. Thus, you will see who stole your money and who you killed. A special end message can appear if you are killed by Moon Moon or Mike Kasprzak (Ludum Dare host).

Game footage

I chose to start with some basic graphics and 3 maps in order to make my system working. And as always, I started to program the whole game. The first thing was to do the different sort of AI for the different monsters the player will have to control. Collide, and every simple stuff was also done in an hour and a prototype was there. After 16 hours, the basic prototype was fully done. Everything was going well and I starting to think about the design of the monsters. I decided that they will be some kinds of robots and that’s all! I am not a great designer when it comes to create some sprites. I will have to train myself I guess. The first 24h done, I took some sleep, with 75% of the design done (including the retake on the tiles). Five hours of sleep later, I worked on the level design of the last levels. I had the different indicator and started to polish the game. The end screen as well. In the last 8 hours, I created the SFX as well as the remaining missing graphic part (Hero sprite :O). The title screen was done in the last two hours and was quite interesting! One of the best I made certainly. And at last, the sprite of the treasure chest was done in 10minutes due to an oversight!

In the end, I am pretty proud of the game I did. The mood is really great even though the theme seems to be a bit badly interpreted. However, the result are there and I can see that it was not that bad finally! Best entry I did!

#203 Innovation 3.44
#293 Mood 3.24
#333 Audio 3.00
#337 Theme 3.59
#394 Humor 2.88
#410 Overall 3.19
#470 Graphics 3.09
#547 Fun 2.91

Innovation was one of my priority, and that’s it! #203 is the second best rank I got in this rating (First was the last entry, LD32, #137). My preferred mark is the Mood! 3.24/5, first time I was able to score that high in that top! Really happy about it and the game deserves it. As always, Audio and Graphics are on the same marks. I thought I did a better job than the previous LD regarding Graphics, but it doesn’t sound like it. Certainly because of that crappy lava! The theme was “well interpreted”. Simple, but fine enough I guess! It was a mark that I was really waiting for. Indeed, since my first entry, I was unable to get a better mark than 800 and higher (really bad mark by the way). This time, I scored #337, in the top 30% of the people, which is totally great! A remember about the #189 I did on my first entry :/. Last but not least, the Fun mark. Not really happy, but not really sad about it. It remains the second best mark I got in such a top. The best one was on the last LD with #349 and the other marks were really high (900 and more). I will certainly have to focus on it a bit more than I did this time!

In the end, the overall mark is my second best one, really close to my best one (LD32, #401). A bit sad about it because I really feel this game deserves to get a higher mark than my other participation due to the mood and the whole stuff. I took really the time to refine the game but it was not enough. Not funny enough I suppose. One thing is sure, my marks are homogeneous which is the first time in my LD career!

End screen

Coming next weekend,  LD34 will certainly be a “hit or miss”. I want to create something “out of the box” or at least not using the thing I already have. I want this time to create something in just a few hours due to my schedule (Internship are my priority!). Let me surprise you!

Play the game: http://ludumdare.com/compo/ludum-dare-33/?action=preview&uid=37076

[LudumDare] Recap of the #30 #31 and #32 edition.

At the beginning, it is important to put the figures of the last 3 LD :

LD 30 : 1493 compo entries (Connected worlds)
LD 31 : 1364 compo entries (Entire game on one screen)
LD 32 : 1353 compo entries (An unconventional weapon)

As we can see, it’s globally balanced. I will balance them anyway when I will put my personal results.

The ludum dare 30 was my first one and it is normal that my game was not really totally finished. As I said in a previous post, the troubles were that I had a lot of ideas and I wanted to add all of them in the game. But due to the time, only a part of them was in and the remaining ideas stayed in my mind. The other problem is my game was not fun, not polished and too complicated. I was almost the only one who could understand my game. But anyway, a lot of things was made during this edition and I was proud of the amount of things I programmed.

The ludum dare 31 was a short edition for me because of exams on Monday. However, I decided to program an introduction to my game axed on Frozen. This cost me a lot of time in my 28 hours available (8 hours at least). The problem was that my game got no real mood. A little bit, but not enough. The story was weird and the game was again too complicated. But complicated also for the programming part because a lot of random things needed to be balanced. My boss was amazing in the programming side, but not as amazing as I wanted in the player side. The global idea was innovative because the boss was able to be better and better, fight after fight. Exactly how I wanted it. The theme was normally correctly implemented but, due to the introduction, this was not really the case. Again, I need to focus myself on a simple game, not a complicated one. And also, an implicit tutorial would be better than many tutorial screens.

The ludum dare 32 was a full edition with my new framework named EasyLD. Instead of Löve2D, I programmed with Drystal, a lua game engine. This edition was really good because I wanted to make a better game than the first two entries and also because I had a great game idea. However, the colors/mood were not implemented and no story is in the game. So it is just a game, no more. I need to focus myself on it next time. I respected the rule of “make a simple game” but because of the theme, I was under the obligation to add a boss part, which was a little bit bad. The remaining things were great but next time I have to work on the mood and story, added to the theme. If I can do this, I will be able to make an amazing game. Think about it a lot before programming it, and you will be able to make something great!

Now the results: (I balanced the top on 1500 entries to show the real improvements)

Overall

  1. LD32 3.33 #401 (444.5 : 30%)
  2. LD30 3.02 #746 (749.5 : 50%)
  3. LD31 2.68 #1025 (1127.2 : 75%)

As we can figure it, the 32th edition was clearly the best one with an entry in the top 30% of the ludum dare programmer. I can be proud of it because it was my goal. My first entry was on the average, a good one so. And the LD31 was clearly a bad one because of time and the complicated features I tried to implement instead of making something fun. Next one, I will try to be on the top 25% at least!

Now, the best category in which I do the best things, each LD :

Innovation

  1. LD32 3.70 #137 (10%)
  2. LD30 3.29 #458 (30%)
  3. LD31 2.10 #1126 (82%)

At first, I have to say that the LD31 was really innovative in the way the boss can evolve but the most part of the players which play my game was stuck on the introduction and don’t skip it, so the innovative rate is not at all representative. The innovation can be read on the LD31 post. For the two other, I am happy to see that each time I am on the first part of the top. Best entry was the LD32 edition were I was able to create a really good game. Top 10% is I think something that I want a day to get for the overall part. And I have the skills to do it. I am just a little bit too quick at the beginning of a LD. I need to think of it a lot before starting the programming.

Fun

  1. LD32 3.31 #349 (25%)
  2. LD30 2.62 #918 (61%)
  3. LD31 2.45 #1034 (76%)

It was my goal for the Ludum Dare 32 edition, and I did it. Top 25%! Regarding to the last two entries, I was really bad in this part because my game was too complicated to be quickly understadable. I was able to create an implicit tutorial which allows the player to directly play the game without reading anything. This is something I need to keep in my next entries.

Theme

  1. LD30 3.75 #189 (12%)
  2. LD32 2.87 #880 (65%)
  3. LD31 2.73 #1131 (82%)

Each time, the LD31 is the bad one, but it is understandable enough because of the introduction here. I made something really amazing during the LD30 which consists to link two worlds. This is why the theme was really well-implemented. For the other ones, I said I had no idea how I can link the unconventional weapon theme with my game enough to get something funny. I keep the funny game I had and I added the theme to it which was not enough. However I limited the bad rate. Just good enough. This is something I need to work on for the next entry. But it really depends on the theme!

Humor

  1. LD31 2.80 #354 (25%)
  2. LD30 2.71 #337 (22%)
  3. LD32 2.28 #785 (58%)

I didn’t add a story to the LD32 game, so the funniest part was to kill the boss. Not enough at all. However, when I was able to add a story, I was able to generate some humors! And I think it is great enough! Top 25% on both LD where I created a story, so if I can develop a real story around it, I can get a better rate easily. It is not that complicated! Story remains the master word for the next ludum, with the word MOOD.

Mood

  1. LD30 2.82 #700 (47%)
  2. LD32 2.72 #729 (54%)
  3. LD31 2.41 #927 (68%)

The thing is clear. I am just on the average, no more. I never add a real mood to my game, just a little one which is just enough but not as clear as a real one. I need for the next ludum to create a game where the Theme, the humor and the mood fit well. For that, I need to get a story, a good theme implementation and a good choice of design! If I can, I will be able to get a master piece. The mood is the key if you want your game to be great, to be remembered. Of course, the fun part and innovative part is clearly something that you need to have. But as we can see, I am able to be really good in innovation and fun. So, let’s work on a story, a mood which can be remembered my game in the mind of the player. A mood where the player feels totally in the game. Hard I think, but possible if I can think about it a lot before programming! I have the time, I know it. Don’t hurry yourself.

Graphics

  1. LD32 2.74 #736 (54%)
  2. LD30 2.67 #827 (55%)
  3. LD31 2.35 #1015 (74%)

One rate where if you make a great game, you will get a better rate even if your graphics skills were bad. Why? I don’t really know but you can see it with the difference between LD31 and LD30. The LD30 graphics style were really bad, and the LD31 graphics were clearly better! However, the rate are the opposite. You can see the same between LD30 entry and LD32 entry. The graphics were clearly better with some AreaAnimation and SpriteAnimation, however, the rate are the same. Weird. It sounds like if you make just average graphics, your rates in this category will depend on the other rate (overall/innovation). One thing is sure, I need to homogenize my graphics around a mood, a theme, a story. I need to choose a style and when I chose it, focus myself on it. The LD32 entry was not at all in this definition because the upper part was abstract style and the bottom part pixel perfect. I will think about it but it is not a priority at all. Mood first.

Audio

  1. LD30 3.03 #367 (24%)
  2. LD32 2.92 #433 (32%)
  3. LD31 2.54 #655 (48%)

The audio part of my games seems to be just enough to be well rated. A top 33% if my game got a high overall, and a bit less if my game is clearly bad. But always over 50%. I think I will keep this way because audiotracker.py with a combination of track for LD31 helps a lot to get a good music in a short time. I want to work on it, but I don’t have the time now. I will see if a day I can be better. Not now. SFX is good and the idea of voice “KO; WELL PLAYED…” was really great. I will keep them and SFXR too. 3.03 is really a good mark !

So, in conclusion, what can I say. A master word for the next entry : MOOD. And trying to fit the theme. So I can recapitulate this on the following list:

  • Story: Create a great one. A little one.
  • Mood: Around the story, and fix it.
  • Theme: Think about it before and after the beginning of the LD. Don’t hurry.
  • Innovation: Be as innovative as you were.
  • Graphics: Focus on the mood, a unique style.
  • Audio: Be as always. It is fine.
  • Humor: If you get a story, I trust you.
  • Fun: You show us you can create a funny game. Do it again.

Thank you for reading. This article will help me a lot for the next entry! I need to work on EasyLD now and my Internship. Of course, I need to keep the Trello part of LudumDare because it helped me a lot. Normally, the next entry will be more amazing at the last one! Keep going!

[ENSICAEN] TunnelGL, One week of OpenGL

tunnelGL

The project was to create a simple game using OpenGL. At this moment, our skills in OpenGL were really limited. So we needed something as simple as possible as a game. And then, started to improve it! We got a week to develop this game. We were in a team but only 2 of us was able to program the game. The third one created the ship.

This project was launched in a week where we didn’t really get the time to develop such a game because of the end of the scholar year. We wanted to finish the year project before starting to develop this game and that is why I was not really sure if I will post something about this project. But the things were better than expected! We got a free day on Monday, therefore the weekend was pretty long and we were able to program a lot of things.

We chose to develop a game where the player is in a tunnel and has to avoid the obstacles. The tunnel was programmed to be a straight cylinder with the same radius all the time. The colors change with the Z position of the edge. We got something like a rainbow, and it was pretty funny because it was just a test to see the different portion. The obstacles were design to be white, with a gradient from the edge of the tunnel to the upper edge of the obstacle. The effect we got was an “ice” style. We added a spot light to illuminate the upper edges of the obstacles. Then, the ice effect was completed with a beautiful white on the top!
For the obstacles design, they are not an object we added to the tunnel, they were directly generated during the generation of the tunnel. Therefore, The tunnel is generated with holes and obstacles by a matrix which represents a portion of it.

HUD and Game

For the game, we adjust the speed of the player to be increased with a boost (Only the Z component). And we adjust the angular velocity with the Z speed to allow the player to success in every section of the tunnel he encounters on his way, whatever the speed he had. As I said earlier, we cut the tunnel in sections. A section is loaded with a matrix and a matrix can be design in a .txt file with your own skills. The limitation are 12 sides and a multiple of 20 for the length.

Now the ship: you can go left, right and boost. When you use the boost, the camera comes closer to the ship to simulate the propulsion of the ship. We added a camera shaking to improve this feeling. The higher your speed is, the closer to the cockpit you will be. For the score, we double it when you are boosting your ship. Elsewhere, it depends on the speed. Each 10 sections, the tunnel levels up and generates harder section. From this moment on, we got a beautiful game, very polished and programmed with a lot of love during an incredible weekend of 3 days! We added some sound effects and there it was.

I was really passionate during the development of this game because I really like OpenGL. It was a great experience. I think now I can start to make a new game using this technology. A goal for the future! :D
When this game was developed, I wanted to add some stuffs to it. But my project manager didn’t find it really interesting enough to be added. I will develop them here now because I forked the project to save my work on the new functionalities I did during this weekend. The first one is some curves for the tunnel and a variation of the radius. The curve were too straight to be added but the variation of the radius were perfect. But it was not the same game because these functionalities change the game a little bit too much. So, I will put both versions available to download at the end of this post. Another improvement was the following of the side by the ship. In the first version, the ship follows a circle around the center of the tunnel. In the modified version, the ship follows the form of the tunnel, so you can feel the ground of the tunnel. I like it, but as the ship flies, this is not really something my project manager wanted. :>

Release version : 1.0 TunnelGL (Windows)
Alternative version : (Coming a day when I will get the time to update it)
Github : https://github.com/Aomeas/tunnelGL

Ideas for the future :
* Generate a portion with a number of sides different.
* Make a real curve
* Propulsion effect on the ship
* Redesign the ship
* Create a real music

[LudumDare] #32 – An unconventional weapon

Titlescreen

Titlescreen

After a full week of work, I am now able to start speaking about my entry to Ludum Dare 32 edition. This is my third participation, and as we say : Good things come in threes!
For the first time, the theme didn’t inspire me so much. I had some troubles to figure it in my game but I thought about it alot and I found a way to implement it. The game I wanted to create was a game where you need to stay in collide with a way until the end. That was the idea. I used some stuffs to help me during this LD like Trello, papers, good organization of my screens. My goal during this LD was to make a better game than the two others and to make a game which will need no tutorial (implicit tutorial was made o/ ).

For the weekend of April, 18-19, I was in my family house. So, I didn’t have my home computer but a laptop with only one screen. I brought my keyboard and mouse of course to help me a little bit with this exceptional disposition. I slept less than 6 hours, so 42h of programing + one extra hour for the release/debugging of my game.

Trello, used to keep my ideas and to follow my advancement.

For the first time, I was using EasyLD, my framework dedicated to LudumDare games. EasyLD is always in development and I changed/updated some stuffs in EasyLD during this LD. I need to commit them when I will be able to check them up. Also, I was using Drystal instead of Löve2D for the release and debugging of my game. The game works under Löve2D due to EasyLD but in a darker version. I need to check why in the following weeks but I think the error is due to the color buffer which is not free/reset. Anyway, it is not the place to figure it out. I got the time to use every functionality which were in EasyLD like MapEditor, Anim8Editor, SpriteAnimation, AreaAnimation and others! I earned a lot of time and that is why this game is the best of the three I made. But my thought is I lost a lot of time due to the no-inspiration of the theme. During the first 5 hours of the second day, I was just playing my game, thinking a little bit about it but not really passionate. Hopefully, after a shower, my mind was better and I was really motivated.

The first day, I was able to get in the first hour the spirit of my game (8 hours). I had the time to add some tweening and color effects and started to make some designs by the end of the day. The programing of the bottom path was a little bit boring (with the boss too) because of the theme. That was a good idea, and I love my sprite animations and the way to beat the boss. But the path with the tower (with the grass and the bonus) were not really an interesting idea and were just here to add a mood to my game. A story. Because I needed to have something between the beginning and the boss. Maybe a full boss fight will be better, but for this kind of game, just the upper part can make a really good game! The theme is important, that’s why.

The second day, I was starting to be bored. But thanks to the shower and my trello, I was able to do some stuffs anyway and to start to add a lot of levels (48 at the end + 1 for the boss). But the game design of some levels was a little bit repetitive. I hadn’t enough of time to program all the things I thought like a cursor for the player which throws a “boomerang” which helps you keep in collide with the path. The SFX and musics were added during this day. I was using audiotracker.py this time, with the classic SFXR. After that, I polished a little bit my game and added a titlescreen and an endscreen in the last minutes of the chrono. One thing was missing in my game : particles! I wanted to add some when you are grinding the path, with a sound. And some when the boss was dying or was hit! That could be funny! However, a lot of stuffs was made and I am really happy. The feedback are going well currently! We will see the result later.

Bonus, path (upper part) Path, tower… (bottom part)

But now, I need to focus on what I learned and what I need to focus on for the next LD.
Firstly, my graphics skills! Incredible. I never thought I will make some really nice graphics if I take the time to make it. That’s the best point I think during this LD. Thanks to AreaAnimation of EasyLD, I was able to animate easily my sprites without creating the sprite animations one by one.
Secondly, EasyLD was almost perfect! Just a bug with timer sometimes, but I solved it fast enough during the LD. Need a particles module and that will be perfect.
Thirdly, I programed more than the other LDs with at least 42h. Last time I wasn’t able due to exams. This allowed me to keep focused fully on my game o/ And had the time to play/polish it a lot.

Level Boss

Now the bad part, there are always some bad parts! And it’s better to figure them out now.
Firstly, EasyLD was almost perfect, as I said, but needed to be developed a lot yet. Some critical bugs appeared during the LD weekend. I fixed some of them, but I need to check them one by one now.
Secondly, the theme didn’t inspire me a lot. That was a problem. But I had an idea of a game. Therefore I linked the idea to the theme and this was great enough. Maybe thinking a lot on the potential theme before the LD will allow me to come up with a good idea instead of just linking the theme to the game idea I got.
Thirdly, because good things come in threes. To polish more, more and more would be better. But program a SIMPLE game. This one was a little bit too huge because of the boss part! I lost a lot of time on the bottom part of the screen. A game with just the upper screen would be better! I knew, and I tried to focus myself on one idea. I did it, almost, but because of the theme, I had two parts. So, it wasn’t a failure.

At last, I can say that a day I will be able to make a beautiful game with a beautiful game design and a beautiful story. Yes, something was missing during this LD, a Story. I need to put the spirit of the player in my game and play with it. I wasn’t able during this LD but this is my goal for my next entry (August, I will be here!).
The game is directly available on the web (Goutye.com) and my entry can be seen on the ludum dare website.
(The music disappears if you change your tab, Drystal/IFrame bug).
Just above of this paragraph, you can find the playthrough of my game and a little bit earlier, you can find the timelapse of the LD32 weekend. Hope you will like my game. Don’t hesitate to let a comment, I am always fond of advice!

Controls: Mouse (Best device, touchpad is really hard)
On the titlescreen : 1 2 3 or 4 to go directly to the world 1 2 3 or 4 if you are stuck and don’t want to try again.

End of the school year, the rushing hour!

Hello there,

The biggest part of the school year 2014-2015 just began on Monday and it will end in the middle of april (with the Ludum Dare 32 on April, 17th). A lot of thing are coming in the next weeks. If you are a little bit curious, maybe you saw that some projects are almost ended. And yes, it is the case. That is why I am writing a post about the stuffs which are coming soon!

Let’s begin with the big school year project : Implementation on GPU and optimization of some image processing algorithms (Since November 2014).
This project approaches its end (on April, 9th we got a meeting with the company named ADCIS) and the final oral presentation is planned on April, 10th in the side of ENSICAEN. We are currently writing the report (90% of is done) and we are starting the oral presentation. Which means a lot of work, because of the two orals which are coming next week! A post in this blog will close the project after April, 10th.

Another project is EasyLD! This project is not done and it will not be done before April, 17th because it is something I want to improve in the next following months. But I want to launch the first version before this date, to start LD32 with it. The remaining thing are the camera and the software for area animation! One will end before April, 10th and the other one (software) is planned for the week before the LD32 date. I am very proud of this framework and I hope it will be fine for LD. The problem is I haven’t really tested this framework. I just wrote some tests and it was ok. But maybe when I program a game, some bugs will be found. That’s why I need to test it before LD. Maybe during the holidays (starting on April, 10th).

Another ENSICAEN project is currently in development! An OpenGL game. The beginning was on March, 31st and the work is really huge. That is why EasyLD is frozen until I finish developing the OpenGL game . The problem is I am currently waiting for some parts of the game to continue to program the game (Camera for example, a big feature). It sounds possible I will need to take this task on my own if we have no commit about it from the guy who has to do it before tonight. I really love developing a game with OpenGL but I am stuck because I cannot program whole the game, even though I am able to do it. I have to share the work, for the sake of the group. That is why I will make an OpenGL game another time on my own after LD32. One thing to know, the end date is on April, 7th just a week after the beginning (And we currently have no camera. I am gonna be in a hurry during this weekend). (If the result of the game ends in a beautiful game, I will post it here, but if it’s not the case, I will make it better before this!)

So, as you can see, it will not be really easy for me to be the best on all of these projects. Moreover I have some exams during this week. Some of them are done easily enough. Two more tomorrow and I will be able to work on my projects!

Even though it is a really huge week for work, I am really happy to do it and I love it. I hope all of these projects will end as perfectly as possible! I will try! :D

[ENSICAEN] EasyGame : Boardgames Framework

   EasyGame – A Board Game Framework

 

The boardgames framework was one of the biggest projects of the 2nd year at ENSICAEN. (Junior year of Master Degree)
The goal was to program a framework which allowed a developer to create a board game as easily as possible. The client wanted to have a network implementation, a game manager and two games : Uno and Sheep war.
We were in a team of 4 persons and I was the team manager. The time allocated to us was only of 8 weeks. Thus, this project was really ambitious for the time given. To begin this project in good conditions, we decided to use a version manager (Git), a task organizer (Trello) and an IRC chat to stay in touch during holidays and weekends (Also a bot to save the pull requests when the integrator was not here).

sheepwar

Sheep war

Week after week

For the first two weeks, we focused ourselves on the UML modelisation of the framework. For this, we tried to develop a first game, “Tic tac toe”, to see what would be required in the framework, and which part would have to be developed by the user. With this, we started developing the primitive classes of the framework like Player, Board, Entity. Then, we tried to develop another game named “Othello” to see if our UML modelisation allowed for the implementation of any board game. At this stage, we had a first basic framework to develop some easy board games.

The next two weeks were focused on the implementation of the network features. We thought about it a lot and and validated the final version just at the beginning of the 3rd week. We had two possibilities at this moment,  implement a complex network system which would only send a list of actions between the client and the server or implement an easy network system which consisted to send the current gamestate to the client, then the client would send back the modified gamestate and so on. We chose the second one, the simplest one, because of the time remaining for the project. The problem with the second one is that the clients couldn’t interact during a turn that wasn’t theirs. However, for some board games, this kind of interactions can be required. Fortunately, there are in most cases ways around this problem. So, at the middle of the 5th week, we had the network implemented. We adapted our two first games, “tic tac toe” and “othello” in a network version and it worked well. We were proud of it. At this points, we started being very confident in our ability to finish the project in time.

Class diagram

Class Diagram

Between the week 5 and the week 7, we needed to add some features to the framework. At first, a plug-in feature. On the left side of the screen, you can create and add plug-ins for your game. An example for the Uno is the button to switch the color of a “+4 Cards/ Switch Color” card. In the Sheep War game, we have some plug-ins to rotate a card, to flip a card and one to indicate the player’s color. Secondly, we added the support for artificial intelligences. And thirdly, we continued to develop the game manager and adapting the first version with the network implementation. At the end of the 7th week, the game manager was able to download games from a server hosted by one of us, to update the games, to add a game and to launch the games with players who are either local, distant or an artificial intelligence. We also added a little feature which allowed the programmer to change the order in which the player play. In the side of the framework, the Sheep war and the Uno were programmed with the framework. The sheep war was longer than the Uno to program correctly because of the cards and the number of rules to compute the score. The Uno was programmed in 4h and 2h added for the graphic side. Thus, the required goal “Develop a framework to program board games as easily as possible ” was reached.

gamemanager

Game Manager

During the last week, the major part of the work was cleaning the code up. We also developed an AI for Uno and an AI for Sheep war. We improved the design of the game manager and the UI in a game. And one of the best test of our framework was to adapt a chess game from a previous project of one of my teammates to EasyGame. He succeeded in adapting it in only 5-6h. After many researches on a solution for the remaining bugs, we were out of time for some of them. We currently have an occasional bug on the display of the player list during a game. Sometimes, for no reason, the window does not want to resize when the waiting for the players ends. At last, the socket server sometimes stays open, blocking the port. These bugs are not really significant and do not prevent the player from playing the game correctly.

Our thoughts

So, we are here, at the end of the project, with a release candidate version of our framework, a game manager and five games. And my team manager cap is now on the ground. We were proud of what we were able to create in such a short period (8 weeks). The key of the project was to implement the network as early as possible. Without it, it would have been hard for us because the network part is the heart of the project. Without it, we can have neither a perfect game manager, nor the satisfaction of the client. We succeeded in splitting the framework development in a lot of tasks to have the maximum of productivity each time. Each one had a task and each one succeeded in completing it, even though when said person did not have the required competence at the beginning. We learned a lot about Java, about its libraries and about how to organize a group to develop as quickly as possible and as well as possible at the same time a software/framework/etc.

Uno

Uno

To me, this project was one of the best project I’ve worked on. Moreover, I was the team manager, so I was able to discover what it is like to be a team manager, how to organize the team, how to motivate the team, how to manage the issues between member and even manage the two other guys who were with us at the beginning of the project. It is not an easy role. You are always everywhere in the project and you need to interact with the client to satisfy him as best as you can. You do not count the number of hours you spend and you always have to be confident and happy. I liked this role, and I was also able to develop many things on the project like the two games (Uno and Sheep war). But in this position, you know that you will program less than the developers and spend more time managing, discussing, interacting about the project and with the client. This is really different from being a developer. The pressure is on your shoulders, and you choose the amount of pressure you put on the shoulders of your team.

Release Candidate

You can find .ZIP file below. The contents of the archive is :
– The framework
– The game manager
– Docs (Javadoc, developer guide, UML and a ANT script to build your game)
– Games (Chess, Sheep war, Uno, Othello, Tic tac toe)
– Presentation

Enjoy it! I hope you will find it really interesting and amazing, as we think!

EasyGame.zip

Thanks to Jérémy Anger, Steven Le Rouzic, Guillaume Kotulski to be my teammate during this project!

Gautier BOËDA

[LudumDare] #31 – Entire game on one screen

LD31

It’s time to write a little Post-Mortem! The theme was pretty simple for this time. We were free enough so many people didn’t really like this theme. But it was fine for me. Let’s see how was this LD for this session!

My game was made in only 44h (not 48h, because of exams) and I slept during 6 hours. So, the final time was in only 38h. Not that bad to make a beautiful game. But this time, I failed again because of the difficulty to contain myself in only one goal.

At the beginning, I used the snowman theme to make an introduction against this theme. But it appeared that this part of the game was not really funny at all if you don’t understand what you need to do. The answer is just in the “Do you want to build a snowman” clip. A music from Frozen, a pretty popular Disney movie. During this phase, I sang this song until the construction of the snowman. I made this part in at least 10 hours, because of drawing some tiles, some sprites. Create some map and a fade-in fade-out option. But I was happy with this part. But the problem was this part is not my game, just an introduction. And 10 hours for just an introduction, this is really bad, mostly for the game part.

Then, I had 28h to make a game. The idea was a fight against the snowman. But not a simple fight. An infinity fight. The boss will improve himself each time you defeat him. He will have more HP, more Mana, and mainly more spells! That was the goal. I developed the tournament area, the arena mode and the boss for at least 15hours. The random was pretty good with 6 spells and those spells were different enough. But that was just some test spells. Then, I wanted to improve the UI. The snowman was just a pink square, and the weapon for the user were nothing at all. I spent 6 hours on random weapon for the player and 2 hours to finish the UI. At this time, it remained only 2 hours to had more powers, more weapons, or concentrate myself on Titlescreen, Endscreen and music/sfx. I chose to center myself on the second way. I made a random music for the fight against the boss and a music for the introduction. I created quickly the Endscreen and the Titlescreen.

Fight against the Snowman

Then, It only remains some minutes to test my game. And I was pretty disappointed about it. Just because I knew that my game will not be complete at time. The game was playable, ok. But not really from the way I wanted to be played. I wanted to add many powers and weapons. With that, the fight will really be amazing and not redundant. But the mainly part I skipped was the move of the boss. The boss remained static until the end of the game. I had no time to put this feature into the game. That’s why I was really disappointed. The remaining 4hours maybe would be sufficient to add this.

So, I like my game. But I have many ideas to improve it as well. Allow the boss to move is the main feature I want to add. Add more powers and weapons the second. And the other features are for the scenario. During the LudumDare, I wanted that the boss yells something like “Noooooooooo YOU DEFEATED ME. … … BWAHAHAH, THIS IS NOT THE END! Prepare yourself, little Anna, my powers become stronger than EVER!” and if he defeats you, he can laugh of you o/ With my voice of course. Another feature was the arena. I want to add other arenas, with pillars and fire or water to dodge certain type of attack. And finally, I wanted, during the LD, to add the explosion of the ground each time you defeated him. You fall one level lower than the previous, with a new arena type.

So, what can I advice? Many things again.
I need to contain myself on one goal and develop it until it is really funny and completed.
I also need to create a nice mood around my game. With better sprites/tiles. It’s possible only if I had more time. Maybe a 72h session or in a 48h with the first advice followed.
I was happy with my voice, musics, sprites and my passion during this LD. My goal is now to develop some tools to allow me to program faster than this LD!

Timelapse :

To play the game :
The Vindicite Snowman (LudumDare31)

The web version is not the game. It is an adaptation of this game. Many stuff don’t work currently. (TTF Font and Music and Popup) The game is playable, but your experience will not be acceptable (No text).
Web version

[LudumDare] #30 – Connected World

WorldWar of Connectidia

WorldWar of Connectidia

The 30th edition of Ludum Dare has ended! What’s up ? A lot of thing! Let’s write the recap’ of these previous 48h!

Let’s take a look at my last goals :

– No plateformer
– Music
– Some sprites
– Game Engine before midday Day one (10h)
– Last day : IA (Maps)

I managed to fulfill all of these goals with a huge success ! o/…

 

At the beginning, Suteben-sensei told me “Hey ça va être Connected World tu vas voir”. It was only 20h. I planned on sleeping before LD30 between 20h and 1h. But because of this guy, I wasn’t able to sleep until 21h45 at least… Why? Because I was thinking about a game on a theme like this one. What I was thinking was really ambitious and complied with the theme.

I woke up and took a shower. 1h30, Suteben-sensei was always here to wait with me for the theme revelation. The master Ao-sensei was here but only just in time to know what had been selected.

3h01, the theme poped! “CONNECTED WORLD”. My eyes sparkled! I took a pen and wrote all of my previous ideas (When I was sleeping, I had many concepts !) and started directly to write the engine !

Before 5-6hours, I’d a screen split horizontally and a player in each part of the screen ! The player was just a square. A beautiful square! I think, that’s the best choice I’ve ever made. Because, collision between squares is really easy! Then, in a matter of minute, my collision worked with both maps. The worlds were linked, and my game was really launched.

What’s my goal now ? Create a management/fight game! How is it working? You need to expand your territory. For that, you need to hire farmer to develop your inhabitants. The circle representing your available area will expand until you reach the portal! The portal is the key between both these worlds!
You’ll need to destroy it to break the links between both these worlds. But the portal will not let you destroy it easily. The portal will weaken with the passage of soldiers troop. Then you can destroy it with your weapon.

Portal discovered !

After ? Oh… Yeah, in 48h, I was just able to program these two phases. But in my real idea, I want to add the story of “Why there is a portal here between these worlds”. Actually, both these worlds were one world in an ancient time. But the emeralds, the enemy of this world, broke this world with their emerald magic. Then, the world split in two worlds representing the light and the darkness of the previous world. And that’s why these worlds are linked.
So, after we destroy the portal, we would have seen appearing the emerald world with its fortress. Our goal will be to destroy the fortress defended by a “Boss”, the warchief of Emerald People. They send their troop to your fortresses as your king did previously against the light or dark world. And so, you WIN ! Yeah, too ambitious. A little bit to long.

Let’s go back on what I actually done. I then programed all of this script but I thought I would run out of time. So, I stopped my first day when we reached Sunday (Midnight). I slept only 5 hours and returned to programing the remaining script. After midday, I had a game that worked. But my head thought this game was impossible to balance. Since the beginning, I had too many Bats during my test. but with a log(x)+sqrt(x), I found a good balance. But farmers, miners and lumberjacks were really hard to balance. I tried and succeeded a little bit. And when 15 h was there, I had a game that worked very well. Without music, Without SFX, Without menu, endscreen etc.

Many many… MANY Bats ! WARNING ! Troops are coming

I spent the remaining time on the tutorial (2 hours), the titlescreen and the endscreen until I had a good game interface. I spent also this time on a better looking User Interface. And after that, I created the ModeScreen.

What’s it ? A strange idea in my mind. It felt like my game was not really fun. Complicated to understand. But the second part of the game (after discovering the portal) was really interesting and funny. So, I created a second mode. “Legion mode”. This mode made me really happy. I like this part of the game and I really succeeded in creating an interesting mode. I added difficulty like “EASY” and “NORMAL” mode. They worked. But the “HARD” version was not tested. Too hard maybe, I don’t know!

So… I reached 22h30. 4h and half remained. What could I do now… OH… Holy sh*t. Music and SFX. I spent the last 2 hours in music and sound effect. I realized a nice menu music with cgMusic (Midi generator) and LMMS. And I tried the autotracker.py found by Kidanger-kun. Best guy ever known… Oh wait. After some generations, I felt happy. I liked the music quite a bit (except the menu music !).

… AND… The last hour arrived! That was, maybe, my really “funny hour”. I added the Kings interventions on the screen o/ I liked that and laughed a lot when I saw them yelling at you o/ “ATTACK!“.

And I sent my game :’) I was not really happy because I thought my game was not really fun. But really ambitious and a bit too long and repetitive. But the legion mode deserves to be played because it was funny for me.

 

Mode legion : SUCCES! o/

Then… What can I say about this LD30… My next goal for the next Ludum Dare.

I liked programing this game even though I had cramps in my fingers.
For the next Ludum dare, I need to focus on a short but funny game, more than a long and difficult game. Now that’s this game it’s done, I’m not afraid of my graphics skills anymore. Because Paint.net and my skill was really good during this LD. The titlescreen is beautiful and funny. The troop is well drawn and the fortress too.But I think my human sprite skills are pretty ugly. UGLY. :'( … No words can describe the pain on this poor player. :/

What’s next ? September is coming. May be a game project but I need to work on JAVA and C++. So, I may try to create a game in Java. But now, I want to catch up with my watching list…

So ! Enjoy my game !

http://www.ludumdare.com/compo/ludum-dare-30/?uid=37076

[LudumDare] 30 – Warmup !

Le Warmup Weekend est lancé depuis un moment. J’me suis quand même forcé à toucher un peu au codage ! Résultat des courses, un truc sympathique codé assez rapidement ! De quoi être rassuré pour un éventuel shooter ou Particule effect !

 

J’ai décidé donc d’aborder durant ce warmup le côté Particule, tir et collision avec un engine assez rempli de pré-fonction AABB/Circle/Point et vectoriel (histoire de se forcer à faire ça propre !)

 

Player : Red Click left : Projectile => Particules Click right : Ball (Green)

 

J’ai déjà donc quelques idées de concepts intéressants en ajoutant les shadders précédents. Le souci est la liste de thèmes actuels qui me semble pas folichonne pour l’instant. Néanmoins faudra se forcer ! Les idées vont bons train, je m’inquiète pas trop.

Plus qu’à try un peu le côté musical et Graphic. Même si je pense utilisé au pire des musiques libres de droits.

TODOLIST :
#1 : Graphic
#2 : Music
#3 : Préparer l’interface LD o/

[LudumDare] Share Edition 1

En prévision d’un futur LudumDare en JAM,  et ayant surtout raté les précédentes possibilités de LD JAM à cause de soucis d’emploi du temps souvent, nous avons décidé de nous réunir un weekend de Juin (Post Exam) histoire de tenter en 48h la réalisation d’un jeu sur un thème au hasard.

Un véritable LD Jam consisterait à avoir 72h. Nous avons donc fait une version courte qui correspond plutôt à l’horaire alloué aux réalisations solo d’un Ludum Dare habituel.

Pour ce premier LDShare, le rendez-vous était donné le weekend du 13 14 15 juin ! Le début était prévu pour 23h le 13, la fin donc à 23h le 15 !
Pour le choix du thème, nous avons généré plusieurs thèmes puis votés pour ceux qu’on souhaitait. On a ensuite gardé les deux meilleurs et on les a regroupé pour en faire le thème du LDShare :

Non linear three worlds

S’en est suivi donc 15 min de brainstorming ! Pour en venir à un concept de 2 mondes avec un monde de transition. Le côté non linear a été très difficile à imaginer et on a de suite vu que c’était peut être même beaucoup trop compliqué !

Time line du LD : #LDShare1

 ·  13 juin

On ne sait toujours pas si le héros aura un sexe ou non… L’important c’est qu’il subira de grands changements :X

 ·  14 juin

Ça tourne pas ? Pas grave on va dormir.

Ceci résume la première soirée ! 4 h de codage on va dire. Le début d’un plateformer apparaisse et ce sont sur des erreurs de collisions que nous nous sommes couchés ! Le concept est pas encore clair mais ça avance !


JOUR 2:

Levé 8h30 ! Goutye est ready mais pas tout le monde ! Il part en quête de réveiller le grand Suteben-kun ! Les deux autres avaient prévenus qu’ils dormiront un peu plus. Du coup, let’s go avancer à deux sur les bugs de collisions !

 ·  14 juin

Ça parle de slopes !

Feature inévitable d’un plateformer, on aurait peut être jamais dû en parler ! Pour l’instant c’est que du blabla, mais la réalité deviendra bien plus tard assez triste !

12h29, Suteben part en live et s’improvise musicine : “I HAVE NO IDEA WHAT THE FUCK I’M DOING” titre-t-il avec cette magnifique image.

Pendant ce temps, le sprite tout juste terminé vient tester les collisions alors que l’équipe part en direction d’un KFC histoire de se remplir le bide o/

 ·  14 juin

Chez KFC ils sont cons : le nombre de pièces dans un bucket 4 personnes n’est pas divisible par 4…

 ·  14 juin

En fait chez KFC ils aiment créer des disputes.

De retour du KFC, Goutye poste la feature “RPG”, la fameuse feuille du personnage !

Goutye se lance dans les gemmes, Suteben toujours côté musical et corrections de quelques lignes de codes voire même du mapping. Kidanger à fond sur les portails ainsi que le random et Ao côté tile et map !

20h44 : Le premier draft d’une musique qui sera côté World et Menu : Menu / World music loop

22h45 : Premier slopes apparaissent, le résultat est un peu vibrant mais ça semble correct mais pas assez pour que cela soit réellement enjoyable :/

 ·  14 juin

. s’apprête à tester une feature critique et complexe… pray for us!

Mais bon, l’estomac va se remplir de lasagnes !

 ·  14 juin

Ce soir c’est lasagnes ! Avec des ladders des dango des boules de feu et compagnie o/

 ·  14 juin

Joli screenshot ! C’est bientôt miamtime.

Fond du monde intermédiaire.

3h46 : Suteben toujours présent, Goutye sur la corruption et les deux autres en Dodo histoire d’être en forme demain !

 ·  15 juin

Still alive, still alive, ah ah ah ah, still alive ! Avec pendant que les deux autres dorment. \o/

4h46 : Une heure après, Suteben nous sort l’alpha de l’arme du Héros :

Dans le même instant, Goutye poste le prototype de la corruption et se met à corriger les quelques bugs :

Skill points + Leveling + Corruption bar

 ·  15 juin

On a bien avancé, maintenant au lit !


Jour 3 : Debout vers 10h 10h30, la team fait son petit kick-off pour aborder la fin des hostilités ! Le jeu étant fonctionnel, il faudrait maintenant le remplir de boss, de monstres, et de map !Voici donc un premier Dango :D

Pendant ce temps, Suteben était sur le menu ! Ao qui jonglait entre sprite, mapping et codage de l’épée et des fireballs en coopérations avec Suteben ! Kidanger se mordait la main sur  les Boss à implémenter et les IA des mobs !

Reprise direct sur de la musique ! Suteben nous sort maintenant à 16h45 son draft de musique de boss !

https://soundcloud.com/folds-project/ldshare1-boss-loop

Pendant ce temps, Aomeas s’acharnait sur les derniers sprites tandis que son départ commençait à se profiler ! Pas le choix :/ Les mobs et boss sortaient de l’usine l’un après l’autre ! Kidanger était à nouveau overbooké de nouvelles IA à coder en plus des précédents bugs ! Que dire à part qu’on sentait que la fin arrivait et que la panique arrivait aussi o/

18h10 : La story et ses effets lumières apparaissent !

21h30 : Plus qu’une petite heure et 30 minutes à nos braves garçons !

 ·  15 juin

Sprint ! 1h30 left ! Et découverte de bugs embêtants :X

 ·  15 juin

Plus que deux à trois maps à faire !

Le nombre de tweet à grandement diminué, un boss pop avec une IA non testé ! Les spikes sont présents, les zombies aussi. Tout y est mais quelques bugs persistent !

Mais le temps est le temps et c’est à 23h qu’ils s’arrêtèrent !

 ·  15 juin

c’est fini ! :D Maintenant il faut attendre trois mois pour revoir les Deuxième Rangs. :-(

 ·  15 juin

DONE ! Brace yourself ! The release candidate version is coming.. o/ Thanks all o/ I learned many things during this one ! :D


Title Screen

Title Screen

Pour moi l’expérience fut très enrichissante ! La motivation était sans limite et ai vu de suite mes points faibles !
Les slopes sont à travailler. Un peu de design ne ferait pas de mal et côté musical il faudrait que j’y touche un peu pour pouvoir assurer quelque chose au prochain LD !
L’essentiel est que la team a fait son job et pour du 48h laxiste, on a un bon jeu malgré la difficulté vraiment croissante !
Et à un prochain LD !
Avec moins de DODO ! Plus de CODE ! Et certainement du SOLO ! Eh oui, le prochain est situé fin août, tout le monde ne sera pas encore de retour sur Caen !

Les logs de notre dossier GIT ! 272 commits, 58 merges !
LDShare1 Logs !