Welcome, Guest. Please login or register.

Login with username, password and session length

 
Advanced search

1411428 Posts in 69363 Topics- by 58416 Members - Latest Member: JamesAGreen

April 19, 2024, 12:05:47 PM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsCommunityDevLogsLiberation Circuit: Rogue AI Simulator (version 1.3 - 15 April 2017)
Pages: 1 [2] 3
Print
Author Topic: Liberation Circuit: Rogue AI Simulator (version 1.3 - 15 April 2017)  (Read 12498 times)
MereMonkey
Level 2
**


Creator of Music


View Profile WWW
« Reply #20 on: October 10, 2015, 05:03:42 AM »

Cool ship designs!
Logged

My Site  -  My Twitter - *GASP* MY SPINACH PUFFS!
lithander
Level 3
***


View Profile WWW
« Reply #21 on: October 29, 2015, 12:22:51 AM »

Okay, third try at the fog of war effect:



This one's my favourite so far.

Very very nice! Smiley
Logged

linley
Level 0
***



View Profile
« Reply #22 on: December 19, 2015, 06:27:13 AM »

Well, development has been ticking along slowly but kind of steadily. Here's an update:


This is a harvester process gathering data from a data well. You can see its movement objects at the back, its harvest object at the front, and one data storage object on each side. The yellow centre of the data well indicates how much data is presently available, and the orange things around it indicate its reserves (from which the available data will be replenished gradually).

Data is the basic currency of the game's economy; you need to gather it from data wells and bring it back to a process with an allocation object, which makes the data available to build new processes. Or you could use a builder process to build an allocator process near the data well (an allocator process is immobile).



A process with long-range attack objects engages an immobile defensive process. The attacker has front-facing move objects which allow it to move backwards to keep its distance, although if it loses sight of its target it will probably stop firing unless it has a spotter (all processes on the same side share vision, with some limitations) or is configured to keep firing blindly.




A couple of larger processes face off. Each is partly protected by an interface (aka a shield) which can absorb a large amount of damage, but once it goes down the process can be destroyed component by component.
Logged

TobiasW
Level 8
***


This can only end brilliantly!


View Profile WWW
« Reply #23 on: December 19, 2015, 08:01:56 AM »

I'm loving the visuals and the theme of this. Looking forward to seeing this progress further!
Logged

linley
Level 0
***



View Profile
« Reply #24 on: March 02, 2016, 04:14:10 AM »

So progress has been steady but slow...



These are autonomous (i.e. not user-controlled) processes - the large yellow one is a kind of leader which broadcasts a signal to other nearby processes, and the little yellow ones are followers that listen for the signal and, once they find it, swirl around the source. The blue process had some followers too, but they didn't make it Sad

I've changed the fog of war effect again. I liked the look of the one I had before (the animated gif up the page) but the overall effect was kind of oppressive, as if there were always dark clouds rolling across the screen and closing over the player's vision. Also changed are the packet (bullet) and move object (engine) effects - now they look kind of like waves rippling along, instead of like more chunks of flat-shaded pixels.

And I just realised a few days ago that one of the fixed-point maths functions I was using (hypot) was secretly calling a floating-point function and converting the result back into fixed point. That's not good, because if I want the game to run consistently across as many different systems as possible I can't use any floating-point stuff in the gameplay code (there's plenty in the display code, though). Fortunately it turned out to be easier than expected to implement an integer-based sqrt, and not much slower.

Now I'm working on the manual. I know no-one reads manuals anymore, but this game really needs a readable specification for the programming API. It turns out that technical writing is not that easy!
Logged

DigitalEelRich
Level 0
***


View Profile WWW
« Reply #25 on: March 30, 2016, 02:07:37 PM »

This looks just great.  Cool concepts & art.  Will follow!
Logged

This isn't science.  It's more like black magic.
- Victor Frankenstein, Bride of Frankenstein
linley
Level 0
***



View Profile
« Reply #26 on: July 05, 2016, 05:44:07 AM »

Sorry for the lack of updates, but it's difficult to make an interesting story out of things like "I fixed a bug in the expression parser" or "now the manual has a few pictures in it".

Anyway, time for a work-in-progress release! Version alpha 1 is now up at Sourceforge:

Windows binary (run LibCirc.exe to play; all data files and the manual are included in the zip)
Source code (requires the Allegro 5 library; should compile on any platform supported by Allegro)

Here's a few minutes of gameplay:



The game is set up to run in a window, in case trying to run in fullscreen is a problem for some people. I suggest editing init.txt to make it run in fullscreen windowed mode if possible.

In this version:
  • the basic gameplay is all there
  • the autocoder generates all the code you need to play it like an RTS without doing any programming (the blue processes in the video are all autocoded)
  • there are 7 increasingly difficult missions to play, including a tutorial
  • asynchronous multiplayer is in
  • there's a (mostly complete) description of the API in the manual

Still to come:
  • rebalancing
  • new components and objects
  • story mode
  • compiler optimisations
  • lots of other stuff

Have fun. All comments/critique appreciated!
Logged

linley
Level 0
***



View Profile
« Reply #27 on: July 06, 2016, 03:44:25 AM »

If anyone is interested in building their own Linux version, bamccaig at the allegro.cc forum has written a bash script to download and build the game (requires Allegro 5, of course). Here it is.

As he points out, Sourceforge has been getting itself a not-great reputation in the last few years. Does anyone know of any good alternatives (for FOSS projects) that are suitable for distributing binaries as well as source? Github seems to be focussed on collaboration through git and isn't really what I need. Maybe Fosshub?
Logged

linley
Level 0
***



View Profile
« Reply #28 on: July 14, 2016, 05:10:45 AM »

Anyway, I'm not sure about the font I used for most of the in-game text; the individual letters look okay, but it's hard to read somehow (part of the problem is that it needs to be fixed-width for various reasons). I'm thinking of going back to an older font with more rounded letters:



(example text from the tutorial mission: the current font is on the top; the new, rounded font is on the bottom).

Yeah, I think the rounded one is the way to go.
Logged

linley
Level 0
***



View Profile
« Reply #29 on: July 17, 2016, 06:14:36 AM »

I had a problem with coordinating units building other units: if there were (say) 3 builders, with 2 of them trying to build multiple cheap units and 1 trying to build an expensive unit, the cheap units would use up all of the resources (data) as fast as they could be accumulated and the expensive unit would never get built.

This would be easy to fix if units had a single command program that could allocate building tasks in a unified way, but not so easy for LC's distributed unit AI. In the alpha release I dealt with it (for the enemy mission AI) by having the builder that was trying to make the expensive unit send out a broadcast asking other builders to stop building anything until the expensive unit was finished. But this was awkward and complicated.

Anyway, my solution was to add a unified build queue for each player, including computer-controlled players. Builder units can add build orders to it, and when one of a builder's orders is at the front of the queue it can execute it with a simple build_from_queue() call. Build commands given by the user through the mouse interface automatically go on the queue (and the user can also cancel orders on the queue or move them up and down). It seems to work!
Logged

linley
Level 0
***



View Profile
« Reply #30 on: July 25, 2016, 03:56:47 AM »



Some progress towards a beta release:

  • A clearer and more useful tutorial
  • Various improvements in the autocoded AI - in particular, it's less likely to collide with the enemy now
  • Less bouncy collision physics
  • A less cluttered interface - the process information box can be minimised now, and the console is smaller
  • Fewer annoying method failure messages for things like trying to build with insufficient data
  • The procedural music now starts off simple, then builds in complexity. It also has several more possible scales
  • The build queue and font improvements mentioned above
  • Better graphics for harvesting, transferring and repairing
  • Support for non-QWERTY keyboards and key remapping
  • Notifications when your units come under attack
  • Follow mode, in which the display tracks the selected process
  • Rebalancing and other minor changes - I think the stream method (the beam thing) is still a bit too good

I still need to do more testing, and update the manual with some of the API changes related to the build queue. I'm also thinking about adding a special chaos mission where the data well placement and the enemy's units are randomised to some extent, which could be interesting. Story mode will have to wait for something closer to the final release!
Logged

linley
Level 0
***



View Profile
« Reply #31 on: August 04, 2016, 05:06:38 AM »

Time for a new release version! Alpha 2 is up at sourceforce:

Windows executable
Source code
Version page

In this version:
  • Many interface improvements
  • A more comprehensive tutorial
  • Some AI updates
  • Some bug fixes (including an annoying memory leak)
  • Lots of other things

This version opens to a fullscreen window by default, so if that will annoy you please edit init.txt before running it (see instructions in the text file).

This video shows the gameplay in more detail, including designing a new process and using the code editor (at the start I copy the code from the tri_base process into template 0, so that the more expensive tri_base process spawns at the beginning).



Logged

linley
Level 0
***



View Profile
« Reply #32 on: August 11, 2016, 07:47:17 PM »

Just added control groups - just like Starcraft 2, you can set a control group by pressing ctrl and a number (1-9) while some processes are selected, add to a control group by pressing shift and a number, and select a control group by pressing just the number (pressing it twice centres the display on the first member of the group).

This stuff is hard. I think the next game I write is going to have a very simple user interface...
Logged

linley
Level 0
***



View Profile
« Reply #33 on: September 10, 2016, 03:22:44 AM »

I'm working on the backgrounds, which have up until now just been tiled hexagons with slightly randomised sizes (although they can be altered to some extent by events in the game). Latest addition: a fairly subtle parallax scrolling effect:


« Last Edit: September 10, 2016, 03:35:00 AM by linley » Logged

Dacke
Level 10
*****



View Profile
« Reply #34 on: September 12, 2016, 04:57:07 AM »

Github seems to be focussed on collaboration through git and isn't really what I need.

git & github/bitbucket do have collaboration features, but that's true for all version control systems. I'm pretty sure distributed version control systems (like git and mercurial) are the best option when working on your own, since you don't have to have a server if you don't want to. The project folder becomes it's own self-hosted repository. Hosting a copy on a server (like github) is completely optional and doesn't get in the way of your own work (just git/hg push your changes to the server if/when you want to) Smiley

for binaries github has "Releases" (https://help.github.com/articles/about-releases/) and bitbucket has a standard download page
Logged

programming • free software
animal liberation • veganism
anarcho-communism • intersectionality • feminism
linley
Level 0
***



View Profile
« Reply #35 on: September 27, 2016, 05:09:59 AM »

I've finally finished something I've been meaning to do for too long - adding drag-and-drop mouse controls to the process designer. I've also improved the selection indicator graphics, which were not very good; now they look like this:





You can drag an object (like the forward pulse object selected here) to move it to any other position on the process, and press shift to copy instead of moving. Objects and components are now rotated by dragging a rotation icon (the red thing with arrows) around instead of holding shift, which was kind of awkward in practice. Components can be moved around in a similar way, by clicking on the links connecting them together and dragging to another position (although copying components is not implemented at the moment). It's much better!
Logged

linley
Level 0
***



View Profile
« Reply #36 on: November 10, 2016, 02:14:03 AM »

Okay, I've *finally* put it up on github Smiley. The version there is very much a work-in-progress, but here it is:

https://github.com/linleyh/liberation-circuit
Logged

linley
Level 0
***



View Profile
« Reply #37 on: January 06, 2017, 03:34:12 AM »

Almost there! All I have left to do is finish writing the AI for the last few missions, and a bit of testing. Plus fixing any problems I find along the way, which is of course the part that takes the most time.

A couple of screenshots, which show the new, improved explosions, the more detailed backgrounds and a number of other changes. More to come!



Logged

linley
Level 0
***



View Profile
« Reply #38 on: February 16, 2017, 06:40:19 PM »

I think it's finished!



But it probably needs a little bit of testing, so I've called this a beta release. Here's the Windows binary:

https://github.com/linleyh/liberation-circuit/releases/tag/beta

(to play, download LibCirc_v0.99_beta.zip and unzip, then run LibCirc.exe)

Here's the general github page for the game:

https://github.com/linleyh/liberation-circuit

And I've put a trailer up on Youtube:





I'd really appreciate any feedback on this version. Have fun!

Logged

linley
Level 0
***



View Profile
« Reply #39 on: March 02, 2017, 07:38:49 PM »

And a new beta release is up! It has a number of fixes and improvements, not least to the interface. Many thanks to zugz, who has given lots of useful feedback on the playtesting thread at https://forums.tigsource.com/index.php?topic=59890.0.

Here's the release page on Github:

https://github.com/linleyh/liberation-circuit/releases/tag/v0.99B-beta3

Windows users: download LibCirc_beta3_win.zip and run LibCirc.exe to play.

Everyone else: you'll need the data files in LibCirc_beta3_data.zip; the executable needs to be in the main directory (the same directory as readme.txt).

Have fun!

Logged

Pages: 1 [2] 3
Print
Jump to:  

Theme orange-lt created by panic