Menu

Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Show posts Menu

Messages - robcolton

#1
Quote from: Shadow1000 on Sun 24/11/2019 19:45:16
I think I found a bug.

Spoiler
Trapped in the cabin with the wolf, I used the wrench on the chair and ended up outside the cabin. The window got boarded up again and the wolf came back and the section of the game repeated
[close]

IS this a bug?

Yes, that's definitely a bug. That's for letting me know!
#2
Thanks for letting me know!

The car shows up automatically after 45 seconds I believe, but will come immediately if you use the crosswalk. It seems cancelling out of the map screen messes this up somehow. The scene is really just a small cutscene/informational type screen so you know how he gets around.

Rob
#3
My submission for Bara Jam 2019 is now live!

Rogue is a point-and-click adventure game in the style of LucasArts classic games. It was developed using Adventure Game Studio. Since it was developed during October/November, it's a short game, but I'm pleased with how it turned out. I hope you all enjoy it!



Blurb
Rollie Davison is investigating the next big story for his EcoSpy blog when he stumbles into a world he never knew existed. Help Rollie solve the mystery of the rogue... and maybe catch himself a man in the meantime!

Note: Rogue features male/male situations.

Credits

  • Story Design and Programming by Rob Colton
  • Custom Sprites by Katuen
  • CG Artwork by PauPerish
  • User Interface elements by CaesarCub
  • Music by Gustav Holst

Rogue can be downloaded for free on itch.io. It's available for Windows, Mac, Linux, and Android. An iOS version is in beta.

Screenshots




#4
Engine Development / Re: Building for iOS?
Thu 21/11/2019 17:00:04
I should also mention, I had to make some tweaks to get the libraries to build native/fat libraries. (The fat libraries in the Janet repository give errors about missing architectures or bitcode errors when trying to build and run with Xcode 11.)

To get the libraries to build, I had to update all of the iOS/buildlib/{architecture}/setenv.sh scripts to set the IOS_TARGET to "10.0"

For some reason, freetype doesn't download and then it tries to build it, so I had to manually download the correct version and drop it into the libsrc folder.

The version of Lua used no longer builds on IOS because of system, so I added this to the end of liblua.patch...

Code: ags

  --- src/luaconf.h	2008-02-11 11:25:08.000000000 -0500
  +++ src/luaconf.h	2019-11-12 22:42:55.000000000 -0500
  @@ -757,7 +757,11 @@
   ** without modifying the main part of the file.
   */

  -
  -
  +#if defined(__APPLE__)
  +     #include "TargetConditionals.h"
  +     #if TARGET_OS_IOS || TARGET_OS_WATCH || TARGET_OS_TV
  +         #define system(s) ((s)==NULL ? 0 : -1)
  +     #endif // end iOS
   #endif

  +#endif


After that, I could run the buildall.sh and makefatlibs.sh correctly, and am able to run the game on the simulators or devices without library architecture errors.
#5
Engine Development / Re: Building for iOS?
Thu 21/11/2019 16:49:53
I was able to get it to build and run successfully.

To fix the pack_fopen error, I added code to Engine/ac/file.cpp to define it as it was in the previous versions of the file for AGS_PLATFORM_OS_IOS.

Code: cpp

#if AGS_PLATFORM_OS_IOS
// override packfile functions to allow it to load from our
// custom CLIB datafiles
extern "C" {
    PACKFILE*_my_temppack;
#if ALLEGRO_DATE > 19991010
#define PFO_PARAM const char *
#else
#define PFO_PARAM char *
#endif
#if !defined(AGS_RUNTIME_PATCH_ALLEGRO)
    extern PACKFILE *__old_pack_fopen(PFO_PARAM,PFO_PARAM);
#endif
}

PACKFILE *pack_fopen(const char *filename, const char *mode)
{
    return __old_pack_fopen(filename, mode);
}
#endif


After that, I had to tweak startThread in agsViewController.m to look for my game.ags instead of searching in /ags/game, based on the code from Janet.

Code: cpp

    #if defined (IOS_VERSION)
        //JG
        NSString *filePath = [[NSBundle mainBundle] pathForResource:@"Rogue"
                                                             ofType:@"ags"];
        const char * resourceChars = [filePath UTF8String];
        strcpy(filename, resourceChars);
    #else
        strcpy(filename, path);
        strcat(filename, "ac2game.dat");
    #endif


After that, I was receiving an error that it couldn't write to the save folder, because it was trying to use an invalid location. I had to fix it so that it was saving games in the correct place by changing MakeSaveGameDir in Engine/ac/game.cpp.

Code: cpp

bool MakeSaveGameDir(const String &newFolder, ResolvedPath &rp)
{
...
#if AGS_PLATFORM_OS_IOS
  base_dir = PathOrCurDir(platform->GetUserSavedgamesDirectory());
  newSaveGameDir.Format("%s/%s", base_dir.GetCStr(), game.saveGameFolderName);
#else
    if (newSaveGameDir.CompareLeft(UserSavedgamesRootToken, UserSavedgamesRootToken.GetLength()) == 0)
...


After that, I updated platform/iOS/acplios.cpp to add the virtual overrides for all of the Get*Directory methods and have them return ios_document_directory.

Anyway, it's all working now. I just to make some tweaks, like hiding the Quit button if the OS is iOS. I'm also going to disable the keyboard handling since I don't need it, and I'm going to change long press to right-click instead.

#6
Engine Development / Re: Building for iOS?
Thu 21/11/2019 01:57:30
I guess no one's interested in iOS  :P

Anyway, I added this line to ogl_headers.h at line 70 (inside the AGS_PLATFORM_OS_IOS section) to work around the GLAD errors...
Code: cpp
#define GLAPI extern


That got me a little further., and on to the next error... Now I have an issue with a missing pack_fopen method I'm trying to work on...
#7
Engine Development / Building for iOS?
Tue 19/11/2019 03:50:44
Has anyone successfully built the engine and a game for iOS recently?

I've read the two old threads, and pulled down the source from Janet Gilberg/Wadjet, but that was built for a really old version of AGS, and I created my game with 3.5. So, it seems if I want to release for iOS, I have to get 3.5 to build -- or recreate my game in 3.4.0 (a version of AGS that's going on 3 years old)?

I've updated the Xcode project in the iOS folder with the current engine/common files, and have corrected a couple of build issues, and got the libraries to build, but ultimately it fails to compile due to errors in the GLAD code. Unfortunately, I'm not familiar enough with OpenGL and C++ to fix it.

The errors I'm getting are around GLAD_GL_VERSION_2_0:

Code: ags
Expected unqualified-id glad.h in file ali3dogl.cpp
Expanded from macro 'GLAD_GL_VERSION_2_0'

Expected ')' in file ali3dogl.cpp
Expanded from macro 'GLAD_GL_VERSION_2_0'
To match this '('


I think it's related to ogl_headers.h, where it defines GLAD_GL_VERSION_2_0
Code: ags
#ifndef GLAPI
#define GLAD_GL_VERSION_2_0 (0)
#endif


If I comment those lines, then I get a ton of undefined GL errors.

Any pointers in the right direction would be appreciated!

Rob
#8
Modules, Plugins & Tools / Re: AGS ThemeEditor
Fri 01/11/2019 20:14:28
Maybe I'm being dense, but I couldn't figure out how to color the background of the Room editor with your tool. It stays light gray.

Also, the little drop down arrows in the Room toolbar are always black and are hard to see with a dark theme, and I couldn't figure out how to change their color either.
#9
I got it to work!

The trick was I had to put both the android.cfg and acsetup.cfg files into the obb along with the ags file. Once I did that, no more MIDI error.

Thanks for putting together your instructions. They were invaluable in getting this working.

(That just leaves iOS to get up and running...)
#10
Quote from: Crimson Wizard on Thu 31/10/2019 08:59:26
Are you using launcher APK or created APK exclusively with your game? I am not sure how it works with the latter (where it gets config from).

I'm building an APK specifically for my game. It works and launches the game, which plays fine after I dismiss the MIDI driver error.

The config files are in the src/main/assets folder with the obb file.

I'll go over eri0o's updated instructions and make sure I'm not missing anything.
#11
Tried it with the RC3 files in the release forum, and I'm still getting the MIDI driver error. I have it disabled in both cfg files, so I'm not sure what else to do to suppress it.
#12
Quote from: Crimson Wizard on Sat 26/10/2019 18:24:28
Quote from: robcolton on Sat 26/10/2019 18:22:09
However, I keep getting an error about the midi driver. My game config has midi disabled, and the Android.cfg has it set to Enabled = false. I'm not sure what I'm doing wrong here?

Normally if you disable MIDI it should not try to initialize.

Could you post config file and what is the error message?

Oh, and what version of engine/AGS are you using?

The error I get is:
Warning: cannot enable MIDI audio.
Problem: No compatible drivers found in the system.

I'm using AGS 3.5.0.18 (RC2) and I used the Android engine labeled 3.5.0.18 from https://cirrus-ci.com/github/adventuregamestudio/ags

My acsetup.cfg file:
Code: ags

[misc]
game_width=320
game_height=200
gamecolordepth=32
antialias=0
notruecolor=0
cachemax=131072
user_data_dir=
shared_data_dir=
titletext=Rogue by Rob Colton
[graphics]
driver=D3D9
windowed=1
screen_def=scaling
game_scale_fs=proportional
game_scale_win=max_round
filter=stdscale
vsync=0
render_at_screenres=0
[sound]
digiid=-1
midiid=0
usespeech=1
[language]
translation=
[mouse]
auto_lock=0
speed=1


My android.cfg file:
Code: ags

[misc]
config_enabled = 1
rotation = 2
translation = default
[controls]
mouse_method = 0
mouse_longclick = 0
[compatibility]
clear_cache_on_room_change = 0
[sound]
samplerate = 44100
enabled = 1
threaded = 1
cache_size = 10
[midi]
enabled = 0
preload_patches = 0
[video]
framedrop = 0
[graphics]
renderer = 0
smoothing = 0
scaling = 1
super_sampling = 0
smooth_sprites = 0
[debug]
show_fps = 0
logging = 0
#13
This post and the Android Studio project was very helpful! I got my game up and running on Android without a lot of effort.

However, I keep getting an error about the midi driver. My game config has midi disabled, and the Android.cfg has it set to Enabled = false. I'm not sure what I'm doing wrong here?

Anyone have any ideas?
#14
Quote from: morganw on Tue 22/10/2019 23:11:40
For macOS it should build with CMake, and there are pre-defined paths for copying items into a .App from ./Resources.

Code: bash
export BUILD_TYPE=release
mkdir build_$BUILD_TYPE
cd build_$BUILD_TYPE
cmake -DCMAKE_BUILD_TYPE=$BUILD_TYPE ..
make


If you want to test a recent build, they are here:
https://cirrus-ci.com/github/adventuregamestudio/ags

The iOS version is another story, I don't think anyone has built this recently.

Oh wow, this is good stuff. Thanks so much!

I was able to build my game successfully and everything appears to be working. Thanks again for your help.
#15
Yikes. I tried to build the 3.5 latest but ran into issue and after issue. The Xcode project is way out of date, with many files missing. I tried removing them and the adding the ones that had been added, but have had no luck getting a successful build.

I was hoping it would be like the Linux build where it just created the Mac .app folder for you by adding your game files and with a pre-compiled binary and setting up the info.plist.

Ran into the same issues with iOS. If anyone has any suggestions, I'm all ears. Otherwise I will keep trying....
#16
Quote from: morganw on Tue 15/10/2019 00:18:21
Quote from: robcolton on Mon 14/10/2019 23:24:18
My AGS folder is in my OneDrive documents folder, I'll try to pause OneDrive and exclude it from virus checking and see if that helps.
Also, Windows Explorer can accidentally lock the files whilst trying to look at the directory contents. So you could also try closing all Explorer windows which are displaying game directories.

Neither excluding the folder from Defender or disabling OneDrive fixed this issue. However, I changed the build settings so that it split into chunks of size 2. After I did that, it seems to run reliably every time.
#17
Quote from: Crimson Wizard on Mon 14/10/2019 13:55:14
Quote from: robcolton on Sun 13/10/2019 21:42:04
I've been having an issue with where it complains that the game engine wasn't shut down properly. If I restart my PC, sometimes it corrects the situation. Once it works, it works for a while but at some point it will stop working.

When AGS is in this state, compiling the game and then running the EXE does work as expected, but that grows inconvenient.

This is the error:

Error: The operation was canceled by the user

So, to clarify, this error shows up when you try to run game under debugger, with F5?
We had similar reports in the past, but it was unclear what is usually a problem. The error message itself indicates that some external "force" prevents game exe from starting up. Maybe operating system locks the file for some reason, or this could be antivirus. Antiviruses do not generally like AGS for some reason.

It shows up when I use the Run icon on the toolbar, which is the same thing as F5 I'm guessing. My AGS folder is in my OneDrive documents folder, I'll try to pause OneDrive and exclude it from virus checking and see if that helps.
#18
I've been having an issue with where it complains that the game engine wasn't shut down properly. If I restart my PC, sometimes it corrects the situation. Once it works, it works for a while but at some point it will stop working.

When AGS is in this state, compiling the game and then running the EXE does work as expected, but that grows inconvenient.

This is the error:

Error: The operation was canceled by the user
Version: AGS 3.5.0.18

System.Exception: The operation was canceled by the user ---> System.ComponentModel.Win32Exception: The operation was canceled by the user
   at AGS.Editor.Tasks.RunEXEFile(String exeName, String parameter, Boolean raiseEventOnExit)
   at AGS.Editor.Tasks.TestGame(Boolean withDebugger)
   at AGS.Editor.InteractiveTasks.TestGame(Boolean withDebugger)
   --- End of inner exception stack trace ---
   at AGS.Editor.InteractiveTasks.TestGame(Boolean withDebugger)
   at AGS.Editor.Components.BuildCommandsComponent.TestGame(Boolean withDebugger)
   at AGS.Editor.Components.BuildCommandsComponent.CommandClick(String controlID)
   at AGS.Editor.ToolBarManager.ToolbarEventHandler(Object sender, EventArgs e)
   at System.Windows.Forms.ToolStripItem.RaiseEvent(Object key, EventArgs e)
   at System.Windows.Forms.ToolStripButton.OnClick(EventArgs e)
   at System.Windows.Forms.ToolStripItem.HandleClick(EventArgs e)
   at System.Windows.Forms.ToolStripItem.HandleMouseUp(MouseEventArgs e)
   at System.Windows.Forms.ToolStripItem.FireEventInteractive(EventArgs e, ToolStripItemEventType met)
   at System.Windows.Forms.ToolStripItem.FireEvent(EventArgs e, ToolStripItemEventType met)
   at System.Windows.Forms.ToolStrip.OnMouseUp(MouseEventArgs mea)
   at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.ScrollableControl.WndProc(Message& m)
   at System.Windows.Forms.ToolStrip.WndProc(Message& m)
   at AGS.Editor.ToolStripExtended.WndProc(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
SMF spam blocked by CleanTalk