Jump to content
  • Advertisement
Sign in to follow this  
  • entries
    23
  • comments
    2
  • views
    596

About this blog

Follow the development of Corepox, where you build and battle autonomous spaceships in a survival of the smartest.

 

Feature Graphic.png

Entries in this blog

 

Corepox Explained: the Core

In this devlog, we will focus on the Core: a critical component of each spaceship. The core represents you, the AI pilot. It is very important that the core remains intact during battles. The loss of the core will lead to defeat.
Here is what it looks like when a core is destroyed.

Read the full article at corepox.net

Tom Larkworthy

Tom Larkworthy

Simple, Extensible, Performant, Low Cost Web Serving using Firebase Hosting

We just rebuilt the Corepox website to improve performance and to extend our functionality with custom pages generated from game data. The website scores 99/100 on a page speed test, and cost less than $5 to host and can be extended and scaled horizontally We think the architecture might be of interest to other indie developers who are looking for highly customizable, high performance but low cost serving technology. Read the full article at corepox.net  

Tom Larkworthy

Tom Larkworthy

 

Corepox Explained: the Lazer

Today, we will discuss the lazer: a component that can help you destroy your enemy. A lazer shoots when its’ input is greater than zero. If no input is provided, then the lazer’s input is assumed to be 1. If the input is zero or negative, then the lazer does not fire.
Here, you can see a small demonstration of the lazer. The lazers with positive or no input, fire a long range pulse of damage with the same shooting power. The actual value of a positive input is not proportional to the power of fire. The lazer with zero input, doesn’t shoot at all.

Read the full article at corepox.net

Corepox Explained: the Engine

In today’s devlog we will be talking about the engine: a vital component to any moving spacecraft. The engine gives a propulsive force proportional to the numeric value of its’ input. If the input is lower or equal to zero, then it is counted as zero and the spaceship remains idle. Here, you can see a brief demonstration on how the input of each engine affects the speed of each spaceship. As you can see, the bigger the input is, the faster the engine is.   Read the full article at corepox.net  
 

Website Upgrade Complete! Mobile Users Rejoice

Yay, we have migrated to a new provider. Quite a lot of new pipes were installed, which has improved our page speed a fair bit, particularly for mobile users. The old Wix site was particularly annoying for having a jerky cursor which is the terrible input latency. It took 30 seconds before you could interact with the page too!!! Mobile Page Speed for Wix siteDesktop users were not treated quite so bad, but still noticeable input latency.The new site is a vast improvement, though still room for improvement on mobile. No more jankyness! Mobile latency is smashed, most stats are improved except time-to-paint. I think Wix games that metric though.Wow, the desktop site scored 99/100The other improvements are that the site is responsive now, and I added some proxying so I can mix-in Google Cloud Functions under the same domain and behind a common CDN. I’ll explain that stack in another post. It took 4 full days to build migrate, which is time I would prefer to use coding on the game, but I think the results are worth it!
Read the full article at corepox.net
 

Web site migration

Hi, our Wix.com website performance has not been satisfactory. Pages are slow, sometimes content does not load, the mouse jerks around etc. So I have been preparing to move host, which should go live over the next day. I've been testing the new site and there are a few things to get right that I can't test in advance, and the consequence of misconfiguration is emails get marked as forged. Fingers crossed I can do this correctly, but if you see some weirdness tell me about it at tom@corepox.net and know that its probably just a symptom of the move. Here is our bad google page speed test at the moment. Fingers cross those numbers go up soon! I particularly dislike the input latency slowness, this is Wix using a lot of clientside javascript rendering on the main thread which is causing the jerky pages. Wix has a lot of great features. I love the speed I built the site, and the widgets are gorgeous. However, the site isn't responsive and I can see mobile users are abandoning the site. So reluctantly I have to say goodbye to Wix.
Read the full article at corepox.net
 

Top ships

Some are monolithic, some are swarms, some use hyperdrives, some do not. The design space is massive! These are a selection scraped from our tester’s leaderboard.
Read the full article at corepox.net
 

Corepox is now on #instagram

You can now follow Corepox on Instagram @corepox.game. On Instagram, we will be sharing pictures & stories giving you a sneaky peak on what happens behind the scenes during Corepox development. Follow us now!
Read the full article at corepox.net
 

Corepox explained: the Constant

Today we look at the most used component in Corepox spaceships, the constant. A constant is basically a numeric output. It is one of the simplest components in Corepox. However, its meaning and magnitude changes according to the number configured & the part that is connected to. Below there are two cases that show how the constant’s meaning and power, changes in different situations. Engine <-> Constant Constant connected to an engine An engine has an input which symbolizes its thrust. When connected to a constant, the speed of the engine is proportional to the value of the constant. If the constant is zero or less, the engine is off. Engine <-> Lazer Turret Constant connected to a lazer turret The lazer turret has an input that defines the direction the turret shoots. This input is called the angle input. When a constant is connected to the turret, then the turret will fire in the direction the constant specifies. Depending on each spaceship design, this component can change power and magnitude. Now, it’s up to us to discover how to use it wisely to make our battles victorious.
Read the full article at corepox.net
 

The Joy of Player Designed Ships

I am overwhelmed by the variety of designs that early testers have developed. Some of these ships solve problems in less components than I thought possible, and this is the point of Corepox. We are exploring the design space together!
Here are a few choice designs I found today
The Turreted Tank
This medium sized ship features three turrets. The outer turrets are steered by dedicated radars, while the center turret is steered by averaging the two adjacent radars! It also has two unguided explosive missiles pre-launched. This ship is likely to remain partially operational even when a radar is destroyed thanks to the redundancy. It just keeps fighting.
The Hunter
This compact small ship is brimming with lazers. It has an innovative reversed radar guidance system which increases its turn speed. This means this ship will be able switch to new targets very quickly. It has additional armor protecting its critical binary component.
The Multiship
This is likely the strongest ship of the three. In battle, enemies will tend to concentrate firepower on the top left gun drone. Meanwhile, the fixed turret station is using a radar to aim a single lazer accurately.
The gun drone shows some serious engineering by possessing a guidance system that doesn’t require a binary function! That’s a pretty smart size optimization that illustrates how thoughtful ship design provides advantages in Corepox.
I can’t wait to see other unexpected innovations in the Corepox universe!
Read the full article at corepox.net
 

Happy holidays from Corepox!

I remember playing Lego when I was a child to create beautiful structures that matched my imaginary world.
With Corepox you can do that too.
You can create a ship that looks any way you want. The magic of modular designs allows your creativity and makes your ship unique: your own fingerprint.
Happy holidays 2018! Phoenix
Read the full article at corepox.net
 

Serverless Unity Game Hosting

You can run Unity in a serverless function, with graphics, in less than 70 lines of code! Full demo code is on github.
But why? Serverless is a new cloud trend, you place a snippet of application code in the cloud, and let the cloud providers spin up resources to execute them per execution. It completely eliminates idle serves saving money when you have low traffic, its stateless, its simple to use and it scales massively when you have high traffic bursts, yet scales to zero (i.e. free) when you have no traffic!
It sounds awesome (and it is), but there are some drawbacks, you need your application code to run in docker (implying linux). For corepox, I want to be able to render game replays which requires running the Unity binary. Despite the linux build options, I was unable to coax headless rendering into working on systems without GPUs. You can get GPUs with VMs, but gets real expensive fast (>$600 a month). Plus, I don’t want to manage a VM anyway, its a headache. I want serverless! But how to get rendering to work?
Here is the solution. 1. Chrome now ships with a WebGL software rendered called swift shader. 2, Unity can compile to a wasm WebGL application. 3, You can run headless Chrome within a function. So, putting it all together, you run Chrome in a function, which pulls your Unity WebGL build and runs it. At this point you have your game running in a function!
Its dynamic too, you can pass in arguments to your game binary via the URL query string, and you can read messages from the running game via console instrumentation! I use the latter to trigger when a screenshot is taken. Chrome can take a screenshot of a DOM element, and pass the image data to the function, then the function can return that to the requester as an image/png. A http function becomes an ordinary web image link, whose content is dynamically generated by a unity binary that can read the URL query string.
Its a wobbly tower of technology, but the code required is trivial. I have a complete demo of a screenshot service on github. Its 70 lines of custom code (mostly URL parsing, :s)! I’ve included the full WebGL build too so you can test the idea on your own infrastructure without compiling anything. Here is the custom code:
The Unity scriptThe snapshotter.cs is a custom behavior inserted into the starting Unity scene. It reads the URL, to alter the color of a text component. It waits for a frame to render before emitting a special log message. Very trivial. You then generate a WebGL binary, then upload it to a storage bucket to serve. You can do this in one action at console.cloud.google.com/storage/browser by using the upload folder option. You do not need this to be world readable as functions can be given storage access. However, I uploaded the demo as world readable so you can see the binary in the flesh in your browser yourself now. Try changing the r, g, b params in the URL: https://storage.googleapis.com/public_website/examples/unity-serverless/build/index.html?r=0.5&g=0&b=0.4This is the link the Cloud Function will see in its own instance of Chrome. You can see the Unity log output in the DevTools console.
The Google Cloud FunctionThe GCF function copies its own URL params to a url passes to a Chrome instance. We then wait until we see the special console message and take a snapshot focused on the div hosting the game. That snapshot data is returned with an image content type. To deploy the function you run:
gcloud beta functions deploy screenshot_example –trigger-http –runtime nodejs8 –memory 2048MB
We max the memory as that also maxes the CPU power too. Once its deployed you can visit the URL in your browser and get a simple an image back! (note its dog slow, like 30 seconds)
https://us-central1-corepox-staging.cloudfunctions.net/screenshot_example?r=0.1&g=0.9&g=0.3
Voila! Its works! That image was generated by dynamically running Unity, serverlessly, using Swift Shader to avoid a hardware GPU dependency!!!
Gotchas Unity throws OpenGL errors if anti-aliasing is on and fails to render. Switch it off in the Quality settings!
I am pretty sure the same idea would work in an AWS Lambda too.
Read the full article at corepox.net
 

The Corepox Devlog

This Devlog is about gameplay, tech and business.
I’ll be posting short blogs about the game mechanics and graphics. I’ll also be posting larger posts on how I build, monitor and monetize the game. So stick around if that interests you!

Read the full article at corepox.net

Top ships

Some are monolithic, some are swarms, some use hyperdrives, some do not. The design space is massive! Read the full article at corepox.net

Tom Larkworthy

Tom Larkworthy

 

Corepox is now on #instagram

You can now follow Corepox on Instagram @corepox.game. On Instagram, we will be sharing pictures & stories giving you a sneaky peak on what happens behind the scenes during Corepox development. Follow us now!
Read the full article at corepox.net

Tom Larkworthy

Tom Larkworthy

 

Corepox explained: the Constant

Today we look at the most used component in Corepox spaceships, the constant. A constant is basically a numeric output. It is one of the simplest components in Corepox. However, its meaning and magnitude changes according to ... Read the full article at corepox.net

Tom Larkworthy

Tom Larkworthy

The Joy of Player Designed Ships

I am overwhelmed by the variety of designs that early testers have developed. Some of these ships solve problems in less components than I thought possible, and this is the point of Corepox. We are exploring the design space together!  Read the full article at corepox.net

Tom Larkworthy

Tom Larkworthy

 

Happy holidays from Corepox!

I remember playing Lego when I was a child to create beautiful structures that matched my imaginary world. With Corepox you can do that too. You can create a ship that looks any way you want. The magic of modular designs allows your creativity and makes your ship unique: your own fingerprint. Happy holidays 2018! View the full article

Tom Larkworthy

Tom Larkworthy

Missiles are space ships too

The core gameplay of Corepox is designing spaceships to fight other players or solve missions. I used to love unit customization in games, but most only allow you to change the weapon assigned to a predefined weapon slot, rather than radically rethinking the whole assembly. With Corepox I want to go so much further than that. During early prototyping, I had an epiphany that a missile is really just a dumb spaceship with explosives on the end. In Corepox there is no "missile" weapon, instead, you add an engine to some explosives and launch it. From there, you start thinking about how big a missile should be. Should you fire several small ones or one big one? Is it worth putting a gun on the end? Should the explosives fire on contact? Or should you detonate slightly early to form a damage cone? What about missiles with melee weapons? Is guidance worth the weight? I don't know the answers to these questions yet, we have to figure it out together on the battleground! View the full article

Tom Larkworthy

Tom Larkworthy

 

Get updates

Follow Corepox development at https://www.corepox.net/devlog or on Discord, Twitter and Facebook. Build and battle autonomous spaceships in a survival of the smartest.
View the full article

Tom Larkworthy

Tom Larkworthy

Building a Custom Executive Dashboard with Firebase Analytics, Google Datastudio and Bigquery

An executive dashboard is a one page data summery of your game that you should look at everyday. While many analytics products come with their own dashboards, they are unlikely to provide the ideal information density for your specific game at your specific point in your development cycle. That's why I am a big fan of building a custom dashboards, so you get exactly the data you want, and no more, and in this post I will show you how, all without requiring servers! View the full article  

Tom Larkworthy

Tom Larkworthy

 

Copy of Website is up!!!

The website is here. I just quit my cushy job in San Francisco (Google Firebase) to make a game! Presently, I am in Cyprus, and without a decent laptop. So I am setting up the marketing for the upcoming game Corepox. The website is the hub of the various efforts. It links out to other social media also under construction - @corepox on Twitter - https://www.facebook.com/corepox - The all important email list Anyway, thanks for reading and enjoy the ride! #ComingSoon
View the full article

Tom Larkworthy

Tom Larkworthy

Sign in to follow this  
  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!