Thursday, April 23, 2015

Online, feedback and other stories

It's been a while since I didn't post anything. It's mostly because I barely had time to work on FtheBlocks. Now I'm finally back at it and I have to make a choice : implement online multiplayer or not.

Doing multiplayer with Unreal Engine 4 is not really hard. The engine provides everything you need to replicate events/variables across all the clients and to do the client/server communication. Even better : one of the latest example shows how to create a session, display a server list and join one all in Blueprints. But implementing multiplayer is easy only if your game was designed for it at the beginning. For FtheBlocks, I made the rookie mistake of thinking that I could just add the multiplayer code later. Now if I want to do, I have to break pretty much everything and rethink all the logic of the game. It's basically a complete rewrite of the code and even if I have a good understanding on how things should work, it might take weeks. At this point, I'm not sure if it's worth it. The game was designed to be a fun "friends on the couch with beers" game and it works very well that way. I might just do multiplayer but for another project.

The other mistake I made was thinking that not doing solo/AI or online multiplayer would save development time. It did but it also made really hard to get feedback from other players. Not only the game is not popular but it also require to have at least one friend to test it. Without feedback, it's difficult to know what works in the game, what is fun and what should be improved. I guess that's why a lot of indie games are platformers, puzzles or adventure games. It's much easier to playtest when you don't have a team.

A few people asked me if I was going to share the source code on GitHub or some other solutions. The answer is : maybe. Frankly the code is not rocket science and I would love to share it with the rest of the UE community. The only issue is that with Blueprints, you cannot share the code without also sharing the assets. Most of them are stock assets that comes with the UE4 examples but I bought a few ones on the UE marketplace so I will have to replace them with stock or TurboSquid models. Finally I don't own the rights of the music so I might also replace it with some stock music for the "GitHub version".

By the way I cannot emphasize enough how much I love the music Olivier composed for the game. I just gave him some simple directions and he perfectly captured the spirit of the game. Not only he composed and recorded the music but he also made the code to play it in UE. You can listen to the theme here and I recommend to check his website. He worked on the awesome game E.Y.E and now he's working on the new game from the same studio (Streum On), Space Hulk - Deathwing. He's also working on the really cool Enemy Starfighter.

Sunday, March 22, 2015

FtheBlocks - Alpha 0.2

I spent the past few weeks trying to find some people playing the game to get some feedback and polishing some elements. The result is that alpha 0.2 of FtheBlocks is out. You can get it at the download page. It's still Windows only but I plan to do a Mac build soon.

It mostly fixes major problems of the first alpha like loosing the controls when playing two games in a row or messing with the bomb count when having diarrhea. The perspective have also been adjusted and the UI does not overlap on the map anymore.

The biggest new feature is the ability to customize and create new levels by tweaking the file Game.ini in FtheBlocks\Saved\Config\WindowsNoEditor, I strongly recommand to make a copy before you do it. I'll publish a moding guide to explain all the details but you can generate your own levels, choose the start bonus and what kind of bonus can be found in walls.

The alpha 0.2 also adds better audio and visual feedback and introduces different styles for the levels which are changing the look of the blocks. Most of the assets are still placeholders.

There is still no pause menu so if you want to brutally exit the game press Alt+F4.

Epic has just posted a really cool sample on how to do quick multiplayer with UE 4. I already knew about how to replicate data and send RPCs but they showed how to host/join a game easily, have a server browser and choose between LAN and Internet. The bottom line is that multiplayer may happen quite soon for FtheBlocks.

Monday, March 16, 2015

A quick list of useful tools (and what to save online)

You have just downloaded the latest version of Unreal Engine 4. Congratulations ! But you might need a few additional tools so here's a list of stuff I like to use. They're all free because times are tough.

3D models : Blender
UE 4 only accepts .obj and .fbx when it comes to importing 3D models. Blender can be useful if you get .3ds files (or other formats) and you need to convert them to .fbx. Also you might need to tweak the 3D models in Blender before exporting like modifying the scale, changing the orientation...

2D graphics :
It's not as powerful as Photoshop but it's also not as messy and it runs way faster. Whenever you need to modify textures/photos/UI elements, it gets the job done. It supports layers and offers all he basic tools you need.

C++ : Visual Studio Express 2013 For Windows Desktop
Blueprints are cool but sometimes you have to code some C++. If you work on Windows, you need Visual Studio since UE generates Visual Studio solutions. It's also a very powerful IDE and the free version has everything you need to compile and debug.

Text editor : Notepad++
A ini file to tweak ? A cpp file to modify without opening the entire solution ? Notepad++ is here for you.

Audio : Audacity
Audacity allows you to easily edit audio tracks, mix them, add effects and output the result. Use Wave files as your output format. UE4 does not accept MP3/OGG and will do its own compression at import.

Video : Freemake Video Converter
The best and the simpliest media converter. Just select your audio/video files, choose the output format (MP4/WMV for UE) and run. Be careful during the install : the installer will try to install a lot of crapware so choose the custom install and say no to pretty much everything.

Documents/Spreadsheets : Google Doc/Google Sheets on Google Drive
First of all, you should never have any import document offline. Everything should be in the cloud. Google Drive is by far the best solution for that. Not only it allows you to add and modify documents online but you can also access them on any device/computer and share them with other people. And multiple people can work at the same time on the same document without overwriting someone else' changes. I use Google Docs for simple notes and game design documents and I use Google Sheets to track bugs and features to implement.

Google Drive is also a nice place to put your latest public build.

Assets/Code backup :
All your code and all your assets have to be saved in the cloud. Not on an external hard drive. Not on a personal home server. Those things can fail. Your cat can pee on it. Your jealous ex-girlfriend/boyfriend can set it on fire. When your assets are in the cloud, they're handled by professionals which reputation depends on not loosing your data. I prefer over GitHub and Dropbox because the free version offers 10 GB of storage and allows to upload large files (250MB) which is good because UE maps can get really big.

For $10 a month, you get 100 GB, the file size limit is 5 GB, you can share your data with 10 users and you have a versionning system that allows to go back to 25 previous versions. Here's what you should upload for each UE project :

-Binaries : yes but remove the .pdb files first
-Build : yes
-Config : yes
-Content : yes
-Intermediate : yes but remove the .pdb files first
-Saved : no except for the sub-folder Config
-Source : yes but remove the .pdb files first
Project.sln : yes
Project.uproject : yes

Friday, March 13, 2015

The shift

When video games stopped being clones of Pong and Asteroids, programmers realized that they were going to need some art to make their games. And artists realized that they needed programmers to put their vision in motion. That was the beginning of a love/hate relationship. Programmers didn't really want to lend their toys to people who couldn't understand code and artists had to deal with the bazillion technical limits. And then Macromedia Flash came. It was designed to make the Web prettier with some fancy animations. Instead of just exporting their assets and let the web designers do the rest, artists started to produce their own Flash applications and not just buttons and menus. They also started to code because Flash was shipped with a script language called ActionScript that became really powerful with version 3. Suddenly artists made games without developers.

Whenever an artist tells me that code is too complicated, I think about the tools they use everyday. Photoshop and Maya for examples are to me unbearable pieces of software. The UI was invented by some sadistic designer who tried to pack layers after layers of buttons and sub-menus without any kind of logic and by using the most cryptic names and the smallest fonts/icons possible. Any human being who can work his way in this kind of complex cypher has the logic skills and the patience required to code.

Anyway thanks to script languages and tools getting better and better, artists were making more and more complex games. Two of my favorite recent games (Hotline Miami and NaissanceE) were made by artists without any developers. But the opposite is not necessary true. You can make a game without any art or just a little (Minecraft !). Some developers are famous for it like  Terry Cavanagh and Kenta Cho. They use mostly simple geometric forms But the truth is that you will probably need some assets at some point.

The solution might be to just buy it on stores like Turbosquid, the Unity Asset Store or the Unreal Engine marketplace. But you never get what you want : it's either too much (you just want one model and you have to buy the pack) or the format is not the right one so you have to import/reexport from Blender or the orientation/scale is off. But artists do not just provide content : they provide a vision. As a developer, I know what I find pretty but I have no idea how to achieve it. A tutorial might teach me how to make beautiful particles but will not give me the art sense required to make a different one.

Saturday, March 7, 2015

Why making a Mac version ? And a Linux one ?

Yes why ? If you look at the latest Steam Survey, Mac OS X only 3.23% of the users base on Steam so you would think that a Mac version is just a waste of time.

Except if you live in California. Pretty much every friend I have has a MacBook. And let's be honest : pretty much everyone who has a decent computer in California has a MacBook. California is Apple's birth place and playground and they own the market. And it's not just for laptops : it's the same for smartphones and tablets.

There's also another group of people who loves Apple products : college students and journalists meaning the people who are going to play your game and the people who are going to talk about it.

So swallow your long time PC gamer pride, find a MacBook and make a Mac build. There's a Mac version of the Unreal Engine 4 Editor and you can export a Mac build as easy as a Windows build.

And Linux ? There's even less people using Linux. It's only 1% of the users on Steam and it's fragmented between the different distribution and even between the different versions of the same distribution. But there's two factors to consider :
-with the release of the Steam Machines this year (they come with SteamOS), Linux might finally get some attention
-Linux fans are pretty devoted and welcome any new game on their plateform

Same as Mac : there's a Linux versuin of the Unreal Engine 4 Editor and you can easily make a build. If you have a PC with Windows or a Mac, you can setup a dual boot to install SteamOS or Ubuntu 14.

Thursday, March 5, 2015

Welcome ! Alpha 0.1 !

Hello everyone !

Thanks for visiting this blog !
It's dedicated to the development of my first game, FtheBlocks, a Bomberman clone done with Unreal Engine 4. On this blog, you'll find some information about the game, how it was made and of course the game itself because it's a freeware.

The first release (Alpha 0.1) was just released and you can find it on the Download page. All the assets (except the music) are placeholders so if you have any remarks/comments, do not focus on the art.

This first version is fully playable and contains the following features :
-4 players local multiplayer
-Keyboard and joypad support (up to 4 joypads)
-Two players can share the keyboard
-Two players can share a joypad (so up to 4 players with one PC, one keyboard and one joystick)
-Three game modes : last man standing, deathmatch and paint
-7 levels

There is no AI or onlime multiplayer so you need at least one buddy to play.

Have fun !