Welcome, Guest. Please login or register.

Login with username, password and session length

 
Advanced search

1411588 Posts in 69386 Topics- by 58443 Members - Latest Member: Mansreign

May 06, 2024, 03:11:17 PM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsCommunityDevLogsBlink - A Multiplayer Management Game in Space
Pages: [1]
Print
Author Topic: Blink - A Multiplayer Management Game in Space  (Read 3827 times)
Layl
Level 3
***

professional jerkface


View Profile WWW
« on: February 26, 2014, 07:58:25 PM »

Blink is a multiplayer focused top-down management game. Its gameplay is a combination of Dwarf Fortress style management, where your ship is your fortress and a pirate installing a brand new door in the side of your dining hall is the fun, and FTL style ship to ship combat. The name "blink" is what the NPCs in this game call the start of the world (world gen), when everything suddenly popped into existence including entire developed space stations and ships.


Latest Dev Screenshot

Current Completed Goals:
- Basic player input
- Basic multiplayer
- Basic textures
- Basic collision detection for units
- Basic ship movement

Current Development Goals (mostly in order of importance):
- Basic NPC unit movement
- Basic ship to ship combat
- Ship fuel and refueling hoses
- Some way to connect to something else than 127.0.0.1
- Ship to ship collision
- Oxigen and atmospheric systems
- Unit EVA and airlocks
- Ship building
- Resources and mining
- Shops and NPC run space stations
- Data persistence between server shutdowns
- NPC run hostile space ships
- NPC run friendly space ships (traders/transporters)
- Ship boarding
- Player run shops and space stations
« Last Edit: May 17, 2014, 11:23:37 AM by Layl » Logged
Layl
Level 3
***

professional jerkface


View Profile WWW
« Reply #1 on: February 26, 2014, 08:02:47 PM »

Development Update #1
Made this thread so I finally start making lists and keeping track of what is done and what has to be done. Just finished adding structure sync between server and client and added rendering code for the floors and one of the walls.

All the graphics are still placeholder squares and I need to add stars to the background. The camera doesn't even follow the player yet. I've got in the screenshot below two clients connected to the server, position being synchronized with a little example ship behind them.

Logged
Layl
Level 3
***

professional jerkface


View Profile WWW
« Reply #2 on: February 27, 2014, 12:18:14 PM »

Development Update #2
Finished the wall rendering code and changed the starting ship to have some more walls. The starting ship is the absolute minimum a ship can be in this game without being entirely useless. It will have a small cargo space where the space suit is kept for EVA, an airlock, 2 small engies, a cockpit, a small corridor, a life support system and a battery. It will have no means of recharging its energy so you'll have to periodically dock at a station to recharge.

The starting space ship without textures, objects or doors.
Obviously you can't fit a crew in here so you're encouraged to expand as soon as possible, this ship is just to learn the ropes and for travel.
« Last Edit: February 27, 2014, 06:27:49 PM by Layl » Logged
Layl
Level 3
***

professional jerkface


View Profile WWW
« Reply #3 on: February 27, 2014, 06:36:15 PM »

Development Update #3
Some more rendering work, really am enjoying writing rendering code. Added basic texture support to the engine and hard-coded tile ID 2 to use an example texture (made by someone else for this project). Refined the code a bit then added some stars in the background. Really amazing how suddenly when you add stars the game changes from a few random shapes to something vaguely recognizable.
I'll tomorrow try to add a more flexible way to define textured tiles.
« Last Edit: February 27, 2014, 06:42:30 PM by Layl » Logged
Layl
Level 3
***

professional jerkface


View Profile WWW
« Reply #4 on: February 28, 2014, 03:37:00 PM »

Mini Update
Didn't get much done today, I got a start on the backend for tiles in, but tile IDs still need to be synced over network. So instead I've got a little screenshot taken from my test code for generating ship names. This has as input a list of StarTrek ship names (USS stripped away) and EvE online ship names. It uses Markov chains to generate the names.
Logged
Layl
Level 3
***

professional jerkface


View Profile WWW
« Reply #5 on: March 04, 2014, 07:17:45 PM »

Mini Update
Another small update, took a break from this project in the weekend, during which my life got consumed by the big blob that is Space Station 13. Here's a quick screenshot of the small progress I made since I got back to work. Sure is quiet here...
Logged
Layl
Level 3
***

professional jerkface


View Profile WWW
« Reply #6 on: March 06, 2014, 02:51:23 PM »

Development Update #4
Mainly working on back end stuff, so I thought it would be nice to explain the way the modding API works. I try to put everything that isn't generic and part of the core engine (mostly game specific stuff) into a plugin named "SQCore". I guess it would have been better named "Blink" but back when I named it I didn't have a catchy name yet.

In this plugin, currently, there's stuff like:
- The stars in the background
- Ship/Station Tiles, Objects and Walls
- Spawn logic, like spawning the player starter ship

I'll be trying to move as much of this kind of stuff into the plugin system as I can. This way modders will have access to the same flexible systems I'm using to create the game. The entire engine is from the ground up built to support this. Even the networking part of the engine has built into it that it checks if the correct mods are installed. The client will only load the mods a server needs, and allows you to install multiple versions of the same mods to make sure two servers with different versions of a mod won't require you to constantly swap out folders.

To avoid stuff like Minecraft's item and block ID collisions, the engine is designed to automatically allocate IDs using identifier strings. For example, a packet channel named "structures.physics" might map to 4, or 7, or 24. Whatever it maps to, the client will get told by the server. The same way, tiles with as string ID "metal.generic" or "metal.corridor" will be mapped to a numeric ID as well, with the server keeping the client up to date on what those mappings are.
Logged
Layl
Level 3
***

professional jerkface


View Profile WWW
« Reply #7 on: March 07, 2014, 07:12:21 AM »

Development Update #4
I guess it would have been better named "Blink" but back when I named it I didn't have a catchy name yet.
Oh right I can just rename it.

Yeah I'm just gonna do that.
Logged
jonkk
Level 0
***



View Profile WWW
« Reply #8 on: March 07, 2014, 09:09:01 AM »

I like the look of this, even if it's super early! Look forward to seeing where this goes. Smiley
Logged

Layl
Level 3
***

professional jerkface


View Profile WWW
« Reply #9 on: March 07, 2014, 06:52:40 PM »

I like the look of this, even if it's super early! Look forward to seeing where this goes. Smiley

Thanks, responses like that help me through bugs like "players on joining randomly see other player's character on their ship or a phantom static character" Crazy
Logged
Layl
Level 3
***

professional jerkface


View Profile WWW
« Reply #10 on: March 07, 2014, 11:25:31 PM »

Here's a quick little update, with some help from people I've improved the stars in the background a lot. They look a lot better now. Other changes are mostly back-end and refining existing stuff. Also I've fixed some of the issues with parenting the camera to ships and it all works a lot better now.
Logged
Layl
Level 3
***

professional jerkface


View Profile WWW
« Reply #11 on: March 27, 2014, 02:32:39 PM »

Long overdue update! I've put the project to the side a week but am now back working on it. Mostly boring background stuff but here's a screenshot of me in the UI debugger trying to figure out why the the iframe doesn't load. The library I'm using for the game's UI is Coherent UI. The reason for this is that with Coherent UI, I get access to all the fancy JS libraries that exist, meaning I can make complicated stuff like graphs a lot easier.
Logged
Layl
Level 3
***

professional jerkface


View Profile WWW
« Reply #12 on: April 07, 2014, 04:42:17 PM »

Quick little update. More background work, here's a picture of something I've been messing with for the debug screen. Did I mention I love doughnut charts and pastel colors?
Logged
Layl
Level 3
***

professional jerkface


View Profile WWW
« Reply #13 on: April 18, 2014, 02:06:19 AM »

Another long overdue update! I've been working on the UI a bit more. I've finally added a connect form, though the entire UI part of the game engine doesn't listen to input yet. Here's an in-engine screenshot of it. The style is blatantly ripped from heavily inspired by the steam Air skin.
Logged
Layl
Level 3
***

professional jerkface


View Profile WWW
« Reply #14 on: April 19, 2014, 11:42:16 AM »

Productivity strikes! Here's some progress on the in-game UI, specifically the chat. The thing I'm aiming for is a chat system very similar to Space Station 13, but streamlined to make it easier to work with. To toggle talking or viewing a specific channel, the player simply has to toggle the button for it.
Logged
Layl
Level 3
***

professional jerkface


View Profile WWW
« Reply #15 on: May 08, 2014, 09:03:52 AM »

More back-end and small changes. I overhauled the network back-end to be a lot easier to use in plugins and have functionality better divided, a bunch of changes have been made causing OpenGL resources to now be better cleaned up, and the GUI system got some minor improvements.
Objects now have an OnUse function allowing players to interact with them. Using this, the pilot seat is now usable, though it does not control the ship yet.
The repository for the game has been moved as well to our new GitHub organization account. It can be found here. The latest commit at the time of writing this post is 251bdc9380.
Logged
Layl
Level 3
***

professional jerkface


View Profile WWW
« Reply #16 on: May 17, 2014, 10:30:49 AM »

It's finally here! Ship movement! Who would have thought that a game about space ships would ever have ship movement! What a time to be alive...
This took quite a lot of background work to get working. Needed to add seats, a system for sending data between client and server world objects, needed to finish the syncing code for structure position.
The latest commit at the time of writing this post is 3af43bb6b4.

Finally a new screenshot to put on the top of this thread!
Logged
Layl
Level 3
***

professional jerkface


View Profile WWW
« Reply #17 on: May 20, 2014, 02:44:54 PM »

Another update! I'm moving towards separating the Blink code from the engine code and putting the two into different repositories. When that's done I'm going to write a series of tutorials for creating a game with the engine, hopefully making it useful for people.
Meanwhile in Blink I added a basic teleporter object. It moves you to a random other teleporter in the game. This finally adds some much needed movement between ships. Up next I'm planning to give teleporters a distance restriction and add full GUI for using them and selecting a target.
Logged
Layl
Level 3
***

professional jerkface


View Profile WWW
« Reply #18 on: June 03, 2014, 05:19:27 PM »

Quick little update! Not much happened to the game itself, I added some graphics but nothing more. The engine however is going through some major restructuring in the GUI sections. I'm removing all dependencies to Coherent UI and replacing the functionality with a GUI system I am writing myself. Coherent UI will still be available through an extension library, but after this is done you will not need to license it to build and use the engine.
Below is a screenshot of the new connect window using this new GUI system. The way Coherent UI will still be made available is through HTML view GUI components, but not anymore as full screen panels. Overall I'm really enjoying how this worked out. For the way the game engine is set up it's a lot cleaner to do it this way since the GUI persists when connecting.
Logged
Layl
Level 3
***

professional jerkface


View Profile WWW
« Reply #19 on: June 08, 2014, 01:49:03 PM »

Quick little update, starting to get physics working!
Logged
Pages: [1]
Print
Jump to:  

Theme orange-lt created by panic