gameofworlds
gameofworlds
Worlds development blog
19 posts
gameofworlds.net
Don't wanna be here? Send us removal request.
gameofworlds · 10 years ago
Text
A little post about progress #4
There was only silence here since the last July (subreddit /r/worldsgame gets somewhat more attention), and I’m going to break it. I’m still working on the game almost every day, and I hope to include a lot of new stuff with the new update. First of all is of course NPCs. There is an editor for them, and I’m working for a simple roaming AI for them, only to make it more complex in the future. Next is items. The items and recipe editor is done, and will come with the update. And, of course the main feature is interaction between items, blocks and NPCs. There will be mining, cutting, healing, bleeding and whatever else you can imagine. Sadly, there is still a lot of work to be done on interaction and integration of all the features into multiplayer. But I hope it will be worth it, because finishing with all this would mean that basis features are done, game is in alpha, and I can focus on improvement of every part of the game, and not focusing on finishing the fundamentals. Stay tuned.
2 notes · View notes
gameofworlds · 11 years ago
Text
Multiplayer lives. And what's next on the list.
Tumblr media
Old saves will not work!
Good news–multiplayer test version now lives! Bad news–it took 8 months instead of planned 2, and will take some more time to tune it well.
Tumblr media
You can stop reading the quote after that 'hard to do' part.
So, the progress. This is still a test build, but it's playable! Movement is not perfect, and fly mode doesn't work well in multiplayer, and there might be a lot of issues I don't know of, but I'll fix all the problems as they come up. You can now move around with friends in any kind of worlds you make: everything is loaded from the server.
Documentation piece about how to setup a server is available.
However just moving around and placing blocks is not fun, so now I'll tell about what I'm going to focus on. Now that foundation has been laid, I'll skip the marketing part after this release, and will work on what's currently ruining the game–not enough fun. To add fun, I won't work on fancy things like lighting, day-night cycle, liquids, even sound, for a while.
Instead, I'll focus on the block editor, character and npc editor, item editor, recipe editor and how these things interact with each other. You know, the survival mode stuff. And I won't stop until it would be at least a bit fun to play the game. Stay tuned!
2 notes · View notes
gameofworlds · 11 years ago
Text
Drawing as a programmer
Today I want to tell my story of how drawing helps me write better code.
No more than 1.5 years ago I didn't know how to draw anything more complex than a human-like figure made from 5 lines and 1 circle. Nor did I believe that I ever could or will. I was wrong.
Tumblr media
If you can draw this, you can draw anything.
One day Hacker News had a nice article about books that help you improve in unusual ways, self-help books without intentionally being about self-help. The article had a nice pick of titles, but the most promising one was 'Drawing on the Right Side of the Brain', because the idea that drawing is actually easy, pitched right through my mind.
And when I finally got it and started to read... magic happened. This book is one of the best 'how-to' books ever written, and it does its job in a really special way. It doesn't show you drawing techniques and it doesn't want you to draw simple shapes as you would think. It starts by showing that you can draw with simple exercises, and reinforcing your confidence about your drawing ability forever. And that was all I ever needed.
It really comes as a revelation.
I went through the book, finished almost every exercise, and stopped. I stopped because the book already fulfilled my desire - desire to know that I am not hopeless in a field of drawing. I didn't know what to do with my newfound skill, so I switched on to what I've done in my spare time before - coding the game this blog is about. And I didn't draw. Until about 3 months ago.
You see, when you're working on a video game, you naturally play and analyze a lot of other video games, just to be a better video game designer. And when you're playing other video games, especially indie ones, your mind sometimes comes with the notion: 'Wow, this is really nice art, I wish I could draw like that', and then instantly to: 'But there is nothing that stops me, because I know I can draw after that awesome book'. And, after a couple of strokes like this, I just couldn't keep myself from pencil and paper anymore.
I started sketching again. At first I did it after job hours, in my spare time, but then I noticed that, after acquiring some basic knack, I can draw simple sketches quickly, so I tried to have drawing breaks when I got stuck with a new coding problem in my head. And to my surprise, my productivity rose.
Every software engineer worth a dime knows that programming is more about thinking, than typing code (and if you do not agree, you should probably go do copywriting or something). When you work on a hard problem, you think, think, think, read an article on your current topic, think, maybe do some tinkering here and there, think again, get an 'AHA' moment, and then, only then do typing.
But there is a subtle problem in this approach, at least for me. I can procrastinate between parts. Because focused thinking is hard, and checking email and twitter feed is easy. It's a known problem in the field, and I consider myself in a constant state of war with my slackier self, employing useful weapons, which sadly do not address the core of the problem, but help to focus a lot nevertheless. And drawing is a latest weapon in my armory.
So now I do one or two daily drawing breaks, when I feel tired and in a need of some mental replenishment. I draw simple sketches, copying images I like, or just doodling around. I give myself 20 minutes max, and that is more than enough in most cases. And I feel better after that.
2 breaks x 20 minutes = this pic and a less tired mind
I do not know why it is working for me, but I think main two reasons are:
Drawing doesn't break the workflow. Drawing is work too, just a different kind. Maybe even symmetrically different to logical work as programming. Reading twitter feed however can break your workflow faster than a sledgehammer breaks a bulls skull.
Drawing 'uses' different parts of the brain than programming, and the brain kind of sorts out your previous thoughts while you draw. This is absolutely unscientific observation, and you probably shouldn't believe me. But I still think it does.
Recreation is not the only reason I draw, but it's certainly a big one. And it helps other causes. Hope you enjoyed the read!
UPD: I was able to find the original article, here it is: http://nabeelqu.com/blog/surprisingly-undervalued-books/
241 notes · View notes
gameofworlds · 11 years ago
Text
A little post about progress #3
I have some good news! I got it to the point where client now connects to the server, gets all the data about the world, like textures, available blocks, etc, and then loads all the chunks in real time. That's a substantial progress for me, cause I now know much more about how networking works. Now I just have to implement players interaction, and this is going to be a lot of fun.
I thought that it would be a good idea to make a video about how connection to the server and playing works now. I just need to find some time to do that. So yeah, multiplayer is coming.
1 note · View note
gameofworlds · 11 years ago
Text
A little post about progress #2
So, I think it's important for people to know what I've been doing lately, so here is a little update. I'll be writing them from time to time. I thought that I finished all necessary work on world loading from server, and found that I missed a really critical part. The thing is, I save all information about the world in one file called 'game bundle'. All information but textures. Since it's impossible to invent a better common usage image compressing than smart guys already did with 'png' and 'jpeg', I just store texture atlases as 'png' files. And of course they weren't being sent from server to the client. So I started to work on that just to find that I haven't finished work on multiple atlas files, cause to have even two atlas files would require having about 4000 textures. So I wrote a procedure that generates around 5000 textures, and tried to build the game. Then I tried and fixed, tried and fixed until I made it work. And I implemented a nice filters for lists in the process:
Tumblr media
So the good news are the game now supports 5000 textures, and probably much more. And a way to filter them. Not so good news are that I haven't finished work on transfering all atlases to the client. But I'm working on it. And I also started to learn drawing and bought myself a new year present, a drawing tablet. Because by the time I finish Worlds, I want to make my next game with some ART, you know. You can see my progress at http://mydrawingpath.tumblr.com
So now a have another hobby by the side of my hobby game project. Cause WE NEED TO GO DEEPER
Tumblr media
Oh, and Happy New Year everyone!
0 notes
gameofworlds · 12 years ago
Text
A little post about progress #1
So, I'll write here what I need to do to get to the next update. Next update will be all about multiplayer, so I'm currently building an infrastructure that will make it possible. The thing is, any multiplayer game that has even a little bit of dignity about itself must implement these things: https://developer.valvesoftware.com/wiki/Source_Multiplayer_Networking Simply put, if I don't implement them, multiplayer will lag and suck a lot, and will be no fun. So that's what I'm currently working on, and probably will work for a while. But that's not all what I need to do, I'll write about other things after I finish these.
0 notes
gameofworlds · 12 years ago
Text
Terraria network protocol
Tumblr media
While making my first networkable build I was constantly looking for a good examples of networking patterns and code implementations in different games.
How great that I was able to find a complete network protocol for Terraria, a game that has a lot of similarities to Worlds. It's a very descriptive read, it breaks things down to the bytes. Thanks to the author! If you are new to game development, but already have to write a networking code, definitely take a look!
http://seancode.com/terrafirma/net.html
0 notes
gameofworlds · 12 years ago
Text
Breaking the bundle
OK, this will be a technological post, basically written by myself for myself, so I don't forget what I've invented.
I have a tough problem of sending large data packets from server on first connect. These data packets are none other than the world that the client would be playing in. As players could create any amount of content, transferred file could have the size anywhere from 2KB to gigabytes of data, which should be transferred by unreliable UDP protocol. I thought of two ways, one is simple enough to be a first iteration but unreliable, and second is more reliable, and will continue to download the world bundle even if you lost connection to server or such. First involves just sending the CompiledGameBundle save to the client, if he doesn't have the bundle already, or the bundle has been changed by the server while the player was offline (online changes would be handled differently when on-the-fly mode would be implemented)
Second way is more complex, and it would involve part-by-part receival of game bundle (textures, then blocks, then objects, etc). This would open the possibility of bundle synchronization on subsequent connections to the server, and you shouldn't redownload everything if you lost connection or server changed the world.
I'll implement the first one now, and postpone the second way until the time when players will create worlds with large amount of content.
0 notes
gameofworlds · 12 years ago
Text
Worlds prealpha v6 update
Tumblr media
What's new:
- Simple shading, but makes game look much better.
- Resolution change
- Nicer sky color - XNA installer included with the game now  
Fixes:
- Attempted to fix known lags on 2-core processors when removing chunks, but still not a full solution to the problem.
0 notes
gameofworlds · 12 years ago
Text
First client-server connection of Worlds
In this historical evening I finally was able to connect two lost souls: Worlds client and Worlds server. I'm even proud a little.
0 notes
gameofworlds · 12 years ago
Text
A client/server screenshot
I'm working on multiplayer now, so I made a screenshot of how client and server would look like
Multiplayer is essential and should be designed very early, pretty much every book on video game development says that. Plus it's one of the main things that made Minecraft so popular, I believe, so I hope to ship first multiplayer version soon. I'm struggling with some problems, cause I'm not experienced in raw network programming, but I'm pretty sure I'll make it, because I have awesome Lidgren framework at my back.
0 notes
gameofworlds · 12 years ago
Text
Object editor showcase
I wanted to show what I like the most about object editor, so I made a video. And then I made gifs from it for the better future!
Here they are.
At first, we show that there are simple trees in our world:
Then I show how to update the trees:
And then the end result:
Full video could be found here.
0 notes
gameofworlds · 12 years ago
Text
Worlds prealpha v5 update
Tumblr media
A update that adds ability to load and share worlds more easily. 
What's new:
- Loading of default worlds on first game run
- Ability to load worlds from special local folder
- Ability to load worlds from URL (you can try with http://gameofworlds.net/static/downloads/WorldsSave.zip, although this one would be included in the game automatically if you download the updated version)
Bugfixes:
- Fixed nasty object eating bug
I'll probably make a tutorial video on how to share worlds later.
0 notes
gameofworlds · 12 years ago
Text
Object eating bug
So I've been fixing this bug all week and now it seems it has almost totally gone. I'll try to illustrate this bug. Let's say I created a simple structure in object editor and distribute it instead of trees in my "natural" world:
Tumblr media
In bug times this would look like this:
Tumblr media
As you can see, structure has been "eaten" on chunk border.
Well, after fixing it looks like this:
Tumblr media
Which is great.
0 notes
gameofworlds · 12 years ago
Text
Cube World silence.
It seems that Cube World and its developer Wollay is very silent about his game after alpha release. And everybody is mad at him of course. This is bad because he is the one of my inspirations actually, and the game is pretty good looking. I know that he previously had problems with DDoS, I hope there is no secret voxel war going on. And I hope I'll never have to hide from my players.
Tumblr media
0 notes
gameofworlds · 12 years ago
Text
Attack of the clones
So today I thought it would be nice to count how much times I would be asked about "Is this another Minecraft clone?"
If you read this, you probably understand the difference between Minecraft and Worlds, but this question is here to stay.
For the second week of promotion it happened around 5 times. It will be asked and asked again, but I'm glad I can honestly answer "No, it's not".
Tumblr media
0 notes
gameofworlds · 12 years ago
Text
Worlds prealpha v4 update
New stuff:
- Fly mode (press F1)
Also fixed some rendering issues and game-crashing bugs.
Thought of the day: the only possibility that if I'll make a decent character editor, somebody would make an ancient psychic tandem war elephant is driving me nuts and forward.
Tumblr media
0 notes