H.A.C.K. - Week 1

Published September 28, 2014
Advertisement
[color=rgb(0,0,0)][font=arial]Today marks the end of the first week of development on H.A.C.K. - technically, I started on Tuesday but no matter - and I've decided to write weekly updates on how things are going. I will try not to bother you with walls of text, except for this one, I promise. I will also not get too technical with my posts, but if you'd like to know more about how I implemented a certain feature drop a line and I'll be happy to answer.[/font][/color]

[color=#ff8c00][font=arial]About me[/font][/color]



[font=arial]Before proceeding, a few words about me to get this out of the way. My name is Joao Farias, I'm from Portugal and I recently finished my B.Sc. in Computer Science. While I'm looking for a job in the games industry, I'm working full-time on this game.[/font]


[font=arial]Now that that's done...[/font]




[color=#ff8c00][font=arial]The Game[/font][/color]



[font=arial]H.A.C.K. has been stuck in my head since 2012 when I replayed Uplink. Needless to say, it's heavily inspired on it. If you've never heard of Uplink do yourself a favor and go play it![/font]



[font=arial]Set in a futuristic world, the player finds himself drawn into the hacking scene. He'll learn how to find and exploit vulnerabilities in computer systems, how to create virus, worms and backdoors, and, ultimately, how to control the world.[/font]


[font=arial]It features a live economy where companies can grow or go bankrupt, people have jobs and money changes hands. News stations keep the player up-to-date with recent events, not only about hacking but on a variety of topics like technological advancements or world catastrophes. Hackers are more active than ever and not even the player is safe. [/font]



[font=arial]I want to make H.A.C.K. a bit more realistic than Uplink while maintaining the same Hollywood hacking experience. Instead of tools that can be bought to hack anything, the player starts unskilled and will gradually learn how to find and exploit vulnerabilities. These let you access specific data from a computer without getting full access to it, which is much stealthier. This means the player has a wide array of options on how to perform any attack, giving much more diversity to the gameplay.[/font]



[font=arial]There will be a main story and a few side stories to entertain the player. He is completely free to do whatever he wants though, even ignoring the main story.[/font]




[color=#ff8c00]

[font=arial]Planning[/font]

[/color]

[font=arial]Although the first week of development is finished, long weeks of planning took place before that. I won't get into much detail. I'd just like to make some comments on what I did, why I did it and what tools I used.[/font]



[font=arial]In the last couple of years of my degree, I came across several projects that were too complex to execute without decent planning. We did UML, sequence and use case diagrams in order to understand exactly what the project required from us and how we should face it. I figured that games should receive the same treatment, for in their core they are software programs designed to entertain people. So I set out to plan my game...[/font]



[font=arial]Throughout the years I have been taking note of things that came to mind in text files or on the phone. I started by putting all these together and cut out what was not interesting anymore or felt out of place. I used XMind for this and, although I was expecting a bit more control on how things were structured, I wasn't disappointed and it felt like the right tool for the job.[/font]



[font=arial]After that, I created the Game Design Document. There is much controversy on the subject of its usefulness - especially for a one man team - and after scrolling through dozens of threads and articles on the matter and finding interesting alternatives, I still chose to create a GDD. And I feel I made the right choice. Creating this document made me ask many questions I wasn't asking before and I realized that some of my uber-awesome mechanics weren't that good. Now, I stand on solid ground and I'm able to move forward.[/font]



[font=arial]UML came next. I haven't gone to the lengths of creating sequence or use case diagrams, but a good UML diagram is indispensable for me. I created one online on GenMyModel.com, but it came out of beta yesterday and is now free only for open-source programs. I'll have to find another alternative so if you happen to know about a good free one, leave it in the comments please.[/font]



[font=arial]Last but not least, came the project management. I wanted to set goals and deadlines, specific tasks that I should follow so that all pieces come into place. Trello was what I had in mind, but I took the time to look for other options and found Asana. It has a bit more of a learning curve but I find it to be much more flexible than Trello. It also integrates well with Harvest, a time tracking tool - out of curiosity, I spent 30.07 hours on development this week. Speaking of time, I will be using the 5,1,1 routine. I read about it in this great article that I advise you to read if you haven't already. I decided to embrace this routine with a slight difference: Sunday will be my weekly update day. While I won't be entirely away from the project during those days, I won't look into code. I'll give you some feedback on how this is working for me in a few weeks.[/font]




[color=#ff8c00]

This Week's Development

[/color]

[font=arial]I should start by saying that this game will be available on Windows, Linux and Mac and is being made with Unity, specifically Unity 4.6, taking advantage of its new UI system.[/font]



[font=arial]I started by creating a basic file system explorer in the form of icons. You can drag and drop the icons to reorder them or to insert them into other folders. Using the buttons in the toolbar you can go back to the previous directory, create new folders and delete selected items. This system already supports dropping files from other file systems in order to download/upload files between computers - the player's file system is always on the left and the connected computer's file system will be on the right - so to download a file from a computer you just drag and drop it on your explorer.[/font]



[font=arial]Then I created the connections panel where you can configure the proxy chain you want to use and search the computer you want to connect to. You can search by IP or name - I only search by IP in the video because all servers have the same name. The proxy chain lists the computers you want to use to bounce your connections, starting from top to bottom. Just drag and drop IPs in there to add them and drag them out to remove them. You can also reorder them by dropping them in the right place. You can't just use any computer though, it must be a proxy or have a proxy software installed. Also, proxies slow down the connection so you probably want to avoid using too many. You can enable or disable the proxy chain with the toggle button. If you click on any computer or proxy, its IP will show up in the top right corner field so you can connect to it by pressing the button "Connect". You can alternatively double-click them to connect immediately.[/font]






[font=arial]I've also started on the computer panel, the one that shows up when you connect to any computer, but I'll leave that to the next update.[/font]



[font=arial]---[/font]



[font=arial]Phew... That was a rather long post. Future updates will be much smaller. Something like this last section only.[/font]



[font=arial]So, what's running through your mind? Leave a commnet below and make sure to follow me on twitter [/font]

[twitter]hack_thegame[/twitter]
Next Entry H.A.C.K. - Week 2
1 likes 2 comments

Latest Comments

Eck

I had a ton of fun with Uplink. I'll be interested to see how you progress. Try to keep a robust quest (mission) generator in mind while you develop it. :)

September 28, 2014 10:40 PM
jfarias

Thanks. It'll definitely be more than just stealing a file or incriminating some random guy. But I'll talk about it when I get there. ;)

September 28, 2014 11:03 PM
You must log in to join the discussion.
Don't have an account? Sign up!
Profile
Author
Advertisement

Latest Entries

H.A.C.K. - Week 4

October 26, 2014

H.A.C.K. - Week 3

October 12, 2014

H.A.C.K. - Week 2

October 05, 2014

H.A.C.K. - Week 1

September 28, 2014
Advertisement