Welcome, Guest. Please login or register.

Login with username, password and session length

 
Advanced search

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

April 19, 2024, 01:51:13 AM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsDeveloperPlaytestingInvincible Countermeasure (update: new version 1 January 2015)
Pages: [1]
Print
Author Topic: Invincible Countermeasure (update: new version 1 January 2015)  (Read 3061 times)
linley
Level 0
***



View Profile
« on: August 19, 2014, 06:19:57 AM »


Update (1 Jan 2015): beta 2 version now available! Here's the announcement.


Hello everyone! It's time for me to release the first public beta of my new game, Invincible Countermeasure.

It's an action/strategy/coding game about defending or invading a computer system inhabited by a variety of friendly and hostile processes that can move around, interact in various ways and reproduce themselves. It looks like this (youtube video):





Or this (screenshot):



On one level, you can play it as a real-time strategy game. You can use the predefined processes and give orders to them through the preset user interface. This beta version comes with three single-player missions that you can play like this.

To play on a deeper level, you can improve the processes and write your own. Each process is a small bytecode program running in a virtual machine emulating an imaginary 16-bit processor, and the game has a limited built-in C compiler (with inline assembler) that you can use to build processes to better carry out your commands.

At its heart, though, Invincible Countermeasure is a pure programming game. It supports asynchronous multiplayer in which 2-4 players pit autonomous processes against each other, and players can also rewrite the system program to create new game modes.

Here's the code editor:



This beta version is fully playable and has all of the basic features implemented, although there's plenty of work still to be done! (Among other things, the sound is very underdeveloped and there isn't any music yet.)

You can get Windows binaries from sourceforge at https://sourceforge.net/projects/invincible-countermeasure/files/latest/download
This package has everything you need to play the game, including an extensive manual and several example programs with heaps of comments. Run Countermeasure.exe to start.

You can also get C source code from http://sourceforge.net/projects/invincible-countermeasure/files/beta1/src_beta1_fixed_for_linux.zip/download (this file contains the source code needed to build the game; the process source, which is used in the game's own compiler, is in the binary distribution). Licence is GPL v3 or later.

To build the game from source you'll need Allegro 5 installed. I've only tested the game on Windows, but it should compile on anything that Allegro supports. System requirements are very low.

Any feedback would be much appreciated!
« Last Edit: January 01, 2015, 05:36:49 AM by linley » Logged

linley
Level 0
***



View Profile
« Reply #1 on: August 21, 2014, 03:50:24 AM »

It turns out that the game's preprocessor didn't work properly on *nix-based systems, because of confusion about line endings. I've uploaded a fixed version of the source code (thanks to Peter Hull for the fix) and updated the link in the first post. The Windows binaries shouldn't be affected.
Logged

linley
Level 0
***



View Profile
« Reply #2 on: August 22, 2014, 01:32:00 PM »

And it also turns out that I needed to link the basic C libraries statically. I'm not sure why; I've never had this problem with MingW before. I've uploaded a new version and updated the link above.
Logged

Quicksand-S
Level 10
*****


View Profile WWW
« Reply #3 on: August 22, 2014, 05:08:40 PM »

I was sure I'd seen comments on this. Weird.

Anyway, my thoughts/suggestions/impressions:

-The tutorial should probably emphasize important words, like "builder", either with bold text or caps or something.

-Moving my mouse outside the window into my browser window caused my game to scroll sideways endlessly. Maybe that's by design, but I'm not a fan. Ideally, I'd like to be able to turn off edge scrolling and control the camera with the arrow keys or by holding the middle mouse button and dragging. In any case, it should probably check if the window has focus and pause when it doesn't (at least as an option).

-At first, it seemed strange that the camera can go slightly outside the boundaries of the map, but it really makes sense with all the HUD elements in the way. Nice thinking.

-I found the interface confusing. The bottom console seemed like it was just for news, not actually entering commands. I thought that I'd be pressing the numbers from the list of processes instead, like pressing 3 for "new process". This was is probably simpler, but it's not obvious. The process/command list stands out far more, so that's what my eyes were drawn to. I think adding "here" to the "Click to build..." lines would be beneficial as well.

-I think it might be a good idea to differentiate buildings from vehicles a bit more. I was surprised when it told me I could move my Builder process. I guess the buildings' differences could be made more obvious as well. I wasn't sure what the difference between the original factory and the differently-shaped one was.

-When a process stops moving, maybe it should rotate into alignment with the background again.

-Seeing the Builder fly around with its thrusters was pretty cool. It was a little wobbly, but for the most part it worked great. I would've liked to see it move a bit faster, though.

-I feel like "Allocator Efficiency" should show up in the green console in real-time. I kept moving my builder around and trying to figure out where the efficiency reading was.

-I didn't like that the X button on the window was disabled.

-Once I got into some combat, it seemed really strange that the ships would just plow into one another. I hope you plan on adding some obstacle avoidance and/or reverse thrusters at some point.

-One thing I think is a must for any RTS is having it be very easy for the player to group units. I couldn't use Shift or Control to add units to my selection, and dragging a box failed to select some units (usually on the left side) if the view scrolled while I was doing it.

Anyway, it's a good start. It runs well and once I found out how things were supposed to work, it felt all right to play. The art style is pretty nice too.
Logged

My Old Game: We Want YOU - Join the Fight for Freedom

Twitter - Mostly comments on games, old and new.
linley
Level 0
***



View Profile
« Reply #4 on: August 23, 2014, 03:53:21 AM »

Thanks, that's great feedback!

-Moving my mouse outside the window into my browser window caused my game to scroll sideways endlessly. Maybe that's by design, but I'm not a fan. Ideally, I'd like to be able to turn off edge scrolling and control the camera with the arrow keys or by holding the middle mouse button and dragging. In any case, it should probably check if the window has focus and pause when it doesn't (at least as an option).

These are some of the things that I've noticed but never got around to fixing. Now that you've mentioned them, though, they are annoying. I'll spend some time with the Allegro manual and work out how to fix them.

Quote
-I found the interface confusing. The bottom console seemed like it was just for news, not actually entering commands. I thought that I'd be pressing the numbers from the list of processes instead, like pressing 3 for "new process". This was is probably simpler, but it's not obvious. The process/command list stands out far more, so that's what my eyes were drawn to. I think adding "here" to the "Click to build..." lines would be beneficial as well.

Yes, I'll try to make this more obvious.

Quote
-I think it might be a good idea to differentiate buildings from vehicles a bit more. I was surprised when it told me I could move my Builder process. I guess the buildings' differences could be made more obvious as well. I wasn't sure what the difference between the original factory and the differently-shaped one was.

There aren't really many differences between buildings and vehicles - a building is just a process with a method that makes it immobile (like the data allocation method). It would make sense to rename "builder" to something like "mobile builder", though.

Quote
-When a process stops moving, maybe it should rotate into alignment with the background again.

-Seeing the Builder fly around with its thrusters was pretty cool. It was a little wobbly, but for the most part it worked great. I would've liked to see it move a bit faster, though.

-Once I got into some combat, it seemed really strange that the ships would just plow into one another. I hope you plan on adding some obstacle avoidance and/or reverse thrusters at some point.

-One thing I think is a must for any RTS is having it be very easy for the player to group units. I couldn't use Shift or Control to add units to my selection, and dragging a box failed to select some units (usually on the left side) if the view scrolled while I was doing it.

Yeah, the pre-set processes and operator programs are all pretty stupid, and not well-designed in general. I'm working on them, as well as on adding a lot more missions.

Quote
-I feel like "Allocator Efficiency" should show up in the green console in real-time. I kept moving my builder around and trying to figure out where the efficiency reading was.

That wouldn't quite fit the way the consoles are supposed to work, but you're right that there needs to be a better way to give real-time information. Probably a smaller process data box that appears next to the selected process and only contains information particularly relevant to that kind of process.

Quote
-I didn't like that the X button on the window was disabled.

Yes, I'll make the game recognise the event that Allegro sets when the X is clicked, and give the user an immediate shutdown dialogue box.

Cheers!
« Last Edit: August 23, 2014, 06:35:31 PM by linley » Logged

Quicksand-S
Level 10
*****


View Profile WWW
« Reply #5 on: August 23, 2014, 10:02:20 AM »

Quote
-I feel like "Allocator Efficiency" should show up in the green console in real-time. I kept moving my builder around and trying to figure out where the efficiency reading was.

That wouldn't quite fit the way the consoles are supposed to work, but you're right that there needs to be a better way to give real-time information. Probably a smaller process data box that appears next to the selected process and only contains information particularly relevant to that kind of process.

I don't think I got any useful information from the green console area the entire time I played. It did, however, show things like velocity in real time so it seemed like the place to put other real-time elements. Is the other info actually useful? I'm just a bit concerned that adding yet another console would clutter up the screen far too much.

If you want to use the main console for it, maybe just add a timer when moving the Builder around and re-state the efficiency every two seconds or something while moving. That's not exactly unheard of for a console, since certain commands like netstat can be set to print updated info every few seconds.
Logged

My Old Game: We Want YOU - Join the Fight for Freedom

Twitter - Mostly comments on games, old and new.
linley
Level 0
***



View Profile
« Reply #6 on: August 23, 2014, 06:55:11 PM »

The information in the green console window is probably more useful when the player is designing new processes than when they're just ordering processes around and don't care about things like the value of each of the process's 64 method registers. Most of the time I minimise it, but it can be useful to have around. The main reason it doesn't show real-time allocator efficiency is that calculating allocator efficiency for mobile processes is currently quite expensive.

I think adding another console should be okay, as long as it's small and very specific. I'll find a way!
Logged

Adam_
Level 1
*



View Profile WWW
« Reply #7 on: August 24, 2014, 12:50:25 AM »

Didn't play it yet (I'm on the wrong computer right now) but I really like the simplistic geometry art style, both in "sprite design" and effects / animations. Smiley
Logged

Vallar
Level 2
**


View Profile
« Reply #8 on: August 25, 2014, 09:28:26 AM »

I downloaded the game and tried to play it. Unfortunately the window starts in window mode and the location of the window is a bit off my desktop's screen to the top left. I can't make it full screen and I can't move the window either (the game window).

The mouse inside the game is not accurate so if I want to click on "Star Game" I have to move my mouse about 250-350 pixels below the button to be able to click on it.

I am using Windows 7 64 bit. Anyway to fix this?
Logged

linley
Level 0
***



View Profile
« Reply #9 on: August 26, 2014, 02:54:34 AM »

I downloaded the game and tried to play it. Unfortunately the window starts in window mode and the location of the window is a bit off my desktop's screen to the top left. I can't make it full screen and I can't move the window either (the game window).

I think this happens when the resolution is set too high. Try editing init.txt and reducing the resolution to 1024x768, or something else that will fit on your monitor (1024x768 is the minimum, though).
Logged

Vallar
Level 2
**


View Profile
« Reply #10 on: August 26, 2014, 04:39:05 AM »

Thank for helping me out, that worked XD

I have checked the game out. I must say when I read about the game I was pretty excited a game that makes me control stuff as if I am inside the computer COOL! Then I read you need to code in some C language and I was like, bummer! I am not a programmer (at least I wouldn't call myself one -- only understand the principles) so I thought I would try it anyway.

Once I loaded the game and saw the background it immediately reminded me of Transistor (a game by Super Giant Games) it had a similar feeling of making me feel inside a computer. That said, I liked the graphics a lot and the thrusts on those ship, it blew my mind. All was good until I started playing here is what I found in no particular order:

1- The game is way too technical too early. You start talking about mobile data and efficiency and allocators and I was like woooow slow down, please. I was able to understand it. But I felt it as an info dump, I'd say take the time to describe some of the terminology to the player. Specially if they aren't programmers.

2- The movement speed of the units are REALLY slow. They need to be much faster. Also why do they feel they fly in space? Computer strikes me as a precise entity with calculative moves so the movement should be sharp (in my opinion) and precise.

3- The unit bump into everything, so I am guessing there is no path finding.

4- The AI isn't quite smart. I selected 3 units and I asked them to attack units on their 3 o'clock. My units were facing 10 o'clock. So naturally I thought they would turn from 10 to 11 to 12 and so on. No, they turned the other way around for some odd reason which got them killed.

5- The aiming of units is really bad. If an enemy unit is moving and my unit tries to hit it. Unless it is moving along the same direction of the bullet, it is next to impossible to hit unless either the enemy changes direction or stops. That is annoying.

6- I never found that allocator efficiency thing. I ended up just building anywhere just to test the game.

7- I found a bug first when the tutorial asked me to move the builder. I moved the builder and it didn't continue, had to restart the game.

8- I always lose. There is just SO MANY enemies spawning and little troops spawning to defend me. I think in two or three games it always comes down to a 5 vs 3 fight (3 from my end vs 5 enemies).

9- The interface is really confusing. I don't mind that you name thing in the name of process or even functions/classes (Transistor did just that, along with () like Ping() and what not). But that was easy to deal with. I clicked on the Te menu and I was like O.O I literally felt like a 1 year old seeing a LONG sentence written in Kanji). I didn't understand anything.

10- I'd say the UI needs work in its aesthetic as well as its structure. The buttons are small, there isn't an indication to what they do. The only thing I guessed was the Sy button and it was a guess to System. I doubt a normal gamer would know that.

11- The mouse still doesn't point in the correct location. It is 3-5 pixels off to the bottom (even after editing the file to the exact screen resolution I am using).


All in all, I feel there is a game inside that is awesome to play and really fun. But it is too technically advance that is holding back the normal players like me. :D
Gotta say though, either way, it is an impressive job and nicely done! :D
Logged

linley
Level 0
***



View Profile
« Reply #11 on: August 28, 2014, 05:06:55 AM »

Thanks for your comments! I'm going to address the interface issues and some of the AI issues in the next version, and work on the tutorial a bit as well.

11- The mouse still doesn't point in the correct location. It is 3-5 pixels off to the bottom (even after editing the file to the exact screen resolution I am using).

I honestly don't know about this one, though. It sounds like it might be a problem with Allegro, or at least with the way Allegro works on your particular system. I'm working on the way the game deals with display modes, though, so that might help.
Logged

Vallar
Level 2
**


View Profile
« Reply #12 on: August 28, 2014, 05:58:06 AM »

That is fine... perhaps as you mentioned when working on display issues it would get resolved Smiley

Good luck! :D
Logged

Quicksand-S
Level 10
*****


View Profile WWW
« Reply #13 on: August 28, 2014, 08:46:44 AM »

11- The mouse still doesn't point in the correct location. It is 3-5 pixels off to the bottom (even after editing the file to the exact screen resolution I am using).

I honestly don't know about this one, though. It sounds like it might be a problem with Allegro, or at least with the way Allegro works on your particular system. I'm working on the way the game deals with display modes, though, so that might help.

Never worked with Allegro so I don't know how hard it is to do, but it seems like a "solution" would be to hide the Windows cursor and draw an in-game cursor at the spot where the program thinks it is. That way, it will always match up with the click position.
Logged

My Old Game: We Want YOU - Join the Fight for Freedom

Twitter - Mostly comments on games, old and new.
Ziz
Level 0
**



View Profile
« Reply #14 on: September 09, 2014, 01:46:09 AM »

Hi,

I tested your game, too.
It sounded very promising. I love programming games. I once played one on a PALM. You had to control little robots in BASIC and every calculation you made costed time. So the more complex your calculations were, so slower you were.

First I tried to compile the game for linux. But there isn't any Make file and I wasn't in the mood to create one on my own... However the Windows binary works great with wine.

Ingame first of all I liked the graphics and the movement of the entities. I don't think, that you need some kind of path finding (maybe for the AI?), but the possibility to set path points on my own, e.g. with shift.

But the game is WAY to complex at the first start and the UI way to bad readable. Maybe make the font brighter and bigger?

However, looking forward to a new version! I see, there is a LOT of work in this game already and I am really looking forward for updates! Hand Clap

Greetings,
Ziz
Logged
linley
Level 0
***



View Profile
« Reply #15 on: September 30, 2014, 04:44:32 AM »

The next version isn't quite ready yet, but it's coming along - I'll probably do another release with all (or almost all) game features implemented, then sit down and write a proper campaign mode with maybe even some kind of story for a version 1.0 release. I'm thinking about a new name as well.

Here's what it looks like now:



New stuff implemented so far:
  • Multisampled anti-aliasing! This was broken in the version of Allegro I was using before, but it's fixed in 5.0.10 and it makes the graphics look much, much better.
  • Waypoints, as Ziz suggested.
  • Easier-to-read fonts, also as Ziz suggested.
  • Numerous other interface improvements.
  • Various things to encourage the use of large multi-segmented super-processes like the one in the picture, such as shared irpt/data pools (connected processes no longer have to expressly shuffle resources between each other) and the new virtual interface method (a.k.a. shield)
  • Fullscreen mode (actually fullscreen window, which is slightly different, but true fullscreen seems to play badly with native file windows)
  • An optional special mouse cursor to fix the problems Vallar had with the mouse.
  • All kinds of other things.

I also need to work out how to write a makefile, which is something I should have done a long time ago...
Logged

linley
Level 0
***



View Profile
« Reply #16 on: January 01, 2015, 05:31:48 AM »

It's time for a new release! Version beta 2 is now up on sourceforge, here:
https://sourceforge.net/projects/invincible-countermeasure/files/beta2/

Windows binaries and source code are available. The game should also compile on Linux, Mac and other systems supported by Allegro 5 as well (if you compile it yourself, you'll need the data files from the Windows binaries to run it).

The new version has too many changes to list, but here are some of them:
- much better tutorials
- 6 new missions
- improved graphics
- legible fonts
- better controls
- all kinds of other improvements

Video:









All feedback welcome!
Logged

Pages: [1]
Print
Jump to:  

Theme orange-lt created by panic