Search This Blog

Sunday, 26 February 2017

Workaround for Project 2016 with freeze on recurring tasks

 Some people might get a bug where MS Project 2016 hangs out when creating a specific recurring task (using Weekly). I tried different ways to solve this without having to create every task by myself.
 So I've made it working, you'll have to follow these easy steps:

  1. First you'll have to create a workdays calendar (Project -> Change Working Time). Click on 'Create New Calendar', name it how you want, and make sure it makes a copy of 'Standard'.
  2. Once the calendar is created, click on a day of the week (like Monday), go to Work Weeks, click on default and hit 'Details'. If you want that workday to recur every week, you can leave it 'Set day(s) to these specific working times' (you'll have to set a from and to working hours, 8:00 to 9:00 will do), if you don't set 'Set days to nonworking time' (will not recur).
  3.  Hit 'OK' after setting the days, In my example I only have Thursday, Friday and Sunday as working times.
  4. Create a recurring task from 'Task', set 'Daily' and don't forget to set the calendar you created. 
  5. You'll see only the days you've set in calendar, I think it also syncs up, which is great!
I hope this helped you, don't forget to save this blog for more awesome posts ;-)

Saturday, 11 February 2017

10 things every game developer should or shouldn't do


I haven't posted in a while but today I've decided is time to make a new post and discuss about something bothered me for long time. Game developers forget or don't want to include some things that I feel like they're important right now in 2017 for your game. So here is my list of things game developers should do for their games, the list is not in any order.

1. Multi monitor/video card support

In 2017, multi monitors setups are often used, myself I have a three monitors setup. Many new games don't support it and it's frustrating that you can't play the game on other monitor. for example, hooking up the TV to your PC and trying to play a game but the game still displays on the monitor..

2. Bad audio options

I've seen games that don't have audio options at all or some sounds can't be tuned up within the game. It's annyoing because if you listen to music or talk via skype, the game sound would kill your ears.

3. No feedback on what's going on

Some games doesn't give you a feedback on what is going on in game. For example, you hit something but the game doesn't tell you how much damage you've done.

4. Show the death reason

I love to know what killed me. Games like Paladins, show you a short replay on how you've died.

5. Less cinematics, more gameplay

Yes, nowdays games play more cinematics than actual gameplay. I want to climb a wall, guess what.. a 2 minutes cinematic.. is like watching a movie, not playing a game.

6. Too many quick time events

Quick time events are bad in general, you hit random buttons that appear on screen to do an action you probably don't want to do but the game forces you (damn communist games ;p). Games should give you the freedom to do whatever you want in a certain way.

7. Repetitive boring game mechanics

Some games have new mechanics that they make the player use a lot, some of the game mechanics are good (Portal 2 for example), but some are boring or bad.

8. Intros that you can't skip

A lot of games doesn't let you skip the intro and wastes your time with the same intro. I like how Westwood Studios made the Red Alert 2's intro, first time you can't skip it, it's a good intro that you'd love to watch, but only first time, but after the first time, the intro is shorter and also you can skip it!

9. Bad porting of game menu

Some games are ported directly from consoles to PCs and they have a lot of features missing, like mouse support, proper video settings.

10. Lot of options

People love to have options, if your game have options that you can change and personalize, people will love it! Of course, you can't let players change the game experience you want to give, but maybe some players might like to have different experiences with your game, don't force them with your vision!

I hope I did help you with my ideas for game design, mostly game options and some mechanics for now, maybe I will continue making a part 2 of this ;)

Thursday, 29 September 2016

Sla's Games Gallery is releasing soon!

Hello, I've been in away for a while this summer holiday, but I'm back and even more motivated to finish the Sla's Games Gallery project and maybe start new ones after!

It has been a long journey in making this project happen, a lot of coffee and pizza, but in the end, the journey its coming to an end with the release of the game, that wouldn't stop me from continuing it, there will be new games added and new features implemented but with your feedback.

I'm very excited to launch this game, being my first game ever released on multiple platforms and not a game mod like my other projects. I'm quite nervous but very happy/excited to launch it.

I'm currently looking for people to do beta testing before the release, if you're interested you can contact me on G+ or any other social media. You'll receive the unfinished game for testing and of course I will take your feedback and improve the game.

There are some bugs that must be fixed before launching, the game was supposed to launch this September but with a lot of bugs being discovered daily and some never have been fixed, the game launch date is now unknown, but it's sooner than you think.

In meantime, I make some daily videos of my game on YouTube and of course, don't forget to check my new series of 'Dev.SGG' on Twitch (streaming every Saturday night GMT+2).

As quick note, the technology behind SGG has been used in my demonstrations with JEL Robot (you can gather more info here).

A modified version of SGG Chess running. It's controlling a JEL SCARA Robot doing moves. The game have been also improved with a custom AI Library, this can't be included with SGG, but we're trying to get our own AI in SGG Chess! This demonstrates the power of SGG technology and also the power of Love2D framework overall.

See you next time on a new SGG adventure!

Sunday, 4 September 2016

Linux on Windows - Testing Love2D, Lua and Quake!

Microsoft decided to include the Linux kernel as a sub system for Windows 10 anniversary update in a optional update, you can run Linux applications now in Windows. I've decided to give it a try (well, I already have a dual boot with Linux Mint for testing my applications/games). This can be also used as a tutorial on how to install it ;)

You need latest Windows 10 update to have this available ;)

First step is to install it on your Windows 10 computer, it's quite easy, just open Control Panel -> Programs and Features -> Turn windows features on or off. From here, find Windows Subsystem for Linux (Beta) and check it, hit ok and you'll be asked to restart your computer. You can uninstall the subsystem anytime by unchecking it, so you don't damage anything :P

After it's done updating the computer with Linux, you'll have to open up bash, just search bash and open it up.

Windows Users would say this looks like Command Prompt, well.. it kinda is.. but more advanced and fun :P

Bash will ask you about an username and a password for your Linux subsystem. It will be later used for sudo and login in general. You don't have to use the same username as your current username, I've chosen 'slalinux'. Well, you're now ready to use Linux, well.. not really.. there's not much to do without apps. Before starting downloading packages, use sudo apt-get update and then use sudo apt-get upgrade

Pure awesomeness ^

I'm a big fan of Lua, so first package I've downloaded was Lua5.1, to get Lua for yourself just use sudo apt-get install Lua5.1 (with sudo apt-get install you can get almost any package). You can get the well known GCC compiler for Linux and get your C++ code for Linux done under Windows, isn't this just great?! Well, it is.. but where is GUI?! Ubuntu/Linux Mint etc. have a GUI (Graphical User Interface).

Love2D running in Linux On Windows with OpenGL

To get GUI in this Linux subsystem is quite easy. Download MobaXTerm from here, I've used the portable version, just open it up and it's done. To make use of the GUI you must first run export DISPLAY=:0 in bash. To test Love2D like I did, just use sudo apt-get install love, and then type love. You should see the above screen.

Get packages easier by using a GUI ;), You can also get games and more!

To get packages easier, you can use a nice software called synaptic. Just sudo apt-get install synaptic. After installation, use sudo synaptic. Yes, it's that easy, well.. you still need to use the console a lot, but you'll get used to it.

I'm not such a big fan of Linux, as I mostly develop things for Windows and use Windows 99% of time. Linux is a nice way of using your computer for free without Microsoft's bloat installed, there are a lot of distros you can start with, I'm mostly using Linux Mint, Ubuntu or Debian, I personally recommend Linux Mint for starters, as it looks like Windows a lot.

Well, there's no sound yet, probably will be added soon

I even run Quake on it ;), there's a lil bit of issue with mouse, maybe MobaXTerm needs some configuration.

Saturday, 9 July 2016

Sla Studios #1 - Resurrecting my dead projects

It's time to get a heads up on what's going on this summer in my projects, I'm writing this post to clarify some things and announce new things that might come. I hope you're excited as I am.

First, I will talk about a long forgotten project that I haven't touched for.. six years. Sla Mod YR, yes.. that forgotten mod for Yuri's Revenge I've been working on six years ago. It has been a very long time since I haven't touched Yuri's Revenge modding, I want to make a new version of SMY for this fall. Nothing is set in stone, as I don't know what will happen next, but I will do my best to bring SMY back.

Second, another forgotten project, a more serious project that was left behind three years ago, The Third Tiberium War. Some people recently told me to resurrect this project, I decided to give it a try in a series of maps for Command & Conquer: Renegade. There will be a co-op map and few AOW maps.

Third, a project I'm currently working on but suspended because of college, Sla's Games Gallery, a games gallery (as the name implies) that is also free to play, I hope to get more done for this project and maybe have a release this summer or fall.

Fourth, a map I promised some time ago for my server, Mutant Co-Op, that I will make based on a fictional story about robots and robotics in general.

So it's all going nice, this summer I'm resurrecting projects that were gone for some time, I hope I will get them well and you guys will like it! I'm also working on a project for my college ;)

Wednesday, 6 July 2016

C&C Renegade Tutorial - How to make a scenario for Sla's Mutant Co-Op?

It's been five years of Mutant Co-Op, a lot of things did happen during all this time, lot of changes, improvements and new maps for this server. Now It's time for you to give a helping hand (if you want) to our project, the first time we want you to contribute to the scenarios of Mutant Co-Op. Making a scenario requires some good skills, but you don't need to know programming nor 3D design, you just need to have lot of ideas! We will give you all the files you need. This will be a long post, you'll need some time to read all this ;)

Before you start, make sure you have C&C Renegade installed correctly and with latest Tiberian Technologies patch (at the time of writing this was TT 4.2). TFD should be just fine as long LevelEditor accepts it.

Tools you need: 

- Renegade LevelEditor - it's all you need to create a scenario for Mutant Co-Op, if you're interested in making a whole new map please contact me ;p

Files you need:

- LevelEditor missing files (some dlls are missing from Renegade Tools link)
- Mutant Co-Op Presets (we use custom spawns for bots)
- Custom Scripts.dll 4.2 (for custom scripts, like sla_on_enter_message etc.)
- Example M00_Tutorial leveleditor source map (a good starting point to learn how to make a scenario)
- Original Renegede Levels (all the mission maps source for leveleditor)

Usefull links:

- Tutorials
- Tools and stuff
- More downloads for Renegade
- Exodus' modding forum
- Renegade forums

You don't need to visit every site from Usefull links, but I recommend you to give a look and learn more from there.

Setuping the working environment:

1. Download Renegade LevelEditor and extract it to a empty folder where you'll work on the maps, take just leveledit folder.

2. Download LevelEditor missing files and extract them in leveledit folder.
This is how the folder should look like, also with first time launch of Renegade Leveleditor (it might ask for video driver first, just click ok).
If the leveleditor doesn't open, there's a stupid solution to copy all these files in Renegade folder, it might work, this is how I do it.

3. Download Custom Scripts (Files you need section) and copy the scripts.dll file in your Renegade directory, example: C:\Westwood\Renegade, overwrite the file. You must do this to have all scripts available for Mutant Co-Op, I highly recommend to make a backup of your scripts.dll!

4. Download Example M00_Tutorial (Files you need section) and extract it in LevelEditor's folder.
M00_Tutorial map in leveledit folder
5. Create a folder called 'Missions' in leveledit folder, in Missions folder create a folder called 'levels', download Original Renegede Levels and extract the files in Missions/levels folder.

You're now done to work on the maps, now it's time to explain how to make the actual scenarios!

Making the scenario: (making of a example M03)

1. Open leveleditor, double click on 'Missions' you've created before, load M03 map now from levels folder. (File->Open)

2. Watch the tutorial video ;)

Monday, 4 July 2016

The Story of RatedR - Before the beginning

Before I get started with the story, this is a fictional story of a robotics team, based on a real story. Any resemblance to actual persons, living or dead, or actual events is purely coincidental. I have the hope that you'll have fun reading the story. I will post Mondays a new part of the story.

Image source
It's seven o'clock in the morning, preparing myself for a new day of school. My school is not far away from my home so I take my time to drink the morning coffee and eat something as usual. This isn't just an ordinary day, it's the first time I will meet this new teacher. The class started, I'm sitting in first row and listing the teacher as he presents himself to the class. The teacher ends his own presentation, starts talking about technology, I'm excited by this subject, technology being my favourite, I start talking with him about it, telling him that I've worked with 3D software before and I also have some knowledge in programming (C++, Lua, PHP, etc). He was happy about it and invited me this weekend to his robotics group from school, I accept the invitation with no hesitation. I'm thinking how wonderful would it be to work with people with the same interests in technology as for myself.

The weekend has come, I'm going to the workshop to see what's all about. I meet few new people here that I will work with, I'm the only programmer from the team. It was shown to me this new software RobotC, which I will use for the robot we're making for FTC contest. I'm using C++ for the coding of the robot, just perfect as I started to learn C++ few months ago for a server mode in C&C Renegade. I try understand what is the propose of this robot in this contest, after I while I figure out and start writing the code. I get home and still continue writing code.

Weeks pasts, I write more and more code, more complex. The teacher tells me that it's too complex and might not work as expected, I don't listen, I trust my knowledge, I'm sure it's done all right.

It's the weekend of the contest, first day it's the testing day, we're coming to this place and setup everything up after travelling with a crazy taxi driver (I wish we took the subway). Doing some tests of my code, everything works as expected, I'm happy about my code, it appears I was right.
Image source (not the actual robot we've used)

The important day comes, we take the subway this time, hah, and get there just in time for the contest to start, actually just few rounds of testing, everything works. After a while, we're informed that the real round will start in few minutes, no worries, everything works. In this contest you have two phases, the autonomous phase were my code is ran to take some objects and put them somewhere and then get on the ramp and second phase being the control mode, where you have joysticks to control the robot and take other objects with the built-in crane from the robot. The round starts, it takes a while to connect to all robots, I'm there to supervise that everything works in the communication phase, they start the round and... surprise, my robot breaks. We get to the control mode with a broken robot and we stop, they'll continue the round without us.

More rounds, more trouble, the robot motors are breaking up, smoke coming from them, everything breaks up, nothing works as did in the testing phase.. what the hell. We start arguing on all things and of course my code, being way too complex, something might of gone wrong inside the core of my code. I'm mad and sad, I have no idea what to do to fix all things, nothing happen as I predicted, just more and more trouble. We've lost the contest in between the last, with a broken controller and motor. I was feeling like the black sheep of the team, being my code running and probably broken. We took the loss and continued on.

After a week or two, I started researching what was going on, what made my code to stop running, I was not sure. I'm reading trough the help manual of the RobotC software, after a while, and some maths, I discover that I was wrong in a part... a integer was too small to hold big numbers, like time in milliseconds, I never seen such a problem before, being a Lua programmer most of time, I never encountered such a problem, was something new, I was mad on myself, I've made such a small mistake that could've caused big trouble. I was supposed to use 'long' instead of 'int' in my code, if I was doing that, everything would've worked. To be even more sure that will work, I could've put a 'unsigned' before 'long', I didn't know that is possible.

With this mistake fixed, I told them about the mistake and I apologized for the mistake. I continued working with them.

..some months later..

The team got smaller, we're only two people in this team right now, me and Harley. Harley being the mechanic of the team, I'm the programmer, we try to make a great team together, with all the mistakes we make, we're learning from the mistakes every time and improve to get what we want from our work better.

I started to make a even more complex code, yeah.. you've heard it right. This time, with all the knowledge and readings I did, it will work as expected. I make a code that will record movement of the robots by using joystick and then play the recording. It works almost perfect in testing, of course. We get this code to a real test in a contest, but surprise as always.. it doesn't work well because Harley is nervous in front of a lot of people and we can't get the robot to do what it should do. We think that we'll lose as previously done, but we actually get fourth place, it could've been worse. A new contest, this time I have to present my code to the public, I do all my best to explain to the judges that It's really cool what I've made, did the most stupid example I could've done, telling them that this robot can bring you the coffee every morning after being programmed very easily, well.. for me that's a great thing, because I'm kinda lazy to even get that done in some mornings :-). I did get the max score.

-In the next part you'll see a brand new name for the team that will struggle to get known-